Open Source Shell Game

As I continue to set up my computer for creating game resources, I’ve been looking at a number of development platforms that are open source. Many of them fall outside of my scope, while others intrigue me. Here is a run down on the ones I’m looking at.

  • Windows 10
    OK, this isn’t open source. Not by a long shot. But like it or not it is the dominant operating system for most home computers, and if I’m going to do any development of any type, I need to have Windows on hand. My computer came with Windows 8, which over time has been patched up to Windows 10. I don’t know if it has started reaching for version 11 yet; I’ll ask my daughter. While the operating system isn’t open source, there are open source development tools available for it. In the past I have used Lazarus and CodeBlocks for programming in Windows. In the long past I used versions of Delphi (Pascal), Visual Basic, and others. Lazarus and CodeBlocks are still maintained and in use, so I expect to be making use of them again. They are also available for many of the operating systems I discuss below, so I’ll be using them over there as well.
  • FreeBSD
    As I said earlier, this the primary system I expect to be using. My somewhat older computer runs like a champ using this system,  far better than with Windows. I can’t say that was always the case, though. When I first got the computer, Windows was amazingly fast, and the performance difference between it and FreeBSD (PC-BSD version 1.5 at the time) was negligible. But today, Windows 10 has succumbed to the code bloat problem that has plagued the operating system since the 1995 iteration. It has become slow, bug ridden and cranky. FreeBSD isn’t immune to code bloat either. I’m not sure any operating system is. But even though the disk footprint of FreeBSD has grown, compared to Windows, it’s still pretty lean.
  • GhostBSD
    I tried this one a few months ago, and had some issues with it, so I didn’t retain it. FreeBSD has given me some problems as well, especially with my printer/scanner, and some features on specific applications. So I gave Ghost another try, using the latest version, and targeting the printer issue. Unfortunately the printer problem hasn’t improved, so once again I will not be retaining GhostBSD.
    What does FreeBSD have against printers anyway?
    Even so I will continue to watch the development of this distribution. The biggest hurdle for new users to FreeBSD is the instillation process (in my opinion). GhostBSD has made this considerably easier.
    Regarding the instillation process…  I suspect that FreeBSD, regardless of distribution or flavor, doesn’t like to share a hard drive. Whenever I’ve tried to install it in a partitioned drive, or tried to partition the drive during install, the setup has always failed. It only seems to work when I tell the installer to use the entire drive. I find this mildly annoying, but not a showstopper. More on that some other time.

Technically these two operating systems are the only ones I “need” for the work I’m doing. But I still want to explore some others, if only for testing purposes.

  • Solus Linux
    I’ve only periodically used live Linux CD’s for specific tasks. GPartED, for example, is a very good system tool. But generally I have actively avoided Linux for over ten years. However, Linux is no longer the side show it used to be (and which FreeBSD still is!). It is now an important player in the personal computing arena, and I figure if I’m going to do any type of development, even as a hobbyist, I should reacquaint myself with it. Solus is a distribution that has always targeted personal computing, with a focus on desktop and laptop users. It also seems to have decent reputation of stability and adaptability, and a small but active support community. I’m also curious about the Budgie desktop environment, which has long been part of Solus (though apparently it has recently gone independent).
  • RoboLinux
    Another Linux distribution I’ve looked at is RoboLinux. According to it’s primary designer, John Martinson, RoboLinux was designed for people who don’t want to give up the flexibility of Windows. Just the cost. I like and agree with his approach, even though Martinson himself sounds a bit eccentric. I’m guessing that RoboLinux has the Wine system fully integrated to allow for lateral compatibility with Windows. I find Wine useful and fun to experiment with, so I’ll see what this one has to say. My plan is to set up both of these Linux installs on a two terabyte internal drive. I figure they can each have a primary partition and share swap space, since they obviously won’t be running simultaneously.
  • ReactOS
    This one is different. This project aims to create an open source functional clone of Windows 2000 (I think), with the aim of running most if not all software that was designed for that platform. I’m planning to try a few things with this one, and see if the programming tools for Windows will work on this one. I like the idea of this project, especially with all of the legacy software available. But based on the apparent slow development progress it has, I don’t know how active this really is. I’m hoping to install this to an actual live partition on a real hard drive and see how it fares.
  • FreeDOS
    This one is pretty well known. The various versions of Dos were the norm for almost two decades, and it saw a lot of software development. FreeDOS has allowed that development to continue, and made it possible for many legacy programs to see continued use. I don’t know how much use I’ll get from this one, but I’m curious enough to find out. I’ve used FreeDOS before via VirtualBox, and from a live CD, and have been satisfied with it. I’ve never tried it in native mode, though. I don’t know if my current computer will accept it, but I’ll be looking into it. If I can install this to a logical partition, I’ll try that. I understand it can also be installed to a USB stick, so that’s another option.
  • Haiku
    OK, confession time. I ran BeOS on an IBM Aptiva computer back in the late 1990’s, and I really liked it. I found it to be a fresh, new take on personal computing, and with a lot of interesting features. I really wanted this one to take. I was gradually making BeOS my primary operating system, and was populating my BeOS partition with a variety of applications, when things went totally sideways for BeOS. After watching the community and support network fall apart, I reluctantly abandoned BeOS. That being said, I have long wanted to see BeOS reincarnated as an open source system. Haiku is a long running attempt to do precisely that, and I would love to see it succeed. But progress has been slow, and there are parts of the system that are still being worked out, even after 20 years. In computer terms, 20 years is an eternity, so as much as I hate to admit it, Haiku isn’t likely to ever reach maturity. But if I can get an install of it working, and do even a little development for it, well, at least I can say that I tried to help.
  • Minuet
    This one is pure curiosity. The idea of a microscopic operating system written entirely in assembly language is intriguing, so I’m going to look into it. I’ll probably install this one to a USB drive, or use a VirtualBox image, and see what is has to offer.

This rogues gallery of operating systems is currently being assembled and deployed on my poor computer. How things work out remains to be seen, but I’m pretty sure it will be quite an experience.

Beesdie Boy

Courting the Daemon, Part 1

Beesdie

tardis_by_homemadezombieit’s flashback time! This article is strongly based on one I posted on DeviantArt.Com, on April 14, 2008.

Allow me to introduce you all to a good friend of mine, Beesdie.

For those of you who don’t recognize it, this is the mascot for the open source operating system FreeBSD. Just as Linux has Tux the penguin, FreeBSD has Beesdie (or Beastie) the Daemon.

Some years back I went through a phase of constantly tinkering with computers. I used just about every major operating system in the world of x86 computing, to varying degrees of success. Those of you who know me personally know that this has simultaneously been a source of joy and frustration. I also liked tinkering with different pieces of hardware, and I’ve had some pretty interesting setups as a result. I used to get a major charge out taking a computer and getting it to do new and wonderful things. But somewhere along the line, probably shortly after my daughter was born, that changed. One night, after wrestling with my system and getting an elaborate program to work, I came away thinking “OK, fine and good, but that was more trouble than it was worth.”

I became less interested in tinkering and more interested in function. I also decided that I would rather spend more time with my wife and family than fighting with a computer. When I use my computer, I want it to run applications on it, and get things done, rather than constantly have to reconfigure the damn thing just so things would work. Some tinkering and configuration is necessary, but I no longer wanted it to be the main event.

It was during the early years of Windows XP that I realized that I was sick and tired of Windows. With it’s bug-ridden registry, bloated applications, flaky interface, and constant need for troubleshooting, I had seen my fill of dirty windows. For a time, I seriously considered switching to a Macintosh. The Macintosh has a clean interface and a good performance record, despite the often snooty attitude of its user base. However, Macintosh computers tend to more expensive that their x86-based counterparts. At one time the price difference was formidable. In recent years they have become more competitive, but they still tend to have a higher sticker price. At the time, the magic apple was simply beyond the reach of my checkbook. So, I had to stick with traditional x86, PC based architecture.

The Windows series was, and an many areas still is, the dominant operating system for the world of PCs, but there were alternatives. I tried a few of the commercial underdogs (BeOS and OS/2), as well as several shell enhancements. These helped, but Windows remained flaky, even when pumped up.

I suspect many of you are wondering why I didn’t switch to Linux. After all, Linux should have been the answer for someone like me who needed to stick with PC-based architecture, wanted a strong operating system, but didn’t want to fork out a lot of the money. Actually, I did try Linux. Over a three year period I tried several variations of it. Many of them had great features and they performed like a champ.

Until I actually tried to get productive.

Here’s the thing. As tired as I had grown of Windows, I was equally – if not more – tired of Linux. With it’s fussy configuration files, arcane module dependencies, lack of consistent support, and compatibility issues, there were many times I wanted to eat rotisserie-style penguin for dinner. All that constant re-configuring I mentioned? That was largely in Linux, not Windows. In getting away from Window’s buggy program registry, I encountered Linux’s Byzantine file dependency system. It wasn’t worth it. One night my wife, in a fit of exasperation, said that I should stick with Windows simply because it works. “It may not work well,” she said, “but it does work. Linux doesn’t!”

In a moment of despair, I realized that she was right. For me, Linux was not and never would be an option. I know I’m going to tick off every Linux user in the universe for saying this, but for me, Linux is just too cranky. I’m not saying that Linux doesn’t work, only that it didn’t work for me. Still, I wanted an operating system that was reliable, had at least some level of decent support, and could work on modern hardware. That ruled out most of the minor players. I was still using Windows XP, but I had had too many breaks to ever totally trust it. And I wasn’t going to go back to Linux.

There was still one option that I hadn’t tried. Throughout all of my tinkering, there was one operating system that I, for no apparent reason, had never tried: FreeBSD. Tux’s lesser-known half-brother. The little red daemon from Berkeley.

So, one evening in early 2008, I prepared an instillation disc for PC-BSD 1.4.1. I’ll talk about PC-BSD in detail another time, but it’s essentially FreeBSD with a user-friendly front end. I prepared my computer for a mutli-boot option, and took the plunge. I had some problems getting PC-BSD to launch and install, but many of those were the result of my computers BIOS rather than anything related to FreeBSD or even Windows XP. My earlier experience with Linux had taught me how to correct or work around problems of this type, but any newbie would have been thrown out of the game. I say that to point out that despite what advocates say, FreeBSD is still best left to users with some experience and/or a lot of guile. This isn’t a process for the timid.

Anyway, after some manipulation of my boot manager, PC-BSD started running. I wasn’t expecting much. Actually I was expecting another confusing mess like Linux. It took a little while to get the GUI looking and working the way I wanted it to, but the experience was comparable to customizing Windows XP. In this case, that was a good thing, because configuring a Linux instillation, especially the GUI, was often a nightmare. But FreeBSD let me get down to business in a relatively short time.

I was even able to get a few programs up and running fairly quickly. I found the process comparable to Windows XP’s installation scripts. By contrast, I found the Linux *rpm or *deb instillation packages a constant guessing game. Half the time I would get dependency errors, with very little information about how to resolve them. By contrast, BSD let me know exactly what I needed, what needed to be updated, and offered to get all the components for me. If only I could get such service in the local restaurants.

freshports

Which brings me to the port tree. FreeBSD users often wax poetic about the ports tree. It is is essentially a database of instillation scripts for around 23,000 programs, packages, and drivers. I’ll go into it in more detail another time, but the first time I approached it I didn’t know what to expect. PC-BSD offers the ports tree as an optional component during install. Knowing that other FreeBSD users spoke highly of the ports system, I opted to try it. Back in my Linux days there was a particular graphical file manager that I really liked, so I was pleased to see that it had been included in the port tree. Using an administrator terminal, I told my system to install the beast, half expecting it not to work. For roughly 20 minutes that terminal window was full of rapidly scrolling gibberish, which told me that at least it was trying. (I found out later that this was the text output from the compilation process, and very much the norm.) When the scrolling finally ended, I held my breath, and tried to call up the program. I was presented with two quick questions confirming some configuration options, and then the program launched perfectly. I was amazed! In Linux, I had to tweak and fiddle for almost an hour just to get the thing to compile! But here it was, running clean and strong after minimal effort. I was rapidly approaching Nirvana.

Another interesting happened to me while using the ports. Just for fun, I tried to install a very high-end graphical system navigator, the X-Cruiser. If you’ve seen the original Jurassic Park, the computer savvy tween used a variation of X-Cruiser to traverse the park’s mainframe. Anyway, my system went through the ports scripts as usual, but I received several warnings. When I tried to launch it, it crashed in a most spectacular fashion. A terminal window was displaying several messages of what the system was trying to do, and with the help of some on-line documentation I was able to decipher them, and one in particular: “incompatible firmware.” The core issue was my video card: it just didn’t have the necessary firmware, and the program wasn’t going to work. Ever. FreeBSD had essentially said “sorry boss, I can’t handle this one.”

Strange as this may sound, I found that oddly refreshing. The system told me, flat out, that this program wasn’t going to work no matter what I tried to do. Linux would have crashed the program with a set of cryptic error messages that I would have been compelled to decipher, and would have left me guessing. FreeBSD spared me that frustration. I shrugged, removed the dead weight program, and went on my way.

To sum up, my first experience with FreeBSD was a very positive one, and I have used it to some degree ever since. It’s fast, feature rich, and very reliable. In terms of usability, it is comparable to Windows or Macintosh (once you get past the first few hurdles), and leaves Linux completely in the dust. In just a few sessions, I got my PC-BSD instillation to work exactly the way I wanted it to, and I could change things with minimal effort should the need arise. I never achieved that level of satisfaction with Linux, even after months of using it.

Since then I have considered Beesdie to be a trusted companion. I am root. Hear me roar!

To be continued…