LinuxとBSDの両方、ls
およびcat
などの共通プログラムがあります。echo
kill
同じソースコードから来たのですか、それともLinuxとBSDがそれぞれこれらのプログラムに固有のソースコードを持っていますか?
ベストアンサー1
Linuxはカーネルです。 アプリケーションコードなしで起動します。
Linux- ベースオペレーティングシステムが必ずしも同じソースコードを使用するわけではありません。お互い、BSDと同じコードは言うまでもありません。かなり基本的ないくつかのプログラムにはいくつかの実装があることが知られています。
これには以下が含まれますが、これらに限定されません。
ifconfig
2つの実装があり、そのうちの1つは次のとおりです。GNU inetutilsもう一つが入っています。NET-3ネットワークツール。今は3つありますが、3つ目は私のものです。 (望むよりhttps://unix.stackexchange.com/a/504084/5132.)su
2つの実装があり、そのうちの1つは次のとおりです。ユーティリティLinuxもう一つが入っています。影。 Debian は 2018 年に 1 つから別のものに切り替え、この WWW サイトのいくつかの古い質問と回答に誤りをもたらしました。 (望むよりhttps://unix.stackexchange.com/a/460769/5132たとえば、su vs su - (Debian で): PATH はなぜ同じですか?".)- このコマンドを取得できる場所は数多くあります(実際にはDebian / Ubuntuでは4つ)
mailx
:GNU Mailutils、BSD mailx、NMH、およびs-nail。 (望むよりhttps://unix.stackexchange.com/a/489510/5132.)
BSDはオペレーティングシステムです。 それらするこれらのプログラムのコードが含まれています。ただし、単一のBSDオペレーティングシステムはなく、これらのプログラムのコードは、NetBSD、FreeBSD、OpenBSD、DragonFly BSDの間で異なります。また、複数のLinuxベースのオペレーティングシステムで使用されるコードとは明らかに異なります。
Apple / NeXTはMacOS / NeXTSTEPでBSDアプリケーションソフトウェアを使用していますが、(他の)BSDとは異なる方法でACLをサポートするように複数のプログラムを強化することが知られています。chmod
たとえば、コマンドを使用してアクセス制御を設定できます。したがって、これらのコマンドのダーウィンのバージョンは再び異なります。
3つの追加の紆余曲折があります。
kill
と同じプログラムはecho
通常シェルに組み込まれています。 したがって、これらのコマンドのコードは、オペレーティングシステムではなく、使用しているシェルによって異なります。
その後、BusyBoxとToyBoxがあり、どちらもLinuxベースのオペレーティングシステムとBSDで利用でき、独自の実装を持つ一部の電子では、これらのコマンドの主要な実装としても使用されます。たくさん注文する。
その後、IllumosやSchillixなどのツールを生成するOpenSolarisがありますが、どちらもSolarisで実装されています。
これには、1980年代後半から1990年代に多くのUnixプログラムを複製しようとする「PD」の努力と、それに伴う約30年間のシャッフルによる、オープンソースバージョン全体のBSDとAT&T Unixの間の元の分裂を含む完全な歴史があります。 SolarisコードとOpenBSDのいくつかの再実装。たとえば、人々がツールの歴史について誤解する可能性があるとしても、実装があります。たとえば、多くの人は、これが元のUnixツールであると誤って信じていたり、少なくとも1987年にPaul Vixieが書いたシングルスタイルであると誤って信じていますcron
。cron
「PD」)でマークしたり、他の人が同様の代替案を作成したことを認識していないことは、些細なことではありません。