さまざまなLinuxディストリビューションは、同じ構成パラメータをさまざまなファイルに保存します。たとえば、IPv4アドレスDebian ウィズ/etc/network/interfaces
ファイルに保存Fedora 20/etc/sysconfig/network-scripts/ifcfg-eth0
ファイルに保存されます。また、これらの構成ファイルの構文も異なります。ディストリビューションはこれらのファイルをどのように解析しますか?また、構成ファイルの内容はユーザースペースユーティリティと同様の方法で解析されますか?ip
それとも、ifconfig
実際にカーネルを構成するいくつかの低レベルのシステムコールがありますか?
答え1
カーネルは設定ファイルを読みません。通常、カーネルはファイルシステムへのアクセスを防ぎます。いくつかの例外とバリアントがありますが、主にカーネルはその場所でプログラムを起動します。/sbin/init
起動すると、ユーザープロセスに代わってファイルシステムにのみアクセスします。
ネットワーク構成ファイル(他の種類の構成ファイルと同様)はアプリケーションから読み取られます。ネットワーク構成ファイルの場合、これらのアプリケーションは、以下を介してファイルを読み取り、構成を適用するスクリプトのコレクションに付属するバイナリです。システムコール。 Linuxのネットワーク構成、システムコールは主にioctl
呼ぶソケット(これを理解する必要はありません)。
Linux(およびそれ以前のUnix)の歴史では、一部の構成は誰もが実行する方法に同意したため、標準となりました。これは(普遍的ではありませんが)ユーザーの場合に主に当てはまります(/etc/passwd
、NSスイッチ)とファイルシステム(fstab
)。一方、ネットワーク構成は依然として非常に多様です。 Red Hatから派生したディストリビューションはそれを維持します/etc/sysconfig/network
。 Debianから派生したディストリビューションはそれを維持します/etc/network/interfaces
。
Debian を例にすると、/etc/network/interfaces
次のように解決されます。ifup
/etc/init.d/networking
ネットワーク設定を担当する初期化スクリプトから呼び出されるプログラムで、それ自体init
。