lpc编程

FluffOS is the next generation of MudOS. It starts as an collection of patches on top of last release of MudOS, comes with many new features and bug fixes.

In 2019, there will be 2 release track maintained:

  • v2017: no build system upgrade, no new features, critical bugfix only.
  • v2019: cmake build system, JS interop support and rolling updates.

特色Features:

  • Mostly backward-compatible to MudOS. (Upgrade should be easy!)
  • Lots of bug fixes. (including full CHECK_MEMORY enabled testsuite pass).
  • Compile on modern linux distros, 32bit & 64bit, CYGWIN support.
  • 64 bit LPC runtime, LPC int is always 64bit int, LPC float is C double.
  • MXP, GMCP, ZLIB.
  • IPv6 support (optional)
  • ICONV support, code in UTF-8, dynamic translation on output (optional)
  • POSIX timer for better time precision. (optional)
  • More strict type checking (optional)
  • libevent integration, epoll backend.

编译方法

为了方便大家编译FluffOS,我参考lostsnow的镜像,做了这个docker镜像。熟悉docker的同学欢迎fork或clone使用。

0. Intro

Docker 镜像 : FluffOS v2019 的 Ubuntu 编译环境。 此项目参考了 https://github.com/lostsnow/docker-fluffos ,更新为可以编译 FluffOs v2019 。

1. Build compile image

建立为编译 FluffOS 源码的 docker 镜像,确定已经安装了docker 1.12+git

以下的命令可能需要su root或者sudo,假设我们在/XXXX/目录下操作。真正操作时,记得将下面代码中/XXXX/替换为相应的目录,即上面代码中你建立docker目录位置的绝对目录。
cd /XXXX/
mkdir docker
cd docker 
git clone https://github.com/zero9k/docker_fluffos.git
cd docker_fluffos
docker build -t zero9k/fluffos_build ./build

成功后,输入docker images指令可以看到REPOSITORY下增加了ubuntuzero9k/fluffos_build两个 image,类似下面这样:

$ docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
zero9k/fluffos_build   latest              3b3444136461        3 hours ago         521MB
ubuntu                 latest              47b19964fb50        4 weeks ago         88.1MB
$

2. Compile driver

下载 fluffos 源码。

cd /XXXX/docker/
git clone https://github.com/fluffos/fluffos.git

利用镜像fluffos_build编译 fluffos 源码,生成驱动, 最终产生包括 driver 的 2 个二进制文件。

docker run --rm -v /XXXX/docker:/opt/docker zero9k/fluffos_build

成功后,输入ls -la docker_fluffos/bin/指令可以看到driverportbind两个二进制文件,注意日期,看是否新生成的。 (因为此项目已经包括编译好的二进制文件,当然你也可以直接使用,忽略以上步骤。^_^)

3. Build driver image

生成 fluffos 驱动镜像,实际就是把 2 个二进制文件 copy 进 docker image ,同时安装其运行需要的依赖库。

cd /XXXX/docker/docker_fluffos
docker build -t zero9k/fluffos .

成功后,输入docker images指令可以看到REPOSITORY下增加了zero9k/fluffos,类似下面这样:

$ docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
zero9k/fluffos         latest              cf1eda359956        2 hours ago         143MB
zero9k/fluffos_build   latest              3b3444136461        3 hours ago         521MB
ubuntu                 latest              47b19964fb50        4 weeks ago         88.1MB
$

4. run mudlib

运行 MUD ,即用 fluffos 驱动 mudlib ,比如 fy/xkx/xyj 等(我的GitHub 有一些mudlib)。以下的代码以 fy4 为参考,可能需要修改源码 (那涉及到如何让 fluffos 可以跑 mudos v22 的老lib,不在本文讨论范围内,请自行学习)。

准备好修改好的 config 文件 (fluffos 源码中有样例,根据需求修改),假设位置为/home/cfg/config.fy,假设修改后端口为 6666。
cd docker
mkdir mudlib
cd mudlib
git clone https://github.com/huangleon/fy4.git
cp /home/cfg/config.fy fy4/config.fy
docker run -d --name fy4 \
    -p 6666:6666 \
    -v XXXX/docker/mudlib/fy4:/opt/docker \
    zero9k/fluffos /opt/docker/config.fy

成功后,输入docker ps指令可以看到0.0.0.0:6666→6666/tcp,失败可以输入docker logs -f fy4指令查看 log,也可以进一步查看 mudlib 的 debug.log (比如tail -f /XXXX/docker/mudlib/fy4/log/debug.log)。

  • lpc编程.txt
  • 最后更改: 2019-03-17 22:03
  • dnk