Hacker News new | past | comments | ask | show | jobs | submit login
MenuetOS (menuetos.net)
179 points by je_bailey on May 6, 2022 | hide | past | favorite | 53 comments



Always love hobby operating systems which leave UNIX and POSIX behind. It's really a shame that we're slowly converging on POSIX being the basis of _all_ operating systems since it forces some bizarre and undesirable design decisions [1]. Dropping POSIX and building something new gives us a chance to actually explore novel ideas in operating systems design.

[1] https://www.microsoft.com/en-us/research/uploads/prod/2019/0...


Fuchsia is not a hobby operating system (it is deployed to production by Google) and it kinda leaves POSIX behind, which I find cool

https://fuchsia.googlesource.com/docs/+/d4f9b980f18fc6722b06...


Depends where you look.

The cloud OSes have long left classical UNIX behind, Kubernetes or managed languages on top of type 1 hypervisors are the name of the game, even if there is some POSIX based kernel somewhere on the stack.

On the mobile side, although Android and iOS have some POSIX support, it hardly matters for app development.

Even on macOS, which is a certified UNIX, if you want access to some of the modern networking APIs, they are only exposed at Objective-C level.

So while POSIX kind of has won, long term it has been yet another phase in the history of computing, thus looking forward to such alternatives.


All of these things are ultimately abstractions built on top of POSIX (aside from actual unikernels which can be used in the virtualization scenario)

It absolutely does free OS designers to remove the POSIX parts from in between, but no one really has yet


There is no POSIX on many type 1 hypervisors, specially stuff like Hyper-V.

Android and ChromeOS developers also don't have any access to any kind of POSIX abstractions or APIs.


> In this paper, we argue that fork was a clever hack for machines and programs of the 1970s that has long outlived its usefulness and is now a liability.

Based.


Any paper that proposes to remove functionality without attempting to steelman said functionality can safely be disregarded.


I have really fond memories of playing with this sometime around 2005.

I would download as many ISOs as I could get my hands on during the week at one parent’s house (where we had the better PC and broadband) and then at the weekend staying with the other parent I would try out all kinds of linux distros and hobby OSes.

Menuet was incredible to me at the time, it was fast as hell. I played with it for hours and probably would have stuck with it over the crappy Win ‘95 install if not for the fact it basically didn’t have any useful software at the time. It was great fun to tinker with and explore though.

I’ve come across it every few years since and I’m always happy to see it still worked on.


The author seems to be violating the GPL with Menuet64? Menuet64 is pretty clearly a derivative work of Menuet32, which is GPL. However, Menuet64 is released under a non-free license.

Originally I believed the author may be the sole author of Menuet32, and thus could relicense to whatever they wanted. However, the release notes (https://www.menuetos.net/relnotes.htm) credit many other authors with their contributions.


Well it depends on the potential agreement with the other authors, I would say it is none of our business if they don't complain about it.

Not sure if it becomes "legal" to breach the GPL if original authors die though.


Any chance they required copyright assignment / CLA?


Does anyone know the history or motivation behind this? Wikipedia says "The 64-bit main distribution is now proprietary" implying it used to be free?


No, M64 was never free, as far as I can tell. I remember stumbling over M32 around 2006, when I was interested in OS development while being a CS student. I kept interest, and some time later a 64 bit version was published, but no source code, unfortunately.

The project kept growing a bit, very slowly. Seems like after v1.00 the author lost most interest. So if it is still a prototype work without any commercial usage, it would be great to have it published with source code.


I also don't really understand the reason for the relicensing. There doesn't seem to be a commercial version available.


The author was not happy with their code being used in KolibriOS, a fork.

http://board.flatassembler.net/topic.php?p=216272#216272


It blows my mind (in a good way) that people are still posting this to Hacker news. I remember writing code for MenuetOS in both my Operating Systems and Hardware classes in ~2002. Love it!


There's a fork of this as well, though I don't know much about why the fork happened or anything:

http://kolibrios.org/en/


License. MenuetOS is proprietary. KolibriOS is open source.


I couldn't find anything about why. It's only the 32bit version it seems. 32bit MenuetOS is GPL but the 64bit is a different license.


I haven't touch KolibriOS for a few years. It used to be 32-bit only, not sure today.


The reported audio latency, in the release note, is incredible:

  05.05.2022  1.42.20  Below millisecond audio latency (intelhda,audio.asm)
                     - 0.083 msec @ 192 khz, 24 bit (playback)
                     - 0.667 msec @ 48 khz, 16 bit (record)


Actually, it really isn't.

The numbers are not for through latency (-> audio interface -> cpu -> audio interface ->)

Instead they are for "half-duplex" latency (-> audio interface -> cpu OR cpu -> audio interface ->).

The 48kHz number represents a buffer size of 32 samples, which is entirely possible with Linux and macOS. The note also does not indicate how h/w specific these numbers are: there can be many h/w level issues with very low latency numbers that can't be solved by the OS (a classic example is a wifi chipset or video interface hogging the PCI bus for too long). On the "right" h/w, 32 samples for input latency is not really that remarkable.

What would be remarkable is if MenuetOS can get this performance from arbitrary intel hardware.


Related:

MenuetOS - https://news.ycombinator.com/item?id=28988778 - Oct 2021 (15 comments)

Menuet – A pre-emptive, real-time and multiprocessor OS written in assembly - https://news.ycombinator.com/item?id=15427848 - Oct 2017 (71 comments)

MenuetOS 1.0 – 1.5 MB OS written entirely in assembly [video] - https://news.ycombinator.com/item?id=9595507 - May 2015 (24 comments)

MenuetOS, an operating system written in assembly, hits 1.0 - https://news.ycombinator.com/item?id=9549808 - May 2015 (2 comments)

MenuetOS 0.85C released: an OS written entirely in 32/64 bit assembly - https://news.ycombinator.com/item?id=6309696 - Sept 2013 (15 comments)

MenuetOS - An OS written entirely in assembly - https://news.ycombinator.com/item?id=1494999 - July 2010 (26 comments)

MenuetOS: an OS that fits on a floppy, written entirely in assembly, has GUI - https://news.ycombinator.com/item?id=1477868 - July 2010 (8 comments)

MenuetOS: Written in Assembly, fits on a floppy, has GUI - https://news.ycombinator.com/item?id=776381 - Aug 2009 (45 comments)



KolibriOS is a fork of MenuetOS and it's available on that WASM v86 emulator: https://copy.sh/v86/?profile=kolibrios


This is so incredible. I would love to know if they’ve sold many commercial licenses, and what a typical commercial licensee use case would look like.


by the creator of flat assembler[1] or community, if i am not mistaken. not an assembly programmer, but the syntax of flat assembler looks clean and nice.

[1]: http://flatassembler.net


Not really any current processors in the tested hardware list on the site. Would we expect it to work on current Intel/AMD architectures?


I would expect it would boot and work fine. Drivers is where most hobby OSes fall down. Your sound card might not work. Or your USB chipset etc. And hobby OSes like this often do a lot of things in software that are available in hardware, which ruins their performance.


It has drivers for Intel HD Audio, which has been a standard for over a decade now, and of course USB 1.x and 2.x (EHCI). No USB 3 (XHCI) however.


Thing is, everything runs on hypervisors these days anyway. It already has to virtualize your sound card, your USB chipset etc.


What do you mean when you say 'everything runs on hypervisors'?

That may be true in the datacentre and the cloud.


Well, it's of course a slight exaggeration, but our desktop computers have had hardware support for virtualization for a long time now. Even our GPUs are getting hardware support for virtualization. Does it really have to be a problem any more that "your operating system has no drivers for this thing"?


Yeah, fair point. It's less and less relevant for sure.

But something like this lives in the hobbyist space where (I think) bare metal is still king.


That's a very cool project for tinkering. It's a small niche, especially that it's written in assembly, it limits the scope of the things one can play with. But nevertheless, it's a very enriching experience as well as a very unusual one.



I think he was shadowbanned on HN due to his racist remarks.


How would you know you are shadowbanned? I've never gotten a response to any comment I've posted here.



That's the idea of being shadowbanned. Comments made by Terry would show up as [dead] whenever he posted. More about Terry here: https://news.ycombinator.com/item?id=17912618

You're not shadowbanned btw.


When I first stumbled upon it in the very early 00's people were hyped about it fitting on a floppy (the "save" icon :P). Pretty amazing even today.


Same. And to be honest, since I played with it as a teenager, MenuetOS pretty always come to my mind when I see how we waste computing ressources nowadays.

Of course I know that MenuetOS fitting in a floppy is more a challenge for the author than something we should aim for for regular software. But still, I sometimes calculate in my mind "how much MenuetOS floppies is this" when I download and use some basic app written in Electron. Even a lot of websites are heavier than that.

I think MenuetOS and a modern app are two extremes and I say to myself that we should aim for some just middle.


Has anyone here used this as their main OS (or at least made some reasonable use of it rather than simply "install to check it out")?

I'm always curious to install and try out such "alternative" OSes, but usually the novelty wears off quite quickly, as the bar to using it for anything nontrivial is usually too high to justify the time investment.


I think that ChromeOS is an existence proof about the minimum set of features for a "main OS" these days.


The licence doesn't make sense to me.

"decompilation prohibited" - but I thought it's written in assembly?

Which means it's not compiled?


Probably standard legal copy. Most if not all proprietary EULAs have something like that. More interestingly, they're invalidated by the laws that permit RE in many countries.

...and on a somewhat related tangent, look at how many appliances have a "do not open/no user-serviceable parts inside" warning.


A purist might prefer to say that it needs to be "assembled" and that "disassembly" is prohibited; but I don't think many people these days would quibble that the assembler -> machine code process isn't "compiling".

Assembly language is still a textual, human-friendly language where you can give memory locations symbolic names, you use mnemonics for the different machine instructions, many assemblers have various forms of macro support, etc. That all gets "assembled" or "compiled" into the machine code.


From their website: "written fully in assembly language (64bit and 32bit)." Whoa..


Portability was not a goal, apparently.


Or memory safety


Thought that something like this would be good as a pre-boot environment. A lot smaller than EFI and perhaps more functional. Though debatable how good an idea that is. Guessing most folks don't want to program asm however.


Oh I'm so glad to see them still alive. I learned a lot with that project close to two decades ago.


Decades




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: