Na anderhalf jaar van ontwikkeling is de vijfde bètaversie van het Haiku R1-besturingssysteem gepubliceerd. Het project werd oorspronkelijk opgericht als reactie op de sluiting van het BeOS-besturingssysteem en ontwikkelde zich onder de naam OpenBeOS, maar werd in 2004 omgedoopt vanwege claims met betrekking tot het gebruik van de handelsnaam BeOS. Voor de evaluatie van de werking van de nieuwe release zijn er verschillende opstartbare Live-images voorbereid (x86, x86-64 1.4 GB). De meeste bronbestanden van het Haiku-besturingssysteem worden verspreid onder de MIT-licentie, met uitzondering van enkele bibliotheken, mediacodecs en componenten die zijn overgenomen uit andere projecten.
Het Haiku-besturingssysteem is gericht op persoonlijke computers, gebruikt een eigen kernel gebaseerd op een modulaire architectuur, geoptimaliseerd voor een hoge responsiviteit op gebruikersacties en efficiënte uitvoering van multi-threaded toepassingen. Voor ontwikkelaars is er een object-georiënteerde API beschikbaar. Het systeem is direct gebaseerd op de technologieën van BeOS 5 en is gericht op binaire compatibiliteit met applicaties voor dit besturingssysteem. Minimale hardware-eisen: CPU Pentium II of AMD Athlon en 384 MB RAM (aanbevolen is Intel Core i3 of AMD Phenom II met 2 GB RAM).
Als bestandssysteem maakt het gebruik van OpenBFS, dat uitgebreide bestandsattributen ondersteunt, journaling, 64-bits pointers, ondersteuning voor het opslaan van meta-tags (voor elk bestand kunnen attributen in de vorm van sleutel=waarde worden opgeslagen, wat het bestandssysteem vergelijkbaar maakt met een database) en speciale indexen voor versnelde opvraging. Voor de organisatie van de directorystructuur worden ‘B+ tree’-bomen gebruikt. De bestandsbeheerder Tracker en de Deskbar zijn uit de code van BeOS in Haiku opgenomen, waarvan de broncode werd geopend na het vertrek van BeOS.
Belangrijkste vernieuwingen:
- In de weergave-instellingen is de interface voor het kiezen van kleuren vereenvoudigd. In plaats van 30 standaardparameters worden nu drie weergegeven (achtergrondpaneel, kleur van de statusbalk en kleur van de tabbladen), terwijl de overige automatisch worden berekend op basis van de gekozen drie waarden. Bij de automatische kleurselectie wordt rekening gehouden met de keuze voor een donkere of lichte thema (bijvoorbeeld als het donkere thema actief is, worden lichte kleuren voor de tekst gekozen). Voor het terugbrengen van de weergave van de volledige set parameters voor handmatige bewerking is er een aparte optie beschikbaar.

- Er zijn veel correcties doorgevoerd gericht op het verbeteren van de ondersteuning voor de werking bij het kiezen van een donker thema.

- In de iconeneditor Icon-O-Matic is ondersteuning toegevoegd voor perspectieftransformatie en weergave van een referentieafbeelding als achtergrond (voor het herhalen van de contouren in het pictogram). De functies voor knippen en plakken zijn aanzienlijk verbeterd.

- Bij de eerste opstart, indien de aanwezigheid van accu's in het systeem is vastgesteld, wordt automatisch de installatie uitgevoerd van het PowerStatus-applet op het paneel, dat de oplaadstatus en parameters van de batterij weergeeft. De nauwkeurigheid van de informatie over het oplaadniveau is verbeterd. Om de gebruiker van een laag oplaadniveau op de hoogte te stellen, zijn er een geluidssignaal en een melding toegevoegd.

- In de bestandsmanager Tracker is de werking met mappen en schijfgedeelten die alleen-lezen toegankelijk zijn verbeterd, deze worden nu visueel gemarkeerd met een donkerdere achtergrond (deze achtergrond werd eerder gebruikt voor virtuele mappen). Voor alleen-lezen FS-elementen zijn ook de menu-items die schrijfaccess vereisen uitgeschakeld.

- De ontwikkeling van poorten voor externe applicaties is voortgezet. Sinds de vorige release zijn nieuwe KDE-programma's geporteerd, het aantal ondersteunde GTK-programma's is uitgebreid, er is een poort met debugger GDB 15 toegevoegd (eerder werd GDB 6 meegeleverd) en een experimentele poort van het .NET Core 9-platform is gerealiseerd.

- De werking van de laag voor compatibiliteit met X11/Xlib is verbeterd. Er is een mogelijkheid gecreëerd om de grafische toolkit FLTK te gebruiken (uit beperkingen is opgemerkt dat er geen ondersteuning is voor functies gerelateerd aan OpenGL).

- Ondersteuning voor USB-a geluidsapparaten is toegevoegd (automatische overschakeling van geluidsuitvoer bij aansluiting van een USB-apparaat werkt voorlopig niet, dus een herstart van de systeem-multimedia-services is nodig om te schakelen).
- Er is een driver toegevoegd voor TUN/TAP-netwerkinterfaces, die gebruikt kan worden voor het creëren van netwerktunnels en organisatie van werk. VPN.
- In de TCP-stack zijn optimalisaties doorgevoerd die de doorvoercapaciteit merkbaar hebben verhoogd (de prestaties van TCP-verbindingen zijn met 8-10 keer toegenomen, en de doorvoercapaciteit van de loopback-interface (localhost) is met verschillende ordes toegenomen). De registratie van tellers voor het verzamelen van statistieken is verbeterd. Het aantal bufferkopieoperaties is verminderd. De mogelijkheid is toegevoegd om checksum-berekeningen voor pakketten naar de netwerkkaarten te verplaatsen.
- De mogelijkheden van de terminalemulator zijn uitgebreid, waarbij de ondersteuning voor geëncodeerde invoegingen vanuit het klembord is toegevoegd voor het geval dat er afbrekingen in tekst en speciale tekens in het overdraagbare tekst worden gebruikt. In de instellingen is de mogelijkheid om het kleurenpalet te wijzigen toegevoegd.
- De TTY/PTY-laag is gerefactoreerd, de code voor TTY en PTY is verenigd, en ondersteuning voor TTY-uitbreidingen zoals TIOCOUTQ is toegevoegd.
- De prestaties van de kernel en drivers zijn geoptimaliseerd, batchverwerking voor invoer/uitvoeroperaties is mogelijk gemaakt, het gebruik van vergrendelingen bij het starten van programma's is geoptimaliseerd, de efficiëntie van het in-memory mappen van bestanden is verbeterd, concurrentie tussen vergrendelingen bij het mappen van geheugenspellen is verminderd, de prestaties van tijdelijke bufferallocatie zijn verhoogd, en er zijn optimalisaties aangebracht in het invoer/uitvoersysteem, met ondersteuning voor DT_GNU_HASH in de ELF-executables loader.
- De architectuur van het user_mutex vergrendelingsmechanisme is herzien, wat dicht in de buurt komt van het futex-systeem in Linux en wordt gebruikt voor de implementatie van pthread_mutex en pthread_rwlock aanroepen. De nieuwe architectuur heeft eerdere raceconditieproblemen opgelost en de prestaties verhoogd (bijvoorbeeld is de compilatiesnelheid met 25% toegenomen).
- De driver voor het FAT-bestandssysteem is vervangen door een nieuwe versie, geport vanuit FreeBSD. De vervanging van de driver heeft compatibiliteitsproblemen met andere FAT-implementaties opgelost.
- Een driver voor het UFS2 (Unix File System 2) bestandssysteem, gebruikt in FreeBSD, is toegevoegd. De driver werkt momenteel alleen in leermodus.
- Een deel van de API voor invoer- en uitvoermultiplexing kqueue is geïmplementeerd.
- De mogelijkheden voor het traceren en profilereren van processen zijn uitgebreid met behulp van de tools strace en profile.
- De compatibiliteit met de POSIX-specificaties is verbeterd. De functies getentropy, arc4random, pthread_sigqueue, preadv en pwritev zijn geïmplementeerd, en ondersteuning voor Unix-sockets (AF_UNIX) SOCK_DGRAM is toegevoegd.
- Er is aanzienlijk werk verzet om de stabiliteit van het hele systeem te verhogen. Veel problemen die leidden tot crashes en kernel- en driverfouten zijn verholpen.
Bron: opennet.ru







