BeOS had a regular Unix like (even posix IIRC) dev environment.
I was able to do most of the CS course work projects normally done on my University's Sun workstations on BeOS instead. Most of these of courses were data structures, algorithms, compilers, etc projects in C, and not things that required platform specific APIs.
But arguably, BeOS' overall model - a single user desktop OS built on top of but hiding its modern OS underpinnings like memory protection and preemptive multitasking - is far more similar to what eventually became MacOSX than Linux. Which isn't so surprising since it was built by ex apple folks. Remember that consumer OSs before this point had no memory protection or preemptive multitasking.
Linux, though it had the same modern OS features, was far more closely aligned in spirit with the timeshared modern multi-user Unix OS's like what ran the aforementioned Sun workstations (it's "Linus' Unix after all).
BeOS had a POSIX-compliant layer, but under the hood it was totally different from a UNIX.
Also, let’s keep in mind that Windows95 (released that same year) featured preemptive multitasking on a desktop user OS (albeit not a strong memory protection model), and WindowsNT has been available for a couple of years by then (having first shipped in 1993, If memory serves) and was a fully ‘modern’ OS (indeed it serves as the basis for the latter Windows), albeit with a comparatively large footprint.
I was an avid BeOS user (and coincidentally a NeXT user too) and I was enthralled by its capabilities, but in terms of system architecture it was a dead end.
IIRC the Unix compatibility layer had some pretty grotty warts. Porting Unix applications virtually always required fiddling to get them working, especially the network code.
Unfortunately this meant BeOS was perpetually behind the curve on stuff like the World Wide Web. I had a native FreeBSD build of Netscape long before Be managed to get a decent browser.
(A bit of research later:) It's actually a bit of a mixed bag. The "Operating System Reference Manual for the Lisa" [0] reads on pp. 1-3/1-4:
> Several processes can exist at one time, and they appear to run simultaneously because the CPU is multiplexed among them. The scheduler decides what process should use the CPU at any one time. It uses a generally non-preemptive scheduling algorithm. This means that a process wlll not lose the CPU unless it blocks. (…)
> A process can lose the CPU when one of the following happens:
> • The process calls an Operating System procedure or function.
> • The process references one of its code segments that is not currently in memory.
> If neither of these occur, the process will not lose the CPU.
In other words, non-preemptive, unless the OS becomes the foreground process, in which case it may block the active process in favor of another one currently in ready or blocked state.
It was ok. Back when I ran BeOS as my primary OS (2001 or so) I built half a C++ web application on BeOS, the other half on a HP-UX server logged in through an X terminal using ftp to sync between the two. Not much support in the wider *nix ecosystem though, so anything big would often fail to build.
I regretted having to move away from BeOS, it was by far the most pleasant OS I’ve used, but the lack of hardware and software support killed it.
In college I wrote a web server in beos and ported it back to Linux, learning pthreads along the way. Bonus achievement was making it multithreaded, so I got that for free, since beos makes you think architecturally as multithreaded first
I was able to do most of the CS course work projects normally done on my University's Sun workstations on BeOS instead. Most of these of courses were data structures, algorithms, compilers, etc projects in C, and not things that required platform specific APIs.
But arguably, BeOS' overall model - a single user desktop OS built on top of but hiding its modern OS underpinnings like memory protection and preemptive multitasking - is far more similar to what eventually became MacOSX than Linux. Which isn't so surprising since it was built by ex apple folks. Remember that consumer OSs before this point had no memory protection or preemptive multitasking.
Linux, though it had the same modern OS features, was far more closely aligned in spirit with the timeshared modern multi-user Unix OS's like what ran the aforementioned Sun workstations (it's "Linus' Unix after all).