Archive for June, 2006
June 29, 2006 at 9:39 pm · Filed under General

VMS
The other day, I was thinking about the old debate. Worse is better. Just good enough. One of the classic examples in those texts is the way that BSD was designed vs. the MIT operating systems. (The other big debate was C versus Lisp). The main distinction was with how they dealt with an interrupt to a process that was blocked on some system operation.
In the BSD world, you (the user space programmer) got interrupted and you had to restart things yourself. In the MIT world, the OS was so smart, it would restart the program at the correct point in the correct state so the programmer didn’t have to deal with these cases. The BSD system won, but I don’t think it was for this reason.
So, I started thinking… what did the MIT system do exactly. I’ll bet the internet knows… and of course, since this is the future, it does. The MIT system was called PCLSRing or Program Counter LoSeRing and is well described over here. Now add to that an off the cuff comment by Steve a couple of weeks back that VMS had a completely async IO system. I said, “Really, I don’t remember that.” As I was researching this stuff, I remembed his comment, so that got me to dig a little more.
Sure enough, that old OS that I ran had an asynch model called QIO’s and AST’s which stand for Queued Input Outputs and Asynchronous System Traps. They handled this stuff fairly elegantly. I never got to that level in those days. I was using the C/POSIX layer on VMS. (Trivia, VMS was the first POSIX compliant OS… before Unix!) I think me and my boss at the time did do some performance analysis on this, and it was a win, but not by much. No matter, the machines were so slow… “how slow were they?” They were so slow, and generally running so many processes for things… that it wasn’t worth trying to push to the limit.
Well, I read a little more about VMS or OpenVMS on Wikipedia, and they expounded on a lot more of the good stuff that VMS had. The stuff I had direct experience with was LAT, Clustering, DCL, VMS Queues, DECnet, LANWorks, and the DB like API’s. The hardware was really good for lots of users on terminals, too. However, in terms of single user, GUI interactive work, it was just to clumsy and slow. So, the OS was good, but it only ran on 5 mip hardware when 40 was becoming super cheap. Oh yeah, I do remember lots of dollar signs and CAPITAL LETTERS FOR THINGS, too
Anyways, VMS used the asynch IO model in the form of ASTs, Unix had signals, and the MIT ITS had PCLSRing.
A VMS Galaxy Diagram
vax bar
June 29, 2006 at 8:53 pm · Filed under General
According to an old Ex-Intel employee, the primary architect of Windows NT thought that the x86 wouldn’t be around very long:
Given your interest in VMS you might find this amusing. In the early 1990’s we visited Microsoft to try to ensure that their new OS “Windows NT” would be available on IA32. We met with Dave Cutler, and he was adamant that IA32 was doomed and would we please get lost so he could target Alpha and then
whatever 64-bit architecture was certain to replace IA32 by Intel. It was not a polite disagreement; that guy HATED IA32 and wasn’t reluctant to transfer his displeasure to IA32’s representatives (us). What an ugly business meeting. Smart guy, though.
Dave Cutler is the guy who wrote a real-time OS for the PDP series at DEC. He was later selected to design VMS for the new VAX architecture. Later on he made this other little OS (with his hand picked team, of course) called Windows NT.
More trivia, it wasn’t until last year that I knew that Windows NT or WNT is equal to VMS with each letter incremented by 1
(Shout out to the Joseph Smarr for that one) It is funny because I had always heard that the core of NT had tremendous DEC influence and design similarities, I just never made that connection.
Why all this… more on that in the next post.
June 29, 2006 at 11:15 am · Filed under General
Today was a ‘bad network’ day. Lots of sites just wouldn’t load. Of all the sites, the one that worked the best was gmail. Everything else had large pages and the full refresh would just kill the page load.
The bottom line: the smaller payloads that occur with Ajax work better on crappier networks.
June 27, 2006 at 9:46 pm · Filed under General
enough said. This is the best VI and it consistently surprises me at how good it is. I still find features that solve every problem I have ever had with vi. My .vimrc file is starting to look like my old .emacs file, except that this one is readable.
June 26, 2006 at 8:52 pm · Filed under General


I just ordered a New laptop. It’s not a Mac, its a Dell.
Why? Wasn’t I using a MacBook?
Yep, and a MacBook is nice, but they do have their quirks.
Right now, I just need a laptop to get me through the rest of the year. It turns out that I’m going to be taking some trips and I’m finding myself around a lot of places with WiFi. So, I need something that is basically a terminal to the internet. That means Firefox/IE for the web and PuTTY for the command line. It also means a big screen (that eliminates Thinkpads, they don’t do 17″). I also didn’t want to spend a lot of money. (that eliminates Apple) The result is Dell, and I’ve already had good experiences with Dell.
The winner was a new Dell Inspiron E1705.
At under $1000 (including taxes), I just got all of that with a 17″ widescreen display and a dual-core processor AND 1 Gig of RAM. These Dell’s are so damn cheap. They always have some kind of 30% off deal. I have no doubt that I can be productive with such a box. Given all the factors: it’s inexpensive, all current tech will be very obsolete in 6 months, I don’t need something special now… it doesn’t make sense to spend a premium.
Also, I have a rule about laptops. No matter what, they never last more than 2 years. So why spend a lot of money?
So, all that being said, when it gets here… I’ll give you the straight scoop.
June 26, 2006 at 8:44 pm · Filed under General

There is a neat article that gives a tour of the ECS motherboard factory. Frankly, I like ECS motherboards. Fry’s often has deals on them and as a result some people think they are of a lower quality. This is not the case. They are actually one of the largest OEM’s of motherboards in the world. They work really well and get good reviews.
June 24, 2006 at 3:53 am · Filed under General

The other day, I was thinking about register windows, like the kind on a Sparc CPU. I don’t remember why I was thinking about this, but it was probably me just surfing Wikipedia. At any rate, the question I had was: “What happens when you run out of windows?” There are only so many registers and only so many register windows. I searched on Wikipedia and couldn’t find the answer. Fortunately, I found this great web page written by a Swedish CS professor.
Essentially, whenever there is a register window overflow, the processor receives a trap/interrupt. Then it is up to the OS to spill the register windows to the stack and reset them. Talk about a performance hit!
I think I even remember reading somewhere that Patterson thought his original idea for register windows was a poor choice.
Funny, since the Itanium is using variable sized register windows.
June 24, 2006 at 3:02 am · Filed under General
Back in the old days, when Windows was just starting to run on the 386, the fastest way to get from v86 mode (which the vast majority of apps were running), and into protected mode was to execute illegal instructions ! Raymond Chen has a funny story about that and some great comments on his blog post about it.
This reminded me of another bit of lore. When the 286 came out, there was talk that it couldn’t really run Unix well. After looking on the net, I found out that wasn’t the case. The problem was that it couldn’t exit protected mode. For a Unix this isn’t a problem. For a DOS memory extender, this was a huge problem. It turned out that most people solved the problem by doing a RESET on the CPU to get back into real mode ! Ouch! Read more about the proper way, here under ‘Entering Protected Mode’ and here for the Triple Fault Technique.
Here is another discussion on why the x86 had so few registers. Answer: legacy of course with older 70’s designs. It also had some interesting comments from people discussing the benefits of having fewer registers! It is interesting to see this debate still happening with the people that actually still care about this stuff (and not the processor architects themselves). Don’t they know the trade-offs?
Next entries »