by shigemk2

当面は技術的なことしか書かない

sttyとか、接続のコントロールとか

  • カーネルは、プロセスとシステム外のものとの間でデータを転送する。システム外のものには、ディスクファイル、端末、周辺機器(プリンタ、テープドライブ、サウンドカード、マウスなど)が含まれる。ディスクファイルとの接続とデバイスとの接続には類似点と相違点がある
  • ディスクファイルとデバイスファイルは名前、プロパティ、パーミッションビットを持つ。標準システムコールのopen read write close lseekは、任意のファイルやデバイスに対して使うことができる。パーミッションビットは、ディスクファイルへのアクセスと同じようにデバイスへのアクセスを制御できる
  • ディスクファイルとの接続は、データの処理、転送の方法の細部でデバイスファイルとの接続とは異なる。デバイスとの接続を管理するカーネルコードでは、デバイスドライバと呼ばれる。プロセスは、fcntlとioctlを使ってデバイスドライバの設定を読み出したり変更したいすることができる。
  • 端末との接続は非常に重要なので端末ドライバの制御のためにはtcgetattrとtcsetattrという特殊なライブラリ関数が用意されている。
  • Unixコマンドのsttyは、ユーザーにtcgetattrとtcsetattrにアクセスするための手段を提供する