Linuxカーネルはほぼ25歳。 1991年(開始日)以降、特に1994年(1.0.0)から現在までのLinuxカーネルの歴史の簡単なバージョンを提示する必要があるとは限りません。各カーネルリリースノートを読むことに加えて、私ができる最善の方法は、次の一般的な情報を提供することです。リリース機能バージョン3.11までカーネルに追加されました(コメントとリンクを省略):
- バージョン 1.0Linuxカーネルは1994年3月14日にリリースされました。このLinuxカーネルバージョンは、シングルプロセッサi386ベースのコンピュータシステムのみをサポートしています。移植性が問題になるので バージョン 1.2(1995年3月7日リリース)Alpha、SPARC、およびMIPSアーキテクチャベースのプロセッサを使用するコンピュータシステムのサポートを得ました。
- バージョン 2.01996年6月9日発売。このシリーズには合計41の作品が発表されました。 2.0の主な機能は、SMPサポート(つまり、単一システムでマルチプロセッサをサポート)とより多くのタイプのプロセッサをサポートすることです。
- バージョン 2.2(1999年1月26日リリース)グローバルスピンロックを削除し、強化されたSMPサポートを提供し、m68kおよびPowerPCアーキテクチャと新しいファイルシステムのサポートを追加しました(Microsoft NTFSの読み取り専用サポートを含む)。
- バージョン 2.4.02001年1月4日にリリースされ、ISAプラグアンドプレイ、USBおよびPCカードのサポートが含まれています。また、HP PA-RISCプロセッサのサポートも含まれます。 2.4.x 開発では、Bluetooth サポート、Logical Volume Manager (LVM) バージョン 1、RAID サポート、InterMezzo、ext3 ファイルシステムなど、シリーズ全体で追加機能を提供するいくつかの変更が行われました。
- バージョン 2.6.02003年12月18日に公開されました。 2.6.xの開発は、シリーズ全体にわたって新機能を含めるようにさらに進化しました。 2.6シリーズの変更点には、µClinuxをメインラインカーネルソースコードに統合、PAEサポート、複数の新しいCPUシリーズサポート、ALSAをメインラインカーネルソースコードに統合、最大232人のユーザーサポート(2〜16人から最大232人)が含まれます。 2 29プロセスIDに増加(64ビットのみ、32ビットアーキテクチャはまだ2 15に制限されています)、デバイスタイプ数と各タイプのデバイス数が大幅に増加、拡張64ビットサポート、最大ファイルサポート16TBサイズのファイルシステム、カーネルプリエンプション、ネイティブPOSIXスレッドライブラリ(NPTL)サポート、メインラインカーネルソースへのユーザーモードLinux統合、メインラインカーネルソースへのSELinux統合、InfiniBandサポートなど、いくつかのファイルシステムが追加されました。 xバージョン:FUSE、JFS、XFS、ext4など2.6カーネルシリーズの歴史の詳細については、kernel.orgの2.6カーネルシリーズソースコードリリース領域にあるChangeLogファイルにあります。
- バージョン 3.02011年7月22日に公開されました。 Torvaldsは、最大の変化は「いいえ。まったく何もありません」と発表しました。 2011年5月30日、Torvaldsは、「...私たちが実際に作る次のバージョンは、単に新しく輝く数字ではなく素晴らしいバージョンになるようにしましょう」と発表しました。一つもカーネルです。」 これは予想される6~7週間の開発過程を経た後、Linux 20周年記念式に合わせて発売される予定です。
- 2012年12月、Torvaldsはi386プロセッサのサポートを削除し、カーネルの複雑さを減らすことにしました。3.7 カーネルシリーズ 最後のプロセッサはまだ元のプロセッサをサポートしています。同じシリーズはARMプロセッサを均一にサポートします。
- バージョン 3.112013 年 9 月 2 日にリリースされ、一時ファイルの脆弱性を軽減するための open(2) 用の新しい O_TMPFILE フラグ、実験的な AMD Radeon 動的電源管理、低レイテンシのネットワークポーリング、および zswap (圧縮スワップキャッシュ) など、多くの新機能が追加されました。
長年かけて追加することもできます。Linux財団すでにレポートカーネル開発について。以下は、2012-2013年のカーネル開発のハイライトです。
- (私たちが知っている限り)536社を代表する3,738人の個々の開発者が、ほぼ92,000の変更セットをマージしました。
- 多くの重要な新機能がメインラインにマージされました。これには、完全なチックレス操作、ユーザーネームスペース、ARM用のKVMとXenの仮想化、スケジューラのエンティティ固有のロードトレース、ユーザースペースのチェックポイント/再起動、64ビットARMアーキテクチャのサポート、F2FSフラッシュ指向ファイルシステムなどが含まれます。レイテンシとバッファ拡張の問題、2つの別々のサブシステムがブロックストレージデバイスへの高速キャッシュなどを提供します。
- Android関連のカーネル機能に関する長い議論は完全に消えています。よく議論された「Wake Lock」機能は、最新のAndroidデバイスで使用されている他のメインラインソリューションに静かに置き換えられました。
- この間、開発カーネルでバグを見つけるための自動化ツールの使用が大幅に増加しました。 「トリニティ」パージャーやゼロデイビルドやブートシステムなどのツールは、プレリリースカーネルで多数のバグを見つけて開発サイクルを短縮し、コミュニティがより高品質のリリースを提供できるようにします。
- モバイル・エンベデッド産業の貢献度は絶えず増加しています。たとえば、Linaro、Samsung、およびTIは、3.10より前の期間にこの記事の以前のバージョンで変更の4.4%を貢献し、ほぼ11%を貢献しました。
- コアプロジェクトは初めて女性奉仕プログラムに参加し、7つの職位に合計41人の申請書を受け取った。アプリケーションプロセス中に、合計374のパッチがカーネルに送信され、その3分の1以上が3.10カーネルバージョンで承認されました。インターンプロセスは現在進行中ですが、結果は将来のカーネルリリースまで表示されません。
また、定量化する範囲外の指標があるため、カーネルでの作業はそれほど難しくありません。個人的な献身。たとえば、1994年の1.0.0カーネルには176,250行のコードがあることがわかり、3.10のような最新のカーネルには15,803,499行のコードがあることがわかります。もっと。カーネルリリースの頻度が増加し(3.10では63日)、変更率も増加しました(1時間あたり9つ以上のコミット)。 Linux Foundationの言葉を引用するには:
長年にわたってこれらの変化率を維持する能力は、以前のどの公共ソフトウェアプロジェクトでも前例がありませんでした。
しかし、私の考えでは、これらすべては洞察をほとんど追加しません。だから私はこう尋ねたい。
- この25年間の進化を要約できますか?資格のある 時間が経つにつれて、このコアを構成するすべてのリストされた機能の線形合計を超えていますか?
- これは私たちにLinuxカーネルが何であるか、どこに行くのかについての洞察を提供しますか? 25年間の開発の終わりに確実に結論を出すことができますか?
すべてに頼らずに理解しやすい抽象的な答えを見つけてください。
答え1
尋ねる:
この25年間の進化は、時間が経つにつれて、このコアを構成するすべてのリストされた機能の線形的合計を超えると広く定義できますか?これは私たちにLinuxカーネルが何であるか、どこに行くのかについての洞察を提供しますか?
私はこれらの質問に対する明確な答えがあるかどうか疑います。しかし、Linuxカーネルの発展を導く力は理解しやすいと思います。
まず、コンピュータがますます重要になっている。 Chomskyは、どこかで産業化された経済の中心にあると述べた。コンピュータはオペレーティングシステムがなければ何もないので、オペレーティングシステムが重要になります。
1980年代と1990年代には、独自のオペレーティングシステムが支配的でした。ある意味、これは不自然な状況です。 MicrosoftのWindowsはかつては支配的であり、ある意味では依然として支配的ですが、ネットワーク効果を利用することによってのみその位置を維持しました。
インターネットの登場でコミュニティオペレーティングシステムの作成が可能になりました。ただし、そのようなオペレーティングシステムは排他的ではない場合にのみ便利です。 BSDオペレーティングシステムファミリはこのカテゴリには属していません。そのため、Linuxカーネルは民営化できないコミュニティオペレーティングシステムの核心として浮上しました。
多くのメインフレームコンピュータベンダーがLinuxカーネルをサポートしています。なぜ?個人は自由に興味があります。コミュニティは自由を重視します。企業は利益と関連戦略にのみ関心があります。私は多くのコンピュータ会社が「商品化された」オペレーティングシステム、すなわち「平等な競争の章」という概念を受け入れたと信じています。彼らは、Microsoftがオペレーティングシステムを民営化して多くのお金を稼いだが、誰もがMicrosoftになることはできず、単一のベンダーがそのような権力の位置にあることがおそらく問題が最も少ないという例を見ました。他社から不当な利益を得る
それで、ほとんどの会社はマイクロソフトになることができず、おそらくそうしたくないので、「商用」オペレーティングシステムをサポートすることに決めたと思います。繰り返しますが、公平な競争の場です。したがって、誰もが目的の目的でこのオペレーティングシステムを使用でき、グループ内の誰も他の人よりも利点がありません。これを見るもう一つの方法は、オペレーティングシステムのように基本的なものを排他的にすることは、自由市場の原則への深刻な干渉であるということです。一般的に、企業が勝つことができれば特に親自由市場ではないが、そうでなければ勝利する。
実際、Linuxカーネルのほとんどの機能はこれらのダイナミクスから推論できます。たとえば、Unixシリーズのオペレーティングシステムのモジュール性と拡張性は、「商用」オペレーティングシステムとして設計されたオペレーティングシステムに適しています。さらに、カーネルプロジェクトがこのように急速に成長する理由の1つは、これらすべての企業のニーズを満たすために努力しているからです。多くの活動はハードウェアサポート/ドライバーを中心に行われていますが、その領域の外でも多くの活動が行われています。新機能が継続的に開発され、既存の機能が維持および改善されています。
もちろん、私たちはしばしばフリーソフトウェアコミュニティ、時にはFOSS(無料のオープンソースソフトウェア)と呼ばれるコミュニティが会社の管理を受けず、一般の人々が利用できる無料のオペレーティングシステムを持っているという欲求を過小評価してはいけません。 。結局、DebianやFedoraなどのプロジェクトは、これらの価値を信じているボランティアによって運営されています。しかし、企業の役割を過小評価してはならないと思います。