Кіріспе
Gecko (стильде ecko) – Mozilla компаниясы әзірлеген браузерлік қозғалтқыш. Ол Firefox браузерінде, Thunderbird электрондық пошта бағдарламасында және көптеген басқа жобаларда қолданылады. Gecko ашық интернет стандарттарын қолдау үшін жасалған, әртүрлі бағдарламалар веб-беттерді көрсету үшін және кейбір жағдайларда бағдарламаның өзінің пайдаланушы интерфейсін (XUL арқылы көрсету арқылы) іске асыру үшін оны пайдаланады. Gecko интернетке қосылған бағдарламаларда, мысалы, веб-браузерлерде, мазмұн көрсетуде және клиент/серверде кең ауқымда қолданылуы мүмкін, бай программалау API ұсынады. Gecko C++ және JavaScript тілдерінде жазылған, ал 2016 жылдан бастап Rust тілінде де жазылған. Бұл Mozilla Public License 2 нұсқасының шарттарына сәйкес тегін және ашық кодты бағдарламалық қамтамасыз ету. Mozilla Android-те оны қолдануды ресми түрде қолдайды.
Gecko (stylized as ɢecko) is a browser engine developed by Mozilla. It is used in the Firefox browser, the Thunderbird email client, and many other projects. Gecko is designed to support open Internet standards, and is used by different applications to display web pages and, in some cases, an application's user interface itself (by rendering XUL). Gecko offers a rich programming API that makes it suitable for a wide variety of roles in Internet enabled applications, such as web browsers, content presentation, and client/server. Gecko is written in C++ and JavaScript, and, since 2016, additionally in Rust. It is free and open source software subject to the terms of the Mozilla Public License version 2. Mozilla officially supports its use on Android,
Тарих
Gecko деп аталатын макет тетігін әзірлеу 1997 жылы Netscape компаниясы DigitalStyle сатып алғаннан кейін басталды. Netscape 1.0 Netscape Navigator үшін жазылған және жылдар бойы жаңартылған қолданыстағы Netscape рендеринг қозғалтқышы баяу болды, W3C стандарттарына толық сай келмеді, динамикалық HTML-ді шектеулі түрде қолдады және жаңа деректер жүктеліп, бетке қосылған кезде макет қозғалтқышы экран элементтерін қайта орналастыратын инкременттік қайта құру сияқты мүмкіндіктері болмады. Жаңа макет қозғалтқышы ескісімен қатар әзірленді, оны жетілген және тұрақты болған кезде Netscape Communicator-ға енгізу мақсатында жасалды. Ескі макет қозғалтқышымен Netscape-тің кем дегенде бір үлкен жаңартылуы күтілді. 1998 жылдың басында Mozilla жобасы іске қосылғаннан кейін жаңа макет қозғалтқышының коды ашық лицензия бойынша жарияланды. Алғаш Raptor деп аталған, сауда белгісіне қатысты мәселелерге байланысты атауы NGLayout (келесі буын макеті) деп өзгертілді. Кейін Netscape NGLayout-ты Gecko деп қайта атады. Mozilla ұйымы (Mozilla Foundation-ның алдағысы) бастапқыда NGLayout атауын қолдануды жалғастырды (Gecko – Netscape-тің сауда белгісі болғандықтан), бірақ ақырында Gecko бренді басым болды. 1998 жылдың қазан айында Netscape өзінің келесі браузері Gecko-ны (сол кезде NGLayout деп аталған) қолданатынын, бұл қолданбаның көп бөлігін қайта жазуды талап ететінін хабарлады. Бұл шешім веб-стандарттарын қолдайтындардың арасында ынталандырды, бірақ Netscape-тің әзірлеушілеріне ұнамады, олар қайта жазуға берілген алты ай мерзіміне қанағаттанбады. Firefox 57, сондай-ақ "Firefox Quantum" деп те аталатын, 2017 жылдың қарашасында шығарылған алғашқы нұсқа, Quantum/Servo жобаларының маңызды компоненттерін қосты. Оларға CSS және GPU рендерингінің өнімділігін арттыру кірді. Болашақ нұсқаларда Servo-дан қосымша компоненттер Gecko-ға біріктіріледі. GeckoView енгізілген бастапқы нұсқа, орташа беттерді жүктеу жылдамдығын арттырды. Firefox Reality де GeckoView-пен құрылды. Firefox for Android 79, сондай-ақ "Firefox Daylight" деп те аталатын, 2020 жылдың тамызында шығарылған GeckoView қозғалтқышымен жұмыс істейтін негізгі компоненттері бар тұрақты нұсқа.
Ескі IE стандартты емес қолдау
Netscape және Internet Explorer-дің ескі нұсқалары үшін жасалған веб-беттерді қолдау мақсатында Gecko DOCTYPE ауыстыруды қолдайды. Жаңа DOCTYPE форматындағы құжаттар стандартқа сай режимде көрсетіледі, бұл W3C стандарттарына қатаң түрде сәйкес келеді. DOCTYPE жоқ немесе ескі DOCTYPE форматындағы құжаттар ерекше режимде көрсетіледі, ол Netscape Communicator 4.x-тің стандартты емес ерекшеліктерін имитациялайды; алайда 4.x-тің кейбір мүмкіндіктері (мысалы, қабаттар) қолдау көрсетілмейді. Gecko сондай-ақ Internet Explorer-дің кейбір стандартты емес мүмкіндіктерін, мысалы, marquee элементі мен document.all қасиетін шектеулі түрде қолдайды (бірақ құжатты анық тексерген беттерге document.all қолдау көрсетілмейді деп хабарланады).
Қолданылуы
Gecko негізінен веб-браузерлерде қолданылады, ең алғашқысы Netscape 6 және Mozilla Suite (кейін SeaMonkey деп аталды). Ол сондай-ақ Firefox және Firefox for mobile сияқты басқа Mozilla веб-браузерлерінің түпнұсқаларында, сонымен қатар Wine құрамына кіретін Internet Explorer клонының іске асырылуында қолданылады. Mozilla оны Thunderbird электрондық пошта бағдарламасында да пайдаланады. Gecko-ны қолданатын басқа веб-браузерлерге GNU IceCat, Waterfox, K Meleon, Lunascape, Portable Firefox, Conkeror, Classilla, TenFourFox жатады. Gecko Sugar жүйесінде OLPC XO 1 компьютері үшін де қолданылады. Gecko XUL (XML User Interface Language) тілінің толыққанды іске асырылуы болып табылады. Gecko қазіргі таңда XUL спецификациясын анықтайды.
Бұрынғы пайдаланушылар
Бұрын Gecko қолданған өнімдерге Pale Moon (қазір Goanna қолданады), Epiphany (қазір GNOME Web деп аталады және WebKitGTK қолданады) және GNOME DevHelp (қазір WebKitGTK қолданады) кіреді. Қолдануы тоқтатылған Gecko қолданған өнімдерге Swiftfox, Flock, Galeon, Camino, Minimo, Beonex Communicator, Kazehakase, Songbird, Sunbird (күндік), MicroB, Nightingale, Instantbird және Linux жүйесі үшін Picasa жатады.
Меншікті тәуелділік
Windows және басқа платформаларда Gecko жабық кодты компиляторларға тәуелді. Сондықтан, Linux-тың FOSS дистрибутивтері Windows үйлесімділік қабаты Wine-да қолданылатын Gecko пакетін қоса алмайды. Gecko 2.0 нұсқасынан кейін нөмірі Firefox 5 нұсқасына сәйкес 5.0-ге дейін өсті, және содан бері Firefox пен Thunderbird-тің басты нөмірлерімен үйлесімді ұсталып келеді, бұл оның енді жеке компонент емес екенін көрсетеді.
Қалқыма
Netscape дәуірінде нашар техникалық және басқарушылық шешімдердің салдарынан Gecko бағдарламалық жасақтамасының көлемі артып, ауыр болды. Сондықтан 2001 жылы Apple Safari браузері үшін WebKit қозғалтқышын жасау үшін Gecko емес, KHTML-ді таңдады.
Кванттық
Quantum — Mozilla жобасы, ол Firefox қолданушылары үшін жаңа буын веб-қозғалтқышын құруға бағытталған бірнеше бағдарламалық жасақтаманы әзірлеу жұмыстарын қамтиды. Ол Gecko-ға көптеген жақсартуларды қосады, олардың көпшілігі тәжірибелік Servo жобасынан алынған. Quantum сонымен қатар пайдаланушы интерфейсі мен өзара әрекеттесуді жетілдіреді.
Өмірбаян
2012 жылы Mozilla эксперименталды Servo жобасын бастады, ол нөлден жасалған және қатарлы және параллель өңдеуді жақсартумен қатар, жад қауіпсіздігіндегі осалдықтарды азайту мақсатын көздейтін қозғалтқыш. Servo, Mozilla жасаған Rust бағдарламалау тілінде жазылған, ол компиляцияланған C++ кодына қарағанда жады қауіпсіздігі, қатарлы және параллель өңдеу жағынан артықшылықтары бар кодты құруға бағытталған. Осыдан келіп, Servo-ның тұрақты бөліктерін Firefox-қа енгізу үшін Quantum жобасын бастау туралы шешім қабылданды. Mozilla 2020 жылдың тамызында барлық Servo әзірлеушілерін жұмыстан босатты.
Құралымдары
Кванттық жоба бірнеше кіші жобалардан тұрады. Бұл Firefox 57 нұсқасында шығарылды. Mozilla Firefox 67 нұсқасында таңдалған аппараттық/операциялық жүйелер үшін жаңа рендерерді қосуды бастады. Композитор: Gecko-ның бұрынғы композиторы өз процесіне көшірілді, бұл браузер беттерін графикалық драйверлерге байланысты қателерден оқшаулады. Композитордың жұмысы тоқтаса, браузердің мазмұн процесі тоқтатылмайды, сондықтан композитор процесі пайдаланушы деректерін жоғалтпай, қайта іске қосылуы мүмкін. Бұл Firefox 53 нұсқасында шығарылды. DOM: Servo-ның Constellation архитектурасы және Opera-ның Presto қозғалтқышынан шабыттанған Quantum DOM, процестер санын және жадты көп пайдаланбастан, DOM ішінде кооперативті жоспарланған жіптерді пайдаланып, жауап беру жылдамдығын арттырады. Мұның негізгі бөлігі Firefox 57 нұсқасында орнатылды. Ағын: Gecko компоненттерімен жұмыс істейтін команда басқаратын, пайдаланушыға көрінетін өнімділікті жақсартуға бағытталған жиынтық. Негізгі веб-қосымшаларда, әсіресе G Suite (қазір Google Workspace деп аталады) және Facebook-та пайдаланушылардың нақты өнімділігін жақсартуға бағытталған. Бұл жұмыс Firefox 57 нұсқасы үшін аяқталды және шығарылды. Photon: UI өнімділігін жақсартуға баса назар аудара отырып, бүкіл қолданбаның интерфейсін жаңарту. Кванттық Ағынмен байланысты жоба ретінде қарастырылды. Бұл Firefox 57 нұсқасында шығарылды. Бұл мүмкіндік Firefox 59 нұсқасында шығарылды.
Көк түсті
Mozilla Azure жобасы – Firefox-та қолданылатын күйсіз, төмен деңгейлі графикалық абстракция API. Жобаның мақсаттарының ішінде Direct2D-мен дәл үйлесімділікті қамтамасыз ету, күйлердің өзара әрекеттесуін оңтайландыру және өнімділік ерекшеліктері мен қателерді жақсарту бар. Azure 3D графикалық жүйелердің үстінде 2D аппараттық үдетуді ұсынады. Firefox 2012 жылдан бастап Cairo-ның орнына Azure-ды пайдалана бастады. Ол C++ тілінде жазылған және Servo қолданады. Azure атауы Netscape-тің алғашқы негізін қалаушысы Джеймс Х. Кларкқа және оның Silicon Graphics компаниясындағы бұрынғы жұмысына құрмет көрсету үшін берілген, онда жұмыс станциялары көбінесе түстердің аттарымен аталатын.