跟着OSDev学习搭建操作系统(四)

上次我们编译并成功运行了myOS,这次我们来仔细看看这个简单的操作系统有哪些构成要素,要以怎样的方法去安装它。 编译环境的建立 源代码的编译是靠shell脚本而不是Makefile总控的,不过这并不影响我们学习。大致来讲: ...

2020年5月13日 · 4 分钟 · 1971 字 · Dai Chao

跟着OSDev学习搭建操作系统(三)

前几天跑通了一个空空如也的内核(教程里叫做Bare Bone),只能说是搭建好了环境,接下来要搭建的myOS会稍微正式一点。如同教程标题“Meaty Skeleton”所说的那样,myOS虽然有一点“meat”,但依然只是一具“skeleton”,没有实际功能。我们既可以从中学到一个科学的OS源代码的结构,也可以直接以myOS为基础,向里面添加新的功能。 ...

2020年5月9日 · 3 分钟 · 1302 字 · Dai Chao

跟着OSDev网站搭建个人操作系统(二)

上回我们讲(翻译)了一些预备知识,并准备好了交叉编译器和其他工具链,现在开始动手写代码吧!我们的“空内核”需要三个源文件: boot.S,作为内核的入口,用于初始化运行环境 kernel.c,作为内核的主函数 linker.ld,作为链接上面两个文件的脚本 Booting the Operating System 当你编译好一个内核后,它是存储于磁盘上的,然而一个没有内核的机器该如何把磁盘上的内核读进内存,从而去运行里面的指令呢?这就要用到一个内核之外的东西,叫做bootloader。原文提到了GNU有一个叫做GRUB的现成工具可以直接用。 ...

2020年5月5日 · 7 分钟 · 3378 字 · Dai Chao

跟着OSDev网站搭建个人操作系统(一)

发现一个宝藏网站:osdev.org(我没火星吧),这是我见过的内容最丰富最全面的操作系统开发者社区,里面的wiki不仅教你从零开始搭建内核与操作系统,还传授了一些人生经验,给刚准备起航的newbie指路(或是劝退),可以说是OS新手开发者的福地了。我今天也没干什么,就按照它给的教程一步步走,在QEMU上跑通了一个空空如也的内核,然后准备把大致的步骤记录在这里。当然,我现在是个纯newbie,最多只能做个概括+翻译而已。如果你有兴趣,可以直接去读原文,我会把每篇文章的链接附上。 ...

2020年5月5日 · 5 分钟 · 2092 字 · Dai Chao