我需要什么硬件来开始编写,编译和运行自己的内核?我需要购买树莓派这样的新机器吗?

凯文

我是一名学生,希望了解操作系统的工作原理。经过一些研究,我决定我想尝试用C或C ++编写自己的内核。

我也很可能会跟着Peter Jay Salzman,Michael Burian和Ori Pomerantz撰写的《 Linux内核模块编程指南》。(让我知道是否应该寻找更好的资源。)

在大学里,我可以使用自己的个人Windows计算机和ubuntu机器,但我都无法承担破坏的风险。

我有一个长期项目的想法,那就是用树莓派制作一个虚拟的宇宙飞船,并为其编写所有代码。这个核心将是它的第一位。

我看了Linux From Scratch,但这似乎只是安装您自己编写的别人编写的程序组合,这对我不感兴趣。我想做的是编写自己的线程调度程序/内存管理器等,并处理所有引起的麻烦。(不过,稍后我可能想使我的内核与LFS一起使用。)

我的问题:

基本上,我希望发现的是,在硬件方面开始编写,编译和运行自己的内核所需的最低入门要求是什么?我是否需要购买像树莓派这样的新专用机器,还是可以在自己的笔记本电脑上编写/编译/运行它?

非常感谢。

依莫司酮

您可以使用诸如QEmu,Bochs或VirtualBox之类的虚拟机来运行和调试内核,而不必担心会破坏计算机。您只需要编译任何标准的c / c ++编译器和一个汇编器即可。

另外,建议您访问OSDev Wiki网站,该网站上有许多有用的信息。

请记住,编写自己的操作系统可能是有史以来最大的挑战,因此请确保您拥有所需的所有工具和知识。我说这是因为我尝试推出自己的操作系统,而不得不使用无法正常工作的键盘驱动程序放弃它...

无论如何,作为语言我建议使用C ++而不是C,因为类是编程中非常有用的工具。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我需要将已经构建的Maven项目转移到新机器上

运行该程序需要什么硬件?

有像双向分配这样的东西吗?我在这里需要什么功能?

我需要什么环境来运行一个vasturiano 3D-Force Graph?

我需要什么来从“联系”页面接收信息?

我需要什么环境来部署虚拟maas魅力?

我需要什么来获取 li 项目的内容

我需要什么软件包来构建Qt 5和CMake应用程序?

我需要桌面来运行GUI吗?

我需要桌面来运行GUI吗?

我在ASP.NET和IIS中需要什么?

购买满足自己需求的硬件时需要考虑什么?

我需要Go语言运行时来运行已编译的Go应用程序吗?

如果C ++编译为机器代码,为什么我们需要安装“运行时”?

Java EE Web开发,我从哪里开始?我需要什么技能?

我在/ root中需要什么文件?

我需要什么样的关系

我需要什么网络设备?

我需要什么DVI电缆?

我需要什么“ idsldapmodify,ldapmodify等”?

我需要什么关系?

当我可以在main()中编写所有内容时,我需要什么“正常”功能?

有人可以确定我以前的sudo密码是否可以访问我的机器和我的新机器吗?

我需要什么工具才能在Ubuntu上开始android开发?

交叉编译树莓派内核

为什么我需要 FreeGLUT 来编译和链接 GLFW 程序

GCC编译我的.C程序需要什么UNIX文件权限?

我需要什么iptables命令来允许Web服务器流量?

我需要什么 git 命令来保持干净的提交历史?