I found a very superficial Linux Journal article on performance tuning linked from LinuxToday this week. I read the article because I’m a performance junkie and I hoped to maybe find something I hadn’t heard before.
The article recommended a kernel recompile, which many people don’t consider critical anymore. It’s still something I do, especially on laptops, since a kernel tuned to a machine’s particular hardware boots up faster–often much faster. While the memory you save by compiling your own kernel isn’t huge and was much more critical back when a typical computer had 8 MB of RAM, since Linux’s memory management is good, I like to give it as much to work with as possible. Plus, I’m of the belief that a simple system is a more secure system. The probability of a remote root exploit through the parallel port driver is so low as to be laughable, but when my boss’ boss’ boss walks into my cube and asks me if I’ve closed all possible doors that are practical to close, I want to be able to look him in the eye and say yes.

The same goes for virtual consoles. If a system runs X most of the time, it doesn’t need more than about three consoles. A server needs at most three consoles, since the only time the sysadmin will be sitting at the keyboard is likely to be during setup. The memory savings isn’t always substantial, depending on what version of getty the system is running. But since Linux manages available memory well, why not give it everything you can to work with?

The best advice the article gave was to look at alternative window managers besides the ubiquitous KDE and Gnome. I’ve found the best thing I’ve ever done from a performance standpoint was to switch to IceWM. KDE and Gnome binaries will still run as long as the libraries are present. But since KDE and Gnome seem to suffer from the same feature bloat that have turned Windows XP and Mac OS X into slow pigs, using another window manager speeds things along nicely, even on high-powered machines.

I take issue with one piece of advice in the article. Partitioning, when done well, reduces fragmentation, improves reliability, and allows you to tune each filesystem for its specific needs. For example, if you had a separate partition for /usr or /bin, which hold executable files, large block sizes (the equivalent of cluster sizes in Windows) will improve performance. But for /home, you’ll want small block sizes for efficiency.

The problem is that kernel I/O is done sequentially. If a task requires reading from /usr, then /home, then back to /usr, the disk will move around a lot. A SCSI disk will reorder the requests and execute them in optimal order, but an IDE disk will not. So partitioning IDE disks can actually slow things down. So generally with an IDE disk, I’ll make the first partition a small /boot partition so I’m guaranteed not to have BIOS issues with booting. This partition can be as small as 5 megs since it only has to hold a kernel and configuration files. I usually make it 20 so I can hold several kernels. I can pay for 20 megs of disk space these days with the change under my couch cushions. Next, I’ll make a swap partition. Size varies; Linus Torvalds himself uses a gig. For people who don’t spend the bulk of their time in software development, 256-512 megs should be plenty. Then I make one big root partition out of the rest.

With a multi-drive system, /home should be on a separate disk from the rest. That way, if a drive fails, you’ve halved your recovery time because you’ll either only have to install the OS on a replacement drive, or restore your data from backups on a replacement drive. Ideally, swap should be on a separate disk from the binaries (it can be on the same disk as /home unless you deal with huge data files). The reason should be obvious: If the system is going to use swap, it will probably be while it’s loading binaries.

Still, I’m very glad I read this article. Buried in the comments for this article, I found a gem of a link I’ve never seen referenced anywhere else before: Linux Performance Tuning. This site attempts to gather all the important information about tuning Linux to specific tasks. The pros know a lot of this stuff, but this is the first time I’ve seen this much information gathered in one place. If you build Linux servers, bookmark that page. You’ll find yourself referring back to it frequently. Contributors to the site include kernel hackers Rik van Riel and Dave Jones.

Wednesday night, 6:35 PM: I was in my South St. Louis County apartment, getting ready for church, when my phone rang. I’d had at least one telemarketing call that night already, but I picked up the phone anyway.
“Hello?” I said, maybe slightly agitated.

“Dave?” a female voice asked. So much for a telemarketer. I recognized the voice but didn’t place it immediately. And obviously she knew me.

“Oh. That means one of the files your computer needs to get started is blitzed,” I said. “What happens if you type it?”

“You’re gonna hate me,” she said as she typed the filename. “You deal with this stuff all day and now I call you wanting computer advice.”

I could never hate her. She’s too nice. Besides, guys like fixing things, especially for people they like. I probably should have told her that.

“It just repeats the same thing again,” she said.

“I see.” I had her try a couple of other locations–Microsoft OSs have always installed command.com in too many places. But no go.

“Are my other files OK?”

“Hopefully,” I said. “My computer used to do this to me once a year.”

“My whole life is on this computer, Dave,” she said, sounding a little distressed. My heart melted. I hate it when bad things happen to good people. I especially hate it when bad things happen to good people and one of Bill Gates’ or Steve Jobs’ toy operating systems is involved. But sometimes it’s just a minor inconvenience. I hoped this was one of those instances.

“I just need to boot your computer off a floppy, type a command or two, and it’ll probably come right back to life,” I said.

“Do you have time to do this? I mean, really have time to do this?” She didn’t want to inconvenience me.

“Yeah, I’m on my way to church, and you’re on the way, and it should only take me a couple of minutes,” I said as I formatted a disk and copied sys.com to it.

After assuring her again that I was sure, I told her I’d be there in about 10 minutes. I hopped in my car, disk in hand, ready to go be a hero and still make it to church on time. I rang her bell, heard her dog scream bloody murder, and she opened the door. As soon as she let me in, her Labrador warmed up to me. She led me to the computer room, where I sat down and popped in a disk. She yanked on her Lab’s leash, trying to keep her away from me. She wasn’t having much luck.

“That’s OK,” I said to Wendy. “I like dogs.” Then I turned to the dog and started scratching behind her ears. “I’ll bet the most dangerous part of you is your tail. You just like people so much you thump ’em to death, don’t you?” I turned to the computer and booted off the floppy. It didn’t work. So I restarted, and when it asked for a command interpreter, I typed “a:command.com” and got a command prompt. Meanwhile, her dog grabbed onto my hand with her paw so I wouldn’t go anywhere. Shadow, the Cocker Spaniel/Irish Setter mix I had growing up, used to do that.

I ran sys.com and rebooted, expecting to be a hero. Instead, I got the dreaded invalid media type reading drive C error.

I told Wendy I’d need the heavy artillery to fix this problem. I kicked myself for not bringing any more sophisticated tools like MBRWORK. It looked like a blitzed partition table to me.

I rebooted a couple more times to try to get symptoms. The Windows logo splashed up ever so briefly. The drive didn’t make any weird noises. That was good. That meant the boot record was intact, and that some data was intact–obviously, because it was reading the Windows logo. It looked just like the time my Pentium-75 crashed and forced me to cycle power, then didn’t come back up. I didn’t know how to fix a blitzed partition table then. But that was a long time ago.

I did my best to reassure her that I could get her data back. I told her the odds looked like about 50/50. In reality I was more confident than that, but unless I’m about 99% certain, I won’t say the chances are any better than 50/50. There’s nothing I hate more than disappointing people.

I went to church mad at myself that I hadn’t gotten her data back. I came home from church, got ready to gather up my tools, and checked my messages. It was Wendy. She said she’d gone to school to work on a paper, that we’d worry about the computer tomorrow but it wasn’t a big deal.

Maybe it wasn’t to her. But it was to me. I hate losing, especially to a computer. I have since I was in first grade and played Atari at my neighbors’ house. True, back then I got mad when I lost at Donkey Kong, but in my mind there’s no difference. Even though it’s a different game today and I lost a lot then and I rarely lose now, it doesn’t make me hate losing any less. Especially when I’m playing with other people’s stuff. Her words echoed in my mind: “My whole life is on this computer, Dave.”

I wasn’t going to let her down. I wasn’t going to let myself down by letting her down. I was going to get that data back, and I didn’t care what I had to do to get it.

I called her back, expecting her not to be there. Her mom, Debby, answered the phone. She gave me a few more clues, told me she didn’t expect Wendy home until late, said one or the other of them would be home about 3:30 the next day. I’d been at work until close to six on Wednesday and saw the possibility of having to stay that late on Thursday. I didn’t make any hard and fast promises about when I’d be there, but I started plotting how I would escape work by 4:15.

On Thursday, I loaded up floppies containing all the standard Microsoft disk tools, plus Norton Disk Doctor, plus Spinrite, plus MBRWORK and a few other partition recovery tools, along with a Windows 98 CD, and took the whole wodge of stuff to work. At 4:20, I called. Debby answered. I told her I was leaving work and I’d probably get there in about 20 minutes.

Along the way, I listened to a bunch of punk rock, really loud, and got myself pumped up. Whether it’s stepping up to the plate in the bottom of the seventh with runners on second and third and two out, or just a tricky computer problem, I get myself into the same mental place. The world fades away and I see nothing but the challenge. By the time I got to their house, I was in the zone. I was so in the zone that I walked up to the front door of the wrong house. Wendy’s Lab was in the front yard giving me the “I know you! What are you doing over there? Get over here and pet me!” look. I didn’t notice. The neighbor pointed next door. Feeling stupid, I walked over. The dog congratulated me on getting smart, Debby greeted me, and I went another round with her computer, running MBRWORK. It recovered the partition successfully, it said. I got excited. I rebooted and the computer asked me for a command interpreter again.

Cantankerous computer 2, Dave 0.

I went home, fixed myself a little something to eat, pondered the situation, and wrote my Bible study for Friday night on my company laptop. That calmed me down enough to let me think rationally again. I packed up everything I could possibly need: Norton AntiVirus, Ghost, an extra hard drive, two laptops, a couple of Linux CDs, both versions of Windows 98, utilities disks…

I booted off my disks and tried a few things. Nothing. I booted my company laptop up with the disks–that laptop doesn’t have DOS installed–and added a couple more toys. They didn’t help. Wendy got home and asked if it was a bad sign I was there. I muttered something and probably came off as rude. I was in the zone, after all. I asked her if she had any floppies she wanted me to scan for viruses. She handed me one, and I tried to boot my laptop into Windows. It showed the very same symptoms as her computer.

I’ve said it before and I’ll say it again. Virus writers, PLEASE get a life. Get interested in girls or something. Anything!

Wendy didn’t like the look on my face. I told her what happened. She said a phrase I won’t repeat here, then apologized. There was no need. I felt like saying it too. Or something worse.

For grins, I tried booting the laptop into Linux. It booted up like it was cool. Hmm. Boot sector viruses that kill Windows dead don’t even make Linux flinch. I owe Linus Torvalds a beer.

Since I was now convinced we were dealing with a boot sector virus, I replaced the MBR. No joy. I booted off a Linux CD, switched over to a console, ran cfdisk, and viewed the partition table. One 4-gig partition, FAT32. No problems. Odd.

Wendy started fretting. “You’ve spent all this time and you’ve lost your laptop. I’m about to start to cry.”

I stopped what I was doing, turned to her, and looked her straight in the eye. “I take care of my friends.”

She looked back at me like she thought that was kind of cool.

“I don’t care about the laptop. I can fix that later. I can rewrite the Bible study that was on it. It took me 20 minutes to write, so it’ll take me 15 minutes to rewrite. I’m going to get your data back.”

The Bible study I lost indeed took me about 15 minutes to rewrite, and the second version was a lot better. But I didn’t get her data back that night. Eventually I gave up, pulled her drive, installed a new drive, and installed Windows and Office on it so they’d have a computer that was useful for something. Debby walked in as I was switching drives, noticed the dust inside the case, and gave it a disgusted look. She came back with a rag and Wendy started laughing at her.

Debby lit up when she walked in the room and saw the Windows 98 screen on her computer. Later when Wendy walked back in, she let out a whoop and told her mom she was missing beautiful things in the computer room. I was pretty happy about it too. Windows 98 didn’t install easily–the intial reboot failed and installation didn’t continue until I booted it in safe mode, then rebooted. I gave the computer a lecture as I booted it, reminding it that I have enough spare parts at home to build a computer like it and would have no qualms about destroying it and replacing it with something else. I know it didn’t hear or understand a word I said, but I felt better afterward.

I felt bad about not getting the data back that night. Wendy and I talked for about 45 minutes about other things. I felt better afterward. I forgot to thank her. Around midnight, I packed up the stuff and drove home.

Wendy and I talked the next day over e-mail. I’d taken my disks to work and scanned them on a non-networked PC nobody cared about and found the Form virus. Wendy had taken some disks to school and had them scanned. They contained both Form and antiCMOS. Since antiCMOS resides in the MBR and Form resides on the primary partition, the two viruses can coexist. Form was relatively harmless on FAT16 drives, and although antiCMOS was potentially destructive in 1991, it’s much less so now that PCs autodetect hard drives at boot rather than relying on parameters stored in CMOS. My work the night before would have eliminated antiCMOS, which explained why it wasn’t present on my disks. I did a Dejanews search on Form and FAT32, to see if that would explain the apparent partition corruption. I found that the symptoms were exactly what Wendy was showing. And I found recovery methods that had a high success rate.

I haven’t put Wendy’s drive in one of my PCs yet to recover it. But I’m pretty confident I’ll get her data back. That’s a good thing. I’ve met nicer people than Wendy and Debby. But only once or twice. People like them don’t come around very often, so I’d like to do something nice for them.

Desktop Linux! I wanna talk a little more about how Linux runs on a Micron Transport LT. I chose Debian 2.2r3, the “Potato” release, because Debian installs almost no extras. I like that. What you need to know to run Linux on a Micron LT: the 3Com miniPCI NIC uses the 3C59x kernel module. The video chipset uses the ATI Mach64 X server (in XFree86 3.36; if you upgrade to 4.1 you’ll use plain old ATI). Older Debian releases gave this laptop trouble, but 2.2r3 runs fine.
I immediately updated parts of it to Debian Unstable, because I wanted to run Galeon and Nautilus and Evolution. I haven’t played with any GNOME apps in a long time. A couple of years ago when I did it, I wasn’t impressed. KDE was much more polished. I didn’t see any point in GNOME; I wished they’d just pour their efforts into making KDE better. I still wish that, and today KDE is still more polished as a whole, but GNOME has lots of cool apps. Nautilus has the most polish of any non-Mac app I’ve ever seen, and if other Linux apps rip off some of its code, Microsoft’s going to have problems. It’s not gaudy and overboard like Mac OS X is; it’s just plain elegant.

Galeon is the best Web browser I’ve ever seen. Use its tabs feature (go to File, New Tab) and see for yourself. It’s small and fast like Opera, compatible like Netscape, and has features I haven’t seen anywhere else. It also puts features like freezing GIF animation and disabling Java/JavaScript out where they belong: In a menu, easily accessible. And you can turn them off permanently, not just at that moment.

Evolution is a lot like Outlook. Its icons look a little nicer–not as nice as Nautilus, but nice–and its equivalent of Outlook Today displays news headlines and weather. Nice touch. And you can tell it what cities interest you and what publications’ headlines you want. As a mail reader, it’s very much like Outlook. I can’t tell you much about its PIM features, because I don’t use those heavily in Outlook either.

The first time I showed it to an Outlook user at work, her reaction was, “And when are we switching to that?”

If you need a newsreader, Pan does virtually everything Forte Agent or Microplanet Gravity will do, plus a few tricks they won’t. It’s slick, small, and free too.

In short, if I wanted to build–as those hip young whippersnappers say–a pimp-ass Internet computer, this would be it. Those apps, plus the Pan newsreader, give you better functionality than you’ll get for free on Windows or a Mac. For that matter, you could buy $400 worth of software on another platform and not get as much functionality.

Linux development explained. There seems to be some confusion over Linux, and the kernel forking, and all this other stuff. Here’s the real dope.

First off, the kernel has always had forks. Linus Torvalds has his branch, which at certain points in history is the official one. When Torvalds has a branch, Alan Cox almost always has his own branch. Even when Cox’s branch isn’t the official one, many Linux distributions derive their kernels from Cox’s branch. (They generally don’t use the official one either.) Now, Cox and Torvalds had a widely publicized spat over the virtual memory subsystem recently. For a while, the official branch and the -ac branch had different VMs. Words were exchanged, and misinterpreted. Both agreed the original 2.4 VM was broken. Cox tried to fix it. Torvalds replaced it with something else. Cox called Torvalds’ approach the unofficial kernel 2.5. But Torvalds won out in the end–the new VM worked well.

Now you can expect to see some other sub-branches. Noted kernel hackers like Andrea Archangeli occasionally do a release. Now that Marcelo Tosatti is maintaining the official 2.4 tree, you might even see a -ac release again occasionally. More likely, Cox and Torvalds will pour their efforts into 2.5, which should be considered alpha-quality code. Some people believe there will be no Linux 2.6; that 2.5 will eventually become Linux 3.0. It’s hard to know. But 2.5 is where the new and wonderful and experimental bits will go.

There’s more forking than just that going on though. The 2.0 and 2.2 kernels are still being maintained, largely for security reasons. But not long ago, someone even released a bugfix for an ancient 0.-something kernel. That way you can still keep your copy of Red Hat 5.2 secure and not risk breaking any low-level kernel module device drivers you might be loading (to support proprietary, closed hardware, for example). Kernels are generally upward compatible, but you don’t want to risk anything on a production server, and the kernel maintainers recognize and respect that.

As far as the end user is concerned, the kernel doesn’t do much. What 2.4 gave end users was better firewalling code and more filesystems and hopefully slightly better performance. As far as compatibility goes, the difference between an official kernel and an -ac kernel and an -aa kernel is minor. There’s more difference between Windows NT 4.0 SP2 and SP3 than there is between anyone’s Linux 2.4 kernel, and, for that matter, between 2.4 and any (as of Nov. 2001) 2.5 kernel. No one worries about Windows fragmenting, and when something Microsoft does breaks a some application, no one notices.

So recent events are much ado about nothing. The kernel will fragment, refragment, and reunite, just as it has always done, and eventually the best code will win. Maybe at some point a permanent fracture will happen, as happened in the BSD world. That won’t be an armageddon, even though Jesse Berst wants you to think it will be (he doesn’t have anything else to write about, after all, and he can’t be bothered with researching something non-Microsoft). OpenBSD and NetBSD are specialized distributions, and they know it. OpenBSD tries to be the most secure OS on the planet, period. Everything else is secondary. NetBSD tries to be the most portable OS on the planet, and everything else is secondary. If for some reason you need a Unix to run on an old router that’s no longer useful as a router and you’d like to turn it into a more general-purpose computer, NetBSD will probably run on it.

Linux will fragment if and when there is a need for a specialized fragment. And we’ll all be the better for it. Until someone comes up with a compelling reason to do so, history will just continue to repeat itself.

Enough of this other stuff. I actually felt like messing around with computers yesterday. I read about Eric Raymond’s new PC (IBM was nice enough to finance building an obnoxious Linux box for Mr Raymond and Linus Torvalds), which is, in short, a dual Athlon-1200 setup with two big SCSI drives. Unfortunately, he neglected to mention how much memory he put in it. I’m assuming he splurged and got a gig or two. His comment? “I tried hard to gold-plate as much of the system as possible and load on all the extras and accessories I could, and was nevertheless unable to raise the total parts bill over $7,000.”
When they made the machine more reasonable (pulling the exotic tape backup drive and 21-inch monitor and other niceties), the system still cost $4,200. One participants’ comment? “People pay more than that for crap computers all the time.” Yup. I know one guy at work who had about $10,000 left in his budget at the end of July, so he decided he needed a new Macintosh. He spent every dime of it and didn’t get half the computer Raymond described.

The true test, of course, was compiling the Linux kernel. How long did it take? Two minutes, 21 seconds. I don’t think I have a computer that can compile it in under 10 minutes. Needless to say, I’m extremely jealous.

I had lunch with one of the seminarians assigned to my church (actually, seeing as it was at 3:30, I’m not sure what you would call that meal. Well, since people tend to argue whether the afternoon meal is lunch or dinner, and whether the evening meal is dinner or supper, I guess the 3:30 meal must be dinner). He mentioned that Best Bait-n-Switch had 256-meg Kingston DIMMs on sale for $25 after rebate, so we went. I picked one up.

With that, I had enough stuff to build a PC to replace several of the boxes I have laying around. Compare my setup to Raymond’s new setup:

Yep. Pathetic. For whatever reason the machine wouldn’t boot off the Sorcerer CD, so I ended up installing Mandrake 7 on it (I wanted something reasonably modern that didn’t use the infamous GCC 2.96 compiler). It’s going to be an experimental mail server, so it doesn’t have to be fabulous.

Getting Courier-IMAP proved difficult. Someone at Inter7.com decided he didn’t like PacBell, and Southwestern Bell by association, so he blocks access from their networks. How nice of him. I understand not liking the companies (I hate Southwestern Bell as much as anyone), but punishing their customers isn’t going to accomplish anything. I’m stuck with SWBell because I don’t want to pay for basic cable so I can get a cable modem. If I get DSL from anyone else, then I’m using Southwestern Bell plus someone else, so they can blame each other. And who knows? If I connected from someone else who’s also using SWBell’s network, would I be blocked?

He posted his complaints to PacBell, and I have to wonder if part of the reason PacBell ignores him is because of his liberal use of a phrase that contains the word “mother” and implies incest…

At any rate, there’s an easy way to get past rude people who are blocking your ISP. Use someone else’s network. Go to www.anonymizer.com, then punch in the forbidden web page. Now I’m not using Southwestern Bell’s network, but rather, Anonymizer’s network, which is then forwarding the information I requested.

Unfortunately I didn’t get the mailserver built, as Courier-IMAP is even harder to get running than it is to download, but it was kind of fun to mess around with Linux again.

If you’re interested in what I was doing, here’s the article I followed.Hey, it’s playoffs time. And ESPN is highlighting 1986, which as far as I’m concerned, is the second-best postseason ever (no one can top my Royals’ magical 1985, of course). ESPN’s doing a “voices of 1986,” but I noticed the voice I most want to hear isn’t up there yet. They’d better not forget him. I’ll never forget the photo of young Bosox closer Calvin Schiraldi with his face buried in a towel after Game 6. Hobbling first baseman Bill Buckner was the goat, but Schiraldi took it hard.

I actually met Schiraldi three years later. He was pitching for the Cubs by then, trying to put his career back together in spite of manager Don “Gerbil” Zimmer’s best efforts to prevent it. Nice guy. All people remember now is an unreliable relief pitcher (the specifics: a 13.50 ERA in the World Series, thanks in part to a home run he gave up to Ray Knight and the three consecutive singles he gave up preceding Buckner’s error) and they forget his 1.41 ERA in the regular season, followed by his 1.50 ERA in the playoffs. I remember a tired, overworked pitcher who gave everything he had and in the end just had nothing left. Boston had four pitchers worth having that year: Bruce Hurst, the incomparable Roger Clemens, “Oil Can” Boyd, and Schiraldi. In the postseason, those four men pitched until their arms fell off, and Boyd and Schiraldi were never quite the same after that. Hurst went on to have a respectable career; Clemens of course is still pitching and is now known as one of the biggest jerks in the game. These days, Schiraldi’s a high school teacher and coach in Texas.

I’m rested but not caught up. I semi-successfully built a Linux From Scratch box; it’s easily the fastest computer I’ve ever seen but not everything works quite right. I made the mistake of using Mandrake 8.0 as my source platform. In some regards Mandrake 8 makes sense; it has recent kernel and glibc versions. Unfortunately it also uses the infamous GCC 2.96; an unofficial release of GNU’s C compiler that’s so wretched that Linus Torvalds actually has asked people to not do any kernel development using any OS that uses it. One of the first things LFS does is build its own copy of GCC 2.95.3, but unfortunately, there’s code in my system that GCC 2.96 got its grubby mitts on and stuff doesn’t work. Notably, I can’t build another LFS system using it as the source. Crimony.
Meanwhile, I found out this afternoon that Bible study is at my place on Friday. My apartment’s always a mess and today’s no exception; it’s not as bad now as it has been at times but it is much less than presentable. So that’s my big project for the week. Hopefully I’ll get a mail server going too.

I haven’t said anything about Microsoft Executive Craig Mundie’s speech yet. Everyone’s heard of it, of course, and the typical response has been something along the lines of “Now we know Microsoft’s stance on Open Source.”

No, we’ve always known Microsoft’s stance on that. They’re scared of it. Remember the stereotype of open-source programmers: college students and college dropouts writing software in their basements that a lot of people are using, with the goal of toppling an industry giant. Seem far-fetched? Friends, that’s the story of Microsoft itself. Microsoft became an underground sensation in the late 1970s with Microsoft Basic, a programming language for the Altair and other kit computers and later for CP/M. And while we’ll probably never know the entire story of how and why this happened, when IBM decided to outsource the operating system for the IBM PC, they went to Microsoft and got both an OS and the must-have Microsoft Basic. Ten years later, IBM was just another hardware maker–really big, but getting squeezed. Today, 20 years later, IBM’s still a huge force in the computing industry, but in the PC industry, aside from selling ThinkPads, IBM’s a nobody. There may be hardware enthusiasts out there who’d be surprised to hear IBM makes and sells more than just hard drives.

Ironically, Microsoft’s response to this new threat is to act more and more like the giant it toppled. Shared Source isn’t a new idea. IBM was doing that in the 1960s. If you were big enough, you could see the source code. DEC did it too. At work, we have the source code to most of the big VMS applications we depend on day-to-day. Most big operations insist on having that kind of access, so their programmers can add features and fix bugs quickly. If Windows 2000 is ever going to get beyond the small server space, they really have no choice. But they do it with strings attached and without going far enough. An operation the size of the one I work for can’t get the source and fix bugs or optimize the code for a particular application. You’re only permitted to use the source code to help you develop drivers or applications. Meet the new Microsoft: same as the old Microsoft.

Some people have read this speech and concluded that Microsoft believes open-source software killed the dot-com boom. That’s ludicrous, and I don’t see that in the text. OSS was very good for the dot-com boom. OSS lowered the cost of entry: Operating systems such as FreeBSD and Linux ran on cheap PCs, rather than proprietary hardware. The OSs themselves were free, and there was lots of great free software available, such as the Apache Web server, and scripting languages like Python and Perl. You could do all this cool stuff, the same cool stuff you could do with a Sun or SGI server, for the price of a PC. And not only was it cheaper than everybody else, it was also really reliable.

The way I read it, Microsoft didn’t blame OSS for the dot-com bust. Microsoft blamed the advertising model, valuing market share over revenue, and giving stuff away now and then trying to get people to pay later.

I agree. The dot-com boom died because companies couldn’t find ways to make money. But I’m not convinced the dot-com boom was a big mistake. It put the Internet on the map. Before 1995, when the first banner ad ran, there wasn’t much to the Internet. I remember those early days. As a college student in 1993, the Internet was a bonanza to me, even though I wasn’t using it to the extent a lot of my peers were. For me, the Internet was FTP and Gopher and e-mail. I mostly ignored Usenet and IRC. That was pretty much the extent of the Internet. You had to be really determined or really bored or really geeky to get much of anything out of it. The World Wide Web existed, but that was a great mystery to most of us. The SGI workstations on campus had Web browsers. We knew that Mosaic had been ported to Windows, but no one in the crowd I ran in knew how to get it working. When we finally got it running on some of our PCs in 1994, what we found was mostly personal homepages. “Hi, my name is Darren and this is my homepage. Here are some pictures of my cat. Here’s a listing of all the CDs I own. Here are links to all my friends who have homepages.” The running joke then was that there were only 12 pages on the Web, and the main attraction of the 12 was links to the other 11.

By 1995, we had the first signs of business. Banner ads appeared, and graduating students (or dropouts) started trying to build companies around their ideas. The big attraction of the Web was that there was all this information out there, and it was mostly free. Online newspapers and magazines sprung up. Then vendors sprung up, offering huge selections and low prices. You could go to Amazon.com and find any book in print, and you’d pay less for it than you would at Barnes & Noble. CDNow.com did the same thing for music. And their ads supported places that were giving information away. So people started buying computers so they could be part of the show. People flocked from closed services like CompuServe and Prodigy to plain-old Internet, which offered so much more and was cheaper.

Now the party’s ending as dot-coms close up shop, often with their content gone forever. To me, that’s a loss only slightly greater than the loss of the Great Library. There’s some comfort for me: Five years from now, most of that information would be obsolete anyway. But its historical value would remain. But setting sentiment aside, that bonanza of freebies was absolutely necessary. When I was selling computers in 1994, people frequently asked me what a computer was good for. In 1995, it was an easier sell. Some still asked that question, but a lot of people came in wanting “whatever I need to get to be able to get on the Internet.” Our best-selling software package, besides Myst, was Internet In A Box, which bundled dialup software, a Web browser, and access to some nationwide provider. I imagine sales were easier still in 1996 and beyond, but I was out of retail by then. Suddenly, you could buy this $2,000 computer and get all this stuff for free. A lot of companies made a lot of money off that business model. Microsoft made a killing. Dell and Gateway became behemoths. Compaq made enough to buy DEC. AOL made enough to buy Time Warner. Companies like Oracle and Cisco, who sold infrastructure, had licenses to print money. Now the party’s mostly over and these companies have massive hangovers, but what’s the answer to the Ronald Reagan question? Hangover or no hangover, yes, they’re a whole heck of a lot better off than they were four years ago.

I’m shocked that Microsoft thinks the dot-com phenomenon was a bad thing.

If, in 1995, the Web came into its own but every site had been subscription-based, this stuff wouldn’t have happened. It was hard enough to swallow $2,000 for a new PC, plus 20 bucks a month for Internet. Now I have to pay $9.95 a month to read a magazine? I could just subscribe to the paper edition and save $2,500!

The new Internet would have been the same as the old Internet, only you’d have to be more than just bored, determined, and geeky to make it happen. You’d also have to have a pretty big pile of cash.

The dot-com boom put the Internet on the map, made it the hot ticket. The dot-com bust hurt. Now that sites are dropping out of the sky or at least scaling operations way back, more than half of the Web sites I read regularly are Weblogs–today’s new and improved personal home page. People just like me. The biggest difference between 1994 and 2001? The personal home pages are better. Yeah, the pictures of the cat are still there sometimes, but at least there’s wit and wisdom and insight added. When I click on those links to the left, I usually learn something.

But there is another difference. Now we know why it would make sense to pay for a magazine on the Internet instead of paper. Information that takes a month to make it into print goes online in minutes. It’s much easier and faster to type a word into a search engine than to leaf through a magazine. We can hear any baseball game we want, whether a local radio station carries our favorite team or not. The world’s a lot smaller and faster now, and we’ve found we like it.

The pump is primed. Now we have to figure out how to make this profitable. The free ride is pretty much over. But now that we’ve seen what’s possible, we’re willing to start thinking about whipping out the credit cards again and signing up, provided the cost isn’t outrageous.

The only thing in Mundie’s speech that I can see that Linus Torvalds and Alan Cox and Dan Gillmor should take offense to is Microsoft’s suspicion of anyone giving something away for free. Sure, Microsoft gives lots of stuff away, but always with ulterior motives. Internet Explorer is free because Microsoft was afraid of Netscape. Outlook 98 was free for a while to hurt Lotus Notes. Microsoft Money was free for a while so Microsoft could get some share from Quicken. It stopped being free when Microsoft signed a deal with Intuit to bundle Internet Explorer with Quicken instead of Netscape. And there are other examples.

Microsoft knows that you can give stuff away with strings attached and make money off the residuals. What Microsoft hasn’t learned is that you can give stuff away without the strings attached and still make money off the residuals. The dot-com bust only proves that you can’t necessarily make as much as you may have thought, and that you’d better spend what you do make very wisely.

The Internet needs to be remade, yes, and it needs to find some sustainable business models (one size doesn’t fit all). But if Mundie thinks the world is chomping at the bit to have Microsoft remake the Internet their way, he’s in for a rude awakening.