9得票4回答
如何将一个512字节的bin文件写入软盘的第一扇区(第0扇区)?

如何将 .bin 文件写入软盘/虚拟软盘/软盘镜像的第一个扇区? 我正在尝试引导一个简单的512字节引导加载程序。无处都标明大小为“512字节”,所以应该已经很好了。 附加信息: 引导加载程序只是显示一个字符串,我正在学习简单汇编语言。有些工作在 Windows 上完成,有些在 Ubu...

8得票1回答
识别通用保护错误(x86)的故障地址

我正在尝试编写x86通用保护故障(GP#13)的ISR。 我无法从英特尔文档中找出如何查找导致异常的故障地址。 我知道对于页面故障异常(GP#14),cr2寄存器保存故障地址。 非常感谢任何帮助。

308得票4回答
如何在没有操作系统的情况下运行程序?

如何在没有操作系统运行的情况下单独运行程序?您可以创建汇编程序,使计算机能够在启动时加载和运行它们,例如从闪存驱动器引导计算机并运行CPU上的程序吗?

7得票1回答
内存映射显示的RAM比实际可用的RAM更多

我正在开发一个小型的x86内核。我正在访问并尝试读取GRUB在multiboot头中提供的内存映射。我的计算机使用Intel i3处理器和4 GiB内存。在此计算机上运行时,我正在读取以下内存映射: --Base Address-- --Length-- --T...

9得票7回答
除了malloc/free,程序还需要操作系统提供什么?

我正在设计一个操作系统的内核(我打算叫它“核心”,只是为了与众不同,但基本上是一样的)。如果我不能实现多任务处理、内存管理和其他基本功能,那么操作系统本身的细节就没有意义,因此我需要首先解决这个问题。我有一些关于设计malloc例程的问题。 我认为malloc()要么是内核本身的一部分(我倾...

14得票3回答
更改BIOS代码/刷新BIOS

我花费了很多时间开发操作系统并在低级别引导加载程序上工作。但现在我想在不离开低级环境的情况下,花些时间做一些与安全相关的事情。 所以我选择构建自己的标准密码实用程序,遵循预启动身份验证方案。由于我希望软件至少有一点可移植性,因此我希望它尽可能少地使用外部支持。我认为如果我在运行真实模式OS内...

610得票28回答
操作系统开发的入门资源有哪些?

我一直想做的事情是开发自己的操作系统(不一定像Linux或Windows那样花哨,但比我已经完成的简单引导程序要好)。 我很难找到超过编写简单的“Hello World”操作系统的资源/指南。 我知道很多人可能会推荐我看Linux或BSD;但是像那样的系统代码库(据推测)非常庞大,我不知道...

19得票6回答
创建自定义操作系统的障碍

在我看来,程序员(特别是计算机科学毕业生)最常尝试着去完成的过于雄心勃勃的项目是构建自己的操作系统。(尝试创建自己的编程语言+编译器可能更为普遍,但远没有这么雄心勃勃。) 对于那些像我一样愚蠢地尝试的人:除了纯粹的规模以外,在从头开始创建你自己的操作系统时,你遇到的最大陷阱或意料之外的障碍是...

7得票1回答
需要在汇编/编译/链接时构建静态IDT和GDT的解决方案

这个问题源于多年来许多人遇到的问题,特别是在x86操作系统开发中。最近有一个相关NASM问题被编辑推上来了。在那种情况下,使用NASM的人在汇编时会出现以下错误: shift operator may only be applied to scalar values 另一个相关问题询问...

9得票1回答
PS/2键盘无法发送按键中断,但可以响应命令。

我是一名新手操作系统开发者,最近开始了一个业余项目,创建一个尽可能简单的纯文本操作系统。它用C语言编写,辅以一些汇编语言,并使用GRUB进行引导,在VirtualBox中进行测试,偶尔将其放在闪存驱动器上进行测试,以便在一台古老的笔记本电脑(约2009年)上进行测试。到目前为止,我已经实现了一...