BSDとGNU / Linuxユーザースペースの主な違いは何ですか?

BSDとGNU / Linuxユーザースペースの主な違いは何ですか?

私はUnixとLinuxでBSDやGNUなどについてたくさん読んでいます。しかし、BSDとGNUのユーザー領域は頻繁に言及されていますが、実際的で実質的な違いが何であるかはまだ理解されていません。誰かを詳しく説明してもらえますか?

回答の際には、歴史的関連性を十分に説明してください。そして、私はGNU / Linuxが主流のUNIX(OS Xを除く)ではなかった時代を生きるのに十分長く住んでいなかったことを覚えておいてください。

ベストアンサー1

「ユーザ領域」という用語は、様々な文脈で多くのことを表すことができるが、ここでは、「GNUユーザ領域」と「BSDユーザ領域」をディストリビューションに付属する基本的な最小アセンブリの集合として解釈する。

主な違いは、2つのユーザー領域がまったく異なるソースコードで始まるということです。GNU猫のソースコード NetBSD猫のソースコード。概念的に簡単なこのプログラムは、NetBSDのcatが伝統的な単一文字のコマンドラインフラグを使用していることを示しています。 GNUプログラムは単一の文字識別子を持つ傾向がありますが、--something-longタイプオプションもあります。 GNUプログラムはまた、POSIX互換性を目指す傾向があります。

場合によっては、ソースコードの違いにより、2つのユーザー領域が異なる動作をします。

NetBSDは(少なくとも)標準Cライブラリであるlibcの独自のバージョンを使用しているようです。私が見るのは少し理解するのが難しいですが、libcと動的接続の間には奇妙な相関関係があります。同様に、ソースコードが異なる場合は動作も異なります。

私の考えでは、シェルユーザーであれば、これが動作がps異なり、ls慣れているものとは少し異なる出力を提供できることがわかります。コマンドラインフラグタイプを使用する場合は、--long-option一部のプログラムに対応するコマンドラインフラグを見つける必要があります。

歴史的に、私はBSDユーザースペースがV6およびV7 Bell Labs Unixから直接直接継承され、32Vポートを介してVAXハードウェアに接続されることを知っています。 GNUユーザー領域は、少なくとも部分的には1980年代初めにコードを徹底的に秘密に保つことを目的としたAT&Tの試みに対応して、より新しいものです。 1983年、ベルシステムが分離された後、AT&TはUnixを「収益化」しようとしました。その中には、ほとんどの人がソースコードを見ることができないように、ソースコードのライセンスを付与することがあります。 Richard Stallmanと他の人に質問があります。彼らのGNUプロジェクトは、特に自由に共有可能なUnixシリーズシステムを作成するために存在します。

一方、1993年にAT&TはBSD(「B」はカリフォルニア大学が位置するバークレーを意味する)システムに対して、カリフォルニア大学システムを相手に訴訟を提起しました。 Berkeleyの人々は、AT&Tのすべての元のソースコードを、少なくともNetBSDユーザー領域の祖先となった新しいコードに置き換えました。 AT&TとUCBは1994年に合意に達しました。明らかにする2004年に大衆に公開された。

もちろん、少なくともアイデアは交差湿気であるため、GNUとBSDユーザースペースの間には少なくとも概念的な類似性がありますが、極端には確かに異なります。

おすすめ記事