osdev

    3热度

    2回答

    我知道通常的内存访问将通过页表执行虚拟地址到物理地址转换。但是,pte修改呢?假设操作系统想修改一个进程的页表项,它是否也要经过进程的页表?换句话说,页表中是否有条目指向自己?

    0热度

    1回答

    而试图建立newlib 1.20.0 ... 我跟着这个教程http://wiki.osdev.org/OS_Specific_Toolchain#newlib.2Flibc.2Fsys.2Fmyos 而是试图建立newlib我得到以下错误时: /../newlib-1.20.0/newlib/libc/sys/myos/'`syscalls.c ../../../../../../newlib

    1热度

    1回答

    我一直在看LILO bootsect.s和GRUB stage1.s。 LILO从特定的硬编码扇区加载东西(或东西);它不会使用一些可在安装时进行修补的保留字节。我想知道这是如何工作的,如果当你在一个分区上,而不是一个人在驱动器上? LILO如何告诉它的bootsec.s它在磁盘上的位置,并在需要加载的文件的位置进行适当调整? LILO没有BPB的空间,所以它大部分是一个ext引导加载程序。 ex

    14热度

    3回答

    由于学校原因,我最近没有编写很多代码,但我决定再次开始在OS开发方面进行研究。但是最近我听说了有关EFI作为BIOS替代品的东西。我想为使用EFI而不是BIOS的平台开发OS。我无法弄清楚从哪里开始。任何人都可以将我指向正确的方向吗?也许可以解释EFI对于OS开发的意义,也许可以告诉我可以使用哪些测试环境(最好是虚拟的)。坦率地说,我并不确定EFI究竟是什么。我也应该花时间研究ARM组件吗?我知道

    1热度

    1回答

    在使用GRUB作为自举程序工作了几周后,我决定我应该推出自己的工作,以便了解它们的工作方式。我在网上找到Brokenthorn的教程(目前在http://www.brokenthorn.com/Resources/OSDev9.html)。当我尝试切换到保护模式时,cpu硬件在远程跳转后重置。我正在运行bochs v。2.6。 这是我的第二个阶段的bootloader(几乎是本教程的副本,因为我认

    1热度

    3回答

    我目前正在开发我的引导程序,但我遇到了问题。 我用Bochs的测试引导程序,我编译引导程序,使磁盘映像: rm disk.bin rm boot.bin rm post.bin nasm bootloader.asm -o boot.bin nasm postmbr.asm -o post.bin cat boot.bin post.bin > disk.bin 这是bootload

    2热度

    1回答

    我正在写一个基于FAT12文件系统的启动扇区。过了一会儿,我想出了一个问题。 .FindBootSectorTwo: push SI push DI push CX mov CX, 11 mov SI, BootloaderSTG2 rep cmpsb pop CX pop DI pop SI je

    3热度

    1回答

    线 我有一个关于A20 gate问题。我读了一篇关于它的文章,说这种机制存在解决地址“环绕”的问题,当新的CPU获得32位地址总线而不是旧的20位总线时,出现地址“环绕”。 这似乎对我来说,处理环绕的正确的方法是把所有的位A20-A31,而不仅仅是A20了。 为什么就足够了只关闭位A20来处理这个问题?

    1热度

    1回答

    我正在为Pintos项目工作。当我正在实施适当优先级调度的优先级捐赠机制时,QEMU模拟器刚挂断(我附上了一张图片,而图片的转储如下)。我尝试调试并插入printf语句,但在通过远程主机调试qemu期间,一旦进入main,它就会再次挂起。任何人都可以告诉我如何解决这一切。否则,我将不得不重新安装整个代码和qemu以及其间的所有内容。 从pintos转储: [email protected]:~/p

    3热度

    2回答

    我正在使用平面二进制文件作为我的操作系统的外部程序。当我编译他们,就像这样: gcc -Wall ctest.c -o ctest.bin -nostdlib -Wl,-Ttext=0x8000,-nostdlib -masm=intel objcopy -O binary -j .text ctest.bin ctest 但这样做,字符数组的内容都没有把在文件中。这是我的代码: stati