Linux内核设计读书笔记
文章平均质量分 74
yangzhiyuan0928
这个作者很懒,什么都没留下…
展开
-
进程1执行——安装硬盘文件系统
接着上一篇文章,轮转到进程1后,进程1接下来会去执行fork中int 0x80中断返回时下一行代码,即if(__res>=0),所以之后将从这行代码开始执行。当执行到if(__res>=0)后面一行语句return (int) __res;时,返回值是0,即fork()调用返回0,接下来将执行main()函数中的init()函数,接下来的工作就是本篇文章要说明的:安装硬盘文件系统。原创 2016-11-13 22:02:16 · 330 阅读 · 0 评论 -
进程1格式化虚拟盘并设置虚拟盘为根设备并加载根文件系统
原创 2016-11-17 22:59:07 · 347 阅读 · 0 评论 -
进程2的创建与执行
进程1第一次执行,完成设置硬盘信息、格式化虚拟盘(根设备)、加载根文件系统后会回到下面语句: if(!fork()) { init(); } //===================================== 分隔符 ==========================================----init();原创 2016-11-20 22:08:42 · 418 阅读 · 0 评论 -
进程1的创建与轮转
进程1是由进程0创建的,创建过程如下:main() { fork() } ---> _syscall0(int,fork) ---> int 0x80中断进入系统调用(特权级由0切换到3) ---> _sys_call --->sys_fork() ---> copy_process(),在该函数中初始化创建的进程1的TSS结构,将tss段插入到gdt描述符表中,并设置好TSS的段基址和段长度原创 2016-10-27 17:43:02 · 539 阅读 · 0 评论 -
从开机加电到执行main函数
从开机到main函数的执行分三步完成: (1)启动BIOS,准备实模式下的中断向量表和中断服务程序。 (2)从启动盘加载操作系统程序到内存,并为保护模式做准备,加载操作系统程序的工作就是利用(1)中准备好的中断服务程序实现的。 (3)为执行32位main函数做过渡工作 下面将详细说明这三步所完成的任务。一. BIOS启动 Intel CPU的硬件都是设计原创 2016-10-26 22:29:03 · 1338 阅读 · 0 评论 -
Linux用户态和内核态
本篇文章主要是转载: http://www.cnblogs.com/bakari/p/5520860.html http://blog.chinaunix.net/uid-1829236-id-3182279.html一. 引述 当我们说“从用户态切换到内核态”时(例如在进行系统调用read或fork时),是指当前的进程从一种状态进入了另一种状态(并没有进程的转载 2016-11-24 00:06:45 · 1196 阅读 · 0 评论 -
用户进程与内存管理
用户进程与内存管理原创 2016-11-22 23:12:29 · 2087 阅读 · 0 评论