Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida

TP; DR: Haiku - bu shaxsiy kompyuterlar uchun maxsus ishlab chiqilgan operatsion tizim, shuning uchun uning ish stoli muhitini boshqalarga qaraganda ancha yaxshi qiladigan bir nechta fokuslar mavjud. Lekin u qanday ishlaydi?

Yaqinda Men Haiku-ni kashf qildim, bu kutilmagan yaxshi tizim. Men hali ham uning qanchalik silliq ishlashiga hayratdaman, ayniqsa Linux ish stoli muhitlari bilan solishtirganda. Bugun men kaputni ko'rib chiqaman. Chuqur tushunish uchun kerak bo'lganda, men asl Macintosh, Mac OS X va Linux ish stoli muhitlari (freedesktop.org dan XDG standarti) bilan taqqoslayman.

ELF fayllaridagi manbalar

Kecha men IconOMatic ELF bajariladigan fayllarda rdef resurslaridagi piktogrammalarni saqlashi mumkinligini bilib oldim. Bugun men bu haqiqatan ham qanday ishlashini ko'rmoqchiman.

Resurslar? tsitata ΠΎΡ‚ Bryus Xorn, Macintosh Finderning asl muallifi va Macintosh Resurs menejerining "otasi":

Men an'anaviy kodlashning qattiq tabiatidan xavotirdaman. Men uchun kodda muzlatilgan, hech narsani dinamik ravishda o'zgartirish qobiliyatiga ega bo'lmagan dastur g'oyasi eng vahshiylikdir. Ishlash vaqtida iloji boricha o'zgartirish mumkin bo'lishi kerak. Albatta, dastur kodining o'zini o'zgartirib bo'lmaydi, lekin kodni qayta kompilyatsiya qilmasdan biror narsani o'zgartirish mumkinmi?

Asl Macintosh-da ular ushbu fayllarni "ma'lumotlar bo'limi" va "resurslar bo'limi" ga ega qildilar, bu esa piktogrammalar, tarjimalar va shunga o'xshash narsalarni saqlashni nihoyatda oson qildi. bajariladigan fayllarda.

Mac-da bu ishlatiladi Qayta tahrirlash, - to'satdan - resurslarni tahrirlash uchun grafik dastur.

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Asl Macintosh-da ResEdit

Natijada, piktogramma, menyu elementlari, tarjimalar va boshqalarni tahrirlash mumkin bo'ldi. etarlicha oson, lekin ular hali ham ilovalar bilan "sayohat qilishadi".
Qanday bo'lmasin, bu yondashuv katta kamchilikka ega edi: u faqat Apple fayl tizimlarida ishladi, bu Apple Mac OS X ga o'tishda "resurslar bo'limi" dan voz kechganining sabablaridan biri edi.
Mac OS X da Apple fayl tizimidan mustaqil yechimni xohladi, shuning uchun ular paketlar tushunchasini (NeXT-dan), fayl menejeri tomonidan "shaffof ob'ektlar" sifatida ko'rib chiqiladigan kataloglarni, kataloglar emas, balki fayllar kabi qabul qildilar. Formatdagi ilovaga ega har qanday paket .app boshqa narsalar qatorida faylga ega Info.plist (Applening JSON yoki YAML ekvivalentida) ilova metama'lumotlarini o'z ichiga oladi.

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Mac OS X ilovalar paketidagi Info.plist fayli uchun kalitlar.

Belgilar, UI fayllari va boshqalar kabi manbalar paketda fayllar sifatida saqlanadi. Kontseptsiya aslida NeXT-da o'z ildizlariga qaytdi.

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
1.0 yilda NeXTSTEP 1989 da Mathematica.app: terminalda fayllar katalogi sifatida, lekin grafik fayl boshqaruvchisida bitta ob'ekt sifatida ko'rinadi.

Keling, Xayku asos solgan tushunchalar – BeOS ga qaytaylik. Uning ishlab chiquvchilari PEF (PowerPC) dan ELF (x86) ga o'tishda (Linux-da xuddi shunday) ELF fayllarining oxiriga resurs bo'limini qo'shishga qaror qilishdi. U o'zining to'g'ri ELF bo'limidan foydalanmadi, u oddiygina ELF faylining oxiriga qo'shildi. Dastur natijasida strip va binutillardan bo'lganlar bundan bexabar, shunchaki kesib tashladilar. Shuning uchun, BeOS-da ELF fayliga resurslar qo'shayotganda, uni Linux vositalari bilan manipulyatsiya qilmaslik yaxshiroqdir.

Hozir Xayku nima bo'lyapti? Asosan, ko'proq yoki kamroq bir xil.

Nazariy jihatdan, resurslarni ELFning kerakli bo'limiga joylashtirish mumkin edi. irc.freenode.net saytidagi #haiku kanalidagi ishlab chiquvchilarga ko'ra:

ELF bilan bo'lim yanada mantiqiy bo'lar edi ... biz buni shunday qilmayotganimizning yagona sababi - bu biz BeOS-da qilganimizdir."
Va endi buni o'zgartirishning ma'nosi yo'q.

Resurslarni boshqarish

Resurslar tuzilgan "resurs" formatida yoziladi: asosan o'lchamlari bo'lgan resurslar ro'yxati, keyin esa ularning mazmuni. Men esladim ar formatida.
Xaykudagi resurslarni qanday tekshirish mumkin? ResEdit kabi narsa bormi?
Shunga ko'ra hujjatlar:

Ilovalar to'plamida taqdim etilgan resurslarni ko'rish uchun siz bajariladigan faylni shunga o'xshash dasturga sudrab olishingiz mumkin Resurschi. Bundan tashqari, terminalga borib, buyruqni ishga tushirishingiz mumkin listres имя_Ρ„Π°ΠΉΠ»Π°.

Resourcer HaikuDepot-da mavjud, ammo u men uchun shunchaki ishdan chiqadi.

ELF fayllaridagi resurslarni qanday boshqarish mumkin? Foydalanish rsrc ΠΈ rdef. rdef fayllar to'planadi rsrc. fayl rdef oddiy matn formatida saqlanadi, shuning uchun u bilan ishlash ancha oson. Fayl formati rsrc ELF faylining oxiriga qo'shiladi. Keling, o'ynashga harakat qilaylik:

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

Dasturdan foydalanishingiz mumkin xres tekshirish va nazorat qilish uchun:

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

Mayli, harakat qilaylikmi?

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

Resurslar va format haqida ko'proq rdef o'qishingiz mumkin shu yerda.

Standart manba turlari

Resurslarga biror narsa qo'yishingiz mumkin bo'lsa-da, bir nechta belgilangan standart turlari mavjud:

  • app_signature: MIME ilova turi, faylni ochiq xaritalash, ishga tushirish, IPC va boshqalar uchun.
  • app_name_catalog_entry: Ilova nomi odatda ingliz tilida bo'lganligi sababli, bu erda siz tarjima qilingan nomlar joylashgan joylarni belgilashingiz mumkin, shunda turli tillardagi foydalanuvchilar xohlasa, tarjima qilingan dastur nomini ko'rishlari mumkin.
  • app_version: aynan siz o'ylagan narsa
  • app_flags: bildiradi registrar arizani qanday ko'rib chiqish kerak. Oβ€˜ylaymanki, bunda koβ€˜p narsa bor. Masalan, bor B_SINGLE_LAUNCH, bu foydalanuvchi har safar so'raganida tizimni yangi dastur jarayonini ishga tushirishga majbur qiladi (xuddi shu printsip Linuxda ko'pchilik ilovalar uchun qo'llaniladi). Yemoq B_MULTIPLE_LAUNCH, jarayonning ishlashiga sabab bo'ladi har bir fayl. Nihoyat bor B_EXCLUSIVE_LAUNCH, bu tizimni foydalanuvchilar qanchalik tez-tez ishga tushirishidan qat'i nazar, bir vaqtning o'zida faqat bitta jarayonni ishga tushirishga majbur qiladi (masalan, Firefox Linuxda shunday ishlaydi; funksiyadan foydalangan holda Qt ilovalarida xuddi shunday natijaga erishish mumkin. QtSingleApplication). Ilovalar bilan B_EXCLUSIVE_LAUNCH foydalanuvchi ularni qayta ishga tushirishga harakat qilganda xabar qilinadi: masalan, foydalanuvchi ularning yordami bilan ochmoqchi bo'lgan fayl yo'lini oladi.
  • vector_icon: Vektorli dastur belgisi (BeOS-da vektor piktogrammalari yo'q edi, aksariyat ilovalar o'rniga ularning bajariladigan fayllarida ikkita rastr belgisi mavjud edi).

Albatta, siz istalgan identifikator va turlarga ega resurslarni qo'shishingiz mumkin, keyin ularni ilovaning o'zida yoki sinfdan foydalangan holda boshqa ilovalarda o'qishingiz mumkin. BResources. Ammo birinchi navbatda, piktogrammalarning qiziqarli mavzusini ko'rib chiqaylik.

Hayku uslubidagi vektor piktogramma

Albatta, nafaqat Xayku eng yaxshi piktogramma formatini tanladi; bu qismda Linux ish stoli muhitlari bilan bog'liq vaziyat idealdan uzoqdir:

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

Bunga qarab, uning qanday parcha ekanligini allaqachon his qilishingiz mumkin.

Albatta, siz tushunganingizdek vektor piktogrammalarini o'z ichiga olgan kengaytiriladigan mavjud. Nega boshqa narsa bor? Chunki kichik o'lchamlarda vektor grafikasini chizish natijasi idealdan kamroq bo'lishi mumkin. Men turli o'lchamlar uchun optimallashtirilgan turli xil variantlarga ega bo'lishni xohlayman. Linux ish stoli muhitlarida bunga fayl tizimi bo'ylab turli o'lchamdagi piktogrammalarni tarqatish orqali erishiladi.

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

Iltimos, diqqat qiling: Firefox-ning turli versiyalari haqida tushuncha yo'q. Shunday qilib, tizimda dasturning bir nechta versiyalari mavjud bo'lgan vaziyatni oqilona hal qilish mumkin emas.

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Turli versiyalarda turli xil Firefox piktogrammalari. Hozircha Linuxda buni turli tayoqchalarsiz hal qilib bo'lmaydi.

Mac OS X buni biroz nozikroq boshqaradi:

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

Bitta fayl borligini ko'rish mumkin firefox.icns paketda Firefox.app, barcha o'lchamlarni o'z ichiga oladi, shuning uchun bir xil ilovaning turli versiyalarida turli xil belgilar mavjud.
Juda yaxshi! Belgilar ilova bilan sayohat qiladi, barcha manbalar bitta faylda.

Keling, Xaykuga qaytaylik. Ajablanarli yechim, istisnolar yo'q. Ga binoan hujjatlar:

Kichik o'lchamlar va tez ko'rsatish uchun yuqori darajada optimallashtirilgan maxsus HVIF formati ishlab chiqilgan. Shuning uchun bizning piktogrammalarimiz rastr yoki keng tarqalgan SVG formatiga qaraganda ancha kichikroq.

Va ular hali ham optimallashtirilgan:

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Boshqa formatlarga nisbatan HVIF-dagi piktogramma o'lchamlari.

Farqi kattalik tartibidir!

Ammo sehr bu erda tugamaydi. Xuddi shu HVIF vektor formati bo'lsa ham, ko'rsatilgan o'lchamga qarab turli darajadagi tafsilotlarni ko'rsatishi mumkin.

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Render hajmiga qarab turli darajadagi tafsilotlar (LOD).

Endi kamchiliklar haqida: siz SVG-ni qabul qila olmaysiz, uni ImageMagick-ga tashlay olmaysiz va uni bir kunga chaqira olmaysiz; HVIF formatida piktogramma yaratish uchun bir nechta tsikllardan o'tishingiz kerak. shu yerda tushuntirishlar. Biroq, IconOMatic SVG-ni juda nomukammal import qila oladi; Taxminan 90% SVG tafsilotlari ba'zi ehtimollik bilan import qilinadi, qolgan 10% qo'lda sozlanishi va o'zgartirilishi kerak bo'ladi. HVIF qanday sehrlashi haqida ko'proq o'qing mumkin blogda Lea Ganson

Ilovaga belgi qo'shish

Endi yaratilgan paketga belgi qo'shishim mumkin o'tgan safar, olingan barcha ma'lumotlarni hisobga olgan holda.
Xo'sh, men hozirda "Salom, dunyo" QtQuickApp ilovam uchun o'z piktogramma chizishni unchalik istamaganim uchun, uni Qt Creator-dan tortib olaman.

/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

Belgining nusxalanganligini tekshiramiz:

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

Yaxshi ko'rinadi, lekin nega yangi belgi nusxa ko'chirilganda u ko'rinmaydi?

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Nusxalangan VICN:101:BEOS:ICONs fayl menejerida hali ilova belgisi sifatida ishlatilmagan.

Men nimani sog'indim?

Ishlab chiquvchi sharhi:

Biz fayl yaratishimiz kerak rdef barcha resurslar bilan, keyin buyruqni bajaring rc имя.rdef, bu faylni yaratadi .rsrc. Keyin buyruqni bajarishingiz kerak resattr -o имя_Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠ° имя.rsrc. Hech bo'lmaganda, men skriptlarimga piktogramma qo'shish uchun shunga o'xshash buyruqlardan foydalanaman.

Xo'sh, men atributni emas, balki resurs yaratmoqchi edim. Men haqiqatan ham gangib qoldim.

Fayl tizimi yordamida aqlli keshlash

ELF atributlarini ochish va o'qish sekin. Yuqorida yozganimdek, belgi faylning o'zida manba sifatida yozilgan. Ushbu usul yanada ishonchli va boshqa fayl tizimiga nusxa ko'chirishdan omon qolish imkonini beradi. Shu bilan birga, u, masalan, fayl tizimi atributiga ham ko'chiriladi BEOS:ICON. Bu faqat ma'lum fayl tizimlarida ishlaydi, masalan, BFS. Tizim tomonidan ko'rsatilgan piktogrammalar (Tracker va Deskbar'da) ushbu kengaytirilgan atributdan o'qiladi, chunki bu yechim tez ishlaydi. Ba'zi joylarda (tezlik muhim bo'lmagan joylarda, masalan, odatiy "Haqida" oynasi) tizim belgini to'g'ridan-to'g'ri fayldagi manbadan oladi. Lekin bu oxiri emas. Esda tutingki, Mac-da foydalanuvchilar ilovalar, kataloglar, hujjatlar piktogrammalarini o'zlari bilan almashtirishlari mumkin, chunki Mac-da bu "muhim" ishlarni bajarish mumkin, masalan yangi Slack belgisini oldingisiga almashtirish. Haiku-da siz resursni (fayldagi) ilova bilan birga keladigan asl piktogramma sifatida va atributni (BFS fayl tizimida) foydalanuvchi o'z xohishiga ko'ra o'zgartirishlar kiritishga imkon beradigan narsa deb o'ylashingiz kerak (garchi, maslahat, Belgining tepasiga maxsus belgini kiritish uchun GUI ixtiyoriy). hali sukut bo'yicha amalga oshirilmagan).

Fayl tizimining atributlarini tekshirish

Yordamida resaddr Fayl tizimining atributlarini tekshirish va sozlash mumkin.

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

Bu (ishonchli) resurslar va (tezkor) fayl tizimi atributlari o'rtasida oldinga va orqaga konvertatsiyani amalga oshiradigan "elim" dir. Tizim resurslarni olishni kutayotgani va nusxa ko'chirishni avtomatik ravishda amalga oshirganligi sababli, men bundan keyin tashvishlanmayman.

Hpkg paketlarining sehri

Hozirgi vaqtda (ko'pincha) paketlar Haiku-da dasturlarni olish uchun ishlatiladi .hpkg. Oddiy nomga aldanmang: .hpkg formati siz duch kelgan o'xshash nomli boshqa formatlarga qaraganda butunlay boshqacha ishlaydi, u haqiqiy super kuchlarga ega.

An'anaviy paket formatlari bilan men bu haqiqat tufayli uzoq vaqt xafa bo'ldim: siz bir narsani (paketni) yuklab olasiz, ikkinchisi esa tizimga o'rnatilgan (paket ichidagi fayllar). Paketni an'anaviy tarzda o'rnatishda fayllarni boshqarish (masalan, ularni o'chirish) juda qiyin. Va barchasi paketning mazmuni tufayli fayl tizimi bo'ylab tarqalgan, shu jumladan o'rtacha foydalanuvchi yozish huquqiga ega bo'lmagan joylar. Bu dasturlarning butun sinfini keltirib chiqaradi - paket menejerlari. Ammo allaqachon o'rnatilgan dasturiy ta'minotni, masalan, boshqa mashinaga, olinadigan disk yoki fayl serveriga o'tkazish butunlay imkonsiz bo'lmasa ham, yanada qiyinlashadi. Oddiy Linux-ga asoslangan tizimda osongina bir necha yuz mingdan millionlab individual fayllar bo'lishi mumkin. Aytish kerakki, bu ham mo'rt, ham sekin, masalan, tizimni dastlab o'rnatishda, oddiy paketlarni o'rnatish, yangilash va o'chirishda va yuklash hajmini (ildiz bo'limi) boshqa vositaga nusxalashda.

Men oxirgi foydalanuvchi ilovalari uchun qisman tayoqcha bo'lgan AppImage loyihasi ustida ishlayapman. Bu dastur va uning barcha bog'liqliklarini dastur ishga tushganda o'rnatiladigan yagona fayl tizimi tasviriga to'playdigan dasturiy ta'minotni tarqatish formati. Bu narsalarni sezilarli darajada soddalashtiradi, chunki xuddi o'sha ImageMagick to'satdan fayl boshqaruvchisida oddiy odamlar tomonidan boshqariladigan yagona faylga aylanadi. Taklif etilayotgan usul faqat loyiha nomida aks ettirilgan dasturiy ta'minot uchun ishlaydi, shuningdek, o'ziga xos muammolar to'plamiga ega, chunki Linux uchun dasturiy ta'minotni etkazib berish bilan shug'ullanadigan odamlar doimo o'qni menga qaratadi.

Keling, Xaykuga qaytaylik. An'anaviy paketli tizimlar va tasvirga asoslangan dasturiy ta'minotni etkazib berish o'rtasidagi optimal muvozanatni topish mumkinmi? Uning paketlari .hpkg aslida siqilgan fayl tizimi tasvirlari. Tizim ishga tushganda, yadro barcha o'rnatilgan va faol paketlarni taxminan quyidagi yadro xabarlari bilan o'rnatadi:

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"

Ajoyib, ha? U erda turing, u yanada salqinroq bo'ladi!

Juda maxsus paket mavjud:

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

U juda minimalistik operatsion tizimni, jumladan yadroni o'z ichiga oladi. Ishoning yoki ishonmang, hatto yadroning o'zi ham yuklash hajmidan (ildiz bo'limi) olib tashlanmaydi, lekin ehtiyotkorlik bilan paketdan o'z joyiga yuklanadi. .hpkg. Qoyil! Men Xaykuning umumiy murakkabligi va izchilligining bir qismi yadro va asosiy foydalanuvchilar maydonidan tortib to paketlarni boshqarish va ish vaqti infratuzilmasigacha bir jamoa tomonidan hamkorlikda ishlab chiqilganligidan kelib chiqadi, deb o'ylayman. Tasavvur qiling-a, Linuxda shunga o'xshash narsalarni ishlatish uchun qancha turli guruhlar va jamoalar kerak bo'ladi [Men PuppyLinux loyihasini tasavvur qilaman - taxminan. tarjimon]. Keyin tasavvur qiling-a, ushbu yondashuv tarqatishda qabul qilinishi uchun qancha vaqt kerak bo'ladi. Ular aytadilar: oddiy masalani oling, uni turli ijrochilar o'rtasida taqsimlang va u shunchalik murakkablashadiki, endi uni hal qilishning iloji bo'lmaydi. Bu holatda Xayku ko'zlarimni ochdi. Menimcha, hozir Linuxda aynan shu narsa sodir bo'lmoqda (bu holda Linux Linux/GNU/dpkg/apt/systemd/Xorg/dbus/Gtk/GNOME/XDG/Ubuntu stekining umumiy atamasi).

hpkg yordamida tizimni orqaga qaytarish

Quyidagi vaziyat qanchalik tez-tez sodir bo'ladi: yangilanish muvaffaqiyatli bo'ldi va keyin biror narsa kerakli darajada ishlamayaptimi? Agar siz an'anaviy paket menejerlaridan foydalansangiz, tizim holatini yangi paketlar o'rnatilishidan oldingi vaqtga qaytarish qiyin (masalan, biror narsa noto'g'ri bo'lgan taqdirda). Ba'zi tizimlar fayl tizimining oniy tasvirlari ko'rinishida vaqtinchalik echimlarni taklif qiladi, ammo ular juda og'ir va barcha tizimlarda ishlatilmaydi. Xayku buni paketlar yordamida hal qiladi .hpkg. Tizimda paketlar o'zgarganda, eski paketlar o'chirilmaydi, lekin tizimda quyidagi kabi pastki kataloglarda saqlanadi. /Haiku/system/packages/administrative/state-<...>/ doimiy. Tugallanmagan operatsiyalar o'z ma'lumotlarini pastki kataloglarda saqlaydi /Haiku/system/packages/administrative/transaction-<...>/.

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Tarkib /Haiku/system/packages/administrative. β€œState...” kataloglarida faol paketlar nomlari yozilgan matnli fayllar, β€œtranzaksiya...” kataloglarida esa paketlarning oβ€˜zi mavjud.

"Eski faol holat", ya'ni. ro'yxati .hpkg o'zgarishlardan oldin faol bo'lgan paketlar matnli fayldagi fayl menejeridagi har bir operatsiyadan keyin qayd etiladi /Haiku/system/packages/administrative/state-<...>/activated-packages. Xuddi shunday, matn faylida yangi "faol holat" yoziladi /Haiku/system/packages/administrative/activated-packages.

katalog /Haiku/system/packages/administrative/state-<...>/ faqat ushbu holatning faol paketlari ro'yxatiga ega matnli faylni o'z ichiga oladi (paketlar olib tashlanmasdan o'rnatilganda) va agar paketlar o'chirilgan yoki yangilangan bo'lsa - davlat katalogida paketlarning eski versiyalari mavjud.

Tizim ishga tushganda, paketlar ro'yxati asosida paketlarni faollashtirish (o'rnatish) to'g'risida qaror qabul qilinadi. Bu juda oddiy! Agar yuklab olish paytida biror narsa noto'g'ri bo'lsa, yuklab olish menejeriga boshqa, eski ro'yxatni ishlatishni aytishingiz mumkin. Muammo hal qilindi!

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Haiku yuklab olish dasturi. Har bir kirish nuqtasi mos keladigan "faol holat" ni ko'rsatadi.

Menga tushunarli nomlar bilan "faol holat" ro'yxati sifatida oddiy matnli fayllarga ega bo'lish yondashuvi yoqadi .hpkg. Bu odamlar uchun emas, balki mashinalar uchun ishlab chiqarilganidan keskin farq qiladi. bir to'dada fayl tizimidagi OSTree yoki Flatpak'dan (Microsoft GUID bilan bir xil darajada).

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Vaqtning har bir nuqtasi uchun faol paketlar ro'yxati

Konfiguratsiya ma'lumotlari

Ko'rinishidan, katalogda /Haiku/system/packages/administrative/writable-files paketlar uchun konfiguratsiya fayllarini o'z ichiga oladi, lekin ular yozilishi mumkin. Axir, siz eslaganingizdek, .hpkg faqat o'qish uchun o'rnatilgan. Shunday qilib, ushbu fayllarni yozishdan oldin paketlardan nusxalash kerak. Ma'nosi bor.

.hpkg tizimi uchun GUI integratsiyasi

Keling, bu porloq sumkalarni qanday ko'rib chiqaylik .hpkg foydalanuvchining ish muhitiga (UX) integratsiyani engish. Axir, Xayku shaxsiy foydalanish uchun mo'ljallangan. Shaxsan men foydalanuvchi tajribasini paketlar bilan solishtirganda barni yuqori qo'ydim .app Macintosh-da bir xil tajribaga ega .hpkg. Vaziyatni Linuxdagi ish muhitlari bilan solishtirmayman, chunki bu boshqalar bilan solishtirganda mutlaqo dahshatli.

Quyidagi stsenariylar aqlga keladi:

  • Men paketning mazmunini ko'rmoqchiman .hpkg
  • Men paketni o'rnatmoqchiman
  • Men paketni olib tashlamoqchiman
  • Men paketning bir qismi sifatida tizimga kirgan narsani olib tashlamoqchiman
  • Men paketning bir qismi sifatida tizimga kirgan narsani nusxalashni xohlayman
  • Men paketning barcha bog'liqliklarini yuklab olishni xohlayman, bu har bir Haiku o'rnatilishining bir qismi bo'lmasligi mumkin (masalan, menda Internetga kirish imkoni bo'lmagan jismoniy izolyatsiya qilingan mashina bor.)
  • Men paketlarimni (yoki ularning bir qismini) yuklash hajmidan (ildiz bo'limidan) alohida boshqa joyga ko'chirmoqchiman (chunki, masalan, menda unda etarli joy yo'q).

Bu mening kundalik ishimdagi asosiy holatlarning aksariyatini qamrab olishi kerak. Xo'sh, keling, boshlaylik.

Paket tarkibini tekshirish

Macda Men uni ochish va tarkibini Finder-da ko'rish uchun paketni o'ng tugmasini bosing. Axir, aslida bu shunchaki yashirin katalog! (Men paketlar borligini bilaman .pkg tizimning ilovalar bo'lmagan qismi uchun, lekin oddiy foydalanuvchilar ko'pincha ular bilan aloqa qilmaydi).

Xayku haqida Men paketni sichqonchaning o'ng tugmasi bilan bosing, so'ng ichida nima borligini ko'rish uchun "Tarkib" ni bosing. Lekin bu erda faqat ikki marta bosish orqali ochish imkoniyati bo'lmagan fayllar ro'yxati.
Paketni (vaqtinchalik) o'rnatishning bir usuli bo'lsa, yaxshi bo'lardi .hpkg fayl menejeri orqali ko'rish mumkin va foydalanuvchi amalga oshirish tafsilotlari haqida tashvishlanmasligi kerak. (Aytgancha, siz ochishingiz mumkin .hpkg paket ichida Expander, bu boshqa har qanday arxiv kabi uni ochishi mumkin).

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
HaikuDepot interfeysi sizga paketli fayllar ro'yxatini ko'rish imkonini beradi, lekin masalan, README.md ni ikki marta bosish orqali tarkibni ko'rishning hech qanday usuli yo'q.

Mac ushbu toifada g'olib chiqadi, lekin siz xohlagan HaikuDepot funksiyasini qo'shish unchalik qiyin bo'lmasligi kerak.

GUI orqali paketni o'rnatish

Macda, aksariyat diskdagi tasvirlar .dmg paketlarni o'z ichiga oladi .app. Disk tasvirini ikki marta bosing va paketni, masalan, ichiga sudrab ko'chiring /Applications Finder-da. Bu men uchun o'ziga xosdir, lekin men ba'zi yangi boshlanuvchilar buni uddalay olmasligini eshitdim. Odatiy bo'lib, Apple tizim bo'ylab katalogni "taklif qiladi" /Applications (NeXT-da u tarmoqqa ulangan, shuningdek individual edi), lekin siz ilovalaringizni fayl serveriga yoki pastki katalogga osongina joylashtirishingiz mumkin. $HOME/Applications, agar sizga shunday yoqsa.

Xayku haqida, paketni ikki marta bosing, keyin "O'rnatish" tugmasini bosing, bu osonroq bo'lishi mumkin emas. Agar paketda HaikuPorts-da mavjud bo'lgan, lekin hali o'rnatilmagan bog'liqliklar bo'lsa, nima bo'lishini qiziqtiraman. Linuxda ular bu vaziyatda nima qilish kerakligini bilishmaydi, ammo yechim aniq - foydalanuvchidan bog'liqliklarni yuklab olish va o'rnatish kerakligini so'rang. Aynan Xayku nima qiladi.

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Men "sanity" to'plamini qo'lda yuklab oldim va ustiga bosdim, paket menejeri uning bog'liqligini qayerdan olishni biladi (agar omborlar allaqachon tizimda ro'yxatdan o'tgan bo'lsa). Har bir Linux distributivi buni qila olmaydi.

Yana bir usul - fayl boshqaruvchisidan foydalanish, shunchaki sudrab olib tashlang .hpkg paket yoki ichida /Haiku/system/packages (tizim bo'ylab o'rnatish uchun, sukut bo'yicha) yoki ichida /Haiku/home/config/packages (individual o'rnatish uchun; sichqonchani ikki marta bosganda mavjud emas - bu joydagi "konfiguratsiya" so'zi hali ham meni bezovta qiladi, bu men uchun bu holatda "sozlamalar" bilan sinonimdir). Va bir nechta foydalanuvchilar tushunchasi hali Haiku uchun ham mavjud emas (shuning uchun ham, ehtimol, bu juda oddiy - men bilmayman, balki ko'p foydalanuvchili imkoniyatlar ish stoli ish stoli muhiti uchun narsalarni keraksiz ravishda murakkablashtirishi mumkin).

Xayku bu toifada g'olib chiqadi, chunki u nafaqat ilovalar bilan, balki tizim dasturlari bilan ham ishlay oladi.

GUI dan paketni olib tashlash

Macda, dastur belgisini axlat qutisiga sudrab o'tishingiz kerak va bu hammasi. Osonlik bilan!

Xayku haqida, birinchi navbatda, paketning tizimda joylashgan joyini topishingiz kerak, chunki siz uni kamdan-kam hollarda to'g'ri joyga o'rnatasiz (tizim hamma narsani qiladi). Odatda siz qarashingiz kerak /Haiku/system/packages (tizim bo'ylab standart o'rnatish bilan) yoki ichida /Haiku/home/config/packages (Men "config" noto'g'ri nom ekanligini aytdimmi?). Keyin dastur shunchaki axlat qutisiga tortiladi va bu ham.
Osonlik bilan! Biroq, men buni aytmagan bo'lardim. Mana, aslida nima sodir bo'lmoqda:

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Agar siz ilovani axlat qutisiga tortib olsangiz, shunday bo'ladi /Haiku/system/packages

Kechagi QtQuickApp-dagi "Salom Dunyo" ilovasini axlat qutisiga ko'chirishga harakat qildim. Men tizim katalogini ko'chirishga harakat qilmadim, va barcha paketlar tizim katalogiga o'rnatilganligi sababli paketni olib tashlash mumkin emas .hpkg o'zgarishsiz "uning tarkibi". Oddiy foydalanuvchi qo'rqib ketadi va sukut bo'yicha tayinlangan "Bekor qilish" tugmasini bosing.

Tushuntirib beradi Janob. vaddlesplash:

Bu post 10 yoshdan oshgan. Ehtimol, biz uni ogohlantirish faqat paketning o'zi ko'chirilganda paydo bo'lishi uchun sozlashimiz kerak. Oddiy foydalanuvchilar buni baribir qilishlari shart emas.

Mayli, buni HaikuDepot yordamida qilishim kerakmi? Men paketni ikki marta bosaman /Haiku/system/packages, "O'chirish" tugmasi paydo bo'lishini kuting. Yo'q, (faqat) "O'rnatish" mavjud. "O'chirish", qayerdasiz?

Faqat o'yin-kulgi uchun, agar allaqachon o'rnatilgan paketda "O'rnatish" tugmasini bossam nima bo'lishini ko'rishga harakat qildim. Bu shunday chiqadi:

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Agar siz allaqachon o'rnatilgan paketni o'rnatishga harakat qilsangiz, bu sodir bo'ladi.

Keyingi paydo bo'ladi:

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Agar oldingi oynada "O'zgarishlarni qo'llash" tugmasini bossangiz, u shunday ko'rinadi

Bu dasturiy ta'minot xatosi deb o'ylayman; ilovaga havola allaqachon mavjud. [muallif havola bermagan - taxminan. tarjimon]

Tez yechim: Agar paket allaqachon mavjud bo'lsa, "O'chirish" tugmasini qo'shing /Haiku/system/packages, yoki ichida /Haiku/home/config/packages.

HaikuDepot-da o'rnatilgan paketlar ro'yxatini ko'rayotganda men o'z paketimni ro'yxatda ko'raman va uni olib tashlashim mumkin.

Mac ushbu toifada g'olib chiqadi. Ammo men tasavvur qila olamanki, to'g'ri o'rnatilgan bo'lsa, Haiku-da foydalanuvchi tajribasi Mac-ga qaraganda yaxshiroq bo'ladi. (Ishlab chiquvchilardan biri buni shunday baholagan: "HaikuDepot-ga ko'rsatilgan funksiyani qo'shish uchun bir soatdan kamroq vaqt kerak, agar siz ozgina C++ ni bilsangiz", ko'ngillilar bormi?)

Paketdan biror narsani olib tashlash

Keling, paketni emas, dasturning o'zini olib tashlashga harakat qilaylik .hpkg, u kelib chiqqan (men "oddiy odamlar" uchun hech qanday farq borligiga shubha qilaman).

Macda, foydalanuvchi odatda fayl bilan ishlaydi .dmgdastur paketi qayerdan keladi .app. Odatda tasvirlar .dmg yuklab olishlar katalogida to'planadi va paketlar foydalanuvchi tomonidan ko'chiriladi /Applications. Ko'pgina foydalanuvchilarning o'zlari nima qilayotganlarini bilishmaydi, deb ishoniladi, bu farazni sobiq Apple xodimi tasdiqlaydi. (Mac-da menga yoqmaydigan narsalardan biri. Va, masalan, AppImage bilan ilova va u joylashgan paket oΚ»rtasida farq yoΚ»q. Belgini axlat qutisiga torting = tamom. Oson!)

Xayku haqida, orasida bo'linish ham mavjud apps/ ΠΈ packages/, shuning uchun men buni foydalanuvchilarga aniqroq qilganiga shubha qilaman. Ammo ilovani tortib olsangiz nima bo'ladi apps/ Savatchaga qo'shish:

Xayku bilan oltinchi kunim: manbalar, piktogrammalar va paketlar ostida
Fayldan olingan dasturni o'chirishga harakat qilganingizda shunday bo'ladi .hpkg

Texnik jihatdan bu to'g'ri (oxir-oqibat, ilova birinchi navbatda faqat o'qish uchun mo'ljallangan fayl tizimida joylashgan), lekin foydalanuvchi uchun unchalik foydali emas.

Tez yechim: oΚ»rniga oΚ»chirish uchun GUI dan foydalanishni tavsiya eting .hpkg

Shunchaki oβ€˜yin-kulgi uchun men Alt+D tugmalarini bosib ilovani koβ€˜paytirishga harakat qildim. Men "Faqat o'qish uchun mo'ljallangan jildida ob'ektlarni ko'chirish yoki nusxalash mumkin emas" xabarini oldim. Va barchasi, chunki /system (bundan tashqari /system/packages ΠΈ /system/settings) - bu packagefs o'rnatish nuqtasi (chiqishda qanday ko'rinishini eslang df?). Afsuski, buyruqning chiqishi mount vaziyatga oydinlik kiritmaydi (oldingi maqolalardan birida aytilganidek), mountvolume Siz qidirayotgan narsani ko'rsatmaydi (ko'rinishidan, paketlar loop orqali o'rnatilgan .hpkg "jildlar" deb hisoblanmaydi) va men muqobil buyruqlarni ham unutib qo'ydim.

AppImage-dan boshqa hech kim ushbu toifada g'olib chiqa olmadi (lekin bu, to'liq rostini aytsam, noxolis fikr). Biroq, sozlashdan so'ng, Haiku-da foydalanuvchi tajribasi Mac-ga qaraganda yaxshiroq bo'lishini tasavvur qilish mumkin.

Eslatma: "bo'lim" ga nisbatan "hajm" nima ekanligini bilib olishingiz kerak. Bu, ehtimol, "papka" va "katalog" munosabatlariga o'xshaydi: ko'pchilik kataloglar fayl menejerida papkalar sifatida ko'rinadi, lekin ularning hammasi emas (masalan, paketlar fayl sifatida ko'rib chiqiladi). Bunday displey meni rasmiy ahmoq qiladimi?

Paket tarkibini boshqa tizimga nusxalash

Macda, Men ahmoqona paketni sudrab boraman .app, va bog'liqliklar paket ichida bo'lgani uchun ular birgalikda harakat qiladilar.

Xayku haqida, Men ilovani sudrab boraman, lekin bog'liqliklar umuman qayta ishlanmaydi.

Tez yechim: Buning o'rniga barcha `.hpkg paketini, agar mavjud bo'lsa, bog'liqliklar bilan birga sudrab olishni taklif qilaylik.

Mac ushbu toifada aniq g'alaba qozonadi. Hech bo'lmaganda men uchun ularning paradigmasini sevuvchi. Men uni Xaykuga nusxalashim kerak .hpkg dastur o'rniga, lekin tizim menga buni taklif qilmaydi ...

Barcha bog'liqliklari bilan paketni yuklab oling

Har bir mashina har doim ham tarmoqqa ulanmagan. Aksincha, ba'zi mashinalar (ha, men sizga qarayman, zamonaviy Windows, Mac va Linux) buni unutishadi. Men uchun, masalan, Internet-kafega borishim, olinadigan diskka dasturiy ta'minotni yuklab olishim, ushbu drayverni uy kompyuterimga joylashtirishim va hamma narsa ishlashiga ishonchim komil bo'lishi juda muhim [xavfli odam, buni Windows-da qiladi ... - taxminan. tarjimon].

Natijada, men Windows va Linux-ga odatdagidan ko'ra tez-tez qaram bo'lib qolaman.

Macda Bu odatda bitta fayl bo'lib, faqat yuklab olish kifoya .dmg. Ko'pincha, sukut bo'yicha MacOS tomonidan taqdim etilganlardan boshqa hech qanday bog'liqlik yo'q. Istisno - bu tegishli ijro muhitini talab qiluvchi murakkab ilovalar, masalan, java.

Xayku haqida yuklab olish paketi .hpkg Masalan, java-da bir xil dastur etarli bo'lmasligi mumkin, chunki java maqsadli kompyuterda mavjud yoki bo'lmasligi mumkin. Berilgan paket uchun barcha bog'liqliklarni yuklab olishning bir usuli bormi? .hpkg, Xaykuda sukut bo'yicha o'rnatilgan va shuning uchun har bir Haiku tizimida bo'lishi kerak bo'lganlardan tashqari?

Mac bu toifani kichik farq bilan yutadi.

Fikrlar janob. vaddlesplash:

Ilovaning barcha bog'liqliklarini paketlar to'plami sifatida yig'ish uchun dastur yozish .hpkg Xaykuning ichki ishi bilan tanish bo'lgan kishi uchun taxminan 15 daqiqa kifoya qiladi. Agar chindan ham zarurat bo'lsa, buni qo'llab-quvvatlash unchalik qiyin emas. Lekin men uchun bu kamdan-kam uchraydigan holat.

Keling, ushbu turkumdagi keyingi maqolaga qadar nafasimizni ushlab turaylik.

Paketlarni alohida joyga ko'chirish

Avval yozganimdek, men paketlarimni joylashtirmoqchiman .hpkg (yaxshi, yoki ularning bir qismi) yuklash hajmi (ildiz bo'limi) bo'yicha odatiy joylashtirishdan alohida, maxsus joyga. Odatiy (unchalik nazariy bo'lmagan) holatda, buning sababi shundaki, men qanchalik katta bo'lishidan qat'i nazar, mening (o'rnatilgan) disklarimda doimo bo'sh joy tugaydi. Va men odatda ilovalarim joylashgan tashqi drayverlarni yoki tarmoq ulushlarini ulayman.

Macda Men faqat paketlarni ko'chiryapman .app Finder-da olinadigan disk yoki tarmoq katalogiga va hammasi. Ilovani ishga tushirish hajmidan odatdagidek ochish uchun hali ham ikki marta bosishim mumkin. Shunchaki!

Xayku haqida, Menga aytganidek, bu mening ko'chirish orqali erishish mumkin .hpkg paketlarni olinadigan haydovchiga yoki tarmoq katalogiga yuklang, lekin keyin ularni tizimga o'rnatish uchun konsolda hujjatsiz buyruqlardan foydalanishingiz kerak. Buni faqat GUI yordamida qanday qilishni bilmayman.

Mac ushbu toifada g'olib chiqadi.

janobga ko'ra. vaddlesplash:

Bu oddiy foydalanishga asoslangan optimallashtirish. Agar bir nechta foydalanuvchi tomonidan talab bo'lsa, biz uni amalga oshiramiz. Har holda, uchinchi tomon tomonidan amalga oshirish imkoniyati mavjud.

Bu haqda keyingi maqolada gaplashamiz.

Tarmoq kataloglari haqida gapiradigan bo'lsak, mahalliy kompyuterga nusxa ko'chiradigan yoki to'g'ridan-to'g'ri mahalliy tarmoqdan ishga tushirilishi mumkin bo'lgan oddiy, topiladigan, tarmoq bo'ylab ilovalarga (masalan, Zeroconf) ega bo'lish juda yaxshi bo'lardi (menimcha, LAN partiyalari). Albatta, ishlab chiquvchilar orqali voz kechish imkoniyati mavjud app_flags.

hpkg tizimining GUI bilan integratsiyalashuvi bo'yicha yakuniy hisobot

Menimcha, bu birinchi navbatda integratsiyaning nisbatan yangiligi bilan bog'liq .hpkg GUI hali ham ko'p narsani orzu qiladi. Yaxshiyamki, UX nuqtai nazaridan yaxshilanishi mumkin bo'lgan bir nechta narsalar mavjud ...

Yana bir narsa: Kernel Debug Land

Masalan, yadro vahima paytida buyruqlarni kiritish juda yaxshi bo'lar edi syslog | grep usb. Xo'sh, Xaykuda bu Kernel Debug Land tufayli mumkin. Agar yadro vahimasiga tushmasdan, hamma narsa kerakli darajada ishlayotgan bo'lsa, bu sehrni qanday qilib ko'rishingiz mumkin? Alt+PrintScn+D (debug mnemonik) tugmalarini bosib oson. Men darhol eslayman Dasturchi kaliti, bu asl Macintosh ishlab chiquvchilari tuzatuvchiga kirishga imkon berdi (agar u o'rnatilgan bo'lsa, albatta).

xulosa

Men Xayku tizimining murakkabligi ishning ish muhitiga aniq e'tibor qaratgan, tizimning barcha qatlamlari mavjud bo'lgan kichik bir jamoa tomonidan amalga oshirilishidan kelib chiqishini tushuna boshladim.
Linux/GNU/dpkg/apt/systemd/Xorg/dbus/Gtk/GNOME/XDG/Ubuntu dunyosi bilan keskin kontrast, bu erda hamma narsa shunchalik kichik bo'laklarga bo'linganki, abstraktsiya abstraktsiyaga o'tiradi va tayoqchalar bilan harakat qiladi.
Tizimning qanday ishlashi haqida ham tushuncha bor edi .hpkg an'anaviy paket menejerlari, Snappy, Flatpak, AppImage, hatto btrfsning eng yaxshi amaliyotlarini birlashtiradi va ularni Macning "shunchaki ishlaydi" yondashuvi bilan birlashtiradi.

Go'yo miyamda nimadir "o'zgardi" va men tizim qanday ekanligini tushundim .hpkg unga qarab qanday dumalab ketishni biladi. Lekin bu men emas, balki tizimning go'zalligi va soddaligi. Bularning aksariyati asl Mac ruhidan ilhomlangan.

Ha, brauzerda ko'rish chayqalishi va salyangoz kabi ishlashi mumkin, ilovalar etishmayotgan bo'lishi mumkin (Gtk yo'q, Electron - ishlab chiquvchilar ular murakkablik bilan yaxshi mos kelmaydi degan xulosaga kelishdi), video va 3D tezlashtirish umuman yo'q bo'lishi mumkin, lekin men hali ham bu tizim yoqadi. Axir, bu narsalarni tuzatish mumkin va ular ertami-kechmi paydo bo'ladi. Bu faqat vaqt masalasi va ehtimol bir oz qizil ko'z.

Men yordam taklif qila olmayman, lekin menimcha, bu hozirdan boshlanadi Ish stolida Xayku yili.

Tasodifiy muammolar

Ehtimol, allaqachon so'rovlar bor yoki ularni ochishim kerakmi?

  • BeScreenCapture Peek kabi GIF-ga eksport qila olishi kerak. Buni Haiku uchun allaqachon mavjud bo'lgan ffmpeg yordamida amalga oshirish mumkin. Ariza shakli.
  • Skrinshot dasturi butun ekranni suratga olish o'rniga modal oynani suratga ololmaydi
  • Siz WonderBrush-ning kesish vositasi yordamida skrinshotlarni qirqib, natijani faylga saqlay olmaysiz
  • Menga ayniqsa Xaykudagi qoβ€˜l kursori yoqmaydi, lekin menimcha, bu iliq nostaljik tuygβ€˜u bilan bogβ€˜liq. Kritada kesish vositasidan foydalanganda bu ayniqsa bezovta qiladi, chunki bu noto'g'ri kesishga olib keladi (ushbu maqoladagi modal dialoglarning skrinshotlariga qarang). Xarakterli kursor ajoyib bo'lar edi. Ariza shakli.

O'zingiz sinab ko'ring! Axir, Haiku loyihasi yaratilgan DVD yoki USB-dan yuklash uchun tasvirlarni taqdim etadi Ejednevno. O'rnatish uchun rasmni yuklab oling va uni flesh-diskga yozing Etcher

Savollaringiz bormi? Sizni rusiyzabonlarga taklif qilamiz telegram kanali.

Xatolar haqida umumiy ma'lumot: C va C++ da oyog'ingizga qanday otish kerak. Haiku OS retseptlar to'plami

dan muallif tarjima: bu Xayku haqidagi turkumdagi oltinchi maqola.

Maqolalar ro'yxati: birinchi ikkinchi uchinchi To'rtinchi Beshinchi

Manba: www.habr.com

a Izoh qo'shish