質問: linuxとbsdの一般的なプログラム(例: "ls"、 "cat")は、同じソースコードからのものですか? linuxとbsdの両方に、lsとcatとechoとkillのような共通のプログラムがあります。それらは同じソースコードからのものですか、それともlinuxとbsdの両方がこれらのプログラム用に独自の独自のソースコードを所有していますか?
回答: linuxとbsdのこれらのプログラムは同じですか? 短い答えは次のとおりです:必ずしもそうではありません。ls、cat、echo、killなどの一般的なプログラムのソースコードは、 serland によって異なりますから来る。つまり、システムが使用するユーザーランドです。 linuxカーネルで使用される最も一般的なユーザーランドはgnu-したがって、gnu/linuxという名前です。ただし、他のユーザーランドはlinuxカーネルに統合されています。bsdには通常、gnuのような他のものとは別に開発された独自のユーザーランドがあります。 bsd自体もコードベースが異なります。たとえば、freebsdとopenbsdの両方に「bsdユーザーランド」がありますが、コードベースは異なります。それらのmanページ(たとえば、ps)を見ると、使用できる引数が異なります。 [〜#〜] posix [〜#〜] が開発された理由の1つは、複数のコードベースの問題に対処することでした。ユーザーランドで提供される共通のユーティリティがposixに準拠している場合は、gnu、freebsd、openbsd、aix、またはその他のunixベースのシステムからのものであっても、ほぼ同じように機能することを保証できます。おそらくご存じのとおり、上記のユーザーランド(aixを除く)はオープンソースです。それらのコードリポジトリを自由に覗いてみてください。それらが完全に同じではないことがすぐにわかります。注:gnu/linuxが最も一般的ですが、過去にfreebsd/netbsdカーネルでgnuユーザーランドを使用する試みがありました。それらの詳細については、ウィキペディアで読むことができます ここ 。