1)現有的作業系統都是用什麼語言開發出來的?
2)grub是什麼?
3)grub**能獲得呢?
4)我們要實現乙個hello os,那hello os的引導流程是怎樣的?
5)上圖中的bios是什麼?
6)為什麼寫作業系統一上來不能直接用c寫?
7)基本環境的彙編**是怎樣的?
8)能解釋一下上面**的含義嗎?
9)上面匯程式設計序中的mian函式為什麼沒有函式體?
10)既然說我們上面的函式不是應用程式的函式,那怎麼會有應用程式庫中的printf?
11)現在我們啟動的程式有了,接下來該幹嘛?
12)如何控制計算機螢幕?
13)顯示卡有哪些型別?
無論我們 pc 上是什麼顯示卡,它們都支援一種叫 vesa 的標準,這種標準下有兩種工作模式:字元模式和圖形模式。顯示卡們為了相容這種標準,不得不自己提供一種叫 vgabios 的韌體程式。
14)顯示卡的字元模式是怎樣工作的?
15)知道了顯示卡的字元工作模式,那我們的控制**應該怎麼寫?
void _strwrite(char* string)15.1)為什麼printf 函式的第二引數是「..."形式?16)現在3個檔案**寫好了,那麼怎麼編譯 hello os?17)現在我們只有3個檔案,那麼我們可以手動來編譯鏈結,但是以後系統成熟了,有幾萬,幾十萬個檔案,那應該怎麼辦?18)make工具是怎樣工作的?return;}
void printf(char* fmt, ...)
19)makefile 檔案中規則是怎樣的?
20)這個make工具從**獲取呢?
21)makefile檔案內容大概是怎樣的?
cc = gcc #定義乙個巨集cc 等於gcc22)編譯的整體圖是怎樣的?cflags = -c #定義乙個巨集 cflags 等於-c
objs_file = file.o file1.o file2.o file3.o file4.o #定義乙個巨集
.phony : all everything #定義兩個偽目標all、everything
all:everything #偽目標all依賴於偽目標everything
everything :$(objs_file) #偽目標everything依賴於objs_file,而objs_file是巨集會被
#替換成file.o file1.o file2.o file3.o file4.o
%.o : %.c
$(cc) $(cflags) -o $@ $<
23)上圖中的nasm是啥?
24)現在我們編譯得到了hello os.bin,那接下來我們應該做什麼?
25)那如何才能讓grub找到他呢?
25.1)我們這個grub.cfg在**?
26)那我們的hello os在grub.cfg檔案中啟動項應該是怎樣的?
27)怎麼檢視你的boot目錄掛載的分割槽呢?28)一切就緒,整體安裝的步驟是怎樣的?選擇 hello os,按下 enter 鍵(或者重啟按 esc 鍵),這樣就可以成功啟動我們自己的 hello os 了。menuentry 'helloos'
29)centos 7的步驟是怎樣的?
乙個十幾行簡單的C程式引發的思考
今天碰到乙個很好玩的程式,我糾結了很久才弄明白。下面解釋都是在debug模式下的 在vc6.0下輸出的結果是 這下我就奇怪了,p為什麼是e9呢?毫無根據可言額.沒學過彙編的人就是傻額 我就開始除錯了,p是233 0xe9 疑問1.為什麼 p的值是e9呢?疑問2.fun的值怎麼是0x00401060呢...
linux 如何顯示乙個檔案的某幾行 中間幾行
一 從第3000行開始,顯示1000行。即顯示3000 3999行 cat filename tail n 3000 head n 1000 二 顯示1000行到3000行 cat filename head n 3000 tail n 1000 檢視檔案倒數3000 倒數2000行之間的資料 ca...
linux 如何顯示乙個檔案的某幾行 中間幾行
一 從第3000行開始,顯示1000行。即顯示3000 3999行 cat filename tail n 3000 head n 1000 二 顯示1000行到3000行 cat filename head n 3000 tail n 1000 注意兩種方法的順序 分解 tail n 1000 顯...