ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ часто Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ экосистСму 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΡƒΡŽ Β«Ρ‡Π΅Ρ€Π½ΡƒΡŽ ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒΒ», Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ происходят Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ магичСскиС процСссы. Однако для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ систСмных администраторов критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ строится вся эта мощная инфраструктура Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. Вопрос ΠΎ Ρ‚ΠΎΠΌ, Π½Π° Ρ‡Π΅ΠΌ написана 1Π‘, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° Π² стилС «это просто C++Β» ΠΈΠ»ΠΈ «это чистый JavaΒ», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ систСма прСдставляСт собой слоТный Π³ΠΈΠ±Ρ€ΠΈΠ΄ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, созданный Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ… дСсятилСтий ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ.

АрхитСктура систСмы дСлится Π½Π° Π΄Π²Π΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ части: ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° β€” это Π±Π°Π·Π°, написанная прСимущСствСнно Π½Π° Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… языках для обСспСчСния максимальной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ кроссплатформСнности. ΠŸΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΆΠ΅ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ взаимодСйствуСт программист 1Π‘, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ собствСнный высокоуровнСвый ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык. ПониманиС этой Π΄ΠΈΡ…ΠΎΡ‚ΠΎΠΌΠΈΠΈ позволяСт Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Π΄Π΅Π³Ρ€Π°Π΄Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

БоврСмСнная вСрсия ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ»Π° Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, пСрСйдя ΠΎΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Windows-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ кроссплатформСнной срСдС. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ пСрСписывания Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ части ядра ΠΈ создания Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² исполнСния ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows, Ρ‚Π°ΠΊ ΠΈ Π² срСдС Linux ΠΈΠ»ΠΈ macOS. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ тСхничСскиС ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ этой систСмы.

АрхитСктурноС ядро ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8 Π±Ρ‹Π» Π·Π°Π»ΠΎΠΆΠ΅Π½ Π½Π° языкС C++. ИмСнно этот язык обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, эффСктивноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами ΠΈ прямой доступ ΠΊ систСмным API ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм. ИспользованиС C++ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ„ΠΈΡ€ΠΌΡ‹ Β«1Π‘Β» ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ абстрагируСтся ΠΎΡ‚ особСнностСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ОБ, прСдоставляя ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌΡƒ ΡƒΡ€ΠΎΠ²Π½ΡŽ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ интСрфСйс для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой, ΡΠ΅Ρ‚ΡŒΡŽ ΠΈ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

Однако ядро систСмы Π½Π΅ ограничиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ статичСски ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠΈ, особСнно связанная с динамичСскими Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒΡŽ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° с использованиСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², совмСстимых со стандартами COM ΠΈ собствСнными ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ динамичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ внСшниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π±Π΅Π· нСобходимости пСрСкомпиляции основного исполняСмого Ρ„Π°ΠΉΠ»Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Linux-вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π» создания ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ слоя совмСстимости. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ стали ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь ΠΊΠΎΠ΄ C++ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π° Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΈ критичСски Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ядра, пСрСписав ΠΈΡ… с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ спСцифики POSIX-совмСстимых систСм.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° C++ для Linux-вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ строго ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ соглашСния ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°Ρ… ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ бинарная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Windows-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ отсутствуСт.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ ядро прСдставляСт собой слоТный ΠΊΠΎΠ½Π³Π»ΠΎΠΌΠ΅Ρ€Π°Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π½Π° C++, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ процСссоров (x86, x86_64, ARM). ИмСнно эта Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ‚Π°ΠΊΠΈΠ΅ тяТСлыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°Π±ΠΎΡ‚Ρƒ с большими массивами Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ интСрфСйса Π² толстом ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

πŸ’‘

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ сСрвСра для 1Π‘ ΠΎΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ процСссорам с высокой частотой Π½Π° ΠΎΠ΄Π½ΠΎ ядро, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ критичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ядра Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ Ρ€Π°ΡΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ.

ВстроСнный язык программирования 1Π‘

Когда ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, Β«Π½Π° Ρ‡Π΅ΠΌ ΠΏΠΈΡˆΡƒΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² 1Π‘Β», ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅ΠΌ встроСнный язык ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ Π½Π΅ классичСский язык программирования Π² акадСмичСском ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ, Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ скриптовый язык. Π•Π³ΠΎ синтаксис максимально ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ ΠΊ СстСствСнному русскому языку, Ρ‡Ρ‚ΠΎ сниТаСт ΠΏΠΎΡ€ΠΎΠ³ Π²Ρ…ΠΎΠ΄Π° для спСциалистов Π±Π΅Π· Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ тСхничСского бэкграунда, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π±ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€Ρ‹ ΠΈΠ»ΠΈ экономисты.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° языкС 1Π‘ Π½Π΅ компилируСтся Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. ВмСсто этого ΠΎΠ½ транслируСтся Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ прСдставлСниС β€” Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ исполняСтся Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Β«Π½Π° Π»Π΅Ρ‚ΡƒΒ» Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия (ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²), ΠΈ систСма сразу ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ измСнСния Π±Π΅Π· Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ пСрСсборки.

Π―Π·Ρ‹ΠΊ являСтся строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² контСкстС соврСмСнных вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, хотя историчСски ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π» ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΈΠ»ΠΈ РСгистр свСдСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° транслируСт Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘Π£Π‘Π”.

πŸ“Š Какой Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ΄ΠΎΠΌ Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅?
Π’ΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚
Волстый ΠΊΠ»ΠΈΠ΅Π½Ρ‚
Π’Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚
МобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, скрипты 1Π‘ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΉ пСсочницС. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ прямого доступа ΠΊ памяти процСсса ΠΈΠ»ΠΈ систСмным Π²Ρ‹Π·ΠΎΠ²Π°ΠΌ ОБ, Ссли это явно Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ. Вакая изоляция критичСски Π²Π°ΠΆΠ½Π° для бСзопасности Π΄Π°Π½Π½Ρ‹Ρ…, особСнно Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… срСдах.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ компиляции ΠΈ исполнСния ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΎΡ†Π΅ΡΡ прСвращСния тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² исполняСмыС инструкции Π² 1Π‘ ΠΈΠΌΠ΅Π΅Ρ‚ свои ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ особСнности. Когда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ сохраняСт ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅, происходит синтаксичСский ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ компиляция. Однако ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ оптимизация ΠΈ гСнСрация исполняСмого ΠΊΠΎΠ΄Π° происходят Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ запуска ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ (Just-In-Time) для критичСски Π²Π°ΠΆΠ½Ρ‹Ρ… участков ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ позволяСт Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ частоту выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈΠ»ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ΄ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ. Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ слоТный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ расчСта сСбСстоимости, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° постараСтся ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивный Π½Π°Π±ΠΎΡ€ инструкций процСссора.

Π­Ρ‚Π°ΠΏ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π“Π΄Π΅ происходит Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
БинтаксичСский ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ ссылок
Врансляция ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ / ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ГСнСрация Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° (vmcode)
Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡ Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина ПошаговоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ инструкций
JIT-компиляция Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ горячих участков ΠΊΠΎΠ΄Π°

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² исполнСнии ΠΊΠΎΠ΄Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈ Π½Π° сСрвСрС. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ (Π² Ρ„ΠΎΡ€ΠΌΠ΅) выполняСтся Π² контСкстС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ мСста ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ доступ ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ рСсурсам (Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ), Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ сСрвСрный ΠΊΠΎΠ΄ исполняСтся Π² процСссС сСрвСра 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π±Π°Π·Ρ‹ ΠΈ сСрвисами.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠΎΠ΄ Π½Π° сСрвСрС выполняСтся быстрСС?

Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ выполняСтся Π² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ процСссС Π±Π΅Π· Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° отрисовку интСрфСйса ΠΈ взаимодСйствиС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Ρ‡Ρ‚ΠΎ сниТаСт Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ.

Π Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π‘Π£Π‘Π”

Одной ΠΈΠ· самых ΡΠΈΠ»ΡŒΠ½Ρ‹Ρ… сторон ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ являСтся встроСнный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ абстрагируСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ систСмы управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠ°ΠΊ с собствСнной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π‘Π£Π‘Π”, Ρ‚Π°ΠΊ ΠΈ с ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹ΠΌΠΈ сСрвСрами Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…: PostgreSQL, Microsoft SQL Server ΠΈ Oracle Database.

Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ запросов 1Π‘ транслируСт запросы, написанныС Π½Π° встроСнном языкС запросов, Π² Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ SQL Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π‘Π£Π‘Π”. Π­Ρ‚ΠΎ слоТный процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠ»Π°Π½ΠΎΠ² выполнСния, расстановку индСксов ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ 1Π‘ Ρ€Π΅Π΄ΠΊΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ чистый SQL, полагаясь Π½Π° ΠΌΠΎΡ‰ΡŒ конструктора запросов.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ‚Π°Π±Π»ΠΈΡ† Π² Π‘Π£Π‘Π” гСнСрируСтся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ автоматичСски ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ измСнСния. ΠŸΡ€ΡΠΌΠΎΠ΅ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π² схСму Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· SQL-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ нСработоспособности ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈ использовании Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ вСрсии Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… всС Π΄Π°Π½Π½Ρ‹Π΅ хранятся Π² спСциализированных Ρ„Π°ΠΉΠ»Π°Ρ… с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .1CD (для Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈ .1DD (для структуры). Π’ этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° сама выступаСт Π² Ρ€ΠΎΠ»ΠΈ Π‘Π£Π‘Π”, рСализуя ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΈ цСлостности Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ своих Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎ количСству ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Для ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΉ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся использованиС ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, Π³Π΄Π΅ тяТСлая lifting-опСрация ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ лоТится Π½Π° ΠΏΠ»Π΅Ρ‡ΠΈ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΉ Π‘Π£Π‘Π”. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΡƒΠΌΠ΅Π΅Ρ‚ эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ возмоТности соврСмСнных Π‘Π£Π‘Π”, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов ΠΈ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†.

ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ Π²Π΅Π±-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π‘ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ вСрсии 8.3.10 ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ², Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° 1Π‘ ΠΏΡ€Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π»Π° измСнСния, позволившиС Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Π½Π° Linux ΠΈ macOS. Π­Ρ‚ΠΎ стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ благодаря ΠΎΡ‚ΠΊΠ°Π·Ρƒ ΠΎΡ‚ зависимостСй, спСцифичных Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Windows, ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ядро ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ содСрТит ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, скомпилированныС ΠΏΠΎΠ΄ Ρ€Π°Π·Π½Ρ‹Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΡ€ΠΈ запускС.

ОсобоС мСсто Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ толстого ΠΈ Ρ‚ΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ прилоТСниями, Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Для этого ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ 1Π‘ Π² срСдС JavaScript. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ транслятор ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π² JavaScript-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ исполняСтся Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (V8 Π² Chrome, SpiderMonkey Π² Firefox).

β˜‘οΈ ВрСбования для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Π­Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ свои ограничСния. НС всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ доступны Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, особСнно Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ прямого доступа ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ спСцифичСским Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌ оборудования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сканСрам ΡˆΡ‚Ρ€ΠΈΡ…-ΠΊΠΎΠ΄Π° Π±Π΅Π· использования Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°). Однако для Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… офисных Π·Π°Π΄Π°Ρ‡ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ обСспСчиваСт ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° автоматичСски скроСт Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты интСрфСйса ΠΈΠ»ΠΈ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹Π·ΠΎΠ²Π°.

Π Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

НСсмотря Π½Π° ΠΌΠΎΡ‰ΡŒ встроСнного языка, ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ»ΠΈ нСэффСктивно Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ срСдствами 1Π‘. Для Ρ‚Π°ΠΊΠΈΡ… случаСв прСдусмотрСна ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Π­Ρ‚ΠΎ динамичСскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (DLL Π² Windows, SO Π² Linux), написанныС Π½Π° C++, C# ΠΈΠ»ΠΈ Delphi, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ становятся доступны ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ встроСнного языка.

Π§Π΅Ρ€Π΅Π· внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ слоТныС матСматичСскиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ со спСцифичСским ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ взаимодСйствиС с API сторонних сСрвисов, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π΅ спСцифичСских ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° прСдоставляСт стандартный интСрфСйс для взаимодСйствия, позволяя ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ скриптом 1Π‘ ΠΈ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

Π’Π°ΠΊΠΆΠ΅ сущСствуСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π±Π΅Π· измСнСния ΠΈΡ… исходного ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· систСму событий ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², встроСнных Π² ядро ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ вмСстС с основной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ, Π½ΠΎ хранятся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ процСсс обновлСния Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² ΠΎΡ‚ Ρ„ΠΈΡ€ΠΌΡ‹ Β«1Π‘Β».

πŸ’‘

ИспользованиС Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ встроСнного языка нСдостаточна для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ трСбуСтся доступ ΠΊ нСдоступному API.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ 1Π‘ Π½Π° английском языкС?

Бинтаксис языка 1Π‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ русскиС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова (Если, Π’ΠΎΠ³Π΄Π°, ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ). Однако Π² послСдних вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ появилась ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° английских синонимов для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, Π½ΠΎ полноцСнная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° английском Π½Π΅ прСдполагаСтся Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ языка.

На ΠΊΠ°ΠΊΠΎΠΌ языкС написан сам ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ 1Π‘?

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°, ΠΊΠ°ΠΊ ΠΈ всСго прилоТСния, написан прСимущСствСнно Π½Π° C++ с использованиСм собствСнных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π­Ρ‚ΠΎ обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ отрисовки Ρ„ΠΎΡ€ΠΌ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ большом количСствС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΎΠΊΠΎΠ½ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΠΎΡ‡Π΅ΠΌΡƒ 1Π‘ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π°Π·Π°Ρ…?

Π—Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ Ρ‡Π°Ρ‰Π΅ всСго связано Π½Π΅ с языком программирования, Π° с Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ запросами ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, отсутствиСм индСксов ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ записСй. Π―Π·Ρ‹ΠΊ 1Π‘ достаточно ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅Π½, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠ³ΠΎ проСктирования структуры Π΄Π°Π½Π½Ρ‹Ρ….

МоТно Π»ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ 1Π‘ Π² exe-Ρ„Π°ΠΉΠ»?

НСт, ΠΊΠΎΠ΄ 1Π‘ Π½Π΅ компилируСтся Π² ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ всСгда трСбуСтся установлСнная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅, которая выступаСт Π² Ρ€ΠΎΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ Java Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘?

ΠŸΡ€ΡΠΌΠΎΠ΅ использованиС Java Π² ядрС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ минимально. Основная Π»ΠΎΠ³ΠΈΠΊΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° C++. Однако для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Java-сСрвисами ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… срСдах ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ JNI-мосты, Π½ΠΎ это Π½Π΅ являСтся Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.