0

Linux システムの /run ディレクトリに関する記事を読みました。 http://article.gmane.org/gmane.linux.redhat.fedora.devel/146976

この記事では、多くの Linux ディストリビューションが、 /run ディレクトリが Early-runtime-dir 問題に対する唯一のクリーンなソリューションであることに同意していると述べています。以前は、初期のランタイム データを /dev/.XXX または /var/run に配置していました。しかし現在、初期のランタイム データを格納するために /run ディレクトリを採用しています。

私の質問: 彼らはどのようにこの変更を行うのですか? 具体的には、カーネルまたはブートまたは initscripts のコードを変更しますか?

たとえば、この記事 (http://article.gmane.org/gmane.linux.redhat.fedora.devel/146976) を見てください。これを実装するために必要な変更は何ですか?

4

2 に答える 2

1

ディレクトリは、runカーネル自体にとって特別な意味はありませ/run/var/run。カーネルの観点からは、これは単なる通常のディレクトリです。しばらく前からパフォーマンス上の理由から、通常はtmpfsファイルシステムとしてマウントされています。Fedoraディストリビューションは、下位互換性のために/runを指すシンボリックリンク/var/runを作成します。

マウント:

tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)

ls / var:

lrwxrwxrwx.  1 root root    6 Jun  8 15:33 run -> ../run

したがって、実際にはすべての「古い」プログラムとスクリプトが機能します。しかし、規則が変更されたため、パッケージもこれを反映するように更新されています。したがって、時間の経過とともに、/var/runリンクの必要性はなくなります。

この移動を実装するために/run、initスクリプトが変更されました。

于 2012-10-23T03:40:00.647 に答える
1

/runLinux ディストリビューションの init システムによって作成およびマウントされます (通常は tmpfs ファイルシステムとして)。たとえば、systemd や OpenRC などです。init システムは、他のどのプログラムよりも先に実行されます。

カーネルはそれとは何の関係もありません。

于 2012-10-23T03:42:55.513 に答える