当前位置: 首页 > article >正文

谁能跟我比操作系统?

哈喽,我是子牙老师
这两天《手写Linux内核之memblock》招生,总有学员问:你做的课程,《手写操作系统》、《实战Linux内核》、《手写Linux内核》,跟你后面要做的《手写Linux》,有什么区别呢?每次解释也麻烦,一两句话也讲不清,写篇短文详细说下吧

我先解释下这几门课

一、《手写操作系统》,其实就是基于计算机专业课《操作系统导论》+《计算机组成原理》写一个操作系统。大学学过这两门课程的应该都有这样的感觉:学的时候觉得自己特牛,动手能力是一点都没有,要是有人把这两门枯燥的没概念的课做成一个实战课就好了,于是我就做了这个课程

添加图片注释,不超过 140 字(可选)

手写操作系统我做了两个课程:手写x86单核操作系统、手写x64多核操作系统。写一个x64多核操作系统,国内大学甚至都没教,市面上的书也只有一本,而且写得巨复杂。得亏有ChatGPT,加我做x86单核操作系统的功底,加上我在滴水跟唐老师学过Windows内核跟CPU虚拟化,才能搞出来

如果你非计算机科班,强烈建议你学习下这门课,补下操作系统,不然你会发现你在学习跟工作过程中,遇到操作系统相关的术语、底层原理,是没有概念的,很难理解,学起来就很慢。当前录播,仅2000左右,视频+笔记+代码+1V1答疑

二、《实战Linux内核》,其实我做手写操作系统课程,就是奔着拿下Linux内核去的。事实证明,自己有能力写一个操作系统,自己写出一个操作系统,再去研究Linux内核,效率会高很多很多

市面上有那么多写Linux内核的书,讲Linux内核的视频,我为什么还做呢?因为我意识到,其实这些书跟视频,并不能让一个人学会Linux内核。基本都是给你讲原理、讲源码,连单步调试Linux内核的环境都不会教,更别提在Linux内核中做实验了

添加图片注释,不超过 140 字(可选)

在Linux内核中做实验

添加图片注释,不超过 140 字(可选)

其实我最开始没有想到要做《手写Linux内核》跟《手写Linux》,一个是误打误撞,一个是学员给的启发

因为我想把《实战Linux内核》做好,我就得透彻理解Linux内核的核心源码。而Linux内核本身非常复杂,包含很多子系统,各个子系统的代码交织在一起,非常难理解,尤其是内存子系统!所以我就想到在我自己写的操作系统上,把Linux内核中的代码抽出来,然后构造数据去测去理解。想着既然代码都写了,既然我通过这样的方式把Linux内核吃透了,干脆做成课程吧,这就是《实战Linux内核》的由来

我写的Linux内核物理内存管理系统:伙伴系统

添加图片注释,不超过 140 字(可选)

我写的Linux内核早期物理内存管理系统:memblock

添加图片注释,不超过 140 字(可选)

《手写Linux》又是什么玩意呢?就是实现Linux内核的用户态!

添加图片注释,不超过 140 字(可选)

今天我们所知的centOS、Ubuntu、红帽、Android、鸿蒙,都是这样的存在!

总结一下:

1、《手写操作系统》是基于计算机专业课《操作系统导论》《计算机组成原理》写的一个操作系统,这个操作系统跟Windows内核、Linux内核,是同一个维度的,跟它们只相似,没任何关系。你写任何操作系统,都要这么干。言外之意,你写了这个操作系统,你就具备搞懂任何操作系统的基础
2、《实战Linux内核》就是带你通过单步调试Linux内核+在Linux内核中做实验,帮助你理解Linux内核中的核心子系统:内存、进程、调度、文件系统、网络
3、《手写Linux内核》比《实战Linux内核》更深一层,会带你把Linux内核中的核心源码写出来,并带你透彻理解
4、《手写Linux》就是基于Linux内核实现它的用户态,你或者理解成手写centOS、手写ubuntu、手写Android就可以了
OK,讲清楚了!


http://www.kler.cn/news/341256.html

相关文章:

  • Python | Leetcode Python题解之第459题重复的子字符串
  • Nacos-Feign-Gateway-SpringCloud微服务
  • 本田汽车投资SiLC Technologies:携手共促自动驾驶技术新飞跃
  • Python-Pandas
  • java算法OJ(2)链表
  • CUDA、Pytorch、Pycharm的安装与配置
  • 017 平台属性[属性分组、规格参数、销售属性]
  • Android 10.0 修改Systemui三键导航栏虚拟按键颜色功能实现
  • 链表Set_LinkList(并集)
  • 开源城市运动预约的工具类小程序源码
  • 【题目全解】ACGO排位赛#13
  • 电脑屏保设置教程 好看的电脑屏保应该怎么设置?
  • 夜间数据库IO负载飙升?MySQL批量删除操作引发的问题排查
  • 立志最细,FreeRtos中的信号量Semaphore教程详解!!!
  • Python 全栈开发从入门到实战进阶课程
  • AtCoder Beginner Contest 374 题A-D 详细题解(C++, Python)
  • 计算机视觉的应用36-人工智能时代计算机视觉技术在电力系统中的应用
  • Web Service Sender ParseError Invalid byte 1 of 1-byte UTF-8 sequence
  • 书籍第4章-SAP项目中的数据迁移
  • GO网络编程(六):海量用户通信系统4:读写数据包与登录消息处理