Nach anderthalb Jahren разработки wurde die fünfte Beta-Version des Betriebssystems Haiku R1 veröffentlicht. Ursprünglich wurde das Projekt als Reaktion auf die Schließung von BeOS ins Leben gerufen und entwickelte sich unter dem Namen OpenBeOS, wurde jedoch 2004 aufgrund von Markenrechtsansprüchen umbenannt. Zur Bewertung der Funktionen der neuen Version wurden mehrere bootfähige Live-Images (x86, x86-64 1,4 GB) vorbereitet. Der Quellcode eines Großteils des Haiku-Betriebssystems wird unter der MIT-Lizenz veröffentlicht, mit Ausnahme einiger Bibliotheken, Medien-Codecs und Komponenten, die aus anderen Projekten stammen.
Das Haiku-Betriebssystem ist auf Personal Computer ausgerichtet und verwendet einen eigenen Kernel, der auf einer modularen Architektur basiert, optimiert für hohe Reaktionsfähigkeit auf Benutzeraktionen und effektive Ausführung von Multithread-Anwendungen. Entwicklern steht eine objektorientierte API zur Verfügung. Das System basiert direkt auf den Technologien von BeOS 5 und ist auf binäre Kompatibilität mit Anwendungen für dieses Betriebssystem ausgelegt. Mindestanforderungen an die Hardware: 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, Unterstützung für die Speicherung von Metatags (für jede Datei können Attribute im Format Schlüssel=Wert gespeichert werden, was das FS einer Datenbank ähnlich macht) und spezielle Indizes zur Beschleunigung der Abfragen unterstützt. Zur Organisation der Verzeichnisstruktur werden „B+ tree“-Bäume verwendet. Aus dem Code von BeOS sind der Dateimanager Tracker und die Taskleiste Deskbar Bestandteil von Haiku, deren Quellcodes nach dem Rückzug von BeOS veröffentlicht wurden.
Hauptneuheiten:
- In den Anzeigeeinstellungen wurde die Benutzeroberfläche zur Auswahl von Farben vereinfacht. Anstelle von 30 Standardparametern werden nun drei (Hintergrundfarbe der Leiste, Farbe der Statusleiste und Farbe der Tabs) angezeigt, während die anderen automatisch in Bezug auf die gewählten drei Werte berechnet werden. Bei der automatischen Farbauswahl wird die Wahl des dunklen oder hellen Designs berücksichtigt (zum Beispiel werden bei aktivem dunklen Thema helle Farben für den Text gewählt). Um die vollständige Anzeige aller Parameter zur manuellen Bearbeitung zurückzugeben, gibt es eine eigene Option.

- Es wurden zahlreiche Fehlerbehebungen vorgenommen, die darauf abzielen, die Unterstützung für die Verwendung des dunklen Designs zu verbessern.

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

- Beim ersten Start, wenn das Vorhandensein von Akkus im System festgestellt wird, erfolgt die automatische Installation im PowerStatus-Applet, das den Ladezustand und die Parameter des Akkus anzeigt. Die Genauigkeit der Informationen über den Ladezustand wurde erhöht. Zur Benachrichtigung des Benutzers über einen niedrigen Ladezustand wurden ein akustisches Signal und eine Benachrichtigung hinzugefügt.

- Im Dateimanager Tracker wurde die Arbeit mit Verzeichnissen und Partitionen, die im Nur-Lese-Modus verfügbar sind, verbessert. Diese werden nun durch einen dunkleren Hintergrund deutlich hervorgehoben (dieser Hintergrund wurde früher für virtuelle Verzeichnisse verwendet). Bei nur lesbaren Elementen des Dateisystems werden auch die Menüelemente deaktiviert, die Schreibzugriff erfordern.

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

- Die Funktionalität der Schicht zur Gewährleistung von X11/Xlib-Kompatibilität wurde verbessert. Es besteht die Möglichkeit, das grafische Toolkit FLTK zu verwenden (einschränkend wird erwähnt, dass Funktionen, die mit OpenGL zusammenhängen, nicht unterstützt werden).

- Die Unterstützung für Audiogeräte mit USB-Schnittstelle wurde hinzugefügt (das automatische Umschalten des Audioausgangs beim Anschließen eines USB-Geräts funktioniert derzeit nicht, daher ist ein Neustart der System-Multimedia-Dienste erforderlich, um das Umschalten vorzunehmen).
- Ein Treiber für TUN/TAP-Netzwerkschnittstellen wurde hinzugefügt, der zur Erstellung von virtuellen Netzwerktunneln und zur Organisation der Arbeit verwendet werden kann. VPN.
- Im TCP-Stack wurden Optimierungen vorgenommen, die die Durchsatzrate erheblich erhöht haben (die Leistung von TCP-Verbindungen stieg um das 8- bis 10-fache, und die Durchsatzrate der Loopback-Schnittstelle (localhost) nahm um mehrere Größenordnungen zu). Die Zählermeldung zur Sammlung von Statistiken wurde verbessert. Die Anzahl der Bufferkopiervorgänge wurde reduziert. Die Möglichkeit, die Berechnung von Prüfziffern für Pakete auf die Netzwerkkarten auszulagern, wurde hinzugefügt.
- Die Funktionen des Terminalemulators wurden erweitert, indem die Unterstützung für das eingefügte Escaping aus der Zwischenablage hinzugefügt wurde, um Zeilenumbrüche und Sonderzeichen in tragbarem Text zu verwenden. In die Einstellungen wurde die Möglichkeit integriert, das Farbschema zu ändern.
- Der TTY/PTY-Schicht wurde refaktoriert, der TTY- und PTY-Code wurde vereinheitlicht und die Unterstützung für TTY-Erweiterungen wie TIOCOUTQ hinzugefügt.
- Die Leistungsoptimierung des Kernels und der Treiber wurde durchgeführt, die Möglichkeit der Batchausführung von Ein-/Ausgabeoperationen hinzugefügt, die Nutzung von Sperren beim Programmstart optimiert, die Effizienz des Speicher-Mappings erhöht, die Konkurrenz zwischen Sperren beim Mappen von Speicherseiten reduziert, die Leistung der temporären Pufferspeicher verbessert und Optimierungen im Ein-/Ausgabesystem sowie im ELF-Binärdateilader mit Unterstützung für DT_GNU_HASH hinzugefügt.
- Die Architektur des Benutzer-Sperrmechanismus user_mutex, die ähnliche Funktionen wie das futex-System in Linux aufweist und zur Implementierung von pthread_mutex und pthread_rwlock verwendet wird, wurde überarbeitet. Die neue Architektur hat es ermöglicht, zuvor auftretende Probleme mit Race Conditions zu lösen und die Leistung zu steigern (z. B. die Kompilierungsgeschwindigkeit um 25 % erhöht).
- Der Treiber für das FAT-Dateisystem wurde durch eine neue Variante ersetzt, die aus FreeBSD portiert wurde. Der Austausch des Treibers hat die Kompatibilitätsprobleme mit anderen FAT-Implementierungen gelöst.
- Ein Treiber für das UFS2-Dateisystem (Unix File System 2), das in FreeBSD verwendet wird, wurde hinzugefügt. Der Treiber funktioniert derzeit nur im Lesemodus.
- Ein Teil der kqueue-Ein-/Ausgabemultiplexing-API wurde implementiert.
- Die Möglichkeiten zur Verfolgung und Profilierung von Prozessen mit den Tools strace und profile wurden erweitert.
- Die Kompatibilität mit den POSIX-Spezifikationen wurde verbessert. Die Funktionen getentropy, arc4random, pthread_sigqueue, preadv und pwritev sowie die Unterstützung für Unix-Sockets (AF_UNIX) SOCK_DGRAM wurden implementiert.
- Es wurde umfangreiche Arbeit geleistet, um die Stabilität des gesamten Systems zu erhöhen. Viele Probleme, die zu Abstürzen und Kernel- sowie Treiberfehlern führten, wurden beseitigt.
Quelle: opennet.ru







