手写操作系统+文件系统开源啦

news2025/1/12 10:51:21

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

今年是我创业的第二年,已经做了两个课程:手写JVM、手写操作系统。为了保证课程质量,一年左右出一个课程。今年的新课:Linux内核,将于九月份招生,十月份开课,带你以写驱动的方式实战学习。纯讲原理,假大空,是学不会内核的,也不是我的风格…我的课程,一定要超级硬核,学起来能够切实感受到自己在变得牛叉…

今天这篇文章的背景是这样的:一位学员咨询班主任课程的过程中,问了下面这些问题,我就把我写的内核及运行方式发给他了。事后我就想,是不是也有其他小伙伴也有同样的问题呢?
在这里插入图片描述

其实这个问题的背后是什么呢?有可能是好奇,想看看,毕竟手写操作系统,对于大多数来说,都是很难的事情,那子牙老师真的写出来了吗?其次是不信任,一个是出于对我的不信任:子牙老师真的具备这样的实力吗?二是出于对大环境的不信任,毕竟前几年骗子太多,大家被骗怕了。

这点我可以很自豪的说,创业两年,我们招生从来不夸大不欺瞒不狂轰乱炸,课程交付都是超预期。尽管我做的课程全网唯一,我掌握定价权,我定价依然很低,我其实是想多一些跟我学习的学员,认识些优秀的小伙伴。如果你还觉得贵,那你有没有想过做这类型的课程需要什么样的实力、投入多少时间与精力呢?又要花多长时间去备课磨课,才能把底层晦涩难懂的东西讲得通俗易懂呢?

支付宝有句特别有境界的话:因为信任,所以简单。我希望通过我的努力,创建一家教育公司,填补国内计算机底层市场的空白。想在计算机行业取得造诣,不一定只能出国才能学到,国内一家叫【内核达人】的公司,也是非常不错的。希望大家、你们的下一代、下下一代……想学计算机底层,能够想到【内核达人】这家公司。想到这家公司的创始人叫【子牙】,你们会满怀信任!

梦虽远,行将至之!

接下来跟大家说下我写的内核如何体验。事先说明:我写的内核是教学用途,不是商业用途。避免不必要的抬杠:你说的都是对的~

如何获取资料

关注公众号【硬核子牙】回复【操作系统内核体验】即可获得
在这里插入图片描述

资料里面有三个文件
在这里插入图片描述

运行内核

首先说下qemu是什么,你可以理解成是软件模拟出来的一台电脑

我提供的是Windows下的安装包,如果你想在Mac、Linux下体验,自行安装。另外再说一点,我写的内核是x86架构,如果你的Mac是M1、M2芯片,就体验不了,因为它们是ARM架构

qemu如何安装?直接下一步…

qemu怎么用,按win + R打开Windows的命令行,输入cmd
在这里插入图片描述

在cmd黑窗口界面,进入qemu所在目录,输入如下命令即可运行内核
在这里插入图片描述

注意:-hda、-hdb后面的路径一定要对

运行起来就是这样子的
在这里插入图片描述

体验内核功能

这个体验版我提供了哪些功能给大家体验呢?

一、完整的文件系统功能:目录、文件的增删改查。比如你在Linux下通过mkdir创建目录,如果成功,不会有任何提示,如果失败,给你一个报错信息,你根本不知道它底层做了什么。那我提供的,就是让你清楚看到创建一个目录,操作系统底层到底干了什么
在这里插入图片描述
在这里插入图片描述

二、当发生内存错误时,我们唯一的感受就是无可奈何。我提供的体验版,可以让你自己触发内存错误,然后看到修复的过程,然后再运行,内存错误木有了,来瞧一瞧

关于底层的原理,一两句话讲不清。如果你在体验的过程中发现:EI,这不就是我想学的吗?欢迎加入我的超硬核手写操作系统内核小班

首先,触发内存错误
在这里插入图片描述

我们去修复它
在这里插入图片描述

再次运行刚刚出错的程序,发现可以正确执行了
在这里插入图片描述

神奇否?_

学底层,尤其是操作系统,真的超级有趣的~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/391865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十五、Spring中的八大模式

1 简单工厂模式 BeanFactory的getBean()方法,通过唯一标识来获取Bean对象。是典型的简单工厂模式(静态工厂模式); 2 工厂方法模式 FactoryBean是典型的工厂方法模式。在配置文件中通过factory-method属性来指定工厂方法&#x…

多线程的创建、Thread类、线程安全、同步、通信

目录 多线程的创建 方式一:继承Thread类 方式二:实现Runnable接口 方式三:JDK 5.0新增:实现Callable接口 Thread的常用方法 线程安全 线程安全问题是什么、发生的原因 线程安全问题案例模拟 线程同步 同步思想概述 方式…

0202state详解-组件-React

文章目录1 state简介2 初始化state3 React中事件绑定4 类方法中this指向问题5 解决React类组件方法this指向5 setState5.1 更新state状态数据方式5.2 更新state整体替换还是合并相同项?5.3 关于构造器、render方法调用次数6 state简写7 问题解答后记1 state简介 Re…

在NVIDIA JetBot Nano小车上更新WIFI驱动

前言:树莓派上的WIFI驱动类型比较多,经常有更好驱动的需求本文给出RealTek的无线WIFI模组,8821CU的驱动更新办法步骤第一 通过其他方式连接网络小车通过网线或者老的WIFI连接到网络上第二 构建驱动模块并下载驱动首先,我们需要打开一个ubuntu…

【深度学习】BERT变体—RoBERTa

RoBERTa是的BERT的常用变体,出自Facebook的RoBERTa: A Robustly Optimized BERT Pretraining Approach。来自Facebook的作者根据BERT训练不足的缺点提出了更有效的预训练方法,并发布了具有更强鲁棒性的BERT:RoBERTa。 RoBERTa通过以下四个方面…

【JavaEE】基于mysql与servlet自制简易的表白墙程序

文章目录1 表白墙页面构建2 Servlet 回顾3 表白墙后端程序实现3.1 我们需要做什么?3.2 实现细节4 实现结果写在最后1 表白墙页面构建 该页面由标题、文本、三个 input 输入框与一个提交按钮构成,整体比较简单,相关样式文件和页面代码会在后面…

【16】linux命令每日分享——tail命令查看文件

大家好,这里是sdust-vrlab,Linux是一种免费使用和自由传播的类UNIX操作系统,Linux的基本思想有两点:一切都是文件;每个文件都有确定的用途;linux涉及到IT行业的方方面面,在我们日常的学习中&…

分布式中雪花算法

背景需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量。 数据库的扩展方式主要包括:业务分库、主从复制,数据库分表。 2.数据库分表概念:将不同业务数据分散存储到不同的数据库服务器,能够支…

网络参考模型

OSI参考模型 应用层 不服务于任何其他层,就是位APP提供相应的服务,不如HTTP、域名解析DNS提供服务表示层 1.使得应用数据能够被不同的系统(Windows\Linux)进行识别和理解 2.数据的解码和编码、数据的加密与解密、数据的压缩和解…

简单易懂值得收藏的Spring源码解析,依赖注入和bean的初始化

简单易懂值得收藏的Spring源码解析,依赖注入和bean的初始化原理解析依赖注入PropertyValues、PropertyValue、PropertyAccessorbyNamebyTypeAutowiredbean的初始化源码走读依赖注入populateBean方法autowireByNameautowireByType方法AutowiredAnnotationBeanPostPro…

广义状态平均法功率变换器建模分析

两种状态平均法在功率变换器建模的应用比较 [!info] Bibliography [1] 高朝晖, 林辉张晓斌 & 吴小华, “两种状态平均法在功率变换器建模的应用比较,” 计算机仿真, no. 241-244248, 2008. [!note] 状态空间平均法采用直流量近似(线性系统模型)&…

通达信指标公式颜色代码的四种写法(COLOR/RGB)

通达信指标公式颜色代码有四种写法,分别为COLOR颜色的英文、COLOR十六进制、RGBX十六进制、RGB(R,G,B)。标题有点尴尬,让我想到孔乙己“茴”字的四种写法,哈哈。 一、COLOR颜色的英文 “COLOR颜色的英文”这种写法比较简单,函数库…

【C++】bsearch函数的使用及二分法查找介绍

写程序的时候,肯定避免不了需要从集合中找到符合条件的元素,一般情况下,最简单也最常用的就是循环遍历元素,这种方法虽然写的简单,但是小数据量还行,但是数据过大的话,这样效率就低了。循环的时…

浅谈游戏中运用到的人工智能

电子游戏中的人工智能意味着电子游戏中角色的创造性行为就像人类游戏玩家正在控制他们一样。它提供了自适应和响应式的视频游戏体验。1949年初,密码学家克劳德香农发现了游戏中的人工智能,从而联想到了电脑上的单人国际象棋游戏。对于人工智能的发展&…

Android的基础介绍

一、Android介绍 Android是一种基于Linux的自由及开放源代码的操作系统,Android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。 Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序——…

力扣-可回收且低脂的产品

大家好,我是空空star,本篇带大家了解一道超级超级超级简单的力扣sql练习题。 文章目录前言一、题目:1757. 可回收且低脂的产品二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交S…

iview tree树形菜单实践之数据回显与选中

iview tree树形菜单在使用过程中,多多少少有一些小坑,本文简单罗列几个: 避坑指南: 关于iview tree树形菜单在使用过程中存在父级菜单的数据传输和回显问题 简单就是两个方面:勾选后数据传输和回显问题。 一&#xff…

mac 环境下安装MongoDB

目录 一、下载MongoDB数据库并进行安装 二. 解压放在/usr/local目录下 三. 配置环境变量 “无法验证开发者”的解决方法 mongodb可视化工具的安装与使用 一、下载MongoDB数据库并进行安装 下载地址:https://www.mongodb.com/try/download/community 二. 解压…

大数据项目实战之数据仓库:用户行为采集平台——第2章 项目需求及架构设计

第2章 项目需求及架构设计 2.1 项目需求分析 1)采集平台 (1)用户行为数据采集平台搭建 (2)业务数据采集平台搭建 2)离线需求 3)实时需求 4)思考题 1、项目技术如何选型&…

索引调优的一点基础知识

索引是什么 通过 show profile for query 1; 可以查看该查询语句执行的整个过程,则我们就能分析出那部分是需要优化的索引是帮助Mysql高效获取数据的数据结构 索引存储在文件系统中 索引的文件存储形式与存储引擎有关 索引文件的结构 hash 范围查找不方便…