摘要:
照着书上来的 大概理解一下这两个的作用 首先是exit 就是只一个程序执行完毕 然后将返回值存储到pcb中 然后主动调用exit 退出程序 然后由内核去回收页框 emmm 然后是wait wait从字面意思来讲就是等待 父进程通过wait 来将自己阻塞 然后系统会去执行子进程 子进程执行结束后 会将 阅读全文
摘要:
fork的实现 首先fork实质上是开了一个新的子进程 同父进程的代码是一样的,但是拥有的地址空间和进程pid号不同 意思是仅有执行的功能相同 书上实现fork的方法首先是给每个进程都增加了一个新属性 就是parent_pid 然后 开始fork()被调用时 会先为fork在内核内存池中分配一页空间 阅读全文
摘要:
翻来覆去看了好多遍的内存管理 还是没有弄明白 先把想明白的记下来好了 首先 是开启分页管理 一共三步 1 准备好页目录表 页表 2 将页目录表的物理地址写入到cr3寄存器中 3 打开cr0的31位 即PG位 先说说准备页目录表和页表 页目录表被放在了低端1MB内存之内 具体位置是0x100000 占 阅读全文
摘要:
Linux 文件系统借鉴了inode,inode的结构是 也就是说,在一个分区中 有多少个文件 就有多少个inodes,而一个文件最大,不会超过(12 + 256 + 256 × 256 + 256 × 256 × 256)个数据块大小 同时,目录和普通文件一样,都是一个目录对应一个inode ,如 阅读全文
摘要:
首先区分MBR EBR OBR 图中可以看出 硬盘开头有一个MBR称为主引导扇区 然后是几个主分区,最多是4个主分区。MBR中有个64字节大小的分区表,一共是4个表项 MBR的组成: 446byte的引导程序 64byte的分区表 0x55aa魔数 对硬盘的操作主要是通过两种寄存器,一个通道上的Ma 阅读全文
摘要:
第七章 关于中断 CPU收到中断后 会在中断描述符表中通过中断向量号进行索引(提前为每一种中断分配好中断向量号) 中断向量号通过INTR或NMI引脚传入CPU 中断发生时的压栈 1根据CPL和DPL判断是否发生特权级的变换,将SS_old(用0扩张为16位)和ESP_old压入栈 2压入EFLAGS 阅读全文
摘要:
系统调用的实现思路 1用中断门实现系统调用 用0x80号中断作为系统调用 2在IDT中安装0x80号的中断描述符 并注册相应的中断处理例程 3建立系统调用子功能表syscall_table 利用eax寄存器中的子功能号在该表中索引相应的处理函数 4用宏实现用户空间系统调用接口 _syscall 代码 阅读全文