操作系统开发捷径

时间:2014-08-01 22:11:25

标签: c ubuntu operating-system

我想尝试创建一个操作系统,但是我真的不想做所有的硬件接口所以我想是否有可能从ubuntu或其他带有所有硬件驱动程序接口的Linux发行版获取内核并从那里建立它。我真的想开始我可以简单地打印到屏幕上的c来创建一个类似界面的控制台,或者打开一个带有openGl的图形界面或简单的像素缓冲区,用于没有硬件加速的系统而不考虑硬件。 听起来有点讨厌,但我认为它可以用一点点工作。在那里我可以找到这样的核心,我不需要UNIX部分只是驱动程序的接口和kernal来启动我的代码。

感谢您提供有关情况的任何信息。

1 个答案:

答案 0 :(得分:3)

驱动程序是操作系统中最重要的部分,因此您想要编写的内容可能不是操作系统。 从你的说法来看,它听起来像是你想拥有一个没有任何预定义图形界面的操作系统。仅使用Linux就可以轻松实现这一目标。

注意:linux是一个操作系统,其中包括"发行版"通过添加大量程序和配置来扩展。彩色登录屏幕和桌面环境(如Unity,Gnome或KDE)只是一堆程序,配置为在系统启动后立即自动启动。拿走那些,你有一个黑色的白色终端,里面有一个外壳,没有窗户,图标,菜单或指针。

那说你可以尝试两件事: Arch Linux https://www.archlinux.org/)这是一个完整的Linux发行版,默认情况下没有桌面环境。如果你安装Arch并启动你的计算机,你将会看到一个文本登录和一个shell,根本没有桌面。关于这一点的好处是你可以随时安装任何程序(例如桌面),因为Arch提供了一个非常好的命令行包管理器和存储库。如果不安装任何附加功能,这是学习如何编写在命令行上运行的低级代码的好方法,并且您将学习如何设置Linux的一大堆。 Arch Linux wiki上有极好的极客写的指南。如果你想要一个在没有桌面的情况下运行得很好的完整系统,这就是你的选择。不过,这对你来说可能太容易了。

第二件事是 Linux From Scratch http://www.linuxfromscratch.org/)。这是一个关于如何从头开始构建自己的最小Linux的广泛指南(谁会猜到......)。在这里,你会更低级,你可以完全控制一切。但是,既然你想以自己的方式制作自己的操作系统,这可能是最佳选择。这里没有包管理系统,只有香草代码。关于LSF的有趣之处在于,您可以更改Linux源代码,重新编译它并修改所有内容,而无需关心常见的Linux服务或某些程序不再起作用等任何副作用。