今天我看了站上的一些文章,加上查看原程序,把mudos启动后,程序运行的流程搞清楚了。小弟觉得只要有一个好的mudos,就可写出新的mudlib 框架。我拿用户连接来解释程序的运行流程。
在config.xxx文件中指出了master和global两个文件,这是十分重要的文件。
mudos启动后会加载上述两个文件(其它文件也有,但上述文件为主要 )
进入内存,mudos中定义了一些特殊的函数,例如create()、init()等等,
这些函数都是在特定事件中由mudos自动调用的。
当用户在port口请求连接的时候:
——mudos自动调用master.c中的connect()函数
——然后connect()函数调用 LOGIN_OB这个物件,[而LOGIN_OB是个物件常量,在global.h中定义LOGIN_OB 的值是"/clone/user/login.c",也就是说connect()调用了login.c这个物件]
——在login.c中有一些特殊函数,如果按照用户正确登陆的流程,mudos自动调用login.c中logon()这个特殊函数。
——在logon()中由调用LOGIN_D这一物件常量,LOGIN_D在global.h文件中所定义的值是"/adm/daemons/logind",
——于是 mudos又把logind.c调入内存并运行。
我们一般认为mudos在编译前在它的设置文件中定义了用户login的程序 路径及文件名,
编译后路径和文件名不可改,在用户连入的时候,mudos根据 路径自动启动用户登陆程序。
其实非也,mudos只是一个对mud进行低级支持 的程序。
我们可以利用mudos,完全抛弃已有的mudlib框架,进行新的创作。
这样 才能使中国的mud种类走向多样化。