本部分由 Amit Shah 编写
目前关于内核的文档不多。我希望在未来几周内编写一些。无论如何,以下是源代码的布局方式
openMosix 代码主要位于 hpc/ 和 include/hpc 中。从 arch/i386 目录到 mm/、fs/ 等,核心内核文件到处都有很多补丁。你需要阅读你感兴趣的代码,并思考这对目前的情况有什么影响(这应该不是问题,因为你已经做过内核编码)。
以下是你应该在每个源文件中看到的内容
hpc/badops.c:一个文件,用于处理所有错误操作:主要返回错误代码
hpc/balance.c:负载均衡器代码(负载 + 内存使用量 + 网络使用量)
hpc/comm.c:集群内部通信设置
hpc/config.c:openMosix 的配置代码:在运行启动脚本之后
hpc/decay.c:衰减(老化)从其他节点收集的统计数据和信息
hpc/deputy.c:在 deputy 上执行的代码:服务远程系统调用(即,在进程迁移之后)、信号等
hpc/dfsa.c:直接文件系统访问代码:分布式文件系统抽象层
hpc/div.c:执行浮点除法的算法
hpc/export.c:导出其他文件需要的符号
hpc/freemem.c:用于跟踪空闲、可用内存并在需要时释放它。很大程度上取自 Linux mm/ 代码。
hpc/hpcadmin.c:调整 openMosix 管理员值(通过 /proc/hpc)
hpc/hpcproc.c:/proc/hpc 代码在这里处理
hpc/info.c:信息守护进程:在整个集群中发送和接收(多播)负载+内存使用统计信息
hpc/init.c:初始化代码:初始化守护进程等
hpc/kernel.c:大部分“核心”代码:所有重要的算法、决策等都在这里制定。
hpc/load.c:本地负载等的计算
hpc/mig.c:处理迁移的代码。此文件中的代码在任何迁移时都会被调用:deputy->remote,remote->deputy;remote->remote
hpc/prequest.c:处理进程的请求:信号、更多内存等
hpc/remote.c:当进程在远程时执行的代码:远程系统调用处理、将控制权传递给 deputy 等
hpc/rinode.c:fs/ 相关的东西:主要用于 DFSA
hpc/service.c:设置守护进程、获取内存等
hpc/syscalls.c:在这里处理所有远程系统调用
hpc/ucache.c:处理 ucache:主要是 mm/、fs/ 的东西。