WebOS Open Source Edition 2.10 αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžœαŸαž‘αž·αž€αžΆ

αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž“αŸƒαžœαŸαž‘αž·αž€αžΆαž”αžΎαž€αž…αŸ†αž  webOS Open Source Edition 2.10 αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ† αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž›αžΎαž§αž”αž€αžšαžŽαŸαž…αž›αŸαžαž•αŸ’αžŸαŸαž„αŸ— αž€αŸ’αžαžΆαžš αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αŸαžαŸŒαž˜αžΆαž“αžšαžαž™αž“αŸ’αžαŸ” αž€αŸ’αžαžΆαžš Raspberry Pi 4 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαž‡αžΆαžœαŸαž‘αž·αž€αžΆαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αž™αŸ„αž„αŸ” αžœαŸαž‘αž·αž€αžΆαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαžΆαž’αžΆαžšαžŽαŸˆαž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ Apache 2.0 αž αžΎαž™αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αžŸαž αž‚αž˜αž“αŸ αžŠαŸ„αž™αž”αŸ’αžšαž€αžΆαž“αŸ‹αžαŸ’αž‡αžΆαž”αŸ‹αž“αžΌαžœαž‚αŸ†αžšαžΌαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžšαž½αž˜αž‚αŸ’αž“αžΆαŸ”

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° webOS Π±Ρ‹Π»Π° ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Palm Π² 2008 Π³ΠΎΠ΄Ρƒ ΠΈ использовалась Π½Π° смартфонах Palm Pre ΠΈ Pixie. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ поглощСния ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Palm Π² 2010 Π³ΠΎΠ΄Ρƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠ΅Ρ€Π΅ΡˆΠ»Π° Π² Ρ€ΡƒΠΊΠΈ Hewlett-Packard, послС Ρ‡Π΅Π³ΠΎ HP ΠΏΡ‹Ρ‚Π°Π»Π°ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Π² своих ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π°Ρ…, ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π°Ρ…, Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ°Ρ… ΠΈ ПК. Π’ 2012 Π³ΠΎΠ΄Ρƒ компания HP анонсировала ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ webOS Π² нСзависимый ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π² 2013 Π³ΠΎΠ΄Ρƒ Π½Π°Ρ‡Π°Π»Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ исходных тСкстов Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π’ 2013 Π³ΠΎΠ΄Ρƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π±Ρ‹Π»Π° Π²Ρ‹ΠΊΡƒΠΏΠ»Π΅Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ LG Ρƒ Hewlett-Packard ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ примСняСтся Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 70 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°Ρ… Ρ‚Π΅Π»Π΅Π²ΠΈΠ·ΠΎΡ€ΠΎΠ² ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… устройств LG. Π’ 2018 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» основан ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ webOS Open Source Edition, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ компания LG ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»Π°ΡΡŒ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΡ… участников ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ спСктр ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π² webOS устройств.

αž”αžšαž·αžŸαŸ’αžαžΆαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’ webOS αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αž‰αŸ’αž…αž”αŸ‹αž§αž”αž€αžšαžŽαŸ OpenEmbedded αž“αž·αž„αž€αž‰αŸ’αž…αž”αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ αž€αŸαžŠαžΌαž…αž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαŸ’αžαžΆαž”αž“αžΆ αž“αž·αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆαžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž–αžΈαž‚αž˜αŸ’αžšαŸ„αž„ Yocto αŸ” αžŸαž˜αžΆαžŸαž’αžΆαžαž»αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž“αŸƒ webOS αž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’ αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ (SAM, System and Application Manager) αžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž›αžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž“αž·αž„ Luna Surface Manager (LSM) αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž‡αžΆαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ” αžŸαž˜αžΆαžŸαž’αžΆαžαž»αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎ Qt framework αž“αž·αž„ Chromium browser engineαŸ”

αž€αžΆαžšβ€‹αž”αž„αŸ’αž αžΆαž‰β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αž‘αžΎαž„β€‹αžαžΆαž˜β€‹αžšαž™αŸˆβ€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„β€‹αžŸαž˜αžΆαžŸαž’αžΆαžαž»β€‹αžŠαŸ‚αž›β€‹αž”αŸ’αžšαžΎβ€‹αž–αž·αž’αžΈαž€αžΆαžš Wayland αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž±αŸ’αž™αž”αŸ’αžšαžΎαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž‚αŸαž αž‘αŸ†αž–αŸαžš (CSS, HTML5 αž“αž·αž„ JavaScript) αž“αž·αž„ Enact framework αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ React αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž€αŸαž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ C αž“αž·αž„ C ++ αž‡αžΆαž˜αž½αž™αž“αžΉαž„ Interface αž•αŸ’αž’αŸ‚αž€αž›αžΎ Qt αž•αž„αžŠαŸ‚αžšαŸ” αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αž”αŸ‹ αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαžΎαž˜αžŠαŸ‚αž›αžŸαžšαžŸαŸαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ QML αŸ” αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ Home Launcher αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“ αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž’αŸαž€αŸ’αžšαž„αŸ‹αž”αŸ‰αŸ‡ αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž‚αŸ†αž“αž·αžαž“αŸƒαž•αŸ‚αž“αž‘αžΈαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž‚αŸ’αž“αžΆ (αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ windows) αŸ”

WebOS Open Source Edition 2.10 αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžœαŸαž‘αž·αž€αžΆ

αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž‡αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‘αž˜αŸ’αžšαž„αŸ‹ JSON αž€αžΆαžšαž•αŸ’αž‘αž»αž€ DB8 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎ αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ LevelDB αž‡αžΆαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ systemd αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαŸ” αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž„ uMediaServer αž“αž·αž„ Media Display Controller (MDC) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αžΆαžαž·αž€αžΆαž–αž αž»αž˜αŸαžŒαŸ€ PulseAudio αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŸαŸ†αž‘αŸαž„αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· OSTree αž“αž·αž„αž€αžΆαžšαž‡αŸ†αž“αž½αžŸαž—αžΆαž‚αžαžΆαžŸαž’αžΆαžαžΌαž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎ (αž—αžΆαž‚αžαžΆαžŸαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αžΈαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαž αžŠαŸ‚αž›αž˜αž½αž™αž‚αžΊαžŸαž€αž˜αŸ’αž˜ αž“αž·αž„αž‘αžΈαž–αžΈαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž…αž˜αŸ’αž›αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–)αŸ”

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžαŸ’αž˜αžΈαŸ–

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Storage Access, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ интСрфСйс для доступа ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, USB-Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΠΈ ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ систСмы хранСния (ΠΏΠΎΠΊΠ° поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Google Drive). Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ позволяСт Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, изобраТСния ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· всСх настроСнных ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² хранСния Π΄Π°Π½Π½Ρ‹Ρ….
  • Π’ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠΌ Π΄Π²ΠΈΠΆΠΊΠ΅ обСспСчСно Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ сСссионных ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Cookie Π² Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ сСрвис Peripheral Manager для управлСния ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌΠΈ устройствами, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ взаимодСйствиС с устройствами Ρ‡Π΅Ρ€Π΅Π· интСрфСйсы GPIO, SPI, I2C ΠΈ UART. БСрвис позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ управлСния Π½ΠΎΠ²Ρ‹ΠΌΠΈ устройствами Π±Π΅Π· измСнСния исходных тСкстов ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности ΠΌΠΎΠ΄Π΅Π»ΠΈ управлСния доступом ACG (Access Control Groups), примСняСмой для ограничСния ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ сСрвисов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Luna Bus. Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС Π½Π° ACG ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Ρ‹ всС старыС сСрвисы, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π½Π΅Π΅ использовалась старая модСль бСзопасности. Π˜Π·ΠΌΠ΅Π½Ρ‘Π½ синтаксис ΠΏΡ€Π°Π²ΠΈΠ» ACG.

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹