操作系统通俗理解 及书籍推荐

OS归根结底是在管理计算机上的资源,什么是资源?CPU的运算能力、内存、磁盘,当然还有各种设备,这些资源如何有效利用,达到高效率,OS就干这事。

比如多个进程,如何保证运行流畅,这涉及到多个进程如何协调/通信、进程在内存中如何放置、中断处理(涉及进程的切换频率、数据的接收等)

要完成这些,必然会用到数据结构和算法知识,当然,以及缜密的逻辑。。

再比如一个大家习以为常的功能,计算机上的窗口如何移动、多个窗口如何共存?

实现这些功能,本质上是在显存里捣鼓。

怎么移动呢,移动首先需要鼠标吧(这里说的是图形化用户界面),这就需要接收鼠标数据,这会涉及鼠标中断以及数据解读,因为鼠标可不会告诉你:“我点了这里,你移动过来吧!”,鼠标传送的都是原始的按键数据和移动数据,要用这些数据还要结合显存解读出来才行。

多个窗口就需要用到图层技术,顾名思义就是把窗口放到不同的层,每个层在显存中的地址不一样,其实就是把这些窗口放到显存的不同位置,这样窗口内部的功能就会互不影响。

现在这些东西,都成了黑盒了,你去做网页的时候,做界面设计的时候,调用函数,调用到最后其实都是使用了OS提供的API,直接拿来用就完事了,几乎没有人去了解这个调用过程发生了什么,但它们是搭建起整个计算机图像操作系统的重要基础之一,其中涉及到很多程序设计的技巧,虽然去做,去了解这些没有什么实际应用价值(如果你能优化,当然还是有价值的),但从中能了解到计算机软件设计的底层原理,这对于应用层的开发或许是一种启迪吧。

其实,真正热爱计算机的人,大多都在底层活跃,比如编程语言的设计、网络协议的设计、OS的设计、软硬结合方面,做这些的人,往往才是发自内心热爱程序的人,因为你完全可以选择做应用层,避开那些无聊的底层设计。要是哪一天万一计算机软件中的应用层、中间件像科幻小说中那样全部消失了,大部分人就没什么事儿可干了吧。。。整个世界就陷入停滞,这时底层开发者就会重新发挥它们被忽略的作用。

在OS中,几乎所有的控制,都会用到各种结构,比如中断注册表、内存段表、上面说到的图层结构、每个进程自己的管理结构,还会有一个管理所有进程的总结构。这些,其实某种程度上是必然的,人的思维就是要把各种相同作用的事物想办法放置到一个通用的东东里,这样方便管理、修改和阅读,也就能更高效的利用资源

目前的OS如Windows、Linux都主要是C开发的,我想C语言还是最能操作底层的高级语言,C对内存的控制能达到bit级别,当然OS中还有部分汇编,汇编比c更加强大,C有些力不能及的地方就必须使用汇编了,比如一些汇编指令是直接作用于寄存器的,而且关键之处改用汇编也许还有一个好处,那就是大多数程序员是看不懂的,这也许算是一层防护吧(笑)。。

    随着时代发展,需求变多,OS会不断升级,变得庞大、复杂,诸如最新的量子比特计算机,它采用的又是什么OS呢,又或者根本没有所谓的传统OS?我也不知道,但我相信所有的技术都是可以理解的。它的复杂是由一个一个简单的原理组成的,真正难点在于梳理清楚程序之间的逻辑链,当你去研究一个OS内核的时候,只有跟着程序逻辑到处跳转,才能慢慢理清思绪。当然如果是开发更高级的操作系统就需要更加创新的思维了。

最后推荐一本书吧:

《30天自制操作系统》 一个日本人写的,通俗易懂,带些幽默,有几个难理解的章节,但花时间可以弄清楚的。如果按照书上实现了这个系统,相信你会对OS有更深的理解!

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值