linux0.01 课程设计,Linux0.01_目录.docx

Linux0.01_目录

目录名所属文件boot核心引导代码fs文件系统include头文件initInit 进程,系统中执行的第一个进程kernel系统调用lib库代码mm内存管理tools内核引导文件的制作工具boot 目录文件描述boot.sBIOS 启动的时候加载并执行的代码head.s32 bit 的引导代码,调用 init_main()boot.s 文件说明加电自检结束后,boot.s 的代码被加载到 0x7C00 处,然后 boot.s 将自身移动到物理地址的 0x90000 处,接着跳转到该处执行。boot.s 使用 BIOS 中断在屏幕上打印 “/nLoading system.../n/n”接着读取核心镜像文件到 0x100000 处,然后关闭引导设备,保存光标位置,关闭所有中断,再将系统核心从 0x100000 复制到 0x0000 处。接着载入中断描述符表和全局描述符表。head.s 文件说明该文件包含了 32 位系统的初始化代码。初始化代码的物理地址为:0,这个地址也是系统分页目录存放的地址。因此,系统初始化完成后,系统初始化代码将被分页目录的数据替代。head.s 的具体工作说明:setup_idt:建立一个 256 个入口的中断向量表,并正确设置中断向量。设置完中断向量后,打开中断。setup_gdt:建立一个新的 GDT,并正确设置表项。在新的 GDT 中,只有两个表项被装载,这两个表项是在 init.s 中建立的。setup_paging:通过 cr0 标志位设置为 0 来建立一个页表。建立的页表可以映射机器的前 8M 物理内存。head.s 由 boot.s 调用执行,当 head.s 执行时,系统运行在 32 位保护模式下。当 head.s 执行时,中断向量表与全局描述符表都已经被正确设置,并且合适的值被装入到 CPU 的帧、栈、堆栈指针寄存器中,然后检查有没有浮点数处理单元,如果没有,就在中断向量表中设置一个软件异常处理程序,便于模式浮点数运算。因为物理地址 0实际上是页表数据的存放地址,因此在系统启动的最后阶段,所有的启动代码都被页表数据覆盖,启动代码将执行一个 jmp 指令,跳转到页表后的第一个地址,这个地址就是 _main() 函数的入口地址,这时,系统就执行 init/main.c 中。fs 目录fs 包含了文件系统的所有功能:文件名文件包含的函数bitmap.cnew_block(),free_block(),new_inode(),free_inode()block_dev.cblock_write(),block_read(),ll_rw_block()buffer.cget_hash_table(),get_blk(),sys_sync(),brelse(),bread(),buffer_init()char_dev.crw_char()exec.cread_head(),read_ind(),read_area(),do_execve()fcntl.csys_dup2(),sys_dup(),sys_fcntl()file_dev.cfile_read(),file_write()file_table.cfile_table[]inode.csync_inodes(),bmap(),create_block(),iput(),get_empty_inode(),get_pipe_inode()ioctl.csys_ioctl()namei.cnamei(),open_namei(),sys_mkdir(),sys_rmdir(),sys_unlink(),sys_link()pipe.cread_pipe(), write_pipe(), sys_pipe()read_write.csys_lseek(),sys_read(),sys_write()stat.csys_stat(),sys_fstat()super.csuperblock[],do_mount(),mount_root()truncate.ctruncate()ttyioctl.ctty_ioctl()open.csys_utime(),sys_access(),sys_chdir(),sys_chroot(),sys_chmod(),sys_chown(),sys_open(),sys_create(),sys_close()include 目录该目录中包含了内核头文件也包含了 libc 中的内联函数文件名功能a.out.h定义可执行文件方面的信息cons.h定义内核使用的一系列函数ctype.h定义标准 C 的类型errno.h定义系统错误代码fcntl.h定义文件控制的常量与函数si

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值