私は、GNUがLinuxディストリビューションを駆動するための基本的なツールを提供するオープンソースコードを提供する(唯一の)ベンダーだと思います。しかし、unix.seの検索中に、GNU解析のセキュリティに関する質問など、GNUを扱っていることを明示的に言及したいくつかの質問がありましたls
。これは、GNUがいくつかのバージョンを提供していないことを意味しますls
。そうですか?このバージョンは何で、誰が作成し、どこで見つけることができますか?
答え1
より直接的なアプローチをとると、GNUユーティリティの外部の主なオプションは次のとおりです。
- BSD Userland Utilities: 初期バージョンの Berkeley Unix で始まり、いくつかの追加機能を備えた汎用 Unix ツールでしたが、SVR4 では大きく異なりました。今日、さまざまな形で使用されていますFreeBSD、オープンBSD、ネットワークBSD、トンボBSD、ミニ3(NetBSDユーザーゾーンを使用)とmacOS(一部の修正と一緒にFreeBSDユーザーゾーンを使用)、PS3(FreeBSDとNetBSDの複雑な派生)、PS4(FreeBSDの派生)、PS5とPS Vitaのシステムソフトウェアも可能、そしてかなり興味深いキメラLinux。
- 忙しい箱:シンプルなデザインで、ほとんどPOSIXと互換性があります。ユーザーアルパインLinux基本的に(だから巨大多くのDockerイメージ(Alpineが広く使用されている基盤であるため)であり、Linuxをオペレーティングシステムとして使用する大多数のネットワークデバイスを含む、Linuxを実行している多くの組み込みシステムで独自のユーザー領域として使用されます。これは、主に組み込みの使用のためにインストールすることができるという点で、UNIXシリーズシステムで最も高いユーザーゾーンの1つです。
- おもちゃ箱:Busyboxと似た概念ですが、よりミニマリストです(一部の地域ではPOSIX規格に準拠しています)。 Busyboxに関連するライセンスの不一致が原因で発生します。これはAndroid(および実際にはLinux)が使用するものですが、デフォルトではそれを使用する他のLinuxプラットフォームはありません。これは、UNIX ファミリシステムの他の最上位ユーザー領域の 1 つです。 Androidどこでも。
- ガボプロジェクト:主にCalderaとSunが発表したソースコードに基づいて、元のUNIXユーザースペースを最小限に近代化したコピーです。これらは主にSVR4派生物であり、興味深いことに、多くのコマンドが「クラシック」バージョンとPOSIXバージョンの両方で利用可能です。私が知っている限り、どの主要プラットフォームでも使用されていません。
- 9基:ユーザーエリアユーティリティの最小限の移植コピーを提供するベル研究所プラン9。私が知っている限り、どの主要プラットフォームでも使用されていません。
- データベースそしてウバス:より小さく、いくつかのケースではよりミニマリストですが、通常はbusyboxのPOSIX互換の代替手段です。私が知っている限り、どの主要プラットフォームでも使用されていません。
答え2
私は、GNUがLinuxディストリビューションを駆動するための基本的なツールを提供するオープンソースコードを提供する(唯一の)ベンダーだと思います。
別言します。 Stallmanと彼の同僚は、この状況を「GNU / LinuxにGNUではなくオプションのソフトウェアを追加した」と説明するのが好きですが、実際にはそうではありません。
これは、lsの一部のバージョンがGNUで提供されていないことを意味します。そうですか?
まあ、厳密に言えば数学的な意味はありませんが、はい、あなたは正しいです。
まず、Linux以外のすべてのシステムにも移植可能なユーザー領域があります。そうですか? FreeBSD、OpenBSD、DragonflyBSD、Minix、MacOS...どちらもGNUツールを提供していません。だからです。持つ少なくとも一つの別の道具王朝になります。
はい。 BSDツール(もちろん、さまざまなフォークを含む)があります。いくつかはGNUよりもクールで、いくつかは悪く、いくつかは違います。私はlibbsd / BSDツールにのみ依存するLinuxディストリビューションを知らず、他のディストリビューションにはgnulib / GNU coreutilsがありますが、少なくとも私はGNU Bashとは異なるシェルであるbsdtarを好む...アイデアを得るでしょう。
その後遠くLinuxを実行する最も実用的な物理デバイスは次のとおりです。いいえGNUユーザー領域があります。
- 36億以上ポジティブAndroidデバイスがあります。 Androidは、
toybox
(0-BSDライセンス)を標準ツールセットと修正されたKornシェルとして使用するLinuxディストリビューションです。 - いくつかのLinuxディストリビューションを実行している数十億のDSL/ケーブル/光ファイバ「ルータ/アクセスポイント」ボックスがあります。ほとんどはBusybox(GPL)で実行され、付属
sh
の機能を使用します。
私の推測では、GNUではなく基本的なツールセットを使用する約60億のLinuxデバイスと比較して、Linuxは数百万台のデスクトップ/ノートブックでそれほど一般的ではないと思います。
ただし、これまで実行されているほとんどのLinuxカーネルインスタンスは、おそらくHyperscalerクラウドプロバイダー(Amazon、Alibaba、Microsoft、Oracle...)のデータセンターで実行されています。具体的な数字を言うのは難しいですが、数十億ドルに達するでしょう。これが何を実行しているのかを推測するのは難しいです。しかし、特にクラウドコンピューティングでは、Alpine Linuxなどのディストリビューションが人気があり、GNU Coreutilsは付属していませんが、Busyboxに付属しています。しかし、我々はここで計算します仮想デバイス、いいえ物理マシン。私が言ったように、Googleデータセンターでは、「機器」は単一のマザーボードではなくサーバーラックであり、物理デバイスの数は比較する小さい。
(これに対する個人的な意見:強力なコピーレフトユーザースペースの割合はますます小さくなっていますが、これは良いことではありません。だからですが、FSFは私が期待していたのと同じくらい機能的で目標があり、効果的ではありません。
答え3
GNU Coreutils通常、これらのツールのほとんどは元のバージョンではありません。通常はオペレーティングシステムによって提供され、ほとんどのLinuxディストリビューションはGNU / Linuxなので、最もフレンドリーなディストリビューションはGNU Coreutilsです。しかし、Linuxが存在する前は、今日でもまだ使用されているさまざまなUNIXツールにまだ存在するBSDツールとさまざまなUNIXツールがありました。また、GNU以外の一部のLinuxバージョンでは、次のものを使用できます。忙しい箱(例:アルパインLinux)。
誰が作るかに従うことが重要です。POSIX規格、特にGNUユーティリティの場合、必ずしもそうではありません。
ほとんどすべてのコマンドのOpenBSD、FreeBSD、UNIX、GNU、Busyboxなどのバージョンを見つけることができます。
使用中の多くのUNICESは、少なくともある程度、UNIXバージョン6に由来しているため、同じユーティリティの一部を共有したり、その過程でそのユーティリティを一意に変更した可能性があります。
答え4
これは、lsの一部のバージョンがGNUで提供されていないことを意味します。そうですか?このバージョンは何で、誰が作成し、どこで見つけることができますか?
はい。元の実装は、ls
以前のAT&T Unixライセンスに従って行われました。
最新の実装では、ls
すべてさまざまなBSDディストリビューションで実装されています(実際には、元のAT&T Unixから派生したLinuxとは異なります)。
BSDはユーザー数が非常に少ない非常に小さなオペレーティングシステムだと思うかもしれませんが、BSDは実際には存在します。大規模なユーザーベースのもう1つのBSDディストリビューションがありますが、AppleのMac OSです。
GNUプロジェクトとは何かを覚えておく価値があります。 GNUはUnixではなくGNUです。これはUnixツール(例えば)ls
のクリーンコピーを作成するプロジェクトですが、確かにUnixではありません。したがって、GNUをls
元のUnixと考えることができますls
。実際、GNUツールの機能は、他の開発者が自分のツールをGNU機能に更新するように促しました。長年にわたり、GNUと残りのUnix世界の間にはかなりの交差水分がありました。