目录

开发操作系统内核环境搭建

开发操作系统内核环境搭建

哈喽,我是子牙,一个很卷的硬核男人

闲来无事不是写了个操作系统吗,写完之后发了篇文章《圆梦,手写了个操作系统》,这一发倒好,一石激起千层浪,很多小伙伴跑来问我开发操作系统的环境如何搭建。既然这么多小伙伴想写操作系统,作为过来人,我就把我的环境搭建踩坑手册分享给大家

如果人人都能写操作系统,国家计算机行业的兴旺指日可待呀

环境整体介绍

说下我的环境,也是我推荐的环境

开发环境操作系统:Ubuntu16

开发环境虚拟机:VMware最新版

开发工具:clion(汇编、C语言,这一款足矣)

运行虚拟机1:bochs2.7(用来单步调试汇编)

运行虚拟机2:qemu(用来单步调试C语言)

运行虚拟机3:VMware、vbox(打包成对应虚拟机的镜像即可运行)

如果你是Windows,推荐用这个环境

如果你是Mac,还是推荐你用这个环境

开发操作系统,用这个环境就对了

可能你还不知道吧:Linux操作系统、Linux内核驱动开发、嵌入式开发、Java虚拟机Hotspot、MySQL等你能想到的或者经常用到的软件、系统、中间件,也都是在这个环境下开发出来的。所以用习惯这套环境,意义重大!

上个图,让大家有个感性认识

https://i-blog.csdnimg.cn/blog_migrate/8bddff0c8f4970a061c09b0ad6245ad8.png

关注公众号【硬核子牙】回复【开发操作系统环境搭建】获取我用的所有软件包。如果你用我的软件包,搭建过程中遇到问题来问我,我可能知道。如果你与我用的软件包版本不同,遇到问题来问我,我可能是不知道的。

https://i-blog.csdnimg.cn/blog_migrate/8e84ad6db87479da40d0411b798b3a09.png

接下来说说这套环境搭建的详细细节

搭建详细步骤

虚拟机VMware的安装不多说了,大家都会

虚拟机VMware中安装Ubuntu16也不多说了,大家肯定都会

Ubuntu16中安装clion也不多说了,不会的拉出去毙了

重点说下Ubuntu16中如何安装bochs,装不好是不会出来调试界面的哈,仔细复制我给的配置。当然,网上能搜到,但是有巨多坑,我提供的是我踩坑过后总结的,可放心使用,逼着研究都能搭建出来

第一步:安装依赖

https://i-blog.csdnimg.cn/blog_migrate/fa9e0413b1738a3cd7f8de8e613b23f3.png

第二步:编译配置

https://i-blog.csdnimg.cn/blog_migrate/863f7353c4524c30e59f973c711477d2.png

第三步:开始编译

https://i-blog.csdnimg.cn/blog_migrate/a7645e23e9e25a303b31d7c0c80ea5fd.png

第四步:把我提供的代码拉下来,执行make bochs,就能看到效果了

https://i-blog.csdnimg.cn/blog_migrate/0364d5b58ac2d326a7c34500aa19082f.png

我提供的代码在哪里?接着往后看

这里我略过了bochs的配置,你执行bochs -q试下就晓得了,很简单,不多言。

我提供的代码中有我配置好的配置文件。接下来说下配置文件中两个重要的地方

https://i-blog.csdnimg.cn/blog_migrate/908fcbefc3837cc1cb88d4ebff3c884f.png

大家可以帮忙转发一波,让更多想自己写操作系统的小伙伴,不会因为开发环境的搭建而放弃

微内核源码

关注公众号**【硬核子牙】 回复 【微内核源码】**,可以获取

接下来说下这个代码怎么用?就是怎么编译出操作系统内核镜像。我提供的这个是比较麻烦的环境,我觉得是有必要的。在接触集成环境之前,了解编译运行调试内核的每一步。后面教大家优化成一键编译调试环境

第一步:先安装汇编编译器NASM

https://i-blog.csdnimg.cn/blog_migrate/b43b34794b5dd7a1de116e735841e059.png

第二步:导入项目,选cmake

https://i-blog.csdnimg.cn/blog_migrate/3eeb2a2a79b4eee484f91f0deb904686.png

第三步:将boot.asm编译生成boot.o

https://i-blog.csdnimg.cn/blog_migrate/e94e1e20916fd4f7a19b3fc27d1f2e0c.png

第四步:将boot.o写入内核镜像中

https://i-blog.csdnimg.cn/blog_migrate/56d9b24066dbefa98f5f3f9c2672ea7b.png

会在根目录下生成a.img,这个就是内核镜像

https://i-blog.csdnimg.cn/blog_migrate/beba6ff0b55e10aa0e5c6672cbc618d1.png

第五步:运行内核

https://i-blog.csdnimg.cn/blog_migrate/3fd930a2e6c687fe9b4e0a835f0d60ca.png

送佛送到西

知道很多小伙伴,比较心急,就想直接上手写内核

还有的小伙伴,Linux玩得不熟,但也有一颗写操作系统的心

……

综上,我把我的环境打包成了镜像,你下载过去,解压后就能直接运行起来

关注公众号【硬核子牙】回复【开发操作系统环境一条龙】获取

解压后,双击这个文件即可自动启动VMware

https://i-blog.csdnimg.cn/blog_migrate/4b58cd2ac3bd52e6b0ad185334ef6e35.png

虚拟机密码:123qwer

给力否?值得一赞否?

忘了提了,开发操作系统需要的语言基础:汇编、C语言。进入保护模式之前,就是在CPU的保护模式下,会汇编就可以了。所以这个环境,可以作为你学汇编的环境

结语

我是子牙老师,喜欢钻研底层,深入研究Windows、Linux内核、JVM。如果你也喜欢研究底层,欢迎关注我的公众号【 硬核子牙