Linux 端末はどのようにして文字を描画するのでしょうか?

Linux 端末はどのようにして文字を描画するのでしょうか?

たとえば、ディスク上にファイル名がバイナリでエンコードされたファイルがあるとします。ターミナルで
実行すると、何が起こるでしょうか? おそらく次のようになります:ls

  1. lsファイル名のバイトを読み込み、現在設定されているエンコーディングで検索し、エンコーディングで見つからない場合は特定のバイトをエスケープし、ファイル名を出力します。stdout
  2. シェルは印刷されたものを読み取りls、再度印刷します。stdout
  3. 端末はシェルが出力したものを読み取り、エンコーディングを調べ、これらのバイトがコードポイントXXを表していることを発見する。
  4. 端末はフォントテーブルでコードポイントXXを検索し、画面にフォントを描画します。

私の推測は間違っている可能性があります。エンコードに関する私の知識は、ほとんど初級レベルに過ぎません。間違いがあれば指摘してください。

私のようなユーザーがさらに学び、エンコードの問題をトラブルシューティングできるように、遠慮なく具体的​​かつ詳細に記述してください。システムの仕組みを理解することは、ユーザーの問題解決に役立つと思います。

関連情報