关闭

程序不能脱离操作系统的原因

标签: linux内核工作磁盘io
1224人阅读 评论(3) 收藏 举报
分类:

操作系统起到如下两个作用:
     一、将所有的系统资源收归己有,然后视需要有条件地分配给用户进程,目的是协调诸多进程对系统资源的请求;
     二、提供任何一个用户进程都需要的功能。比如维护页表,比如磁盘IO等。这一方面是因为第一条的理由,另一方面也简化了程序的编写。所以这些程序脱离了操作系统就无法执行。

     编写“脱离”操作系统的程序主要是要完成:CPU和外设的初始化,在初始化完成之后,再设法把程序从ROM中读到主存,初始化CPU寄存器,将指令计数器(i386上是CS:IP的组合)指向程序代码的开始处,就可以开始运行了。为了方便起见,i386系列CPU可以工作在实模式,省去了处理保护模式工作的麻烦。
     整个过程系统初始化和寄存器初始化都是系统相关的,可以参考lilo和linux内核的初始化代码。
     上面说的都是系统同一时刻只运行一个进程的情况。如果有多个进程并发执行,就要写一段调度和协调的代码,这本身就是一个操作系统了。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:60235次
    • 积分:957
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:7篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论