Sunday, November 28, 2004

Of SGI, Linux, and X --How one person learned to choose (2)

After the last minute movie experience, I was sold. Multi-user computing is a powerful thing. While most of the industry is trying hard to figure out how to get everything done on one machine, I was busy learning how to make groups of machines work together, shared among those using them. I wanted them to work like they did for my video project.

About this time, the resident Systems Engineer, (he knows who he is, thanks Tim!) who had been watching me bring all his machines to their upper limit for many hours straight, handed me a CD. On it was RedHat Linux 5.2, I think. Maybe 5.1, it didn't matter. What did matter was that CD contained a UNIX environment similar to the one I learned to use on the expensive SGI workstations. Of course I had to install it, and I did.

Compared to the well crafted IRIX environment on the SGI, this Linux was a mess! But the core of it was exactly what I wanted; namely, a multi-user computing envronment and it would run on a PC!

After a lot of work, a decent working environment began to take shape. None of the high-end software I used everyday ran, but I could always connect to one of the SGI machines and run it there, on my desktop. However, lots of other interesting software did run and it came with the OS. This too was a lot like the SGI environment. You see, getting a win32 machine loaded means you are ready to then load other things in order to actually get anything done.

This had a lot of potential in that getting the OS loaded brought a lot of applications and tools with it. One one hand, it took a while to set everything up. On the other it was ready to do lots of things once done. Prior to this time, doing anything significant really meant buying software. This was like going to buy a toolbox and finding it loaded to the brim with tools.

About this time, some smart people created some win32 remote desktop software. While not multi-user in the sense that UNIX systems were, it did allow a PC to participate as part of a UNIX multi-user environment. Finally I had everything I needed to leave my win32 desktop, and I did.

Linux grew rapidly. Each new release was more refined and capable. My multi-user desktop grew in power, even though it was running on an older machine. I worked hard to weave an environment where I could run high-end CAD, office tools, and other tools all on one environment. Sharing files, running applications all were possible across many different machines at the click of an icon.

But it did take work --the sort of work that was not for the average soul. For me, however, the Linux desktop was a reality. While it could not do everything I needed yet, it embodied the holy trinity, if you can imagine such a thing, of choice, multi-user computing, and network aware graphical interfaces. Put another way: Open Source, Linux, and the X window display system.

One other powerful thing happened during this time. For every task I learned to complete, I really learned something about computing. Not just where to click and what to buy, but how things worked and where they came from and why they were created and how you could make your own. Of course I expected this from the expensive SGI workstations, but from a free, burned CD?

Along with this powerful learning came the realization that the ongoing erosion of powerul multi-user environments threatened choice every day. Everywhere I looked, more and more people were spending money on limited environments filled with expensive software. I began to seriously question what I was seeing.

The differences between Open Source Software, Open Standards for data and Closed Source Software, Closed Standards for data became crystal clear during this time. The more I grew to understand these differences, the more deeply offended I became.

Perfectly capable systems were being tossed out, simply because they did not run the right software, or that the software they did run, could not exchange data with Microsoft and other software. The hardest part to swallow was the simple truth that these differences were artificial. No technical reasons exist for this to be the case. People were trashing perfectly solid investments because they were forced to, not because they actually had to. Given the price paid for these machines, that seemed a terrible waste of both resources and dollars. It also is terribly wrong. It also happend to be making those selling the goods a fair amount of money.

Now, I am a little bit sensitive about the money issue. Having grown up with very little of it, wasting it was not on the list of things I planned to do. Yet, this is exactly what almost the entire industry, from my point of view, wants us to do! Entire sub-industries had sprung up telling us what to buy and from whom. Whenever something really good came along, it always got folded into the integrated win32 package as either an option, or expensive add on.

It all clicked. You were either on that path, or not. With most everybody being on the path, choice was in clear danger. Danger from closed data formats locking up data, danger from big companies buying and integrating smaller companies and their products, only to make more money, not really to benefit anybody. Danger from virii and security threats. Since every computer worked exactly the same and choice reduced the number of potential software combinations, everybody was a target in a big way.

Everyone except the small minority of people choosing Apple, Sun, SGI, Amiga, Linux, BSD, whatever. We did not have these problems, for the most part. A high degree of choice meant a diverse array of hardware, software, and operating systems, yet we could all exchange data and get the same work done.

Nobody should be telling us how to compute. We should have the choice to make the very best use of the computers we have. This means the average joe should be able to buy a PC and use the off the shelf software and power users, like me should be able to weave together environments that get work done. Both of us get work done, but we do it in starkly different ways. Joe might spend money where I might spend time, for example. Maybe Joe has money, I know I don't.

Microsoft Software, particularly their office software, is good software, but it only works with other Microsoft software. For people needing to write documents, schedule time with others, send e-mail, etc.. it gets the job done nicely. Nearly every company is using it. All of these users are losing their power to choose with every new software release. They are all locked in.

Maybe they don't want to choose, on the other hand, maybe they don't know they can! Maybe those selling canned solutions don't want them to know any better.

A little digression fits here. As a kid, we all had different computers. That happened because our parents just bought whatever computer they wanted to and we used them. Back then, one could get magazines off the shelf, at the grocery store no less, that had programs written for the different machines that all did the same thing. It was cool. We learned a lot of stuff for a few bucks and some time...

Well, the kids I knew broke into three camps: users who bought things, users who would program and share with others, and users who would program things, but not share. Today, I still know many of the first two types. The buyers need help today installing things and getting their Internet setup. The second group are all programmers, web developers, game people, whatever. The few people I still know from the no-share group are all in sales...

Clearly Linux was for me. I also know I would not have bumped into it, had it not been for the SGI experiences.

About this time, SGI enters the story again for the second time. I was able to adopt a victim of this wintel onslaught! Well that is not strictly true. This machine was one of the very oldest machines, so it's time had come in other ways besides monopoly market forces. Neverthless, it was my SGI that I could run at home. After playing with it for a while, I realized it might make a good music server. The 30Mhz cpu was capable of decoding compressed mp3 music files, but nobody had released a player for it. Most folks I asked said it was too old, couldn't do the job. But how did they know? I decided to give this Open Source idea a real test. Afterall, this is what the sharing group always did. Find a program and get it to run on the hardware you have, not the hardware you could not afford to buy.

It took some time, but I finally managed to compile a music player for this system and it played perfectly, up to a pretty high bitrate! Plenty of capability for what I wanted to do. By the way, this machine was blessed with a very nice audio subsystem. Very low noise and two channels of output. Perfect.

In my childhood, I had done some programming. Assembly language, a smattering of C, plus other things. Until that time, the idea of actually compiling software never struck me as an important thing. However, this experience taught me another very important lesson. If you can complile software, you have the ultimate in choice. You have control of your computing environment. You are set.

Does everybody need to compile to get this advantage? Basically speaking, no. Most average people wanting to gain some control over their computer and save a bit of money at the same time can just use some of the work the rest of us get done.

The significance of the Open Source movement fully took hold that day. Sitting there listening to some music, coming from a machine all but forgotten, was powerful. I realized it was possible to build computing solutions right out of thin air and whatever hardware happened to be lying around. My entire view of the software industry changed from one of lofty engineers building secret codes we were damn lucky to get to pay to use to one of people all over the world building things they wanted to build and leaving the pieces for others to work with.

After a time, I saw somebody on USENET interested in doing the same things I did with my old machine on theirs. They were not lucky enough to get a compilier for their machine. SGI compiliers are expensive and free compiliers are hard to setup on older machines, so I just sent him the binary I had worked on and told him to pass it on. You just can't do that with proprietary software legally. Most people do, but they are breaking the law. I realized I was no longer going to have to do that.



Post a Comment

<< Home