For your Christmas treat this year, we have an interview with Chris Williams, of Drobe
and The Register
fame. Enjoy and a very Merry Christmas from Iconbar. Would you like to introduce yourself?
I'm Chris Williams, former editor of RISC OS news and trouble-making website drobe.co.uk. The site's frozen online right now as an archive because while I used to have a lot of free time to work on it, I graduated university in the mid-2000s, got a real job, and sadly ran out of spare time to maintain it, and so put it in stasis to preserve it. Today, I live and work in San Francisco, editing and writing articles for theregister.co.uk, mostly covering software and chips. I also once upon a time wrote some RISC OS applications, such as EasyGCC to help people build C/C++ projects, and a virtual memory manager that extended the machine's RAM using swap space on disk. If you're using RISC OS Select
or 6, there's some of my code in there, too, during boot up. How long have you been using RISC OS?
Since 1992 when my parents bought an Acorn A5000. So I guess that's about 26 years ago. We upgraded to a RiscPC as soon as we could. I took a StrongARM RPC crammed with add-ons, like an x86 card, IDE accelerator, Viewfinder graphics card, and Ethernet NIC, to uni, and got to know the OS really well. No other operating system I've used since has come close to the simplicity and ease-of-use of the RISC OS GUI, in my opinion. Apple's macOS came really very close, and then the iGiant lost the plot on code quality. What does RISC OS look like from the USA viewpoint?
It's kinda like BeOS, in that operating system aficionados will know of it and appreciate it for what it is: an early operating system that had an intuitive user interface but was pushed under the wheels of Intel and Microsoft. Folks who experiment with RaspberryPis may also come across it, as it is one of the operating systems listed on raspberrypi.org. In conversation with Americans, or in writing articles, I normally introduce RISC OS as the OS Acorn made for its Arm desktop computers - y'know, Acorn. Acorn Computers. Britain's Apple. The English Amiga. The ones who formed Arm, the people who make all your smartphone processor cores. And then the light bulb turns on.
What's really interesting is what's going on with Arm, and I think that will help, to some extent, RISC OS appear a little on more people's radars. Anyone who's been using RISC OS since the 1990s knows the pain of seeing their friends and colleagues having fun with their Windows PC games and applications, and their Intel and AMD processors, and graphics cards, and so on. Even though RISC OS had a fine user interface, and a decent enough set of software, and fun games, it just was for the most part, incompatible with the rest of the world and couldn't quite keep up with the pace of competitors. It was hard seeing everything coalesce around the x86-Windows alliance, while Acorn lost its way, and Arm was pushing into embedded engineering markets.
Now, Arm is in every corner of our daily lives. It's in phones, tablets, routers, smartcards, hard drives, Internet of Things, gadgets, servers, and even desktops. Microsoft is pushing hard on Windows 10 Arm-based laptops with multi-day battery life, at a time when Intel has got itself stuck in a quagmire of sorts. It blows my mind to go visit US giants like Qualcomm, and Arm's offices in Texas, and see them focusing on Arm-based desktop CPUs, a technology initiative the Acorn era could really have done with. It's just a little mindboggling, to me me anyway, to see Microsoft, so bent on dominating the desktop world with Windows on x86, to the detriment of RISC OS on Arm, now embracing Windows on Arm. I probably sound bitter, though I'm really not - I'm just astonished. That's how life goes around, I guess.
Anyway, it's perhaps something RISC OS can work with, beyond its ports to various interesting systems, if not targeting new hardware then catching attention as an alternative Arm OS. One sticking point is that Arm is gradually embracing 64-bit more and more. It'll support 32-bit for a long while yet, but its latest high-end cores are 64-bit-only at the kernel level. What other systems do you use?
I use Debian Linux on the desktop, and on the various servers I look after. I was an Apple macOS user as well for a while, though I recently ditched it. The software experience was getting weird, and the terrible quality of the latest MacBook Pro hardware was the final straw. Over the years, I've used FreeBSD and Debian Linux on various Arm chipsets, AMD and Intel x86 processors, and PowerPC CPUs, and even a MIPS32 system. I just got a quad-core 64-bit RISC-V system. I like checking out all sorts of architectures. What is your current RISC OS setup?
I have a RaspberryPi 2 for booting RISC OS whenever I need it, though my primary environment is Linux. It's what I use during work. What is your favourite feature/killer program in RISC OS?
Back in the day, I couldn't work without OvationPro, Photodesk, the terminal app Putty, StrongEd, BASIC for prototyping, GCC for software development, Director for organizing my desktop, Netsurf and Oregano, Grapevine... the list goes on. What would you most like to see in RISC OS in the future?
Pretty much making the most of living in California while I'm here, and traveling around the United States to visit tech companies and see what America has to offer. From Hawaii to Utah and Nevada to Texas, Florida and New York, and everything in between. I cycle a lot at the weekends, going over the Golden Gate Bridge and into normal Cali away from the big city, or exploring the East Bay ridge, returning via Berkeley. My apartment is a 15-minute walk from the office, so I tend to cycle a lot to get some exercise. When I was living in the UK, I ran about 48 miles a week, before and after work, which was doable in Essex and London where the streets and paths are flat. That's kinda impossible in San Francisco, where the hills are legendarily steep. I'm happy if I can make it four or five miles.
I also do some programming for fun, mainly using Rust - which is like C/C++ though with a heavy focus on security, speed and multithreading. We really shouldn't be writing application and operating system code in C/C++ any more; Rust, Go, and other languages are far more advanced and secure. C is, after all, assembly with some syntactic sugar. I've also been experimenting with RISC-V, an open-source CPU instruction set architecture that is similar to 64-bit Arm in that they have common roots - the original RISC efforts in the SF Bay Area in the early 1980s. The idea is: the instruction set and associated architecture is available for all to freely use to implement RISC-V-compatible CPU cores in custom chips and processors. Some of these cores are also open-source, meaning engineers can take them and plug them into their own custom chips, and run Linux and other software on them.
Western Digital, Nvidia, and other big names are using or exploring RISC-V as an alternative to Arm, which charges money to license its CPU blueprints and/or architecture. Bringing it all together, I've started writing a small open-source operating system, in my spare time, in Rust for RISC-V called Diosix 2.0 (www.diosix.org). Version 1.0 was a microkernel that ran on x86. The goal is to make a secure Rust-RISC-V hypervisor that can run multiple environments at the same time, each environment or virtual machine in its own hardware-enforced sandbox. That means you can do things like internet banking in one VM sandbox, and emails and Twitter browsing in another, preventing any malicious code or naughty stuff in one VM from affecting whatever's running in another VM.
You can do all this on x86, Arm, and MIPS, of course. But given RISC-V was not bitten by the data-leaking speculative-execution design flaws (aka Meltdown and Spectre) that made life difficult for Intel, AMD, Arm, et al this year, and Rust is a lot safer than C/C++ that today's hypervisors and operating systems are written in, I felt it was worth exploring. Pretty much every Adobe Flash, Windows, iOS, Android, macOS, Chrome, Safari, Internet Explorer, etc security update these days is due to some poor programmer accidentally blundering with their C/C++ code, and allowing memory to be corrupted and exploited to execute malicious code. Google made the language of Go, and Mozilla made the language of No: Rust refuses to build software that potentially suffers from buffer overflows, data races, and so on.
It also all helps me in my day job of editing and writing a lot - keeping up to date with chip design, software, security, and so on. If someone hired you for a month to develop RISC OS software, what would you create?
To be honest, I'd try to find a way to transplant the RISC OS GUI onto other environments, so I can use the window furniture, contextual menus, filer, pinboard, iconbar, etc, on top of a base that runs on modern hardware. I think that would take longer than a month. What would you most like Father Christmas to bring you as a present?
A larger apartment: rent is bonkers in San Francisco, so I could do with some extra space. Any questions we forgot to ask you?
Why do vodka martinis always seem like a good idea 90 minutes before it's too late to realize they were a bad idea?
PS: if anyone wants to get in touch, all my contact details are on diodesign.co.uk
You can read lots of other interviews on Iconbar here