操作系统
不会敲代码的假程序猿
这个作者很懒,什么都没留下…
展开
-
Linux0.11笔记——开机到执行MAIN函数
通常我们用C语言写的用户程序,必须在操作系统的平台上执行,即操作系统为应用程序创建进程并把应用程序的可执行代码加载到内存。但是,计算机启动的时候,操作系统并没有在内存中,显然我们首先要把操作系统加载到内存而这个工作最开始的部分,就是由BIOS 来实现的。 什么是BIOS? 为了解决最开始的启动问题,Intel将CPU的硬件都设计成加电瞬间强行将CS:IP指向0xffff0这个位...原创 2018-03-07 15:42:14 · 448 阅读 · 0 评论 -
Linux0.11笔记——执行MAIN函数到激活进程0
现在main函数开始执行了,可真正意义上的说linux操作系统开始运行了。main函数将设置程序在操作系统下运行所需的环境并创建进程0,操作系统才有了第一个进程。 设置根设备和硬盘信息:之前在setup程序中加载了一些硬件信息并存储在物理内存0x90000-0x901FC处,main函数从这些参数中设置了全局变量根设备ROOT_DEV、硬盘信息drive_info,这两个信息在设置操...原创 2018-03-07 16:51:37 · 473 阅读 · 0 评论 -
Linux0.11笔记——进程的文件管理
进程与文件的关系如上图所示,操作系统根据用户进程的需求来操作文件。 文件系统中数据结构介绍 Linux0.11中每个物理盘有一个引导块,通过引导块可以找到除去引导块的其他部分(从超级块到数据块的部分),该部分每个逻辑盘一个,而逻辑盘就是平常我们所说的分区。通过超级块可以找到i节点位图和逻辑块位图。i节点位图和逻辑块位图的每个bit分别表示一个i节点和逻辑块,空该位置0,...原创 2018-03-07 17:13:56 · 584 阅读 · 0 评论 -
Linux0.11笔记——进程从创建到退出全过程的一个实例
假设硬盘上有个可执行文件str1,用户在shell界面上输入指令./str1 程序,shell会响应并解析这条指令,便开始创建用户进程。 注意:在Linux操作系统创建新进程时,都是由父进程调用fork函数来实现的。Linux的理念就是由进程创建进程,而在此时父进程是shell。 一、创建进程 给新进程造壳 这一部分主要的任务是给str1申请进程号,获取空闲页构造task...原创 2018-03-07 23:54:17 · 1146 阅读 · 0 评论