Top things that I missed in 2015

Another year of blogging comes to an end. It has been quite full of *BSD stuff so that I’d even say: Regarding this blog it has been a BSD year. This was not actually planned but isn’t a real surprise, either. I’ve not given up on Linux (which I use on a daily basis as my primary desktop OS) but it’s clear that I’m fascinated with the BSDs and will try to get into them further in 2016.

Despite being a busy year, there were quite a few things that I would have liked to do and blog about that never happened. I hope to be able to do some of these things next year.

Desktops, toolkits, live DVD

One of the most “successful” (in case of hits) article series was the desktop comparison that I did in 2012. Now in that field a lot has happened since then and I really wanted to do this again. Some desktops are no longer alive others have become available since then and it is a sure thing that the amount of memory needed has changed as well… 😉

Also I’ve never been able to finish the toolkit comparison which I stopped in the middle of writing about GTK-based applications. This has been started in 2013 so it would also be about time. However my focus has shifted away from the original intend of finding tools for a light-weight Linux desktop. I’ve become involved with the EDE project (“Equinox Desktop Environment”) that uses the FLTK toolkit and so people could argue that I’m not really unbiased anymore. Then again… I chose to become involved because that was the winner of my last test series – and chances are that the reasons for it are still valid.

And then there’s the “Desktop Demo DVD” subproject that never really took off. I had an Arch-based image with quite some desktops to choose from but there were a few problems: Trinity could not be installed alongside KDE, Unity for Arch was not exactly in good shape, etc. But the biggest issue was the fact that I did not have webspace available to store a big iso file.

My traffic statistics show that there has been a constant interest in the article about creating an Arch Linux live-CD. Unfortunately it is completely obsolete since the tool that creates it has changed substantially. I’d really like to write an updated version somewhen.

In fact I wanted to start over with the desktop tests this summer and had started with this. However Virtual Box hardware acceleration for graphics was broken on Arch, and since this is a real blocker I could not continue (has this been resolved since?).

OSes

I wrote an article about HURD in 2013, too, and wanted to re-visit a HURD-based system to see what happened in the mean time. ArchHURD has been in coma for quite some time. Just recently there was a vital sign however. I wish the new developer best luck and will surely do another blog post about it once there’s something usable to show off!

The experiments with Arch and an alternative libc (musl) were stopped due to a lack of time and could be taken further. This has been an interesting project that I’d like to continue some time in some form. I also had some reviews of interesting but lesser known Linux distros in mind. Not sure if I find time for that, though.

There has been a whole lot going about both FreeBSD and OpenBSD. Still I would have liked to do more in that field (exploring jails, ZFS, etc.). But that’s things I’ll do in 2016 for sure.

Hardware

I’ve played a bit with a Raspberry 2 and built a little router with it using a security orientated Linux distro. It was a fun project to do and maybe it is of any use to somebody.

One highlight that I’m looking forward to mess with is the RISC-V platform, a very promising effort to finally give us a CPU that is actually open hardware!

Other things

There are a few other things that I want to write about and hope to find time for soon. I messed with some version control tools a while back and this would make a nice series of articles, I think. Also I have something about devops in mind and want to do a brief comparison of some configuration management tools (Puppet, Chef, Salt Stack, Ansible – and perhaps some more). If there is interest in that I might pick it up and document some examples on FreeBSD or OpenBSD (there’s more than enough material for Linux around but *BSD is often a rather weak spot). We’ll see.

Well, and I still have one article about GPL vs. BSD license(s) in store that will surely happen next year. That and a few topics about programming that I’ve been thinking about writing for a while now.

So – goodbye 2015 and welcome 2016!

Happy new year everyone! As you can see, I have not run out of ideas. 🙂

Taking a look at ArchHurd

Just as promised, this post will deal with ArchHurd a project aiming to bring what makes ArchLinux great to another kernel: GNUMach/GNUHurd.

edit: Sorry for making this long finished article public so late (same for the next one)… WordPress was giving me a hard time with my screenshots for some reason. But now I got things fixed.

Booting the live CD

So… Let’s take a look at the ArchHurd, shall we? However… Things are a bit.. messy right now. Let me make that absolutely clear before you might decide to give it a try, too. Don’t expect everything simply work like a charm. It won’t.

First it’s necessary to get the iso from the project’s download page. Don’t try to open the Installation Guide which the page links to. It points to the old wiki – which is gone. There are plans to re-add the old pages in the new wiki but this has not happened, yet. Fortunately there’s the Internet Archive which has archived the old wiki so that we can still access it here.

The bootloader: It has written “experimental” all over it.

The iso boots in a new VM set up for it. Despite the “hit ‘e’ and edit hd2 …” stuff things work if you have a standard VB configuration – and you wouldn’t be trying out ArchHurd on real hardware, would you?!

Booting the GNUMach micro-kernel.

Just be patient while the kernel probes the hardware – the rather old version which is used in ArchHurd contains a few glitches which make it take a long time to complete when used with Virtual Box.

Login – it’s not done automatically, yet.

Installing

Alright! ArchHurd has started up and we can move on to installing it. Just one more warning: There’s some kind of error in the kernel which makes the system freeze if doing nothing for a while. So keep it busy or pause your VM if you don’t want to reboot often!

Package selection in the installer.

I won’t cover the installation here – just follow the Installation Guide. The installation program is quite self-explanatory and the guide covers the rest you might need to know.

System configuration in the installer.

If you’re a long-time Archer, you’ll remember the “Arch Installation Framework”. If not, you’ll find out ArchHurd is also an OS without systemd and you have to take a look at rc.conf, the central configuration file which Arch Linux was famous for in the past.

ArchHurd!

After installing the bootloader according to the guide, we’re left with a working system. And after setting up network, it’s even actually usable. 😉 However the first time trying to update the repos, pacman crashed for me, so I had to remove the lock and try again. But from that moment on, network works fine. If you’re having trouble, selecting an older network card to emulate in VirtualBox (like PCnet-FAST III) might help with the Hurd.

Now let’s see how many new packages have been uploaded to the repos since the creation of the (now rather old live cd)!

Update the system?

Right, 31 packages is not really much… Especially if you’re used to ArchLinux’s rate of updating! So it might be a good idea to edit /etc/pacman.conf and uncomment the “testing” repo.

Updating with “testing” repo enabled

That’s not really up to date either, but at least a little more up to date. Ok, all nice and well… It’s a funny system – a little slow perhaps, rather old and pretty unstable. But what now? That just can’t be all.

Xorg running on ArchHurd

Of course not. X11 anyone? Yes, it does actually work. However I failed to get mouse support working in VirtualBox. If the xf86 driver for it is installed, Xorg won’t start anymore. Since I’m not an X guru, this is where I stopped and that’s also why I skipped showing you that ArchHurd is capable of running Openbox, too (which does in fact work – but is quite useless without a mouse…).

Anything else? Yes, a lot. The Arch Build System is working which means that you could build your own packages if you’re missing anything (which is rather likely ;)). That is: If you are lucky and the package will just work on Hurd – and if not you need some deeper knowledge about porting things over.

Building a package on ArchHurd

As an example I tried to build FLTK – and that proved to be one of the packages that simply worked. However I had trouble building with an ordinary user. The problem is known among ArchHurd developers and it’s not happening if you’re building as root (appending –asroot so that makepkg accepts this). I know that this is usually considered bad practice and should never be used on a productive system. But we’re playing around with the Hurd here, aren’t we?

Alright. This concludes our little examination of ArchHurd. If you liked what you just saw and are feeling brave enough – why not help the project a little? While it’s officially being worked on, it would certainly be nice if some visible progress was to be achived.

What’s next?

Next I intend to take a look at ArchBSD. Edit: You can count on it. I’ll do a little revision of the article and then set it to “public” in a few days.

BSD, HURD and Arch?

Today we’ll deal with Arch Linux’s principles transferred to other operating systems.

The Arch Way

Arch Linux’s slogan is: A simple, lightweight distribution. There are many people who want an operating system which truly fits their needs – and nothing else. Arch is usually a good choice for them due to its light-weight core system which can easily be expanded in any direction needed.


The Arch Linux logo

Sure, there are quite some other distribution worth considering. Gentoo, of course, which allows for even deeper customization thanks to its mighty USE-flag and portage system! But many people prefer to go without the hassle of compiling everything. This is often when Arch Linux comes in as it provides binary packages. If it has to be even more lightweight, there are a few distributions which are really fairly minimal. Alpine Linux is very interesting in this regard and some others like Damn Small Linux and Puppy come to mind.

In most cases though, Arch Linux is a very good choice. And that shows: This distribution has attracted many users over the years and is in the top 10 of the distrowatch rating. Why that? Probably because people like The Arch Way of putting together a distro.

Other Distros

Apart from classic Arch Linux there are some other Arch-based distribution. For example there’s ArchBang which combines Arch Linux with the OpenBox WM to provide a light-weight desktop upon installation.


The ArchBang logo

Then there’s Manjaro Linux, an Arch-based distribution which provides graphical tools for everything and aims to be beginner-friendly.


The Parabola logo

Others are Parabola, a distro using the fully free Linux-libre kernel, Arch Linux for ARM and ConnochaetOS, a fully free system that supports the i586 architecture.

If you’re interested in more of them, here‘s a list on the Arch Linux wiki.

Other kernels

Actually people seem to like The Arch Way so much that they miss it even when working with a system which is not Linux-based. For that reason some projects have arisen which kind of copy the Arch principles over to other systems!

There are for example ArchHurd and ArchBSD.

ArchHurd

The former is not exactly a new project – it was founded in early 2010. It made a lot of progress in a short time but seemed to have stalled by the end of 2011. There’s no news item on the project site after August of that year and while still new packages were created that also came to a halt about one year later. In the meantime even the wiki had disappeared.


The ArchHurd logo

Fortunately the project isn’t dead and after a while during which it only lived on in mailing list posts, at least the wiki is back again (which actually was the cause that made me write the previous and this post after I discovered it). Currently progress is still very slow which is due to problems with updating glibc. After the new toolchain is built the whole core repository needs to be rebuilt. So there’s enough work to be done there.

The new wiki has a severe spam problem right now. But I’m sure that can be taken care of sooner or later. And the most important thing is surely that the project is still alive!

ArchBSD

The other project is still very new. While the idea exited for a while, the site for it was put up in January 2013. ArchBSD is progressing nicely and considering the short time it exists, it already got pretty far in bringing the familiar Arch feeling to an OS using the FreeBSD kernel!


The Arch BSD logo

Right now it’s far to early to say whether this blend is to survive on the long run or not. Currently it looks good with quite some development taking place. And compared to ArchHurd it also has much newer packages in general (which however is no wonder since it started with later ones).

What’s next?

In the next post I’ll take a brief look at ArchHurd and ArchBSD.

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 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 die 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 quasi-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 mistakes of Microsoft (like Vista or 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 fit 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 often 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:

  • BSD
  • Linux
  • Mac OS X
  • Minix
  • NeXTSTEP
  • Solaris
  • SunOS
  • System V
  • Xenix

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

  • NetBSD
  • FreeBSD
  • OpenBSD
  • DragonFly BSD

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 “Linux distributions” pack together the Linux kernel and the GNU operating system basis (plus some or even a lot of other applications).

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 things low-level things are handled 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: BSD and HURD.