去年秋招及年后找工作的小伙伴应该感受到了寒气逼人,机会又少、又卷……加上chatGPT的出现,可以预见未来几年,简单、基础、重复性工作大概率会被机器人取代……我们将何去何从呢?毫无疑问,成为技术大牛!

如何成为技术大牛呢?修内功!让自己变得强大且不可替代!

这些修内功的课程,市面上少有人做,做相关课程的人,大多缺实战经验,所以课程偏理论,大家学起来总感觉软绵绵的不得劲…

子牙老师之前是JVM专家,这次带来的是他的第二个课程:手写操作系统,非常硬核、重实战…推荐给大家


哈喽,我是子牙,一个很卷的硬核男人。喜欢研究底层,聚焦做那些大家想学没地方学的课程:操作系统、虚拟机、模拟器、编程语言…

我经常被问到:子牙老师你是怎么学会OS的?我就是用很笨的方式学会的:手写操作系统。计算机圈有个不成文的规则:不重复发明轮子。这个原则是针对干活,从学习的角度,重复发明轮子,把自己放在设计者的角度,而不是学习者、研究员的角度去学习,是最高明的学习方式

下面我就给大家分享下我是怎么手写一个操作系统的,我也顺便给大家介绍下我打造的这个课程。

经常也有人问我,手写操作系统有什么意义呢能升职加薪吗?不说个例不靠技术走上去的人,大体来说,技术行业,位居高位年限百万的,基本都是技术牛叉的那波人吧。所以你有答案了吗?

为了让大家能够快速了解或者更好的了解手写操作系统小班,我录了个视频,感兴趣的可以看看

01

手写操作系统

手写一个操作系统,应该是所有Coder的梦想吧。奈何这方面的资料奇缺,虽然有部分书籍,但是没有一定的基础也是看不懂的,导致很多Coder这一生都没能实现这个梦想。

我比较幸运,十多年时间,误打误撞补齐了手写操作系统需要的绝大多数基础。先说下一个完整的操作系统包含哪些,如图

fa9d344155111bd39618bf0cf864f91b.png

那实现一个操作系统需要哪些基础呢?

1、语言层面:汇编、C语言。这两门语言要达到精通级别,能融会贯通使用才行。因为写内核会涉及到汇编与C语言之间的互相调用

2、操作系统层面,对操作系统的中断机制、进程线程机制、内存机制要非常了解,最好是了解Windows、Linux两个内核对于此的底层实现。这些机制是你写一个能跑的操作系统必备的,你脑海中没有那么多底料,在实现的时候遇到各种奇葩问题,你将束手无策

3、尤其要对操作系统的执行流机制非常熟悉,要熟练使用ROP技术构建执行流,在写内核的时候会经常用到此技术,比如任务的退出、fork函数

4、硬件层面,需要对BIOS中断、屏幕操作、键盘操作、时钟中断、CPU段页门非常熟悉,熟练使用

5、还要了解Linux的可执行文件格式ELF,要熟练使用gcc、nasm,深刻理解编译、链接,没有这一块的知识点,你写的内核将无法调试,也就意味着你写不出来

……

看到这,有些小伙伴就慌了:这我能学得会吗?稳住,别怕,有我!我的课程会在合适的节点穿插讲汇编、C语言、操作系统内核、硬件、gcc、elf、Makefile等关联知识,还有课后答疑及课后练习,你只要感兴趣,都可以学,不用担心基础问题,是真的能让你学得会的操作系统课程

不过你确实需要花费一点努力,下点苦功夫才能学会。这些知识你今天不学,迟早还是要学。技术这行,如果没有实力支撑,就是吃青春饭,底层功力扎实,才能越老越吃香!而且互联网红利已经结束,进入内卷时代,与其被别人卷,不如主动卷,成为TOP!

02

学这个课有什么用

咱们也不能空谈理想,聊点现实的:写一个操作系统,有什么现实意义呢?

一、从面试角度来说,无论你是Java、Python、go,亦或是c、c++,面试中都会被问到操作系统或者硬件相关的问题,你可能不知道,或者背答案应付。问题一变,就哑口无言了。如果你写过一个操作系统,你将深入理解这些,面试官问一个问题,你能答出一串,获得好感,占得谈薪先机

二、从工作角度来说,如果你写过操作系统,打通了这层认知,你写的每一行代码,你能一眼看穿它的本质,想想这种坚定的感觉,再想想你平时惴惴不安的感觉,你选哪个?

三、从就业角度来说,未来是万物互联时代,IOT、人工智能、虚拟现实等这些产业的背后涉及的操作系统,无不是Linux系。我的这个手写操作系统课程,会结合讲Windows内核、Linux内核,写一个自己的内核。一个课程,让你学会三个操作系统,为不确定的未来留点后路

四、从学习角度来说,新技术层出不穷,底层技术已经基本稳定。追逐新技术,没有尽头。万变不离其宗,操作系统就是技术行业的宗,学一次,受益终身。学习,要追求效率,要学习那些相对不变的,有个这个基础,再去学那些变化的,秒懂。比如你学会了linux的多线程,就等于同时学会了所有编程语言的多线程

五、从个人发展角度来说,如果你没有底层功力,技术这行你能达到的高度是非常有限的,因为你没有自学能力,遇到问题你只能问别人,等别人的答案,可能还不一定是正确答案…想想求人的痛苦,为何自己不成为实力的拥有者呢?

总结来说就是,手写一个操作系统,是实力的象征。技术这个行业,谁会不喜欢一个技术牛叉的coder呢?跟面试官聊嗨了,面试官对你刮目相看的时候,你想要的薪资不就有底气聊了吗?

03

课程详细介绍

前面讲的可能看起来有点牛叉,不免会让有些人怀疑我是不是在吹牛,所以我准备给出有力的事实

398231cb88bde8a21882dbd92b732ab6.png

手写操作系统课程安排

2b2483e66306b131d10e0fd0c29aedec.png

先给大家看下完整的手写操作系统课程安排,一共五期,当前是二期招生

bcea58dd0c2ee6956e1c08f9dfdb3955.jpeg

5a215e09750d1be91da4dd6b3b25a51d.png

手写操作系统二期大纲

7dcd6f7ec8a9a3865e94694e081259d4.png

7f4155356eb19c2a902a8b98f8cb02fb.jpeg

课程相关的代码我已经全部写完

  1. 实模式切入保护模式

  2. 实现内存检测、物理内存管理模块、虚拟内存管理模块

  3. 实现了输出模块。

    要知道你用Linux终端,它会自动翻页,这个功能你如果写内核都是要自己实现的

  4. 实现了键盘中断。

    就是你键盘敲什么,屏幕就显示什么,为后面加入命令行做准备

  5. 实现了时钟中断,通过时钟中断调度任务。

    与Windows、Linux一模一样

  6. 实现了进程线程、任务切换、阻塞唤醒。当然,任务模块的东西很多,后面会逐步加入

  7. 实现态的切换,由内核态切入用户态发起系统调用

  8. 实现了系统调用模块,通过0x80中断实现应用态对内核态的范围及返回

  9. 实现了硬盘驱动、仿EXT文件系统内核、文件系统API、文件系统shell命令

课程配套代码,分支我是按照课时打的,方便大家到时阅读代码

9eb062a99a638407122d677f0fd48d22.png

课程笔记已经做好了,与上面贴的课程大纲一模一样,会严格按照笔记授课,可以放心

d6ae882cb76aea64dc63f7d2a8bb28c4.png

最后介绍下自己:前阿里P8。2021年加入图灵学院成为一名讲师,2022年离职创业尝试做手写JVM,运气较好,一举成功。所以才有机会做手写OS这个课程。后面我会做更多的大家想学又没地方学的课程:Linux内核、手写编程语言、手写MySQL……

手写OS目前有500位VIP,他们来自各行各业,大家真的学的很认真,也很积极,积极帮助其他小伙伴解决问题,这是你想要的学习氛围吗?

21baf9e38c1ac02511abde80587a8115.png

我也收获了很多好评,分享一下。没有炫耀或做秀的意思,就是想让大家看到我的课程质量

7313fd6aa7761819ecb759272da9aa51.png

be3672b8ba6f55c2c63f68cbe1cc2b31.png

真心做教育,践行“子牙出品,必属精品”

如果你想更多了解我,欢迎去我公众号【硬核子牙】看我之前的文章及我的奋斗历程。白手起家程序员的职场心得,应该会对你有很大启发

弹指挥间,创业已经两年了。为了庆祝创业两周年,给大家带来了超大福利

51c699f744fb0e14bbf6121722eade54.png

两周年超大福利

204b7bd712b68d3ded75a5c2c2d07e42.png

1、所有课程九折优惠,历史最低价;

2、所有报名小伙伴均享新出课程八折优惠,比如今年的新课,可享八折优惠上车。不止是今年的新课,后面我出的所有新课,已报名小伙伴都可以享八折优惠

2d0c291f5fc86d6d87eaceb212ef3405.png

两周年活动规则

6437925962aae19432ac432ffe6c3a95.png

1、时间从3.1-3.15。手写OS价格4050,手写JVM价格2519

2、活动力度较大,每个课程20个名额

3、本次招生是手写OS二期最后一次招生,三期预计到七月开课,所以想学习手写OS的,不要错过这次机会哦

性价比超高,可全网比价!感兴趣的小伙伴别错过超大优惠上车哦~

52f244b2d4c0a0bfde8efc30dd198a7d.jpeg

Logo

鸿蒙生态一站式服务平台。

更多推荐