Linux

/dev/console 是做什麼用的?

  • December 1, 2018

從這個對Linux 的回答: /dev/console 、 /dev/tty 和 /dev/tty0 之間的區別

文件中:

/dev/tty      Current TTY device
/dev/console  System console
/dev/tty0     Current virtual console

在過去的美好時光/dev/console是系統管理員控制台。TTY 是使用者連接到伺服器的串列設備。現在 /dev/console/dev/tty0代表目前顯示和通常是一樣的。console=ttyS0例如,您可以通過添加來覆蓋它 grub.conf。之後,您/dev/tty0的是顯示器並且/dev/console/dev/ttyS0

通過“系統控制台”,/dev/console看起來像是文本物理終端的設備文件,就像/dev/tty{1..63}虛擬控制台的設備文件一樣。

通過“/dev/console/dev/tty0代表目前顯示和通常相同”,/dev/console在我看來它也可以是虛擬控制台的設備文件。/dev/console看起來更像/dev/tty0不是/dev/tty{1..63}/dev/tty0是目前活動的虛擬控制台,可以是任何一個/dev/tty{1..63})。

是什麼/dev/console?這有什麼用途?

/dev/consoleLinux核心的作用與/dev/tty程序的作用相同嗎?(/dev/tty是程序的程序會話的控制終端,可以是一個pts,/dev/ttyn在哪裡n是1到63,或者更多?)

另一個回复提到:

核心文件/dev/console將字元設備指定為編號為 5:1 的字元設備。打開這個字元設備會打開“主”控制台,它是控制台列表中的最後一個 tty。

“控制台列表”是否意味著引導選項console=中的所有 ’ ?

/dev/console作為編號為 5:1 的字元設備”是否意味著這/dev/console是物理文本終端(即係統控制台)的設備文件?(但同樣,我上面引用的第一個回复說/dev/console可以與/dev/tty0不是物理文本終端,而是虛擬控制台相同)

謝謝。

/dev/console存在主要是為了將核心的控制台暴露給使用者空間。Linux 核心的設備文件現在說

控制台設備/dev/console是應該向其發送系統消息的設備,並且在單使用者模式下應該允許登錄。從 Linux 2.1.71 開始,/dev/console由核心管理;對於以前的版本,它應該是指向/dev/tty0特定虛擬控制台(如/dev/tty1)或串列埠主(tty*不是cu*)設備的符號連結,具體取決於系統的配置。

/dev/console,具有major 5和minor 1的設備節點,提供對核心認為是其與系統管理員互動的主要方式的任何訪問;這可以是連接到系統的物理控制台(頂部有虛擬控制台抽象,因此它可以使用Ntty0介於 1 和 63 之間的任何ttyN位置),或者串列控制台,或者管理程序控制台,甚至是盲文設備。請注意,核心本身不使用: devices 節點用於使用者空間,而不是用於核心;但是,它會檢查是否存在且可用,並設置其標準輸入、輸出和錯誤指向./dev/console``/dev/console``init``/dev/console

如此處所述,/dev/console它是具有固定主要和次要的字元設備,因為它是一個單獨的設備(如訪問核心的一種方式;不是物理設備),不等同於/dev/tty0或任何其他設備。這有點類似於它自己的設備 (5:0)的情況,因為它提供的功能與其他虛擬控制台或終端設備略有不同。/dev/tty

“控制台列表”確實是由console=引導參數定義的控制台列表(或預設控制台,如果沒有的話)。您可以通過查看以這種方式定義的控制台/proc/consoles/dev/console確實提供了對其中最後一個的訪問:

您可以在核心命令行上指定多個 console= 選項。輸出將出現在所有這些上。打開時將使用最後一個設備/dev/console

引用自:https://unix.stackexchange.com/questions/485156