哈喽,我是子牙,一个很卷的硬核男人。深入研究计算机底层、Windows内核、Linux内核、Hotspot源码……聚焦做那些大家想学没地方学的课程
今天的互联网江湖,受大环境影响,已经不似前些年那般朝气蓬勃,裁员严重,人才过剩,面试变得越来越卷,底层越问越深…不少小伙伴都很焦虑:以前打工想得都是如何才能升职加薪,如今想得都是如何才能不被裁!过得胆战心惊,如履薄冰…
面对这样的局面,有的人迷茫,有的人认命,有的人知道去研究底层来增强自己的竞争优势。这些底层包括:MySQL源码、Redis源码、JVM源码、虚拟化、Linux内核……工作上遇到的事,裁员留下的这波人肯定都能干,所以今天要学的不是干活的能力,而是别人不会的能力!裁员的时候,给leader一个留下你的理由!
如果你尝试过研究底层,你会发现:自己的C语言、汇编、C++好像都不过关,这些东西都玩不起来;相关的资料既少又古老,讲得还都是原理,看了还是一点动手能力都没有;遇到了问题没人问,chatgpt给你的答案你也不知道对不对,想找个懂的人确认一下才踏实。最终你会发现,花了时间去研究,还是没玩明白,还是得等着别人教……
为此,我花了差不多两年的时间做了课程《实战Linux内核》。这套课程,为了让大家将汇编、C语言、操作系统融会贯通、真正学会Linux内核,而不是只是搞懂原理,从手写x86单核操作系统,到手写x64多核操作系统,再到实战Linux5.4内核。更重要的,永久答疑!
学完以后,你就可以做你想做的几乎任何事情:手写一个自己的操作系统、玩转Linux内核、手写编程语言……研究MySQL源码、Redis源码、Nginx源码等等,再也没有任何障碍!
知道你有很多问题想问,接着看~
01
Linux是当今科技世界的地基
我为什么说Linux是当今世界的科技地基,如图
当今世界用的操作系统就四个:Windows、苹果、鸿蒙OS、Linux。PC市场咱们就不讨论了,与我们程序员关系不是特别大。最重要的服务器市场,Linux占据95%以上的份额!就是说我们用的Redis、MySQL,我们写的应用程序,几乎都是跑在Linux之上!移动市场,安卓占据70%左右的市场份额,而安卓的内核也是Linux!即Linux占据移动市场70%的份额!AI大模型用的超级计算机,Linux几乎是100%!
学会Linux内核意味着什么?你找到自己的答案了吗?有人说这个时代还需要学这些吗?《流浪地球》中这个点亮木星的程序员,你还记得吗?技术永不过时!实力永远是最大的尊严!
02
黑客必备Linux内核实战课程
如果你尝试过研究Linux内核,你会发现:书跟视频倒是蛮多的,但是要么是基于老版本的Linux内核讲的,要么就是基于ARM架构,与大家需求不匹配。而且几乎都是空谈原理,你看了听了,无法动手做实验,无法论证,就无法辨别对错……
我的课程《实战Linux内核》,所有讲的内容,全部带你动手实战!做中国最好的最硬核的最具实战意义的Linux内核课程!
课程分五期展开,当前是二期(报名二期送一期)
一期我带着大家手写了一个x64多核操作系统打基础。因为你如果没有能力写一个操作系统,你是不可能真正把Linux内核玩明白的。一期课程写了哪些东西呢?写了这么多
二期我会先教大家写Linux内核驱动程序。Linux内核驱动程序分两种:一种是脱离于Linux内核的,写好了安装到内核中;第二种是与Linux内核编译在一起。这两种我都会教!
你会写驱动了,你就能做实验了,比如我们可以去研究Linux内核中的所有重要函数,像这样。不容易理解的,我都会打上注释跟案例!
那能不能研究与我们平时工作相关的呢?当然可以!比如我想查看一个进程的内存空间
比如我想查看CPU是如何读写数据的
还有吗?课程里我为大家准备了这么多
这是在一期基础上你能学到的所有知识,几乎包含了Linux内核内存模块的全部
03
实战Linux内核二期
是时候给大家详细介绍一下这套课程了
课程中的手写x64多核操作系统,实现了这些:
-
让CPU由实模式->保护模式->IA-32e兼容模式->64位长模式
-
实现内存检测、物理内存管理模块、虚拟内存管理模块(4-level paging)
-
实现了基于单核中断控制芯片8259a的中断处理机制
-
实现了键盘中断。就是你键盘敲什么,屏幕就显示什么,为后面加入命令行做准备
-
实现了时钟中断,通过时钟中断调度任务。与Windows、Linux一模一样
-
实现了基于多核高级可编程芯片APIC的中断处理机制
-
实现了BSP核通过发送IPIs激活所有AP核
-
实现了多核下的进程线程、任务切换、阻塞唤醒。当然,任务模块的东西很多,后面会逐步加入
-
实现态的切换,由内核态切入用户态发起系统调用(中断门、syscall快速调用)
-
实现了系统调用模块,实现应用态对内核态的访问及返回
……
课程配套代码,分支我是按照课时打的,方便大家到时阅读代码
课程笔记已经做好了,与上面贴的课程大纲一模一样,会严格按照笔记授课,可以放心
多核多任务切换是如何实现的?看下核心代码
你如果看过其他相关的视频,你会发现大家没办法调试C语言。如果这样,无疑让学习门槛变得很高,在我这里是不允许的,于是我花了大量时间攻克了此。即,我提供的环境,是可以调试你写的C语言的,不管是你写的32位内核,还是64内核,亦或是Linux内核,都可以用
实战Linux内核内存模块,我会带你实现这些
有了这个基础,我会带你把内核中内存相关的核心函数细细研究,比如物理地址转虚拟地址
最后介绍下自己:前大厂P8。2021年加入图灵学院成为一名讲师,专注讲JVM与操作系统。2022年离职创业尝试做手写JVM,运气较好,一举成功。实战Linux内核是我的第三个课程
创业三年,做了三个课程,积累了1000+VIP学员。课程干活满满,超级硬核,几乎零差评。
实战Linux内核,争取做到零差评。
真心做教育,践行“子牙出品,必属精品”
如果你想更多了解我,欢迎去我公众号【硬核子牙】看我之前的文章及我的奋斗历程。白手起家程序员的职场心得,应该会对你有很大启发
随着Linux内核部分内容的增多,三期会将手写x64多核操作系统与实战Linux内核拆分成两个课程,如果你想同时学习手写x64多核OS、实战Linux内核,二期是最后的机会了
性价比超高,可全网比价!感兴趣的小伙伴别错过超大优惠上车哦~