Tagged: Unix

Plan9 on the Raspberry Pi


Glenda, the Plan 9 Bunny

Glenda, the Plan 9 Bunny (Photo credit: Wikipedia)

Plan 9 from Bell Labs” was meant to be the successor system to Unix and like the original was designed and built by AT&Ts engineers at Bell Labs(the title is, of course, a skit on what is supposedly the best worst-ever film – “Plan 9 from Outer Space”).

Plan 9 never really made it. Linux came along and gave us Unix for the masses on cheap hardware for free and the world moved on. (Though some of the ideas in Plan 9 were retro-fitted into Linux and other Unix-like systems.)

The increased speed of commodity computers – latterly sustained via SMP – meant that computing power that once seemed only available to the elite could be found on the High Street and easy to use and install clustering software meant scientists and others could build super-computers using cheap hardware and free software. The multi-computer idea at the heart of Plan 9 seemed to have been passed-by as we screamed along the Moore’s Law Highway.

But now Moore’s Law is breaking down – or rather we are discovering that while the Law continues to apply – in other words we can still double the number of transistors on silicon every 18 – 24 months – other factors (heat dissipation essentially) mean we cannot translate a doubling of transistors into a computer that runs twice as fast. And so the multi-computer idea is of interest once more.

Plan 9 is not likely to be the operating system of the future. But as an actually existing multi-computer operating system it could still have a lot to teach us.

Now it has been ported to run on the Raspberry Pi single board computer I have decided to order another three of these things (I already have one running as a proxy server) and use them as Plan 9 nodes. The boards should be here in about three weeks (I hope), meaning I will have them as a Christmas present to myself.

The problem with Apple kit (part one?)


Last September I joined a startup, Centreground Political Communications and, like my three fellow employees, have been using Apple equipment more or less since then.

It is good quality kit, focused on (typical) user experience: like Windows done right. And, yes, as a Unix/Linux person I also get a bash shell and access to forty years of engineering excellence.

But it is difficult not to see the faults also:

  • The one button mouse – a legacy of the 1980s and one that Apple must recognise is a poor one (why else have all those Ctrl dependent commands?
  • The emphasis of design over function – no ethernet port, and a wireless performance massively below even the least powerful IBM compatible
  • Audio that works out of the box – if you can ever hear it

Adding vi-like functionality to Hexxed


A diagram showing the key Unix and Unix-like o...

A diagram showing the key Unix and Unix-like operating systems (Photo credit: Wikipedia)

I have decided that I will model the keyboard interface for Hexxed on vi.

I know that is not what many/any coming from outside the Unix world will expect, but then there are plenty of Hex editors out there and I want to make one that will appeal to at least one niche.

As I instinctively type “:w” in all sorts of places these days, I think there will be some other people out there who might like that sort of functionality too.

How much control can Microsoft exert in the development ecosystem?


It’s a long time – over a decade – since I last used a Microsoft development tool. For what it’s worth, I quite liked Visual C++ back then, but in the middle of my subscription (in 1998 if I remember correctly) Microsoft just tore up the contract and offered me something of less use. The details escape me now but it was a formative moment – I was not willing to trust them any more and suddenly the idea of using Linux had new appeal.

 

(At the same time I was teaching myself how to use Unix on the Sun OS system that hosted the Labour Party’s Excalibur EFS document system: after the 1997 general election there was nobody left in the team but me and so I went out and bought the venerable Essential System Administration: Tools and Techniques for Linux and Unix Administration: Help for UNIX System Administrators – which helped but it was still hard going to escape from the Windows monoculture. The Party’s IT staff essentially said “Unix? Does anyone still use that?” – this was truly the apogee of Microsoft’s monopolistic drive.)

 

Today the world seems very different. But if Microsoft have taken a few knocks and people are almost as likely to think of Apple and even Google as the enemies of software diversity and freedom, we should not underestimate its raw power in the market. Most desktops in most workplaces are still Windows boxes and writing for the mass market means targeting Microsoft’s operating system.

 

The Windows family tree.

Not surprisingly many, probably most, of the people who are doing that are using Microsoft’s tools and compilers. That gives the boys and girls in Redmond a lot of power and they don’t have to be acting in a malicious way to have an detrimental impact – as in their refusal to support the C99 language standard. The only mantra that C is a proper subset of C++ (which Microsoft fully support) has been dead for a few years now and there are features in C99, which is the standard in general use in the Unix/Linux development world not supported in C++11 (the current standard there which Microsoft are working to support). Microsoft do support the twenty year old C90 standard but have essentially said that they are not going to develop that any further – you can read more about this here.

 

In response to this some C++ developers have done so far as to say “C is obsolete” – perhaps reflecting a new confidence in the C++ development world, as that language has been making something of a comeback in the last couple of years (not least because Microsoft have promoted it so heavily).

 

That may or may not be the case – personally I doubt it very much. But since when did we allow tool manufacturers to make that decision for us?

 

As I did in 1998 maybe it is time for the developers to look at the alternatives. There are plenty of industrial strength compilers and editors out there that will free them from the caprice of a company which is once more demonstrating it just doesn’t get it.

 

 

Dennis Ritchie


Unix creator Dennis Ritchie

Image via Wikipedia

Dennis Ritchie, the inventor of the C programming language and the Unix operating system, has died.

If great men stand on the shoulders of giants, then Ritchie was one of the greatest giants of all.

Unix (including Mac OSX), Linux and Windows were or are written in C. (In Windows’s case it has now moved on to C++, a direct descendant of C). Your iPhone‘s operating system iOS is written in ObjectiveC which, as the name suggests, is also a derivative of the great man’s work.

Microsoft are not the enemy


For the last six years my job situation has made me wary of commenting on the politics of the free software movement and its enemies, but I have just changed jobs (been a busy week round here) and now I feel I comment freely on what every free software advocate has always known as Public Enemy Number One: Microsoft.

Except, now the time has come, I don’t really feel they are any more. Indeed I feel free software is more threatened by one of the teams that is meant to be on our side – Google, which has embraced the world of software patents and user abandonment with enthusiasm and by another, Apple, that uses Unix but seems oblivious to the idea of user freedom.

Now, I am not saying that, because Microsoft have found themselves in recent months as one of the biggest contributors to the Linux kernel, and marked the 20th birthday of Linus’s famous usenet announcement of a new Unix-like kernel with an appeal for more co-operation, they really are our friends. But we should recognise that the change – even if it did come because they were dragged through the US and EU courts – is a real one. They are at least recognising that we are here to stay and that the server room of the future will be running multiple OSes on virtualised machines of different flavours.

On the desktop our side is still nowhere – perhaps still under 1% globally and the boys and girls in Seattle might quickly turn nasty again if we ever did start to crack that nut, but in the meantime we maybe should be testing just how sincere that offer of co-operation really is… afterall they are not offering to work with us because they think we are weak!

Update; Thanks to the retweeters. Think I should point out my proposal of a compromiso historico with Microsoft is a minority view – as the links below probably suggest.

Books I recommend for Birkbeck MSc Computer Science students


Display at the Centre for Computing History.

Image via Wikipedia

I thought I would list some of the books – other than the set texts – that I think new students (for 2011/12 intake) to Birkbeck ought to read. Sadly, for me, I didn’t really read any of them until the second year – but they are still useful.

This is will probably be an ongoing series.

For C++/programming

Not a book about C++ at all – and very hard going – but Structure and Interpretation of Computer Programs will teach you a lot about computer programming and the fundamentals of computing.

For Fundamentals of Computing

Has to be The Annotated Turing: really a fantastic book, well written as both an exposition of the subject matter and of Turing’s landmark paper.

For operating systems

I would like to recommend The Design of the Unix Operating System: but you may find it hard to get copies of it (though there are few in the Birkbeck library). The Design and Implementation of the 4.4 BSD Operating System might do instead but is close to being out of print also. Understanding the Linux Kernel is much cheaper but I think is far too complex as an introductory text.

A cheap and cheerful alternative might be Lions’ Commentary on UNIX with Source Code – which is close to 40 years old, somewhat rudimentary and describes an even more primitive version of Unix than “The Design of…” but does have sources that make it clear how the OS really works.

I won’t recommend a book on UML or the UP because I hate them both and have yet to find a book that doesn’t make that worse.

The book I want to write


The Design of the Unix Operating System is one of the best computing books I have read in a long time.

It is clear and easy to understand. (It’s also very cheap if you buy a second hand edition). But it is more than that too: as soon as you begin reading it you realise that it has been fundamental in fixing the culture of the Unix/Linux kernel development world. Indeed I wish I read it long before now as it would have helped me get a better fix on both Linux’s antecedents and on the mental world of the average kernel hacker.

That said it is old and somebody ought to rewrite it for Linux – maybe I will be able to do that some day.