Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.

TL;DR: Haiku — operatsioonisĂŒsteem, mis on spetsiaalselt kavandatud isiklikele arvutitele, mistĂ”ttu on sellel mitu nĂ”ksu, mis muudavad töö keskkonna palju paremaks kui teised. Kuidas see aga töötab?

Hiljuti Avastasin Haiku, ĂŒllatavalt hea sĂŒsteemi. Olen siiani rabatud selle sujuvast toimimisest, eriti vĂ”rreldes Linuxi töö keskkondadega. TĂ€na uurin, mida kĂ”ike see endast kujutab. Seal, kus see on vajalik sĂŒvitsi minekuks, teen vĂ”rdluse originaalse Macintosh'i, Mac OS X ja Linuxi töö keskkondadega (freedesktop.org'i standard XDG).

Ressursid ELF failides

Eile sain teada, et IconOMatic suudab salvestada ikoone rdef ressurssides ELF tÀidesaatvates failides. TÀna tahan vaadata, kuidas see tegelikult töötab.

Ressursid? Tsitaat alates Bruce Horn, originaalse Macintosh Finderi looja ja Macintosh Resource Manageri “isa”:

Mind hĂ€irib traditsioonilise koodikirjutamise jĂ€ik iseloom. Minu jaoks on idee rakendusest, mis on kĂŒlmutatud koodis, ilma vĂ”imaluseta midagi dĂŒnaamiliselt muuta — ÀÀrmiselt tobe. Tuleb olla vĂ”imalus muuta nii palju kui vĂ”imalik kĂ€itamise ajal. Loomulikult ei saa rakenduse koodi muuta, aga kas midagi ei saa vahetada ka ilma koodi uuesti kompileerimata?

Originaalses Macintosh'is tehti nii, et nende failide puhul on olemas “andmeosa” ja “ressursside osa”, mis teeb ÀÀrmiselt lihtsaks erinevate asjade, nĂ€iteks ikoone, tĂ”lkeid jne, salvestamise tĂ€idesaatvates failides.

Mac'is kasutatakse selleks ResEdit, graafiline programm — ĂŒllatus, ĂŒllatus — ressursside redigeerimiseks.

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
ResEdit originaalses Macintosh'is

TĂ€nu sellele sai vĂ”imalikuks redigeerida ikoone, menĂŒĂŒelemente, tĂ”lkeid jne, piisavalt lihtsalt, kuid need “rĂ€ndavad” ikkagi rakendustega.
Igal juhul sellel lĂ€henemisel oli suur puudus: see töötas ainult Apple'i failisĂŒsteemide peal, mis oli ĂŒheks pĂ”hjuseks, miks Apple loobus “ressursside osast” ĂŒleminekul Mac OS X-le.
Mac OS X-s soovis Apple lahendust, mis ei sĂ”ltuks failisĂŒsteemist, mistĂ”ttu kasutati pakettide (NeXT-ist) kontseptsiooni, kaustu, mida failihaldur kĂ€sitleb kui “lĂ€bipaistmatuid objekte”, nagu faile, mitte kaustu. Iga rakenduse pakett formaadis .app oman, muu hulgas, faili Info.plist (millel on mingisugune analoog JSON-ile vĂ”i YAML-ile Apple'ilt), mis sisaldab rakenduse metaandmeid.

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Info.plist faili vÔtmed Mac OS X rakenduste paketis.

Ressursid, nagu ikoonid, UI-failid ja muud, salvestatakse pakendis failidena. Kontseptsioon on tegelikult tagasi kÀinud NeXTi algusesse.

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Mathematica.app NeXTSTEP 1.0-s 1989. aastal: kuvatakse kaustana failide terminalis, kuid kui ĂŒhtne objekt graafilises failihalduris.

RÀÀkides BeOSist, mille kontseptsioonid on aluseks Haikule. Selle arendajad, liikudes PEF-ilt (PowerPC) ELF-ile (x86), mis on sama, mida kasutatakse Linuxis, otsustasid lisada ressursside sektsiooni ELF failide lÔppu. Selleks ei kasutatud sobivat ELF sektsiooni, see lihtsalt lisati ELF faili lÔppu. strip ja muud binutils'i tööriistad, mis ei tea sellest, lÔikavad selle vÀlja. Seega, BeOSI ELF failide ressursse lisades on parem mitte kasutada Linuxi tööriistu.

Kuidas on olukord Haikuga praegu? Üldiselt on see enam-vĂ€hem sama.

Teoreetiliselt oleks vÔimalik ressursse paigutada ELF vajalikkesse sektsioonidesse. Vastavalt arendajatele kanalis #haiku irc.freenode.net:

ELF sektsioonil oleks rohkem mÔtet ... ainus pÔhjus, miks me nii ei tee, on see, et BeOS-is tehti nii.
Ja selle muutmine ei ole praegu vajalik.

Ressursside haldamine

Ressursid kirjutatakse struktureeritud "ressursi" formaati: see on pÔhimÔtteliselt loend ressurssidest koos suurustega ja nende sisuga. Meenus format ar.
Kuidas kontrollida ressursse Haikus? Kas on midagi nagu ResEdit?
Vastavalt dokumentatsioon:

Kasutades rakenduse pakis tarnitud ressurside vaatamiseks, saab kÀivitada programmi, nagu Resourcer. Samuti saab terminalis kÀivitada kÀsu listres failinimi.

Resourcer on HaikuDepotis, kuid mul see lihtsalt kokku kukub.

Kuidas hallata ressursse ELF-failides? Kasutades rsrc ja rdef. rdef failid kogub rsrc. Fail rdef salvestatakse tavalises tekstiformaadis, seega on selle töötamine palju lihtsam. Fail format rsrc lisatakse ELF faili lÔppu. Proovime mÀngida:

~> rc -h
Haiku Resource Compiler 1.1
Rdef skripti kompileerimiseks ressursifailiks:
    rc [valikud] [-o ] ...
Ressursifaili tagasi rdef skriptiks konverteerimiseks:
    rc [valikud] [-o ] -d ...
Valikud:
    -d --decompile       loo rdef skript ressursifailist
       --auto-names      koostage ressursinimed ID sĂŒmbolite pĂ”hjal
    -h --help            nÀita seda teadet
    -I --include    lisa  lisateede loendisse
    -m --merge           Àra kustuta vÀljundfaili olemasolevaid sisu
    -o --output          tÀpsusta vÀljundfaili nimi, vaikimisi on out.xxx
    -q --quiet           Àra kuva vigu
    -V --version         nÀita tarkvara versiooni ja litsentsi

Saate kasutada programmi xres kontrollimiseks ja haldamiseks:

/> xres
Usage: xres ( -h | --help )
       xres -l <file> ...
       xres <command> ...The first form prints this help text and exits.The second form lists the resources of all given files.The third form manipulates the resources of one or more files according to
the given commands.
(...)

Olgu, proovime siis?

/> xres -l /Haiku/system/apps/WebPositive/Haiku/system/apps/WebPositive resources:type           ID        size  name
------ ----------- -----------  --------------------
'MIMS'           1          36  BEOS:APP_SIG
'APPF'           1           4  BEOS:APP_FLAGS
'MSGG'           1         421  BEOS:FILE_TYPES
'VICN'         101        7025  BEOS:ICON
'VICN'         201          91  kActionBack
'VICN'         202          91  kActionForward
'VICN'         203         300  kActionForward2
'VICN'         204         101  kActionStop
'VICN'         206         243  kActionGoStart
'MSGG'         205        1342  kActionGo
'APPV'           1         680  BEOS:APP_VERSION

Rohkem ressursidest ja vormingust rdef saab lugeda siin.

Standardsed ressursitĂŒĂŒbid

Kuigi ressursse vĂ”ib lisada mis tahes sisu, on olemas mitmeid kindlaid standardtĂŒĂŒpe:

  • app_signature: rakenduse MIME tĂŒĂŒp, failide avamise, kĂ€ivitamise, IPC jne jaoks.
  • app_name_catalog_entry: Kuna rakenduse nimi on tavaliselt inglise keeles, saab siia mĂ€rkida kohad, kus asuvad tĂ”lgitud nimed, et erinevaid keeli rÀÀkivad kasutajad saaksid vajadusel nĂ€ha rakenduse tĂ”lgitud nime.
  • app_version: just see, mida te arvasite
  • app_flags: osutab registrar kuidas rakendust kĂ€idelda. Ma arvan, et seal on midagi enamat, kui see esmapilgul nĂ€ib. NĂ€iteks, on olemas B_SINGLE_LAUNCH, mis sunnib sĂŒsteemi kĂ€ivitama uue rakenduse protsessi iga kord, kui kasutaja seda kĂŒsib (sama pĂ”himĂ”tet kasutatakse enamikus rakendustes Linuxis). On olemas B_MULTIPLE_LAUNCH, mis sunnib kĂ€ivitama protsessi iga faili. LĂ”puks on olemas B_EXCLUSIVE_LAUNCH, mis sunnib sĂŒsteemi kĂ€ivitama ainult ĂŒhe protsessi korraga, sĂ”ltumata sellest, kui tihti kasutajad seda kĂ€ivitavad (nĂ€iteks, nii kĂ€ivitatakse Firefox Linuxis; sama tulemust saab saavutada Qt rakendustes, kasutades funktsiooni QtSingleApplication). Rakendused, mis B_EXCLUSIVE_LAUNCH saavad teateid, kui kasutaja pĂŒĂŒab neid uuesti kĂ€ivitada: nĂ€iteks saavad nad faili tee, mida kasutaja soovib avada nende kaudu.
  • vector_icon: Rakenduse vektoriikoon (BeOS-is ei olnud vektoriikone, enamikul rakendustest oli nende asemel kaks rasterikoonut tĂ€itjatefailides).

Loomulikult saab lisada ressursse mis tahes soovitud ID-de ja tĂŒĂŒpidega, mille jĂ€rgnevalt saab lugeda rakenduses vĂ”i teistes rakendustes klassi BResourcesabil. Aga alustuseks peame peatuma pĂ”neval ikoonide teemal.

Vektoriikoonid Haiku stiilis

Muidugi ei valinud ainult Haiku parimat ikooniformaati, selles osas on Linuxi töölaudades olukord kaugel ideaalist:

me@host:~$ ls /usr/share/icons/hicolor/
128x128  256x256  512x512           index.theme
160x160  28x28    64x64             scalable
16x16    32x32    72x72             symbolic
192x192  36x36    8x8
22x22    42x42    96x96
24x24    48x48    icon-theme.cache

Sellist vaadates vĂ”ib juba tunda, mida see tĂŒkk tĂ€hendada vĂ”iks.

Muidugi on olemas skaleeritavad vektorikoonid. Miks siis on midagi muud? Sest vektorgraafika renderdamise tulemus vĂ€ikestes mÔÔtmetes vĂ”ib olla halvem kui ideaalne. Tahaks olla erinevaid variatsioone, optimeeritud erinevatele suurustele. Linuxi töökoormustes saavutatakse seda ikoonide hajutamisega failisĂŒsteemis, millel on erinevad suurused.

me@host:~$ find /usr/share/icons/ -name 'firefox.*'
/usr/share/icons/HighContrast/16x16/apps/firefox.png
/usr/share/icons/HighContrast/22x22/apps/firefox.png
/usr/share/icons/HighContrast/24x24/apps/firefox.png
/usr/share/icons/HighContrast/256x256/apps/firefox.png
/usr/share/icons/HighContrast/32x32/apps/firefox.png
/usr/share/icons/HighContrast/48x48/apps/firefox.png
/usr/share/icons/elementary-xfce/apps/128/firefox.png
/usr/share/icons/elementary-xfce/apps/16/firefox.png
/usr/share/icons/elementary-xfce/apps/22/firefox.png
/usr/share/icons/elementary-xfce/apps/24/firefox.png
/usr/share/icons/elementary-xfce/apps/32/firefox.png
/usr/share/icons/elementary-xfce/apps/48/firefox.png
/usr/share/icons/elementary-xfce/apps/64/firefox.png
/usr/share/icons/elementary-xfce/apps/96/firefox.png
/usr/share/icons/hicolor/128x128/apps/firefox.png

Pange tÀhele: ei ole olemas erinevaid Firefoxi versioone. SeetÔttu ei saa olukorda, kus arvutis on mitu rakenduse versiooni, vÀga tÀpselt töödelda.

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Erinevad Firefoxi ikoonid erinevates versioonides. Praegu ei ole seda vÔimalik Linuxis ilma erinevate lahendusteta töödelda.

Mac OS X töötab veidi rafineeritumalt:

Mac:~ me$ find /Applications/Firefox.app | grep icns
/Applications/Firefox.app/Contents/MacOS/crashreporter.app
/Contents/Resources/crashreporter.icns
/Applications/Firefox.app/Contents/MacOS/updater.app/Contents/Resources/updater.icns
/Applications/Firefox.app/Contents/Resources/document.icns
/Applications/Firefox.app/Contents/Resources/firefox.icns

On nĂ€ha, et on olemas ĂŒks fail firefox.icns pakendis Firefox.app, mis sisaldab kĂ”iki suurusi, seega erinevates versioonides ĂŒhel rakendusel on erinevad ikoonid.
Oluliselt parem! Ikoonid reisivad koos rakendusega, kĂ”ik ressursid ĂŒhes failis.

Naaseme Haiku juurde. Geniaalne lahendus, ilma eranditeta. Vastavalt dokumentatsioon:

On vÀlja töötatud eriline, vÀikeste suuruste ja kiire renderdamise jaoks kÔrgelt optimeeritud formaat HVIF. SeetÔttu on meie ikoonid enamasti palju vÀiksemad kui raster- vÔi laialdaselt kasutatavad SVG formaadis.

Ja nad on tÔepoolest optimeeritud:

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
HVIF ikooni suurused vÔrreldes teiste formaatidega.

Erinevus on kĂŒmneid kordi!

Aga maagia ei lĂ”pe siin. Üks ja sama HVIF vĂ”ib nĂ€idata erinevaid detailitasemeid sĂ”ltuvalt kuvatavast suurusest, hoolimata sellest, et see on vektorgraafika formaat.

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Erinevad detailitasemed (LOD) sÔltuvalt renderdamise suurusest

NĂŒĂŒd puudutame puudusi: ei saa lihtsalt vĂ”tta SVG-d, visata seda ImageMagick'i ja sellega lĂ”petada, tuleb lĂ€bi kĂ€ia mitu tsĂŒklit, et luua ikoon HVIF formaadis. Siin selgitusi. Kuid IconOMatic vĂ”ib SVG-d kĂŒllaltki ebakompetentselt importida; umbes 90% SVG ĂŒksikasjadest imporditakse mingil tĂ”enĂ€osusel, ĂŒlejÀÀnud 10% tuleb seadistada ja kĂ€sitsi muuta. VĂ”ite lugeda rohkem sellest, kuidas HVIF oma maagiat teeb saab blogist Lea Genson

Ikoni lisamine rakendusse

NĂŒĂŒd saan lisada ikooni pakendile, mille olen loonud eelmisel korral, arvestades kogu saadud teavet.
Kuna mul ei ole nĂŒĂŒd erilist soovi joonistada oma ikooni minu 'Tere, Maailm' QtQuickApp jaoks, siis vĂ”taksin selle Qt Creatorist.

/Haiku/home> xres /Haiku/system/apps/QtCreator/bin/Qt Creator  -o /Haiku/home/QtQuickApp/QtQuickApp  -a VICN:101:BEOS:ICON /Haiku/system/apps/QtCreator/bin/Qt Creator

Kontrollime, et ikoon oleks kopeeritud:

/Haiku/home> xres -l /Haiku/home/QtQuickApp/QtQuickApp/Haiku/home/QtQuickApp/QtQuickApp
resources:type           ID        size  name
------ ----------- -----------  --------------------
'VICN'         101      152238  BEOS:ICON

Tundub hÀsti, kuid miks, kui uus ikoon on kopeeritud, see ei kuva?

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Kopeeritud VICN:101:BEOS:ICONs ei ole veel rakenduse ikoonina failihalduris kasutusel.

Mida ma siis vahele jÀtsin?

Arendaja kommentaar:

On vaja luua fail rdef kÔigi ressurssidega, seejÀrel kÀitada kÀsk rc nimi.rdef, see loob faili .rsrc. Siis tuleb kÀitada kÀsk resattr -o nimi_binaar nime.rsrc. Minimaalselt kasutan sarnaseid kÀske oma skriptide ikoonide lisamiseks.

Oli ju vaja luua ressurss, mitte atribuut. Olen tÀiesti segaduses.

Nutikas vahemĂ€lu failisĂŒsteemi kasutamine.

ELF atribuutide avamine ja lugemine toimub aeglaselt. Nagu ma eelnevalt mainisin, kirjutatakse ikoon ressursina faili endasse. See meetod on usaldusvÀÀrsem, vĂ”imaldades ellu jÀÀda kopeerimisel teise failisĂŒsteemi. Siiski kopeeritakse see ka failisĂŒsteemi atribuudiks, nĂ€iteks BEOS:ICON. See töötab ainult teatud failisĂŒsteemides, nĂ€iteks BFS. SĂŒsteemile kuvatavad ikoonid (Trackeris ja Deskbaris) loetakse sellest laiendatud atribuudist, kuna selline lahendus töötab kiiresti. MĂ”nes kohas (kus kiirus ei ole oluline, nĂ€iteks 'Teave programmi kohta' aken) saab sĂŒsteem ikooni otse ressursist failis. Kuid see ei ole veel kĂ”ik. Pea meeles, et Macis said kasutajad asendada rakenduste, kataloogide ja dokumentide ikoone oma ikoonidega, kuna Macis on vĂ”imalus teha selliseid 'olulisi' asju, nĂ€iteks Slack uue ikooni asendamine eelneva. Haikus tuleb ressursi (failis) vĂ”tta kui rakendusega kaasasolevat algset ikooni, ning atribuut (BFS failisĂŒsteemis) kui midagi, mis vĂ”imaldab kasutajal soovi korral muudatusi teha (kuigi, nĂ€punĂ€ide, graafiline liides kasutajateikooni vahetamiseks vaikeikooni kohal pole veel teostatud).

FailisĂŒsteemi atribuutide kontrollimine

EL-i abil resaddr on vĂ”imalik kontrollida ja seada failisĂŒsteemi atribuute.

/> resattr
Usage: resattr [ <options> ] -o <outFile> [ <inFile> ... ]

Reads resources from zero or more input files and adds them as attributes
to the specified output file, or (in reverse mode) reads attributes from
zero or more input files and adds them as resources to the specified output
file. If not existent the output file is created as an empty file.
(...)

Olenemata sellest, see on nagu „liim“, mis viib ressursid ja failisĂŒsteemi atribuudid usaldusvÀÀrsete ja kiirete vahel edasi-tagasi. Kuna sĂŒsteem eeldab ressursside hankimist ja kopeerib selle automaatselt, ei pea ma sellest enam muretsema.

hpkg pakettide vÔlu

Praegu (kĂ”ige sagedamini) kasutatakse Haikus programmide hankimiseks pakette .hpkg. Ärge laske end petta lihtsast nimest: .hpkg formaat töötab tĂ€iesti teisiti kui teised sarnaste nimedega formaadid, millega olete kokku puutunud, tal on reaalsed supervĂ”imed.

Traditsiooniliste pakettide formaatidega olen ma kaua aega mures olnud jĂ€rgmise asja pĂ€rast: laadid alla ĂŒhe (paketi), aga sĂŒsteemi installitakse teine (pakettide sees olevad failid). Failidega on ĂŒsna keeruline toime tulla (nĂ€iteks neid kustutada), kui paketti installitakse traditsiooniliselt. Ja kĂ”ik see sellepĂ€rast, et paketi sisu jaotub kogu failisĂŒsteemi, sealhulgas kohtadesse, kuhu tavaline kasutaja ei pruugi kirjutamisĂ”igust omada. See loob terve klassi programme — paketihaldureid. Ning juba installitud tarkvara, nĂ€iteks teisele masinale, eemaldatavale kettale vĂ”i failiserverisse liigutamine on veelgi keerulisem, kui mitte tĂ€iesti vĂ”imatu. Tavalises Linuxi sĂŒsteemis vĂ”ib kergesti eksisteerida sadu tuhandeid vĂ”i koguni miljoneid isoleeritud faile. Loomulikult on see samal ajal habras ja aeglane, nĂ€iteks sĂŒsteemi esialgse installimise, traditsiooniliste pakettide installimise, uuendamise ja kustutamise ning alglaadimise mahtude (juurkatalooge) teisele seadmele kopeerimise juures.

Töötan projekti AppImage kallal, mis on osaline tugimeetod lĂ”ppkasutajate rakenduste jaoks. See on tarkvara levitamise formaat, mis kogub rakenduse ja kĂ”ik selle sĂ”ltuvused ĂŒhe failisĂŒsteemi pildina, mis mountitakse rakenduse kĂ€ivitamisel. See lihtsustab asju mĂ€rgatavalt, kuna sama ImageMagick muutub ootamatult ĂŒheks failiks, mida lihtsad surelikud saavad failihalduris hallata. Pakutud meetod töötab ainult tarkvara jaoks, nagu projekt nimigi peegeldab, ning omab ka oma haigeid kohti, kuna Linuxi tarkvara tarnimisega tegelejad suunavad alati sĂŒĂŒdistused minu suunas.

Tagasi Haiku juurde. Kas leidus tasakaal traditsiooniliste paketisĂŒsteemide ja piltidele pĂ”hineva tarkvara tarnimise vahel? Selle paketid .hpkg on tegelikult tihendatud failisĂŒsteemi pildid. SĂŒsteemi kĂ€ivitamisel monteerib kernel kĂ”ik installitud ja aktiivsed paketid jĂ€rgmiste kerneliteadete puhul:

KERN: package_daemon [16042853:   924] aktiivne pakett: "gawk-4.2.1-1-x86_64.hpkg"
KERN: package_daemon [16043023:   924] aktiivne pakett: "ca_root_certificates_java-2019_01_23-1-any.hpkg"
KERN: package_daemon [16043232:   924] aktiivne pakett: "python-2.7.16-3-x86_64.hpkg"
KERN: package_daemon [16043405:   924] aktiivne pakett: "openjdk12_default-12.0.1.12-1-x86_64.hpkg"
KERN: package_daemon [16043611:   924] aktiivne pakett: "llvm_libs-5.0.0-3-x86_64.hpkg"

Lahe, eks? Hoidke kinni, edasi lÀheb veelgi huvitavamaks!

On ĂŒks vĂ€ga eriline pakett:

KERN: package_daemon [16040020:   924] aktiivne pakett: "haiku-r1~beta1_hrev53242-1-x86_64.hpkg"

See sisaldab ĂŒsna minimalistlikku operatsioonisĂŒsteemi, sealhulgas kernelit. Uskuge vĂ”i mitte, kuid isegi kernel ei kaevata kĂ€ivitusmahtudest (juurpartitsioon) vĂ€lja, vaid laaditakse hoolikalt oma kohta paketti. .hpkgAga vau! Olen juba maininud, et minu arvates pĂ”hineb Haiku terviklikkus ja rafineerituse tunne asjaolul, et kogu sĂŒsteemi - kernelist ja pĂ”hikasutajakeskkonnast kuni pakettide haldamise ja töökeskkonna infrastruktuurini - arendab sama meeskond ĂŒhiselt. Kujutage ette, kui palju erinevaid gruppe ja meeskondi oleks vaja, et midagi sarnast Linuxi baasil kĂ€ivitada. [kujuneb mul meeles PuppyLinuxi projekt, - tĂ”lkija mĂ€rkus]. SeejĂ€rel kujutage ette, kui kaua kuluks, et see lĂ€henemine distrodesse rakendada. Öeldakse ju, et vĂ”tke lihtne ĂŒlesanne ja jagage see erinevate tĂ€itjatega, ning see muudab selle niivĂ”rd keeruliseks, et see lĂ€heb lahendamatuks. Haiku avas selle koha pealt mu silmad. Arvan, et just see juhtub praegu Linuxiga (Linux, siin mĂ”eldud kui kogum, mis viitab Linuxi/GNU/dpkg/apt/systemd/Xorg/dbus/Gtk/GNOME/XDG/Ubuntu virnale).

SĂŒsteemi tagasikĂ€ik hpkg abil

Kuidas sageli juhtub jĂ€rgmine olukord: vĂ€rskendus lĂ€ks edukalt, kuid hiljem selgub, et midagi ei tööta nii, nagu peab? Tavaliste paketihaldurite kasutamine muudab sĂŒsteemi seisundi taastamise enne uute pakettide installimist keeruliseks (nĂ€iteks kui midagi lĂ€heb valesti). MĂ”ned sĂŒsteemid pakuvad lahendusi failisĂŒsteemi klonide abil, kuid need on ĂŒsna kohmakad ning neid ei rakendata kĂ”ikides sĂŒsteemides. Haikus on see lahendatud pakettide abil. .hpkg. Iga kord, kui sĂŒsteemis pakette muudetakse, ei eemaldata vanu pakette, vaid need sĂ€ilitatakse sĂŒsteemis alamkaustades vormingus. /Haiku/system/packages/administrative/state-<...>/ pĂŒsivalt. KĂ”ik lĂ”petamata toimingud salvestavad oma andmed alamkaustades. /Haiku/system/packages/administrative/transaction-<...>/.

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Sisu /Haiku/system/packages/administrative. „State
“ kaustad sisaldavad tekstifaile aktiivsete pakettide nimedega, „transaction
“ – ise paketid.

„Vana aktiivne seisund“, s.t. nimekiri .hpkg pakettidest, mis olid aktiivsed muudatuste eel, salvestatakse pĂ€rast iga toimingut failihalduris tekstifailina. /Haiku/system/packages/administrative/state-<...>/activated-packages. Sarnasel viisil kirjutatakse uus „aktiivne seisund“ tekstifaili. /Haiku/system/packages/administrative/activated-packages.

Kataloog /Haiku/system/packages/administrative/state-<...>/ sisaldab ainult tekstifaili aktiivsete pakettide nimekirjaga sellest seisundist (kui pakette installiti ilma eemaldamata), ja kui pakette eemaldati vĂ”i uuendati – state kaust sisaldab vanu versioone pakettidest.

SĂŒsteemi kĂ€ivitamisel otsustatakse pakettide aktiveerimise (mĂ€ountimise) ĂŒle pakettide nimekirja alusel. Nii lihtne ongi! Kui kĂ€ivitamisel lĂ€heb midagi valesti, saab laadimishaldurile öelda kasutada teist, vanemat nimekirja. Ülesanne on lahendatud!

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Haiku laadimishaldur. Iga sisenemiskoht vastab vastavale „aktiivsele seisundile“.

Mulle meeldib lĂ€henemine lihtsate tekstifailide kasutamiseks „aktiivse seisundi“ nimekirjana, kus on salvestatud arusaadavad nimed. .hpkg. See on terav vastand masinatele mĂ”eldud keerulistele sĂŒsteemidele. OSTree vĂ”i Flatpakist failisĂŒsteemis (samas tasemes, kus on ka Microsoft GUID). Aktiivsete pakettide nimekiri igas ajahetkes.

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Konfiguratsiooniandmed.

Tundub, et kaustas

on seadistusfailid paketid, kuid kirjutamiseks saadaval. Nagu mĂ€letate, /Haiku/system/packages/administrative/writable-files mĂ€ountitakse ainult lugemiseks. Seega tuleb need failid enne kirjutamist paketidest kopeerida. See on mĂ”istlik. .hpkg GUI integreerimine .hpkg sĂŒsteemiga.

GUI integreerimine sĂŒsteemi .hpkg

NĂŒĂŒd vaatame, kuidas need sĂ€ravad paketid .hpkg kliendi töökeskkonda (UX) integreerumisega hakkama saavad. LĂ”ppude lĂ”puks on Haiku mĂ”eldud isiklikuks kasutamiseks. Isiklikult olen seadnud kĂ”rged ootused, vĂ”rdledes kasutajakogemust pakettide .app Macintoshis sama kogemusega .hpkg. Ma ei hakka isegi vĂ”rrelda olukorda Linuxi töökeskkondades, sest see on absoluutselt kohutav vĂ”rreldes ĂŒkskĂ”ik millise teisega.

Mulle tulevad meelde jÀrgmised stsenaariumid:

  • Ma tahan paketi sisu vaadata .hpkg
  • Ma tahan paketti installida
  • Ma tahan paketti eemaldada
  • Ma tahan eemaldada midagi, mis tuli sĂŒsteemi koos paketiga
  • Ma tahan kopeerida midagi, mis tuli sĂŒsteemi koos paketiga
  • Ma tahan alla laadida kĂ”ik paketi sĂ”ltuvused, mis ei pruugi olla osa igast Haiku installatsioonist (nĂ€iteks mulle on fĂŒĂŒsiliselt isoleeritud masin, millel pole internetiĂŒhendust).
  • Ma tahan oma pakette (noh, vĂ”i nende osa) eraldi teise kohta liikuda, eraldi alglaadimise mahust (juurkett) (sest nĂ€iteks mul on seal ruumipuudus).

See peaks katma enamiku minu igapÀevase töö pÔhijuhtumeid. Noh, alustame.

Paketi sisu kontrollimine

Macis klĂ”psan ma lihtsalt paketi peal paremalla ja avan selle sisu Finderis. LĂ”ppude lĂ”puks on see lihtsalt maskeeritud kataloog! (Ma tean, et on olemas paketid .pkg sĂŒsteemi osade jaoks, mis ei ole rakendused, kuid tavalised kasutajad ei puutu nendega enamasti kokku).

Haikus klÔpsan paketi peal paremalla, seejÀrel valin "Contents", et vaadata, mis sees on. Kuid siin on lihtsalt failide nimekiri ilma vÔimaluseta neid topeltklÔpsuga avada.
Oleks palju parem, kui oleks vÔimalik (ajutine) paketi mountimine .hpkg failihalduri kaudu vaatamiseks, nii et kasutaja ei peaks muretsema teostuse detailide pÀrast. (Muide, paketti saab avada .hpkg Expanderis , mis vÔib selle vÀlja pakkida nagu iga teine arhiiv).HaikuDepot liideses saab vaadata paketi failide nimekirja, kuid pole viisi sisu vaatamiseks, nÀiteks topeltklÔpsates README.md

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Selles kategoorias vÔidab Mac, kuid vajaliku funktsionaalsuse lisamine HaikuDepotis ei tohiks tekitada suuri raskusi.

Paketi installimine GUI kaudu

Paketihalduse installimine GUI kaudu

Macis, enamik ketaspilte .dmg sisaldab pakette .app. Avame ketaspildi kahekordse klÔpsuga, seejÀrel kopeerime paketi, nÀiteks lohistades selle /Applications Finderis. Minu jaoks tundub see iseenesestmÔistetav, kuid olen kuulnud, et mÔned algajad vÔivad sellega raskustes olles. Vaikimisi /Applications (NeXT-is oli see vÔrgus, samuti individuaalne), kuid oma rakendusi on lihtne paigutada ka failiserverisse vÔi alamkausta $HOME/Applications, kui see teile sobib.

Haikus, kahekordne klĂ”ps paketile, seejĂ€rel klĂ”ps "Install", lihtsam ei saa olla. Mind huvitab, mis juhtub, kui paketil on sĂ”ltuvused, mis on saadaval HaikuPorts'is, kuid veel mitte installitud. Linuxis ei osata selles olukorras tĂ”esti midagi teha, aga lahendus on ilmne — kĂŒsida kasutajalt, kas ta soovib sĂ”ltuvusi alla laadida ja installida. Just seda teebki Haiku.

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Allalaadisin paketi 'sanity' kĂ€sitsi ja klĂ”psasin sellele, pakettide haldur teab, kust vĂ”tta selle sĂ”ltuvused (tingimusel, et hoidlad on juba sĂŒsteemis kirjas). Mitte iga Linuxi distributsioon ei oska seda.

Veel ĂŒks viis on failihalduri kasutamine, piisab lihtsalt paketi lohistamisest .hpkg kausta, vĂ”i /Haiku/system/packages (ĂŒldiseks paigaldamiseks, vaikimisi), vĂ”i /Haiku/home/config/packages (individuaalse paigaldamise jaoks; ei ole saadaval kahekordse klĂ”psuga — mind hĂ€irib endiselt sĂ”na "config" siin, mis minu jaoks on sel juhul sĂŒnonĂŒĂŒm "settings"-ile). Aga mitme kasutaja kontseptsioon pole Haiku jaoks veel saadaval (ilmselt ongi seetĂ”ttu kĂ”ik nii lihtne — ma ei tea, vĂ”ib-olla muudab mitmikkasutuse vĂ”imalused isikliku arvuti töökeskkonna jaoks liiga keeruliseks).

Selles kategoorias vĂ”idab Haiku, sest oskab töötada mitte ainult rakendustega, vaid ka sĂŒsteemiprogrammidega.

Paketi eemaldamine GUI-st

Macis, tuleb rakenduse ikoon lohistada prĂŒgikasti, ja sellega asi piirdub. Lihtne!

Haikus, kĂ”igepealt peate leidma, kus paketid sĂŒsteemis asuvad, kuna te harva installite neid Ă”igesse kohta (kĂ”ike teeb sĂŒsteem). TĂŒĂŒpiliselt tuleb otsida /Haiku/system/packages (ĂŒldise paigaldamise jaoks vaikimisi), vĂ”i /Haiku/home/config/packages (ma juba ĂŒtlesin, et "config" ei ole Ă”ige nimetus?). Siis lohistatakse rakendus lihtsalt prĂŒgikasti ja sellega asi piirdub.
Lihtne! Siiski, ma ei ĂŒtleks nii. Siin on, mis tegelikult juhtub:

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Siit saab teada, mis juhtub, kui tĂ”ukate rakenduse prĂŒgikasti. /Haiku/system/packages

Lihtsalt proovisin viia oma eilse rakenduse "Tere, maailm" QtQuickApp-s prĂŒgikasti. Ma ei ĂŒritanud sĂŒsteemi katalooge liigutada, ja kuna kĂ”ik paketid installitakse sĂŒsteemi katalooge — ei saa paketti kustutada .hpkg ilma et muuta "tema sisu". Tavaline kasutaja ehmuks, vajutades vaikimisi "TĂŒhista" nuppu.

Selgitab mr. waddlesplash:

Sellel teatega on juba ĂŒle 10 aasta. TĂ”enĂ€oliselt peaksime selle seadistama nii, et hoiatust kuvataks ainult paketi liigutamisel. Tavalised kasutajad ei pea niikuinii seda tegema.

Noh, vÔib-olla peaksin proovima seda teha HaikuDepot'i kasutades? Topeltklikin paketti /Haiku/system/packages, oodates, et kuvatakse "Eemalda" nupp. Ei, on (ainult) "Installi". "Eemalda", kus sa oled?

Proovisin nalja pÀrast, mis juhtub, kui vajutan "Installi" juba installitud paketi jaoks. Tuleb vÀlja nii:

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Nii juhtub, kui proovite installida juba installitud paketti.

JĂ€rgmine ilmub:

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Kui eelmisel aknas vajutada "Rakenda muudatused" — tuleb vĂ€lja nii

Eeldan, et see on tarkvaralööve, pilet on juba avatud. [autor ei jaganud linki, — tĂ”lkija mĂ€rkus]

Kiire lahendus: lisada "Eemalda" nupp, kui pakett on juba olemas /Haiku/system/packages, vÔi /Haiku/home/config/packages.

HaikuDepot's installitud pakettide nimekirja vaadates nÀen oma paketti nimekirjas ja saan selle eemaldada.

Selles kategoorias vĂ”idab Mac. Aga ma suudan ette kujutada, et korraliku seadistuse korral vĂ”iks Haiku kasutajakogemus olla parem kui Macil. (Üks arendajatest hindas seda nii: "Kuna vĂ€he aega, et lisada nĂ€idatud funktsionaalsust HaikuDepot'is, kui tead veidi C++-st", on vabatahtlikke?)

MÔne asja eemaldamine paketist

Proovime eemaldada rakenduse ennast, mitte paketti .hpkg, millest see ilmnes (kahtlen, et "tavalistele surelikel" on mingi vahe).

Macis, kasutaja töötab tegelikult tavaliselt faili .dmg, kust tuleb rakenduse pakett .app. Tavaliselt tekivad pildid .dmg allalaadimiste kataloogis, kuid paketid kopeeritakse kasutaja poolt /Applications. On arvamus, et paljud kasutajad ei tea, mida nad teevad, ja seda hĂŒpoteesi kinnitab endine Apple'i töötaja. (Üks asi, mis mulle Mac'i juures ei meeldi. Aga nĂ€iteks AppImage'i puhul ei ole vahet rakenduse ja paketi vahel, milles see oli. Lihtsalt tĂ”mba ikoon prĂŒgikasti = ja see on kĂ”ik. Lihtne!)

Haikus, samuti on eristamine rakenduste/ ja pakettide/, nii et ma kahtlen, et kasutajatele on see selgemaks muutunud. Aga mis juhtub, kui tĂ”mbad rakenduse rakenduste/ prĂŒgikasti:

Minu kuues pÀev Haiku'ga: allpool ressursse, ikoone ja pakette.
Siin on see, mis juhtub, kui proovid rakendust kustutada, mis on saadud failist .hpkg

Tehniliselt on see Ă”ige (sest rakendus on paigutatud ainult lugemiseks mĂ”eldud failisĂŒsteemile), aga see ei ole kasutajale eriti kasulik.

Kiire lahendus: selle asemel pakkuda GUI kaudu kustutamist .hpkg

Huvi pĂ€rast proovisin rakendust dubleerida, vajutades Alt+D. Sai teate «Ei saa objekte kirjutada vĂ”i kopeerida ainult lugemiseks mĂ”eldud sĂ”ltumatu mahamonteerimisega». Ja see on kĂ”ik, sest /system (lisaks /system/packages ja /system/settings) on packagefs'i mountpunkt (pead meeles, kuidas see kuvab vĂ€ljundis df?). К ŃĐŸĐ¶Đ°Đ»Đ”ĐœĐžŃŽ, ĐČыĐČĐŸĐŽ ĐșĐŸĐŒĐ°ĐœĐŽŃ‹ mount ei selgita olukorda (nagu oli öeldud ĂŒhes varasemas artiklis), mountvolume ei nĂ€ita soovitud (nĂ€ib, et ainult loop kaudu monteeritud paketid .hpkg ei loe «mahdudena»), ja unustasin ka alternatiivsed kĂ€sud.

Selles kategoorias ei vÔitnud keegi peale AppImage'i (aga see on, kui olla tÀiesti aus, kallutatud arvamus). Siiski vÔib eeldada, et pÀrast kohandamist on Haiku kasutajakogemus parem kui Mac'il.

MÀrkus: tuleb vÀlja selgitada, mis on «maht» seoses «kotiga». TÔenÀoliselt on see vÔrreldav «kausta» ja «katalooge» vahel: enamus katalooge kuvatakse failihalduris kaustadena, kuid mitte kÔik neist (nÀiteks paketid, mida töödeldakse failidena). Kas need vÀljendid teevad mind ametlikult nerdiks?

Paketi sisu kopeerimine teisele sĂŒsteemile

Macis, tÔmban lihtsalt paketti .app, ja kuna sÔltuvused on paketti sees - need liiguvad koos.

Haikus, tĂ”mban rakenduse, aga sĂ”ltuvusi ei töödeldud ĂŒldse.

Kiire lahendus: laske selle asemel pakkuda paketi «.hpkg» tÀielikult koos sÔltuvustega, kui need on olemas.

Selles kategoorias on Mac selgelt vĂ”itja. VĂ€hemalt mina, kes armastan nende paradigmat. Haiku peaks seda kopeerima. .hpkg rakenduse asemel, kuid sĂŒsteem ei paku mulle sellist ...

Paketi allalaadimine koos kÔigi selle sÔltuvustega

Kaugel on iga masin pidevalt ĂŒhendatud. Vastupidi, mĂ”ned masinad (jah, ma vaatan teid, modernsed Windows, Mac ja Linux) unustavad selle. Minu jaoks on oluline, et ma saaksin nĂ€iteks minna internetikohvikusse, tĂ”mmata tarkvara eemaldatavasse seadmesse, sisestada see seade kodukompjutaatorisse ja olla kindel, et kĂ”ik töötab [riskialti inimene, tehes seda Windowsis... — tlk. mĂ€rk].

SeetÔttu satun ma natuke sagedamini, kui peaksin, tavaliselt rahulolematute sÔltuvuste pÀrast Windowsis ja Linuxis.

Macis see on tavaliselt ĂŒks fail, kĂ”ik, mis on vajalik — alla laadida .dmg. Enamasti ei ole tal sĂ”ltuvusi peale nende, mis MacOS-i vaikimisi kaasas. Erandiks vĂ”ib olla keerulised rakendused, mis vajavad vastavat töökeskkonda, nĂ€iteks java.

Haikus alla laadida pakett .hpkg nĂ€iteks sama rakenduse jaoks java, vĂ”ib osutuda ebapiisavaks, kuna java vĂ”ib olla nii kohal kui ka puududa sihtmasinal. Kas on vĂ”imalik alla laadida kĂ”ik sĂ”ltuvused antud paketi jaoks .hpkg, vĂ€lja arvatud need, mis installitakse Haikus vaikimisi ja seega peaksid olema igas Haiku sĂŒsteemis?

Selles kategoorias vÔidab Mac vÀikese edumaaga.

Kommenteerib hr. waddlesplash:

Et kirjutada programm, mis kogub kĂ”ik rakenduse sĂ”ltuvused pakettide kogumina .hpkg kellegi jaoks, kes tunneb Haiku sisemist ĂŒlesehitust, piisab umbes 15 minutist. Toetuse lisamine pole sugugi keeruline, kui see on tĂ”eline vajadus. Kuid minu jaoks on see haruldane olukord.

Hoidke hinge kinni, kuni jĂ€rgmine artikkel selles tsĂŒklis ilmub.

Pakettide liigutamine eraldi kohta

Nagu ma juba varem mainisin, tahan panna oma paketid .hpkg (noh, vĂ”i nende osa) eraldi kohta, mis on eraldatud tavalise paigutuse laadimiskettal (juurkonnal). Tavalises olukorras (mitte sugugi teoreetilises) on pĂ”hjuseks see, et minu (sise)kettal lĂ”peb pidevalt vaba ruum, hoolimata sellest, kui suured nad on. Ja ma ĂŒhendangi tavaliselt vĂ€lised kettad vĂ”i vĂ”rguteenused, kus minu rakendused asuvad.

Macis ma lihtsalt liigutan pakette .app kaardile vÔi vÔrgu katalooge Finderis, ja sellega kÔik. Ma saan ikka veel kahekordse klÔpsuga avada rakenduse nagu tavaliselt tegin seda kÀivitusmahu kaudu. Lihtne!

Haikus, nagu mulle öeldi, seda saab saavutada mu muude .hpkg pakettide liigutamisega kaardile vĂ”i vĂ”rgu katalooge, kuid seejĂ€rel tuleb kasutada mĂ”ningaid dokumenteerimata kĂ€ske terminalis, et need sĂŒsteemi monteerida. Ma ei tea, kuidas seda teha, kasutades ainult graafilist liidest.

Selles kategoorias vÔidab Mac.

Vastavalt mr. waddlesplashile:

Siin on optimeerimine arvutuste pĂ”hjal tavalise kasutuse jaoks. Kui nĂ”udlus suureneb rohkem kui ĂŒhe kasutaja jaoks, rakendame seda kindlasti. Igatahes on vĂ”imalus kolmanda osapoole rakendamiseks.

RÀÀgime sellest jÀrgmises artiklis.

Kui rÀÀkida vĂ”rgu kataloogidest: oleks suurepĂ€rane (eeldan LAN-pidusid) omada lihtsaid, tuvastatavaid, vĂ”rguĂŒlesande rakendusi (nĂ€iteks Zeroconfi kaudu), mida saab kopeerida lokaalsesse arvutisse vĂ”i kĂ€ivitada otse kohalikust vĂ”rgust. Muidugi on arendajatel vĂ”imalus sellest loobuda lĂ€bi app_flags.

LĂ”pparuande integratsioonisĂŒsteemist hpkg koos GUI-ga

Ma arvan, et peamiselt sellel pÔhjusel, et suhteliselt uue integratsiooniga .hpkg GUI-ga jÀtkub veel ruumi parendamiseks. Igatahes on mitmeid asju, mida kasutajakogemuse osas saaks parandada


Veel ĂŒks asi: Kernel Debug Land

Oleks suurepĂ€rane, kui kernel panics ajal oleks vĂ”imalik sisestada kĂ€ske, nĂ€iteks syslog | grep usb. Noh, Haikus on see vĂ”imalik Kernel Debug Landi tĂ”ttu. Kuidas aga nĂ€ha seda maagiat toimimas, kui sul lĂ€heb kĂ”ik hĂ€sti ilma kernel panicsita? Lihtne, klĂ”psates Alt+PrintScn+D (mnemoonika Debug). Mulle meenuvad kohe Programmer’s Key, mis vĂ”imaldas algsetel Macintosh arendajatel pÀÀseda debugeerimisse (kui see oli loomulikult installitud).

KokkuvÔte

Hakkasin mĂ”istma, et Haiku sĂŒsteemi keerukus tuleneb sellest, et tööd teeb vĂ€ike meeskond, millel on selge suund töökeskkonnale, kui kĂ”ik sĂŒsteemi kihid on kergesti ligipÀÀsetavad.
Terav kontrast Linuxi / GNU / dpkg / apt / systemd / Xorg / dbus / Gtk / GNOME / XDG / Ubuntu maailmaga, kus kĂ”ik on tĂŒkkideks purustatud sellisel mÀÀral, et abstraktsioon istub abstraktsioonil ja toetub kĂ”igi kaudu.
Samuti tuli mĂ”istmine, kuidas sĂŒsteem .hpkg kombineerib parimaid tavasid traditsioonilistest paketihalduritest, Snappy, Flatpak, AppImage, isegi btrfs, ja segab need kokku Maci pĂ”himĂ”ttega "lihtsalt töötab".

Nagu midagi «lĂŒlitus» mu peas ja ma sain aru, kuidas sĂŒsteem .hpkg suudab tagasi pöörduda, — lihtsalt vaadates seda. Aga see ei ole mina, vaid sĂŒsteemi ilu ja lihtsus. Paljuski on siin tunda algse Mac'i vaimu.

Jah, lehekĂŒlgede sirvimine brauseris vĂ”ib olla tĂ”rkuv ja toimida nagu limukas, rakendusi vĂ”ib puududa (Gtk, Electron — arendajad jĂ€reldasid, et need ei sobi hĂ€sti elegantsiga), video ja 3D kiirendamine vĂ”ib tĂ€ielikult puududa, kuid siiski mulle meeldib see sĂŒsteem. Need asjad on parandatavad ja need tulevad varem vĂ”i hiljem. See on vaid aja ja vĂ”ib-olla veidi punaste silmade kĂŒsimus.

Ma ei saa abi pakkuda, kuid arvan, et just sellest hetkest algab aasta Haiku töölaual.

Juhuslikud probleemid

VÔib-olla on juba pÀringud esitatud, vÔi pean ma need avama?

  • BeScreenCapture peaks saama GIF-formaadis eksportida, nagu Peek. Selle vĂ”ib teha ffmpeg'iga, mis on juba Haikus olemas. PĂ€ring.
  • Ekraanipildi loomise programm ei saa teha pilti mudelaknast, vaid hoopis kogu ekraanist
  • Ekraanipilte ei saa kĂ€rpida WonderBrush'i kĂ€rpimise tööriistaga ja seejĂ€rel salvestada tulemust failina
  • Mulle ei meeldi eriti Haiku kĂ€e ikoon, kuid arvan, et see on seotud sooja nostalgiaga. See hĂ€irib eriti Kritas kĂ€rpimise tööriista kasutamisel, kuna see toob kaasa ebatĂ€pse kĂ€rpimise (vt ekraanipilte mudeldialoogidest selle artikli sissejuhatuses). RistkĂŒlikukujuline kursori oleks suurepĂ€rane. PĂ€ring.

Proovige ise! LÔppude lÔpuks pakub Haiku projekt allalaetavaid pilte DVD-le vÔi USB-le, mis on loodud iga pÀev. Paigaldamiseks piisab pildi allalaadimisest ja selle kirjutamisest mÀlupulgale, kasutades Etcher

Kas teil on kĂŒsimusi? Kutsume teid venekeelsesse telegrami kanalisse.

Vigade ĂŒlevaade: Kuidas end C ja C++-ga jalga lasta. Haiku OS retseptide kogu

Alates autor tÔlge: see on kuues artikkel Haiku teemal.

Artiklite nimekiri: Esimene Teine Kolmas Neljas Viies

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster