Snowdrop OS – a homebrew operating system from scratch, in assembly language
sebastianmihai.com
sebastianmihai.com
https://www.amazon.com/Developing-32-Bit-Operating-System-Cd...
"When Sensory Publishing gained the rights, they changed the name and they printed another run of a thousand to keep it available in print. They are down to 200 copies or so and no longer sell it. The book is now in the public domain and any books will be kept for the Great Alexandria Library."
The thing that makes it relevant for learning assembly is that’s what you’re outputting so you’ll be learning that as well as what’s going on with the stack when calling and returning from functions and using local variables and basically everything that corresponds to C. (I’m only on chapter 2.)
Some other reasons it might work out for you is that you are getting into C as well already, and you have a familiar language you could use for the compiler if you wanted: java (assuming it doesn’t take too long to compile and run a java program repeatedly)
s/precompiler/preprocessor/g
, i guess.
Search for:
The Art of Assembly Language by Randall Hyde
Carter book:
MIT open courseware: https://ocw.mit.edu/courses/6-004-computation-structures-spr...
What's the point of making something like that closed source in 2025?
Would anybody actually use such a thing except for as a hobby OS, on a multi-core X64 machine no less?
I mean, look at the East-West schism. The stated reasons for the split are just as stupid.
The sacking of Constantinople in 1204 and its later fall a few decades later made reconciliation far harder, and the ultimate shift of power to Moscow made it practically impossible. The final separation of the churches was formalized in the 1700s.
In all the intervening years, the Roman Catholic Church has doubled down on Papal supremacy and infallibility, something that is anathema to Orthodoxy. Beyond that, centuries of diverging traditions have further entrenched theological differences.
There really isn't any separating the ecclesiastical and theological differences at this point. Even the Protestants, who at first largely opposed the Pope rather than the Roman Catholic Church itself, sought to unify with the Orthodox Church in Moscow and found it to be too different to their liking.
I'm a cradle-Catholic-turned-Atheist, and I still find all of early church history fascinating.
https://github.com/oro-os/kernel
It's a user-less, capability-less microkernel design that enforces access control via the kernel's entity hierarchy. Shared memory ports with various levels of safety are the primary form of IPC, typed at the kernel level.
Currently undergoing later stages of the kernel efficacy stage; if I can prove the design I'll do a more formal writeup. It's been a project in my head for about 8 years and in the editor for about 4 now.
https://rtic.rs/ is a pretty cool idea for an embedded RTOS (sort of).
Honestly though there's still stuff in Plan 9 that is way more advanced than what Linux does, e.g. https://9p.io/sys/doc/lexnames.html
https://redox-os.org/It's funny because I want this when I write applications. Each library should run in its own sandbox, and by default they shouldn't be able to touch each other's data.
[0]: https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/
[1]: https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-949.pdf
https://learning-0mq-with-pyzmq.readthedocs.io/en/latest/pyzmq/patterns/pair.htmlRedox has delivered these existing ideas in a manner that will soon enough be (if not already) suitable for production use and available to package for casual non-hacker users. If there is another project that has also done this in a non-academic way, I'd like to see it.
No, ROS/ROS2 is not an operating system and is not what most people call performant software.
And embedded stuff has a ton of OS'es, such as FreeRTOS, Zephyr, ThreadX... And there are plenty of proprietary solutions, like Nvidia DriveOS.
The embedded OSes are quite limited compared to regular ones like Linux - the task scheduler is present, but everything else (like processes, filesystem, dynamic file loading, binary tools, etc...) is either missing or optional.
I've heard this is not the case in all industries, and that many industrial projects (as in factory automation) use Windows, however crazy it may sound. But I don't have a first-hand knowledge of this.
All software I've worked with was built from scratch. We've used plenty of libraries, but this was all generic stuff, all the "comprehensive ecosystem and foundation" was our own. But compared to the actual business logic, that foundation is pretty simple - you need math libraries, some sort of RPC, logging, process management, replay/sim. This does not include device drivers - there is a very good chance you'll need to write them scratch anyway. And none of this is even close in complexity to things like path optimizer.
The central control plane is Ubuntu, but the boards for actuators and sensors are all microcontrollers on some kind of RTOS or FPGAs.
Performing a quick survey of available recent papers in the field, came back with these summary works:
Robotics and Industry 4.0, https://www.researchgate.net/profile/Sudeep-Tanwar/publicati...
Elements of Robotics (book), https://library.oapen.org/bitstream/handle/20.500.12657/2782...
Modern Robotics (limited pages), https://www.google.com/books/edition/Modern_Robotics/5NzFDgA...
Looks like:
- Industrial for heavy lifting and dangerous tasks beyond human standards (welding, heat, radiation)
- Autonomous vehicles for manufacturing, mining, agriculture, logistics, transport
- Quad- and octa- rotors as well as swarms of such (similar tasks as autonomous vehicles)
- Health care with repetitive chemical mixing where human error can make a dangerous batch
- Food packaging for sanitation and highly repetitive tasks prone to error, stress, and accidents.
- Mining for areas where human interaction is dangerous or prohibitive (depth)
- Military for attacks, surveillance, EM warfare, and long term loitering / denial.
- Supermarkets and malls for restocking, cleaning, and shopping assistance.
- Warehouses and factories for moving and selecting parts
- Toys and educational consumer purchases
- Home cleaning and maintenance (most of what "robot" brings back on shopping, other than toys)
- Automated cooking for condition specific foods (rice, difficult indian meals)Homebrew an OS from Scratch? Snowdrop Shows How It's Done - https://news.ycombinator.com/item?id=39005640 - Jan 2024 (1 comment)
Snowdrop OS – a homebrew operating system from scratch, in assembly language - https://news.ycombinator.com/item?id=28090574 - Aug 2021 (3 comments)
V32, BASIC compiler. :)
Well we can make feature requests, I guess.
Works on: Windows XP 32bit, Windows 98, Windows 95"