Categories
學習筆記

寫屬於自己的shell 并解決zombie問題

上次作業系統概論的老師給了我們一個作業 讓我們寫一個簡單的shell 首先第一個問題:shell是什麼? wikipedia的解答: In computing, a shell is a user interface for access to an operating system's services.In general, operating system shells use either a command-line interface (CLI) or graphical user interface (GUI), depending on a computer's role and particular operation. 其實所謂的shell就是一個使用者跟系統服務溝通的橋樑,它可以是命令行界面(CLI)的,也可以是圖形化界面(GUI)的。 而老師要我們寫的shell,基本上就是一個command-line interface的東西,而實作環境是在linux底下。 而shell在接到我們下的command后,到底實際上是怎麼做的呢? 先fork,然後exec。 這時候問題又來了。 什麼是fork? fork是一個把自己複製一份的過程,複製者叫parent,被複製出來的就是child。 那為什麼要fork? 試想想,如果今天你想要某個東西在後臺執行,而你可以繼續做別的事,是不是需要兩個process同時運行? 接下來,我們就可以開始說怎麼寫shell了。 先做好構思。 (1) […]