man mknod
Linuxから:
c, u create a character (unbuffered) special file
なぜ同じ機能に2つの文字があるのですか?微妙な違いがありますか、それとも全く似ていますか?
答え1
少なくともLinuxでは同じです。
私はまず次のことを見て、この結論に達しました。ソースコードmknod(1)
内部にGNUコアツール、現在のバージョンのライン217では、同じ状況が処理されて同じデバイスタイプを取得することがわかり'c'
ます'u'
。このS_IFCHR
値はLinuxカーネルヘッダファイルで定義されていますが、値は重要ではありません。重要なことは、ファイルシステムの開発ノードにも同じ値が格納されることです。
私は簡単なテストでこの問題を解決しました。
$ sudo mknod /dev/null2 u 1 3
$ ls -l /dev/null*
crw-rw-rw- 1 root root 1, 3 Jan 12 2015 /dev/null
crw-r--r-- 1 root root 1, 3 Oct 19 22:56 /dev/null2
u
コマンドのAは、c
次のような開発ノードを提供します。場合閉鎖。
についてはなぜどちらの文字も許可されます。最も良い推測は、b
意味が「ブロック」ではなく「バッファ」だと思う人にとってはエイリアスであるだけなので、「文字u
」の代わりに「バッファされていない」を意味する反義語で必要だということですc
。
私は最初、GNUのこの機能がmknod
以前のバージョンのUnixとの互換性のためであると思いましたmknod
。GNUファイルツールGNUのこの機能はmknod
Linux自体以前にさかのぼります。最初のバージョン管理チェックインmknod.c
u
しかし、Unixがパラメータとして受け入れられる文書を見つけることができなかったmknod(1)
ため、そのような仮定は成立しません。 ²
ナレーター:
1991年7月に
mknod
GNU Fileutilsにユーティリティが追加されました。 1991年9月になるまで、Linuxカーネルの最初のバージョンがUsenetにリリースされました。これは、GNUの最初のバージョンがmknod
最初からLinuxではなくオペレーティングシステムをサポートする必要があることを示しています。オンラインマニュアルページを確認しました。ソラリス、HP-UX、AIX、FreeBSD、SCOオープンサーバー、SCO Unixウェア、ミニス2、ウルトラリックス、2.11BSDとオペレーティングシステム。
mknod u
他のオペレーティングシステムのドキュメントを見つけることができます。ミニクス3— しかし、それだけですmknod(1)
。mknod
mknod