中易网

学习操作系统的知识,看哪本书好

答案:1  悬赏:80  
解决时间 2021-04-08 11:31
学习操作系统的知识,看哪本书好
最佳答案
合实际一起看,效果会好的多。

书籍上讲的多是理论,可以自己再去找个开源的嵌入式OS,一起看着代码实现,就会好的多了。比如FreeRTOS,可以也买本书,学会编译,并在电脑里当成个应用跑起来,学会自己创建进程、协程后,进入对应的API实现看看。内核的调度、优先级、内存管理、资源管理、抢占式任务切换等等。

选择嵌入式OS是因为足够小,毕竟要为这个事情读Linux源码就是个大坑。FreeRTOS拥有大部分现代OS的各种核心功能,用来学习真是个好的例子。我也是学了FreeRTOS后,才逐渐让数年前操作系统的知识变得灵活起来了。

举几个例子,在FreeRTOS中的实现:

1. 线程管理:
给每个线程建立个私有的堆栈,每次在线程里调用任何的函数,所需的参数传递、本地变量等都是放在线程私有堆栈里的。这样各个线程之间不会发生混乱。该堆栈的建立一般还有个最大长度值,以免浪费内存过多,同时也限制了递归过深的情况。需要OS应用一开始就进行一个估算,调用栈会有多深。

2. 内存管理:
一般是先从物理内存里申请一大块内存,建立针对这块内存的分配表,每当有申请内存就记录一条,释放内存就选择时机将剩余内存合并。分配策略有多种,比如按照顺序,或者优先选择符合条件的最小空闲段。每个线程都建立自己的堆,有助于提高内存分配效率。

3. 进程/线程切换:
使用系统硬件上的定时器,每隔一定时间就发生一次硬件中断,此时当前进程/线程被停止,所有寄存器被保存到进程私有栈里。两次中断之间实际执行任务代码的部分,就叫做一个时间片。然后调用中断处理函数。这个中断处理函数就是OS内核里的任务切换功能,会重新选择处于就绪(ready)状态的各个任务中优先级最高的那个来运行。所以,理解并实现这个中断处理函数,就是理解任务切换的关键。放心代码不长。

4. OS内核调用:
现代的CPU,包括一些嵌入式MCU,都会严格区分user space和kernel space。两者的各种资源相对独立,甚至堆栈都不同。当user application需要调用内核提供的服务时,往往是将自己要调用的内核调用符号、参数、返回值放到内存中指定位置,然后触发一个软件中断。比如Cortex-M系列的SVCall,或者DOS的80中断。此时就切换到了kernel mode。此模式下的中断处理函数会根据系统调用内容分发调用请求,执行结束后,再根据返回地址跳转回去。

我推荐 6.828 / Fall 2014,往年的视频也很容易找到。这门课会接触到两个小的操作系统: xv6 和 jOS。课堂上主要讲xv6, 一个小的unix操作系统;而课程Lab分6~7个阶段让你填写jOS的关键代码。
这门课的好处就是理论加实践,而且课程节奏很好。
比如讲完系统调用,你就可以试着给xv6加个timer调用;讲完threads,你就可以试着给xv6加个系统调用,然后让这个系统支持线程...
Lab实现的jOS和xv6有很多设计决策不同,对比它们你可以更好的理解什么是操作系统;当然能自己亲手写一些代码感觉会很不一样(理论怎么转换到实践)

几点体会:

homework也许比Lab更有启发性(我是这么认为的);

如果看过CSAPP就最好了,汇编都不用学了,shell也会写了,memory也了解了。
6.828有个作业提交系统,只要邮箱就能注册了,然后可以互评Lab...

有了一些自己的体验后,然后结合书看也许就完全不一样了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
沈阳市外国语学校怎么去啊,有知道地址的么
我右门牙摔断了,补牙要多久?过程是什么?详
这是沙土吗?种花可以吗?
求这种风格的笔刷设置,或者有谁知道这种水彩
长沙有什么像金满地一样卖衣服的地方
梦幻西游炼妖怎么还掉忠诚度
宿舍安有信号屏蔽器,我整一个随身路由器就是
京上桥酒业我想知道这个在什么地方
妹子我 耍LOL 战争学院 ,求带
怪物猎人2G 运气有什么用
为何很多公司老总一上市就身价陡增?
俺是打工仔,在佛上开什么网店挣钱啊?
pvc夹网布英文怎么说
国大药房聚寿堂店地址有知道的么?有点事想过
收款管家卡是什么业务?工行企业网上银行的哪
推荐资讯
为什么喜马拉雅上下载广播剧下不了
问个关於浪琴机械表的问题!  我昨天带了一
苗颜坊祛斑祛痘在什么地方啊,我要过去处理事
养殖红山草猪种什么草
大秦迷失转生地图隐藏坐标
大足石刻受损情况有哪些?
刚补的联通卡信号满格缺打不开数据,为什么?
我是四川的考生 今年理科350分能补录上什么院
中央民族大学和中国青年政治学院 哪个学校好
演员拍吻戏的时候,是真亲还是假亲?
电锯惊魂里哪一部是在天平秤上称肉的,
恢复出厂设置能不能恢复之前删除的系统文件
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?