博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
你应该知道为什么需要内核
阅读量:1981 次
发布时间:2019-04-27

本文共 885 字,大约阅读时间需要 2 分钟。

640?wx_fmt=png

不知道大家想过这个问题没有?为什么要有内核?如果没有内核有怎么样呢?

因为有了 unix 内核,有了 minix 后面又有了 Linux 内核,内核这个思想越来越根深蒂固,估计没学什么计算机知识的人都能侃出点所以然来。

在技术上来说,内核应该是连接硬件和应用程序的,说白了还是为应用服务,让应用程序更多的做自己的事情,所以说内核的时候,肯定是离不开驱动程序的,如果一个招聘的人说,我们需要一个内核开发工程师,如果一个不懂驱动开发,不懂电子硬件知识的人,怎么可能做得好内核开发呢?

640?wx_fmt=png

我们使用计算机的时候,我们把手机或者电脑当座一个操作系统使用,打开QQ,打开微信,等等,但是对于应用程序来说,内核就是他的操作系统了,他可以通过系统调用来完成各种工作,比如我们获取一个文件的内容,我会调用 open ,read 来获取里面的信息。

如果很多人使用一个电脑,这个时候用电脑来比喻可能不是很恰当,用服务器来比喻吧,我们小组的几个工程师都在编译自己的代码,内核其实就是一个多任务协调者,对进程进行资源协调,让他们假装认为就只有自己一个人在独享计算机资源。

640?wx_fmt=png

微内核和宏内核

这个就有点搞笑了,林纳斯和minix的发明者因为这个还吵了一架,minix 发明者说微内核才是先进的,当然被林纳斯啪啪啪打脸了,打脸的原因不是说了什么话,而是林纳斯在宏内核上做了优化升级,而且现在的 linux 地位,足以秒杀minix几条街了。

微内核有点像中央集权的意思,就好像,一个打印机进程,你负责给中央CPU汇报就可以了,你不能跟其他藩王沟通,这样有可能你们会发生叛变,这个核心思想非常好,但是实践起来一团糟,当初BSD操作系统就想这么搞,结果搞了很多年,都没有做出一个稳定性良好的系统,思想先进不能落地也就只是空谈了。

宏内核就跟上面的相反了,负责内核模块的子系统之间是可以打电话的,他们是可以通过内核符号表来互相调用的,这样看起来耦合性会非常高,但是可惜的是,我们的林纳斯大神让他变成了现实,我们的Linux 系统就是用这样的思想完成了代码编写。

晚上随笔写了下,有笔误和错误的地方,请见谅哈~

640?wx_fmt=jpeg

转载地址:http://harpf.baihongyu.com/

你可能感兴趣的文章
Excel表格数据生成ECharts图表
查看>>
阿里云短信服务python版,pyinstaller打包运行时缺少文件
查看>>
Oracle的pfile和spfile的一点理解和笔记
查看>>
WebService的简单案例记录(Java)
查看>>
Html利用PHP与MySQL交互
查看>>
dos简单命令
查看>>
mysql的安装与卸载与Navicat远程连接
查看>>
java实现稀疏数组及将稀疏数组存入硬盘中
查看>>
2021-05-18
查看>>
Flutter 使用插件打开相册、相机
查看>>
libuv实现tcp代理服务器
查看>>
libuv使用不当导致的内存泄漏
查看>>
libuv实现ping包发送和接收
查看>>
基础架构系列篇-CENTOS7安装NGINX
查看>>
基础架构系列篇-系统centos7安装docker+COMPOSE
查看>>
基础架构系列篇-系统centos7中docker安装rabbitmq
查看>>
基础架构系列篇-NGINX部署VUE
查看>>
个人电商项目,基于uni-app+ springcloud +VUE技术
查看>>
基础架构系列篇-系统centos7安装kafka
查看>>
基础架构系列篇-系统centos7中docker安装分布式文件存储服务minio
查看>>