Tuesday
Feb202007

Brinch-Hansen on the History of Operating Systems

A few months ago I read the following paper:  P. Brinch Hansen, The evolution of operating systems. In Classic Operating Systems: From Batch Processing to Distributed Systems, P. Brinch Hansen, Ed. Copyright 2000, Springer-Verlag, New York.  The following passages caught my eye:

  • The B5000 operating system (and its successors) were written in extended Algol that permitted systems programs to access the whole memory as an array of (unprotected) machine words (It was sometimes referred to as Burroughs overextended Algol). This programming trick effectively turned extended Algol into an assembly language with an algorithmic notation. The dangers of using such an implementation language were very real.
  • A superior tool like Unix often feels so natural that there is no incentive for programmers to look for a better one. Still, after three decades, it can be argued that the widespread acceptance of Unix has become an obstacle to further progress. Stonebraker (1981), for example, describes the problems that Unix creates for database systems.
  • Software managers continue to believe that software design is based on a magical discipline, called software engineering, which can be mastered by average programmers. Dijkstra explained that the truth of the matter is simply that the intellectual level needed for system design is in general grossly underestimated. I am convinced more than ever that this type of work is very difficult, and that every effort to do it with other than the best people is doomed to either failure or moderate success at enormous expense. In my opinion, the continued neglect of this unpopular truth explains the appalling failure of most software which continues to be inflicted on computer users to this day.
  • Dijkstra (1968a) and Habermann (1967) were able to prove by induction that the THE system was deadlock-free. Lauesen used a similar argument to prove that the coroutines of Boss 2 eventually would process any request for service.
  • The most significant contribution of Solo was undoubtedly that the program text was short enough to be published in its entirety in a computer journal:
    The Solo operating system: processes, monitors and classes, Per Brinch Hansen (1976b).
    Harlan Mills had this to say about the Solo program text (Maddux 1979): Here, an entire operating system is visible, with every line of program open to scrutiny. There is no hidden mystery, and after studying such extensive examples, the reader feels that he could tackle similar jobs and that he could change the system at will. Never before have we seen an operating system shown in such detail and in a manner so amenable to modification.
  • Twenty years later, the designers of the Java language resurrected the idea of platform independent parallel programming (Gosling 1996). Unfortunately they replaced the secure monitor concept of Concurrent Pascal with inferior insecure ideas (Brinch Hansen 1999).
  • Remote procedure calls (RPC) were proposed as a programming style by James White (1976) and as a programming language concept by me (Brinch Hansen 1978). Since then, system designers have turned it into an unreliable mechanism of surprising complexity.
  • By adding another software layer on top of the Unix kernel, the University of Newcastle was able to make five PDP11 computers act like a single Unix system, called Unix United. This was achieved without modifying standard Unix or any user programs:
    The Newcastle Connection or Unixes of the World unite, David R. Brownbridge, Lindsay F. Marshall and Brian Randell (1982)
    Unix United combined the local file systems into a global file system with a common root directory. This distributed file system made it possible for any user to access remote directories and files, regardless of which systems they were stored on. In this homogeneous system, every computer was both a user machine and a file server providing access to local files. The most heavily used services were file transfers, line printing, network mail, and file dumping on magnetic tape.

Back in 1986-87, when I was at the University of Newcastle, I used their PDP-11's for some of my course work. They were named after various English computing pioneers - babbage, turing, jevons, boole and so on. I can remember being particularly impressed by how the other machines appeared within the directory structure of the machine you were logged on to. I think that the person who explained this to us must have played a part in the implementation because they were obviously proud of this feature.

There are many other papers in the Per Brinch-Hansen Archive that are worth reading. 

Monday
Feb192007

A Day in Birmingham

On Friday I spent several hours wandering around Birmingham city centre.  I have been through Birmingham on trains many times before but this was the first time that I had ventured out from New Street Station and I was pleasantly surprised.  Imposing Victorian buildings, large paved open spaces with fountains and statues (scientists and engineers such as Joseph Priestley and James Watt amongst them!).  I got a distinct feeling of being at a centre of immense power and wealth, as if Birmingham was to the Industrial Revolution what Rome was to the Roman Empire.

Waiting outside the Museum and Art Gallery for it to open, I tried to ignore the large flat screen on the Town Hall that was showing the BBC TV news (Had it been dark I would have been tempted to silence it with a brick).  Even the less imposing buildings such as the Library were not too bad.  Of the modern buildings, the most eye-catching is the Hyatt Hotel, a glass tower block with another glass tower block reflected in its windows (I would have taken a photo if I'd taken my camera with me).  In the afternoon I had a look around the two Waterstones bookshops.   

On the train journey home I saw two red kites several miles apart near Didcot.  Red kites are now common in the country between Oxford and Reading.  A little further on there were 4 small deer in the middle of a field.

Monday
Feb122007

Windows Vista is Broken

Monday
Feb122007

Learning by Scent Coding

Saturday
Feb102007

Steven Hawking Near-Death Experience!

Pluvialis tells this little story:

I nearly killed Stephen Hawking once. I turned the corner of Pembroke Street in my little red Renault and there he was, in the middle of the bloody road. I tell you, he's a terrible driver.

That might have ended my academic career, don't you think? Can you imagine the headlines?

The worst thing is, after I parked the car and stumbled into the department, rather shaken, I confessed my near-miss to a colleague.

"Oh" he said. "I wouldn't have worried. He did all his best work twenty years ago".