打開Shell,Shell執(zhí)行它的指令,等待我們輸入一個命令。
當我們在鍵盤上輸入字符串./hello
后,鍵盤控制器(或者適配器)通過鍵盤獲取用戶輸入,再通過IO總線、IO橋,以及CPU內(nèi)的總線接口,將自負放到寄存器中,再通過IO橋以及存儲器總線,把字符放到主存儲器中。
當我們在鍵盤上敲回車時,Shell知道命令結(jié)束。然后Shell執(zhí)行一系列指令來夾在可執(zhí)行文件hello
,將hello目標文件中的代碼和數(shù)據(jù)從磁盤復制到主存。
一旦目標文件hello
中的代碼和數(shù)據(jù)被夾在到主存,CPU就開始執(zhí)行hello程序的main程序中的機器語言指令。這些指令將hello, world\n
字符串中的字節(jié)從主存復制到寄存器文件,再從寄存器文件中,通過IO總線復制到顯示設(shè)備,最終顯示在屏幕上。
程序最初是放在磁盤上的;當程序加載時,它們被復制到主存;當CPU處理程序時,指令將其又從主存復制到處理器,最后通過圖形適配器(顯示器在IO總線上的適配器 or 控制器),復制到顯示設(shè)備。