
我使用 Linux 控制台已有多年,但目前開始思考它的實際運作原理。輸入 acommand
作為字串並按下Enter
可在同一終端視窗中返回其輸出。
開啟新的終端機視窗並執行tty
顯示以下結果:
$ tty
/dev/pts/10
pty 上的手冊頁定義:
一個期望連接到終端的進程,可以打開一個偽終端的從端,然後由打開了主端的程式驅動。在主端寫入的任何內容都會提供給從端的進程,就像在終端機上輸入的一樣。[...]反之,寫入偽終端從機端的任何內容都可以被連接到主機端的進程讀取
我的理解:
實際的終端機視窗連接到從機/dev/pts/10
,我在終端機視窗中輸入的所有輸入都在從機端寫入,然後在主機端讀取。連接到主端的進程知道如何處理用戶輸入的所有字串,執行它們並將命令結果寫入主端,然後在從端讀取並顯示在終端視窗中。
問題:
連接到主端的程序是什麼,它知道如何執行使用者以字串形式輸入的命令?