现在的位置: 首页 >> 操作系统 >> FreeBSD >> FreeBSD 4.0 Kernel Hacking Guide--i386/i386/machde
添加时间:2005-8-21 来源:网教中国 作者:
FreeBSD 4.0 Kernel Hacking Guide--i386/i386/machde

getmemsize(), 1419行. 找出并计算所有可用之记忆体, 并保留 msgbuf
(保留在 avail_end 後面, MSGBUF_SIZE 大小).


init386(), 1802行. 参数 first 为未使用的 free mem addr (physfree).

1824-1825? preload_bootstrap_relocate(), kern/subr_module.c, 234行,
relocate 预先载入(preload)的 kernel module. 执行 loader 的动作,
修改 module 的 address depend 资料.

1839-1860行, 设定 gdt (global descriptor table). 由於 gdt 的格式较为
杂, 因此有所谓的 soft_segment_descriptor (ssd),
i386/include/segments.h, 165行, gdt_segs 就是
ssd list, 让 gdt 较容易操作. 因此在 1853-1860行, 必需进行
转换动作, 由 ssdtosd(), i386/i386/support.s, 157行, 从 ssd 转换
成 CPU 所能接受的 segment descriptor 格式.

1862-1864行, load gdt, 使刚设好的 gdt 发生作用. lgdt(), i386/i386/support.s,
1521行.

1885-1894行, 设定 ldt.

1897-1923行, 设定 idt.
所有的 idt entry 都指向 vector routines, i386/i386/exception.s,
122行. 每一个 trap or fault 都会有对应的 entry point, 作为实
际 isr 和 cpu 之间介面. 关於上述介面, 另见专文.

1928行, cninit(), console 初始化.

1932行, isa_defaultirq(), i386/isa/intr_machdep.c, 219行. 设定 isa device
所使用的 irq (设定 icu;8259), 并设定对应的 isr.

1948-1955行, 设定并安装 tss.

1971行, getmemsize(), i386/i386/machdep.c, 1419行, 找出并计算所有可用之
memory, 并保留 msgbuf. getmemsize 会设立几个 global 变数.
physmem 实际可用的 page 数目.
Maxmem physcial memory address 的最大值.
phys_avail list of 可用的 mem block.
avail_start 由 pmap_bootstrap().
avail_end 最大可用之 physcial memory address.
所有的分配都必需小於这个位址.

1976-1979行, msgbuf initialization.

1982-1995行, install a call gate for system call.

1999-2008行, setup process 0.
上一篇:FreeBSD 4.0 Kernel Hacking Guide--i386/i386/locore 下一篇:FreeBSD 4.0 Kernel Hacking Guide--i386/i386/pmap.c
大部分文章摘自网上,如有侵犯您的权益请与我们联系,我们会第一时间进行处理,谢谢! [ 打印文章 ] [ 关闭窗口 ]
推荐文章
·FreeBSD handbook中文版 9 配制F
·FreeBSD 升级系统
·Ports & Package
·FreeBSD kernel 编译大法(二)ker
·FreeBSD 上使用Kerberos 5认证
·FreeBSD 5.x 中 gbfs 的修正,及
·FreeBSD 安装Linuxigd
·FreeBSD 使用cvsd创建安全的cvs
·FreeBSD trafcount命令介绍
·FreeBSD入门安装及汉化
相关文章
·FreeBSD 4.0 Kernel Hacking Gui
·FreeBSD 4.0 Kernel Hacking Gui
·FreeBSD 4.0 Kernel Hacking Gui
·FreeBSD 4.0 Kernel Hacking Gui
·FreeBSD 4.0 Kernel Hacking Gui
·FreeBSD 4.0 Kernel Hacking Gui
最新文章
·FreeBSD连载(94):基于NAT的负载
·FreeBSD连载(93):反向代理负载
·FreeBSD连载(92):基于DNS的负载
·FreeBSD连载(91):提升静态网页
·FreeBSD连载(90):单服务器性能
·FreeBSD连载(89):CGI和SSI的安
·FreeBSD连载(88):安全连接方式S
·FreeBSD连载(87):基于用户的访
·FreeBSD连载(86):对IP地址和域
·FreeBSD连载(85):配置Apache服(
Google