我尝试使用自定义构建的内核制作操作系统。效果不是很好。我正在使用Ubuntu,并已从kernel.org下载Linux 3.2.7。我没有尝试在Ubuntu系统中更改内核。我想使用Grub(Linux内核)制作自己的OS,并且希望能够将此Homebrew OS放在文件类型(例如iso)中,然后将其放入CD并在另一台计算机上启动。我的问题是:制作此操作系统到底需要什么?任何评论或教程都将有所帮助。
我尝试使用自定义构建的内核制作操作系统。效果不是很好。我正在使用Ubuntu,并已从kernel.org下载Linux 3.2.7。我没有尝试在Ubuntu系统中更改内核。我想使用Grub(Linux内核)制作自己的OS,并且希望能够将此Homebrew OS放在文件类型(例如iso)中,然后将其放入CD并在另一台计算机上启动。我的问题是:制作此操作系统到底需要什么?任何评论或教程都将有所帮助。
Answers:
这是您要寻找的内容:http : //www.linuxfromscratch.org/
一个开始的地方是Buildroot。
它是什么?这是一组脚本/生成文件,可让您从头开始创建一个Linux系统。它拉下所有相关组件,在主机上构建交叉编译器。-几乎所有东西。
它的设计主要是针对嵌入式的工作-因此,它包含uClibc的,而不是glibc的并且缺少许多组件构建步骤,如Gnome和一些桌面环境-但是,如果你正在做一个活的CD是绝对精彩。当然,不仅限于现场CD。我这么说-它确实与嵌入式Qt一起提供。
最新的稳定版随附grub 0.97,可能无法满足您的要求。
我之所以这样说是因为,尽管Linux From Scratch非常棒,它可以告诉您如何完成整个过程,但它既耗时又费时,并且需要很大的耐心。Buildroot可以进行修改以包含您需要的任何内容;作为一种学习经验,使用menuconfig
样式菜单并获得能够启动和运行的功能的能力非常棒。您还可以查看它如何执行所有操作,然后再添加以后的功能。
在配置内核方面,我不能更强烈地建议您采用现有配置(通常在中可用/boot
),将其复制到内核树中,.config
然后运行make oldconfig
并逐步执行新选项。可以保证默认选项在您的发行版中都可以使用。如果您完全从头开始,则可能会构建一些无法使用的东西。
您所需的最低限度是内核和可以作为init运行的某些进程,以及init进程所需的所有加载程序和库。您启动内核,告诉它运行init进程,然后从那里开始您的业务。
/sbin/init
(除非另行配置)。这个程序可以做任何你想做的事。有一些常见的选项可用于/sbin/init
,例如Upstart,sysvinit,systemd或bash。从那里开始,该程序处于控制之中。如果退出,内核将崩溃,因此它应该能够启动其他程序。