Kahareupna geus aya di dieu atawa kode langsung dina browser nu

Kuring gé ngabejaan Anjeun tentang kaayaan lucu anu lumangsung ka kuring, sarta kumaha carana jadi kontributor pikeun proyék kawentar.

Teu lami kapengker kuring nuju mikiran ide: booting Linux langsung tina UEFI ...
Idena henteu énggal sareng aya sababaraha manual ngeunaan topik ieu. Anjeun tiasa ningali salah sahijina di dieu

Sabenerna, usaha lila-ngadeg kuring pikeun ngabéréskeun masalah ieu nyababkeun lengkep formalized solusi. Leyuran ieu rada bisa dipake jeung kuring make eta dina sababaraha mesin imah kuring. Leyuran ieu dijelaskeun dina leuwih jéntré saeutik. di dieu.

Intina UEFI-Boot nyaéta yén partisi ESP (EFI System Partition) digabungkeun sareng diréktori / boot. Jelema. sadaya kernels sareng gambar bootstrap (initrd) aya dina partisi anu sami dimana UEFI tiasa ngaluncurkeun file anu tiasa dieksekusi sareng, khususna, ngajalankeun sistem boot loader. Tapi kernel Linux sorangan dina seueur distribusi parantos dirakit sareng pilihan UEFISTUB, anu ngamungkinkeun kernel sorangan diluncurkeun tina UEFI.

Solusi ieu ngagaduhan hiji waktos anu teu pikaresepeun - partisi ESP diformat dina FAT32, dimana mustahil pikeun nyiptakeun tautan keras (anu sistem sacara teratur nyiptakeun nalika ngamutahirkeun initrd). Sareng teu aya anu khusus kriminal ngeunaan ieu, tapi ningali peringatan sistem nalika ngamutahirkeun komponén kernel henteu pikaresepeun pisan ...

Aya jalan sejen.

Manajer boot UEFI (sarua dimana anjeun kedah ngadaptarkeun bootloader OS) tiasa, salian ti bootloader / kernel Linux, ogé ngamuat supir. Janten anjeun tiasa ngamuat supir pikeun sistem file dimana anjeun gaduh / boot sareng ngamuat kernel langsung ti dinya nganggo UEFI. Supir, tangtosna, kedah ditempatkeun dina partisi ESP. Ieu kasarna naon bootloaders kawas GRUB ngalakukeun. Tapi sorotan nyaéta yén sadaya fungsi GRUB anu sering dianggo parantos aya dina UEFI. Leuwih tepat dina manajer download na. Sareng janten langkung pikaboseneun, manajer boot UEFI gaduh langkung seueur kamampuan dina sababaraha hal.

Sigana mah solusi geulis, tapi aya hiji "TAPI" (atawa rada, éta, tapi nu langkung lengkep ihwal nu engké). Kanyataanna nyaéta sistem supir UEFI cukup saderhana. Henteu aya hal sapertos masang sistem file atanapi ngahubungkeun supir sareng alat khusus. Aya telepon sistem kalayan nami Peta konvensional, anu nyandak unggal supir dina gilirannana sareng nyobian ngahubungkeun sareng sadayana, sahenteuna alat anu cocog. Sareng upami supir tiasa nyandak alat, maka pemetaan didamel - rékaman nyambungkeun. Ieu persis kumaha supir anyar dimuat kudu initialized dina numpuk umum kalawan sakabeh lianna. Sareng sadaya anu anjeun peryogikeun nyaéta set hiji bit (LOAD_OPTION_FORCE_RECONNECT) ka 1 dina catetan boot supir sareng UEFI bakal ngalakukeun remap global ieu saatos ngamuat.

Tapi ieu teu jadi gampang pikeun ngalakukeun. Utilitas efibootmgr standar (anu dianggo pikeun ngonpigurasikeun manajer offload UEFI) henteu terang kumaha (atanapi langkungna, henteu terang kumaha) nyetél bit ieu. Kuring kungsi masang eta sacara manual ngaliwatan prosedur rada pajeulit jeung bahaya.

Sareng sakali deui, saatos nyobian ngalakukeun éta ku panangan, kuring henteu tahan sareng formal masalah dina GitHub nanyakeun pamekar pikeun nambahkeun fitur ieu.

Sababaraha poé kaliwat, tapi euweuh merhatikeun pamundut kuring. Sareng panasaran, kuring ningal kodeu sumberna ... Kuring ngémutan éta, sareng terang dina tuur kumaha cara nambihan fitur ieu ... "Dina tuur kuring" sabab kuring henteu masang anu sapertos kitu sareng ngédit sumberna. kode langsung dina browser nu.

Kuring terang C (basa pamrograman) sacara deet pisan, tapi kuring ngadamel sketsa solusi perkiraan (kalobaannana nyalin-témpél) ... Kode C parantos réngsé ngeunaan waktos ka-10) Abdi badé ngaluarkeun Permintaan Tarik. Muhun dirarancang.

Tur aya Travis CI tétéla napel mariksa requests tarikan. Sarta anjeunna rajin ngabejaan kuring sagala kasalahan kuring. Nya, upami aya kasalahan anu dipikanyaho, teu kedah ngalereskeunana: deui, leres dina browser, sareng dina usaha kaopat kodeu damel (hiji prestasi pikeun kuring).

Sareng sapertos kitu, tanpa ngantunkeun browser, kuring pormat Permintaan Tarik anu nyata pisan kana utilitas anu dianggo dina ampir sadaya distribusi Linux modern.

Kuring kaget ku kanyataan yén, tanpa leres-leres terang basana, tanpa nyetél nanaon (katergantungan ngabutuhkeun sababaraha perpustakaan pikeun ngarakit), sareng tanpa kantos ngajalankeun kompiler, kuring ngan saukur "disandi" fitur anu tiasa dianggo sareng mangpaat dina éta. browser .

Nanging, pamenta kuring tetep henteu ngaréspon ti saprak 19 Maret 2019, sareng kuring parantos mimiti hilap.

Tapi kamari pamundut ieu ditambahkeun kana master.

Janten naon carita kuring? Sareng anjeunna nyarioskeun kanyataan yén, dina kerangka téknologi modéren, tétéla yén kode nyata parantos tiasa diserat dina browser, tanpa nganggo alat-alat pangwangunan sareng katergantungan sacara lokal.

Leuwih ti éta, kuring kudu ngaku, ieu geus pamundut narik kadua kuring pikeun well-dipikawanoh (sahenteuna dina bunderan sempit) Utiliti. Kapungkur, pamundut kuring pikeun ngabenerkeun tampilan sababaraha widang dina antarmuka wéb SyncThing nyababkeun éditan hiji-baris sacara harfiah dina lingkungan anu kuring henteu terang pisan.

Ngan pamaké nu kadaptar bisa ilubiung dina survey. Daptar, Punten.

Naha kuring kedah nyerat langkung seueur atanapi henteu?

  • nuhun

  • teu patut eta

294 pamaké milih. 138 pamaké abstained.

sumber: www.habr.com

Tambahkeun komentar