如何学习操作系统原理?
2018-06-18 04:00:57来源:未知 阅读 ()
我们简单地谈一谈如何学习操作系统原理,这里我们假设读者基本是一个小白,只有一点算法和数据结构的基础,比如会用C语言写链表,快排之类的。有一点我们必须强调,一切没有(伪)代码的理论书籍都是在耍流氓。所以根据这条准则,我们得通过编程的方式来学习操作系统原理。引用某老师的一句话,"Learning by coding them"。还有一点,学习操作系统原理不是学习怎么用各种API以及如何配置操作系统里头的各种参数,我们得站在更高的角度去审视,我们得思考如何在内核中实现这些API和配置项。
本着授人以鱼不如授人以渔的准则,我们给出一个确实可行的学习路线,最好循序渐进地进行,当然可以根据自身水平跳过某些阶段:
第一阶段 学习计算机组成原理和体系结构:
第一步,上coursera网课:from Nand to Tetris I,获得基本的计算机组成原理知识。
第二步,细读深入理解计算机系统第二版,并做课后对应习题和实验,获得基本的计算机体系结构方面的知识。资源可以从csdn搜索各章对应Lab源码和解题报告。
第二阶段 学习80386相关的汇编知识:
第一步,细读汇编语言第二版(王爽),略读Professional Assembly Language (Richard Blum),细读X86汇编语言从实模式到保护模式(李忠),获得能够徒手编写gasm,nasm,wasm格式的16位/32位80386体系下的汇编小程序,并能自如地在汇编中调用C函数,在C函数中内联汇编或者调用汇编函数,重点了解80386体系方面的知识。
第三阶段 阅读早期操作系统代码:
第一步,细读orange'S 一个操作系统的实现(于渊),获得操作系统微内核体系基本知识。
第二步,细读Linux内核完全注释(修正版v3.0 赵炯)+ UNIX操作系统设计(Maurice J.Bach),获得操作系统宏内核体系基本知识。
Linux 0.11 源码+bochs平台运行环境:
配套视频链接:网易云课堂:操作系统课程,哈尔滨工业大学
hit-oslab-linux-20110823.tar.gz + Linux内核完全注释(修正版v3.0).pdf
配套资源链接:https://github.com/Yuandong-Chen/Linux-0.11
通过上述步骤的学习,读者能够获得扎实的操作系统原理方面的基础。重要的是,上述所有资源都可以在网上找到,完全免费。你完全能够发挥自己的想象,写出一个属于自己的基于80386体系的但是没法联网的操作系统了。如何写出一个能联网的操作系统呢?这是计算机网络方面的知识,又是另外一条学习路线。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 如何0基础学习C/C++? 2020-06-06
- vtk学习记录(三)——初识vtkRenderer 2020-05-16
- C++基础 学习笔记六:复合类型之数组 2020-04-25
- C++基础 学习笔记五:重载之运算符重载 2020-04-23
- C++基础 学习笔记四:重载之函数重载 2020-04-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash