MKNOD(8)

名称
mknod - 特殊ファイルを作成する

書式
mknod name [c | b] major minor [owner:group]

解説
mknod ユーティリティは最新の FreeBSD システムでは価値が低下しています。

mknod ユーティリティはデバイス特殊ファイルを作成します。 手動でノードを作成するには、以下の 4 つの引数が必要です。

name
    デバイスファイル名です。 たとえば “sd” は SCSI ディスクで、 “pty” は疑似端末です。

b | c
    デバイスのタイプを指定します。 ブロック型のデバイスは、 b を指定します。 テープやディスク等がこれに該当しますが、 ブロック型特殊デバイス (cooked) とキャラクタ型特殊デバイス (raw) の 両方の特殊ファイルが必要です。 キャラクタ型のデバイスは、 c を指定します。 端末や疑似デバイス等がこれに該当します。

major
    メジャーデバイス番号を指定します。 メジャーデバイス番号は、 どのデバイスドライバエントリを使用すべきをカーネルに示します。 メジャーデバイス番号とデバイスの対応を知るには、 /usr/src/sys/conf/majors を見てください。

minor
    マイナデバイス番号を指定します。 マイナデバイス番号は、 デバイスのどのサブユニットが 特殊ファイルに対応するのかをカーネルに示します。 例えば、サブユニットは ファイルシステムのパーティションだったり端末ラインだったりします。

owner:group
    owner group オペランドの組はオプションですが、 どちらかが指定された場合には両方の指定が必要です。 owner は数値のユーザ ID でもユーザ名でも良いです。 そのユーザ名が数値のユーザ ID にもある場合には、 オペランドはユーザ名として使用されます。 group は数値のグループ ID でもグループ名でも良いです。 ユーザ名と同様、 そのグループ名が数値のグループ ID にもある場合には、 オペランドはグループ名として使用されます。

メジャーデバイス番号およびマイナデバイス番号とも strtoul(3) が受け付ける任意の形式で指定可能です。 ‘0x’ で始めることにより 16 進数と、 ‘0’ で始めることにより 8 進数であると解釈させる事が出来ます。

mknod ユーティリティは、 devfs(5) マウントポイントの下で、ダミーの引数を使って呼び出すことで 削除されたデバイスノードを再作成するのに使えます。 例:

    mknod cd0 c 0 0

ここで “cd0” は削除されたデバイスノードの名前です。

互換性
chown(8) のような機能は FreeBSD 固有です。

FreeBSD 4.0 では、 ブロックデバイスの価値が下がり、キャラクタデバイスが使われるようになりました。 FreeBSD 5.0 では、デバイスノードはデバイスファイルシステム devfs(5) で管理されるので、 mknod ユーティリティは不必要になりました。

関連項目
mkfifo(1), mknod(2), devfs(5), chown(8)

歴史
mknod ユーティリティは AT&T UNIX で登場しました。