Linux,可以说是计算机世界的基石,占据着服务器市场96%的市场份额!Android底层、Mac OS、IOS底层内核,也都是Linux内核或同根生的Unix!所以很多coder都知道Linux内核的重要性,尝试去研究Linux内核…
奈何关于Linux内核的书,几乎都是基于老版本的Linux内核,或者Linux内核ARM版本,与大家需求不匹配。视频也有,但都是空谈原理,无法动手做实验,无法验证,就无法不辨别对错…
所以子牙老师排除万难,做了这个课程。以下,enjoy~
哈喽,我是子牙,一个很卷的硬核男人
深入研究计算机底层、Windows内核、Linux内核、Hotspot源码……聚焦做那些大家想学没地方学的课程。为了保证课程质量及教学效果,一年磨一剑,三年先后做了三个课程:手写JVM、手写x86单核OS,带你用纯汇编写OS、手写64位多核OS…
今天带来的是今年的新课:实战Linux内核。这个课程花了一年多时间研究+备课!我的这个课程,基于Linux最新架构5.0版本,直播教学,定位实战Linux内核:通过写Linux驱动,将我们学习的内容,通过做实验,实践出来。实践才能出真知!
知道你有很多问题想问,别急,听我娓娓道来。为了方便大家更好地了解课程,我录了个视频。虽然是课程试看视频,我在其中也分享了很多与研究Linux内核相关的知识…


01

为什么要手写64位多核OS
可能有人要问了,这套课程定位不是实战Linux内核吗,为什么要手写64位多核OS呢?
我从去年就开始备课Linux内核,备课的过程中我发现,很多知识点如果想让大家真正学明白,就不得不讲到硬件,做实验又需要汇编跟C语言的底子,而很多小伙伴不具备这些功底,所以我觉得有必要先带着大家写一个OS,有了这个基础再来学Linux内核,事半功倍!
可能我这么说你没概念,我展开讲讲,上图
如果你想玩转Linux内核,你需要具备这些基础:
1、语言层面:汇编、C语言。这两门语言要达到精通级别,能融会贯通使用才行。因为写内核会涉及到汇编与C语言之间的互相调用,而且操作硬件只能用汇编
2、核心硬件你得了解它们的工作原理,并能够熟练通过汇编去操作它们,这样你才能看得懂Linux内核中的代码
3、比如CPU,可以这样说,我们是面向CPU实现OS的,比如我们经常听到的用户态内核态,与CPU提供的特权级有关系,因为特权级又引出了CPU提供的段机制、门、快速调用,运行模式…
4、如果是多核的CPU,实现OS得引入并发控制,并发控制的原理是什么?如何激活多核?如何设置CPU亲和?CPU是如何响应亲和性的?
5、OS的虚拟内存,是基于CPU提供的页机制实现的,64位CPU在4K页基础上又发展了2M页、1G大页…我们OS真正在用的内存下面,有虚拟内存管理系统、物理内存管理系统,最下面的是BIOS例程在做内存映射的时候,哪些内存区间是我们可以用的…
6、CPU响应中断是如何由单核无缝转入多核的?多核中断底层是如何实现的?出现中断嵌套怎么办?发生多个中断如何保证线程能继续正常运行而不破坏上下文?
7、IO依赖的屏幕驱动、存储底层依赖的硬盘驱动、网络底层依赖的网卡驱动…底层又是如何实现的?
……
这些基础,都会在带着你手写OS的过程中给你补上,如果没有这些基础,试问:你怎么可能玩得转Linux内核呢?可能真的连Linux的启动流程都看不懂!
而且,我的一期定价不高,你跟着我学习打下这些基础,后面的内容你就有能力自行研究,就不需要再花钱跟我或者其他人学习。当然,自己研究是比较枯燥的,而且是非常有难度的,花点小钱节省大量时间,学习大佬们研究得现成的知识点,也还是值得的
我有时候在想,我们国家到目前为止,为什么没有出现真正能让大家玩转Linux内核的课程呢,都是讲原理的!可能很少有人想过一个问题:如何设计课程才能让大家真的学会Linux内核?或者说有的人想到过,但是实力不够,做不出来…
虽说在计算机界有一句话叫不要重复发明轮子,其实这句话只适用于工作,不适用于学习。学习上,就是要重新发明轮子,将自己放在设计者的角度思考问题,才能真正理解作者的意图。
其实手写一个OS,我觉得它的意义除了能够让你学习Linux内核事半功倍,还有一个很重要的意义就是帮助很多人圆梦,我相信很多coder,或者是man,都有一个这样的梦想:写一个自己的操作系统!


02

学这个课有什么用
如果你真的能够玩转Linux内核,将汇编、C语言、OS系统融会贯通,那计算机这行,对你来说就没有秘密了,天高任鸟飞
  1. 如果你是Java、Python、PHP、Golang,你们写的程序都要在服务器上运行,Linux几乎占了服务器市场的96%。所以面试,Linux内核是必问环节。而且现在经济下行,裁员严重,人才过剩,面试变得越来越卷,底层越问越深,深入理解Linux内核就变得尤为重要,而且会越来越重要!
  1. 如果你是嵌入式方向,或者是OS自研方向,亦或是Linux开发方向,不管是Linux应用层程序开发,还是Linux内核开发,对自己吃饭干活的环境都做不到深入理解,离被淘汰真的不远了
  1. 如果你是做移动端开发的,Android底层是Linux内核。Mac OS、IOS的底层,也是Linux系,学习Linux内核,你才能打造出不一样的竞争力,不惧裁员。计算机行业的红利已经结束,只能不断向前,才不会被淘汰
  1. 如果你是运维方向,虽说了解Linux运行机制,掌握工具的使用,就可以干活。但是,如果你想成为炙手可热的、能拿高薪的运维,那掌握Linux内核,就非常有必要!
  1. 如果你是服务器安全方向,或者想成为一名来无影去无踪的黑客,Linux内核于你,几乎是不可或缺!如果认知都不在一个维度,谈何攻防呢?
  1. 大概率未来出现的新生态,还是基于Linux内核,新生态孕育着新的机会!如果你从现在开始沉淀,新机会到来的时候,你才有机会成为第一波吃螃蟹的人、


03

课程详细介绍
前面讲的可能看起来有点牛叉,不免会让有些人怀疑我是不是在吹牛,所以我准备给出有力的事实
先给大家看下完整的手写操作系统课程安排,一共五期,当前是一期招生
课程相关代码我已经全部写完,分支我是按照课时打的,方便大家到时阅读代码
课程笔记已经做好了,与上面贴的课程大纲一模一样,会严格按照笔记授课,可以放心
多核多任务切换是如何实现的?看下核心代码
你如果看过其他相关的视频,你会发现大家没办法调试C语言。如果这样,无疑让学习门槛变得很高,在我这里是不允许的,于是我花了大量时间攻克了此。即,我提供的环境,是可以调试你写的C语言的,不管是你写的32位内核,还是64内核,亦或是Linux内核,都可以用
最后介绍下自己:前大厂P8技术专家,2016年在滴水跟着海哥学习Windows内核,因成绩优异,被选拔进入校友创办的红手指研究Linux内核,并跟着唐老师学习CPU虚拟化技术VT。2017年底追随前老板进入大厂任职P8研究中间件方向及JVM方向。2021年自己创业,聚集做大家想学没地方学的课程
创业快三年了,有1000多VIP跟着我学习,好评满满
真心做教育,践行“子牙出品,必属精品”

如果你想更多了解我,欢迎去我公众号【硬核子牙】看我之前的文章及我的奋斗历程。白手起家程序员的职场心得,应该会对你有很大启发
课程价格
这么给力的课程,价格是多少呢?
一期十一大专题,三个月直播上课,原价4500
8.2-8.22为预售价3880,优惠较大,仅40个名额
8.23-10.10为早鸟价4099
10.10开课,恢复原价4500
因为手写OS已经做了三期,报名后马上就发视频给你学习。我们不是学64位内核吗,为什么还要看32位的?因为64位是从32位过渡过来的,没这个基础,64位也是玩不明白的,一环套一环
性价比超高,可全网比价!感兴趣的小伙伴别错过超大优惠上车哦~
继续阅读
阅读原文