ホームページ バックエンド開発 PHPチュートリアル なぜ Linux は成功しているのでしょうか?

なぜ Linux は成功しているのでしょうか?

Jul 25, 2016 am 08:46 AM

1991 年に Linus Torvalds によって開発された Unix に似たオペレーティング システム カーネルである Linux は、GNU HURD や BSD を含む多くの同様のプロジェクトが失敗する中、なぜ Linux が成功したのかを疑問に思わずにはいられません。
フリーソフトウェアとオープンソースの世界の歴史の中で最も不可解な疑問の一つは、なぜ Linux がこれほど輝かしい成功を収めたのかということですが、同様にフリーでオープンソースの Unix 風のオペレーティング システム カーネルを作成しようとした他のプロジェクトは成功しなかったのかということです。成功しましたか? この質問に答えるのは難しいですが、いくつかの理由を以下にまとめましたので共有します。
しかし、まず明確にしておきたいのは、Linux が大成功を収めているというとき、私が何を意味するのかということです。私はこれを、他の Unix に似たオペレーティング システム カーネルに関連して言います。それらには、オープン ソースであるものもあれば、そうでないものもあり、Linux が誕生した時期に隆盛を極めました。 1991 年 5 月にリリースされたフリー カーネルである GNU の HURD は、その 1 つです。他には、カリフォルニア大学バークレー校が開発した BSD のさまざまな Unix 派生製品、Microsoft が主導する Unix システム Xenix、Minix を含むアカデミック バージョンの Unix、および元の Unix など、ほとんどの人が聞いたことのない Unix も含まれます。 AT&Tの後援。それは初期の数十年間、学術界やビジネスにおけるコンピューティングの発展にとって極めて重要でしたが、1890 年代までにはほとんど視界から消えていました。
さらに、ここでは完全なオペレーティング システムではなく、カーネルについて話していることに注意してください。 Linux カーネルの成功は、GNU プロジェクト全体によるところが大きいです。 GNU プロジェクトは、Unix に似たオペレーティング システムを構築するために必要な、コンパイラ、デバッガ、BASH シェル実装などの重要なツール セットを作成しました。しかし、GNU 開発者は、HURD カーネルの実行可能なバージョンを開発したことがありません (ただし、現在も開発中です)。代わりに、Linux は、GNU の本来の意図を超えていますが、GNU のさまざまな部分を緊密に接続するカーネルとして機能します。
したがって、1991 年 (HURD と同じ年) にフィンランドの無名プログラマー、Linus Torvalds によって立ち上げられたカーネルである Linux が、当時の一般的な環境、つまり多くの Unix でのテストと開発に耐えることができるのはなぜか、と問う価値があります。強力な商用サポートがあり、当時の人気ハッカーが主導していたカーネルは開発に失敗しました。この問題を説明するために、この問題に関連する説明をいくつか見つけました。これを行うために、私はフリー ソフトウェアとオープンソースの世界の歴史と、さまざまな解釈の長所と短所を調査しました。
Linuxは分散開発手法を採用しています
この見解は、Eric S. Raymondの記事「Cathedrals and Bazaars」および関連資料から来ています。これらのデータは状況を裏付けています。ソフトウェア開発は、多数の貢献者が分散型の組織構造で継続的に共同作業を行っているときに最も効率的であるということです。たとえば、コード開発の管理に比較的集中的なアプローチをとる GNU HURD とは対照的に、Linux 開発はこれを実証しています。その結果、レイモンド氏が述べたように、完全なオペレーティング システムが 10 年以内に正常に構築されなかったことは明らかです。
この説明はある程度は理にかなっていますが、明らかな欠陥がまだいくつかあります。たとえば、Torvalds は間違いなく、Linux コードの開発を指導する上でより権威ある役割を引き受け、コードを受け入れるか拒否するかを決定できましたが、これは Raymond らの考えではありませんでした。第二に、この見方では、GNU が実行可能なシステム カーネルの開発に失敗したにもかかわらず、どのようにしてこれほど多くの優れたソフトウェアを生み出すことができたのかを説明できません。分散型開発手法だけがオープンソース ソフトウェアの世界でプロジェクトを適切に導くことができるのであれば、GNU プログラミングのすべての努力は無駄になるはずですが、そうではありません。
Linuxは実用的であり、GNUはユートピア的である
個人的には、この言葉が最も説得力があると思います。つまり、Linuxがこれほど急速に発展する理由は、その作成者が元々書きたかった実用的な人だからです。それは、GNU プロジェクトの一貫した目標である世界を変えるフリー ソフトウェアの一部となるのではなく、自宅のコンピューター上で Unix オペレーティング システムの簡素化されたバージョンを実行するカーネルでした。
しかし、この説明にはまだ完全に説得力がない部分がいくつかあります。特に、トーバルズ自身はプラグマティズムの原則を信じていましたが、過去でも現在でも、彼のプロジェクトに関わる人全員がこの原則に対する彼の信念を共有していたわけではありません。それでも、Linux は成功を収めてきました。
そして、プラグマティズムが Linux の継続的な開発の鍵であるなら、私たちはもう一度尋ねなければなりません:ソフトウェアにある種の堅実さを持っているなら、なぜ GNU はカーネルの開発に失敗しただけでなく、これほど多くの便利なツールの開発に成功したのでしょうか?政治的信念がプロジェクトの成功を追求する際の障害となるのであれば、GNU は今日の IT 世界に強固な基盤を提供する非常に多くの優れたソフトウェア パッケージを開発したパイオニアではなく、完全な失敗者であるべきでした。
最後に (重要なことですが)、1880 年代後半から 1990 年代前半に生まれた Unix 亜種の多く、特に BSD フォークの一部はプラグマティズムの産物でした。彼らの開発者は、高価な商用ライセンスによる制限を受けることなく自由に共有できる Unix バリアントの開発に熱心に取り組んでいましたが、プログラミングやコードの共有について完全にイデオロギー的だったわけではありませんでした。 Torvalds 氏についても同様であるため、Linux の成功と他の Unix プロジェクトの失敗がイデオロギーによるものだと主張するのは困難です。
Operating System Design
Linux の成功について語るとき、無視できないのは、Linux と他の Unix 亜種との間の多くの技術的な違いです。 GNU プロジェクトの創設者であるリチャード・ストールマンは、HURD の開発が頻繁に遅れる理由を私に電子メールで説明しました。「GNU Hurd は実際には実際には成功していませんでした。理由の 1 つは、その基本設計が A のように見えたからです。研究プロジェクトです (この設計を選択したのは、動作するカーネルを迅速に実装するための近道だったからです。)」
Linux は、Torvalds が Linux 用にすべてのコードを単独で書いたという点でも他の Unix とは異なります。 1991 年 8 月に初めて Linux をリリースしたとき、彼の当初の意図の 1 つは、他人のコードを使用せずに独自の Unix を所有することでした。この機能により、Linux は、一般的に AT&T Unix または Berkeley の BSD から基本コードを派生した同時期のほとんどの Unix 亜種とは異なります。
私はコンピューター科学者ではないので、Linux の成功を説明するために Linux コードが他の Unix コードよりも優れているかどうかを判断する資格はありません。これは Linux と他の Unix カーネルの文化的および人事的な違いを説明するものではありませんが、Linux の成功を理解する上でコードよりもオペレーティング システムの設計の方が重要であると思われるため、私にとっては理にかなっています。
Linuxの背後にあるコミュニティは強力なサポートを提供しています
また、ストールマンは、Linuxの成功の「主な理由」は「トーバルズがLinuxをフリーソフトウェアにしたため、ハード開発よりも多くのコミュニティサポートがLinuxに注がれた」と書いています。 「しかし、これは Linux の成長の軌跡の完全な説明ではありません。フリー ソフトウェア開発者が HURD やその他の Unix ではなく Torvalds に従った理由を説明していないからです。しかし、それでも、この変化が人気の理由の大部分を占めていることは指摘しています」 Linuxの。
フリー ソフトウェア コミュニティが Linux をサポートする決定を下したのには、開発者がそうする理由を説明する、より包括的な理由があります。当初、Linux は無名の小さなプロジェクトであり、NET BSD や 386/BSD など、より自由な Unix を同時に作成しようとする他の試みと比較すると、どの基準から見ても取るに足らないものでした。同様に、Linux とフリーソフトウェア運動の目標が一致するかどうかも当初は不明でした。当初、Torvalds は、Linux の商業利用を禁止する証明書に基づいてのみ Linux をリリースしました。その後、ソース コードのオープン性を保護するために GNU の一般公開証明書の使用に切り替えたことについては、後の話になります。
以上が、オープンソース オペレーティング システムとしての Linux の成功について私が見つけた説明です。確かに、Linux はいくつかの側面で成功を収めています (ただし、たとえば、デスクトップ バージョンの Linux がその支持者たちのものになったことは一度もありません)。そうなりたいと思っていました)は目に見えて成功しました。つまり、Linux は、他の Unix 系オペレーティング システムとは異なる方法で、コンピューティング世界の基礎となっています。おそらく、BSD を起源とする Apple の OS X および iOS システムはこれに近いものですが、Linux がインターネットに影響を与えるほど、他の側面ではそれほど重要な中心的な役割を果たしていません。
Linux がなぜ現在のようになったか、あるいは Unix の世界での競合他社がほとんど存在しなくなった理由について他に考えていることはありますか? もしそうなら、ぜひご意見をお聞きしたいです。 (確かに、BSD バリアントには今でも支持者がいますし、一部の商用 Unix は Red Hat (RHT) にとってユーザーをサポートするために依然として重要です。しかし、これらの Unix のどれも、Linux ほど世界をほぼ征服していません。Web サーバーからスマートフォンまであらゆる分野をカバー)
LAMP Brothers オリジナルの Linux 運用保守エンジニアのビデオ/詳細な Linux チュートリアルを無料で入手できます。詳しくは、公式 Web サイトのカスタマー サービス: http://www.lampbrother.net/linux/

までお問い合わせください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? Apr 06, 2025 am 12:02 AM

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

phpstormでCLIモードをデバッグする方法は? phpstormでCLIモードをデバッグする方法は? Apr 01, 2025 pm 02:57 PM

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

See all articles