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