当今科技世界用的操作系统,除了华为、苹果用的是自家的,其他几乎全是基于Linux内核的操作系统!可以这样说,Linux是今天这个科技世界的地基!玩转Linux内核,你就等于玩转了这个科技世界的核心技术:底层操作系统
奈何如今的Linux内核非常庞大,需要很深的功底才能研究明白。所以关于最新版的Linux内核的资料非常少,而且相关的书及视频,没人指点、没人答疑也看不明白,更不确定自己所认为的是否是正确的,需要找个人确认一下……
特别向你推荐子牙老师的这套实战Linux内核课程。从手写x86单核操作系统,到手写x64多核操作系统,再到实战Linux内核
总有人问我:子牙老师,我没有学Linux内核也能完成工作啊,我为什么要学习Linux内核?我总是给他举这个例子:比如一个耳鼻喉科医生,他可以不了解整个人体结构,也能给人看病,但是有局限性:一、没有全局思维,可能出现误诊,因为耳鼻喉的问题有可能是其他器官病变造成的;二、发展问题,他这辈子只能是小小的耳鼻喉科医生,没办法成为专家,更没办法攻克疑难杂症做出贡献,成为名医、主任、院长…
是的,很多coder就如同这里的耳鼻喉科医生,只会那点面向就业学的东西,没有去研究过Linux内核,所以一直都是一个默默无闻的小小coder。只能感叹:江山代有才人出,各领风骚数百年,可惜不是我!但,总有人不甘心如此!凭什么不是由我引领?
有的人可能尝试去研究过,但是因为资料太少,又没人指点、没人答疑,研究不明白,放弃了,认知永远卡在那里,上不去,又不甘心,非常难受…
综上,我花了差不多两年多的时间做了这个课程:实战Linux内核。为了让大家真正学会Linux内核,玩转Linux内核,而不只是搞懂原理,一点动手能力都没有,从带你手写x86单核操作系统、手写x64多核操作系统打基础,再到实战Linux内核。展开讲讲?展开了,继续往下看
我这里为什么只提到Linux,而没有去提Windows、MacOS、鸿蒙…因为Linux是今天这个科技世界的地基!抛开苹果、华为用的操作系统是自家的,其他所有领域的操作系统,几乎底层都是Linux内核,包括Android!可以这样说:玩转Linux内核,你就等于玩转了这个科技世界的核心技术:底层操作系统。那你的未来只能用“海阔凭鱼跃,天高任鸟飞”来形容
如果你想看视频版,安排~
01
实战Linux内核
先说大家感兴趣的,学完我的实战Linux内核课程,你能做什么:
能够将汇编、C语言、操作系统融会贯通
能够调优、调试Linux内核,更改Linux内核机制
能够清晰看到伙伴算法、slab的构建、运行过程
能够清晰看到虚拟内存的映射、运行过程
能够让Linux内核中不能访问的内存变得可以访问,突破权限限制
能够通过hook监控Linux内核的所有行为
能够隐藏进程、注入线程读取进程内存信息,进程隔离只是空话
能够自建系统调用体系,绕过Linux内核发起系统调用
更可怕的,能够在Linux内核中衍生出自己的操作系统
……
你是不是想问:做到这些有什么用呢?一、证明你真的学会了Linux内核;二、证明你真的学会了Linux内核;三、证明你真的学会了Linux内核…这些也是成为一个黑客必备的能力!
你是不是又想问:为什么能做到这些呢?看图
这张图能看出什么呢?能看出我的课程为什么要这样设计、能看出为什么学完我的课程你能像黑客一样随意穿行于Linux内核中。我来解释一下
我们写Java代码,是面向Java虚拟机提供的API编写程序;我们开发桌面程序,是面向Windows提供的API编写程序;我们开发Linux应用程序,是面向Linux提供的API编写程序……那我们的操作系统呢,是面向谁提供的API开发出来的?是面向硬件提供的机制开发出来的!这才是能否真正玩转Linux内核的关键!
but,纵观所有讲Linux内核的书、视频,几乎没有从这个角度出发的,都是一上来就给你讲Linux内核的各种机制:内存机制、进程线程、调度、网络、虚拟化……这是给有硬件基础的人看的,绝大多数人是没有这个基础的。所以绝大多数人,其实是看不懂的,自然就学不会了。而且硬件的资料,比Linux内核的资料还少!更难理解!
我如果图方便,只是为了赚钱,我也可以从这个角度出一个课程。但是这不是我做这个课程的初衷,我的初衷是出一门让大家能够真正玩转Linux内核的课程,所以我先带着大家手写x86单核os打底,有了这个底子再带着大家手写x64多核os继续打底,有了这些底子才带着大家实战Linux内核,水到渠成!顺理成章!
Linux内核是面向核心硬件开发出来的,我通过带你手写操作系统,让你知道了Linux内核依赖的硬件的机制、运行原理、操控方式,那你在Linux内核中,不就是可以为所欲为吗!
可以这样说,手写一个os是玩转Linux内核的唯一方式!没有其他方式!接下来我给大家详细介绍下这套课程
对了,Linux内核中,少部分代码是体系相关的,主要受CPU架构的影响,绝大多数代码是体系无关的。这套课程是基于x86_64架构,你如果是ARM、MIPS、RISCV架构,也可以学,多学一个架构,也挺不错的
其他CPU架构,后面会陆续补上,体系架构无关的代码是不会动的,所以如果你报名了这套课程,后面补差价即可。感兴趣的小伙伴可以加班主任微信咨询【jvm-jingjing】
02
手写x64多核操作系统
实战Linux内核分五期展开,如图
当前是一期招生,一期分四大阶段,十一大专题
课程详细大纲,如图
课程代码
课程相关代码我已经全部写完:
让CPU由实模式->保护模式->IA-32e兼容模式->64位长模式
实现内存检测、物理内存管理模块、虚拟内存管理模块(4-level paging)
实现了基于单核中断控制芯片8259a的中断处理机制
实现了键盘中断。就是你键盘敲什么,屏幕就显示什么,为后面加入命令行做准备
实现了时钟中断,通过时钟中断调度任务。与Windows、Linux一模一样
实现了基于多核高级可编程芯片APIC的中断处理机制
实现了BSP核通过发送IPIs激活所有AP核
实现了多核下的进程线程、任务切换、阻塞唤醒。当然,任务模块的东西很多,后面会逐步加入
实现态的切换,由内核态切入用户态发起系统调用(中断门、syscall快速调用)
实现了系统调用模块,实现应用态对内核态的访问及返回
……
我的一期定价不高,如果你跟着我学习,写出一个这样的操作系统,那么不管是Linux内核,还是Windows内核,亦或是鸿蒙操作系统内核,你都可以自己研究明白。如前面图所说,我们一期学的是:所有操作系统依赖的硬件的机制、运行原理、操控方式。
核心中的核心硬件都是最新架构:CPU是64位架构、中断控制芯片是多核的。目前的计算机世界的天花板,也就在这里了!
我期望的教学效果是:师傅领进门,修行在个人。大家把基础打好,通过研究进阶的知识,将所学知识点融会贯通。当然,如果你没有时间去钻研,或者觉得自己研究没有我理解得深刻,可以选择续班,补差价即可。
课程配套代码,分支我是按照课时打的,方便大家到时阅读代码
课程笔记已经做好了,与上面贴的课程大纲一模一样,会严格按照笔记授课,可以放心
多核多任务切换是如何实现的?看下核心代码
你如果看过其他相关的视频,你会发现大家没办法调试C语言。如果这样,无疑让学习门槛变得很高,在我这里是不允许的,于是我花了大量时间攻克了此。即,我提供的环境,是可以调试你写的C语言的,不管是你写的32位内核,还是64内核,亦或是Linux内核,都可以用
最后介绍下自己:前大厂P8。2021年加入图灵学院成为一名讲师,专注讲JVM与操作系统。2022年离职创业尝试做手写JVM,运气较好,一举成功。实战Linux内核是我的第三个课程
创业三年,做了三个课程,积累了1000+VIP学员。课程干活满满,超级硬核,几乎零差评。
实战Linux内核,争取做到零差评。
真心做教育,践行“子牙出品,必属精品”
如果你想更多了解我,欢迎去我公众号【硬核子牙】看我之前的文章及我的奋斗历程。白手起家程序员的职场心得,应该会对你有很大启发
原价4500,双十一特惠价4099,实战Linux内核最后一轮招生!
性价比超高,可全网比价!感兴趣的小伙伴别错过超大优惠上车哦~