web-dev-qa-db-ja.com

LinuxOSを別のLinuxOSに「ベース」にするにはどうすればよいですか?

最近、かなりの数のLinuxディストリビューションを調べて、何が起こっているのかを把握しています。「[このOS]は[別のOS]に基づいている」というフレーズが次々と出てきます。例えば:

  • FedoraはRed Hatをベースにしています
  • UbuntuはDebianに基づいています
  • LinuxMintはUbuntuに基づいています

Mac環境から来た人にとって、「OS Xはダーウィンに基づいている」ことは理解していますが、Linux Distrosを見ると、「すべてLinuxに基づいているのではないか?」

この文脈では、あるLinux OSがに基づく別のLinux OSであるとは、正確にはどういう意味ですか?

38
Ephemera

Linuxはkernelであり、Debianはdistributionのカーネルであり、実際にシステムと対話するための一連のソフトウェアです。

これで、Debianを使用して、ブート画面のロゴを自分のロゴに変更できます。その後、ディストリビューションはDebianに基づいています(非常に原始的な方法で)。通常、派生分布で行われる調整はより重要です。

重要なのは、ディストリビューションについて何かを変更したい場合は、そのディストリビューションを取得して好みに合わせて変更し、既存のディストリビューションに基づいて独自のディストリビューションを公開することです(すべてのライセンスが尊重されている限り)。

59
Der Hochstapler

Linuxはkernel—ハードウェアと連携して特定のアプリケーションプログラミングインターフェイス(API)をエクスポートする(複雑な)ソフトウェアであり、 「ユーザースペース」アプリケーションで利用可能なそれ(アプリケーションバイナリインターフェイス、ABI)を正確に使用する方法。

Debian 、RedHatなどはオペレーティングシステム—カーネルと一連のユーザー空間プログラムで構成される完全なソフトウェア環境これにより、コンピュータは賢明なタスク(メールの送受信、インターネットの閲覧、ロボットの運転など)を実行するのに役立ちます。

提供するほとんど同じソフトウェアですが(たとえば、無料のメールサーバープログラムやインターネットブラウザやデスクトップ環境はそれほど多くありません)、このような各OSは異なりますこれを行うためのアプローチと、彼らが述べた目標とリリースサイクルにおいて。

通常、これらのOSは「ディストリビューション」と呼ばれます。これはIMOであり、必要なすべてのソフトウェアを手作業で技術的に構築してターゲットマシンにインストールできるため、これらのOSdistributeパッケージ化されたソフトウェアなので、ビルドする必要がないか(Debian、RedHat)、ビルドが容易になります(Gentoo)。また、通常、OSをターゲットマシンにインストールするのに役立つインストーラーも提供します。

OSの作成とサポートはvery複雑で複雑なインフラストラクチャ(アップロードキュー、ビルドサーバー、バグトラッカー、アーカイブサーバー、メール配信)を必要とする複雑なタスクですリストソフトウェアなど)とスタッフ。これは明らかに、新しいゼロからのOSを作成するための高い障壁をもたらします。たとえば、Debianはcaを提供しています。いくつかの5つのハードウェアアーキテクチャ用の37kパッケージ—このようなものをサポートするためにどれだけの作業が費やされているかを把握してください。

それでも、誰かが何らかの理由でneedが新しいOSを作成する必要があると思った場合は、既存の基盤を構築します。そして、これはまさに他のOSのOSベースが存在する場所です。たとえば、Ubuntuは、Debianからほとんどのパッケージをインポートし、それらの小さなサブセットのみを再パッケージ化して、独自のパッケージを作成し、独自のアートワーク、デフォルト設定、ドキュメントなどを提供することで構築しています。

この「ベース」のものにはバリエーションがあることに注意してください。たとえば、Debianはそれ自体の「純粋なブレンド」の作成を促進します。Debianを直接使用するディストリビューションであり、教育、医学、音楽などの少数のユーザーグループにのみ役立つパッケージやその他のものを追加するだけです。業界など.

もう1つの工夫は、これらのOSがLinuxに基づいているわけではないallということです。たとえば、DebianはFreeBSDおよびHurdカーネルも提供しています。彼らは非常に小さなユーザーグループを持っていますが、とにかく。

32
kostix

Red Hat、DebianなどはすべてLinuxのディストリビューション( "distros")です。

Linuxは技術的にはカーネルにすぎないことを忘れないでください。これは、実用的で有用なシステムの一部です。

基本的なユーティリティ、システム内のどこにあるかに関する決定、ソフトウェアをインストールおよび更新するためのメカニズム、およびこれを結び付けるための規則/標準(プログラムが移動するディレクトリなど)が必要になります。

GNUクラシックユーティリティのバージョンのほとんどは、多くのディストリビューションで基本的であると考えられていることが多いため、たとえば、DebianがGNU/Linuxと呼んでいるのはこのためです。 Linux、GNUユーティリティ、およびLinuxで実行される多くのものはフリーソフトウェアであるため、誰でもいつでも新しいディストリビューションを作成できます。既存のディストリビューションから派生したものも含まれます。著作権で保護されたものや所有権のあるものは含まれていません。

多くの場合、画像とロゴは商標/著作権で保護されているものであり、通常、所有者の条件に従っていない限り、派生ディストリビューションで直接使用することはできません。同じソフトウェアは通常、GPLまたはGPLのようなライセンスである場合に使用できます。

通常、ディストリビューション固有である1つの主要なことは、ソフトウェアが保守、テスト、および配布されるパッケージマネージャーまたはメソッドです。派生ディストリビューションは通常、「アップストリーム」パッケージマネージャーと互換性があります。ただし、Linuxディストリビューションに手動でプログラムをインストールすることを妨げるものは何もありません。

通常、これは、同じパッケージマネージャーを使用して同じ方法でソフトウェアをインストールし、実行可能ファイルと構成ファイルの場所が同じ場所にあることを意味します。

8
LawrenceC

Linuxには、ディストリビューションまたはディストリビューションがあります。文字通り何百もの。

Linuxはオープンソースであるため、誰でも(または任意のグループや会社)、OSの任意の部分を変更できます。これが、一部のバージョンに異なるインストーラー(.debとRPMまたは単にtar)と異なるコマンド(apt-getyum)がある理由です。

ほとんどのディストリビューションは、ターゲットの用途または特定の用途を選択し、それを中心に進化しています。

たとえば、Redhatとその親戚はサーバー指向です。ほとんどのOSは、安定または高速であることを中心に設計されています。

Debianは使いやすいことを目的としているため、簡単なインストーラパッケージである.debファイルをサポートしています。

UbuntuはDebianベースを採用し、コードとパッケージを追加して、最初のLinuxディストリビューションとして優れたものにしました。

次にミントは、Ubuntuコードの一部を取り除いて、Ubuntuに似たより高速なOSを作成しましたが、UbuntuがデスクトップマネージャーをUnityに変更したときに、従来のデスクトップよりもさらに多くなりました。

詳細なGNU/Linuxファミリーツリーは次のとおりです。 http://upload.wikimedia.org/wikipedia/commons/9/9a/Gldt1009.svg

7
Austin T French

上記の答えを拡張します。 Linuxは単なるカーネルであり、ほとんどのシステムレベルのコマンド(gcc、grep、bison)は元々GNUプロジェクトによって書かれ、ほとんどのユーザーレベルのアプリケーション(XFCE、Apache、XMMS)はサードパーティによって書かれました。

ディストリビューションが通常初期に作成されたとき、カーネルはシステムレベルのコマンドとユーザーアプリケーションおよびサーバーコンポーネントのサブセットにバンドルされていました。これは今日でも当てはまりますが、新しいディストリビューションの多くは、Debian、CentOS、Slackwareなどの基本ディストリビューションを使用して、GNOME、KDEなどのユーザーアプリケーションを追加または削除するために、すべてを一緒にプレイするための努力を繰り返すことを望んでいません。 、LXDEなど。カスタムメニューを作成し、独自のロゴと背景をディストリビューション(SUSE、PCLinuxなど)に挿入することもできます。さらに進んで、パッケージマネージャーやカスタムフロントエンドなどのディストリビューション固有のアプリケーションを作成する場合があります。

たとえば、UbuntuがDebianに基づいていると言っても、技術的には正しいのですが、最近では特にUbuntuの場合、Debianへの変更がDebianから派生したものであるかどうかに関係なく、Debianから派生したものであると言う方が良いでしょう。 Ubuntu。

これは、私が少し話していることを視覚化するのに役立つはずです。これは、いくつかの確立されたディストリビューションが他のディストリビューションにどのようにフォークされているかを示しています。 100%正確ではありませんが、アイデアが得られます。

http://photos1.blogger.com/blogger/3370/2500/1600/GNULinuxupdatedw4.0.jpg

この画像は私の知る限り100%正確であり、すべてのLinuxディストリビューションのタイムラインであり、それらがどこから来たかを示しています。最近では、ルーツを最初までさかのぼることができるディストリビューションはごくわずかで、6つ未満です。このマップによると、RedhatとDebianは2つしかなく、私の最愛のSlackwareでさえオリジナルではありませんでした。

http://www.techjini.com/blog/wp-content/uploads/2011/10/linuxdistrotimeline-7.2.png

2
Matty

Mac OS Xは、Darwin上で実行されるという意味でDarwinに基づいています。それは、いわばダーウィンに実行時に依存しています。

Ubuntuは、派生物であるという意味でDebianに基づいています。

Debianのパッケージとビルドシステム、Debianのパッケージとスクリプトなどを受け取り、Debianに似た独自のディストリビューションを作成すると、Debianに基づいたものが作成されます。

システムのユーザーは、Debianと非常によく似ています(たとえば、システムのインストール方法、パッケージの更新方法、システム構成が/etcでどのように形成されているかなど)。

DebianもDebianに基づいています。最新リリースのDebianは、以前のリリースのDebianに基づいています。

1
Kaz

Linuxは、コンピューターのハードウェアへのアクセスを提供するコア部分にすぎません。その上に階層化されるのは通常、GNU Cライブラリであり、その上に、使い慣れたすべてのコマンドとソフトウェア(グラフィカルユーザーインターフェイスを含む)が階層化されます。

ソフトウェアが一部の企業によってロックダウンされていない世界で何が起こるか、異なるグループがすべて2つの主要コンポーネントに基づいて異なるソフトウェアのセットをまとめます:LinuxカーネルとGNU Cライブラリ。これら2つは、ほとんどすべてのシステムで見られます。

口語的には、これらすべてのオペレーティングシステムを「Linux」または「Linuxベース」と呼びます。さまざまな標準に関する合意があるため、これらはすべて非常によく似ています。

ちなみに、OS XのDarwinカーネルは、実際にはBSD(Linuxより古い)から開発されています。

0
Angelo