- Сопствени веб енџин и вишепроцесна архитектура са изолованим картицама.
- Застарела база из SerenityOS-а и селективно коришћење библиотека трећих страна.
- Компатибилност са линук, мацОС и виндовс (преко WSL2) и активне документације.
- Јасне смернице за допринос, пријављивање проблема и BSD лиценца са 2 клаузуле.
Пројекат Лабама је себи поставио изазов са којим се мало ко данас усуђује да се суочи: да направи прегледач са сопствени мотор од нуле, без поновног коришћења језгра других прегледача. То значи да се не ослања на Blink, WebKit или Gecko, већ тежи независној имплементацији која поштује модерне веб стандарде и која, са ел тиемпо, бити потпуно употребљив за прегледање без икаквог пропуштања.
Овај приступ подразумева веома специфичне архитектонске и развојне одлуке. С једне стране, приоритет је дат вишепроцесној структури која изолује критичне задатке као што су рендеровање, декодирање слика и мрежне везе, а са друге стране, изабрана је разумна комбинација застарелих власничких библиотека и компоненти трећих страна за заједничку функционалност. Генерално, циљ је направите „прави“ и потпуно независан прегледач, а не омотач преко рада других мотора.
Шта је бубамара и зашто је другачија?
Ладиберд није замишљена као лепа фасада над другим технологијама: то је прегледач са иновативни веб мотор Имплементиран је у складу са стандардима, циљајући на компатибилност и робусност. Одлука да се не позајмљује код из популарних претраживача поставља захтевне стандарде, али такође нуди потпуну контролу над сваким слојем система, од парсирања HTML-а и CSS-а до извршавања JavaScript-а и управљања DOM-ом.
Поред посвећености сопственом енџину, пројекат наглашава да у будућности неће усвојити ниједан други енџин. Ово није само декларација о намери; у пракси то значи да ће еволуција Ладиберд зависити од њеног способност имплементације и оптимизације сваке веб спецификације и архитектуру која олакшава безбедност и перформансе. То није лак пут, али јесте онај који гарантује истинску независност.
Тим има за циљ да прегледач иде даље од технолошке демонстрације. Њихов циљ је да испоруче комплетну, свакодневну апликацију са флуидним интерфејсом, изолацијом картица и чврстом основом за репродукцију медија, покретање скрипти и рендеровање сложених страница. поузданостСа тим циљем, стални преглед стандарда и тестирање у стварном свету је централни део рада, као и корисничке функције као што су синхронизација обележивача прегледача који олакшавају свакодневну употребу.
Однос са SerenityOS-ом и еволуција пројекта
Историјски гледано, Ladybird је делила ДНК са SerenityOS-ом, системом који се фокусира на развој готово свега од нуле. Због овог наслеђа, прегледач данас користи неколико библиотека из тог екосистема, што је омогућило брз напредак у аспектима као што су веб рендеровање, извршавање JavaScript-а и међупроцесна комуникација. Са раздвајањем у току (fork), Ladybird више није везан за филозофију „све од нуле“ и отворен је за библиотеке трећих страна за уобичајене задатке који нису његова диференцијална вредност.
Ова прагматична промена не противречи његовој независности као мотора: она једноставно препознаје да, за формате слика, звука или видеа, криптографију или графику, постоје зреле компоненте које вреди интегрисати. У ствари, пројекат већ користи неке од исте екстерне библиотеке које користе други успостављени прегледачи, резервишући домаћу конструкцију за језгро веб мотора.
Међу компонентама SerenityOS-а које данас чине део базе Бубамаре су следеће, а свака покрива кључни део слагалице:
- LibWeb: програм за веб рендеровање.
- LibJS: Јаваскрипт мотор.
- LibWasm: Имплементација WebAssembly-ја.
- LibCrypto/LibTLS: Криптографски примитиви и безбедност транспорта (TLS).
- LibHTTP: HTTP/1.1 клијент.
- LibGfx: 2D графичка библиотека, декодирање и рендеровање слика.
- LibUnicode: Подршка за Unicode и локалне стандарде.
- LibMedia: репродукција звука и видеа.
- LibCore: Петља догађаја и слој апстракције оперативног система.
- LibIPC: Међупроцесна комуникација.
Прелазак на независнији пројекат не брише ове темеље, али омогућава појединачну процену где би библиотеке трећих страна могле бити прикладне за интеграцију. Стога, за медијске формате, шифровање или графику, компатибилност и безбедност које пружају доказана решења су приоритет, док тим усмерава своје напоре на срце мотора и усклађеност са стандардима.
Вишепроцесна архитектура и безбедност
Ладиберд од самог почетка усваја вишепроцесну архитектуру. Постоји главни процес интерфејса (UI) који оркестрира корисничко искуство и координира са вишеструким процесима рендеровања веб садржаја. Свака картица ради у свом сопственом процесу рендеровања, што побољшава изолацију, стабилност и поузданост. безбедностЗахваљујући овом дизајну, квар на једној страници не би требало да повуче надоле остале, а прегледач може примени заштићено окружење по картици.
Поред процеса рендеровања, постоје и специјализовани процеси за осетљиве задатке. Један се бави декодирањем слика (ImageDecoder), а други обрађује мрежни саобраћај (RequestServer). Покретањем ових функција ван главног процеса, Ladybird смањује површину напада и побољшава отпорност на нападе. злонамерни садржајИдеја је да рањивост у декодирању слике или у руковању HTTP одговором не угрожава остатак система или цео прегледач.
Овај приступ раздвајању одговорности такође побољшава перформансе. Процеси могу бити заказани независно од стране оперативног система, изолујући велика оптерећења и избегавајући блокирање од стране главне нити. У пракси, ово резултира бржим одзивом интерфејса и већом отпорношћу када се одређена картица или сајт понашају неправилно. Стога, вишепроцесна архитектура постаје... стуб поузданости и одрживих перформанси.
Подржане платформе и корисничко искуство
Што се тиче подржаних система, Ladybird ради на Linux-у, macOS-у и Windows-у користећи WSL2, као и на другим оперативним системима. уникОва разноликост платформи је важна јер уклања баријеру за улазак програмерима и корисницима који желе да тестирају пројекат у свом уобичајеном окружењу. Без обзира да ли радите на десктоп Линуксу, користите macOS на лаптопу или развијате на Виндоусу са Линукс подсистемом, моћи ћете да покрени и процени Ладибирд без прекомерних компликација.
Корисничко искуство је засновано на раздвајању интерфејса и процеса обраде садржаја. Ово омогућава да главни прозор остане флуидан чак и када сложен сајт захтева много процесора или меморије. Истовремено, пројекат има за циљ да постигне „употребљиво“ стање за модерни веб, циљ који захтева полирање мотора, проширење подршке за стандарде и усавршавање репродукције медија, руковања фонтовима, распореда и извршавања. Интензивни ЈаваскриптДео тог искуства укључује управљање досадним елементима као што су попап рекламе који утичу на навигацију.
Израда и компилација пројекта
Ако желите сами да направите Ладиберд, тим се позива на упутства за изградњу пројекта. Тамо ћете пронаћи кораке и зависности потребне за припрему окружења, компајлирање различитих компоненти и покрените прегледачПошто је ово власнички мотор са неколико оркестрираних делова (кориснички интерфејс, рендерери, декодер слика, сервер захтева), кључно је пратити те смернице како би се осигурало да све функционише како треба.
Паралелно са тим, коришћење библиотека трећих страна за уобичајене функционалности (формати слика, звука и видеа; шифровање; графика итд.) поједностављује подршку за уобичајене случајеве употребе и избегава поновно измишљање топле воде. Ова равнотежа је кључна: независност мотора је очувана, али је убрзана подршка за помоћне технологије које чине навигацију одрживом од самог почетка. Очекивани резултат је... разумна крива инсталације и чвршћу техничку базу.
Документација и ресурси кода
Документација везана за код је централизована у фасцикли са документацијом репозиторијума. Она описује компоненте, интерне токове, конвенције и друге детаље неопходне за разумевање структуре пројекта и допринос променама. Ако сте нови у пројекту, добра је идеја да прегледате овај материјал како бисте стекли менталну мапу слојеви прегледача и њихова интеракција.
Комуникација заједнице се врти око Discord сервера, где се разматрају техничке одлуке, одговара на питања и координирају напори. Учешће тамо ће вам омогућити да из прве руке сазнате о приоритетима развоја, потражите смернице и предложите побољшања. То је корисно место сусрета и за оне који кодирају основни мотор и за оне који тестирају прегледач, пријављују грешке или дају предлоге. нове функционалности.
Како почети са доприносом и правила за проблеме
Ако је ово ваш први допринос, добра је идеја да прочитате водич за почетак доприноса. Овај документ објашњава како припремити окружење, који стил кода треба пратити, како организовати закрпе и каква су очекивања у погледу квалитета доприноса. Почетак кроз ова врата ће вам уштедети време и помоћи ће да ваше измене буду брже прегледане и прихваћене, јер прате критеријуме које је утврдио тим. примењује се у свакодневном животу.
Пре отварања проблема, пројекат вас тражи да прегледате његову политику проблема и детаљне смернице за пријављивање грешака. Ово осигурава да извештаји садрже довољно информација (кораци репродукције, окружење, релевантни логови) и да се постојећи захтеви не дуплирају. Придржавање ових стандарда смањује буку и оптимизује одговор тима, омогућавајући им да се фокусирају на стварне грешке и друге проблеме. најхитнији приоритети.
За опсежније измене, комплетне смернице за допринос су документоване у датотеци. CONTRIBUTING.md
Они одређују процесе прегледа, како структурирати измене (commit), који критеријуми се примењују у интеграцији и како координирати напоре како би се избегли сукоби грана или дуплирање рада. Праћење ових смерница је најефикаснији начин да убрзате свој допринос и одржите квалитет репозиторијума.
Коришћење библиотека трећих страна: прагматизам са осећајем сврхе
Након одвајања од SerenityOS-а као независног пројекта, Ladybird је себи дао слободу да укључи библиотеке трећих страна тамо где оне додају највећу вредност. У областима као што су декодирање формата слика (PNG, JPEG, итд.), аудио и видео контејнери, модерно шифровање и графички API-ји, заједница отвореног кода нуди добро проверене компоненте. Њихова интеграција не угрожава циљ изградње сопственог мотора; напротив, омогућава нам да већину труда посветимо његовој правилној имплементацији. HTML, CSS, JavaScript и WebAssembly.
Тим такође признаје да већ користи неке од истих библиотека које користе други прегледачи. Ово је позитивно: деле битке у областима где је стандард јасан и где има смисла додати зрелу основу. Обећање које остаје непромењено је да Ладиберд неће заменити свој мотор другим; независност од језгра је обележје пројекта, а употреба ресурса трећих страна је ограничена на оно што допуњује ту мисију, а не разводњава је. То је равнотежа која комбинује техничке амбиције и прагматизам.
Циљ: Комплетан прегледач за модерни веб
Хоризонт није скроман: изградња комплетног и употребљивог прегледача. То значи захтевне перформансе на сајтовима са тешким скриптама, подршку за сложене фонтове и типографију, распоред са модерним спецификацијама, поуздану репродукцију звука и видеа и стабилно понашање под оптерећењем. Да би се то постигло, Ladybird се ослања на своју вишепроцесну архитектуру и стални фокус на усклађеност са веб стандардима.
Паралелно, процес тестирања, повратне информације заједнице и структурирано извештавање о проблемима служе за откривање уских грла, празнина у компатибилности или регресија. Са сопственим мотором, сваки напредак консолидује разликујућу предност: интерно знање о томе како и зашто је сваки део имплементиран. На крају крајева, ово се преводи у платформу способну за иновације без зависности од темпа и одлука других мотора, одржавајући... аутономна мапа пута.
Лиценца и филозофија пројекта
Ладиберд је објављен под BSD лиценцом са 2 клаузуле. Овај избор олакшава усвајање и омогућава интеграцију прегледача или делова његовог стека у пројекте са различитим моделима лиценцирања. Комбинација отворености, независности од мотора и активне заједнице која дискутује на Дискорду и документима у репозиторијуму ствара окружење погодно за оне који желе да допринесу без непотребних трења. Ако цените пројекат који даје приоритет контроли језгра, поштовању стандарда и јасном ставу о безбедности, Ова лиценца се веома добро уклапа.
Пут Ладиберд није најкраћи, али нуди највише слободе на дужи рок. Механизам дизајниран од темеља, архитектура која раздваја критичне процесе, интелигентно коришћење екстерних библиотека за додатни рад и јасна правила доприноса дају пројекту јасан пут. Ако сте заинтересовани да га испробате, погледајте документацију, консултујте упутства за компајлирање и посетите Дискорд пројекта: тамо можете одговорити на питања, предложити идеје и из прве руке видети како се овај пројекат развија. заиста независан прегледач.
Страствени писац о свету бајтова и технологије уопште. Волим да делим своје знање кроз писање, и то је оно што ћу радити на овом блогу, показивати вам све најзанимљивије ствари о гаџетима, софтверу, хардверу, технолошким трендовима и још много тога. Мој циљ је да вам помогнем да се крећете у дигиталном свету на једноставан и забаван начин.