Il-futur huwa diġà hawn jew kodiċi direttament fil-browser

Jien ngħidlek dwar sitwazzjoni umoristiċi li ġratli, u kif insir kontributur għal proġett famuż.

Ftit ilu kont qed nagħmel idea: nibbutja Linux direttament minn UEFI...
L-idea mhix ġdida u hemm numru ta’ manwali dwar dan is-suġġett. Tista' tara waħda minnhom hawn

Fil-fatt, it-tentattivi tiegħi fit-tul biex issolvi din il-kwistjoni rriżultaw f'formalizzata kompletament deċiżjoni. Is-soluzzjoni qed taħdem pjuttost u nużaha fuq xi wħud mill-magni tad-dar tiegħi. Din is-soluzzjoni hija deskritta fi ftit aktar dettall. hawn.

L-essenza ta 'UEFI-Boot hija li l-partizzjoni ESP (EFI System Partition) hija kkombinata mad-direttorju /boot. Dawk. il-kernels u l-immaġini bootstrap kollha (initrd) jinsabu fuq l-istess partizzjoni li minnha UEFI tista 'tniedi fajls eżekutibbli u, b'mod partikolari, tniedi boot loaders tas-sistema. Iżda l-kernel tal-Linux innifsu f'ħafna distribuzzjonijiet huwa diġà mmuntat bl-għażla UEFISTUB, li tippermetti li l-kernel innifsu jiġi mniedi minn UEFI.

Din is-soluzzjoni għandha mument wieħed spjaċevoli - il-partizzjoni ESP hija fformattjata f'FAT32, li fuqha huwa impossibbli li jinħolqu links iebsin (li s-sistema toħloq regolarment meta taġġorna l-initrd). U m'hemm xejn partikolarment kriminali dwar dan, iżda li tara twissijiet tas-sistema meta taġġorna l-komponenti tal-kernel mhix pjaċevoli ħafna...

Hemm mod ieħor.

Il-maniġer tal-boot UEFI (l-istess wieħed fejn għandek bżonn tirreġistra l-bootloader tal-OS) jista ', minbarra l-bootloaders/il-kernels tal-Linux, jgħabbi wkoll is-sewwieqa. Allura tista 'tagħbija s-sewwieq għas-sistema tal-fajls fejn għandek /boot u tagħbija l-kernel direttament minn hemm billi tuża UEFI. Is-sewwieq, ovvjament, jeħtieġ li jitqiegħed fil-partizzjoni ESP. Dan huwa bejn wieħed u ieħor dak li jagħmlu bootloaders bħal GRUB. Iżda l-qofol huwa li l-funzjonijiet kollha ta 'GRUB użati ta' spiss huma diġà fl-UEFI. B'mod aktar preċiż fil-maniġer tat-tniżżil tiegħu. U biex tkun saħansitra aktar boring, il-maniġer tal-boot UEFI għandu saħansitra aktar kapaċitajiet f'xi kwistjonijiet.

Jidher li hija soluzzjoni sabiħa, iżda hemm waħda "IMMA" (jew aħjar, kienet, iżda aktar dwar dan aktar tard). Il-fatt hu li s-sistema tas-sewwieq UEFI hija pjuttost sempliċi. M'hemm l-ebda ħaġa bħal immuntar ta 'sistema ta' fajls jew li jassoċjaw sewwieq ma 'apparat speċifiku. Hemm sejħa tas-sistema bl-isem konvenzjonali Mappa, li tieħu kull xufier wara xulxin u tipprova tassoċjaha ma 'kull, għall-inqas apparat adattat. U jekk is-sewwieq kien kapaċi jtella 'l-apparat, allura jinħoloq mapping - rekord ta' konnessjoni. Dan huwa eżattament kif is-sewwieq li għadu kif ġie mgħobbi għandu jiġi inizjalizzat f'munzeġġ komuni mal-oħrajn kollha. U kulma għandek bżonn huwa li tissettja bit wieħed (LOAD_OPTION_FORCE_RECONNECT) għal 1 fir-rekord tal-boot tas-sewwieq u UEFI se tagħmel dan il-mappa globali wara li tgħabbiha.

Iżda dan mhux daqshekk faċli li tagħmel. L-utilità standard efibootmgr (li tintuża biex tikkonfigura l-maniġer tal-offload UEFI) ma tafx kif (jew aħjar, ma kinitx taf kif) tissettja dan il-bit. Kelli ninstallah manwalment permezz ta 'proċedura pjuttost ikkumplikata u perikoluża.

U għal darb'oħra, wara li ppruvajt nagħmilha b'idejja, ma stajtx niflaħha u fformalizzajt kwistjoni fuq GitHub titlob lill-iżviluppaturi biex iżidu din il-karatteristika.

Għaddew diversi jiem, iżda ħadd ma ta kas tat-talba tiegħi. U bil-kurżità, ħarist lejn il-kodiċi tas-sors... I forked dan, u dehret fuq irkopptejn tiegħi kif inżid din il-karatteristika... "Fuq irkopptejn tiegħi" għax ma installajt xejn bħal dak u editjat is-sors kodiċi direttament fil-browser.

Naf C (il-lingwa tal-ipprogrammar) b'mod superfiċjali ħafna, imma fassalt soluzzjoni approssimattiva (l-aktar kopja-pejst)... u mbagħad ħsibt - għall-inqas probabbilment għandi ħafna żbalji hemmhekk (tentattivi fil-passat tiegħi biex jeditja xi ħadd ieħor Il-kodiċi C tlestew madwar l-10 darba) ser noħroġ Pull Request. Ukoll ddisinjat.

U hemm Travis CI irriżulta li kien imwaħħal biex jiċċekkja t-talbiet tal-ġibda. U qalli b’diliġenza l-iżbalji kollha tiegħi. Ukoll, jekk ikun hemm żbalji magħrufa, m'hemmx għalfejn tissewwa: għal darb'oħra, dritt fil-browser, u mar-raba' tentattiv il-kodiċi ħadem (kisba għalija).

U hekk, mingħajr ma nħalli l-browser, ifformattjat Pull Request reali ħafna f'utilità li tintuża fi kważi d-distribuzzjonijiet moderni kollha tal-Linux.

Kont sorpriż bil-fatt li, mingħajr ma naf verament il-lingwa, mingħajr ma nwaqqaf xejn (id-dipendenzi jeħtieġu pjuttost ftit libreriji għall-assemblaġġ), u mingħajr qatt ma nħaddem il-kompilatur, sempliċement "kodifikajt" karatteristika li taħdem kompletament u utli fil- browser .

Madankollu, it-talba tiegħi baqgħet ma tirreaġixxix mid-19 ta’ Marzu, 2019, u kont diġà bdejt ninsa dwarha.

Iżda lbieraħ din it-talba ġiet miżjuda mal-kaptan.

Allura x'inhi l-istorja tiegħi? U qed jitkellem dwar il-fatt li, fil-qafas tat-teknoloġiji moderni, irriżulta li kodiċi reali diġà jista 'jinkiteb fil-browser, mingħajr ma jiġu skjerati xi għodda ta' żvilupp u dipendenzi lokalment.

Barra minn hekk, irrid nammetti, din hija diġà t-tieni talba tiegħi ta 'ġibda għal utilitajiet magħrufa (għall-inqas f'ċrieki dojoq). L-aħħar darba, it-talba tiegħi biex tikkoreġi l-wiri ta 'xi oqsma fl-interface tal-web SyncThing rriżultat fl-editjar tiegħi litteralment f'linja waħda f'ambjent li ma naf xejn.

Utenti reġistrati biss jistgħu jipparteċipaw fl-istħarriġ. Idħol, ta 'xejn.

Għandi nikteb aktar jew le?

  • iva

  • mhux worth it

294 utent ivvutaw. 138-il utent astjenew.

Sors: www.habr.com

Żid kumment