💾 Archived View for gemini.circumlunar.space › users › kraileth › neunix › eerie › 2013 › unix-likes… captured on 2022-01-08 at 14:48:38. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2020-10-31)

-=-=-=-=-=-=-

Here I'm republishing an old blog post of mine originally from April 2013. The article has been slightly improved.

Background: The "DesktopDemoDVD" was a project to provide a Linux Live-DVD that came with multiple desktop environments to choose from, meant to make it easy to try them out.

A look beyond the Linux teacup - Unix-likes

Yes, I know. I said that I'd play with a new version of the DDD when I wrote the previous entry. Well, I did. Actually I made some nice progress on it, too. However there's one little issue which ruined the whole thing for me: A new version of the tool which I use to build the live-image (_ArchISO_). The ability to produce ISOs for just one architecture (i686 in my case) was dropped and now it can only build dual isos - which are of course at least twice as big! I found a patch but still could not get things working. For that reason I decided to postpone it.

For quite a while I've been interested in things that lie just a few meters behind the Linux "border": Other Unix-like systems. And just recently I made some discoveries - two of which I'll cover with the next post and a third one which may be the topic to the one thereafter. But first let's discuss a few basics.

Attractiveness of Linux

We live in very interesting times when it comes to operating systems: The de-facto monopoly of Microsoft's Windows for home PCs is taking severe blows. No, I don't want to predict that they are done for. On the opposite: I think that they will manage to hold extremely high market shares for quite a while in the future. And I also don't want to talk about the mistakes of Microsoft (like Vista or Windows 8's "Metro" / "NewUI").

What does really shake the monopoly is the fact that Linux is becoming a _real_ alternative. It has been in the server sector for a long time now and for the above-average user in general, too. But now one of the (at least commercially) most important frontiers is crossed: Linux is getting ready for gaming.

That's why more and more computer users are "giving it a try". Fortunately there are quite some distros today which require little to no previous Linux knowledge and let you complete the installation without having to know what run levels are or how mount points work. While this can rightly be called a good thing, it does have two sides (like all things do). Linux systems can be extremely convenient these days (just think of the superior package management when combined with some kind of "software center" as Ubuntu has one!). This however bears the risk of a "new generation" of "Linux users" who are content with just having an "easy" and quite stable system.

Unix-Likes

It's those people who didn't really get that technically the term "Linux" refers to the _kernel_ only (a little more on that in a minute). There's more than one operating system which works somewhat or even very close to how Unix functions. That's why people talk of a Unix-like system or _*nix_. Some systems comply with the entire _POSIX standard_ of Unix and some are even certified to be rightfully called Unix. Especially the later however is more of a commercial thing. If you're new to all this, you'll be astounded just how many "true" Unices there are - not even to talk about the Unix-likes!

People sometimes distinguish between a _certified Unix_, _functional Unix_ (the typical Unix-like which tries to emulate the functions provided by Unix) and a _genetic_ Unix (which derived from the source code of a Unix system).

Just like noted before, there are quite some members of the large family of Unix-likes. Just a few examples:

Some of these can actually be regarded as sub-categories. For example there are several _BSDs_ which derived from 386BSD:

Kernel

What's a kernel? Think of it as the "core" of your OS if you're not yet familiar with that term. The kernel is what really interacts with the actual hardware. The before-mentioned superficial Linux user may not care (or even know it), but strictly speaking _Linux_ means the _kernel_ only and thus refers to an operating system component rather than an entire OS. Usually _distributors_ create _Linux distributions_ by packing together the Linux kernel and the GNU operating system basis (plus some or even a lot of other applications). This is why you might have come across the term GNU/Linux.

It's important to know of the two different areas in system memory: __Kernel space__ and __user space__. Why is that relevant? Simply because without it you won't understand the difference in kernel design. The kernel is almighty (and has to be) while the applications running in _user space_ can also be run underprivileged (and thus can't do harm to your system). People typically distinguish between the kernel and the __userland__ (the programs running in user space).

There are different approaches when it comes to classify a kernel. Linux is a so-called __monolithic kernel__ which means that it's "one big thing". Most of the important low-level things are handled directly by the kernel. Linux is _modular_, though. It can load and unload _kernel modules_ (like drivers) while running without having to restart the system. Another idea is that of a __micro kernel__ (e.g. Minix). Here the kernel is only doing the most basic stuff and everything else is provided by user space programs.

What's next?

For people who don't stop with a just working system and instead like to dig a little deeper there are some other playgrounds besides Linux-based systems. As collected above, there's a great many of other Unix-like systems which use another kernel and a (sometimes slightly) different userland. The next blog entry will present two of them: A BSD and HURD.

BACK TO 2013 OVERVIEW