
Antique BeOS Content by Scot Hacker (2011) - eadmund
http://birdhouse.org/beos/byte/
======
kalenx
Funny how he talks about TiVo well before the advent of GPLv3, but as a
victim:

> From the stance of a commercial vendor creating a commercial product, the
> open source world holds other barbs. For example, if components of your
> system link against libraries that fall under the GPL, you may be forced to
> release your own system -- or parts of it -- back to the community as open
> source software. In other words, building a proprietary solution on top of
> Linux may mean being required to expose the company jewels to the
> competition. Witness TiVo, who manufacture a time-shifting hardware/software
> solution for television consumers. Because TiVo is based on Linux, the
> company's modifications to the kernel are available for anyone to download
> -- any competitor can emerge at any time, packaging up and selling a variant
> of Tivo's hard work.

One could almost forgive him to say something like that in 99, but the ones
who are still repeating the exact same reasoning today should probably think
twice...

~~~
Fnoord
That's just an argumentum ad misericordiam (appeal to pity, sob story). These
modifications to the Linux kernel weren't even the core of the TiVo product,
and the TiVo product was an end user solution consisting of hardware,
software, and support (so a full stack, like an Apple TV or an Nvidia Shield).
He's also ignoring the _patent_ argument, and the fact that the Linux kernel
is licensed under GPLv2 or later (EDIT: I stand corrected; licensed under
GPLv2. That doesn't change the point though).

His argument wasn't rare back in those days though (we're talking about a time
where Microsoft was still dominant and actively hampering the FOSS movement),
and it was an argument for BSD license as well.

The way companies have worked around GPLv2 _and_ GPLv3 is Web 2.0/3.0: HTTP(S)
and HTML/JS being proprietary software, though the source is readable, and the
entire stack behind it (ie. akin to LAMP) which generates the data having the
ability to be part of a closed source or proprietary ecosystem. They
furthermore locked it down with things like paywalls, apps (instead of website
or PWA which might give the users some power back). In such a world, how can
us mere mortal users even verify things like GDPR?

The FSF foresaw this, btw, and IIRC (at the very least free software advocates
foresaw it) considered having the GPLv3 apply on protocols like HTTP(S). That
didn't fly though, and resulted in obvious backfire as well because it went
against the business model of many for profits...

~~~
Squithrilve
> ...the fact that the Linux kernel is licensed under GPLv2 or later.

Actually Linux is licenced only under GPLv2:

> The only one of any note that I'd like to point out directly is the
> clarification in the COPYING file, making it clear that it's only _that_
> particular version of the GPL that is valid for the kernel.

> ...

> Why? There's been some discussions of a GPL v3 which would limit licensing
> to certain "well-behaved" parties, and I'm not sure I'd agree with such
> restrictions - and the GPL itself allows for "any version" so I wanted to
> make this part unambigious as far as my personal code is concerned.

Source:
[http://lkml.iu.edu/hypermail/linux/kernel/0009.1/0096.html](http://lkml.iu.edu/hypermail/linux/kernel/0009.1/0096.html)

~~~
rkowalick
Here is an excellent video of Linus talking about why he specifically chose
the GPLv2 and how he felt betrayed when the FSF released GPLv3:

[https://youtube.com/watch?v=PaKIZ7gJlRU](https://youtube.com/watch?v=PaKIZ7gJlRU)

------
t0mek
Interesting mention on the BeOS-based IPAD prototype in 1999:

> Be has quietly been planning their own version of the perfect low-cost,
> easy-to-use, dedicated media device. Be's IPAD (Internet Personal Access
> Device)* > [...] > * According to hints dropped in a recent newsletter, Be
> may be casting about for a catchier moniker than "IPAD."

[http://birdhouse.org/beos/byte/07-IPAD/](http://birdhouse.org/beos/byte/07-IPAD/)

------
wowtip
The last article is a bit depressing.

But also a good read for millenials and such who have a hard time
understanding why some of us older guys really dislike Microsoft.

[http://birdhouse.org/beos/byte/30-bootloader/](http://birdhouse.org/beos/byte/30-bootloader/)

~~~
executesorder66
> have a hard time understanding why some of us older guys really dislike
> Microsoft

There's lots of recent reasons to really hate Microsoft now.

\- Forcing Windows 10 on users.

\- Forcing telemetry on people and making it almost impossible to disable.

\- Saying they <3 Linux, but refusing to port their actual good products (MSO,
or Visual Studio) to Linux. So that they can keep their vendor lock-in.

\- Not adhering to their own standards, to make it difficult for Office
documents to inter-operate with other office suites.

\- Windows 10 switched to a rolling release model, which is nice. But the
updates are forced, so that fucks you over as a user, because you can never be
sure if your system is stable.

edit:formatting

~~~
AnIdiotOnTheNet
> Windows 10 switched to a rolling release model, which is nice.

I disagree. Not only are constant changes destabilizing to the user, they're
destabilizing to developers too. I really don't get why so many people (Linux
Desktop users especially, so maybe they're all webdevs?) love them so much.
Once I have a system set up for my workflow, I don't want it to go and screw
it up by changing things unnecessarily.

~~~
executesorder66
Those are the problems with rolling release on Windows, because they are
forced.

On Linux you can choose to never update ever, if that's what you think is
best. You are fully in control.

As for why I like rolling release:

\- It's much nicer never having to update your "whole" OS. It takes a long
time, and you need to do backups in case the upgrade fucks things up.

\- I like having up-to-date software

\- Your workflow doesn't change like you say it does. I've been using rolling
release OS's for the last 3 years, and my workflow hasn't changed since I
started. If there's an update to a package with breaking changes, and you
don't want to deal with it, then just don't upgrade that package.

------
xrd
I love these quotes from the "BeOS Heads for the Mainstream" article of April,
1999:

"Other important languages, such as perl, have also been ported and are fully
functional."

"Thus, BeOS applications are currently scriptable from both bash and Python."

18 years ago. Perl and Python.

~~~
xrd
If you wanted to learn bash scripting, there is some fun stuff in here:

[http://birdhouse.org/beos/byte/24-scripting_the_bfs/](http://birdhouse.org/beos/byte/24-scripting_the_bfs/)

$ ThisCity=$(catattr META:city "$This Person" | cut -f3 -d:)

The value of $ThisCity is now "Munster Hamlet" whenever the script is passing
over the file "Walter Mitty."

------
Apocryphon
Hope the hobbyist interest in Haiku will grow over time.

~~~
rcarmo
Eventually the beta will ship (probably this quarter) and there will be a few
folk trying it out in earnest. Since the browser mostly works, I expect it to
be rather popular as such things go...

~~~
tialaramex
"probably this quarter" could have been written any time in the last five
years and been just as likely to come true.

~~~
rcarmo
Let's BePositive :)

~~~
snvzz
webpositive :)

------
rcarmo
I remember reading most of these and buying the BeOS CD (which I still have).
It was fun for a while, but I ended up moving to the Mac full-time.

Funny how the 4:3 video windows look dated these days.

~~~
duncan_bayne
Huh. I'm pining for 4:3 screen for a development laptop. My main use case is
coding, not watching movies :)

~~~
wowtip
16:10 screen tilted is really nice for text / coding

~~~
Y_Y
I find doing that to my laptop makes typing more difficult.

~~~
wowtip
Just a matter of adjusting your typing habits, and finding a laptop with 16:10
screen :)

------
memsom
I was heavily in to BeOS. I read Scott's BeOS Bible cover to cover. I had most
of the other books (The BeOS API gude, Advanced topics, Programming the BeOS,
Practical Filesystem Design) and also had a BeBox (a 66MHz model) and a
PowerMac 9500/180MP (Dual processor) to run the OS on. I had a lot of fun. I
advocated PowerPC back when the trend was towards Intel and I still mess about
with the OS occasionaly (
[https://github.com/memsom/mwobdec](https://github.com/memsom/mwobdec) .)

I had a BeIA device and had a few versions of BeIA running on various other
devices. It was pretty much just BeOS without the Tracker desktop and with a
slightly different file system. Take a look at Wikipedia (
[https://en.wikipedia.org/wiki/BeIA](https://en.wikipedia.org/wiki/BeIA) \- I
wrote a lot of the BeIA info back in the day on there, especially the stuff
about the CFS and exe compression.) The DT-300 Webpad I had was nothing really
like an iPad (it was running a Geode from NationalSemi and booted from a
compact flash card.) But you can see where the tech was heading.

------
Crontab
In addition to the BeOS Bible, Scot Hacker also created the BeOS Tip Server,
which was a great resource at the time. He also wrote a book for O'Reilly on
MP3 (MP3: The Definitive Guide) that I found very useful. And he created
RipEnc, a BeOS/Bash shell script to rip CDs to MP3 while making use of BeOS
metadata.

After I left BeOS behind, I haven't heard his name very often, but I still
appreciate his advocacy for BeOS.

~~~
qubex
I still have his _The BeOS Bible_ on my bookshelf. I don’t know why, really.
(For context, I also have _Inside Windows 2000_ and _Mac OS X Internals: A
Systems Approach_ , all of which are pretty dated.)

~~~
rcarmo
Me too. It was a nice enough read, but it sticks out between Singh's book on
OS X and Cutler's NT magnum opus...

------
natecavanaugh
I remember reading about BeOS and seeing demos during 2000-2001, but I always
wondered a few things.

One item of curiosity was how they were able to so efficiently handle media
with such a light footprint? What were the trade-offs? For devices like
tablets, it seems like it would be a godsend.

Also, did any of the innovations make their way into things we use today? Palm
bought their tech, but did any of the media tech make it out? Or is it just an
artifact from an earlier age with not much applicability to modern day needs?

~~~
allenbrunson
I worked at Be for almost a year, and used BeOS for a couple of years before
that. I am not an expert, but I can mention a couple of things.

The biggest one was: freedom from backward compatibility. You can't comprehend
how much cruft you are drowning in, in your typical OS, until you are free
from it. Coming to BeOS from Windows, as I did, it felt like 2,000 pounds was
lifted off my shoulders.

BeOS was free to fully embrace some modern technologies that had been bolted
on to older operating systems as an afterthought. The biggest one was multi-
threading. Having spent years on earlier operating systems, I can say that all
of them have a stunted idea of multi-threading, compared to BeOS. Typically,
you are forced to run your user interface in your main thread, and you have to
run background tasks in background threads, and invent ways to communicate
between the two.

Contrast BeOS: every single window runs in its own thread. Think about that
for a minute: If you write a BeOS app that has two or more windows, surprise,
your app is multi-threaded. Whether you like it or not! A lot of programmers,
coming from older operating systems, very much did _not_ like it. Personally,
I came to embrace this as BeOS' greatest strength. Communicating between
windows was pretty natural: just drop events into each other's event queues,
which were of course thread-safe.

Unfortunately, the early architects of the system made their own set of poor
decisions that led to a new round of cruft. The worst of these was tying
themselves to the ABI of a particular C++ compiler. GCC version 2.9x, I think.
In the last year of Be's existence, we were really feeling the pain of this.
The compiler we were shackled to was many years out of date. If we switched to
a modern compiler, it would have a different ABI, and all older software that
couldn't be recompiled would have been instantly broken. Nonetheless, there
was a vocal minority of engineers inside Be who argued for doing just that. We
weren't focused on external users at that point, just internet appliances, so
we could have gotten away with it. But we were all BeOS users ourselves, so we
would have lost a lot of useful apps that way.

~~~
natecavanaugh
_This_ comment is such a perfect example of the reasons I come to read the
comments here on HN. Thank you for the info.

Could there not have been a compromise for those devs who didn't want ABI
compatibility? For instance with Apples handling of Mac OS apps and then
carbon and then cocoa?

Meaning, some sort of optional emulation layer? Of course, the system
architecture may be so different as to make it impossible, OR the business
decisions needed at the time couldn't afford a middle layer.

Either way, this was one of my favorite comments on here, so thank you :)

~~~
allenbrunson
I suppose it would have been possible to build some kind of API shim that
would allow for two or more ABIs. Alas, the technical details of how to make
that work are above my pay grade. I can say that it never came up in the
heated debates I heard inside Be. Possibly because that would have meant the
base OS would have been a lot larger, and we were targeting resource-
constrained internet appliances at the time.

You could get a much fuller answer by exploring how Haiku handles this. I
haven't paid much attention to that OS in quite awhile, but I think they did
indeed succeed in keeping a set of backward compatibility libs, for older
software, and also built a new set of libs for recently-compiled software.

~~~
memsom
BeIA was quite clever. The OS compressed the binaries by using a one way (?)
process to pull out common code segments in to a common dictionary. The OS
then read that code somehow in to memory when the apps started. You could run
the OS uncrushed, but it took up a lot more space. One could fit the entire OS
on a 16MB CF card in crushed format. (YES, MB not GB!!)

The crushed apps have a magic symbol CEL instead of ELF in the file header.

The file system was also compressed. It was called CFS, rather than BFS (BeFS)
and a lot of stuff like attributes and metadata was very broken in the pre 1.0
builds I saw.

~~~
allenbrunson
I had completely forgotten about that "crushed" business, but you just
reminded me.

If I am remembering correctly, we used uncrushed binaries and a non-crushing
kernel while developing on our own PCs. (We used plain-vanilla garden-variety
Intel PCs to develop on. Very few developers needed to interact with the
actual BeIA devices.) The crushing part didn't happen until somebody on the
build team was building the final binaries to go onto the BeIA devices.

Sometimes, the crushed build process wouldn't work! It was super finicky. That
would prevent a test build from going out when it was supposed to, and the
testers would have to twiddle their thumbs for awhile.

Other than that, I can't tell you much about it. I was a lowly application
engineer. I didn't have to get into all the picky details about how the kernel
interacted with apps.

~~~
memsom
Yeah, the tools I had were picky. The size of the OS partition was very
specific - it had to fit on to a multiple of a CF card I think. There was some
kind of hard limit of about 32MB or something like that. I know I had it all
running on an old Compaq PC at one point, but the bootloader would only boot
if it was the only OS on the drive, so that was a bit of a pain in practice. I
probably still have the OS images somewhere.

I also know that the OS was a bit quirky in so much as some of the R5 API's
were missing, or closer to the R4.0 ones at least. The File System was
definitely flaky.

I started to write this app to do PalmOS style handwriting input for the
DT-300, but I ended up selling it on to finance some other project before I
finished it.
[https://github.com/memsom/ratcowsoftopensource/tree/master/B...](https://github.com/memsom/ratcowsoftopensource/tree/master/BeOS/strokeit_src)

------
memsom
Anyone who enjoys this should also take a look at this:

the Be Newsletter archive : [https://www.haiku-os.org/legacy-
docs/benewsletter/](https://www.haiku-os.org/legacy-docs/benewsletter/)

I read these all back in the day. They are an amazing time capsule for the
BeOS and what was going on at Be during the mid - late 90's and early
Noughtiess.

------
lloeki
Submission typo: seems like the page title has it spelled "Scot", not "Scott".

~~~
allenbrunson
Nope, not a typo. That's how Scot Hacker spells his name.

~~~
klez
lloeki was referring to the submission's title here on HN. The submission
spelled the name as Scott, and it's been corrected _after_ lloeki's posted.

