打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
快速编程基础知识词典之操作系统篇(一)

操作系统原理作为计算机专业必学的一门基础专业课程,想必每个程序员都应该了解一下,今天我们就来说说几个基础的和操作系统相关的词汇。

内核

在学习操作系统原理的时候,很多书籍都会分处理器管理、存储器管理、文件管理及设备管理等等,也就是说,一个系统要运行起来,必须提供这些管理,于是我们将实现对这些管理的程序称之为操作系统的内核,其中处理器管理就是对CPU的管理,具体表现为进程和线程等,而存储器管理就是内存管理,具体表现包括为程序分配运行内存,回收已经不使用的内存,以及实现进程之间内存独立等等,而文件管理就是对文件进行管理,比如创建、删除、修改文件名,当然这里包括目录哈。

这里需要注意的是,我们平时生活中说的操作系统就是在内核的基础之上,实现的一系列的应用,比如可见的桌面、可见的磁盘等等,如果没有内核提供的各种API接口,我们的上层应用是什么都做不了的,比如我们用鼠标右键新建一个文本文件,其实就是调用了内核的文件系统管理的API接口或者封装了文件系统管理的高一级API接口。

总而言之,我们可以这样认为,我们现在能够用的软件,比如QQ、微信及今日头条等等,都是在内核提供的接口基础之上开发的。

系统调用与库函数调用

系统调用即对内核接口的直接调用。

在上面的内核部分,我们已经知道了,用鼠标右键新建一个文本文件本质上就是调用了内核的文件系统管理提供的API接口(即系统调用)来完成的,之前的文章说到,为什么我们不用C语言去完成一个网站,而用PHP或者Python呢,一个重要的原因就是,后者封装了很多操作,非常有利于我们去实现网站,同理,内核提供的接口,即一系列的函数是非常复杂的,同时存在不可移植和性能问题空间切换问题等,如果我们直接去用,成本很高,于是我们的前辈就对这些接口进行二次或多次封装(得到库函数),更方便我们上层应用去使用,也就是我们的上层应用现在仅仅通过库函数调用就可以了。

当然出现库函数调用是有其他原因的,一个最重要的原因就是系统调用每次都会在用户空间和内核空间进行切换,现在有了库函数,我们就能够实现写文件的时候,先将数据写到用户空间的缓冲区,等缓冲区满了,再一次性将数据通过系统调用写入到真正的文件里面去,从而减少系统的调用次数。

驱动程序

我们都知道,我们创建的文件,最后保存了之后,它肯定是在硬盘上的,那么现在问题来了,操作系统是怎么样将数据保存到硬盘上面的呢?和上面说的原理一样,如果硬盘本身不提供保存数据的接口,你操作系统再强大,也是无法将数据写入进硬盘的,所以我们这里就将操作系统与硬件之间的这个通讯程序叫作驱动程序,有了驱动程序,才能够让操作系统明白,这个硬件是怎么样使用的。

好了,这是本期的编程基础知识,如果大家有什么不明白的,可以在评论区留言,如果有说得不到位或者不太正确的地方,也请在评论区指出,非常谢谢大家阅读本文,如果觉得文章还好,可以分享、赞或者评论,祝大家周末愉快。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
今天给大家讲解一下Linux系统调度
Linux系统调用及用户编程接口(API)
Linux 内核剖析
详解Linux系统架构--内核(内存、进程、设备、文件系统和网络)
作为一个Linux新人,你必须知道的事
[转载]OO Programing in C - C/C - ChinaUnix.ne...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服