操作系统开发:内核,shell,网络,交叉编译等
custombootloader无法加载C内核(kernel.c),但与汇编(kernel.asm)一起使用
当使用kernel.asm时,一切正常。但是,当我用kernel.c替换它时,我的引导加载程序无法加载内核并给出错误。
I当前,将我的系统启动到具有线性框架缓冲区的640x480x32b VESA模式。 使用以下代码,我在屏幕上闪烁红色和绿色: void clear(颜色){ U8*光标=
Int 0x13 在真实硬件上失败且没有错误,在 Qemu 中工作
我目前有一个基本的引导加载程序设置,可以使用一些调试语句加载我的内核: ;设置偏移量 [组织0x7c00] KERNEL_OFFSET 等于 0x2000 [位 16] ;设置堆栈 移动bp,0x1000 移动 sp, bp 移动...
当中断将在基于X86架构的64位CPU中发生时,CPU将自动推动一些IRET寄存器值,然后按照堆栈的方式推动一些IRET寄存器值 +--------------------------------+ |犯错。代码(如果
尝试使用 Cygwin 构建 binutils-2.7 时出现“Config.guess 无法确定主机类型”
我正在尝试使用 Cygwin 构建 binutils-2.7 和 gcc,同时遵循 https://wiki.osdev.org/GCC_Cross-Compiler。每次我跑步时: ../binutils-2.7/configure --target=i386-elf --prefix="/home/jacki&
目前,在通过将寄存器 cr0 中的 lsb 设置为 1 进入保护模式后,我的引导加载程序遇到了困难。我执行了远跳转到由 jmp 0x8 定义的内核代码段:
我的 x86_64 操作系统中由于 GDT 选择器 1113 导致一般保护故障的原因是什么?
我正在开发一个基于x86架构的64位操作系统,它使用limine-8.6.0引导加载程序。我已启用 GDT 全局 gdt_flush gdt_flush: LGDT [RDI] jmp reloadSegments 视网膜色素变性
我正在编写一个业余爱好操作系统,它有自己的 uefi-target x64 引导加载程序。在 UEFI 规范中,它声明启用身份映射寻呼: 启用分页模式并且由...定义的任何内存空间
以下是重置段的代码: 全局重新加载段 节.文本 重新加载段: ;重新加载 CS 寄存器,偏移量为 0x08 jmp 0x08:.reload_CS .reload_CS...
本教程展示了如何编写我自己的简单操作系统: 编写您自己的操作系统教程:http://joelgompert.com/OS/TableOfContents.htm 一切都好,但语言发展......
我正在开发一个操作系统,并且一直在使用包含我的引导加载程序和内核的 BIN 文件。我一直在使用 QEMU 和 -drive 选项运行 BIN 文件,一切都按预期工作。
我想在 x86_64 操作系统中启用 GDT。我编写了以下代码来启用 GDT。 结构gdt_entry {// 128 位 uint16_t limit_low; // 段限制的低16位 uint16_t ba...
如何使用直接写入模式为业余爱好操作系统编写简单的 Soundblaster 16 驱动程序?
我正在开发一个 32 位、保护模式业余爱好操作系统。目前,我正在寻求添加简单的声音支持。为此,我希望使用 Sound Blaster 16 并使用直接模式...
USB2.0 控制端点根据 set_configuration 请求停止
我正在为专有操作系统开发 xhci 控制器驱动程序。我在枚举 USB2 设备时遇到问题。 USB3 设备的枚举没有问题。这是我的司机所做的: 连接设备...
在 x86 Intel Xeon 系统上的 Jailhouse 虚拟机管理程序下设置页面属性表 (PAT) 时出现问题
我正在尝试在 Intel Xeon x86_64 系统上设置 Jailhouse 虚拟机管理程序。但是,在初始设置期间写入 MSR_IA32_PAT 时,虚拟机管理程序会卡住。显然,价值...
我想写一个操作系统(小,多练习),遇到了一些困难。现在我有了加载程序文件、内核和一个未开发的标准库的类似物......
此问题现已结束。我找到了决定。 我想写一个操作系统(小,更多用于练习)并遇到了一些困难。现在我有了加载程序文件、内核和一个
我一直在尝试阅读 ARM 手册以了解 ARM 在架构上的工作原理。我知道每个EL都有一个SP的系统寄存器,比如SP_EL0,SP_EL1等......
我不知道如何为 16 位实模式编译我的 C 内核。我尝试过各种编译器,但没有成功。我的引导加载程序只是从软盘加载原始扇区(我的内核就在