Operating system 操作系统开发工具:需要建议
所以我在圣诞节买了一台新电脑,预装了Windows8。现在,让它在同一个驱动器上同时运行LinuxUbuntu和W8已经够麻烦的了。如果一个硬盘驱动器有两个操作系统,则需要对驱动器进行分区,以便两个操作系统不会相互冲突。现在有一个名为Mini Partition Tool Wizard的程序在Windows 8中运行(Linux中也有一个类似的程序称为gparted),它允许您创建和调整硬盘分区大小,只要您不覆盖当前使用的操作系统 长话短说:我想编写自己的迷你操作系统,专门用于引导控制和硬盘管理。也就是说,一旦我将它编写、调试并编译成可执行代码,我将把它放在USB记忆棒上,我可以从BIOS菜单中启动,然后直接设置硬盘分区,甚至在必要时格式化硬盘。我很惊讶BIOS没有用户自己做的选项 所以我的问题是:我是否可以只使用C/C++工具来完成这项工作?或者我需要内联汇编代码吗?或者编写一个C++程序中使用的汇编代码模块。非常确定迷你分区工具向导不是开源的(Windows也是)。以前从未写过和使用过操作系统,所以我对此不感兴趣,但我愿意并且能够花时间来了解它是如何完成的 我可以专门使用C/C++工具来完成这项工作吗?或者我需要内联汇编代码吗 您将需要一些程序集,而不是内联类型。编译后的C/C++代码需要设置和配置一些东西(例如,CPU的32位保护模式、堆栈、各种CPU寄存器的值、设备驱动程序、中断、C/C++内存管理器等),而BIOS只需从磁盘加载一个512字节长的扇区并将控制权传输给它,没有任何设置,CPU仍处于16位模式 因此,您需要编写一些汇编代码:Operating system 操作系统开发工具:需要建议,operating-system,Operating System,所以我在圣诞节买了一台新电脑,预装了Windows8。现在,让它在同一个驱动器上同时运行LinuxUbuntu和W8已经够麻烦的了。如果一个硬盘驱动器有两个操作系统,则需要对驱动器进行分区,以便两个操作系统不会相互冲突。现在有一个名为Mini Partition Tool Wizard的程序在Windows 8中运行(Linux中也有一个类似的程序称为gparted),它允许您创建和调整硬盘分区大小,只要您不覆盖当前使用的操作系统 长话短说:我想编写自己的迷你操作系统,专门用于引导控制和硬盘管理
- 从磁盘加载更多的内容,你不会认为所有内容都能容纳512字节,是吗
- 将CPU切换到32位保护模式
- 重新配置中断控制器,使中断不会映射到与保护模式异常相同的中断向量上(好吧,这一小部分可以用C语言完成)
- 写入异常处理程序
- 为计时器和键盘等基本功能编写中断处理程序(如果精心设计,您可能只需要在汇编中完成一小部分,其余部分可以在C中完成)
malloc()
/new
,putch()
,getchar()
,fopen()
,time()
,等等使用您的低级API,而不是Windows或Linux
准备花几年时间,从一无所有、缺乏知识和经验的状态中获得一些有用的东西
是的,你确实可以从一开始就学习东西。还有一些有用的新闻组:和。,您需要组装。