
60天,和彭东一起实现自己的操作系统
文章平均质量分 87
zhaopeng01zp
这个作者很懒,什么都没留下…
展开
-
玩转Git三剑客——第一章Git基础
玩转Git三剑客——第一章Git基础03、使用Git之前需要做的最小配置04、创建第一个仓库并配置local用户信息.git是个裸仓库,是个隐藏的文件夹,使用ls -原创 2022-03-10 12:57:05 · 645 阅读 · 0 评论 -
64位ubuntu20.04上编译32位汇编程序,并连接C库函数
要解决的问题如下:/usr/bin/ld: 当搜索用于 /usr/lib/x86_64-linux-gnu//libc.so 时跳过不兼容的 -lc或者在连接的时候ld提示ld: i386:x86-64 architecture of input file `multest.o’ is incompatible with i386 output或者编译生成可执行文件运行后提示bash: ./multest: 正在访问一个已毁坏的共享库。我的系统是64位的ubuntu20.04。汇编原创 2022-02-21 16:13:08 · 4729 阅读 · 0 评论 -
打卡第十五天:10 | 设置工作模式与环境(上):建立计算机
(2021年11月22日打卡第十五天)打卡第十五天:10 | 设置工作模式与环境(上):建立计算机1、学习理解内核映像格式2、结合课程指导安装虚拟机3、预习动手环节的内容学习本节,开始动手建立运行Cosmos需要的环境。1、学习理解内核映像格式2、结合课程指导安装虚拟机3、预习动手环节的内容...原创 2021-11-28 21:57:50 · 563 阅读 · 0 评论 -
打卡第十四天:09 | 瞧一瞧Linux:Linux的自旋锁和信号量如何实现?
(2021年11月21日打卡第十四天)打卡第十四天:09 | 瞧一瞧Linux:Linux的自旋锁和信号量如何实现?1、Linux的原子变量如何实现2、如何实现中断控制3、Linux自旋锁工作原理与实现4、Linux信号量数据结构与实现5、可选拓展题:根据文中提示,阅读Linux控制CPU响应中断部分的相关源码学习本节,弄清Linux的自旋锁和信号量如何实现。1、Linux的原子变量如何实现2、如何实现中断控制3、Linux自旋锁工作原理与实现4、Linux信号量数据结构与实现5、可选拓展原创 2021-11-25 09:06:16 · 314 阅读 · 0 评论 -
打卡第十三天:08 | 锁:并发操作中,解决数据同步的四种方法
(2021年11月20日打卡第十三天)打卡第十三天:08 | 锁:并发操作中,解决数据同步的四种方法1、如何用代码实现原子操作2、如何实现中断控制3、自旋锁工作原理与实现4、信号量的功能、数据结构与具体实现学习本节,了解解决数据同步的四种方法。1、如何用代码实现原子操作GCC 支持嵌入汇编代码的模板,不同于其它 C 编译器支持嵌入汇编代码的方式,为了优化用户代码,GCC 设计了一种特有的嵌入方式,它规定了汇编代码嵌入的形式和嵌入汇编代码需要由哪几个部分组成,如下面代码所示。__asm__ __原创 2021-11-22 20:55:17 · 205 阅读 · 0 评论 -
打卡第十二天:07 | Cache与内存:程序放在哪儿?
(2021年11月19日打卡第十二天)打卡第十二天:07 | Cache与内存:程序放在哪儿?07 | Cache与内存:程序放在哪儿?1、为什么Cache是解决内存瓶颈的神来之笔?2、了解内存的结构和特性3、Cache带来的一致性问题(以x86 CPU为例)4、理解Cache的MESI协议5、动手环节:如何获取内存视图07 | Cache与内存:程序放在哪儿?学习本节,了解Cache与内存。1、为什么Cache是解决内存瓶颈的神来之笔?2、了解内存的结构和特性3、Cache带来的一致性问题(原创 2021-11-19 22:12:36 · 682 阅读 · 0 评论 -
打卡第十一天:06 | 虚幻与真实:程序中的地址如何转换?
(2021年11月18日打卡第十一天)打卡第十一天:06 | 虚幻与真实:程序中的地址如何转换?06 | 虚幻与真实:程序中的地址如何转换?1、多程序并发会带来哪些问题2、MMU的工作流程是怎样的3、了解保护模式下的分页方案4、了解长模式下的分页方案06 | 虚幻与真实:程序中的地址如何转换?学习本节,搞清虚拟地址和物理地址的关系和转换机制。1、多程序并发会带来哪些问题2、MMU的工作流程是怎样的3、了解保护模式下的分页方案4、了解长模式下的分页方案...原创 2021-11-18 14:09:09 · 835 阅读 · 0 评论 -
打卡第十天:05 | CPU工作模式:执行程序的三种模式
(2021年11月17日打卡第十天)打卡第十天:05 | CPU工作模式:执行程序的三种模式05 | CPU工作模式:执行程序的三种模式1、实模式工作原理与实模式中断2、保护模式工作原理、特权级3、长模式工作原理、长模式切换05 | CPU工作模式:执行程序的三种模式学习本节,了解CPU的三种工作模式。1、实模式工作原理与实模式中断2、保护模式工作原理、特权级3、长模式工作原理、长模式切换...原创 2021-11-17 11:04:38 · 1431 阅读 · 0 评论 -
打卡第九天:04 | 震撼的Linux全景图:业界成熟的内核架构长什么样?
(2021年11月16日打卡第九天)打卡第九天:04 | 震撼的Linux全景图:业界成熟的内核架构长什么样?04 | 震撼的Linux全景图:业界成熟的内核架构长什么样?1、Linux的五大重要组件2、为什么在Darwin-XNU中,两套内核会同时存在呢?3、学完文章后,用自己的话总结一下:NT内核有什么特点,猜一下它属于哪种架构类型?04 | 震撼的Linux全景图:业界成熟的内核架构长什么样?学习本节,对常见商业操作系统的架构形成感性认知。1、Linux的五大重要组件系统 System原创 2021-11-16 11:27:23 · 573 阅读 · 0 评论 -
打卡第八天:03 | 黑盒之中有什么:内核结构与设计
(2021年11月7日打卡第八天)打卡第八天:03 | 黑盒之中有什么:内核结构与设计1、黑盒之中有什么1、黑盒之中有什么原创 2021-11-15 10:20:49 · 261 阅读 · 0 评论 -
打卡第七天:02 | 几行汇编几行C:实现一个最简单的内核
(2021年11月5日打卡第七天)打卡第七天:02 | 几行汇编几行C:实现一个最简单的内核1、PC 机的引导流程2、Hello OS 引导汇编代码3、Hello OS 的主函数4、控制计算机屏幕5、编译和安装 Hello OS(1)make 工具(2)编译(3)安装 Hello OS我们学习操作系统的时候,不妨撇开其它现有的操作系统,基于硬件,写一个最小的操作系统——Hello OS,先练练手、热热身,直观感受一下。1、PC 机的引导流程我们不打算从 PC 的引导程序开始写起,原因是目前我们的原创 2021-11-05 22:52:11 · 257 阅读 · 0 评论 -
打卡第六天:01 | 程序的运行过程:从代码到机器运行
(2021年11月2日打卡第六天)@TOC1、程序的运行过程:从代码到机器运行虚拟机:VirtualBoxhttps://www.virtualbox.org/wiki/Downloads汇编编译器:nasmBochs和磁盘写入程序dd。2、几行汇编几行C:实现一个最简单的内核...原创 2021-11-03 20:34:41 · 311 阅读 · 0 评论 -
打卡第五天:开篇词
(2021年11月1日打卡第五天)打卡第五天:开篇词、尝尝鲜开篇词 | 为什么要学写一个操作系统?尝尝鲜 01 | 程序的运行过程:从代码到机器运行尝尝鲜 02 | 几行汇编几行C:实现一个最简单的内核开篇词 | 为什么要学写一个操作系统?尝尝鲜 01 | 程序的运行过程:从代码到机器运行尝尝鲜 02 | 几行汇编几行C:实现一个最简单的内核...原创 2021-11-01 09:08:20 · 303 阅读 · 0 评论 -
打卡第四天:linux内核功能介绍
(2021年10月31日打卡第四天)打卡第四天:linux内核功能介绍1、linux内核的功能2、内核设计流派3、linux的内核以及它的功能模块分别是什么4、Linux的启动过程第一步:POST(Power On and Self Test,加电自检)小结:流程:POST--->BIOS--->Boot Sequence--->MBR(Bootloader)第二步:根据bootloader来找到磁盘上的内核文件(vmlinuz)1、linux内核的功能进程管理网络管理io设原创 2021-10-31 23:07:41 · 287 阅读 · 0 评论 -
打卡第三天:在windows系统下搭建自制操作系统的环境
(2021年10月30日打卡第三天)打卡第三天:在windows系统下搭建自制操作系统的环境1、所需软件软件打包下载链接:2、通过win7或win10自带的diskpart命令制作自己的虚拟磁盘3、编写启动引导代码4、生成二进制文件5、把生成二进制文件写进虚拟磁盘6、启动我们自制的os1、所需软件虚拟机:VirtualBoxhttps://www.virtualbox.org/wiki/Downloads汇编编译器:nasmBochs和磁盘写入程序dd。软件打包下载链接:百度网盘:link原创 2021-10-30 16:49:58 · 1961 阅读 · 0 评论 -
打卡第二天:学习HelloOS源码
(2021年10月29日打卡第二天)打卡第二天:学习HelloOS源码1、make1、make通过命令sudo apt-get install nasm安装nasm:原创 2021-10-29 16:11:47 · 301 阅读 · 0 评论 -
打卡第一天:通过GRUB启动我们自己的操作系统HelloOS
(2021年10月28日打卡第一天)打卡第一天:通过GRUB启动我们自己的操作系统HelloOS1、安装nasm2、把windows主机上的源码复制到虚拟机ubuntu中3、通过make自动编译操作系统HelloOS4、拷贝编译生成的HelloOS.bin到boot目录下5、修改/etc/default/grub6、更新grub配置7、修改/boot/grub/grub.cfg,增加HelloOS启动项8、重启虚拟机9、通过命令ls验证系统GRUB引导在硬盘的哪个分区1、安装nasm通过命令sud原创 2021-10-29 09:12:33 · 809 阅读 · 0 评论