4 ms·
Oops, yeah, 1998. I became very comfortable with multithreaded synchronization, since BeOS was "pervasively" multithreaded to try to scale to multiprocessor ma
by jeffbush 12y ago
Oops, yeah, 1998.
I became very comfortable with multithreaded synchronization, since BeOS was "pervasively" multithreaded to try to scale to multiprocessor machines. Multithreaded programming is more common now. All synchronization in BeOS was based on counting semaphores (which could acquire with a count > 1), which I think are still not super common.
There was a philosophy of simplicity that still resonates with me. For example, the scheduler algorithm used a simple exponential priority scheme that was easy to reason about intuitively. It was straightforward to get glitch free media playback. Many years later, I was trying to debug a glitch with audio playback on Linux. Each time it would glitch and someone would say "oh yeah, this other heuristic is kicking in, make these changes to the config." We'd do that, another glitch would happen, and they'd say "oh, these other two heuristics are interacting badly," this went on for like a month. I don't mean to bash Linux, because it is far more sophisticated now than BeOS was and handles far more use cases, but I miss the elegance and simplicity of BeOS.
The thing that I found most interesting was the chance to interact closely with experts from so many different domains. When I started there, all of engineering fit on one floor (I think there were around 50 engineers). For better or worse, almost everything was built in-house. There were people who worked on graphics, the windowing system, 3D, kernel internals, device drivers, filesystems, application frameworks, etc. Everything was in one source tree, so you could check it out, type make, and have a full OS image in a few hours.
I worked at Apple later, but there are thousands of engineers who work on MacOS, and you only get a chance to meet a small subset of them. There are hundreds of individual projects in their own source trees that are built individually and get pulled together by a complex mastering system. It seems almost impossible for one person to wrap their head around it.
The fact that so much was built from scratch might be part of the reason that BeOS felt so snappy: it hadn't accumulated much cruft.
- wowtip 12y agoTested OpenBeOS / Haiku, any opinion on the project?
- jeffbush 12y agoYeah, I've seen it, although I haven't used it or looked too closely at it recently. When Be did the focus shift, we were in the midst of the next major revision of the desktop OS (which consequently was never released). Part of that was an overhaul of the user interface, which looked more sleek and modern, and was themable. The squarish tabs were replaced with a slightly inset title bar area with rounded edges. I don't know if any screenshots of that have survived. There were many other things that we were exploring and talking about at the time, like putting transparency and animations in the interface, but the hardware at the time wasn't up to the task yet (there weren't real GPUs with shaders like we have today; the best acceleration we could get were opaque bit-blits, which weren't supported on all cards). Had Be been able to stick around longer, the interface would have been much different. So, personally, I don't really get cloning the original interface. A lot has happened in UI world the 20+ years since BeOS was originally written. I guess I'm not that sentimental. That said the work the Haiku team has done is impressive. It's a cool project and I don't want to sound critical of it.
- renox 12y agoI'm not sure what you focus on their interface work? I'm pretty sure you could have a BeOS-like interface on Linux with very little work, Haiku's main work is reproducing BeOS APIs and making work the new kernel. The second part is really unfortunate IMHO, but hackers gonna hack..
- tbe 12y agoI guess the next OS revision you mention would be "Dano", which according to the Wikipedia article[0] was leaked on the day the company closed down. In that case, there should be quite a number of screenshots floating around, such as [1]. YellowTAB Zeta[2] was also based on Dano. [0] https://en.wikipedia.org/wiki/BeOS_R5.1d0 https://en.wikipedia.org/wiki/BeOS_R5.1d0 [1] http://qube.ru/files/images/beos_r51d0_on_amd_athlon_xp_1600_2.png http://qube.ru/files/images/beos_r51d0_on_amd_athlon_xp_1600... [2] http://www.osnews.com/story/3692 http://www.osnews.com/story/3692
- jeffbush 12y agoThe tabs look different than I remember, but yeah, that's it.