美文网首页
操作系统开山篇

操作系统开山篇

作者: 我就是一个垃圾 | 来源:发表于2019-09-29 21:11 被阅读0次

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

1、操作系统的概念

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

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

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

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

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

3、用户空间和内核空间

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

4、操作系统的结构

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

宏内核

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

微内核

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

相关文章

  • 操作系统开山篇

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

  • Swift开山篇

    之前 一直想腾出时间去转型swift,也曾搭过swift的项目框架,后来由于公司的业务一直处于oc开发状态,稍微复...

  • 开山之篇

    这一次选择金旭亮老师的编程之路对我的启发还是蛮大的。所有的基础也都离不开一个核心的主题就是数学。从之前的高等数学到...

  • 遐思-开山篇

    点上烟,喝口水,整理下思路。 作为遐思文集的开山篇,其实并没有什么历史性的意义。没有什么开创性步伐的想法,也没有见...

  • Linux开山篇1

    之前我讲了shell编程,shell是能直接操作内核的解释型语言,写一个部署分布式集群的脚本,用其他语言可能要花上...

  • Linux开山篇2

    这两天在学习KVM KVM是内核级虚拟化技术 所以昨天我停止了 一天,大脑的疲惫能够将精神面貌这个东西和程序员挂不...

  • 诗忆-开山篇

    诗忆,不是诗意。顾名思义,就是对诗的回忆,在这里,当然是我自己曾写过的诗的一种回忆与记录。 以前年少轻狂,颇有一种...

  • golang-开山篇

    背景 Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师...

  • 开山

    最终还是从思科辞掉了,那就全身心投入到校招中来。好!每天更新博客,记录自己的学习历程。 想起来,我第一篇博客还是在...

  • 开山

    今天更新ubuntu,立贴开始学习:),希望可以做的更好,python,I am coming.

网友评论

      本文标题:操作系统开山篇

      本文链接:https://www.haomeiwen.com/subject/dxbfpctx.html