DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
View Events Video Library
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Integrating PostgreSQL Databases with ANF: Join this workshop to learn how to create a PostgreSQL server using Instaclustr’s managed service

Mobile Database Essentials: Assess data needs, storage requirements, and more when leveraging databases for cloud and edge applications.

Monitoring and Observability for LLMs: Datadog and Google Cloud discuss how to achieve optimal AI model performance.

Automated Testing: The latest on architecture, TDD, and the benefits of AI and low-code tools.

Related

  • A Beginner's Guide to Back-End Development
  • Your Old Laptop Is Your New Database Server
  • Git Bash (Or Git in Bash)?
  • A Beginner’s Guide to Automated Cross-Browser Compatibility Testing

Trending

  • OneStream Fast Data Extracts APIs
  • Monkey-Patching in Java
  • Leveraging FastAPI for Building Secure and High-Performance Banking APIs
  • Creating a Deep vs. Shallow Copy of an Object in Java

A Q&A with Haiku Developer "waddlesplash"

Haiku was formed in the early 2000s by Michael Phipps et al to ensure their beloved OS didn't completely perish. One of the Haiku developers, waddlesplash, recently offered insight into the project.

Matthew Casperson user avatar by
Matthew Casperson
·
Dec. 02, 15 · Interview
Like (1)
Save
Tweet
Share
8.26K Views

Join the DZone community and get the full member experience.

Join For Free

From the ashes of BeOS, Haiku has risen with the goal of providing a fast, easy to use and powerful operating system. In this Q&A one of the Haiku developers, going by the name "waddlesplash," has provided some details on how Haiku is developed and the challenges of writing an operating system.

What was the inspiration for the development of Haiku?

Haiku was founded in the early 2000s following the demise of the BeOS. Michael Phipps and a few others didn't want to see their favorite OS die, so they started the OpenBeOS project to write a complete, cleanroom implementation of the BeOS. Over a decade and a name change later, it's now Haiku.

What are some of the biggest challenges developing an operating system?

Mostly the amount of work involved. Haiku takes a different approach to operating system development than Linux or the BSDs do - instead of having separate teams & repositories for all the major projects (e.g. kernel, X11, KDE or GNOME, etc.), the entire OS, from the kernel to
the window manager to the file browser, is all in the same repository and managed by the same team. So there's less overhead (by a lot), but the same amount of lines of code required.

The biggest challenge, though, is hardware support. There's just so much of it out there with so little documentation, and even if Linux supports it, often times the Linux driver is badly commented and/or doesn't work very well, and it's all the documentation we have to go from. We do have a compatibility layer for FreeBSD's WiFi drivers, which is where most of our WiFi support is from, at least.

How do object oriented design principles benefit developers working on Haiku?

It allows for a lot more organization, and makes it a lot more fun to write software. Most software written for Linux or Windows doesn't use the "official" APIs (Win32 API for Windows, Xlib for X11, etc.), mostly because they're C and really hard to write code for. Haiku, on the other hand, has a C++ API, and is an overall joy to write code for. I'd be pretty happy if I could write software for Haiku and have it run anywhere, but that's not really feasible for a number of reasons.

What skills could a developer learn by hacking on a project like Haiku?

Well, I'm mostly a userland-side developer, and I've learned a lot about kernels and other low-level system components just by listening in on the conversations the kernel developers had. I've also learned a lot about porting software, and package repository management. Those are probably the key areas of learning that you aren't likely to find in anything but operating system projects.

Where do you see Haiku going over the next few years?

Just now, we're working on polishing the system for the beta release, which (we hope) will be out in the next 6 months or so. The alpha release which is currently on the frontpage is (horribly) outdated, and lacks some really impressive new features we've added (HTML5 video support in the browser, ASLR/DEP, the package manager, etc.) After that, we plan on dropping support for the old BeOS ABI (we're currently still backwards-compatible).

How does Haiku coordinate the development process?

The primary methods of communication are IRC, the mailing lists, and the bug tracker (Trac). IRC is used for "down-to-the-minute" and more casual discussions of development. Major changes are discussed and debated on the mailing lists, as well as code review of developer-submitted patches and the commit log. The bug tracker is used for tracking issues (of course), as well as prioritization, division of work, and review of patches submitted by non-developers.

What ideals have the Haiku team established, and what benefits do they bring?

Our main ideal is to make Haiku a viable system for both users and developers. Don't make it the system so rigid and inflexible that developers are turned away from it, and don't make it so customize-able as to make the users dizzy in a sea of options. This proves to be very easy to say, and very hard to do. What else is new? :)

What are some of the features of Haiku that set it apart from mainstream OS's like Windows or Linux?

Mostly the really tight unification of APIs and components, and user-friendliness of all public (non-POSIX) APIs. Windows has so many official systems for software development now (Win32 C API, WinRT API, .NET, etc.), and Linux is just a mess (use Qt? or GTK? or raw X11 & ALSA?). Haiku has one official developer-friendly API (https://api.haiku-os.org/) which is used by all of the default apps as well as all 3rd-party software and ports.

In addition, we also make significant use of threads. Whereas on Windows and Linux where the whole GUI is on one thread (for the most part), in Haiku, every window is it's own thread. Communication is done with BMessages - think JSON, but C++, and with static instead of duck typing. This makes for a much more responsive GUI, as even if one window is busy doing some long operation, the whole GUI doesn't freeze up.

Software development operating system

Opinions expressed by DZone contributors are their own.

Related

  • A Beginner's Guide to Back-End Development
  • Your Old Laptop Is Your New Database Server
  • Git Bash (Or Git in Bash)?
  • A Beginner’s Guide to Automated Cross-Browser Compatibility Testing

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: