These things are way better to see than stupid AI. It’s not going to “sell”, but it’s a tech person being creative and doing their craft.
I used to study a lot of hobbyist OS development in my late teens. It was awesome, I still try doing small kernels from time to time (last one was a RISCV small kernel that printed a message to my partner).
This is great! What would you do differently if you started again today?
What are your thoughts on language suitability for the lower level parts (ie. Sticking to c or a simple subset of c++ or any of the newer languages)?
Given the myriad of resources available, how did you manage to keep the project engaging rather than copying others people code?
I think the default system font should be a more condensed variant; it would make the system look much more refined. There are a number of areas where it's clear you need more horizontal space for characters. Each character should have less width, and there should be as little space between the characters as possible - just a single pixel ought to be enough at the font size and resolution you're using.
I don't know anything about your font system; I'm assuming it's fixed width bitmap fonts? I don't know how hard it would be to make these changes within your codebase so if it's too much work then don't worry about it.
I've been building a web OS site from scratch for a while now (not as technically impressive as what you're doing) and I just got through a total rewrite of the font classes, so it's at the top of my mind.
I agree my current font is very sub optimal. It’s basically still the original font I got working when I started out. I have looked into rendering proper fonts, so it’s on my todo list. Just have been neglecting it.
If you want a quick improvement over that 8by8 IBM ROM font, I suggest two things:
1. Switch to a 16by16 square.
2. For the ASCII range, go with one of the old home computer fonts, rather than IBM ROMs. Viznut has .hex files for Commodore PET and BBC Micro graphics modes squirrelled away inside Unscii.
I've done the work of upscaling the 8by8 PET font to 16by16, and it works quite nicely as a monospace square font. These old home computer fonts were of course designed to. Whereas in the world of VGA you're soon in trouble with glyphs designed for 9by16.
The 8x16 font from the Atari ST's hi-res mode is pretty slick if you like something bold and a little futuristic.
https://github.com/ntwk/atarist-font (or rip it directly from the ROM)
Supporting variable-width fonts is pretty easy on its own (if bit-packing, you might wish to store them vertically), but does complicate combining characters (remember, they go in different places and may need to make the new character larger).
For vector fonts, the interesting question is "if I render this at a different resolution and then scale it, will it line up?" which fundamentally has no answer that can satisfy everyone. Most other difficulties are merely a Small Matter of Coding (and providing appropriate APIs).
Just adding this comment to say congratulations and how impressed I am by your project! I've been an OS Dev fan since my teens and it feels great to see this achievement come to life. I am a little curious to know how the graphics subsystem is initialized. I wish you the best of success.
Congrats! Looks great coming from someone who had a Commodore PET 2001 in 1977. I have been toying with KolibriOS and MenuetOSx64, but I would sure like to try rolling my own OS. You did it! Keep truckin'!
It's interesting that a few of these projects seem to be reaching milestones at the same time. It's reassuring to see that there are people out there who are still working on this deep of a level with computers and sharing their results with us.
While I share the sentiment (and have been noodling with similar projects), unfortunately the minimum is around 4 seconds as the VideoCore chip is what boots first, then after about 4 seconds hands things over to the ARM chip, which can effectively boot instantly with this sort of OS.
Congrats on hitting the milestone! This is exactly the kind of work I want to see on HN: passion projects just for the sake of making something, not advertisements, market news, or AI bullshit.
Out of curiosity, why can’t you spare time? I’d be pretty lost without my hobby projects (one of them was a toy OS, but that stopped when low level OS development became my actual job), ever since I was a kid.
I have an old eee pc myself! Tested it on that one too, performance is alright, not really optimized but since it’s so “basic” compared to real OSes it should be quite fast. Bigger problems are bugs and lack of functionality for real hardware. (Userspace applications are only available on the QEMU images.
Oh man I wish such big accomplishments were documented on video like Andreas Kling did with SerenityOS https://www.youtube.com/@awesomekling
.. learned a lot from his videos
Yeah… kinda wish that too in hindsight. I have screenshots of the entire development process from the very start, and of course my git history. Never thought I’d get this far.
I used to study a lot of hobbyist OS development in my late teens. It was awesome, I still try doing small kernels from time to time (last one was a RISCV small kernel that printed a message to my partner).
Given the myriad of resources available, how did you manage to keep the project engaging rather than copying others people code?
I don't know anything about your font system; I'm assuming it's fixed width bitmap fonts? I don't know how hard it would be to make these changes within your codebase so if it's too much work then don't worry about it.
I've been building a web OS site from scratch for a while now (not as technically impressive as what you're doing) and I just got through a total rewrite of the font classes, so it's at the top of my mind.
http://jdebp.uk./Softwares/nosh/guide/terminal-resources.htm...
If you want a quick improvement over that 8by8 IBM ROM font, I suggest two things:
1. Switch to a 16by16 square.
2. For the ASCII range, go with one of the old home computer fonts, rather than IBM ROMs. Viznut has .hex files for Commodore PET and BBC Micro graphics modes squirrelled away inside Unscii.
I've done the work of upscaling the 8by8 PET font to 16by16, and it works quite nicely as a monospace square font. These old home computer fonts were of course designed to. Whereas in the world of VGA you're soon in trouble with glyphs designed for 9by16.
For vector fonts, the interesting question is "if I render this at a different resolution and then scale it, will it line up?" which fundamentally has no answer that can satisfy everyone. Most other difficulties are merely a Small Matter of Coding (and providing appropriate APIs).
- “Look, I wrote an operating system!”
- “Meh the font is weak”
Peak HN IMO :D
The power of the crowd compells you.
The power of the crowd compells you.
https://github.com/joexbayer/RetrOS-32/blob/development/grap...
https://github.com/joexbayer/RetrOS-32/blob/development/grap...
https://github.com/crazii/USBDDOS/blob/master/USBDDOS/pci.c
Kudos for the project.
Rock on!
I'd love a non-linux minimal single-user OS that boots in <1 second
What about Haiku OS? It’s supposed to be for that exact use case…
Forget practicality.
Forget "go to market" strategy.
Forget target fit.
Just build and learn.
Are you planning on cardbus/pcmcia support and wifi?