Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π¦ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΆΡƒΡ€Π½Π°Π» Β«ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ€Π°Β» β„– 74Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 2

Автор ΠšΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ² Авторов

ΠžΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос кроСтся Π² прогрСссС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ управляСмого выполнСния ΠΊΠΎΠ΄Π°. ΠžΡΠ½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° типобСзопасных языках, Ρ‚Π°ΠΊΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ Java ΠΈΠ»ΠΈ C#, ΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… runtime компиляторах, способных Β«Π½Π° Π»Π΅Ρ‚ΡƒΒ» Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π΄ΠΎΡ‚ΠΎΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π½Π° систСмах сборки мусора, ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‡ΠΈΡ‰Π°ΡŽΡ‰ΠΈΡ… ΠΏΠ°ΠΌΡΡ‚ΡŒ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π² послСднСС врСмя сдСлали гигантский скачок Π² ΠΏΠ»Π°Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½Π° соизмСрима с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ нСуправляСмого ΠΊΠΎΠ΄Π°.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ управляСмого выполнСния ΠΊΠΎΠ΄Π° β€” основа Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ систСмы Singularity. БазируСтся ΠΎΠ½ Π½Π° спСцификации Microsoft CLS (Common Language Specification), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ· ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ΠΈ вновь Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… языков программирования ΠΈ компиляторов для Π½ΠΈΡ…. Богласно CLS, эти компиляторы Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ нСуправляСмый ΠΊΠΎΠ΄, Π° ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½Π΅ΠΊΠΈΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° языкС MSIL (Microsoft Intermediate Language). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ с Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π° MISL ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ манифСст β€” ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‡Ρ‘Ρ‚ΠΊΠΎ описаны Π΅Ρ‘ Ρ‚ΠΈΠΏΡ‹, свСдСния ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° взаимодСйствия с Π½ΠΈΠΌΠΈ. Код MISL ΠΈ манифСст ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² исполняСмый PE (portable executable) Ρ„Π°ΠΉΠ».

Π”Π°Π»ΡŒΡˆΠ΅ происходит компиляция MISL-ΠΊΠΎΠ΄Π° Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, спСцифичный для систСмы ΠΊΠΎΠΌΠ°Π½Π΄ процСссора, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Singularity. Π—Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ этим процСссом ΠΈΠ»ΠΈ JIT-компилятор (just-in-time), Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для процСссора Β«Π½Π° Π»Π΅Ρ‚ΡƒΒ», ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ NGen (Native Image Generator), ΡΠΎΠ·Π΄Π°ΡŽΡ‰Π°Ρ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ исполняСмый ΠΎΠ±Ρ€Π°Π·. Π’Π°ΠΆΠ½Ρ‹ΠΌ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ JIT-компилятора, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ NGen создаваСмый ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ провСряСтся Π½Π° Ρ‚ΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. Π’ случаС Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ типобСзопасСн, ΠΎΠ½ исполняСтся, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС гСнСрируСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ ΠΏΡ€ΠΎΡˆΠ»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² свой исходный тСкст.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρ‡Ρ‘Ρ‚ΠΊΠΎ Π΄ΠΎΠΊΠ°Π·Π°Π½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² систСмы управляСмого выполнСния ΠΊΠΎΠ΄Π°. Π’ настоящСС врСмя Π² Singularity для процСссоров Intel x86 ΠΊΠΎΠ΄ MSIL компилируСтся Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ инструкции компилятором Bartok, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ Microsoft Research. ΠŸΡ€ΠΈ этом ΠΊΠΎΠΌΠ°Π½Π΄Π° Singularity исходит ΠΈΠ· прСдполоТСния, Ρ‡Ρ‚ΠΎ Bartok Π½Π΅ содСрТит ошибок ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ создаёт типобСзопасный ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.


Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ создан ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ассСмблСр TAL (Typed Assembly Language), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π² Π΅Ρ‘ типобСзопасности.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π΄Π°Π»Π΅Π΅: БистСма строгого Ρ€Π΅ΠΆΠΈΠΌΠ°: Microsoft Singularity (Ρ‡Π°ΡΡ‚ΡŒ 2)


К оглавлСнию

БистСма строгого Ρ€Π΅ΠΆΠΈΠΌΠ°: Microsoft Singularity (Ρ‡Π°ΡΡ‚ΡŒ 2)

Π•Π²Π³Π΅Π½ΠΈΠΉ Π›Π΅Π±Π΅Π΄Π΅Π½ΠΊΠΎ, Mobi.ru

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ 23 июня 2011 Π³ΠΎΠ΄Π°

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅. ΠŸΠ΅Ρ€Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ здСсь.

ΠœΠΈΠΊΡ€ΠΎΡΠ΄Ρ€ΠΎ Singularity ΠΈ SIP

Singularity β€” микроядСрная систСма. Π’Π΅ΡΡŒ ΠΊΠΎΠ΄ нСбольшого ΠΈ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Ρ‚ΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ микроядра Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ сво`ΠΌ написан Π½Π° языкС Sing# β€” подмноТСствС языка C#, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ для этой систСмы Π² Microsoft Research. Код ядра Π½Π΅ вСрифицируСтся ΠΏΠ΅Ρ€Π΅Π΄ исполнСниСм, поэтому ΠΎΠ½ называСтся Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ (trusted). Π’ΠΎΠΎΠ±Ρ‰Π΅-Ρ‚ΠΎ Π² ядрС Π΅ΡΡ‚ΡŒ нСбольшиС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ нСбСзопасного ΠΊΠΎΠ΄Π°, написанныС Π½Π° C++ ΠΈ ассСмблСрС, Π½ΠΎ ΠΎΠ½ΠΈ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² ΡƒΡ€ΠΎΠ²Π½Π΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… абстракций HAL.


БистСма Singularity β€” это микроядро, компиляторы MSIL ΠΈ мноТСство ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… процСссов (SIP)

Π―Π΄Ρ€ΠΎ содСрТит Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ для микроядра Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ², ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ процСссов, Π²Π²ΠΎΠ΄ΠΎΠΌ-Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ. К Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ относится ΠΈ run-time срСда β€” компиляторы Π² MSIL ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Код всСх запускаСмых Π² Singularity ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, сСрвисов ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² являСтся строго Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ.

Π›ΡŽΠ±Π°Ρ запускаСмая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»ΠΈ сСрвис с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Singularity являСтся SIP β€” Software Isolated Process (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ процСсс). Благодаря Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ типобСзопасности SIP Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² Β«ΠΊΠ»Π΅Ρ‚ΠΊΠ΅Β» ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ адрСсного пространства. Он сам Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ свою Π»ΠΎΡΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ β€” Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ цСлостности систСмы ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. А ΠΊΠ°ΠΊ ΠΆΠ΅ Π±Ρ‹Ρ‚ΡŒ с мСТпроцСссным взаимодСйствиСм? Π‘Π΅Π· Π½Π΅Π³ΠΎ Π² ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠΉ срСдС Π½ΠΈΠΊΡƒΠ΄Π°. Для взаимодСйствия SIP-ΠΎΠ² Singularity ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΊΠ°Π½Π°Π»ΠΎΠ², ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ΄ΠΈΠ½ SIP ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ сообщСния ΠΈ Π΄Π°Π½Π½Ρ‹Π΅. ΠšΠ°Π½Π°Π»Ρ‹ Π² Singularity высокоскоростныС ΠΈ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ нСбСзопасный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ раздСлСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах. SIP ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈ с микроядром Ρ‡Π΅Ρ€Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ интСрфСйс ABI (Application Binary interface), с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ΄ΠΈΠ½ SIP ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° состояниС Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ SIP.


SIP Π² Singularity самодостаточны. Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ² свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, SIP Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· мноТСства Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящих сборщиков мусора, очищая Π·Π° собой ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… SIP ΠΈ систСмы.

А ΠΊΠ°ΠΊ ΠΆΠ΅ Π±Ρ‹Ρ‚ΡŒ с Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ запускаСмых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ? Π—Π΄Π΅ΡΡŒ идСя состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ‚ΠΎΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ SIPΠΎΠ² с типобСзопасным ΠΊΠΎΠ΄ΠΎΠΌ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Singularity β€” это: микроядро, написанноС Π½Π° Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, трансляторы ΠΊΠΎΠ΄Π° MSIL ΠΈ компиляторы JIT (NGen), Ρ‚Π°ΠΊΠΆΠ΅ состоящиС ΠΈΠ· Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, мноТСство SIP Π½Π° основС Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ адрСсном пространствС, ΠΊΠ°Π½Π°Π»Ρ‹, ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ SIPΡ‹, ΠΈ интСрфСйс ABI, ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ SIP с ядром.

Π’ зависимости ΠΎΡ‚ потрСбностСй Π² процСссорном Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ SIP, диспСтчСр Π·Π°Π΄Π°Ρ‡ Singularity прСдоставляСт ΠΎΠ΄ΠΈΠ½ ΠΈΠ· пяти ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π² Π΅Π³ΠΎ распоряТСнии Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² планирования.

Π”Π°Π½Π½Ρ‹Π΅ SIPΠΎΠ² Ρ…Ρ€Π°Π½ΠΈΡ‚ SIP ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° β€” файловая систСма Boxwood, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°ΠΉΠ»Ρ‹ прСдставлСны Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ (B-tree).

ΠΠ΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ, связанная с установкой многочислСнных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ€Π°Π·Π½Ρ‹Ρ… частях систСмы, присущая Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам, Π² Singularity устраняСтся Π·Π° счёт использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ манифСста β€” ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‘Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π΅Ρ‘ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… рСсурсов ΠΈ зависимостСй ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. На основС манифСста Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΠΈ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈ установкС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ, ΠΏΡ€ΠΈ нСобходимости, ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ установку.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Singularity ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ программистам ΠΈ драйвСрописатСлям Singularity RDK, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ срСду создания ΠΈ ΠΎΠ±ΠΊΠ°Ρ‚ΠΊΠΈ своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, совмСстимых с Singularity. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° массС совмСстимых c CLS языков, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Singularity ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ компиляторы MSIL. К Π½ΠΈΠΌ относятся C#, F#, Perl ΠΈ Π΄Π°ΠΆΠ΅ COBOL.


ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ число компиляторов MSIL для Ρ€Π°Π·Π½Ρ‹Ρ… языков Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ Singularity. А это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊ систСмС мноТСства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Singularity вСсьма аскСтичСн ΠΈ ограничиваСтся ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой.



Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Singularity Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ вСсьма аскСтичСн. Но всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ носит ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€, ΠΈ Π½ΠΈ ΠΎ ΠΊΠ°ΠΊΠΎΠΌ коммСрчСском Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π΅Ρ‡ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΠ΄Ρ‘Ρ‚. Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΠΈ Singularity сСйчас ΡΡ‚Π°Ρ€Π°ΡŽΡ‚ΡΡ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ Ρƒ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ Ρƒ Π½ΠΈΡ….

ΠŸΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΡ‹ Singularity

АрхитСктурныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Singularity, Ρ€ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π½Π΅ Π½Π° пустом мСстС. На Π΅Ρ‘ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΎΠΊΠ°Π·Π°Π»ΠΈ влияниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Ρ‚Π°ΠΊΠΈΡ… микроядСрных Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, ΠΊΠ°ΠΊ L4, Exokernel ΠΈ SPIN. Однако Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… (ΠΊΡ€ΠΎΠΌΠ΅ Ρ€Π°Π·Π²Π΅ Ρ‡Ρ‚ΠΎ SPIN, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉ язык Modula-3) создано Π½Π° основС нСбСзопасного ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ для соврСмСнных систСм Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ раздСлСния адрСсных пространств процСссов.

ИдСя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° Π½Π° Ρ‚ΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, рСализованная Π² Singularity, пСрСкликаСтся с ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌΠΈ Π² Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, ΠΊΠ°ΠΊ JX, JavaOS, KaffeOS (язык Java), Inferno (язык Limbo) ΠΈ RMoX (язык occam-pi).

Π˜Ρ‚Π°ΠΊ, Microsoft Singularity β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· мноТСства ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΠΉ ΠΈ бСзопасной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈΠ»ΠΈ срСды исполнСния, надстраиваСмой Π½Π°Π΄ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ систСмами, Π½Π° основС изоляции процСссов ΠΏΡƒΡ‚Ρ‘ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΡ… ΠΊΠΎΠ΄Π° Π½Π° Ρ‚ΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. Благодаря Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌΡƒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ бСзопасных языков программирования ΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… срСд этот, ΠΏΠΎΠ½Π°Ρ‡Π°Π»Ρƒ чисто тСорСтичСский, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ становится всё Π±Π»ΠΈΠΆΠ΅ ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ коммСрчСским рСализациям. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Singularity, ΡΡ‚Π°Ρ€Π°ΡŽΡ‚ΡΡ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ способны ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ соврСмСнных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π°Π΄Ρ‘ΠΆΠ½ΡƒΡŽ ΠΈ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΡƒΡŽ срСду исполнСния ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.