kern/init_main.c mi_startup(), 171行. 由 locore 呼叫, locore 为 kernel binary 最先被执行 的程式区段. locore 对机器环境
vm_mem_init(), 99行. 进行 vm module 的初始化. 107行, vm_set_page_size(), kern/vm_page.c, 137行. 计算一个 page 的
这介绍 FreeBSD 的 kernel, 目前暂不包含 SMP 的部分. 我是以我个人的想法去记录下, 当我看到 code 时脑中的想法. 如果你有什麽建议, 能让你更容易看懂, 请 mail 给我
getmemsize(), 1419行. 找出并计算所有可用之记忆体, 并保留 msgbuf (保留在 avail_end 後面, MSGBUF_SIZE 大小). init386(), 180
vm_page_startup(), 156行. vm_page module 初始化. 183-197行, 计算所有的可用记忆空间, 并挑出最大的 block. phys_avail 在 一开始
pmap_bootstrap(), 280行. 进行 pmap module 的初始动作. 被 getmemsize 呼叫. 设定 global variable: avail_start 可用而
vm_object_init(), 189行. vm_object 初始化. 192行, 初始 vm_object_list_lock simple lock. 195-197行, 初始 kern
以下代码均在linux i86 2.0.x的内核下面测试通过。它也许可以在之前的版本通 过, 但并没有被测试过. 因为从2.1.x内核版本就引入了相当大的改变, 显著地内存 管理上的差别, 但这些
作者:opera 概述 ==== 1)当内核配置了内存盘时, 内核在初始化时可以将软盘加载到内存盘中作为根盘. 当同时配置了初始化内 存盘(Initail RAM Disk)时,
在前面的文章里,我们学习了怎么显示和管理运行中的进程。今天,我想描述一下那些进程实际上如何启动的。 当你启动计算机进入FreeBSD时会有很多巧妙的事情发生。在此我无法论及所有的细节,但FreeBS