Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega

TL; DR: Haiku ir operētājsistēma, kas Ä«paÅ”i izstrādāta personālajiem datoriem, tāpēc tai ir vairāki triki, kas padara tās darbvirsmas vidi daudz labāku par citām. Bet kā tas darbojas?

Nesen Es atklāju Haiku, negaidÄ«ti labu sistēmu. Es joprojām esmu pārsteigts par to, cik gludi tas darbojas, it Ä«paÅ”i salÄ«dzinājumā ar Linux darbvirsmas vidēm. Å odien es paskatÄ«Å”os zem pārsega. Ja nepiecieÅ”ams padziļinātai izpratnei, es salÄ«dzināŔu ar oriÄ£inālajām Macintosh, Mac OS X un Linux darbvirsmas vidēm (XDG standarts no freedesktop.org).

Resursi ELF failos

Vakar uzzināju, ka IconOMatic var saglabāt ikonas rdef resursos ELF izpildāmajos failos. Šodien es gribu redzēt, kā tas īsti darbojas.

Resursi? Citāts no Brūss Horns, sākotnējais Macintosh Finder autors un Macintosh resursu pārvaldnieka "tēvs":

Esmu noraizējies par tradicionālās kodÄ“Å”anas stingrÄ«bu. Man paÅ”ai ideja par lietojumprogrammu, kas ir iesaldēta kodā, bez iespējas kaut ko dinamiski mainÄ«t, ir mežonÄ«gākā mežonÄ«ba. JābÅ«t iespējai pēc iespējas vairāk mainÄ«t izpildes laikā. Protams, paÅ”u lietojumprogrammas kodu nevar mainÄ«t, bet vai tieŔām kaut ko var mainÄ«t, nepārkompilējot kodu?

Sākotnējā operētājsistēmā Macintosh Å”iem failiem bija ā€œdatu sadaļaā€ un ā€œresursu sadaļaā€, kas padarÄ«ja neticami vienkārÅ”u tādu lietu kā ikonu, tulkojumu un tamlÄ«dzÄ«gu saglabāŔanu. izpildāmajos failos.

Operētājsistēmā Mac tas tiek izmantots ResEdit, grafiska programma, lai pēkŔņi rediģētu resursus.

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
ResEdit oriģinālajā Macintosh datorā

Tā rezultātā kļuva iespējams rediģēt ikonas, izvēlnes vienumus, tulkojumus utt. pietiekami viegli, taču tie joprojām ā€œceļoā€ ar lietojumprogrammām.
Jebkurā gadÄ«jumā Å”ai pieejai bija liels trÅ«kums: tā darbojās tikai Apple failu sistēmās, kas bija viens no iemesliem, kāpēc Apple, pārejot uz Mac OS X, atteicās no ā€œresursu sadaļasā€.
Operētājsistēmā Mac OS X Apple vēlējās no failu sistēmas neatkarÄ«gu risinājumu, tāpēc viņi pieņēma pakotņu koncepciju (no NeXT) ā€” direktorijus, kurus failu pārvaldnieks uzskata par "necaurspÄ«dÄ«giem objektiem", piemēram, failus, nevis direktorijus. Jebkura pakotne ar lietojumprogrammu formātā .app cita starpā ir fails Info.plist (kāda veida Apple ekvivalentā JSON vai YAML), kas satur lietojumprogrammas metadatus.

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Taustiņi Info.plist failam no Mac OS X lietojumprogrammas pakotnes.

Resursi, piemēram, ikonas, lietotāja saskarnes faili un citi, tiek glabāti pakotnē kā faili. Koncepcija faktiski atgriezās savās saknēs NeXT.

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Mathematica.app uz NeXTSTEP 1.0 1989. gadā: terminālÄ« parādās kā failu direktorijs, bet grafiskajā failu pārvaldniekā kā viens objekts.

AtgriezÄ«simies pie BeOS, koncepcijām, uz kurām balstās Haiku. Tās izstrādātāji, pārejot no PEF (PowerPC) uz ELF (x86) (to paÅ”u, ko izmanto operētājsistēmā Linux), nolēma ELF failu beigās pievienot resursu sadaļu. Tā neizmantoja savu Ä«sto ELF sadaļu, tā tika vienkārÅ”i pievienota ELF faila beigām. Programmas rezultātā strip un citi no binutils, to neapzinoties, vienkārÅ”i nogriež. Tāpēc, pievienojot resursus ELF failam BeOS, labāk to nemanipulēt ar Linux rÄ«kiem.

Kas tagad notiek ar Haiku? Būtībā vairāk vai mazāk tas pats.

Teorētiski būtu iespējams izvietot resursus vēlamajā ELF sadaļā. Saskaņā ar izstrādātāju teikto #haiku kanālā vietnē irc.freenode.net:

Izmantojot ELF, sadaļai būtu lielāka jēga... vienīgais iemesls, kāpēc mēs to nedarām, ir tas, ka mēs to darījām BeOS.
Un tagad nav jēgas to mainīt.

Resursu vadība

Resursi ir rakstÄ«ti strukturētā ā€œresursuā€ formātā: bÅ«tÄ«bā resursu saraksts ar izmēriem un pēc tam to saturu. Atcerējos ar formātā.
Kā pārbaudīt resursus Haiku? Vai ir kaut kas līdzīgs ResEdit?
Saskaņā ar dokumentācija:

Lai skatÄ«tu lietojumprogrammas pakotnē sniegtos resursus, izpildāmo failu var vilkt uz tādas programmas kā Resursu sniedzējs. Varat arÄ« doties uz termināli un palaist komandu listres ŠøŠ¼Ń_фŠ°Š¹Š»Š°.

Resourcer ir pieejams HaikuDepot, bet man tas vienkārÅ”i avarē.

Kā pārvaldÄ«t resursus ELF failos? Izmantojot rsrc Šø rdef. rdef faili tiek savākti rsrc. Fails rdef tiek saglabāts vienkārÅ”a teksta formātā, tāpēc ar to ir daudz vieglāk strādāt. Faila formāts rsrc pievienots ELF faila beigās. Mēģināsim spēlēt:

~> rc -h
Haiku Resource Compiler 1.1To compile an rdef script into a resource file:
    rc [options] [-o <file>] <file>...To convert a resource file back into an rdef script:
    rc [options] [-o <file>] -d <file>...Options:
    -d --decompile       create an rdef script from a resource file
       --auto-names      construct resource names from ID symbols
    -h --help            show this message
    -I --include <dir>   add <dir> to the list of include paths
    -m --merge           do not erase existing contents of output file
    -o --output          specify output file name, default is out.xxx
    -q --quiet           do not display any error messages
    -V --version         show software version and license

Jūs varat izmantot programmu xres pārbaudei un kontrolei:

/> 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.
(...)

Labi, mēģināsim?

/> 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

Vairāk par resursiem un formātu rdef tu vari lasīt Ŕeit.

Standarta resursu veidi

Lai gan resursos varat ievietot jebko, ir daži noteikti standarta veidi:

  • app_signature: MIME lietojumprogrammas veids, faila atvērÅ”anas kartÄ“Å”anai, palaiÅ”anai, IPC utt.
  • app_name_catalog_entry: Tā kā lietojumprogrammas nosaukums parasti ir angļu valodā, varat norādÄ«t vietas, kur atrodas tulkotie nosaukumi, lai lietotāji dažādās valodās pēc vajadzÄ«bas redzētu tulkoto lietojumprogrammas nosaukumu.
  • app_version: tieÅ”i to, ko tu domāji
  • app_flags: norāda registrar kā apstrādāt pieteikumu. Es domāju, ka tajā ir vairāk nekā Ŕķiet. Piemēram, ir B_SINGLE_LAUNCH, kas liek sistēmai palaist jaunu lietojumprogrammu procesu katru reizi, kad lietotājs to pieprasa (tas pats princips tiek izmantots lielākajai daļai lietojumprogrammu operētājsistēmā Linux). Ēst B_MULTIPLE_LAUNCH, izraisot procesa palaiÅ”anu katrs fails. Beidzot ir B_EXCLUSIVE_LAUNCH, kas liek sistēmai vienlaikus palaist tikai vienu procesu neatkarÄ«gi no tā, cik bieži lietotāji to palaiž (piemēram, Ŕādi Firefox darbojas operētājsistēmā Linux; tādu paÅ”u rezultātu var sasniegt Qt lietojumprogrammās, izmantojot funkciju QtSingleApplication). Pieteikumi ar B_EXCLUSIVE_LAUNCH tiek paziņots, kad lietotājs mēģina tos palaist vēlreiz: piemēram, viņi saņem faila ceļu, kuru lietotājs vēlas atvērt ar viņu palÄ«dzÄ«bu.
  • vector_icon: vektora lietojumprogrammas ikona (BeOS nebija vektoru ikonu, tā vietā lielākajai daļai lietojumprogrammu izpildāmajos failos bija divas rastra ikonas).

Protams, jÅ«s varat pievienot resursus ar jebkādiem vēlamajiem ID un veidiem un pēc tam lasÄ«t tos paŔā lietojumprogrammā vai citās lietojumprogrammās, izmantojot klasi BResources. Bet vispirms apskatÄ«sim aizraujoÅ”o ikonu tēmu.

Vektoru ikonas haiku stilā

Protams, ne tikai Haiku izvēlējās labāko ikonu formātu; Å”ajā daļā situācija ar Linux darbvirsmas vidēm ir tālu no ideāla:

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

Skatoties uz Ŕo jau var just, kas tas par gabalu.

Protams, ir mērogojams, kas satur, kā jÅ«s saprotat, vektoru ikonas. Kāpēc tad ir vēl kaut kas? Tā kā vektorgrafikas zÄ«mÄ“Å”anas rezultāts mazos izmēros var nebÅ«t ideāls. Es vēlētos saņemt dažādas iespējas, kas optimizētas dažādiem izmēriem. Linux darbvirsmas vidēs tas tiek panākts, izkliedējot dažāda izmēra ikonas visā failu sistēmā.

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

Lūdzu, ņemiet vērā: nav koncepcijas par dažādām Firefox versijām. Tādējādi nav iespējams graciozi risināt situāciju, kad sistēmā ir vairākas lietojumprogrammas versijas.

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Dažādas Firefox ikonas dažādās versijās. PaÅ”laik ar to Linux bez dažādiem kruÄ·iem nav iespējams tikt galā.

Operētājsistēmā Mac OS X tas tiek apstrādāts nedaudz smalkāk:

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

Var redzēt, ka ir viens fails firefox.icns iepakojumā Firefox.app, kurā ir visi izmēri, lai vienas un tās paÅ”as lietojumprogrammas dažādām versijām bÅ«tu dažādas ikonas.
Daudz labāk! Ikonas ceļo kopā ar lietojumprogrammu, visi resursi ir vienā failā.

AtgriezÄ«simies pie Haiku. PārsteidzoÅ”s risinājums, bez izņēmumiem. Saskaņā ar dokumentācija:

Tika izstrādāts Ä«paÅ”s HVIF formāts, kas ir ļoti optimizēts maziem izmēriem un ātrai renderÄ“Å”anai. Tāpēc mÅ«su ikonas lielākoties ir daudz mazākas nekā rastra vai plaÅ”i izmantotajā SVG formātā.

Un tie joprojām ir optimizēti:

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Ikonu izmēri HVIF, salīdzinot ar citiem formātiem.

AtŔķirība ir par lielumu!

Taču maģija ar to nebeidzas. Viens un tas pats HVIF var parādīt dažādus detalizācijas līmeņus atkarībā no parādītā izmēra, lai gan tas ir vektora formāts.

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Dažādi detalizācijas lÄ«meņi (LOD) atkarÄ«bā no renderÄ“Å”anas izmēra

Tagad par trÅ«kumiem: jÅ«s nevarat paņemt SVG, iemest to ImageMagick un saukt par dienu; jums ir jāiziet vairāki cikli, lai izveidotu ikonu HVIF formātā. Å eit paskaidrojumus. Tomēr IconOMatic var importēt SVG diezgan nepilnÄ«gi; aptuveni 90% SVG detaļu tiek importēti ar zināmu varbÅ«tÄ«bu, atlikuÅ”ie 10% bÅ«s jākonfigurē un jāmaina manuāli. Lasiet vairāk par to, kā HVIF veic savu burvÄ«bu viens var emuārā Lea Gansone

Ikonas pievienoŔana lietojumprogrammai

Tagad izveidotajai pakotnei varu pievienot ikonu pēdējo reizi, ņemot vērā visu saņemto informāciju.
Tā kā es Å”obrÄ«d Ä«paÅ”i nevēlos uzzÄ«mēt savu ikonu savai QtQuickApp ā€œSveika, pasauleā€, es to izņemu no Qt Creator.

/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

Pārbaudīsim, vai ikona ir nokopēta:

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

Izskatās labi, bet kāpēc, nokopējot jauno ikonu, tā neparādās?

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Kopētā VICN:101:BEOS:ICONs vēl netiek izmantota kā lietojumprogrammas ikona failu pārvaldniekā.

Ko es palaidu garām?

Izstrādātāja komentārs:

Mums ir jāizveido fails rdef ar visiem resursiem, pēc tam izpildiet komandu rc ŠøŠ¼Ń.rdef, tiks izveidots fails .rsrc. Pēc tam jums ir jāpalaiž komanda resattr -o ŠøŠ¼Ń_Š±ŠøŠ½Š°Ń€Š½ŠøŠŗŠ° ŠøŠ¼Ń.rsrc. Es vismaz izmantoju Ŕādas komandas, lai pievienotu ikonas saviem skriptiem.

Nu, es gribēju izveidot resursu, nevis atribÅ«tu. Es tieŔām esmu apjukusi.

Viedā keÅ”atmiņa, izmantojot failu sistēmu

ELF atribÅ«tu atvērÅ”ana un lasÄ«Å”ana notiek lēni. Kā jau rakstÄ«ju iepriekÅ”, ikona ir ierakstÄ«ta kā resurss paŔā failā. Å Ä« metode ir uzticamāka un ļauj izturēt kopÄ“Å”anu uz citu failu sistēmu. Tomēr, piemēram, tas tiek kopēts arÄ« uz failu sistēmas atribÅ«tu BEOS:ICON. Tas darbojas tikai noteiktās failu sistēmās, piemēram, BFS. Sistēmas parādÄ«tās ikonas (tracker un darbjoslā) tiek nolasÄ«tas no Ŕī paplaÅ”inātā atribÅ«ta, jo Å”is risinājums darbojas ātri. Dažās vietās (kur ātrums nav svarÄ«gs, piemēram, tipisks ā€œParā€ logs) sistēma saņem ikonu tieÅ”i no failā esoŔā resursa. Bet tas nav beigas. Atcerieties, ka operētājsistēmā Mac lietotāji var aizstāt lietojumprogrammu, direktoriju, dokumentu ikonas ar savām, jo ā€‹ā€‹operētājsistēmā Mac ir iespējams veikt Ŕīs ā€œsvarÄ«gāsā€ darbÄ«bas, piemēram, jaunas Slack ikonas aizstāŔana ar iepriekŔējo. Haiku resurss (failā) ir jāuztver kā oriÄ£inālā ikona, kas nāk kopā ar lietojumprogrammu, un atribÅ«ts (BFS failu sistēmā) ir kaut kas, kas ļauj lietotājam veikt izmaiņas pēc vēlÄ“Å”anās (lai gan, mājiens, GUI pielāgotas ikonas ievietoÅ”anai ikonas augÅ”pusē nav obligāta).

Failu sistēmas atribūtu pārbaude

Ar resaddr Ir iespējams pārbaudīt un iestatīt failu sistēmas atribūtus.

/> 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.
(...)

BÅ«tÄ«bā tā ir "lÄ«me", kas veic pārveidoÅ”anu starp (uzticamiem) resursiem un (ātriem) failu sistēmas atribÅ«tiem. Un tā kā sistēma sagaida resursu saņemÅ”anu un kopÄ“Å”anu veic automātiski, es par to vairs neuztraucos.

hpkg pakeŔu burvība

PaŔlaik (visbiežāk) pakotnes tiek izmantotas, lai iegūtu programmas uz Haiku .hpkg. Neļaujiet sevi apmānīt ar vienkārŔu nosaukumu: .hpkg formāts darbojas pilnīgi savādāk nekā citi formāti ar līdzīgiem nosaukumiem, ar kuriem esat sastapies, tam ir patiesas lielvaras.

Izmantojot tradicionālos pakotņu formātus, es ilgu laiku biju sajukums Ŕī fakta dēļ: jÅ«s lejupielādējat vienu lietu (pakotni), bet sistēmā tiek instalēta cita lieta (faili pakotnes iekÅ”pusē). Instalējot pakotni tradicionālā veidā, ir diezgan grÅ«ti pārvaldÄ«t failus (piemēram, tos dzēst). Un viss, jo iepakojuma saturs izkaisÄ«ti visā failu sistēmā, tostarp vietās, kur vidusmēra lietotājam var nebÅ«t rakstÄ«Å”anas piekļuves. Tas rada veselu programmu klasi - pakeÅ”u pārvaldnieki. Taču jau instalētās programmatÅ«ras pārsÅ«tÄ«Å”ana, piemēram, uz citu maŔīnu, noņemamo disku vai failu serveri, kļūst vēl grÅ«tāka, ja ne pilnÄ«gi neiespējama. Tipiskā sistēmā, kuras pamatā ir Linux, var viegli bÅ«t no vairākiem simtiem tÅ«kstoÅ”u lÄ«dz miljoniem atseviŔķu failu. Lieki piebilst, ka tas ir gan trausls, gan lēns, piemēram, sākotnēji uzstādot sistēmu, instalējot, atjauninot un atinstalējot parastās pakotnes, kā arÄ« kopējot sāknÄ“Å”anas apjomu (saknes nodalÄ«jumu) uz citu datu nesēju.

Es strādāju pie projekta AppImage, kas ir daļējs kruÄ·is galalietotāju lietojumprogrammām. Å is ir programmatÅ«ras izplatÄ«Å”anas formāts, kas apkopo lietojumprogrammu un visas tās atkarÄ«bas vienā failu sistēmas attēlā, kas tiek uzstādÄ«ts, startējot lietojumprogrammu. Ievērojami vienkārÅ”o lietas, jo tas pats ImageMagick pēkŔņi pārvērÅ”as par vienu failu, ko failu pārvaldniekā pārvalda vienkārÅ”i mirstÄ«gie. Piedāvātā metode darbojas tikai programmatÅ«rai, kā norādÄ«ts projekta nosaukumā, un tai ir arÄ« savs problēmu kopums, jo cilvēki, kas ir iesaistÄ«ti programmatÅ«ras piegādē Linux, vienmēr norāda uz mani ar bultiņu.

AtgriezÄ«simies pie Haiku. Vai ir izdevies atrast optimālo lÄ«dzsvaru starp tradicionālajām pakotņu sistēmām un uz attēliem balstÄ«tas programmatÅ«ras piegādi? Viņas pakas .hpkg faktiski saspiesti failu sistēmas attēli. Kad sistēma sāknējas, kodols pievieno visas instalētās un aktÄ«vās pakotnes ar aptuveni Ŕādiem kodola ziņojumiem:

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

ForÅ”i, jā? Pagaidiet, bÅ«s vēl forŔāk!

Ir ļoti īpaŔs iepakojums:

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

Tajā ir ļoti minimālistiska operētājsistēma, ieskaitot kodolu. Ticiet vai nē, pat pats kodols netiek izņemts no sāknÄ“Å”anas sējuma (saknes nodalÄ«juma), bet tiek rÅ«pÄ«gi ielādēts savā vietā no iepakojuma .hpkg. Oho! Es jau minēju, ka, manuprāt, daļa no Haiku vispārējās izsmalcinātÄ«bas un konsekvences izriet no tā, ka visa sistēma, sākot no kodola un lietotāja galvenās telpas lÄ«dz pakotņu pārvaldÄ«bai un izpildlaika infrastruktÅ«rai, tiek izstrādāta, sadarbojoties vienai komandai. Iedomājieties, cik daudz dažādu grupu un komandu bÅ«tu nepiecieÅ”ams, lai palaistu kaut ko lÄ«dzÄ«gu Å”im Linux [Es iedomājos PuppyLinux projektu - apm. tulkotājs]. Pēc tam iedomājieties, cik ilgs laiks bÅ«s nepiecieÅ”ams, lai Ŕī pieeja tiktu pieņemta sadalēs. Viņi saka: paņemiet vienkārÅ”u problēmu, sadaliet to starp dažādiem izpildÄ«tājiem, un tā kļūs tik sarežģīta, ka to vairs nebÅ«s iespējams atrisināt. Haiku Å”ajā gadÄ«jumā man atvēra acis. Es domāju, ka tas ir tieÅ”i tas, kas tagad notiek operētājsistēmā Linux (Linux Å”ajā gadÄ«jumā ir kopÄ«gs termins Linux/GNU/dpkg/apt/systemd/Xorg/dbus/Gtk/GNOME/XDG/Ubuntu stekam).

Sistēmas atgrieÅ”ana, izmantojot hpkg

Cik bieži notiek Ŕāda situācija: atjaunināŔana bija veiksmÄ«ga, un tad izrādās, ka kaut kas nedarbojas tā, kā vajadzētu? Ja izmantojat parastos pakotņu pārvaldniekus, ir grÅ«ti atgriezt sistēmas stāvokli brÄ«dÄ«, kad tika instalētas jaunas pakotnes (piemēram, ja kaut kas nogāja greizi). Dažas sistēmas piedāvā risinājumus failu sistēmas momentuzņēmumu veidā, taču tie ir diezgan apgrÅ«tinoÅ”i un netiek izmantoti visās sistēmās. Haiku to atrisina, izmantojot paketes .hpkg. Ikreiz, kad sistēmā mainās pakotnes, vecās pakotnes netiek dzēstas, bet tiek saglabātas sistēmā apakÅ”direktorijās, piemēram, /Haiku/system/packages/administrative/state-<...>/ pastāvÄ«gi. Nepabeigtās darbÄ«bas saglabā savus datus apakÅ”direktorijās /Haiku/system/packages/administrative/transaction-<...>/.

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Saturs /Haiku/system/packages/administrative. Katalogos ā€œstate...ā€ ir teksta faili ar aktÄ«vo pakotņu nosaukumiem, savukārt direktorijos ā€œtransaction...ā€ ir paÅ”as pakotnes.

"Vecais aktÄ«vais stāvoklis", t.i. sarakstu .hpkg pakotnes, kas ir aktÄ«vas pirms izmaiņas, tiek ierakstÄ«tas pēc katras darbÄ«bas failu pārvaldniekā teksta failā /Haiku/system/packages/administrative/state-<...>/activated-packages. LÄ«dzÄ«gā veidā teksta failā tiek ierakstÄ«ts jauns ā€œaktÄ«vais stāvoklisā€. /Haiku/system/packages/administrative/activated-packages.

Katalogs /Haiku/system/packages/administrative/state-<...>/ satur tikai teksta failu ar Ŕī stāvokļa aktÄ«vo pakotņu sarakstu (ja pakotnes tiek instalētas bez noņemÅ”anas), un, ja pakotnes tika noņemtas vai atjauninātas, stāvokļa direktorijā ir vecas pakotņu versijas.

Kad sistēma sāk darboties, pamatojoties uz pakotņu sarakstu, tiek pieņemts lēmums aktivizēt (montēt) pakotnes. Tas ir tik vienkārÅ”i! Ja lejupielādes laikā kaut kas noiet greizi, varat likt lejupielādes pārvaldniekam izmantot citu, vecāku sarakstu. Problēma atrisināta!

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Haiku lejupielādētājs. Katrs ieejas punkts parāda atbilstoÅ”u "aktÄ«vo stāvokli"

Man patÄ«k pieeja, ka "aktÄ«vā stāvokļa" sarakstā ir vienkārÅ”i teksta faili ar viegli saprotamiem nosaukumiem .hpkg. Tas ir krasā pretstatā tam, ka tas ir paredzēts maŔīnām, nevis cilvēkiem. Ä·ekarā no OSTree vai Flatpak failu sistēmā (tādā paŔā lÄ«menÄ« kā Microsoft GUID).

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Katram laika punktam aktīvo pakotņu saraksts

Konfigurācijas dati

AcÄ«mredzot katalogā /Haiku/system/packages/administrative/writable-files satur pakotņu konfigurācijas failus, taču tie ir ierakstāmi. Galu galā, kā jÅ«s atceraties, .hpkg uzstādÄ«ts tikai lasāms. Tātad Å”ie faili pirms rakstÄ«Å”anas ir jānokopē no pakotnēm. Ir nozÄ«me.

GUI integrācija .hpkg sistēmai

Let's tagad redzēt, kā Ŕīs spÄ«dÄ«gās somas .hpkg tikt galā ar integrāciju lietotāja darba vidē (UX). Galu galā Haiku ir paredzētas personÄ«gai lietoÅ”anai. PersonÄ«gi es uzstādÄ«ju latiņu augstu, salÄ«dzinot lietotāju pieredzi ar pakotnēm .app operētājsistēmā Macintosh ar tādu paÅ”u pieredzi .hpkg. Es pat nesalÄ«dzināŔu situāciju ar darba vidēm uz Linux, jo tā ir absolÅ«ti briesmÄ«ga salÄ«dzinājumā ar citām.

Nāk prātā Ŕādi scenāriji:

  • Es vēlos apskatÄ«t iepakojuma saturu .hpkg
  • Es vēlos instalēt pakotni
  • Es vēlos izņemt iepakojumu
  • Es vēlos noņemt kaut ko, kas sistēmā ienāca kā daļa no pakotnes
  • Es vēlos kopēt kaut ko, kas sistēmā ienāca kā pakotnes daļa
  • Es vēlos lejupielādēt visas pakotnes atkarÄ«bas, kas var nebÅ«t daļa no katras Haiku instalācijas (piemēram, man ir fiziski izolēta iekārta bez interneta piekļuves).
  • Es vēlos pārvietot savas pakotnes (vai daļu no tām) atseviŔķi uz citu vietu, atseviŔķi no sāknÄ“Å”anas sējuma (saknes nodalÄ«juma) (jo, piemēram, man tajā nav pietiekami daudz vietas).

Tam vajadzētu aptvert lielāko daļu lielāko mana ikdienas darba gadījumu. Nu, sāksim.

Pārbauda iepakojuma saturu

Operētājsistēmā Mac Es vienkārÅ”i ar peles labo pogu noklikŔķiniet uz pakotnes, lai to atvērtu un skatÄ«tu saturu Finder. Galu galā patiesÄ«bā tas ir tikai slēpts direktorijs! (Es zinu, ka ir iepakojumi .pkg sistēmas daļai, kas nav lietojumprogrammas, bet parastie lietotāji ar tām visbiežāk nesadarbojas).

Uz Haiku Es ar peles labo pogu noklikŔķiniet uz iepakojuma, pēc tam noklikŔķiniet uz "Saturs", lai redzētu, kas ir iekŔā. Bet Å”eit ir tikai failu saraksts bez iespējas tos atvērt, veicot dubultklikŔķi.
BÅ«tu daudz labāk, ja bÅ«tu veids, kā (Ä«slaicÄ«gi) uzstādÄ«t iepakojumu .hpkg skatÄ«t, izmantojot failu pārvaldnieku, un lietotājam nav jāuztraucas par ievieÅ”anas detaļām. (Starp citu, jÅ«s varat atvērt .hpkg iepakot Expander, kas to var izpakot tāpat kā jebkuru citu arhÄ«vu).

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
HaikuDepot interfeiss ļauj skatÄ«t pakotņu failu sarakstu, taču nav iespējas skatÄ«t saturu, piemēram, veicot dubultklikŔķi uz README.md.

Mac uzvar Å”ajā kategorijā, taču vēlamās HaikuDepot funkcionalitātes pievienoÅ”ana nedrÄ«kst bÅ«t pārāk sarežģīta.

Pakotnes instalēŔana, izmantojot GUI

Operētājsistēmā Mac, lielākā daļa diska attēlu .dmg satur iepakojumus .app. Veiciet dubultklikŔķi uz diska attēla un pēc tam kopējiet pakotni, piemēram, ievelkot to /Applications programmā Finder. Man tas ir paÅ”saprotami, taču esmu dzirdējis, ka daži iesācēji ar to var netikt galā. Pēc noklusējuma Apple "iesaka" visas sistēmas direktoriju /Applications (NeXT tas bija gan tÄ«klā, gan individuāli), taču jÅ«s varat viegli ievietot savas lietojumprogrammas failu serverÄ« vai apakÅ”direktorijā $HOME/Applications, ja jums tas tā patÄ«k.

Uz Haiku, veiciet dubultklikŔķi uz pakotnes, pēc tam noklikŔķiniet uz ā€œInstalētā€, tas nevar bÅ«t vienkārŔāk. Es domāju, kas notiek, ja pakotnei ir atkarÄ«bas, kas ir pieejamas HaikuPorts, bet vēl nav instalētas. Operētājsistēmā Linux viņi patieŔām nezina, ko darÄ«t Å”ajā situācijā, taču risinājums ir acÄ«mredzams - jautājiet lietotājam, vai viņam ir nepiecieÅ”ams lejupielādēt un instalēt atkarÄ«bas. TieÅ”i to, ko dara Haiku.

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Es manuāli lejupielādēju 'sanity' pakotni un noklikŔķināju uz tās, pakotņu pārvaldnieks zina, no kurienes iegÅ«t tās atkarÄ«bas (pieņemot, ka krātuves jau ir reÄ£istrētas sistēmā). Ne katrs Linux izplatÄ«jums to var izdarÄ«t.

Vēl viens veids ir izmantot failu pārvaldnieku, vienkārÅ”i velciet un nometiet .hpkg iepakojumā vai iekŔā /Haiku/system/packages (pēc noklusējuma visas sistēmas instalÄ“Å”anai) vai iekŔā /Haiku/home/config/packages (individuālai instalÄ“Å”anai; dubultklikŔķi nav pieejams - mani joprojām kaitina vārds "config" Å”ajā vietā, kas man Å”ajā gadÄ«jumā ir sinonÄ«ms vārdam "iestatÄ«jumi"). Un vairāku lietotāju jēdziens pat Haiku vēl nav pieejams (droÅ”vien tāpēc tas ir tik vienkārÅ”i - nezinu, varbÅ«t vairāku lietotāju iespējas nevajadzÄ«gi sarežģīs lietas darbvirsmas darbvirsmas videi).

Haiku Å”ajā kategorijā uzvar, jo tā var strādāt ne tikai ar lietojumprogrammām, bet arÄ« ar sistēmas programmām.

Pakotnes noņemÅ”ana no GUI

Operētājsistēmā Mac, jums ir jāvelk lietojumprogrammas ikona uz atkritni, un tas arī viss. Viegli!

Uz Haiku, pirmkārt, jāatrod, kur sistēmā atrodas pakotne, jo to reti instalējat Ä«stajā vietā (sistēma dara visu). Parasti vajag ieskatÄ«ties /Haiku/system/packages (ar visas sistēmas noklusējuma instalāciju) vai iekŔā /Haiku/home/config/packages (Vai es minēju, ka ā€œconfigā€ ir nepareizs nosaukums?). Pēc tam lietojumprogramma tiek vienkārÅ”i aizvilkta uz miskasti, un viss.
Viegli! Tomēr es tā neteiktu. Lūk, kas patiesībā notiek:

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Tas notiek, ja velciet lietojumprogrammu uz atkritni no /Haiku/system/packages

Tikko mēģināju pārvietot savu vakardienas programmu "Hello World" QtQuickApp uz miskasti. Es nemēģināju pārvietot sistēmas direktoriju, un tā kā visas pakotnes ir instalētas sistēmas direktorijā, pakotni nav iespējams noņemt .hpkg bez izmaiņām "tā saturs". Parasts lietotājs nobÄ«sies un nospiedÄ«s pēc noklusējuma pieŔķirto pogu ā€œAtceltā€.

Izskaidro Mr. waddlespllash:

Šī ziņa ir vairāk nekā 10 gadus veca. Visticamāk, mums tas ir jākonfigurē tā, lai brīdinājums parādītos tikai tad, kad pati pakotne tiek pārvietota. Regulārajiem lietotājiem tas jebkurā gadījumā nav jādara.

Labi, varbÅ«t man tas jādara, izmantojot HaikuDepot? Es veicu dubultklikŔķi uz iepakojuma /Haiku/system/packages, gaidot, lÄ«dz parādÄ«sies poga ā€œAtinstalētā€. Nē, ir (tikai) ā€œInstalētā€. "Atinstalēt", kur tu esi?

Prieka pēc es mēģināju redzēt, kas notiktu, ja es noklikŔķinātu uz ā€œInstalētā€ uz jau instalētas pakotnes. Tas izrādās Ŕādi:

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Tas notiek, ja mēģināt instalēt jau instalētu pakotni.

Parādās nākamais:

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Ja iepriekŔējā logā noklikŔķināsit uz ā€œLietot izmaiņasā€, tas izskatÄ«sies Ŕādi

Es pieņemu, ka tā ir programmatūras kļūda; saite uz lietojumprogrammu jau ir tur. [autors nesniedza saiti - apm. tulkotājs]

Ātrs risinājums: pievienojiet pogu Atinstalēt, ja pakotne jau ir ievietota /Haiku/system/packages, vai iekŔā /Haiku/home/config/packages.

Apskatot HaikuDepot instalēto pakotņu sarakstu, es redzu savu pakotni sarakstā un varu to noņemt.

Mac uzvar Å”ajā kategorijā. Bet es varu iedomāties, ka ar pareizu iestatÄ«Å”anu Haiku lietotāja pieredze bÅ«s labāka nekā Mac. (Viens no izstrādātājiem to novērtēja Ŕādi: "Mazāk nekā stunda, lai pievienotu norādÄ«to funkcionalitāti HaikuDepot, ja jÅ«s zināt nedaudz C++, kāds brÄ«vprātÄ«gais?)

Kaut ko izņemt no iepakojuma

Mēģināsim noņemt paÅ”u lietojumprogrammu, nevis pakotni .hpkg, no kā tas nāca (Å”aubos, ka ā€œvienkārÅ”ajiem mirstÄ«gajiemā€ ir kāda atŔķirÄ«ba).

Operētājsistēmā Mac, lietotājs faktiski parasti strādā ar failu .dmgno kurienes nāk lietojumprogrammu pakotne .app. Parasti attēli .dmg tiek uzkrāti lejupielāžu direktorijā, un lietotājs kopē pakotnes uz /Applications. Domājams, ka daudzi lietotāji paÅ”i nezina, ko dara, Å”o hipotēzi apstiprina kāds bijuÅ”ais Apple darbinieks. (Viena no lietām, kas man nepatÄ«k operētājsistēmā Mac. Un, piemēram, ar AppImage nav nekādas atŔķirÄ«bas starp lietojumprogrammu un pakotni, kurā tā bija. Velciet ikonu uz miskasti = tas ir viss. VienkārÅ”i!)

Uz Haiku, pastāv arÄ« dalÄ«jums starp apps/ Šø packages/, tāpēc es Å”aubos, vai tas lietotājiem padarÄ«ja to skaidrāku. Bet kas notiek, ja velkat programmu no apps/ Pievienot grozam:

Mana sestā diena ar Haiku: zem resursu, ikonu un paciņu pārsega
Tas notiek, mēģinot noņemt lietojumprogrammu, kas ņemta no faila .hpkg

Tehniski tas ir pareizi (galu galā lietojumprogramma vispirms tiek mitināta tikai lasāmā failu sistēmā), taču tā nav Ä«paÅ”i noderÄ«ga lietotājam.

Ātrs risinājums: tā vietā iesakiet izmantot GUI, lai dzēstu .hpkg

Prieka pēc mēģināju dublēt lietojumprogrammu, nospiežot Alt+D. Es saņēmu ziņojumu "Nevar pārvietot vai kopēt objektus tikai lasāmā sējumā." Un viss tāpēc /system (Turklāt /system/packages Šø /system/settings) ir packagefs pievienoÅ”anas punkts (atcerieties, kā tas parādās izvadā df?). Diemžēl komandas izvade mount nenoskaidro situāciju (kā teikts vienā no iepriekŔējiem rakstiem), mountvolume nerāda to, ko meklējat (acÄ«mredzot, paketes, kas uzstādÄ«tas caur cilpu .hpkg netiek uzskatÄ«ti par "sējumiem"), un es arÄ« aizmirsu alternatÄ«vās komandas.

Å ajā kategorijā neviens neuzvarēja, izņemot AppImage (bet, ja godÄ«gi, tas ir neobjektÄ«vs viedoklis). Tomēr var iedomāties, ka pēc pielāgoÅ”anas Haiku lietotāja pieredze bÅ«s labāka nekā Mac.

PiezÄ«me: jums ir jānoskaidro, kas ir ā€œsējumsā€ saistÄ«bā ar ā€œsadaļuā€. Tas, iespējams, ir lÄ«dzÄ«gs "mapes" un "direktorija" attiecÄ«bām: lielākā daļa direktoriju failu pārvaldniekā parādās kā mapes, bet ne visi no tiem (piemēram, pakotnes, kas tiek uzskatÄ«tas par failiem). Vai Ŕāda veida displejs padara mani par oficiālu nerdi?

Pakotnes satura kopÄ“Å”ana uz citu sistēmu

Operētājsistēmā Mac, es stulbi velku paku .app, un tā kā atkarības atrodas iepakojumā, tās pārvietojas kopā.

Uz Haiku, velku aplikāciju, bet atkarības vispār netiek apstrādātas.

Ātrs risinājums: tā vietā ieteiksim vilkt visu `.hpkg pakotni kopā ar jebkādām atkarībām, ja tādas ir.

Å ajā kategorijā nepārprotami uzvar Mac. Vismaz man, viņu paradigmas cienÄ«tājam. Man vajadzētu to pārkopēt uz Haiku .hpkg aplikācijas vietā, bet sistēma man Å”o nepiedāvā...

Lejupielādējiet pakotni ar visām tās atkarībām

Ne visas maŔīnas ir visu laiku savienotas ar tÄ«klu. Gluži pretēji, dažas maŔīnas (jā, es skatos uz jums, mÅ«sdienu Windows, Mac un Linux) par to aizmirst. Man ir svarÄ«gi, lai es varētu aiziet, piemēram, uz interneta kafejnÄ«cu, lejupielādēt programmatÅ«ru noņemamajā diskā, ievietot Å”o disku savā mājas datorā un bÅ«t pārliecināts, ka viss darbosies [riskants puisis, dara to operētājsistēmā Windows... - apm. tulkotājs].

Rezultātā man ir tendence saskarties ar neapmierinātām atkarībām no Windows un Linux nedaudz biežāk nekā parasti.

Operētājsistēmā Mac tas parasti ir viens fails, viss, kas jums jādara, ir lejupielādēt .dmg. Visbiežāk tam nav citu atkarÄ«bu, izņemot tās, kuras pēc noklusējuma nodroÅ”ina pati MacOS. Izņēmums ir sarežģītas lietojumprogrammas, kurām nepiecieÅ”ama atbilstoÅ”a izpildes vide, piemēram, java.

Uz Haiku lejupielādes pakotni .hpkg Piemēram, vienai un tai paÅ”ai lietojumprogrammai java var nepietikt, jo java mērÄ·a datorā var bÅ«t vai nebÅ«t. Vai ir kāds veids, kā lejupielādēt visas noteiktās pakotnes atkarÄ«bas .hpkg, izņemot tos, kas pēc noklusējuma ir instalēti programmā Haiku un tāpēc tiem jābÅ«t katrā Haiku sistēmā?

Mac uzvar Ŕajā kategorijā ar nelielu pārsvaru.

Komentāri Mr. waddlesplash:

UzrakstÄ«t programmu, lai apkopotu visas lietojumprogrammas atkarÄ«bas kā pakotņu kopu .hpkg kādam, kas pārzina Haiku iekŔējo darbÄ«bu, pietiek ar aptuveni 15 minÅ«tēm. Atbalsta pievienoÅ”ana Å”im nolÅ«kam nav tik sarežģīta, ja pēc tā ir reāla vajadzÄ«ba. Bet man Ŕī ir reta situācija.

Aizturēsim elpu lÄ«dz nākamajam Ŕīs sērijas rakstam.

Paku pārvietoŔana uz atseviŔķu vietu

Kā jau rakstÄ«ju iepriekÅ”, es vēlos ievietot savas pakas .hpkg (nu vai daļu no tiem) uz Ä«paÅ”u vietu, atseviŔķi no parastā izvietojuma sāknÄ“Å”anas sējumā (saknes nodalÄ«jumā). Parastā (ne tik teorētiskā) gadÄ«jumā iemesls tam ir tas, ka man pastāvÄ«gi pietrÅ«kst brÄ«vas vietas savos (iebÅ«vētajos) diskos, lai cik lieli tie bÅ«tu. Un es parasti pievienoju ārējos diskus vai tÄ«kla koplietojumus tur, kur atrodas manas lietojumprogrammas.

Operētājsistēmā Mac Es tikai pārvietoju pakas .app uz noņemamo disku vai tÄ«kla direktoriju programmā Finder, un viss. Es joprojām varu veikt dubultklikŔķi, lai atvērtu lietojumprogrammu, kā parasti, izmantojot sāknÄ“Å”anas skaļumu. Tikai!

Uz Haiku, kā man teica, to var panākt, pārvietojot manu .hpkg pakotnes uz noņemamo disku vai tīkla direktoriju, bet pēc tam konsolē ir jāizmanto dažas nedokumentētas komandas, lai tās pievienotu sistēmā. Es nezinu, kā to izdarīt, izmantojot tikai GUI.

Mac uzvar Ŕajā kategorijā.

Saskaņā ar mr. waddlesplash:

Å Ä« ir optimizācija, kuras pamatā ir normāla lietoÅ”ana. Ja bÅ«s pieprasÄ«jums no vairāk nekā viena lietotāja, mēs to Ä«stenosim. Jebkurā gadÄ«jumā pastāv treŔās puses ievieÅ”anas iespēja.

Par to mēs runāsim nākamajā rakstā.

Runājot par tÄ«kla direktorijiem, bÅ«tu lieliski (es domāju, ka LAN puses) bÅ«tu vienkārÅ”as, atklājamas, tÄ«kla mēroga lietojumprogrammas (piemēram, Zeroconf), kuras var kopēt uz lokālo datoru vai palaist tieÅ”i no lokālā tÄ«kla. Protams, izstrādātājiem ir iespēja atteikties, izmantojot app_flags.

Nobeiguma ziņojums par hpkg sistēmas integrāciju ar GUI

Es domāju, ka tas galvenokārt ir saistīts ar integrācijas relatīvo jaunumu .hpkg GUI joprojām atstāj daudz ko vēlēties. Jebkurā gadījumā ir dažas lietas, kuras varētu uzlabot UX ziņā...

Vēl viena lieta: kodola atkļūdoÅ”anas zeme

BÅ«tu lieliski, ja, piemēram, kodola panikas laikā varētu ievadÄ«t komandas syslog | grep usb. Haiku tas ir iespējams, pateicoties Kernel Debug Land. Kā jÅ«s varat redzēt Å”o maÄ£iju darbÄ«bā, ja viss darbojas tā, kā vajadzētu, nenokļūstot kodola panikā? VienkārÅ”i nospiežot Alt+PrintScn+D (atkļūdoÅ”anas mnemonika). Uzreiz atceros Programmētāja atslēga, kas ļāva sākotnējiem Macintosh izstrādātājiem ievadÄ«t atkļūdotāju (ja tāds, protams, bija instalēts).

Secinājums

Es sāku saprast, ka Haiku sistēmas izsmalcinātība rodas no tā, ka darbu veic viena neliela komanda ar skaidru fokusu uz darba vidi, ar visiem sistēmas slāņiem pieejamiem.
Krass kontrasts ar Linux/GNU/dpkg/apt/systemd/Xorg/dbus/Gtk/GNOME/XDG/Ubuntu pasauli, kur viss ir sadalīts mazos gabaliņos tiktāl, ka abstrakcija sēž uz abstrakcijas un brauc ar kruķiem.
Bija arÄ« izpratne par to, kā sistēma .hpkg apvieno tradicionālo pakotņu pārvaldnieku, Snappy, Flatpak, AppImage, pat btrfs, labāko praksi un apvieno tos ar Mac pieeju ā€œtikai darbojasā€.

It kā manā galvā kaut kas ā€œpārslēdzāsā€, un es sapratu, kā sistēma .hpkg zina, kā ripot prom, tikai paskatoties uz viņu. Bet tas nav es, bet gan sistēmas skaistums un vienkārŔība. Liela daļa no tā ir iedvesmota no oriÄ£inālā Mac gara.

Jā, pārlÅ«koÅ”ana pārlÅ«kprogrammā var bÅ«t saraustÄ«ta un darboties kā gliemezis, var trÅ«kt aplikāciju (nav Gtk, Electron - izstrādātāji secināja, ka ar izsmalcinātÄ«bu tiem neiet labi), video un 3d paātrinājuma var nebÅ«t pilnÄ«gi, bet es tomēr patÄ«k Ŕī sistēma. Galu galā Ŕīs lietas var labot, un tās agrāk vai vēlāk parādÄ«sies. Tas ir tikai laika un varbÅ«t nedaudz sarkano acu jautājums.

Es nevaru piedāvāt palīdzību, bet domāju, ka no Ŕī brīža tas sāksies gads Haiku uz darbvirsmas.

NejauÅ”as problēmas

Varbūt jau ir pieprasījumi, vai man tie jāatver?

  • BeScreenCapture jāspēj eksportēt uz GIF, piemēram, Peek. To var izdarÄ«t, izmantojot ffmpeg, kas jau ir pieejama Haiku. Pieteikums.
  • Ekrānuzņēmuma programmatÅ«rai neizdodas tvert modālo logu, tā vietā tiek uzņemts viss ekrāns
  • JÅ«s nevarat apgriezt ekrānuzņēmumus, izmantojot WonderBrush apgrieÅ”anas rÄ«ku, un pēc tam saglabāt rezultātu failā
  • Man ne Ä«paÅ”i patÄ«k rokas kursors Haiku valodā, bet, manuprāt, tas ir saistÄ«ts ar silto nostalÄ£isko sajÅ«tu. Tas ir Ä«paÅ”i kaitinoÅ”i, izmantojot apgrieÅ”anas rÄ«ku Krita, jo tas rada neprecÄ«zu apgrieÅ”anu (skatiet modālo dialogu ekrānuzņēmumus Å”ajā rakstā). Krustveida kursors bÅ«tu brÄ«niŔķīgs. Pieteikums.

Izmēģiniet to pats! Galu galā Haiku projekts nodroÅ”ina Ä£enerētus attēlus palaiÅ”anai no DVD vai USB katru dienu. Lai instalētu, vienkārÅ”i lejupielādējiet attēlu un ierakstiet to zibatmiņas diskā, izmantojot Etcher

Vai jums ir kādi jautājumi? Aicinām uz krievvalodīgo telegrammas kanāls.

Kļūdu pārskats: Kā ieŔaut sev kājā C un C++ valodā. Haiku OS recepŔu kolekcija

No autors tulkojums: Å”is ir sestais raksts sērijā par Haiku.

Rakstu saraksts: Pirmais Otrais TreŔais Ceturtais Piektais

Avots: www.habr.com

Pievieno komentāru