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

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

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值