-
如何使用C内核运行PE(便携式可执行文件)
我已经开始使用C和Assembly创建自己的操作系统 我使用自己的Boot loader引导用C编写的内核 现在我陷入了一 -
OS&Assembly:是什么阻止用户模式将选择器设置为任意值?
我知道操作系统通过使用分段和特权级别来限制对内核代码和数据的访问。但是,用户可以更改段寄存 -
0x98FA2具有QEMU的内存中的未知功能
我正在调试32位操作系统,并且要使用QEMU + GDB。 我试图发现代码在哪一刻使INT 16来获取键盘缓冲 -
如何在Assembly / C内核中管理分页?
我的项目是在我要用C和汇编语言编写的一小部分内核上执行我自己的JVM。 因此,我仍在学习内核如何完 -
我们如何通过键盘端口重启
以下代码如何重启系统,任何人都可以提供有关此文档的信息 <pre><code>#define KEYBOARD_PORT 0x64 ioperm(KEYBO -
Multiboot 1引导信息总大小
是否有一种快速可靠的方法来找出内存中的Multiboot 1启动信息的总大小? <em>只是要澄清一下:我 -
尝试对准系统的64位内核进行编码时,“重定位被截断以适合” 其他东西
我正在尝试遵循OSDev“ <a href="https://wiki.osdev.org/Higher_Half_x86_Bare_Bones" rel="nofollow noreferrer">Higher Half x86 Bare -
使用16位模式在没有BIOS例程的情况下打印字母
我意识到在保护模式下,可以通过修改内存位置0xb8000等来使用内存映射的I / O打印字母。 我们可以在16 -
在gcc 32位代码中未定义对_GLOBAL_OFFSET_TABLE_的引用,用于琐碎的功能,独立的OS
我有一个小的C代码文件(function.c): <pre><code>int function() { return 0x1234abce; } </code></pre> 我正在 -
OS如何检测进程崩溃
OS如何知道EIP不再是有效/合法的指令并且该应用程序已崩溃?它怎么知道何时生成故障转储数据? -
从16位实模式(x86)切换到32位保护模式
这是将cpu切换为32位模式的标准代码。 <pre><code> cli lgdt [gdt_descriptor] ; Assume a well-defined GDT -
令人困惑的内联汇编
<pre><code>static inline void insw(int port, void *addr, int cnt) { asm volatile("cld\n\trepne\n\tinsw" : "=D&# -
在简单的x86 32位操作系统中与硬件进行交互
我一直在编写一个小型操作系统,并对MMIO(内存映射的I / O)有一些疑问。 在32位模式下,存在32 -
英特尔x86-中断服务程序责任 故障陷阱中止
我并没有真正意义上的问题,但是我将尽力澄清一个内容问题。假设我们有一个微内核(PC Intel x86; 32 -
用于在内核中切换任务的汇编代码不一致地崩溃
我正在尝试在操作系统中实现多任务,并且遇到了一个问题,我的任务切换代码导致操作系统崩溃,有 -
在Linux上的简单(操作系统)文件上制作FAT12文件系统
我想在Linux上的一个简单文件上创建FAT12文件系统(示例:〜/ file),并可能使用xxd来查看创建文件系统 -
使用BIOS中断13h读取硬盘时出现问题。 (CHS到底是什么?)
我正在为x86架构编写一个简单的操作系统,并使用qemu通过以下命令进行仿真: <pre><code> qemu-syst -
使用BIOS int 13h访问不同磁头中的扇区
我有一个磁盘,每个磁道有63个扇区。 (根据我的观察,我认为) 我想使用int 13h在16位引导加载程序上 -
保护/长模式下的视频输出
我是Lukas,我对在保护/长模式下在屏幕上绘制像素有疑问,而视频生成通常是OS。我的问题是,如何在168 -
引导加载程序未加载内核
我正在开发操作系统。 启动操作系统时出错。 错误是: <blockquote> 找不到KERNEL.BIN -
与没有主要功能的gcc混合多个目标文件
我尝试混合文件。 例如,如果我有file1.o和file2.o,它们都没有主要功能,则le1_file2.o是这些文件的结果。 -
创建异常处理程序的方法是什么?
我想为异常实现处理程序,但是我不知道从哪里开始。 原因是我的qemu日志文件显示了很多异常错误:</p -
内核无法加载应用程序
我要在Assembly中创建自己的操作系统。 我想从内核加载.bin文件。为此,我从引导加载程序中复制 -
为什么BIOS在第二条指令中需要将(似乎)随机地址中的值与零进行比较?
我试图通过深入研究操作系统的底层细节来学习操作系统。我现在参加的课程是<a href="https://pdos.csail.mit. -
在日志文件中禁用QEMU的SMM
我的qemu日志文件发出太多噪音,因此我想在我的日志文件中的qemu上禁用<code>SMM enter</code>。 <pre><code> -
OSDEV是否有IDE?
是否有IDE在C / C ++ / Assembly中创建操作系统? 如果有的话,请告诉我如何为OSDEV设置它,或者为我提供一 -
访问另一个处理器的本地APIC
Intel 64和IA-32的文档说,本地APIC的寄存器空间可以重新映射到其他物理地址。 我的问题是,当它 -
如何在程序集中获取exfat根目录?
有人知道如何为引导扇区获取exfat的根目录吗?我已经进行了许多小时的研究,发现不起作用。尝试过的 -
构建交叉编译器的必要性
我正在使用64位linux机器 我正在做一些操作系统开发,据说您需要使用交叉编译器为目标系统生成代码。 -
在32位保护模式下启用A20线路时出现问题
我写了一个简单的引导程序,其中我已经从实模式切换到保护模式。 我要启用A20地址线。 这是我的代码