Po dvou letech vývoje a týden po 25. výročí projektu byl zveřejněn šestý beta vydání operačního systému Haiku R1. Původně byl projekt vytvořen jako reakce na uzavření OS BeOS a vyvíjel se pod názvem OpenBeOS, ale v roce 2004 byl přejmenován kvůli nárokům souvisejícím s použitím obchodní značky BeOS v názvu. Pro vyhodnocení nové verze bylo připraveno několik spouštěcích Live obrazů (x86_64, x86 1.4 GB). Zdrojové kódy většiny operačního systému Haiku jsou distribuovány pod volnou licencí MIT, s výjimkou některých knihoven, mediálních kodeků a komponentů převzatých z jiných projektů.
OS Haiku je zaměřena na osobní počítače, používá vlastní jádro postavené na modulární architektuře, optimalizované pro vysokou odezvu na akce uživatelů a efektivní provádění vícerozměrných aplikací. Pro vývojáře je k dispozici objektově orientované API. Systém je přímo založen na technologiích BeOS 5 a cílí na binární kompatibilitu s aplikacemi této OS. Minimální požadavek na hardware: CPU Pentium a 384 MB RAM (doporučeno Pentium4 a 512 MB RAM, a při provádění sestavení b — 2 GB RAM).
Jako souborový systém se používá OpenBFS, který podporuje rozšířené souborové atributy, žurnálování, 64bitové ukazatele, podporu ukládání meta-tagů (pro každý soubor lze uložit atributy ve formátu klíč=hodnota, což činí FS podobnou databázi) a speciální indexy pro urychlení výběru podle nich. Pro organizaci struktury adresářů se používají stromy typu „B+ tree“. Z kódu BeOS byla do Haiku zahrnuta správce souborů Tracker a panel Deskbar, jejichž zdrojové kódy byly otevřeny po odchodu BeOS ze scény.
Hlavní novinky:
- Byla přidána podpora aktuálních verzí Firefoxu a projektů založených na technologiích Mozilla, jako jsou LibreWolf, Waterfox, Floorp a Icedove (Thunderbird), které nyní lze nainstalovat prostřednictvím repozitáře HaikuDepot.

- Byl portován hypervisor NVMM (NetBSD Virtual Machine Monitor), pomocí kterého je nyní možné spouštět virtuální stroje v QEMU, využívajíc mechanismy hardwarové virtualizace Intel VT-x a AMD-V.

- Projekt HaikuPorts zajistil podporu portů různých programů, včetně mnoha aplikací KDE a GNOME. Do repozitáře byl přidán port kompilátoru a runtime pro programovací jazyk Go. Byly portovány grafické ovladače od společnosti NVIDIA pro grafické karty RTX 2xxx a novější.

- Bylo provedeno mnoho optimalizací výkonu, které v souhrnu vedly k téměř dvakrát rychlejšímu času sestavení HaikuWebKit (z 4h53m na 2h33m). Zpracování MIME typů se zrychlilo 5-10krát. Byly zrychleny implementace funkcí hashování. V jádře byly zlepšeny operace se zamykáním ve VFS a s paměťovým managementem. Zvýšila se výkonnost anonymních kanálů. Byla zlepšena efektivita cachování prvků adresářů a inode, což vedlo k významnému urychlení operací při práci s velkým počtem souborů.
- Byl proveden refaktoring správy paměti. Zlepšila se práce za podmínek nedostatku paměti. Spotřeba paměti strukturami v packagefs byla snížena o 20 %. Zvýšila se efektivita práce s atributy paměti a oblastmi mprotect. V libc byla přidána nová implementace funkce malloc, založená na kódu z OpenBSD. Byla vylepšena implementace mmap. Provedené optimalizace umožnily načíst Haiku v grafickém režimu na 32bitovém systému s pouhými 128 MB RAM.
- V souborovém manažeru Tracker byla při stisknutí klávesy Shift při otevřeném menu implementována změna akce některých položek nabídky (například místo přesunutí do koše se zobrazuje tlačítko pro odstranění).
- Do rozhraní pro vyhledávání souborů byla přidána možnost omezit vyhledávání na konkrétní adresáře.

- V SoftwareUpdater byla implementována automatická likvidace starých stavů balíčků po určité době od jejich odstranění. V nástroji pkgman byla zavedena výzva k provedení příkazu 'pkgman cleanup', pokud je zjištěn velký počet starých stavů balíčků.
- Do vestavěného nástroje pro pořizování snímků obrazovky, aktivovaného klávesou PrintScreen, byla přidána podpora pro výběr zachycené oblasti na obrazovce.
- V nástroji Team monitor, aktivovaném stiskem Ctrl+Alt+Del, byla zajištěna skupinová správa ne-GUI aplikací spuštěných programem s grafickým rozhraním.

- Do správce oddílů DriveSetup bylo přidáno menu 'Disk image' pro práci s diskovými obrazy (montování obrazů, kopírování obsahu diskových oddílů do obrazů a naopak).
- V displejovém serveru a oknovém správci app_server byla zavedena podpora pro připojení aplikací a obnovení jejich stavu (po havarijním ukončení app_server se nyní všechny dříve spuštěné aplikace automaticky znovu připojí).
- Do indikátoru stavu baterií PowerStatus byla přidána podpora pro systémy s více bateriemi.
- V různých aplikacích byla vylepšena podpora tmavého režimu a HiDPI.
- V nástroji launch_roster byla implementována možnost zobrazení stavu všech služeb a úloh v tabulkové formě.
- Ve FS FAT byla přidána podpora pro sektory o velikosti 4KB a disky větší než 2TB. V BFS bylo optimalizováno skenování volných bloků.
- Byla vylepšena podpora hardwaru vydaného v posledních 5 letech. Byly vyřešeny problémy s výstupem zvuku. Byla rozšířena podpora ethernetových a Wi-Fi adaptérů s rozhraním USB díky přenosu ovladačů z FreeBSD a OpenBSD.
- Byla rozšířena kompatibilita s POSIX, byla přidána podpora funkcí getresuid, setresuid, getresgid, setresgid, pipe3, dup2, mkostemp, reallocarray, memmem, qsort_r, posix_devctl, pthread_getcpuclockid a posix_spawn_file_actions_add[f]chdir, jakož i příznaků O_CLOFORK, MSG_CMSG_CLOEXEC, MSG_CMSG_CLOFORK, SOCK_SEQPACKET, MSG_TRUNC, MSG_PEEK a WCOREDUMP.
- Byla přidána podpora funkcí specifických pro systémy GNU a BSD: getloadavg, closefrom a closerange.
- Byla vylepšena kompatibilita s API FUSE, používaným v implementacích FS squashfs a exFAT.
- Pokračovalo se v rozvoji portu pro architekturu ARM64, který nyní úspěšně bootuje v virtuálním stroji. Probíhají experimenty se spuštěním Haiku na systémech s čipy Apple M1.
Zdroj: opennet.ru





