mailto: blog -at- heyrick -dot- eu
The lost future
Something I thought about, then dismissed, was the basis for a new operating system, given that RISC OS won't make the transition to 64 bit ARM, and what does happen (if anything) won't be RISC OS unless it is some sort of emulation.
ROOL's own roadmap is described here and the highlighted (preferred) option is "Run a 64 bit OS with 64 bit apps and run 32 bit apps under emulation" which sounds good, until you realise that - due to a lack of investment and resources and programmers willing to do complicated stuff for free - RISC OS still has no WiFi, Bluetooth, GPU-assisted video codecs, suitably modern filesystem, and it still leaves three cores on most ARM boards unused in part due to fundamental design issues that would make spreading work amongst the cores "somewhat tricky" (such as the Wimp message system's expectation that all tasks will run one after the other; co-operatively; and it's annoying tendency to deal with tricky interlock-type situations by simply banging off the interrupts for a moment). Plus it's fundamentally a single user single context single process system, not that different to the Master MOS really. Give it four cores and code that can run concurrently and... let's just say if it was possible for an OS to pee in terror, it probably would at that point.
So given all these things that don't yet work on available hardware, I really don't know how or where this 64 bit OS and these 64 bit applications are going to magically appear from.
If you're not a nerd and you don't know what the above is on about, don't worry. Let's just say that the biggest jump in functionality in RISC OS was in 1992 (with RISC OS 3). It.... has progressed very little since then. And now, in 2023, that lack of development is painfully obvious in all of the stuff people just expect to work that.... doesn't even exist.
A 64 bit RISC OS is unlikely to be directly compatible with the current one, which has its API heavily based upon the behaviour of the original ARM processors. There's no dynamic linking or calling standard built into the OS. The programmer API basically involves shoving data into processor registers and calling a SWI and reading stuff from registers on the way back out, it's analogous to x86 INT calls. When you add a module (and it's quite easy to create modules to augment the system with extra facilities), these can provide
* commands (commands recognised at the command line) as well as additional SWIs (more INT calls), up to 64 per module but most modules don't offer (or need to offer) that many.
If you're not a nerd and you don't know what that paragraph above means, don't worry. Let's just say it's a rather simplistic way that operating systems used to operate a long time ago - x86 INT calls is the domain of MS-DOS and that was a 'thing' in the early '90s (if you're under thirty you've probably never even seen DOS, never mind had to use it). So it's probably not a surprise that RISC OS (dating from the late '80s) does something similar, but since how it actually does it is quite intertwined with how the processor that it was written for actually works, it makes it really hard to change to using any different sort of processor - which ironically means even the newer 64 bit ARM.
Anyway, given that a 64 bit RISC OS is unlikely to be directly compatible with the current one, my idea was to have a new kernel, let's call it "Oak" (no points for guessing why ☺) which is based upon a more capable kernel (for example, something not unlike Minix (which comes with a very detailled book)) which is written mostly in C with a little bit of glue logic. This new OS would retain the good bits of RISC OS whilst trying to provide a much more secure design - I'm sure you'll agree that RISC OS is anything but (again, not surprising given it's heritage, but it's a pretty major point in the 2020s that <insert woefully long list of horribly insecure practices>).
If you're not a nerd, etc etc... Let's just say take the good bits of RISC OS and put them on top of a decent foundation.
The design goals would be, roughly (and if you're not a nerd, just skip this list entirely):
- Processor agnostic - written in C, it should be able to run on any system with an MMU and some sort of framebuffer. Yes, even that ancient 386...
- Clever automatic resource management - software shouldn't need to know if there's one core or eight, it should just start up tasks that get handled. Plus, some sort of sensible block-and-return system so that one app waiting on data doesn't stall the whole system.
- Multiple users, processes, etc - it's not a design criteria that a user can connect via telnet and run software entirely distinct from the person sitting at the keyboard, but on the other hand (asides from a dependence on a framebuffer) there shouldn't really be any reason why it couldn't work.
- The ability to load third party OS extensions at easily as on RISC OS - though the damn things will not run with arbitrary kernel level privilege!!!
- Secure by design - not impenetrable, if you want a system where you can't access the OS at all then go run Android, but secure in the context that one program doesn't get to examine what other programs are doing. There will be a protocol for a program to snoop another's workspace (it's useful for debugging) but this will be a two way thing, the app being snooped can say "get stuffed". Likewise, kernel level stuff will be entirely isolated from user level stuff. None of this awful mix-n-match that happens right now. Plus filing systems will run as user level (only the hardware drivers will be privileged enough as is necessary to talk to the hardware), but with decent inter-process barriers, one user mode program going crashy-crashy will cause it to be terminated, not bring down the OS.
- Keeping the good bits of RISC OS. Maybe I'm weird, but I quite like the way the command line works, it's not as smart/annoying as, say, bash, but it's miles ahead of DOS. The UI metaphor, Acorn mostly got right.
- But having more modern concepts to aid porting things from afar. The system won't be POSIX, but it won't be a complete nightmare to port stuff that expects, for example, the ability to create threads or display UTF-8 or...
But, most of all, it won't be a 64 bit OS. I would consider it something of a failure to create a 64 bit OS. It will be, instead, a 64 bit OS.
And a 32 bit one.
And an x86 one. IA64 too.
And that old 68000+68451 machine.
And so on.
If you're not a nerd: this means that the new OS should not target any specific machine. Like Windows, for ages, only ran on PCs; whereas Linux supports many devices which means it runs on so many different sorts of things that it is ridiculous. From printers to ADSL routers to car entertainment systems to tilt'n'turn internet cameras to... I don't believe that any new OS should target any specific type of hardware. There's nothing magical about 64 bit ARM, people are probably just having warm fuzzy feelings because "it's an ARM". However, if the OS tries to be as processor agnostic as possible (just like Linux), then it can work on as many different devices as people are willing to make work. That is the way an OS should go these days, to run on "whatever" and not be fixed to a specific machine or processor or...
But I won't. For three reasons, which are:
- I'm not that smart. While I know a fair bit about how operating systems work, that doesn't qualify me to create such a thing. I understand how plumbing works, but if a pipe goes bang I call a guy that looks like Mario.
- Even if I was that smart, I'm a few weeks off being fifty. I have neither time, concentration, nor inclination to get involved in something like this. Sorry, but I'm just going to write bollocks for my blog, take random printers apart for the lulz, and waste hours of what remains of my life watching movies.
- Does the world need another runner-up has-been coulda-shoulda-been OS? People's needs and desires have changed remarkably in the past twenty years. So many people see the world though the rectangular window that is their smartphone, using various apps that, quite honestly, means it probably no longer matters much what OS that phone is actually running. Access to the app/website is the more important thing. Hell, smartphones these days are sold on things like "how many cameras" rather than "how many cores". What sort of screen it has, rather than how many pixels it can display. Can it fold? Can it dock?
With the exception of ripping DVDs and some photo editing, I don't use my PC any more. In fact, this, RISC OS that I'm writing this on (in Zap) is pretty much my only use of a desktop style machine with a screen and keyboard. And I'm only doing this because it's a little less tedious on RISC OS than on the Android portable - I can easily switch to DrawPlus if I want a diagram.
So... I had a plan for "Oak". And then I dismissed it as "beyond my skill set" and "not exactly a viable proposition anyway". If I were to do it, I'd be doing it for the learning process and the sake of doing it, which probably isn't a great way to begin creating an operating system! There are many more lessons that are potentially more valuable, such as this whole "human interfacing" thing that I really suck at.
Lonely people die first
In recent news, it turns out that "People never visted by loved ones more likely to die earlier. Some boffins at the University of Glasgow have found that not seeing loved ones at least once a month and living alone significantly increases people's risk of dying.
Using data fro......
. . . P L E A S E S T A N D B Y . . .
...okay, this is Rick 2.0. Let's kick that slightly overweight corpse out of the way and carry on, shall we? You see, the problem with this is that there are people in the world who value alone time. There was an associated article about a woman losing her mind over "all weekend the only person I'll speak to is the postman".
That's my life right there. And since tomorrow is a public holiday (11th November), there'll be no post. The last human I interacted with was the checkout girl about three hours ago. The next person I expect to interact with is going to be one of my cow-orkers in about sixty hours.
Calm peaceful tranquility.
What do I have planned? Well, nothing. Netflix? Fail at playing the piano? Sit out in the sun (though, that's a little less likely in November). About the only forward plan I have made is to buy chicken nuggets and chips. I'll dump beans on top of one or both and that'll be a meal.
Maybe I'll bake a cake?
I recall when everybody was freaking out over the isolation of confinement. I'm quite used to people not understanding my life, so it was... interesting... to see people utterly fail to adapt to a world with reduced social interactions. I mean, write something? Do a jigsaw puzzle? Try learning a language? Stay in bed until whenever you feel like getting up? There are so many things that people could do.
But, no. There are loads of people now with fundamental psychological issues as a result of the confinement. I won't comment on this any further as I think mental health is a topic that needs more discussion and less stigma, but I really don't understand what the big deal is, given that the Covid confinement is pretty much a lifestyle choice for me.
Do I feel lonely? I don't think so.
Do I feel bored? Yes, sometimes. When I don't feel I have the concentration to do something, it can get a bit boring, but that's just a passing phase that a good sleep or tea can help.
Would I like a companion? Sure, I'm not averse to the idea of sharing my life with a special somebody so long as she understands the desire to not go out partying like a twenty year old. Or, you know, go out.
Would I know what to do with a girlfriend? Probably not. Unless she's a total bookworm with a quirky sense of humour and a side order of snarkiness who thinks the perfect evening involves a blanket, lots of hot chocolate, and a good book. Then we could sit side by side in silence and that would be everything.
But this doesn't mean I'm "lonely", and it certainly doesn't mean I'm going to die young because of it (77% they reckon).
If I do die young, it'll be because of my dubious lifestyle choices. Like, as I wrote this, I devoured a pack of cherry-filled butter biscuits. Toss in a yoghurt or two and, well, that's what'll pass for dinner since I'm only waiting for the washing machine to finish doing its thing, then I'll wander into my bedroom, crawl into bed, and probably listen to some music with the light off as, well, it's been a difficult few days at work and I'm not planning on staying up to whatever time of the morning just 'cos it's the weekend now.
My sleep is very disturbed. It's not stress, or loneliness, it's been that way my entire life. Which means that if I bust my balls at work, I'm tired. Every 'Z' I can catch is important. So, yeah, gentle music and the light off. So, what would go with that anbience? Shadow Gallery? Blackbriar? Battle Beast? Dark Sarah? Or maybe I should go old-school like Judas Priest or Savatage? Choices... choices...
Please note that while I check this page every so often, I am not able to control what users write; therefore I disclaim all liability for unpleasant and/or infringing and/or defamatory material. Undesired content will be removed as soon as it is noticed. By leaving a comment, you agree not to post material that is illegal or in bad taste, and you should be aware that the time and your IP address are both recorded, should it be necessary to find out who you are. Oh, and don't bother trying to inline HTML. I'm not that stupid! ☺ ADDING COMMENTS DOES NOT WORK IF READING TRANSLATED VERSIONS.
You can now follow comment additions with the comment RSS feed. This is distinct from the b.log RSS feed, so you can subscribe to one or both as you wish.
|jgh, 11th November 2023, 03:17|
The people clamouring for "64-bit RISC OS" need to answer the question: what, *exactly*, is it you want that is "RISC OS" on the new unicorn hardware?
My answers would be:
* The desktop. I like the RISC OS desktop, I like the task bar at the bottom of the display, I like three-button control and the conventional actions imposed on the mouse control
* The filer. The RISC OS desktop's filer is the most intuitive and useful I've encountered over 40 years (eeek!) of GUI use.
* The drag'n'drop paradigm. Glod, I wish I could draggydroppy stuff I can do on RISC OS on other systems. One example: I have a task called BasConv that likes on the taskbar. I can drag files to it and it pops up a menu allowing me to output a file converted to or from various tokenised BASIC files. Can't do this on Windows, the closest equivalent is adding an option to the filer context menu. Editing a file on Windows, and then having to navigate *again*, /within/ /the/ /editor/ to save the damn thing. WTF? Just let me SaveAs -> drag to filer window -> let go.
* BBC BASIC built in. Being able to write some code, set-type it to BASIC, double-click and it runs. Change directory to is, f12 command, enter filename, runs.
Everything else is constructional fluff. I don't care what's inside the bonnet of my car, I just want the useful paradigm of a wheel-shaped steering device and power control via a lever near my left hand.
As a programmer, I would add:
* The module paradigm. Really useful and intuitive for adding resident/semiresident code to a system.
|jgh, 11th November 2023, 03:39|
"Lonely people die first"
Whenever I see these articles I think: "Oh, are you going to get me a girlfriend on the NHS? That would be nice". Somebody who would like to curl up on the settee binge-watching Dr Who (I'm almost through Season 17 just now). When I'm not working the only human interaction I have is the parish council once a week; and when I am working, well, that's work - something you put up with in order to eat.
(Felicity? Marte? Find out!)
- I survived - really, How the videos were made, SimpleSeq v0.19. (2023/12/02)
- I survived!, Afterwards, Fast food from a machine. (2023/11/28)
- SimpleSeq v0.18. (2023/11/26)
- Winter is coming, Christmas cards, Torygraph purchase, A foreigner's guide to mainstream British newspapers, Redmi Note 12 Pro low light photos, The creeping tentacles, Domestic stuff. (2023/11/25)
- Inside a USB DVD player. (2023/11/23)
List all b.log entries
Return to the site index
PS: Don't try to be clever.
It's a simple substring match.
Last read at 15:19 on 2023/12/04.
© 2023 Rick Murray
This web page is licenced for your personal, private, non-commercial use only. No automated processing by advertising systems is permitted.
RIPA notice: No consent is given for interception of page transmission.