Posted by kome 3 days ago
I emailed the author to ask some questions in my project. The author had connection with my prof and informed my prof about this. My prof told me that I was not allowed to ask the author regarding this project. So I had to figured out on my own.
It was fun to play around with and learnt how things work at deep OS level. It was a good memory for me :)
And you guys notice anything about my username? :)
Some people name themselves `__xXx_ultimatEWeapon420_xXx__` and some people name themselves after a random toy operating system.
While for nerds computers have become these monstrously powerful things that can do everything under the sun, there's definitely still plenty of people who just want a computer to write down notes, keep a calendar, use the calculator... eg the things home computers were originally made to do.
This doesn't look very usable at all by someone who isn't basically a computer nerd.
Nowadays even iOS will randomly change its UI and send you “notifications” or “suggestions” (modern euphemism for “ads”) to subscribe to Apple TV* or iCloud.
My god, is it bad (for me, I'm sure some like it). The ugly glass UX, the weird floating controls, the always on display, blah blah. It's not innovative at all, it's like they just had to redo everything simply to make it seem "new".
I'm on the "some like it" boat, to my surprise. I think the glass effect is eye-catching in a good way, and is much-less of a readability issue than I had expected. I often notice how cool it looks over my rotating background photos. I also love the always-on display because I don't have a watch.
Forget computer illiterate, not even human let alone literate!
You and I have very different ideas of “random” I think.
That sure seemed random. It sure isn’t functional.
I’d be very curious to see how many complaints they’ve actually gotten about it. This definitely struck me as “random”
That's all the feedback I need! I don't need my vision stuffed with that information.
But yeah, it did look cute and should be an option between "Expressive" or "Minimal" UI.
At the end of the day I want Apple to adhere to the “it just works” philosophy. That little pop up served as a critical source of information I needed daily that tells me more than just the volume level. It’s easy to understand, it’s been consistent for I believe two decades, and it provides information to multiple questions instantly. It did not need to be changed and what they changed it to is worse.
Some of us hated that floating overlay with a passion and wish it only the best riddance on its way out the door.
Indeed, not ‘random’. With respect to iOS26 what word should one use? Premeditated? Deliberate? Maliciously?
Ejaculated ? Something coming out of a reproductive organ, with no idea of real world consequences.
iPad was my gateway drug into Apple when I got it as a gift for my aunt and saw how easy and intuitive it was to use, and also to develop for.
Then after Jobs' whip fell from his cold hands they went into the realm of "mystery meat" menus and arcane gestures where swiping from seemingly every different angle of the screen edge does something different. Swipe from the top-right corner to get the Control Center, but swipe from the center-top to see the Notifications?? Yeah not gonna bother training an elder on that. I can't dare get my mom a modern iPhone now where she has to swipe up to unlock: it has be an iPhone SE, the last iPhones with a Home button.
I am the filthiest of nerds but I still can't get myself to remember how the heck iPad multitasking works. Apparently they can't either, they changed it again in 26 and now I can't easily get Notes etc. by swiping in from the side when watching a video etc. and I haven't bothered to look up how to do that now.
In any case all this only shows that attempting a one-size-fits-all UI can't really go all the way. iPhones/iPad have had a respectable run, they were lucky to have an OS Usability tyrant in charge, but maybe it's time to accept that UIs need an option for Simple vs Expert or something.
Ha, I'm a heavy long term iOS and MacOS user, and I still haven't learned what all the swipes and clicks in random places actually do exactly.
I just I know sometimes click by accident at the very bottom right of my display on MacOS and it swishes all the windows to the right (why? I have no idea?!), clicking again brings them back luckily.
On iOS I resonate with your comments about the swiping from different places to get different things. The only gesture I can ever remember is swiping from top right to get the quick system menu to turn wifi on/off etc. I can never figure out how to clear my notifications or why they're sometimes displayed and sometimes aren't. And the other swipes and menus are completely beyond me.
I'm a 40 year old life long software developer.
"iOS on a large iPad" has some good affordances but is definitely NOT some kind of panacea for elderly or computer illiterate users!
It could be
1. you clicked the desktop which causes the desktop to be revealed. Clicking the desktop again restores things.
2. You have hot corners configured to reveal the desktop.
3. Stage manager.
Just my guesses. Maybe they will help.
There’s a complete lack of project leadership and it’s strangely worrying.
I mean, that's fine, if there is no overarching vision. Just let users CUSTOMIZE the UI the way we want. That's it.
That would actually be easier on the UI designers too. Perhaps just a trifle bit complicated for the coders, but they have *AI* now, right??
I can't recommend those in good concience ton elders anymore.
Kids always figure it out tho.
Is iOS able to work with files ? Asking for a friend. /s
Most kids and most elderly need to run a mainstream browser from time to time, and this Visopsys will almost certainly never be able to run a mainstream browser.
It is the people with basic needs who need to stick to the mainstream stuff because they can get support and it does what they expect. People need bank and other complex websites to work. They want to watch online video. Kids will need educational apps.
Also do not make assumptions about elderly people. Not long ago I met a woman (guess in her 70s?) who used to write embedded software for nuclear reactors. I have known many people or similar or greater age who need quite complex stuff.
Its the geeks who can manage with the non-mainstream stuff.
Can I get a show of hands for anyone else who has had multiple jobs where The Frontend People have decided that in order to show something that can only honestly be defined as "a basic document" or complete a few simple <form> tags, the tooling necessary for the job is a React or Next.js app over 1,000 NPM dependencies, and fully reimplementing all built-in functionality from scratch in JS? The Web is simply the land of excess. Nothing is too simple to be overengineered poorly in JavaScript.
It's a chicken-and-egg problem. The harmful consequences of Postel's principle are well-known, but the solutions are also well-known. We only need to get past a certain threshold before the problem's effectively solved, and that can be done by starting in a particular domain and working our way outwards.
So 99% of the time, a user ends up needing the full complexity of a mainstream browser just to read a static document.
> [...] realistically the target audience remains limited to operating system enthusiasts, students, and assorted other sensation seekers
While building a non-Linux OS is very impressive, however this is not useful as a daily driver at all.
If the OS doesn't even have basic browsers such as Chrome or Firefox, it can't be remotely used as a daily driver to anyone who isn't a computer enthusiast.
Visopsys - https://news.ycombinator.com/item?id=18147201 - Oct 2018 (6 comments)
Much of modern operating systems are the hordes and hordes of drivers; the fundamentals aren’t terribly complicated; just lots of detail.
"Just" is understating it.
It's the kind of project that takes 20 years to accomplish on your own, and everything seems doable from moment to moment because you have to work very slowly, and the stepwise changes aren't hard.
Just get the thing to boot. Just boot into extended mode. Just get graphics running. Just get a userspace. Just implement cooperative multitasking. Every step is "just", but when you take a step back the complexity is enormous, and it becomes hard to explain to anyone how it works in its entirety.
Although it seems easy to the author because that's just how his brain works now -- by then end of it, you and the OS are one and the same, where your brain is essentially a map of the codebase and nothing more, because nothing else can fit.
Then there is the question of what one means by an operating system. While I'm sure that most people would agree that much of the software shipped with Windows, Mac OS, or the typical Linux distribution isn't part of an operating system proper, few would agree upon where the boundary lies.
making toy os for a nice small board on a nice architecture like riscv is night and day more enjoyable. not that modern boards that have more device tree overlays than senses are a good starting point either.
a more modern mmix that builds further up, or nand2tetris, xv6 or any other riscv project going all the way to a user mode ui would be really cool
i miss those days of everyone and their mom creating an OS for giggles
Cross-assemblers, there's one: http://john.ccac.rwth-aachen.de:8000/as/ but it's tedious to build under OpenBSD.
As for software, the ZMachine and V3 games don't count as 'libre examples'.
It’s the only OS endorsed by God.
But jokes aside, I always enjoy reading about custom OSes.
Semantic versioning is just something everyone does in software development, but is is really that necessary?
For releases in production, use a calendar version. v2025-11-02 is a clear release tag. Add preciseness as required. There should be a SBOM/Manifest (Bill Of Materials) of the versioned major components and configuration for that overall release.
For users, it depends on the type of user and what they expect. Their focus is on functionality. So when there's a new feature, bump the number.
It's a bit like the car model. It can be random extension letters like "-X", or "6Si".
So, amongst others, they had Oracle 8i at the height of the dot com boom (i for "Internet"), then a few years later when clustering became big news there was Oracle 10g (the g standing for "grid", I think?), and so on.
Actually, it looks like they might still be doing it - I just checked, and their current version is 23ai...
There's nothing specific about the letters after Oracle's RDBMS versions, they're for marketing purposes.
For example, in end user desktop software (say a text editor), how would you indicate a security bug fix for an old version v2023-11-02 without forcing users to pay for a new version of v2025-09-15?
Again, versioning is a tool, and depending on the release structure of a project, SemVer might work well or it might not (including for APIs/libraries).
If I fix a bug in the implementation that doesn't affect the API itself, the semver doesn't change.
So it works to define the versioning of an interface.
Release versioning (like vyyyy-mm-dd) is about SRE and configuration management, it's about documenting what is actually operating in production.
User versioning is about user expectations. If you're doing a security bug fix, then a) it should be free to users affected, and b) it should be documented as the reason for the release.
For a security bug fix of v2023-11-02, you can add a "hotfix" extension to the numbering so v2023-11-02.001 or equivalent.
"Semantic" really means "has some background meaning", and SemVer meaning behind all the numbers is in no way limited to API versioning: I am confused if you are making a proposal to consider it only that, arguing that different schemes should be used for different types of software, or stating that this is the only thing SemVer can be used for?
On any of those points, I disagree and you haven't made a convincing argument why that would make sense.
Note that I am not saying that SemVer is the only true way to do versioning (very much not so) for all software, just that it depends on your release strategy what is most applicable, and not on the type of software you are shipping.
So yes, I am arguing it should not be used beyond that.
Horses for courses... semver is about semantic meaning to the consumer of an interface, release versioning is about configuration and SRE, user versioning is about functionality and (for a client app) security.
As for proposing the "One True Way", no, I'm not proposing that, I'm saying that I use 3 different versioning strategies for 3 different use cases.
In a production system that I am involved with, the current production is:
API: v5.0.0 (yes we just introduced major breaking changes, however, we have an endpoint for older semvers)
Release: v2025-10-30 (with release notes saying which API Semvers were available and which versions of the user app)
User app: v3.5.1 (there was a security patch to v3.5)
Eg. GNU coding standards[1] said the following at least 18 years ago:
You should identify each release with a pair of version numbers, a
major version and a minor. We have no objection to using more than
two numbers, but it is very unlikely that you really need them.
I'd also note that your user app versioning seems to use the same approach.[1] https://cvs.savannah.gnu.org/viewvc/gnustandards/gnustandard...
What I'm saying is that there are 3 different "users" (actors/use-cases/your-word-of-choice) for a system and each of them need different information about a system that can be expressed in a specific format and implementation of a versioning schema:
1. Other systems, connecting via a documented API (Semver tells devs when they need to be concerned about changes in a particular release to production).
In this case, the users (other developers) are specifically concerned with changes in meaning of an interface, including new information, changes in existing formats, or removal of information.
By definition, this is semantic and Semver provides a schema to support that. Each digit/component of the semver has a specific meaning associated with it.
2. SRE and operations managing the system in production (a calendar based version tells them when a system was released into production, potentially any hotfixes applied, and what SBOM to consult when operating)
It doesn't have to be calendar based, the release version is an arbitrary label. As long as the interpretation of that label is clear between the development and operations teams, it is fine.
Calendar based labelling is usually appropriate for changes to configuration of a system in production.
3. End users of any UX/UI, noting that some systems do not have end users, only other systems. My example was just one of many different "end user version" schemes. Just look at any iOS apps you have installed and what their latest "release" is.
The versioning here can be anything that is clear to the users. A financial system might be versioned by the financial year, or the release of tax and other codes on a regular basis.
Consumer applications might add arbitrary buzzwords like "ai" or "e" or anything else created by the marketing teams.
If you strictly maintain a single API version and expect all users to stay in sync, calendar versioning works there too: it is has different meaning from numbers in SemVer, but it is semantic in that it informs the user of when the changes were introduced in your stream of releases.
Just like it does make sense to use SemVer for desktop software you have paying customers for 2.1 and 3.0.
Your versioning should have a goal and fulfill that goal. Your attempt to shoehorn software types into versioning schemes makes no sense, even if I am with you that SemVer can drive good API development practices if applied to the letter (or can result in you quickly getting to 145.14.7 where SemVer did not really help and is likely not suitable for your product release cadence).