操作系统开山篇

2019-09-29  本文已影响0人  我就是一个垃圾

操作系统就是位于计算机用户与计算机硬件之间的一个大型程序,可以更好的管理计算机的硬件,方便计算机用户。

1、操作系统的概念

可以说操作系统的定义有很多,花里胡哨,五花八门。但是有一个比较公认的定义:操作系统就是一直运行在计算机上的程序,也就是内核kernel。此种情况系统程序不包括在操作系统的概念之中。

操作系统的启动:在电脑一上电,首先运行的不是操作系统,而是初始程序BIOS引导程序,初始化各种硬件设备,然后引导程序将操作系统加载到内存中,然后跳转到操作系统的代码执行,然后出现系统的首个进程init(Linux中的首个进程),从此操作系统开始为系统和用户提供服务。

操作系统中事件的发生通常用中断来实现,硬件中断触发之后进入中断向量表中执行对应操作,执行相应的中断服务程序。

2、处理器的结构及IO编址

这里说的处理器的结构是说冯诺依曼结构和哈佛结构。
冯诺依曼结构:数据和程序都放在内存中,放在一起。Intel就是这样的,也就是我们的电脑
哈佛结构:程序和数据分开放,大部分的单片机好像都是这样的。
看到别人的博客,说是还有混合结构的,二者混合,比如我们现在手机中的ARM芯片。
芯片内部的Dcache用来缓存部分代码,icache用来缓存部分数据。只有需要改变时,cache才会到RAM中加载新的数据。所以大部分时间CPU都是通过哈佛结构和cache(高速缓存)通讯,这个速度是非常快的这样在芯片外部,利用冯诺依曼结构,节省了外部的PCB走线资源。在芯片内部,利用哈佛结构提高了CPU访问数据的速度。

3、用户空间和内核空间

用户应用程序运行在用户空间,操作系统运行在内核空间。内核空间可以实现一些涉及系统安全和危险的操作,不能让用户程序拥有这么强大的功能,因此才有了用户空间和内核空间,当程序要切换到内核时,就要切换到内核空间,用户空间亦如此。

4、操作系统的结构

操作系统的内核很大,很难管理,所以现在基本有两种内核的结构,就是宏内核(又叫单内核)和微内核

宏内核

将内核从整体上作为一个大过程实现,并同时运行在一个单独的地址空间。所有的内核服务都在一个地址空间运行,相互之间直接调用函数,简单高效。Linux就是宏内核的。

微内核

微内核说白了就是从内核中删除所有不必要的部件,只留下最重要的部分,其余的都放到用户模式下,放在用户空间中实现。比如内核只含有内存管理和进程调度的功能,驱动部分的代码全部都放到用户空间去。微内核的模块化很好,但是效率低,因为调用驱动部分代码还要切换到用户空间执行。Windows NT时微内核的,但是现在的Windows已经很像基本就是宏内核的了。

上一篇下一篇

猜你喜欢

热点阅读