- 畅销套餐
- 精选套餐
- 人气套餐
- 尊享套餐
- 高薪套餐
![](https://s2.51cto.com/wyfs02/M00/6B/68/wKioL1Us4fzRqV5YAAL0WZgS1uE222.jpg?x-oss-process=image)
![](https://s2.51cto.com/wyfs02/M00/6B/6C/wKiom1Us4WOgvzY7AAMJ6It9ypA618.jpg?x-oss-process=image)
![](https://s2.51cto.com/images/201607/77c3f00278000f9f65b637467fd8c1e984d5e3.jpg?x-oss-process=image)
![](https://s2.51cto.com/images/201806/12/84885901723e9ed5698e06a7c2c7e9ae.png?x-oss-process=image)
![](https://s2.51cto.com/images/201711/07/b15ebde672b40fffa7a52d98eff4c978.png?x-oss-process=image)
![](https://s2.51cto.com/images/201803/13/f8826d1d9942a8b7b9051209bed15e0b.png?x-oss-process=image)
![](https://s2.51cto.com/images/202102/10/9b7122a8e39d6fadc77d42c30f229337.png?x-oss-process=image)
![](https://s2.51cto.com/images/201904/16/9ffbc7921db51221a141658e33c59161.png?x-oss-process=image)
![](https://s2.51cto.com/images/201708/21/decb63df9d35bf9f00bf089c3e87efff.png?x-oss-process=image)
![](https://s2.51cto.com/images/201711/07/b15ebde672b40fffa7a52d98eff4c978.png?x-oss-process=image)
![](https://s2.51cto.com/images/avater/201907/a8883f592d7bfc95a5b772d98f24e5b0cd70ee.jpg?x-oss-process=image)
![](https://s2.51cto.com/images/201708/21/decb63df9d35bf9f00bf089c3e87efff.png?x-oss-process=image)
![](https://s2.51cto.com/images/201711/07/b15ebde672b40fffa7a52d98eff4c978.png?x-oss-process=image)
![](https://s2.51cto.com/images/avater/201907/a8883f592d7bfc95a5b772d98f24e5b0cd70ee.jpg?x-oss-process=image)
![](https://s2.51cto.com/images/201708/21/decb63df9d35bf9f00bf089c3e87efff.png?x-oss-process=image)
- 课程介绍
- 课程大纲
适合人群:
对操作系统内部工作机制感兴趣,想要了解操作系统设计原理,并且设计自己的操作系统的大学生、软件开发人员
你将会学到:
帮助同学深入理解操作系统的运行原理,如进程切换、设备驱动、文件系统、系统调用、应用程序加载执行等
- 深入理解操作系统的工作原理,如系统调用、文件系统、进程上下文切换
- 了解GCC工具链的使用方法
- 理解32位x86处理器的工作模式
- 理解C语言与汇编语言之间的相互调用
- 理解一个应用程序是如何创建出来并与操作系统进行交互
- 提升对C语言的应用熟悉度
课程简介:
欢迎来到从0写 x86 Linux操作系统课程。这是我个人(非公司团队)准备了两年多时间完成的课程。详细讲解了如何从0行代码编写一个类似Linux 0.11的操作系统。
整个系统大概6000行代码,功能简介如下:
支持多进程运行
支持shell加载磁盘上应用程序运行
支持虚拟内存管理,实现进程之间的隔离
键盘和显示器的支持
引用标准C库,使得应用程序开发更加方便
十余个系统调用:fork()、execve()、open()、write()、exit()等
进程与操作系统不同特权级分离
课程设计思路
我的想法提供一个简单、易学的操作系统课程,并非设计一个非常棒的操作系统。自己的水平有限,达不到这种高的设计目标。所以设计这门课程时,参考了自己过去学习操作系统时面临的以下几个痛点:
操作系统课程和书籍过于抽像
直接看成熟系统代码太过于复杂
硬件编程经验有限,很讨厌写汇编,对x86硬件体系结构了解有限
设计思路一:不作源码分析,是从0开始写代码
尽可能能遵循着初学者的学习体验,从0开始写,不断地提一些需求或者问题来完善代码,而不是拿一个现成的代码进行分析。
设计思路二:尽可能少用汇编,汇编代码不到200行
对于一门学习操作系统原理的课程而言,汇编其实是不重要的东西。但是这恰恰是不少尝试学写操作系统的同学面临的第一个大的困难。哪怕仅仅是读别人写的汇编代码,就要费很大的功夫。课程在代码上进行了很大的优化,尽早进入C语言环境运行,减少汇编的使用。
设计思路三:算法和结构简单
课程中没有用到任何复杂的算法和数据结构,只使用了链表和简单的位图。
设计思路四:提供课程支持和答疑
在学习过程中,有任何问题都可以直接联系我答疑,或者就一些技术问题讨论。
常见问题:
问:使用什么开发语言
答:使用汇编语言+C语言开发,其中95%以上为C代码
问:需要什么样的学习基础
答:对C语言的使用要求比较熟练,有过8086的汇编语言编程经验(简单接触过即可),最好是有过一些Linux系统编程的经验
问:我用的Windows/Linux/Mac可以学习这门课程吗
答:可以,已经在WIndows 10/Ubuntu/Mac上测试过
问:能提供课件吗
答:课件不提供下载,学习过程中有需要请记好笔记,参考资源中提供的相关文档
问:开发出来的是Linux操作系统吗
答:不是的,只是和Linux功能上类似,并非Linux系统
课程大纲-从0写自己的Linux x86操作系统
第1章课前准备(24分钟2节)
第2章开发环境准备(48分钟5节)
第3章前置课(选学,介绍x86保护模式下的编程)(6小时36分钟31节)
“李述铜”老师的其他课程更多+