The run up to the build
This is about the nearest I’ve got so far to doing a classic diary-style blog article. I decided to build a simple test bed to try out some quick hacks on OOo. Simple — or so I thought: set up an environment, download the source and any other precursors, configure, make and done. Luckily, however, I come from an RTFM generation, so I first did a bit of reading and quickly realised is that there are two main options for building OOo: the free way using a Linux platform, and the pay way, using Windows XP — since no-one seems to have managed to do this for OOo 2.0 using the free development tools (Cygwin or the free personal versions of the MS Tools). Now I don’t have a Linux environment as I am am WinXP (+ a bit of Cygwin) based, so step one was to set up my Linux environment, but which one. Answering this question is the topic of my first post in this series.
I have used Unix seriously, though the last time in anger was 10 years ago when I was a chief engineer of a 100 strong team distributed SunOS 4.3 development. So moving over to Linux wasn’t so much a huge learning step as more a refresh of dusty skills. Step one was for me to try out a few flavours of Linux to pick one. Enter stage left BitTorrent and specifically its Azureus implementation ( a truly magic piece of software and interworking architecture that merits an article in its own right), VMware Player and the VMTN Virtual Appliances Directory. I downloaded a couple of instant Linux solutions and quickly got up and running. Well sort of, because I did this on my home-office PC which was already running WinXP. This is the one we mainly use for internet browsing, mail and office applications, and so it is only configured with ½ Gbyte of RAM. So lesson number one here is: VMware (and MS Virtual PC) run like a dog if you don’t have enough RAM to fit both OSs in physical memory. Nonetheless this was enough to enable me to toss the coin and pick one to go with: openSUSE and specifically openSUSE V10.1.
Now my youngest son is about to go off to college and so part of these deal was a new PC, leaving me with a hand-me-down two year old PC that was configured for games: Athlon 2000+. 1Gbyte RAM, 120 Gbyte HDD, fast Graphics — in short, a pretty good configuration to use as a Unix test-bed. Step one was to clean down the WinXP Home installation (which I decided to keep having paid good money for it), but to remove all of the crap — the games, the spyware, 3 virus hits, a backdoor and loads of video and music stuff; then it was a quick defrag, adjust the repartitions, update all of the OS and layered S/W versions to obtain a clean C and D partitions containing Windows and 90 Gbyte of free space to load up Linux.. The only thing I now need to do is to reduce the power output and background noise, by swapping out the CPU and system fans/coolers for quieter versions plus downgrading the graphics card to one that doesn’t chuff out loads of Watts that therefore doesn’t need a huge fan. (I do everything remotely from one of my other PCs anyway.. One side-effect of this being an old SoA motherboard is that these are all stock clearance items and the bill comes to a grand total of £18 (or $25 in US speak).
Now another BitTorrent to download the 5Gbyte DVD openSUSE install image (as I said a magic piece of software); blow it onto DVD RW; stick it in the PC reboot and go. Now I have to say that I really take my hat off to the community that designed not only Linux and specifically the openSUSE kit and its entire build process. This quite simply leaves the WinXP build process standing. I didn’t quite use the default options for everything, but if I had done I would have ended up with a perfectly usable system. Moreover, this was in one continuous load sequence that required minimal and non-expert input. This also included the whole process to download another 1Gbyte of updates and security patches for all of the layered products. I had a few little tweaks to do, such as reconfigure the PC for a static IP address and I had a fully patched up and working dual boot Linux system. (I prefer my PC have have servers functions to have fixed IP addresses, and my old broadband router — can’t be configured to statically allocate IP addressed through DHCP to specific MAC addresses..
Microsoft have made major improvements their build process over the last year or so. you no longer need to reboot your PC forty odd times whilst you download all your security patches. The last time I did it, I think that it was down to 3 or 4 time, but this was only for the MS products. All of the third party stuff still needs separate downloads, product registration and patch updates — all of which ends up taking three or for hours of heavily interactive time if you know what you are doing. Oh yes, and the other thing is that part of the penalty for avoiding doing the 40 reboots (or maybe even being able to download them at all now) is that you must agree to using the latest “Genuine Microsoft” installer which also seems be a spyware backdoor adding nothing to user experience whilst requiring a surrender of privacy.
Now the last time I did any serious Unix configuration you had to buy a couple of heavy Nutshell books and get into editing all sorts of funny configuration files in /etc to get it working — all very geekish — whereas in the MS world you had the more user-friendly Control Panel. Now this difference has all been swept away and replaced now that the Linux YaST management interface has been introduced. So as I said standing the two side-by-side having done dozens of Microsoft builds on my time and only one Linux build, in my view the Linux process wins hands down.
Another pleasant surprise came when I started to use the System. I have been using computers and almost a dozen families of OS over my thirty odd years I’ve been in the business. I still think my favourite OS was the Digital VMS one. It had a really elegant and robust scheduler. I could have project team of 10 guys really hammering their server, and it gracefully handled the load mix. For a start the scheduling system was priority driven with all the various components tuned to be at sensible starting priorities. There was also a heuristic adjustment system to penalise unsocial use and reward sensible use. The net result of this is that you could run a system at 60-80% sustained utilisation and still get adequate response for the users. When they did complain it was about each others behaviour and not about the system.
In comparison, I found the Unix’s round-robin scheduler primitive, and its behaviour annoying: it was difficult to mix service-based and interactive work mixes, and the way you got around this was by splitting them onto separate boxes. Then Microsoft Windows came along and that is a completely different experience all together. Window 3.0 didn’t seem to have a scheduler to speak of. What it did have was a very nice (for the time) user interface that would work on a PC, and a set of nice personal applications. With the successive versions, the scheduling functionality does seem to have improved, but with its crude 3 level priority system once your interactive session is competing with a couple of other antisocial compute-bound processes, then you might as well go for a cup of coffee — to the extent that the biggest selling pitch for the dual core processors is that this doesn’t happen as much. I find it funny that in 20 years we’ve gone from 10 MIP VAXes which can support a dozen users to a single core 3GIP Wintel architecture which can barely support one. Now coming back to Unix — what a breath of fresh air. Remote login works well, and the system is responsive. The Reiser Filesystem seems to blow away NTFS. You have batch queues for doing batch work, and they don’t kill your interactive sessions. As long as you are not a heavy games player, there seems a complete parallel portfolio to the Windows suite of applications. If anything my main complaint with openSUSE is that you are just too spoilt just which of the 3 command interpreters, 5 editors, 4 web browsers, 3 file explorers, … are you going to use. Yes, I do think that Microsoft really have to be careful here. They have some serious competition. I think I am a Unix convert, but that is a discussion for a separate blog.
Lastly one other thing that I’ve done is to install VMware player and a preconfigured openSUSE 10.1 VM on my laptop so that I have an isolated playpen that I can use whilst roaming. Now I am finally ready to start downloading and building OOo.