
今日、私はある疑問を抱きながら目が覚めました。Linux ディストリビューションはいったい何からできているのでしょうか? もちろん、私は以前に検索したこともないのに答えを探しているだけではありません。私の理解では、Linux ディストリビューションは次のコンポーネントからできています。
Linux Kernel
GNU tools and libraries
Package Management
Documentation
Windows System
Windows Manager
Desktop Environment
何か見落としている点はありますか?
答え1
このリストに欠けているもの:
ブートローダー
それがなければ、遠くまで行けません。
-
当然のこととして受け止められ、簡単に忘れられてしまう。libcUnix 環境では間違いなく最もよく知られています。
ルート FS およびその他の資産
多くの (ほとんどの?) プログラムはデフォルトを使用して独自に動作しますが、ディストリビューションは通常、独自の最小限の、事前に入力されたルート ファイル システムを持ち込み、必要な構成やその他のファイルによって他と区別され、ユーザー (私たち) にとってより使いやすくなります。さらに多くの資産が、パッケージ内のサードパーティ プログラムと一緒にバンドルされています。これは、オペレーティング システムとして連携して動作するためにも重要であり、適応とバンドルは、ディストリビューションとパッケージのメンテナーの作業の大部分を占めると考えがちです。
アプリケーション!
コア、ツール(ちなみに、GNU以外にもBSDや他のOSユーティリティがLinuxディストリビューションのほぼすべてに搭載されています)、そして(G)UIは良いですが、それで何をするのでしょうか?すべてのOSは、巨大な対象ユーザーをターゲットにしたアプリケーションの選択肢は多く、デスクトップ環境はそのほんの一部にすぎません。
答え2
一つ欠けているのはインストーラプログラムとブートローダーです。ツールと情報だけを提供するディストリビューションはありません。
3つのWindows/デスクトップをまとめるとグラフィカルユーザーインターフェイス。 またはシェルとGUI。
「GNUツール」はあまり正確ではありません。コアユーティリティパッケージですがマウントegはGNUツールではありません。またモッドプローブ特別です。
redhat.com は注意深い:
注: Linuxに言及する場合に含まれるものと含まれないものは 常に議論されているこの定義では、Linuxカーネルとツール、アプリケーション、サービスこれらすべてが組み合わさって、多くの人が Linux と呼ぶ機能的なオペレーティング システムが構成されます。
パッケージマネージャーそしてドキュメンテーションあなたの意見は良いですね。これらのツール、アプリケーション、サービスを整理する説得力のある方法が見つかるかもしれません。
これは、arch-linux のグループ「base」内の 50 個のパッケージをグループ化したものです。行の最後にいくつかの共通カテゴリを配置しました。
bash SHELL
util-linux "SYSTEM UTILS"
coreutils "GNU FILE etc. UTILS"
bzip2,gzip,tar
dhcpcd,inetutils,iproute2,iputils,netctl NET
e2fsprogs,jfs-,reiser-,xfs- FILESYSTEM
pacman PACKAGE MANAGER
systemd-sysvcompat INIT
glibc,gcc-libs CC
gawk,perl,sed PROGRAMMING
less PAGER
man-db,man_pages,texinfo DOCU
nano,vi EDITOR
s-nail E-MAIL
findutils,grep,diffutils,file
dev-mapper
lvm2,mdadm,cryptsetup
pciutils,usbutils,sysfsutils DEVICES
procps-ng,psmisc PROCESSES
logrotate
shadow USERS
gettext TRANSLATIONS
これは、技術的な前提条件と基本的なユーザーのニーズを組み合わせたものです。不足している部分は GUI と C コンパイラ (GNU コンパイラ コレクション) です。このgcc
コマンドは必要ないかもしれませんが、理論的には必須です (ツール チェーン)。
私は「基本」から「追加」の順に並べようとしましたが、あくまで大まかです。EDITOR カテゴリは vim (または emacs) に拡張でき、その後 GUI サブシステム経由で TEX または「オフィス」ワード プログラムに拡張できます。
「残り」は、コンパイルされ管理された(依存関係のある)ソフトウェア パッケージ、つまりアプリケーションです。