操作系统开发:内核,shell,网络,交叉编译等
本教程展示了如何编写我自己的简单操作系统: 编写您自己的操作系统教程: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 内核。我尝试过各种编译器,但没有成功。我的引导加载程序只是从软盘加载原始扇区(我的内核就在
在实现使用 GRUB2 启动的 multiboot2 投诉操作系统时,阅读提供的标签,我收到的 type = 25 以及我对 type = 6 的信息请求被忽略。 不完全是...
我需要一个可以编译原始二进制文件(没有结构或标头)的 C 编译器。我尝试使用 GCC 但无法做到。大家有什么建议吗?
设置 IDT 然后启用 STI 后出现一般保护故障 [已解决]
我是操作系统开发新手,想为我的爱好操作系统添加 IDT。启用 STI 后,我立即收到 GPF。现在我的 ISR 确实正确接收中断,但我不知道问题是什么。我有一个 6...
我是操作系统开发新手,想将 IDT 添加到我的爱好操作系统中。启用 STI 后,我立即收到 GPF。现在我的 ISR 确实正确接收中断,但我不知道问题出在哪里。我有一个 6...
我已经设置了32位保护模式,并尝试通过C和汇编加载全局描述符表(GDT),并尝试通过check_gdt()函数打印不同的寄存器值,其中 无效 check_gdt() {
我正在学习操作系统开发教程,作为一名狂热爱好者,我在代码中发现了一行引起了我注意的内容: 位 16 部分_ENTRY CLASS=代码 外部_cstart_
是否可以使用未编译的语言编写操作系统[即像 python 一样解释] 或者不使用运行时 [像 Java] ?虚拟机不需要在操作系统之上运行吗...
我正在编写自己的操作系统内核,并开始使用 C++ 进行打印功能。我可以用字符打印到 VGA 内存(0xB8000),但是当我使用 print_str(const char* str) 函数时,它只是...
我正在使用 QEMU 在 macOS 环境中的 x86_64 NASM 中为我的 64 位操作系统开发自定义引导加载程序。引导加载程序是两阶段的,旨在从磁盘加载操作系统。我有经验...
我一直在研究分页和访问控制如何在 x86-64 上工作,并且我正在尝试了解用于页面条目的 USER 标志与用户模式进程的内存访问之间的交互......