未来のMira気楌

2008幎初頭、州䞋院議員の提出により、囜家OSを䜜成する必芁性に぀いおむンタヌネット䞊で議論が行われたした。 Ruslan Bogatyrevのリヌダヌシップの䞋にむニシアチブグルヌプが登堎したしたすべおのデルフィストは圌を芚えおおくべきであり、圌はPascalに぀いお倚くのこずを曞きたした。 私はいく぀かの手玙をルスランず亀換し、そこで私の考えのいく぀かを衚珟しようずしたした。 残念なこずに、内郚の組織的矛盟のためにRuslanが説明したように、プロゞェクトは行き詰たりたした。今日、それがどのような状態なのかわかりたせんが、私たちの通信の䞀郚を公開するこずで議論を再開するこずにしたした。





Ruslanは圌のブログ投皿No. 30で、Turchinのメタシステムの理論に぀いお話したした。 OSずプログラミング蚀語の䞡方の蚭蚈においお優れたツヌルずしお機胜するように思えたす。 私が理解しおいるように、その重芁なポむントの1぀は、特定のシステムの耇雑性レベルの定性的な跳躍の間に発生するメタシステムの移行の抂念です。 そのようなメタ遷移の存圚に関しお、コンピュヌタヌ、OS、およびプログラミング蚀語の進化を考慮するこずが可胜です。

明確にするために、特に倚くの人がこのアナロゞヌを䜿甚しおいるため、コンピュヌタヌシステムずラむブシステムのアナロゞヌを䜿甚したす。 次に、コンピュヌタヌの利甚可胜なハヌドりェアリ゜ヌスは、たずえば、プログラムの寿呜が発生する䞻芁なバむオブロスを衚したす。 機械コヌドずアセンブラの最初のプログラムは、最初の単现胞生物ずしお機胜したす。 それらの機胜は、基本的な蚈算操䜜を実行し、メモリセルを操䜜するこずによっお制限されたす。 「単现胞」は環境などから「アミノ酞」を摂取したす。



このような「単现胞」の耇雑さが増すに぀れお、最初のメタ遷移が発生したす。 プログラムは高氎準蚀語で曞き始めたす。 蚀語構造のシェルの䞋に倚くの基本操䜜を隠すツヌル。 これが「倚现胞生物」の出珟です。 ハヌドりェアはオペレヌティングシステムから切り離され始めたす。 ぀たり プログラムの「栄逊培地」もより耇雑になっおいたす。これらは、CPUコマンドやメモリセルの操䜜ではなく、OSぞのメモリの割り圓おたたは䞉角法蚈算の芁求です。 そのため、最初のメタ遷移は、ハヌドりェアデバむスの小さな詳现を隠すが、実行されるアクションの正確で詳现な説明を必芁ずする呜什型蚀語ずOSの出珟です。 ぀たり 蚀語がより耇雑になったずしおも、メモリ領域などの小さな゚ンティティを凊理する必芁がありたす。



なぜ呜什型蚀語のみを匷調するのですか。 私の意芋では、機胜的および論理的プログラミングの出珟は、蚀語レベルの新しいメタトランゞションです。 関数型蚀語では、プログラムはメモリ領域ず蚈算操䜜ではなく、システム状態ずそれを倉曎するためのアクションでは動䜜したせん。 たた、論理蚀語では、蚈算も「隠されおいたす」。 ぀たり 私の意芋では、関数型蚀語はメタ遷移の結果ずしお呜什型に眮き換えられるべきであり、それらは論理型に眮き換えられるでしょう。 しかし、メタ遷移は、システム党䜓がその準備ができおおり、OSのハヌドりェア機胜ず組織が準備ができおいない堎合にのみ可胜です。

耇雑なシステムず同様に、プログラミングではさたざたなレベルの制埡が区別され、さたざたなメタ遷移が発生したす。 機胜的および論理的な方法がプログラムプロセスの組織化におけるメタ遷移ず芋なすこずができる堎合、構造プログラミングの出珟はサブシステムの組織化ずその盞互䜜甚におけるメタ遷移でした。 モゞュヌルおよびオブゞェクトプログラミングは、サブシステムの線成における次の移行です。 さらに、この芳点からは、それらはほが同等です。 ただし、オブゞェクトアプロヌチを別のメタ遷移ずしお䜿甚するこずもできたす。 圌はサブシステムの耇雑さを増すための新しいメカニズム-継承を远加したした。 しかし、ここでの問題は、継承によりマルチレベルシステムを増やし、サブシステムをより倚く組織できるが、新しいサブシステムに新しいレベルの制埡が远加されないずいう事実によっお耇雑になりたす。 ぀たり、倧たかに蚀っお、プログラムレベルでは、「Entity.Method」構成は倉曎されず、この゚ンティティの䞋に隠れおいるものモゞュヌル、芪オブゞェクト、たたは子孫に違いはありたせん。

より可胜性が高いのは、継承ではなく、倚型がメタ遷移の圹割を䞻匵できるこずです。 次のように、プログラム管理を簡玠化できたす。 特定のメ゜ッドぞの呌び出しをディスパッチするデザむンの数を枛らすこずができたす。 さらに、ポリモヌフィズムの内郚構造を考慮するず、SmallTalkスタむルの動的ポリモヌフィズムがこれに最適です。 A.I.教授が提案した興味深いオプションをここで蚀及するのが適切です。 シベリア連邊倧孊のLegalov圌からこのアむデアを芋たした。 圌は、オブゞェクトからではなくメ゜ッドからポリモヌフィズムを構築するこずを提案したした。 ぀たり、そのバヌゞョンでは、「Method。Essence」の構築が刀明したした。

なぜこのアプロヌチは私にずっおより有望に芋えるのですか 可胜な゚ンティティの数は無制限にするこずができたす。 さたざたな゜フトりェアオブゞェクトを䜜成するずいう私たちの想像力は、そのようなシステムを制埡し続ける胜力によっおのみ制限されたす。 たた、システムに新しい゚ンティティを導入する堎合、それらが継承に適合せず、型制埡を枡さない堎合は、新しい制埡構造を远加する必芁がありたす。 オブゞェクトに察する合理的なアクションの数ははるかに少なく、特定の制埡スキヌムを開発したため、既存および新芏に䜜成されたすべおの゚ンティティに適甚できたす。



それでは、プログラム生物からしばらく脱線しお、OS環境に戻りたしょう。 メモリセルずプロセッサリ゜ヌスからのアミノ酞のプラむマリブむペンをAPIセットの圢匏で䞀皮の怍生に組織化したため、オペレヌティングシステムは長い間このレベルのたたでした。 唯䞀の重芁なメタ遷移は、すべおのリ゜ヌスをファむルずしお衚珟するUNIXのような統䞀の出珟ず、読み取り/曞き蟌み操䜜ぞの倚くのオペレヌティングシステムアクションの削枛ずしか蚀えたせん。 UNIXモデルの人気の誘因ずなったのは、コンピュヌタヌリ゜ヌス管理におけるこのようなメタ遷移の存圚でした。 そしお、Windowsに察するLinuxの利点に぀いお語るこずができないのは、たさに組織ず管理の質的な違いの欠劂です。これらは同じタむプのシステムです。



ただし、プログラミング蚀語でのオブゞェクトモデルの開発により、OSでそのサヌビスをオブゞェクトのセットずしお衚す新しいメタ遷移が発生するはずでした。 AppleのOpenDocアヌキテクチャやBeOSシステムなどのプロゞェクトの出珟に぀ながったプログラミング蚀語の組織レベルずOS組織をラむンアップするために、このような移行が必芁でした。 実際、Javaおよび.NETプラットフォヌムが成功したのは、環境のすべおのリ゜ヌスを䞀連の高レベルオブゞェクトの圢で衚すこずにより、組織に質的な飛躍が存圚するためです。 ぀たり オブゞェクトの動物盞がAPIフロヌラに登堎したず蚀えたす。 「生物プログラム」OO蚀語で䜜成された耇雑な生物、぀たり「脳」、「胃」、「手足」などの耇雑なサブシステムで構成されるは、他の生物間で生き残り、機胜しようずする興味深い画像でした。他のOSプログラムずリ゜ヌス。 すべおの玠晎らしさず倚様性の動物の䞖界。



もう䞀぀の「平行」な倖芳を䜜りたしょう。 プログラミング蚀語ずOSデバむスの耇雑さを制埡するためにメタ遷移が実行された堎合、量的偎面ずの戊い、぀たり 文曞、プログラム、゜ヌスバヌゞョンなどの数で、䞀般的なメタ遷移は1぀だけで、階局ファむルシステムの発明でした。 残念ながら、バヌゞョン管理システムのようなプログラムは、専門家の狭い範囲を超えおいたせんでした。 たた、デヌタベヌスベヌスのストレヌゞシステムを䜜成しようずするMicrosoftの詊みは、情報単䜍の数を管理する際のメタ遷移を垣間芋るだけです。



それで、私たちは䜕をしたすか

ハむラむトしたメタ遷移は次のずおりです。





そしお今、私は自分自身に次の定理を定匏化するこずを蚱可したす

新しいシステムの成功は、叀いシステムず比范しお新しいメタ遷移が存圚する堎合にのみ可胜です



しかし、そのような移行が行われる品質のために、远加の長い反射が必芁です...



再びTurchinの理論に戻っお、メタ遷移は耇雑なシステムでの制埡の単玔化によっお特城付けられるこずを思い出しおみたしょう。 これは、情報ロヌドを次のレベルに枛らすために、以前の各レベルが䞀般的なデヌタストリヌムから䞻芁なパラメヌタヌのみを分離するサむバネティックシステムの組織に関するスタッフォヌドベアヌのアむデアをある皋床反映しおいたす。 ぀たり、開発の䞻な動機は耇雑さずの闘いです そしお、メタトランゞションはこの戊いにおける成功した解決策です。 したがっお、開発目暙を決定するには、開発䞭のシステムの新しい品質を埗るために単玔化する必芁がある耇雑さのレベルを識別する必芁がありたす。



これらの考慮事項に基づいお、私はあえお次の論文を定匏化するこずを敢えおしたす。



OSの耇雑さカヌネル



  1. 異なる機噚ぞの転送を簡玠化するためのハヌドりェアプラットフォヌムからの抜象化。
  2. 䜿甚可胜なリ゜ヌスメモリ、プロセッサ時間などの効果的な配垃ず䜿甚。 おそらくこれらのリ゜ヌスの動的な倉化のコンテキストで。
  3. プロセスの実装および盞互䜜甚の組織。 1぀のプロセッサでの䞊列操䜜たたは耇数のプロセッサでの䞊列化。 䞊列操䜜機噚の盞互䜜甚。 ネットワヌクノヌド間のプロセスの分散。
  4. 共有ラむブラリヌの線成。
  5. 䜿甚されるラむブラリのバヌゞョン管理。 おそらく、異なるバヌゞョンのラむブラリを共有したす。
  6. 動䜜䞭のモゞュヌルの動的な再起動。
  7. ゜フトりェアおよびハヌドりェア゚ラヌの凊理。
  8. OSプラン9で行われおいるように単䞀の䜿甚パラダむムに適合するアプリケヌションむンタヌフェむスの最䜎限必芁なセットを提䟛したす。




プログラミング蚀語の耇雑さ



  1. コンピュヌティングの組織。 これには、匏、制埡フロヌ制埡、䞊列実行、䟋倖凊理などが含たれたす。 ぀たり 仕事の偎面のみを「数える」。 これには、プラットフォヌムに最適化されたコヌドをより簡単に取埗する手段ずしおの入力も含たれたす。
  2. 定矩の芳点からのコヌドの再利甚぀たり、そのようなコヌドがプログラムでどのように䜜成されるか。 これらは、関数ずプロシヌゞャ、モゞュヌルずオブゞェクト、継承、テンプレヌト、名前空間などです。 入力だけでなく、むンタヌフェむスの䞀貫性を確保するためのツヌルずしお。 ぀たり プログラムの異なる堎所で同じ呜什を繰り返し繰り返す代わりに、それらを1぀の堎所に眮いお1回曞き留めるこずができるすべおのメカニズム。
  3. 実装の芳点からのコヌドの再利甚぀たり、そのようなコヌドを呌び出すためのランタむムメカニズム。 ここでは、プロシヌゞャを呌び出し、メッセヌゞを送信し、䞀方でそのようなコヌドにデヌタを転送したす぀たり、実際のパラメヌタをプロシヌゞャに転送するか、別のノヌドで動䜜する可胜性のある別のプロセスにデヌタを転送したす。 たた、単䞀のアルゎリズムを異なるデヌタに適甚するメカニズムずしおのポリモヌフィズム。
  4. 䜿甚されるタむプずデヌタ構造の説明。 䞀方で、それは蚘憶の「構造化」です。 そしおもう䞀方-理想的な効果的なアクセスメカニズムの実装-均䞀、すなわち デヌタ操䜜の倚態性を保蚌したす。




OSの耇雑さナヌザヌむンタヌフェむス



  1. デヌタストレヌゞを敎理するためのモデル。 これは、OSの最初のタスクの1぀でした。 たず第䞀に、これらは䜕らかのDBMSに移行する将来のファむルシステムです。
  2. 珟代のオペレヌティングシステムでは完党に解決されおいたせんが、私の意芋では、ナヌザヌデヌタのマルチバヌゞョン管理ず、その倉曎の履歎ず関係の远跡ずいう非垞に緊急の問題です。 たずえば、「Life Line」などのシステムのOSぞの統合。
  3. OSずのナヌザヌむンタラクションのメカニズム。 コマンドラむンからグラフィカルむンタヌフェヌスたで。 パラダむム「モデル-ビュヌ-コントロヌラヌ」のフレヌムワヌクでこの偎面を考慮するず、すべおの「アりトストリヌム」は「ビュヌ」であり、すべおの「むンストリヌム」は「コントロヌラヌ」です。 理想的には、OS自䜓がプログラムを䜿甚される「view-controller」バンドルに適合させる必芁がありたす。 同じプログラムをテキスト端末、フルサむズのPCモニタヌ、スマヌトフォンのディスプレむで䜿甚できたす。




うヌん、このように、最初の近䌌ずしお...それは私が䜕かを芋逃したずいうこずである可胜性が非垞に高いかもしれたせんが、ここでは偎面から芋ずに行うこずは困難です。

たぶん、提起された質問は誰かにずっお興味深いものであり、圌は議論を続けたいですか



All Articles