My first year at university, the Sinclair QL sat on a desk against my first-floor bedroom window on Perersgatan, but I didn't do much in the way of programming. Partly it was a matter of wanting to concentrate on my studies. But also, I simply found myself lacking a project to do on my computer. Lack a project and you lack enthusiasm. You're trying to come up with something that might motivate you.
It seemed like the perfect time to join the army, which I knew I would have to do anyway. I was nineteen years old and irritated with my computer's shortcomings and unattached to any interesting computer project. I boarded a train for Lapland.
I've already indicated how clueless I was about, among other things, the physical demands of army service. So after the eleven months of phys ed-with-firearms, I felt perfectly justified in spending the remaining decades of my life in blissful inactivity, with the only exercise coming from tapping code into a keyboard or gripping my fingers around a glass of pilsner. (In fact, the first near-sport activity after leaving the army didn't take place until almost ten years to the day following my discharge, when David coerced me into going boogie-boarding with him in the killer waves at Half Moon Bay. I practically drowned, and my legs were sore for days.)
Army service ended on the 7th of May, 1990. Although Tove would tell you I have trouble remembering our anniversary, I can't possibly forget the date I was discharged.
The first thing I wanted to do was get a cat.
I had a friend whose cat had produced a litter a few weeks earlier, so I bought the sole remaining kitten, which was white, male, beautiful -- and, because he had spent his first few weeks in the outdoors, easily able to live both inside and outside my mother's apartment. I named him Randi, short for Mithrandir, the white wizard in Lordof the Rings. He is now eleven years old and, like his owner, has become totally adjusted to the California lifestyle.
No, I don't think 1did anything productive that entire summer. Classes for my second year at the university wouldn't start until fall. My computer was not quite up to snuff. So I sort of hung around in my ratty bathrobe or played with Randi or, occasionally, got together with friends so they could chuckle about my attempts at bowling or snooker. Okay, I did do a little fantasizing about my next computer.
I faced a geek's dilemma. Like any good computer purist raised on a 68008 chip, I despised PCs. But when the 386 chip came out in 1986, PCs started to look, well, attractive. They were able to do everything the 68020 did, and by 1990, mass-market production and the introduction of inexpensive clones would make them a great deal cheaper. I was very money-conscious because I didn't have any. So it was, like, this is the machine I want to get. And because PCs were flourishing, upgrades and add-ons would be easy to obtain. Especially when it came to hardware, I wanted to have something that was standard.
I decided to jump over and cross the divide. And it would be fun getting a new CPU. That's when I started selling off pieces of my Sinclair QL.
Now everybody has a book that has changed his or her life. The Holy Bible. Das Kapital. Tuesdays With Maury. Everything I Needed to Know I Learned in Kindergarten. Whatever. (I sincerely hope that, having read the preface and my theory on The Meaning of Life, you will decide that this book does the trick for you.) The book that launched me to new heights was Operating Systems: Design and Implementation, by Andrew S. Tanenbaum.
I had already signed up for my fall courses, and the one that I was most looking forward to was in the C programming language and the Unix operating system. In anticipation of the course, I bought the aforementioned textbook during the summer in the hope of getting a head start. In the book, Andrew Tanenbaum, a university professor in Amsterdam, discusses Minix, which is a teaching aid he wrote for Unix. Minix is also a small Unix clone. Soon after reading the introduction, and learning the philosophy behind Unix and what the powerful, clean, beautiful operating system would be capable of doing, I decided to get a machine to run Unix on. I would run Minix, which was the only version I could find that was fair!y useful.
As I read and started to understand Unix, I got a big enthusiastic jolt. Frankly, it's never subsided. (I hope you can say the same about something.)
The academic year that began in the fall of 1990 was to be the first time that the University of Helsinki would have Unix, the powerful operating system that had been bred in AT&T's Bell Labs in the late 1960s but had grown up elsewhere. In my first year of studies, we had aVAX running VMS. It was a horrible operating system, certainly not an environment that made you say, "Gee, I'd like to have this at home, too." Instead it made you say,"Hmmm. How do you do that?" It was hard to use. It didn't have many tools. It wasn't suited to easily accessing the Internet, which was running on Unix. You couldn't even easily figure out how large a file was. Admittedly, VMS was very well suited for certain operations, like databases. But it's not the kind of operating system that you get excited about.
The university had realized it was time to move away from all that. Much of the academic world was then growing enamored of Unix, so the university acquired a MicroVAX running Ultrix, which was Digital Equipment Corporation's version of Unix. It was a way of testing the waters of Unix.
I was eager to work with Unix by experimenting with what I was learning in Andrew Tanenbaum's book, excited about all the things I could explore if I had a 386 PC. There was no way I could get together the 18,000 FIM to buy one. I knew that once the fall semester began, I would be able to use my Sinclair QL to access the university's new Unix computer until I could afford to buy a PC on which I could run Unix on my own.
So there were two things I did that summer. Nothing. And read the 719 pages of Operating Systems: Design and Implementation. The red soft-cover textbook sort of lived on my bed.
The University of Helsinki sprang for a sixteen-user license for the MicroVAX. That meant admittance to the "C and Unix" course was limited to thirty-two students-I guess the thinking was that sixteen people would be using it by day, sixteen by night. Like the rest of us, the teacher was new to Unix. He admitted this up front, so it wasn't really a problem. But he would read the text only one chapter ahead of the students, whereas the students were sometimes skipping ahead by three chapters. So it became something of a game in which people tried to trip up the teacher by asking questions that related to things we would be learning three chapters later, just to see if he had read that far.
We were all babes in the Unix woods, with a course that was being made up as we went along. But what was obvious from this course was that there was a unique philosophy behind Unix. You grasped this in the first hour of the course. The rest was explaining the details.
What is special about Unix is the set of fundamental ideals that it strives for. It is a clean and beautiful operating system. It avoids special cases. Unix has the notion of processes -- a process is anything that does anything. Here's a simple example. In Unix the shell command, which is what you type to gain entry into the operating system, is not built into the operating system, as with DOS. It's just a task. Like any other task. It just happens that this task reads from your keyboard and writes back to your monitor. Everything that does something in Unix is a process. You also have files.
This simple design is what intrigued me, and most people, about Unix (well, at least us geeks). Pretty much everything you do in Unix is done with only six basic operations (called "system calls," because they are the calls you make to the operating system to do things for you). And you can build up pretty much everything from those six basic system calls.
Читать дальше