![Linux 中的終端機實際上是如何運作的?](https://rvso.com/image/192229/Linux%20%E4%B8%AD%E7%9A%84%E7%B5%82%E7%AB%AF%E6%A9%9F%E5%AF%A6%E9%9A%9B%E4%B8%8A%E6%98%AF%E5%A6%82%E4%BD%95%E9%81%8B%E4%BD%9C%E7%9A%84%EF%BC%9F%20.png)
我使用 Linux 控制台已有多年,但目前開始思考它的實際運作原理。輸入 acommand
作為字串並按下Enter
可在同一終端視窗中返回其輸出。
開啟新的終端機視窗並執行tty
顯示以下結果:
$ tty
/dev/pts/10
pty 上的手冊頁定義:
一個期望連接到終端的進程,可以打開一個偽終端的從端,然後由打開了主端的程式驅動。在主端寫入的任何內容都會提供給從端的進程,就像在終端機上輸入的一樣。[...]反之,寫入偽終端從機端的任何內容都可以被連接到主機端的進程讀取
我的理解:
實際的終端機視窗連接到從機/dev/pts/10
,我在終端機視窗中輸入的所有輸入都在從機端寫入,然後在主機端讀取。連接到主端的進程知道如何處理用戶輸入的所有字串,執行它們並將命令結果寫入主端,然後在從端讀取並顯示在終端視窗中。
問題:
連接到主端的程序是什麼,它知道如何執行使用者以字串形式輸入的命令?