系統呼叫存在的意義

2022-03-07 03:39:39 字數 713 閱讀 6593

作為乙個初學者,我們可能一直迷惑為何自己的**不能直接訪問kernel中的變數和資源,還要這麼麻煩的使用系統呼叫?

就比如最近我在寫乙個tty模組,這個模組負責接受鍵盤操作並在console上做相應的顯示。當然也可以在其他程序中直接操作tty的輸入緩衝,或者直接在這個tty的控制台上進行顯示。

現在問題來了:

我該怎麼呼叫tty模組中的**讓其在控制台上顯示呢?

直接在其他程序中的**呼叫tty中的**

使用系統呼叫,讓kernel去呼叫tty中的**去操作已經執行起來的程序中的資料。

一般在作業系統上層,大家的理解就是利用系統呼叫進入kernel,讓kernel來操作這一塊。但並沒有想過為什麼?

如果想要使用1來完成這個任務,必須有乙個很嚴格的限制,就是此呼叫程序必須和kernel一起編譯成最終的kernel模組,並且和kernel一起啟動。這樣才能正確的訪問到想要的資料,因為你訪問的是真正的正在執行著的kernel中的資料(無論是kernel中的task程序資料還是神馬)。

如果不和kernel一起編譯,而和tty模組的.o檔案單獨編譯,而且很意外的成功了的話,執行起來也未必成功(成功機率小之又小),因為你在訪問的**和kernel完全就不是乙個東西。

系統呼叫有乙個很神奇的功能,就是甚至不是和kernel一起編譯的user**,能利用中斷(不論這個中斷在哪呼叫)準確定位到kernel空間的中斷處理程式,進而完成想要的功能,並返回。這裡的中斷跳轉是cpu的功勞。

我們存在的意義

生活,先生存才談活法。前提是先活下去,然後考慮如何活出質量。或許我們的存在只是乙個程序的片段,我們就是為了豐滿那個程序而來。生活很容易很難。容易在於,簡簡單單就能活著,不至於餓死凍死。難在於,想活出質量,要付出很多。什麼才是我們想要的生活?幸福健康安全自由,哪一樣都不是與生俱來的,都需要你的奮鬥,在...

部落格存在的意義?

2022.02.20 天氣 小雨 今天坐在電腦前無意中看到了這麼乙個問題 既然我們寫的部落格沒人看,為什麼還要堅持寫下去呢?我不得不去把問題刨根問底,以此來保證部落格的正確性,不敢說自己有多麼厲害,理解有多麼深刻,但我需要為自己發布到網際網路上的資訊的正確性做擔保。一篇部落格的正確性,讓讀者更好的通...

會員管理系統中會員等級存在的意義

什麼是會員等級?會員等級 是為會員所張貼的特別的標籤,方便商戶根據會員貢獻價值,進行差異化分類管理。下圖示取樣於 回頭客會員管理系統會員等級管理 會員為什麼要區分等級?關於會員等級,本質上是為了提高使用者對商戶 對產品的黏性,形成持續 穩定的利益或行為輸出。一般情況下,為不同等級的會員,配置不同的權...