Nach anderthalb Jahren Entwicklung wurde die fünfte Beta-Version des Betriebssystems Haiku R1 veröffentlicht. Ursprünglich wurde das Projekt als Reaktion auf die Schließung von OS BeOS ins Leben gerufen und entwickelte sich unter dem Namen OpenBeOS, wurde jedoch 2004 aufgrund von Markenrechtsansprüchen in BeOS umbenannt. Zur Bewertung der Funktionen des neuen Releases wurden mehrere bootfähige Live-Images (x86, x86-64, 1,4 GB) vorbereitet. Der Quellcode des größten Teils des Haiku-Betriebssystems wird unter der MIT-Lizenz verteilt, mit Ausnahme einiger Bibliotheken, Mediencodecs und Komponenten, die aus anderen Projekten stammen.
Das Haiku-Betriebssystem richtet sich an Personal Computer und verwendet einen eigenen Kernel, der auf einer modularen Architektur basiert und für hohe Reaktionsfähigkeit auf Benutzeraktionen sowie eine effiziente Ausführung von Mehrkernanwendungen optimiert ist. Entwicklern steht eine objektorientierte API zur Verfügung. Das System basiert direkt auf den Technologien von BeOS 5 und zielt auf die binäre Kompatibilität mit Anwendungen für dieses Betriebssystem ab. Minimale Hardwareanforderungen: CPU Pentium II oder AMD Athlon und 384 MB RAM (empfohlen Intel Core i3 oder AMD Phenom II und 2 GB RAM).
Als Dateisystem wird OpenBFS verwendet, das erweiterte Dateiattribute, Journaling, 64-Bit-Zeiger, sowie die Speicherung von Metatags unterstützt (für jede Datei können Attribute in der Form Schlüssel=Wert gespeichert werden, was das Dateisystem einer Datenbank ähnlich macht) und spezielle Indizes zur Beschleunigung von Abfragen enthält. Die Struktur der Verzeichnisse wird durch "B+ Tree"-Bäume organisiert. Aus dem BeOS-Code hat Haiku den Dateimanager Tracker und die Deskbar integriert, deren Quelltexte nach dem Ausstieg von BeOS offengelegt wurden.
Hauptneuheiten:
- In den Einstellungen zum Erscheinungsbild wurde die Schnittstelle zur Farbauswahl vereinfacht. Statt 30 Standardparametern werden jetzt drei angezeigt (Hintergrundfarbe der Leiste, Farbe der Statuszeile und Farbe der Registerkarten), während die anderen automatisch basierend auf den gewählten drei Werten berechnet werden. Bei der automatischen Farbauswahl wird die Wahl eines dunklen oder hellen Designs berücksichtigt (zum Beispiel werden bei aktiviertem dunklen Thema helle Farben für den Text gewählt). Um die Anzeige aller Parameter zur manuellen Bearbeitung zurückzuholen, gibt es eine separate Option.

- Eine große Anzahl an Korrekturen wurde vorgenommen, um die Unterstützung für die Auswahl eines dunklen Designs zu verbessern.

- Im Icon-O-Matic-Symboleditor wurde die Unterstützung für Perspektivumwandlung und das Anzeigen eines Referenzbildes als Hintergrund (zum Nachzeichnen von Konturen im Symbol) hinzugefügt. Die Funktionen für Kopieren und Einfügen wurden erheblich verbessert.

- Beim ersten Start, sofern Akkumulatoren im System erkannt werden, erfolgt automatisch die Installation des PowerStatus-Applets, das den Ladezustand und die Akkuparameter anzeigt. Die Genauigkeit der Informationen zum Ladelevel wurde erhöht. Zur Benachrichtigung des Benutzers bei niedrigem Ladepegel wurden ein akustisches Signal und eine Benachrichtigung hinzugefügt.

- Im Dateimanager Tracker wurde die Arbeit mit Verzeichnissen und Festplattenteilen, die im Nur-Lese-Modus zugänglich sind, verbessert. Diese werden nun durch einen dunkleren Hintergrund hervorgehoben (diese Hintergrundfarbe wurde zuvor für virtuelle Verzeichnisse verwendet). Für schreibgeschützte Elemente im Dateisystem werden außerdem die Menüeinträge deaktiviert, die Schreibzugriff erfordern.

- Die Entwicklung von Ports für Drittanbieter-Anwendungen wurde fortgesetzt. Seit dem letzten Release wurden neue KDE-Programme portiert, die Anzahl der unterstützten GTK-Programme wurde erweitert, ein Port mit dem Debugger GDB 15 hinzugefügt (zuvor wurde GDB 6 geliefert) und ein experimenteller Port der .NET Core 9-Plattform realisiert.

- Die Funktionsweise der Schicht zur Sicherstellung der Kompatibilität mit X11/Xlib wurde verbessert. Die Möglichkeit zur Verwendung des grafischen Toolkits FLTK wurde bereitgestellt (eingeschränkt durch die fehlende Unterstützung für OpenGL-Funktionen).

- Die Unterstützung für Audio-Geräte mit USB-Schnittstelle wurde hinzugefügt (das automatische Umschalten der Audioausgabe beim Anschließen eines USB-Geräts funktioniert derzeit nicht, daher ist ein Neustart der systemweiten Multimedia-Dienste erforderlich, um den Wechsel zu ermöglichen).
- Ein Treiber für Netzwerkinterfaces TUN/TAP wurde hinzugefügt, der zur Erstellung von Netzwerk-Tunneln verwendet werden kann. VPN.
- Im TCP-Stack wurden Optimierungen vorgenommen, die die Bandbreite erheblich erhöht haben (die Leistung von TCP-Verbindungen steigert sich um das 8- bis 10-Fache, und die Bandbreite der Loopback-Schnittstelle (localhost) ist um mehrere Größenordnungen gestiegen). Die Zählervführung zur Sammlung von Statistiken wurde verbessert. Die Anzahl der Bufferkopiervorgänge wurde reduziert. Es wurde die Möglichkeit hinzugefügt, die Berechnung von Prüfziffern der Pakete auf die Netzwerkarten auszulagern.
- Die Funktionen des Terminalemulators wurden erweitert, und die Unterstützung für das Maskieren von Einfügungen aus der Zwischenablage wurde hinzugefügt, um beim Umgang mit Zeilenumbrüchen und Sonderzeichen in tragbarem Text zu helfen. In die Einstellungen wurde die Möglichkeit zur Anpassung des Farbschemas aufgenommen.
- Der TTY/PTY-Schicht wurde überarbeitet, der Code für TTY und PTY wurde vereinheitlicht, und es wurde Unterstützung für TTY-Erweiterungen wie TIOCOUTQ hinzugefügt.
- Die Kernel- und Treiberleistung wurde optimiert, die Möglichkeit des batchweisen Ausführens von Ein-/Ausgabe-Operationen hinzugefügt, die Nutzung von Locks beim Starten von Programmen optimiert, die Effizienz des File-Mappings in den Speicher erhöht, die Konkurrenz zwischen Locks beim Memory-Mapping reduziert, die Leistung bei der Zuweisung von temporären Buffern verbessert, Eingabe-/Ausgabe-Optimierungen hinzugefügt und die Unterstützung für DT_GNU_HASH im ELF-executables Loader integriert.
- Die Architektur des Lock-Mechanismus user_mutex wurde überarbeitet, um Funktionen bereitzustellen, die mit dem futex-System in Linux vergleichbar sind, das für die Implementierung von pthread_mutex- und pthread_rwlock-Aufrufen verwendet wird. Die neue Architektur hat es ermöglicht, zuvor auftretende Probleme mit Race Conditions zu lösen und die Leistung zu steigern (z. B. hat sich die Kompilierungsgeschwindigkeit um 25 % erhöht).
- Der Treiber für das FAT-Dateisystem wurde durch eine neue Version ersetzt, die aus FreeBSD portiert wurde. Der Austausch des Treibers hat Kompatibilitätsprobleme mit anderen FAT-Implementierungen behoben.
- Ein Treiber für das UFS2-Dateisystem (Unix File System 2), das in FreeBSD verwendet wird, wurde hinzugefügt. Der Treiber funktioniert vorerst nur im Lesemodus.
- Ein Teil der API für die Multiplexierung von Eingabe-Ausgabe kqueue wurde implementiert.
- Die Möglichkeiten zur Verfolgung und Profilierung von Prozessen wurden durch die Tools strace und profile erweitert.
- Die Kompatibilität mit POSIX-Spezifikationen wurde verbessert. Funktionen wie getentropy, arc4random, pthread_sigqueue, preadv und pwritev wurden implementiert, sowie die Unterstützung für Unix-Sockets (AF_UNIX) SOCK_DGRAM hinzugefügt.
- Es wurden umfangreiche Arbeiten zur Verbesserung der Systemstabilität durchgeführt. Viele Probleme, die zu Kernelabstürzen und Treiberfehlern führten, wurden behoben.
Quelle: opennet.ru







