osdev

    0熱度

    1回答

    Stdio函數庫中有fprintf函數。 但是如何使用它? 第一個參數是FILE類型。 但我有EFI_FILE_PROTOCOL* File我從EFIOpenFile函數中獲得。如何映射到FILE類型?

    0熱度

    1回答

    我剛剛在qemu上完成高半程。但由於某種原因,給我錯誤虛擬盒和波奇: entry point isnt in a segment. please press any key to continue . . . 但在Qemu它的工作都很好。那麼這裏是我定義我的切入點,我的鏈接腳本: /* The bootloader will look at this image and start exe

    -1熱度

    1回答

    我正在開發我自己的操作系統。我已經完成引導扇區併成功加載了我的內核。我的開發環境是Ubuntu 14.04和GCC 4.8。我的內核將在BOCHS下運行。我想在屏幕上的特定位置打印具體的角色,所以我創造了這樣的功能: void print_char(char target, int col, int row, unsigned char attribute) { //attribute

    2熱度

    1回答

    每當我嘗試將像素寫入VESA模式的LFB時,頁面出現並已被讀取的頁面出現錯誤。我的分頁實現來自James Molloy的OS系列。我試過身份映射LFB如下: for (unsigned int i = 0xFD000000; i < 0xFE000000; i += 0x1000) { page_t* pg = get_page(i, 1, kernel_directory);

    -3熱度

    1回答

    我正在編寫一個操作系統,我需要一個地址值爲NULL的地址。我在想一個非常遠的地址,但是,BIOS是否使用了內存中的第一個字節?我的內核除了常量char NULL之外不會使用它,因此我認爲如果需要分配大量內存,可能不會使用第一個字節,那裏的地址可能很遠。

    1熱度

    1回答

    我的引導程序的這個階段在0x7e0:0x0000加載。經過一些「調試」後,我發現下面的代碼在我的遠跳後會產生三重故障。如果在跳轉之前移動掛起(是的,包括實際的程序本身),則不會發生三重錯誤。對不起,我不能包含更少的代碼。我只是想確保我提供了足夠的代碼,以便不會錯過錯誤。 這裏是我的代碼: bits 16 jmp SetUpPMode GTDData: dd 0 dd 0

    3熱度

    1回答

    我正在構建GCC 6.10交叉編譯器。我使用OSDev的tutorial。當我去使用我的殼sript建立binutils的,我得到這樣的錯誤: 我用shell腳本在我上面提到的教程指定ClooG和ISL移動到build-binutils目錄。這裏是我的shell腳本: export PREFIX="$HOME/opt/cross" export TARGET=i686-elf export P

    2熱度

    1回答

    據我所知,LLVM不會讓你執行使用特定的處理器寄存器。這是否意味着使用LLVM的語言,不能用於開發OS,引導加載程序或例如需要直接訪問寄存器的東西? 是否有任何其他原因LLVM IR 可以或不能用於操作系統開發?

    1熱度

    1回答

    我有我的printf()函數實現即時通訊的OS的錯誤。基本上問題是,它通過列表增加劑量。例如可以說我有: printf("%d %d",19,58); 什麼會顯示在我的操作系統是: 19 19 58由於某些原因不打算thourgh。我已經調試這個相當長的一段時間,但無法找到問題:(這裏是stdio.C++: #ifndef _STD_LIB_H_ #pragma once #defin

    6熱度

    1回答

    從技術上講,UEFI提供了很多功能,這些功能是操作系統(如文件系統)的基礎部分。從某種意義上說,在啓動過程中,所有操作系統都會被丟棄並重新實現,這是一種恥辱。 我想知道多少功能操作系統將它作爲一個簡單的UEFI應用程序來實現它。我正在考慮圖形用戶界面和多任務處理。使用FAT32作爲文件系統,UEFI應該用於很多目的,所以應該使用標識映射的內存。它將會構成一個非常精簡和簡單的操作系統,甚至可能不需要