TCP/IP ソケットが「オープンファイル」と見なされるのはなぜですか。

TCP/IP ソケットが「オープンファイル」と見なされるのはなぜですか。

Linuxの基本概念であるオープンファイルの制限を理解するのに役立ちます。特にオープンソケットがシステムの「オープンファイル」の総数に含まれるのはなぜか混乱しています。

なぜそれを詳しく説明できる人がいますか?私はこれがおそらくLinuxの「すべてがファイルです」という原則全体に戻ることを知っていますが、追加の詳細があれば大いに感謝します。

ベストアンサー1

「ファイルを開く」制限は、実際にはファイルにのみ適用されるものではありません。数量制限カーネルハンドル単一のプロセスを同時に使用できます。歴史的に、プログラムはしばしば多数のファイルを開いていたので、これは開かれたファイルの数に対する制限として知られています。制限を設定すると、プロセスで大量のファイルを開いたり、誤ってそのファイルを閉じたりすることを忘れて、最終的にシステム全体に問題が発生する可能性がある状況を回避できます。

ソケット接続はカーネルハンドルでもあります。したがって、同じ制限が同じ理由で適用されます。つまり、プロセスがネットワーク接続を開閉するのを忘れる可能性があります。

コメントで指摘したように、カーネルハンドルは伝統的に呼び出されます。ファイル記述子Unixシリーズシステムで。

おすすめ記事