「Linux コンソール」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(言語間リンクを追加)
(→‎実装: 同期)
20行目: 20行目:
 
== 実装 ==
 
== 実装 ==
   
コンソールは、ユーザーと直接対話するほとんどのサービスとは異なり、カーネルに実装されています。これは、通常のアプリケーションとしてユーザースペースに実装される、[[Xterm]] などの端末エミュレーションソフトウェアとは対照的です。コンソールは常にリリースされた Linux カーネルの一部でしたが、その歴史変化を遂げてきました。最も顕著なのは、[[Wikipedia:Linux framebuffer|framebuffer]] の使用と、[[Wikipedia:Unicode|Unicode]] のサポートへの移行です。
+
コンソールは、ユーザーと直接対話するほとんどのサービスとは異なり、カーネルに実装されています。これは、通常のアプリケーションとしてユーザースペースに実装される、[[Xterm]] などの端末エミュレーションソフトウェアとは対照的です。コンソールは常にリリースされた Linux カーネルの一部でしたが、その歴史中で変化を遂げてきました。最も特出すべきなのは、[[Wikipedia:Linux framebuffer|フレームバッファ]]の使用と、[[Wikipedia:ja:Unicode|Unicode]] のサポートへの移行です。
   
コンソールには多くの改良が施されていますが、レガシーハードウェアとの完全な下位互換性があるため、グラフィカルターミナルエミュレータと比較すると制限があります。
+
コンソールには多くの改良が施されていますが、レガシーハードウェアとの完全な後方互換性があるため、グラフィカルターミナルエミュレータと比較すると制限があります。
   
 
=== 仮想コンソール ===
 
=== 仮想コンソール ===
   
コンソールは、一連の仮想コンソールとしてユーザーに表示されます。それぞれの仮想コンソールは、異なるユーザーでログインし、独自のシェルを実行し、独自のフォント設定を持つことができます。仮想コンソールはそれぞれ {{ic|/dev/ttyX}} デバイスを使用し、{{ic|Alt+Fx}} ({{ic|x}} は 1 から始まる仮想コンソール番号と同じ) を押すことで切り替えが可能です。デバイス {{ic|/dev/console}} は自動的にアクティブな仮想コンソールにマップされます。
+
コンソールは、一連の[[Wikipedia:ja:仮想コンソール|仮想コンソール]]としてユーザーに表示されます。これらの仮想コンソールは、複数の独立したターミナルが並列に動作しているような印象です。それぞれの仮想コンソールは、異なるユーザーでログインし、独自のシェルを実行し、独自のフォント設定を持つことができます。仮想コンソールはそれぞれ {{ic|/dev/ttyX}} デバイスを使用し、{{ic|Alt+F''x''}} ({{ic|''x''}} は仮想コンソール番号と同じで、1 から始まります) を押すことで切り替えが可能です。デバイス {{ic|/dev/console}} は自動的にアクティブな仮想コンソールにマップされます。
   
 
{{man|1|chvt}}、{{man|1|openvt}}、{{man|1|deallocvt}} も参照してください。
 
{{man|1|chvt}}、{{man|1|openvt}}、{{man|1|deallocvt}} も参照してください。
32行目: 32行目:
 
=== テキストモード ===
 
=== テキストモード ===
   
  +
Linux はもともと PC ハードウェア用のカーネルとして始まったため、コンソールは標準的な IBM [[Wikipedia:ja:Video Graphics Array|CGA/EGA/VGA]] グラフィックスを使用して開発されました (当時、すべての PC はこれをサポートしていました)。グラフィックは、16 色のシンプルな 80x25 キャラクタディスプレイを提供する VGA テキストモードで動作しました。このレガシーなモードは、[[Wikipedia:ja:VT100|DEC VT100]] などのような専用のテキストターミナルの機能に似ています。現在でも、システムのハードウェアがサポートしていれば ({{ic|1=vga=0 nomodeset}} を使って) テキストモードで起動できますが、最近のディストリビューションのほぼすべて (Arch Linux を含む) でフレームバッファコンソールが代わりに使用されます。
Since Linux originally began as a kernel for PC hardware, the console was developed using standard IBM [[Wikipedia:VGA|CGA/EGA/VGA]] graphics, which all PCs supported at the time. The graphics operated in VGA text mode, which provides a simple 80x25 character display with 16 colours. This legacy mode is similar to the capabilities of dedicated text terminals, such as the [[Wikipedia:VT100|DEC VT100]] series. It is still possible to boot in text mode if the system hardware supports it, but almost all modern distributions (including Arch Linux) use the framebuffer console instead.
 
   
 
=== フレームバッファーのコンソール ===
 
=== フレームバッファーのコンソール ===
   
  +
Linux が他の非 PC アーキテクチャに移植されたとき、より良いソリューションが必要になりました。他のアーキテクチャでは VGA 互換グラフィックスアダプタを使用しませんし、さらにテキストモードを全くサポートしていない場合があるからです。フレームバッファコンソールは、すべてのプラットフォームで標準的なコンソールを提供するために実装され、基盤となるグラフィックスハードウェアに関係なく同じ VGA スタイルのインターフェイスを提供します。そのため、Linux コンソールはターミナルエミュレータではなく、それ自体でターミナルなのです。コンソールはターミナルタイプ {{ic|linux}} を使用し、VT100 と幅広く互換性があります。
As Linux was ported to other non-PC architectures, a better solution was required, since other architectures do not use VGA-compatible graphics adapters, and may not support text modes at all. The framebuffer console was implemented to provide a standard console across all platforms, and so presents the same VGA-style interface regardless of the underlying graphics hardware. As such, the Linux console is not a terminal emulator, but a terminal in its own right. It uses the terminal type {{ic|linux}}, and is largely compatible with VT100.
 
   
 
== キーボードショートカット ==
 
== キーボードショートカット ==

2022年9月21日 (水) 07:15時点における版

関連記事

Wikipedia より:

Linux コンソールは、Linux カーネル に内蔵されているシステムコンソールです。Linux コンソールは、カーネルや他のプロセスがテキスト出力をユーザに送信したり、ユーザからのテキスト入力を受信したりするための方法を提供します。ユーザは通常、コンピュータのキーボードでテキストを入力し、出力されたテキストをコンピュータのモニタで読みます。Linux カーネルは仮想コンソールをサポートしています - コンソールは論理的に分離されていますが、同じ物理キーボードとディスプレイにアクセスします。

この記事では、Linux コンソールの基本とフォント表示の設定方法について説明します。キーボードの設定は、コンソールでのキーボード設定 サブページで説明しています。

実装

コンソールは、ユーザーと直接対話するほとんどのサービスとは異なり、カーネルに実装されています。これは、通常のアプリケーションとしてユーザースペースに実装される、Xterm などの端末エミュレーションソフトウェアとは対照的です。コンソールは常に、リリースされた Linux カーネルの一部でしたが、その歴史中で変化を遂げてきました。最も特出すべきなのは、フレームバッファの使用と、Unicode のサポートへの移行です。

コンソールには多くの改良が施されていますが、レガシーハードウェアとの完全な後方互換性があるため、グラフィカルターミナルエミュレータと比較すると制限があります。

仮想コンソール

コンソールは、一連の仮想コンソールとしてユーザーに表示されます。これらの仮想コンソールは、複数の独立したターミナルが並列に動作しているような印象です。それぞれの仮想コンソールは、異なるユーザーでログインし、独自のシェルを実行し、独自のフォント設定を持つことができます。仮想コンソールはそれぞれ /dev/ttyX デバイスを使用し、Alt+Fx (x は仮想コンソール番号と同じで、1 から始まります) を押すことで切り替えが可能です。デバイス /dev/console は自動的にアクティブな仮想コンソールにマップされます。

chvt(1)openvt(1)deallocvt(1) も参照してください。

テキストモード

Linux はもともと PC ハードウェア用のカーネルとして始まったため、コンソールは標準的な IBM CGA/EGA/VGA グラフィックスを使用して開発されました (当時、すべての PC はこれをサポートしていました)。グラフィックは、16 色のシンプルな 80x25 キャラクタディスプレイを提供する VGA テキストモードで動作しました。このレガシーなモードは、DEC VT100 などのような専用のテキストターミナルの機能に似ています。現在でも、システムのハードウェアがサポートしていれば (vga=0 nomodeset を使って) テキストモードで起動できますが、最近のディストリビューションのほぼすべて (Arch Linux を含む) でフレームバッファコンソールが代わりに使用されます。

フレームバッファーのコンソール

Linux が他の非 PC アーキテクチャに移植されたとき、より良いソリューションが必要になりました。他のアーキテクチャでは VGA 互換グラフィックスアダプタを使用しませんし、さらにテキストモードを全くサポートしていない場合があるからです。フレームバッファコンソールは、すべてのプラットフォームで標準的なコンソールを提供するために実装され、基盤となるグラフィックスハードウェアに関係なく同じ VGA スタイルのインターフェイスを提供します。そのため、Linux コンソールはターミナルエミュレータではなく、それ自体でターミナルなのです。コンソールはターミナルタイプ linux を使用し、VT100 と幅広く互換性があります。

キーボードショートカット

Keyboard Shortcut Description
Ctrl+Alt+Del Reboots the system (specified by the symlink /usr/lib/systemd/system/ctrl-alt-del.target)
Alt+F1, F2, F3, ... Switch to n-th virtual console
Alt+ ← Switch to previous virtual console
Alt+ → Switch to next virtual console
Scroll Lock When Scroll Lock is activated, input/output is locked
Ctrl+c Kills current task
Ctrl+d Inserts an EOF
Ctrl+z Pauses current Task

See also console_codes(4).

フォント

ノート: このセクションでは Linux コンソールについて説明しています。(ユニコードフォントや最新のグラフィックアダプタのサポートなど) より多くの機能が備わっているコンソールについては fbtermKMSCON などのページを見て下さい。

仮想コンソールはカーネルに含まれているフォントと ASCII 文字セットがデフォルトで使用しますが、どちらも簡単に変えることができます。

コンソールフォントは 256 か 512 文字に制限されています。利用できるフォントは /usr/share/kbd/consolefonts/ にあります。

押したキーとコンピュータで使われる文字をつなぐ、キーマップは /usr/share/kbd/keymaps/ のサブディレクトリにあります。

ヒント: ラテン・ギリシャ文字で書かれたヨーロッパ系言語の場合、eurlatgr フォントを使うことができます。幅広いラテン・ギリシャ文字と特殊文字が収録されています [1]

プレビューとテスト

フォントで利用できる記号・文字は showconsolefont コマンドでテーブル表示できます:

$ showconsolefont

setfont ユーティリティを使うことで一時的にフォントを変えることができます。フォントの名前 (/usr/share/kbd/consolefonts/ にあります) を指定してください:

$ setfont Lat2-Terminus16

任意で、使用する文字セットを -m オプションで指定できます:

$ setfont Lat2-Terminus16 -m 8859-2

もし新しく変えたフォントに不満ならば、何も引数を付けないで実行することでデフォルトフォントに戻ります (コンソール画面が全く読めなくなってしまったときでも、このコマンドは動作します。なんとかしてコマンドを入力してください):

$ setfont
ノート: setfont は現在使われているコンソールだけで機能することを覚えておいて下さい。(アクティブだろうとそうでなかろうと)他のコンソールには影響しません。

デフォルトフォントを変更

デフォルトフォントを変えるには、/etc/vconsole.conf (このファイルは新しく作る必要があるかもしれません) の FONTFONT_MAP で設定します。

Č, ž, đ, š or Ł, ę, ą, ś などの文字を表示するために lat2-16.psfu.gz フォントを使うとします:

FONT=lat2-16

これで ISO/IEC 8859 の第2部がサイズ16で使われます。他の値にすればフォントサイズを変えられます (例: lat2-08)。8859 によって定められている地域については、Wikipedia の表を見て下さい。X サーバーを使わずコンソールで作業することが多いならば Terminus フォントが推奨です。例えば ter-216b はラテン2、サイズ16、太字です。ter-216n は通常の太さになります。Terminus フォントは32までのサイズが揃っています。

フォントを変えたら、適切なフォントマップを設定します。lat2-16 の場合は:

FONT_MAP=8859-2

初期のユーザースペース、つまりブートプロセスでも特定のフォントを使いたい場合は、/etc/mkinitcpio.confkeymap フックを使って下さい。詳しくは Mkinitcpio#HOOKS を参照してください。

ブート時にフォントが変わっていない、もしくは一時的にしか変わらなかった場合、グラフィックドライバが初期化されコンソールがフレームバッファに切り替わるときにリセットされている可能性があります。これを避けるには、グラフィックドライバを早くロードするようにしてください。Kernel Mode Setting#Early KMS start のサンプルを見るか他の方法で /etc/vconsole.conf が適用される前にフレームバッファをセットアップするようにしてください。

HiDPI

HiDPI#Linux コンソール を参照。

Audible tones

PC スピーカー#Beep を参照。

See also