夜明けの俳句OS

ボランティアのチームがオペレーティングシステムを復活させました。

画像



これは、プログラマーのマイケル・フィップスが問題を抱えていた2001年の夏に起こりました。彼のお気に入りのBeOSオペレーティングシステムは、絶滅から一歩離れていました。 ある種のソフトウェアに感情的に執着していると感じるのは驚くほど奇妙に思えるかもしれませんが、Phipsにとっては、他の多くの人(私を含む)と同様に、BeOSはそれに値します。 彼女は当時の鉄に驚くほど速く働きました。 彼女はきれいで直感的なユーザーインターフェイスを備えていました。 そして、彼女は豊かで楽しく、最新のソフトウェア環境を提供しました。 つまり、利用可能な他のオペレーティングシステムよりも大幅に優れていることがわかりました。 しかし、 BeOSを作成し会社は市場に参入することができず、BeOSを含むその資産は競合他社に売却されました。



新しい所有者であるBeOSは長く痛みを伴う死で死ぬのではないかと心配して、Phipsは唯一の論理的なステップを踏み出しました。 彼は、企業や個人に属さないオープンシステムは、ビジネスがうまくいかない、または主要な開発者が会社を去ったという理由だけで消滅することはできないと彼は推論しました。



プログラムしたことがあるなら、オペレーティングシステムの作成は大きな仕事だと想像できます。 しかし、彼らが支払われていないときに人々がこれを行うことを期待することは少し信じられないでしょう。 しかし、俳句に携わった数十人のボランティア開発者にとって、それは愛という名のもとでの仕事でした。 プロジェクトの創設以来11年間にわたって、製品の3つのアルファバージョンをリリースしてきましたが、今月は4番目の最終的なアルファバージョンをリリースする予定です。 その後、ベータフェーズに移行します。ベータフェーズは、今年の終わりまでに完了し、2013年の初めにR1として知られる最初の公式リリースが続きます。



すでに今日では、誰もがオペレーティングシステムをIntel x86互換コンピューターにインストールして実行できます。 多くのユーザーは、Haikuのアルファバージョンでさえ、他のいくつかの製品の最終バージョンと同じくらい安定しているように見えることに注意しています。 確かに、開発中のさまざまなオペレーティングシステムの中で、HaikuはおそらくMicrosoft WindowsMac OSなどの一般的なオペレーティングシステムとの競合に最も焦点を当てています。 ユーザーと開発者にとって、Haikuの体験は驚くほどスムーズです。BeOSのように高速で、応答性が高く、効率的です。 さらに、定評のあるライバルとは異なり、Haikuは驚くほど現代のコンピューティングの最も困難な問題の1つであるマルチコアマイクロプロセッサとの連携に優れています。 Haikuがこれにどのようになったのか、お使いのコンピューターのオペレーティングシステムが非常にうまく機能するかを見てみましょう。



手始めに、ちょっとした歴史。 1991年、 Jean-LouisGasséeというフランス人が、アップルの他の元従業員とともに、新世代のコンピューターを作りたいという理由でBe Inc.を設立しました。 特に、彼らはAppleで目撃した後方互換性のavoidを避けたいと思っていました。そこでは、ハードウェアとソフトウェアのそれぞれの新しいバージョンが過去のシステムの年を考慮しなければなりませんでした。 同社の最初の製品はBeBoxと呼ばれるデスクトップコンピューターでした。 適切なオペレーティングシステムが見つからないため、Beのエンジニアは独自のシステムを作成しました。



画像

1995年10月にリリースされたBeBoxは長続きしませんでした。 それとは反対に、BeOSはすぐに少数ながら忠実な支持者グループを獲得し、すぐにIntel x86互換のPCとMacintosh PowerPCクローンに取り組みました。 ある時点で、 AppleはBeOSをオペレーティングシステムの代替品とさえ考えました。 その結果、同社はインターネット機器向けにBeOSの簡易バージョンをリリースしましたが、これでは十分ではありませんでした。 2001年、PalmはBeを1100万ドルで発表しました。



Beセールが完了間近になったにもかかわらず 、Phipsは当時OpenBeOSとして知られていたHaikuプロジェクトを開始しました(数年後にコミュニティの投票により名前が変更されました)。



当初から、Phipsはプロジェクトの唯一の目標はR5として知られるBeOSの最新の公式バージョンを再現することだと判断しました。 振り返ってみると、あなたはそれが素晴らしい動きだったことに気付きます。 原則として、オープンソースプロジェクトは、自由時間にあなた自身の喜びのために行われます。多くの場合、重要なことを達成することなく、疲れ果てて延期されます。 Haikuはこの運命を避けました。なぜなら、すべての開発者がR5を再作成する可能性を信じていたからです。



それでも、フィップスと彼に加わった人々は非常に難しい仕事をしていました。 オペレーティングシステムは非常に複雑で、特にBeOSほど大きく、その多くのレイヤーとアプリケーションは元々一緒に動作するように設計されていました。 シリコンバレーで最も才能のあるエンジニアの一部は、10年以上にわたってこのプログラムを開発してきました。 空き時間にボランティアのチームでこのようなシステムを再作成するのは、とんでもないアイデアでした。 しかし、それがまさにLinuxです。FreeSoftware FoundationのGNUソフトウェアのように、GNU Cコンパイラーから始まり、会計ソフトウェアであるGnuCashで終わります。



幸いなことに、BeOSはモジュール形式で記述されているため、BeOSコンポーネントのそれぞれをオープンソースのコンポーネントと簡単に開発、テスト、および置換できます。 BeOSの一部は、WindowsのExplorerとTaskbar、OS XのFinderとDockに類似するTrackerDeskbarなど、Beによってすでにオープンソースでリリースされています。ボランティアによって作成された最初のコードは、スクリーンセーバー用のツールですスクリーンセーバーキット)、非常にシンプルな機能だけでなく、多くの詳細があります。 特に、キーボードとマウスのアクティビティを常に監視し、適切なタイミングで画面ストレージ設定をロードし、スクリーンセーバーをオフにするときにパスワードを要求する必要があります。 すべてのパーツが整理されると、PhipsはBeOSスクリーンセーバーをそのオープンソースバージョンに置き換え、誰もが驚きと喜びを感じました。 さらに重要なことは、これは概念実証であり、開発者が各BeOSモジュールを完全に互換性があることを認識して置き換えることができることを示しています。



2008年に、私たちはマイルストーンに到達しました。 その成果は、Haiku自体からHaikuソースコードを収集することが初めて可能になったことです。 プログラマーはこの能力をセルフホスティングと呼んでいます。 この段階は、OSが他のシステムに常に依存するため、オペレーティングシステムの開発にとって重要です。



開発が本格的に行われている間、PhipsはHaikuの組織単位の作成に取り組み、最終的にHaiku Incを設立しました。 プロジェクトを監視し、寄付を受け入れることに加えて、Haiku Inc. Haikuウェブサイトの権利と商標、ロゴ、そしてもちろんソースコードを所有しています。 すべてのHaikuコードがMITライセンスで利用可能になりました 。これにより、民間企業やその他のオープンソースプロジェクトを含むすべてのコードに完全かつ無料でアクセスできます。



もちろん、Haikuチームは、まだ有効なBeOSの特許を侵害しないように注意する必要があります。 原則として、私たちは現在BeOSの権利を所有している日本のソフトウェア会社Accessとの友好関係を維持しています。 たとえば、同社は当社のWebサイトにBeOSのドキュメントを掲載することを許可しており、BeOSテクノロジーを再現しようとする試みを妨げることはありません。 Access、またはコードに権利があると考えている他の会社は、私たちのような小さなプロジェクトを訴えますか? 財政的には、これは意味をなさないだろうし、会社の評判も悪くなるだろう。 しかし、私たちは自分自身を待つしかありません。 合衆国およびその他の地域における知的財産権に関する訴訟の現在の狂乱状態から判断すると、合法性の問題を完全に免除できるソフトウェア製品は1つもありません。



2007年、Phipsは個人的な理由でプロジェクトからの脱退を発表し、新しい人々のグループがHaiku Incを捕獲しました。 彼が去る前に予想したように、リーダーの損失はプロジェクトを死に至らしめませんでした。 現在、私は宝の番人であり、Haiku Inc.の他のエグゼクティブディレクターとともに、取締役会に参加しています。 これまでのところ、私たちは勢いを維持しており、ドイツのデュッセルドルフでの昨年4月の会議で 、Haiku開発者は次期アルファ版の開発に取り組みました。



これまで、BeOS R5を非常に正確に再現し、現在10年以上前の古いBeOSアプリケーションでもHaikuで実行できるようにしています。 プロジェクトが始まったばかりのとき、多くの人はこの種の互換性は不可能だと考えていました。 多くの地域で、俳句は前任者を上回りました。 たとえば、HaikuはBeOSよりも多くの言語をサポートしており、他の言語への翻訳にも対応しています。 また、最新のビデオカード、新しいプロセッサ、ワイヤレスネットワークへのアクセスをサポートし、BeOSよりも多くのメモリを使用できます。



また、プログラミングに関しては、Haikuには画面上のアイコンやその他のウィジェット(ウィジェット)を自動的に配置できる組み込みのレイアウトツール(レイアウトツール)があるため、アプリケーションのユーザーインターフェイスの設計が大幅に容易になります。 BeOSでは、開発者はレイアウトのすべての詳細を指定する必要があり、たとえばボタンを手動でチェックボックスに揃える必要がありました。 コンピュータハードウェアとソフトウェアの革新のペースが非常に速いことを考えると、これらの改善やその他の改善により、Haikuは効果的なままです。



あなたは疑問に思うかもしれません:既存のWindows、Mac OS X、何百ものLinuxバージョン、そして無数のモバイルOSで、Haikuの世界は本当に必要ですか?



はい、それは多くの理由からです。 多くの点で、それらは自然のウイルスに似ており、 コンピューターウイルスは単一文化咲き、 Windowsコンピューターは非常に多く存在するため、Windowsのウイルスは多くの犠牲者を見つけます。 さらに、あるオペレーティングシステムが独占を確立した場合、その作成者はソフトウェアを改善する意味がありません。 ( Mozilla Firefoxから挑戦は、結局のところ、MicrosoftがInternet Explorerをアップグレードする原動力です)。 また、多様性は、ソフトウェア開発者が他のユーザーとシームレスに機能するコードを作成することを奨励するため、相互互換性につながります。 競争がないときは、競争しようとする動機はありません。



しかし、Haikuはオペレーティングシステムの遺伝子プールを拡張するだけではありません。 Haikuで最初に気付くものの1つは、Windows、OS X、またはLinuxのようではないということです。 彼女はユニークです。 たとえば、Linuxは、もともとサーバーで使用するために設計されたカーネルに基づいており、後にデスクトップシステムにのみ適合しました 。 その結果、カーネルがユーザーインターフェースを切り替えることがあります。Linuxユーザーは、DVDの書き込みやコードのビルドなど、コンピューターが重い操作を行うと迷惑な遅延を感じます。 Haikuカーネルは常にパーソナルコンピューター用に存在し、予想どおり、グラフィカルユーザーインターフェイスで発生することを常に優先します。



カーネルとGUIの間には、 アプリケーションプログラミングインターフェイス (API)と呼ばれるものがあります。 APIは、アプリケーション開発者が他のソフトウェアシステムにアクセスするために使用するものです。 APIの設計は、開発者と直接ユーザーの両方に影響を与えます。 HaikuにはAPIが1つしかありません。 これに対して、Linuxには数百のAPIとほぼ同じ数のユーザーインターフェイスがあるため、Linuxのあるバージョンから別のバージョンにシームレスに切り替えることはできません。 使用するバージョンによって、コンピューター画面の外観、プログラムのダウンロードおよび実行方法、その他多くのことが大幅に変更される可能性があります。これらはすべて、すべてのLinuxシステムで同等に実行されるアプリケーションの開発を複雑にします。



Haikuコンポーネントはすべて、メディアプレーヤーやWebブラウザーなどのアプリケーションを含め、もともとコラボレーション用に構築されていました。 開発者はソースコードをシンプルなスタイルで作成します。これにより、開発者はすぐにスピードを上げることができます。 Haikuのコードを記述する開発者は、すべてのHaikuマシンで同じように動作し、動作することを確信できます。 Haikuはオープンソースですが、常に公式バージョンは1つだけです。 これはすべて、システム内の調整された作業を保証するために行われます。



Haikuを際立たせるのは、その効率と速度です。 私の3歳のデスクトップコンピューターでは、Haikuはコールドスタートから10〜15秒で起動し、動作中に約170 MBのRAMしか占有しません。 他のオペレーティングシステムと比較して、コンピューティングリソースを最も効率的に使用します。 Haikuは、他のオペレーティングシステムの非効率性とワークロードに対処できないため、古いシステム上で実行されている場合でも、高速で応答性があります。



多くの点で、Haikuの効率と速度はBeOSの伝統の直接の結果です。 BeOSはもともと、コンピューター用語で実行可能コードのシーケンスであるスレッドの使用を最大化するために設計されました。 ファブリックが多数のスレッドで構成されているように、オペレーティングシステムはプロセッサ時間を共有するスレッドで構成されています。 通常、ストリームは各アプリケーションに割り当てられ、さらにオペレーティングシステムのユーザーインターフェイスに割り当てられます。 問題は、特にユーザーインターフェイスに複数のスレッドが必要なことです。 Windowsでの「アプリケーションが応答しない」というメッセージと、OS Xでの「 ビーチボールの死 」というメッセージは、ユーザーインターフェイスに1つのスレッドのみを使用した直接的な結果です。 このスレッドが仕事で忙しすぎる場合、または別の問題(ネットワークの低速化など)がある場合、アプリケーション全体のインターフェースが妨害されます。



これはBeOSでは発生せず、Haikuでは発生しませんでした。 BeOSが当時の他のオペレーティングシステムよりも優れていた(そしてHaikuが最新のオペレーティングシステムよりも進んでいる)のは、すべてのアプリケーションが多くのスレッドを使用していることです。 アプリケーションコア自体はストリームであり、さらに各アプリケーションウィンドウがストリームを作成します。 これによりコードが少し複雑になりますが、その結果、アプリケーションのスローダウンやジャムはほとんど起こりません。



システムをマルチスレッド化するということは、Haikuがユビキタスな多くのプロセッサーまたはCPUコアをうまく​​利用できることを意味します。 Haikuカーネルを使用すると、同じアプリケーション内のスレッドを含め、各スレッドを独自のコアまたはプロセッサーで実行できます。 ネットワークからデータを取得するなど、他のタスクにストリームを追加することも簡単です。 他のオペレーティングシステムは、多くのアプリケーションを同時に実行する場合、またはアプリケーションに特別なマルチスレッドコードが実装されている場合にのみ、多くのコアを使用します。 しかし、このマルチスレッドコードは複雑であるため、ほとんどのアプリケーションはそれを自慢できません。



Haikuは、スレッド間の相互作用のほとんどを隠すことにより、 マルチスレッドコードを記述するプロセスを簡素化します 。そのため、開発者はそれについて考える必要がありません。 これは、メッセージングエンジンの広範な使用のおかげで大部分可能です。 同じアプリケーション内のストリームAとストリームBはどちらも、ストリームBからデータを受信したいと考えています。ストリームAとBは、このデータに直接アクセスする代わりに、中央のメッセージキューに置かれ、特定の順序で処理されるメッセージを送信します。 このメカニズムがないと、2つのスレッドが同時にストリームBへのアクセスを試み、デッドロックに陥り、その結果、互いに永遠に待機することになります。 Haikuでは、アプリケーション内および他のアプリケーションの両方にメッセージを送信できます。 したがって、Haikuメッセージングエンジンは、フロー制御の複雑さをすべて処理し、この開発者から解放します。



BeOSが多くのストリームを使用した主な理由は、BeBoxがメディアプラットフォームとして考えられていたためです。 実際、BeOSの広告名の1つは「 メディアOS 」でした。 広告はメリットをわずかに覆い隠してしまいましたが、システムはマルチメディアで本当に良い仕事をしました。 典型的なデモでは、BeBoxは、システムが応答性を維持したまま、遅延やフレームスキップをせずに、半ダースの異なるビデオを同時に再生しました。 システムの効率性により、オーディオ信号を低遅延で処理することも可能になりました。 Haikuはまだこれらの分野で多くの仕事をしていますが、すでに他の多くのシステムよりもはるかに進んでいます。



他のHaikuに対するHaikuのもう1つの利点は 、データベースなどのファイルシステムを広範囲に使用できることです。これにより、あらゆるファイルにさまざまなプロパティを関連付けることができます。 これらのプロパティは、通常のデータベースと同じ方法でインデックス付けおよび取得できます。 たとえば、Haikuの各電子メール(電子メール)は、件名、アドレスを持つ送信者の名前、アドレスを持つ受信者の名前などのプロパティとともに保存されます。 トラッカーと呼ばれるファイル管理プログラムから、これらのプロパティを検索できます。 プロパティを使用すると、MP3ファイルから曲情報を抽出したり、Trackerを使用して音楽ライブラリ内のファイルを簡単に整理および検索することもできます。 Haikuアドレス帳のエントリ( Peopleファイルとして知られています )は、ほぼそのようなプロパティで構成されています。



OSでアドレス帳を整理できることは利点です。手紙や連絡先を管理する1つのプログラムに縛られることがなくなります。肥大化したMicrosoft Outlookファイルから古い文字を抽出しようとした人は誰でも、このアプローチの美しさを理解するでしょう。 Haikuでは、1つのプログラムからのみアクセス可能な形式の後ろに通信を隠すのではなく、任意のプログラムを使用できます。同じ文字で操作するために複数のプログラムを使用することもできます。同様に、Haiku Peopleファイルは多くのプログラムで編集および制御でき、Trackerから変更することもできます。ファイルシステムにデータベースの概念を実装しているOSは他にありません。



すべての利点を考えると、Haikuにはユーザーが期待する重要なポイントがいくつかありません。たとえば、最新のオペレーティングシステムのほとんどは、ハードウェアアクセラレーションインターフェイスを備えています。これにより、ウィンドウからの影、透明な境界線、ウィンドウのコンテンツのサムネイルなど、派手な効果を表示できます。これらはすべて、ビデオカードを使用して迅速かつ効率的に実行できます。一般的なOSのユーザーは、幅広いアプリケーションにもアクセスできます。 Haikuは現在、BeOSの残りの部分を除き、少数のネイティブアプリケーションに限定されています。



他のオープンOSと同様に、Haikuはドライバーの不足に苦しんでいます。。最新のビデオカード、プリンター、およびその他のコンポーネントは非常に複雑です。これらは、それ自体が小型コンピューターのようなものであり、特別なプログラムが必要です。このドライバーは、OSとハードウェア間のブリッジとして機能します。今日、鉄の種類とブランドは非常に多く、オープンソースの開発者がそれらに遅れずについていくのは困難です。



幸いなことに、Haikuは何千ものLinux、FreeBSD、およびその他のオープンソース開発者の作業に依存できます。 Haikuはすでに、専用の翻訳インターフェイスを介してFreeBSDネットワークとワイヤレスドライバーを使用しています。Linuxのビデオカードドライバーの将来になる可能性のある新しいGallium3Dシステム導入する作業も進行中です



さらに重要なことは、Haikuの強みの多くが、主要なOSに匹敵することはなく、まもなくそうでないことです。 Linuxアプリケーションは、Haikuほど深くマルチスレッド化を考えていないため、最新のマルチコアプロセッサのパワーを活用できません。 2年前のOS X Snow Leopardのリリースに伴い、Appleは新しいGrand Central Dispatchテクノロジーを追加しました。これにより、アプリケーションでの複数のスレッドの使用が容易になります。しかし、ユーザーインターフェイスにはまだ1つのスレッドしかないため、「死の玉」はどこにも行きません。



Windows 7の最新リリースは、その前身に比べて大きな前進でしたが、インターフェイスの広範さや情報の単純な過負荷など、依然として多くの問題を抱えています。コントロールパネル自体は、すでにユーザーに片頭痛を引き起こす可能性があります。 Windowsは巨大です。Windows7 Ultimateのクリーンインストールには 20ギガバイトのスペースが必要です。 Haikuに付属する多数の無料アプリケーションを有効にしても、OSのインストールにかかる費用は700メガバイト(Windows 7の13分の1)です。オープン性と自由度に関しては、WindowsとMac OSは輝きません。



その結果、Haikuを使用すると、パソコンを別の視点から見ることができます。互換性のないバグのあるプログラムが気に入らない場合、ハードウェアやプログラムを数年ごとに変更せざるを得ない場合、システムの「改善」が時代遅れになったという理由で嫌いな場合さわやかで新しくて魅力的なのなら、Haikuがあなたにぴったりかもしれません。

画像




著者について。

ライアンLivengud(ライアンLeavengoodによる) -サイトを開発ボイントンビーチ、フロリダ州、コンピュータのコンサルタント。Ruby on Railsに。 2003年にHaikuを開発するためのオープンソースプロジェクトに最初に関与し、現在は彼の宝物の管理者です。完璧なOSはない、と彼は言いますが、「一部は完全に不完全です。作業したすべてのOSが、既に使用しているものより悪くないことに気付きました。」 Livengoodがプログラムを行わない場合、彼と彼の妻Francescaは、4匹の猫、1匹のSt. Bernardとフロリダの植物からの庭で時間を過ごします。



翻訳者から:私はBeOSの大ファンであり、Haikuを長い間フォローしており、定期的にプロジェクトに参加しています。システムはさまざまなペースで開発されていますが、かなり安定しています。最近発表されたGSOC承認プロジェクト -有望に思えます。ベータリリースは、虹のユニコーンと同様に、もうすぐです。

オリジナルへのリンク:Haiku OSの夜明け

エラーや不正確な情報は、プライベートメッセージで報告してください。




All Articles