e9d.org

contact
whoami
blog/
dist/

wiki/
FAQ

résumé
donate

legal



> @me could you explain Haiku pls
@you yes, I can! it's a funky little independent OS - not based on Linux or BSD or any such prior work - that aims to be an open-source, modern, reimplementation of the old BeOS operating system.

BeOS was a competitor to classic MacOS and Windows in the early 90s that focused on multimedia capabilities and web browsing. BeOS initially ran on a peculiar AT&T "Hobbit" RISC microprocessor, before being ported to a PowerPC 603e system, and eventually traditional x86. Another interesting aspect of the BeBox - for that is what Be's computers were called - was that it was equipped with two CPUs for better multitasking, and some prototypes were even equipped with four! BeOS, and applications developed for it, were "pervasively multithreaded" for improved performance. This was a time when Win95 was new, and MacOS hadn't even figured out preemptive multitasking yet!
BeOS also featured the BeFS filesystem, which was journaling and had the ability to add arbitrary metadata to files, making it in some way akin to a database.

BeOS was hoping to be bought up by Apple - classic MacOS was definitely aging, and Apple was looking for a new OS to ship with their computers. BeOS already ran on PowerPC, the same ISA used by most of Apple's hardware, and by this time had been ported to run on Apple's PowerPC Reference Platform, so classic Mac users could already run BeOS on their Macs.

This honor unfortunately fell to NEXT's NeXTSTEP, which was based on the MACH microkernel with a bunch of Unix and BSD cruft glued onto it. NeXTSTEP eventually became the base for modern Mac OSX. The NeXTSTEP GUI eventually got reimplemented and ported to general Unix systems and OpenStep, and then GNUStep.

Haiku reimplements BeOS, and is even still compatible with 32-bit x86 BeOS programs.
Haiku improves on classic BeOS in a lot of ways.

* Haiku uses a package manager to manage software installed on the system - BeOS did not.

* Haiku uses a hybrid kernel architecture - while not quite a microkernel, the Haiku kernel still manages to move a lot of services into userspace. IIRC the sound subsystem, most of the networking subsystem, the disk server, and a bunch of other things ran in userspace.

* Haiku's boot process is a *lot* more advanced than BeOS, and for that matter about any other OS I've seen.
For one thing, the bootloader integrates with the package manager - it's aware of what packages are installed on the system, and composes the (what is analagous to Unix's) root filesystem from these packages. This also allows the user to blacklist certain packages, or even specific files from these packages, at boot time, and revert to previous revisions of the system by booting from an older collection of packages.
---
Some other OSes *try* to implement similar solutions - on Linux, Snapper integrates with btrfs or LVM to allow the system administrator to rollback to a previous snapshot of the system. etckeeper hooks into many linux distro's package manager to keep a backup and history of the system configuration whenever it's updated. Solaris and modern FreeBSD allow switching which ZFS pool is being used to boot from.

* Somewhat obviously, Haiku supports a modern networking/browser stack - HTTP/S v2, modern TCP/IP, mostly functioning Javascript, HTML5/CSS3 - all the good stuff. It can load Youtube, Reddit, ~~pornhub~~, Stackoverflow, anything that matters really.

Haiku prioritizes personal computing over anything else. One area where it's lacking is the security department. Haiku does not support on-disk encryption, separate user accounts for each human, and possesses very little in the way of access control - the user can trivially tweak the system, even enabling or disabling bits of hardware without any form of authentication.

Funny story, one Haiku applet allows the user to tweak which CPU cores are online. Disabling one core on my dual-core system worked fine, but cue my surprise when disabling both cores resulted in the system freezing up.



________________________________________________________________________________
(C)/AGPLv3