跟着瓦利哥学写OS

桑文锋 桑文锋

,软件工程师

课程简介 . . .

【课程目标】

上完课,就可以实现一个自己命名的小OS了。

 

【课程受众】

修过计算机相关的专业课程,至少学过操作系统,计算机组成,C语言程序设计,汇编语言等。

有兴趣的可以先加入【自己动手写操作系统】QQ群:82616767。注意,加群需要答题,只要认真回答,就能通过。

 

【关于收费】

听课后,一周后发邮件到[email protected]申请考试,考试通过,退款。否则,就等听完下次课,再申请考试,最多让申请三次。

【关于考试】

即使一次考试通过且退钱了,我建议继续申请答题,因为每次的题目都是针对本节课的,只有实践了,才能真正掌握。毕竟,退钱不是目的。你是为了学习知识。 

【课程大纲】

1.操作系统是如何启动的

   从插电到进入加载内核的整个过程

   bios的原理

   虚拟机的原理

   动手写一个软盘启动的hello world

2.从实模式到保护模式

   实模式的原理

   保护模式的原理

   从实模式到保护模式的跳转

   动手写一个在保护模式的hello world

3.虚拟内存的原理与实现

   资源是有限的

   线性地址与物理地址

   回顾分段

   理解分页

   动手写一个分页版的hello world

4.中断的原理与实践

   中断的本质

   bios中的中断

   常用的中断

   时钟中断与多任务

   动手实现键盘中断输入的hello world

5.内核态与用户态

   内核态的本质

   栈的切换

   用户态到内核态的切换

   动手实现一个打印hello world字符串的中断

6.多任务的实现原理

   认识TSS

   回顾时钟中断

   动手实现一个分别打印hello和world的多任务

7.真正的多任务实现

   如何创建新任务

   系统调用的原理

   fork系统调用的原理与实现

   实现一个可以fork新任务的os

8. 进入C语言世界

9. 新程序的加载与执行

   应用程序是怎么被加载和执行的

   exec系统调用的原理与实现

   可执行程序的格式

   实现一个可以exec新任务的os

10.用户态内存管理

   什么是堆,与栈的关系

   brk系统调用

   malloc的实现原理

   free的实现原理

   实现一个可以malloc和free的os

11.文件系统的原理与实现

   文件的原理

   read/write/open/seek/close系统调用

   实现一个原始版的文件系统,将字符串放入其中

12.Shell的原理与实现

   shell是怎么工作的

   管道的原理与实现

   实现一个可以执行简单命令的shell

13.图形显示

    图形显示的原理

    中文字符显示的原理

    实现一个图形界面下的shell

 

【老师简介】

瓦利哥,浙江大学计算机系本科&硕士毕业,百度工作7年。

......

(展开全部)

同学们的推荐 . . .

课程还没有推荐语

同学们的笔记 . . .

00:01:16 / 课时7 有用(0)
gs设置的问题,检测到是虚拟机的问题。 - vacing
00:35:15 / 课时2 有用(0)
wo d bijikjkalkjfk - vacing
00:01:15 / 课时2 有用(0)
00:34:43 / 课时1 有用(0)
经济 - heruilwm
全部9篇笔记

课程问答 . . .

柳彬鸿
提问 2014-07-03 21:11
回答 2014-07-04 18:17 桑文锋

没有教材,只有PPT,在github上,请自行下载:https://github.com/sangwf/walleclass

全部1个回答

学校里学不到的,都在多贝公开课

快来吧,现在就加入多贝!

同学们 . . .

333人正在学  /  7人学过
桑文锋
桑文锋 离线
软件工程师
瓦利哥,百度数据团队技术经理