操作系统开发:内核,shell,网络,交叉编译等
我一直在研究分页和访问控制如何在 x86-64 上工作,并且我正在尝试了解用于页面条目的 USER 标志与用户模式进程的内存访问之间的交互......
我正在为 32 位内核开发引导加载程序,并且在引导加载程序从阶段 1 过渡到阶段 2 时遇到了问题。该代码似乎没有按预期跳转到第 2 阶段。我是
我正在为 32 位内核开发引导加载程序,并且在引导加载程序从阶段 1 过渡到阶段 2 时遇到了问题。该代码似乎没有按预期跳转到第 2 阶段。我是
我正在用 Rust 编写一个 x86_64 操作系统并在 qemu 电脑上测试它。我已经实现了 ELF 文件加载,并且我 100% 确定文件已正确加载和映射,因为我已经手动检查了内存。 我的问题...
我正在为我的操作系统开发多任务处理,更具体地说,是用于用户模式 ELF 二进制文件的 fork() (他们通过系统调用来调用它)。 调用 fork 后,它会设法返回到父进程(有时),但是......
我正在为我的第一个操作系统实现上下文切换,我遇到了一个我无法解决的小问题,即从结构中保存后恢复CPU状态,因为所有寄存器都必须保存...
我正在编写一个小型 UEFI x86_64 操作系统。获得内存映射并退出启动服务后,我打印内存映射并注意到所有条目都将某个物理地址映射到虚拟地址 0....
检查管理完成队列正在进入无限循环(NVMe over PCIe)
我正在创建一个 64 位 x86-64 内核,并在我的真机上测试它。在我的 nvme 驱动程序代码中,我正在创建 I/O 完成队列并在第 1 行调用“nvme_admin”函数。第312章(求求你了……
所以,我正在将我的爱好操作系统从 C 和 C++ 移植到 Rust。我正在使用 rust 库 uefi rs 和 elf rs 来制作引导加载程序。我已经加载了内核 elf 文件,并且我...
我正在为我的操作系统开发 FAT12 驱动程序(您可以在此处找到驱动程序),但我遇到了一个非常奇怪的障碍,我不知道是我的代码还是驱动程序。 我有一个名为 long.txt 的文件
我最近开始开发自己的引导加载程序和内核用于教育目的。 我开始使用 qemu-system-i386 -fda image.bin 从软盘启动,然后使用......
entry() 进入与我在 Elf 中设置的入口点不同的地址
最近在学习OS。我想编写一个简单的引导加载程序,将实模式更改为保护模式,然后加载简单的内核。 但我无法弄清楚入口地址亲...
嘿,我在加载内核时遇到问题,引导加载程序和保护模式工作正常,但当我尝试调用 KERNEL_OFFSET 时,出现故障或加载问题,我无法弄清楚。 有问题
FAT16 - 创建虚拟硬盘驱动器并读取它 - 由于某种原因不存在数据
我正在编写一个操作系统项目。我正在用 C++ 和一些汇编语言开发我的项目 linux mint(并使用 gcc 和 GAS 编译它)并在 qemu 机器中运行它(我制作了一个 .iso 文件...
虚拟硬盘-ata pio & 保存硬盘状态,写操作在同一个地方
我正在编写一个操作系统。我正在 linux mint 中开发我的代码并在 qemu 虚拟机上运行它。 我目前正在开发一个文件系统,为此我首先需要初始化
向 ps2 键盘发送启用中断 (0xF4) 命令会导致系统崩溃。 OSDEV
我刚刚完成了IDT的初始化并启动了ps2的东西。我得到了 ps2 控制器初始化程序,现在我想启用第一个 ps2 端口或键盘中的中断。这是我的c...
我有业余爱好操作系统,我希望它跳转到 64 位长模式,在远跳转到 64 位长模式条目之前一切正常,分页工作正常,但 QEMU 日志文件显示 EFER 值是 LMA 三重...
在 Linux 的 Windows 子系统中挂载镜像文件系统
既然无法启用WSL(Linux的windows子系统)的循环模块,那么我如何在磁盘映像中挂载(或通过其他方式写入和读取)文件系统。
从aarch64从x86_64交叉编译GLIBC缺少asm/prctl.h
我正在尝试在 aarch64 上从头开始为 amd64 进行 Linux 编译,一切都很顺利,直到我为 GLIBC 第 5.5 章运行 make -j1 时出现此错误 我已经尝试了一切,但我无法...
在模板化类型上使用多个递归方法版本进行递归(例如,对于 PageTable<Level>)
为什么 rust 编译器看不到 Test 有自己的 recursive_descent() 实现,然后在获得