[爆卦]nachos教學是什麼?優點缺點精華區懶人包

為什麼這篇nachos教學鄉民發文收入到精華區:因為在nachos教學這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者laughingman (笑面男)看板C_and_CPP標題[問題] start.s在Nacho...

nachos教學 在 timlui001 Instagram 的精選貼文

2021-07-05 13:39:03

#太太燒飯錄 搬咗新居成個幾月,廚房終於開光 煮咗餐快劈pasta晚飯🥳 久違了的溫暖感🥰 1️⃣ 唔少得丈夫至愛 #AglioOlio (教學片請自行到本人youtube收看) 2️⃣ 近排食得好熱氣,要來個沙律食多啲菜 呢個 #capresesalad 用咗 @marksandspence...


開發平台(Platform): (Ex: Win10, Linux, ...)
Ubuntu14.04 32bit

問題(Question):
小弟我雖然不是資工系畢業的,但對作業系統有點興趣,所以在清大開放式課程找到一門

周志遠教授開的作業系統,裡面的作業是用Nachos(我使用的是用c++寫的)。有一個作業

是要自己加system call,網路上其實都找得到教學,但小弟的疑問是:

看起來中斷發生的handler是寫在-/code/userprog/exception.cc裡的ExceptionHandler

這支function中的SyscallException的switch裡。所以只要再多加一個case就可以處理

新的system call,實作部分就寫在該寫的地方就好。但問題來了,其實還要在

-/code/test/start.s裡多加類似底下的程式碼,

.globl Print
.ent Print
Print:
addiu $2, $0, SC_Print
syscall
j $31
.end Print

這段看起來是MIPS的組語,我也了解意思,不過system call不是已經用c++實作了嗎?

加這段組語的意思是甚麼呢?

我有看一下-/code/test裡的makefile,看起來其他的test file都會用到start.o,而

這個start.o就是由MIPS組譯器將start.s組譯後得來的(?),這中間的邏輯其實我不是

很懂,有沒有修過作業系統的高手可以解釋一下,感謝各位撥空看小弟的問題。















--
一個人一直以來孤獨地生活最大的壞處在於:
當你憶起過去時,無法肯定的說出自己的過往,
記憶已遭到竄改、扭曲,以符合現在的需求(我們也可以說這是好處)。
你就像一個警探在詢問犯人,唯一的線索就是犯人的證詞,
你無法確定他說的是不是實話,也無從考證,
因為沒有目擊者!

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.248.59.250
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1534855187.A.0F2.html
soheadsome: 基本的CRT 08/21 21:18
soheadsome: 你平常寫c的main實際上compiler 會自動幫你放這種程式 08/21 21:20
soheadsome: 設定你的main為entry point 08/21 21:20
laughingman: 我有看到註解寫說因為不希望把c library放進來,所以 08/21 23:48
laughingman: start.s是放自己實作c library(CRT?)的entry point? 08/21 23:49
laughingman: 那如果不管Nachos,我有辦法自己寫自己的CRT嗎? 08/21 23:50
cole945: 上面講錯了, 除了檔名叫 start外, 從你貼的code就只是 08/22 01:12
cole945: Print syscall wrapper, 跟 CRT 沒什麼關係 08/22 01:13

你可能也想看看

搜尋相關網站