Monday, February 22, 2010

A Linux Story

I was about five years old when my father showed me my first computer. It was an old 8086, and it had 5.25 floppy drive, a shiny new 3.5 floppy drive, and a 10MB hard drive. When he gave it to me, it ran nothing but MSDOS. As a starter machine, I didn't really care. I was just stoked to have a computer, and when my father showed me how to get to video games, and how to type a text document, I was thrilled. In 1993, my father got himself a Pentium machine, and I received his 486. The 486 also had DOS on it, but when I tried to play my old games everything went by too quickly. I asked my dad what was wrong, and he said that the games I had been playing relied on the CPUs clockspeed. At this point, he gave me a thin orange book, Understanding Microprocessors, which was published by Motorola. He also showed me a book on his shelf that taught me a bit about electricity. A month after this encounter, I went back and asked him if there were any operating systems that would run in protected mode. He told me, yes.

My dad brought a copy of BSD home with him, and we sat down together. The installation process wasn't easy, and he didn't want me to try it alone. It ran! I had a window! There were little games on it! I had this new modem thing, and I could talk to people! It was amazing.

I was on a BBS in 1995 and I saw this post about Linux. I had heard about Linux before. I had seen it on other BBSs. I even heard about it from a distant cousin. It was really popular. My 8 year old brain didn't really realize the importance until I was informed that in Linux, only the kernel is maintained and controlled by Linux developers, and that I could play with everything else to my heart's content. I was intrigued as I enjoyed (and still do) tinkering with things. That was that. I downloaded Slackware and installed it (and unfortunately forgot to back up my journal that I had kept for 3 years [though going from 5 to 8 it wasn't too intriguing, but it was the first thing I ever did on a computer]).

In 1999, my aunt gave me her old Macintosh. It was a Performa running System 7, and while I didn't use it for my personal needs, it did come with ClarisWorks and saw heavy use for school work. I used my trusty 486 and Slackware for everything else. At Wal-Mart, I had seen Red Hat and Mandrake for sale. I asked my dad if he'd get me copies, and he obliged me. He figured it couldn't hurt, but he thought I was being silly. This Linux stuff was never going to make anyone money. I enjoyed some of the ease of use of both, and I thought RPMs were interesting, but I still preferred Slackware. I continued this way until 2003, when I received an Emachine for my birthday. It was a Celeron machine with all the bells and whistles normal for the time, and it blew everything I had used previously out of the water. I was so happy. I was used to being behind the times, but using Linux it had never seemed to matter. I took the Macintosh and the 486 to Goodwill, and within a week they'd been bought.

The Emachine had XP and Slackware on it, naturally. I needed XP for school work, but I really didn't like it all. I had a friend of mine set it up so that XP would load Office right away, and I only allocated about 2GB to it anyway (FAT32 so I could read the partition from Slackware).

The following year this thing called Ubuntu came out. I was a Junior in High School at that point, and I was really getting into the OpenSource movement. Ubuntu seemed like just the thing to grab "converts". No one had heard of Ubuntu then, and no one seemed to care. They thought that Ubuntu would be just another Linux distribution. After all, how many had their been? Red Hat, Debian, Slackware. Those are the "real" distributions. What's all this junk? Just spin offs. Were they ever wrong. Love it or hate it, Ubuntu is synonymous with Linux to many people. I tried it, hated it, but gave to everyone. I preferred Slackware.

In 2005, I graduated High School, got myself a 64bit machine, installed Slackware on it, and joined the Marine Corps. I was injured and discharged '07. I came home went to college, graduated, and built a new machine. Guess what. I still use Slackware. Everyone tells me that I'm stuck in the past, but at least I installed the 64bit version ;)

As far as I know, I am the only person who has used OpenSource operating systems nearly exclusively his whole life. The only time that the "OpenSource" nature of it really mattered to me was in High School. Otherwise, I just used what I was used to, and what I felt was technically superior. Today, while I know that Linux is gaining ground, I still feel like an outsider. People always talk about the year of the Linux desktop, and I just have to laugh. I'm still young (22), and never have money. Naturally, I will continue to use Linux (as it's kostenlos). For the majority of people, they may use it on their cell phones. They may use it on tablet computers in the near future. Until those devices replace laptops and desktops, they will still use Windows on their primary computing devices (or OSX as Apple seems to be regaining popularity). Why? You cannot go to a store, buy some software, take it home, and install it on a Linux/BSD/Solaris machine. As soon as people figure that out, they get turned off to Linux/BSD/Solaris. It's also hard to sell someone a product that renders their thousands of dollars in software investment useless, even if that product is kostenlos. But, hey, have you heard? Slackware was ported to ARM. I may have to get one of those EEEs now. I just wish I could still use KDE1.x ...

Tuesday, February 16, 2010

OpenSource Operating Systems

Well, I figured that I should take an opportunity to introduce a few opensource OSs that really haven't been in the lime light much. We all know about Linux and many of us also know about Darwin and BSD. Still some know about OpenSolaris. Which ever ones you know or don't here's a chance to get the scoop.

GNU/Linux

No. I am not talking about a wildebeest. On September 27th of 1983, Richard Stallman began the GNU operating system project. By 1990, he still lacked a decent working kernel for that operating system. In 1991, a guy in Helsinki named Linus Torvalds had that kernel available in the form of Linux. What Torvalds needed Stallman had. By 2000, Linux was available in over 300 distributions with varying components of the GNU project, and was the darling of the OpenSource movement, and the second most popular UNIX variant around.

Darwin/OSX

When Steve Jobs left Apple in the 80s, many wondered what he would do. The 80s have come and gone, and we now know the he started NeXT... which wasn't all that successful. When NeXT did do, was create a BSD variant that has been very successful. Apple was trying to reinvent its OS, and was failing miserably. Steve brought OPENSTEP to Apple, and it was reinvented as Darwin. On top of Darwin, Apple has laid two closed source technologies that make up the GUI (Finder and Cocoa). These three components combine to make OSX, which as of this writing is the most popular UNIX system on Earth. Apple is also the largest distributor of both OpenSource software and of UNIX due to its current popularity in the market of personal computers, cellphones, and iPods.

BSD

For most of us, thinking of the University of California Berkley doesn't bring about images of nerdy software engineers, but instead makes us think more of LSD, hippies, the children's revolt, and Vietnam... Despite all of that, they are a prominent uni, and they did create Berkley Unix. While BSDs are usually source compatible with AIX, HPUX, and Linux there are also two API layers available, Linux and WINE. Currently, there are four main flavors: OpenBSD, NetBSD, FreeBSD, Darwin. OpenBSD is focused on security, FreeBSD is focused on being general purpose, and NetBSD is focused on running everywhere (really... everywhere like toasters, palmtop computers, servers, mainframes... you name it, NetBSD runs on it). The Berkley Software Distribution has long been considered one of the most stable, secure, and efficient platforms available.

OpenSolaris

While Sun Microsystems has been eaten alive by Oracle, Solaris lives on. It was started by Sun in 1992 to be a successor to Sun OS. There are currently several distributions out there (Nexenta, Blastwave, OpenSolaris, and so on). While highly stable and efficient, Solaris lacks a lot of the maturity and diversity available on both BSD and Linux platforms. You'll also find that the community is far smaller, although most UNIX source code will compile just fine.

Haiku

Haiku is an OpenSource BeOS implementation with many enhancements. Notably, Haiku has added quite a bit of hardware support, enhanced BFS, and ported many applications to the platform (including KDE). While the system is not ready for production environments, it does have a small and active community. Hardware support is limited, and the project aims only at x86 right now.

Syllable

Syllable is a pre-emptive multitasking, multiuser, modular, and SMP-capable operating system that sports a fresh GUI. It's based upon AtheOS, which was initially inspired by Amiga OS. It uses AthFS, which is a child of OpenBFS. While AtheOS was initially a one man hobby OS, it is now actively developed by many people and is rapidly growing and evolving. It's aims are clear enough, and it's stable operating system. The community and hardware support are comparable to Haiku's (also x86 only).

ReactOS

ReactOS is an opensource NT clone, written from scratch, and using some code from the WINE project. After several years of development, ReactOS is still in an alpha stage. It also doesn't support too much Windows software, and for what it does support it is still only 32bit. No 64bit Windows applications will run. Hardware support is also limited, and the system targets only x86. Despite all of these limitations, ReactOS is certainly a project whose development I will follow with some excitement.

MINIX3

MINIX was initially an educational operating system developed by Andrew Tannenbaum, and is mingled with the origins of Linux. Many years later, MINIX is still alive, and is now a UNIX-like, microkernel operating system that is rather robust, efficient, and small. Its community is small like the last few mentions, but it is in active development and it's quite promising. The latest version (as of this writing) is 3.1.6 (released 8 days passed). One of the attractions to MINIX is that should a driver fail, it will not crash the system, and the kernel will attempt to automatically reload the driver. Currently MINIX is x86 only, but ports to other platforms are being worked on.

FreeDOS

FreeDOS is by far one of the most interesting projects listed here. FreeDOS is a DOS-compatible operating system for x86 machines. Yet, it has USB drivers, audio drivers, network drivers, and even has access to 4GB of RAM. Interesting? I sure think so. It has limitations. While alot of drivers exist (considering that it is a DOS), hardware support is limited, and by default it is still 16bit. It does have quite a bit of software available to it, thanks to the opensource community as a whole.

Menuet32/Kolibri

These two operating systems are interesting for several reasons. First, they are coded in Assembly language. Second, each can fit on a single floppy diskette with some room left over. Third, they support almost as much hardware as some of the others on this list. Menuet also has a 64bit version, but that version is not opensource. These two operating systems may be useful for those who are struggling to find something to do with that old Pentium2 in the corner. Both have USB support, and vesa display support.

Friday, February 5, 2010

Another Kind of Freedom

It seems as if most people are for OpenSource but against any other form of distribution/development. For example, Microsoft maintains ownership of the software that they sell on store shelves. No one owns a copy of Windows except for Microsoft. Well, good for them, but when Microsoft's products became dominant due to market demand people starting making noise because Microsoft wanted to put their own software on their own software (Internet Explorer on Windows)... so even though it's Microsoft's property on both accounts, they apparently did wrong by bundling the two together? Now, in the realm of current events we are seeing something similar with Google. Google is in the business of providing access to information. Books are yet another logical thing that Google could offer. Google was slammed with copyright infringement initially, and went about getting legal access to many titles. Google brokered the deals that they needed to broker, and was going to continue on. Even though Google, the authors, and the publishers were all ready to sign onto the deal... Google may not be allowed to move forward. Why? Because people are really angry that they didn't think it up first. Since, their own company didn't think to approach authors and publishers for content and make that content searchable, they feel they will be out-competed. Sorry, folks. This is the game you are in. In the world of electronics, if you cannot innovate you fall to the wayside.

People like freedom of speech and they hate the freedom to make a buck.

So, why is it that everyone hates the other model of business, where you try to make money? It isn't as if any of these companies held guns to anyone's head and said "if you don't buy it we kill you." Microsoft became dominant because the only real competitor was Apple, and Apple's products were far too expensive. Google won, because people chose Google over Yahoo, Microsoft, Altavista, Lycos, and all of the other competitors. Now, as Google tries to expand, and as Microsoft tries to keep its place everyone wants to scream and yell and holler and say "that's not fair", but whoever said that the market place is fair?

Personally, I might agree if someone said that the contracts Microsoft has with hardware companies are anticompetitive. I would never agree with legal action against Microsoft on account of those contracts, but I do think it's anticompetitive. The hardware companies had the chance to say "no" to those contracts and they chose not to do so. At this point, I have to say that I see the same thing with Google. Google thought up an idea. What if I signed a contract with all of those literature people, and made the content searchable on the internet? So, now they stand to be the literature search king. Good for them.

Monday, February 1, 2010

Stali

Stali is a new Linux distribution from Suckless.org that is based on a "hand selected collection of the best tools for each task, and each tool being statically linked (including some X clients such as xterm, surf, dwm, dmenu, mplayer)." Suckless has often delivered outstanding software, and I am eagerly awaiting an official release. So, what else is in store?

Radically different choices. I have to say that for those of us who've wanted something original, Stali seems to be just that. To start things off, it doesn't use many GNU libraries. In stead of Glibc, Stali uses uClibc. Prior to Stali, I had only seen uClibc in distributions that target embedded platforms and distributions that are rather minimalistic and feature lacking. One advantage to this is that uClibc produces smaller executables and therefore offsets that increased size resultant of static linking. These two things together produce more efficient code. Statically linked software usually loads faster, and smaller software uses less RAM.

In Stali, the kernel sheds module support. Yup, one giant monolith. Again, when we consider that it will be statically linked, and that it will be produced using uClibc, there are some major performance gains possible. This also means that no initrd will be needed. The one major problem I can foresee is that a single driver failure could crash the whole kernel... but if Stali ends up using ONLY truly stable kernel releases this could be avoided.

The init system also looks a bit different. Instead of having several scripts called from one initial rc.S or similarly named script (as has been the trend lately), Stali is taking some lessons from Plan 9. The entire system is loaded from one rc.start, and halted from rc.stop. This has benefits in the realm of simplicity and speed, but once again, should I choose to stop a service without stopping the machine, a lot of manual setup and configuration will be needed.

Beyond all of these changes, the directory hierarchy is a bit different. It looks like the following:

/
bin/
dev/
etc/
home/
root/
mnt/
proc/
sys/
tmp/
var/


Some notable omissions are usr, lib, boot, and media. All mounted devices would reside in mnt, the kernel is in bin, and libraries are statically linked and therefore the lib directory is outmoded. usr is being done away with as well. Sources can be located in the users' home directories, and as for binaries, bin already exists.

I see a lot of potential here, and considering that these fellows have already proven their talents, I have no reason to doubt them. I have made several posts concerning my dissatisfaction with the direction things have been taking in the Linux world, and I must say that this is exactly the type of system I had been wanting. I have attempted several Linux distribution projects on my own, and each time run into a wall. I simply wasn't ever creative enough to find solutions for various problems into which I ran. Maybe these guys will have more luck/skill?