[HN Gopher] Show HN: My self-written hobby OS is finally running...
___________________________________________________________________
Show HN: My self-written hobby OS is finally running on my vintage
IBM ThinkPad
Finally got my hobby OS up and running on real hardware. I love the
old IBM thinkpads, so thought it was the perfect machine to get it
working on. Been working on it for quite some time now, but this
has been a big milestone!
Author : joexbayer
Score : 294 points
Date : 2025-04-26 12:51 UTC (10 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| mrrogot69 wrote:
| Cool OS! Love the old style thinkpads.
| jmclnx wrote:
| Yes, look very cool, very nice work!
| joexbayer wrote:
| Appreciate it!
| glitchc wrote:
| This is incredible work, congrats!
| joexbayer wrote:
| Thanks! Been my main hobby project since university, appreciate
| it!
| nopelynopington wrote:
| Nice! I was just thinking about an old eee pc I have somewhere
| and how I might revive it. What's the performance like?
| joexbayer wrote:
| 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.
| mouse_ wrote:
| fun usage of recursion in your factorial function on the third
| screenshot
| joexbayer wrote:
| Hehe, had to write some test programs. That's one of them.
| firesteelrain wrote:
| Great job! How did you get started in this ? Seems like a lot to
| figure out on your own
| joexbayer wrote:
| It started after finishing the operating systems class in
| university. The class was really "on rails" and I wanted to do
| my own thing.
| gitroom wrote:
| been messing with old laptops myself so i get it - hitting a
| milestone like this feels way better when its your own code
| running for real
| eggy wrote:
| 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'!
| joexbayer wrote:
| Thanks! Appreciate the encouragement!
| helf wrote:
| Oh this is cool! I have a couple of 386/486 machines that would
| be fun to test on.
|
| Are you planning on cardbus/pcmcia support and wifi?
| joexbayer wrote:
| WiFi is definitely on my todo list! Already have written some C
| WiFi code, just need to find time to writer the driver.
| velcrovan wrote:
| Is there any chance of booting this on a raspberry pi someday?
|
| I'd love a non-linux minimal single-user OS that boots in <1
| second
| pavlov wrote:
| It's written for the i386 CPU architecture while Raspberry Pi
| is ARM, so it would need to be ported.
|
| What about Haiku OS? It's supposed to be for that exact use
| case...
| velcrovan wrote:
| I don't think Haiku runs on raspberry pi either.
| incanus77 wrote:
| 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.
| velcrovan wrote:
| Is that 4sec delay something introduce in the pi 4 or 5? At
| least one guy got the 3 to boot to a Qt app in 2.8 seconds:
| https://www.furkantokac.com/rpi3-fast-boot-less-
| than-2-secon...
| 800xl wrote:
| Have you checked out RISC OS already?
| caspper69 wrote:
| Nice job. Impressive.
| joexbayer wrote:
| Thanks!
| joshbaptiste wrote:
| 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
| joexbayer wrote:
| 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.
| ayaros wrote:
| 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.
| joexbayer wrote:
| 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.
| o11c wrote:
| 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).
| joexbayer wrote:
| Thanks for the info! Will have to look more into.
| JdeBP wrote:
| One can really get bogged down in fonts. (-:
|
| 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.
| joexbayer wrote:
| Appreciate your response! Will have a look at 16by16 fonts.
| ahefner wrote:
| 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)
| 90s_dev wrote:
| I had the same problem, I made a 3x4 font that was just
| barely servicable for the initial project to show text on
| screen. It was my first (and only) font I ever made!
| Eventually I needed lower-case, so I turned those into lower-
| case and made a 3x5 variant for uppercase. It's _still_ not
| ideal, and I 'm sure when I announce my project, people will
| complain about it. So I've prepared to say "it's a stop-gap
| solution to make the OS servicable, but we can make more
| fonts."
|
| I think people skimming a project often just don't quite get
| how much we pour into our projects, and how very much it cost
| us. But it's okay, they don't have to understand just how
| cool it is what we made. At least we know.
|
| When I saw your video of your project, I was thinking to
| myself, "wow, that's incredibly cool, and I can _relate_ to
| the steps he 's doing!" Just trying to be the voice here of
| someone who thought that way, in case there are no others.
| throw-qqqqq wrote:
| Tough crowd!
|
| - "Look, I wrote an operating system!"
|
| - "Meh the font is weak"
|
| Peak HN IMO :D
| alganet wrote:
| The power of the crowd compells you.
|
| The power of the crowd compells you.
|
| The power of the crowd compells you.
| 7bit wrote:
| So what? Someone is not allowed to give constructive
| criticism?
| throw-qqqqq wrote:
| I tried to make a joke, please don't take it seriously :)
| xyst wrote:
| I wish I could spare time like this to work passion projects.
|
| Forget practicality.
|
| Forget "go to market" strategy.
|
| Forget target fit.
|
| Just build and learn.
| joexbayer wrote:
| Yeah! It's really refreshing, not having to think about it
| actually being "used" or the market. Simply just for fun and
| learning.
| anyfoo wrote:
| 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.
| moon2 wrote:
| 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).
| joexbayer wrote:
| Thanks! It's really liberating not having to worry about
| selling, marketing etc. Only reinvent the wheel till new ideas
| come. :D
| rnd0 wrote:
| 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.
|
| Rock on!
| joexbayer wrote:
| Yes! Love seeing other OS projects on here, always inspiring!
| byte_0 wrote:
| 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.
| joexbayer wrote:
| Thanks! Most of the window / graphics system is handled in the
| kernel, here are the two "services" which do a lot of the heavy
| lifting:
|
| https://github.com/joexbayer/RetrOS-32/blob/development/grap...
|
| https://github.com/joexbayer/RetrOS-32/blob/development/grap...
| globnomulous wrote:
| 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.
| joexbayer wrote:
| Thanks! The feedback has been amazing. Motivates me to do more!
| pjmlp wrote:
| I see some Turbo C/QBasic love on that editor.
|
| Kudos for the project.
| joexbayer wrote:
| Hehe, yeah was a Turbo was a big inspiration for the textmode
| editor.
| vkaku wrote:
| More this. Great job :)
| vkaku wrote:
| Suggestion: Try getting PCI up and try integrating with the
| rest of your devices.
|
| https://github.com/crazii/USBDDOS/blob/master/USBDDOS/pci.c
| sarkron wrote:
| 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?
| joexbayer wrote:
| Thanks for the feedback! I think the biggest thing I'd do
| different is to have a plan. I just started out with the goal
| of doing the basic hello world OS, and that's it. But then I
| kept adding new things, adding more and more working on
| multiple things at the same time. Which has lead to some
| technical debt I'm still trying to fix. I'd also try to be less
| UNIX dependent.
|
| Regarding language, I love C for its basic syntax and "straight
| to the point" style. Maybe I'd consider some other languages
| for userspace applications.
|
| A goal for me from the start was always that I wanted to write
| everything myself, no porting of any software, and for me
| that's the entire point of the project. I mostly adhered to the
| rule of copy ideas not code.
| 90s_dev wrote:
| I'm not sure it's a bad thing to not necessarily have a plan.
| Intuition is the hidden sister of logic, both children of
| reason, and we don't always see her because she's often
| behind the scenes doing all the work.
|
| Technical debt is as sure as death and taxes. Good software
| grows over time, like a person growing up. Sometimes you have
| parts that are needed for a time but not permanently, like
| baby teeth. That's what technical debt is like.
|
| Other times there are parts that are absolutely ideal long
| term, but it's a long time before they even make sense. And
| sometimes things only develop much later than we expect, like
| wisdom teeth. These are software features that won't make
| sense until you write the thing that you don't realize yet is
| only temporary.
|
| I have the same goal of writing everything myself from
| scratch. It's a very important goal to me for a reason I
| don't fully understand yet.
|
| Congrats on writing an entire OS, and getting it booting on
| real hardware! That must be such a rewarding feeling in its
| own right, even if no one understood how. And it looks _so
| very cool._
|
| You've given me more motivation to announce my project soon.
| Maybe next week. Thanks.
|
| Have you played around with Zig yet? I hear that would be a
| good replacement for C here. Did you have any thoughts on
| porting your OS to that, or did you have any branches some
| Zig code made its way into?
| joexbayer wrote:
| I'd love to hear about you project! Seeing what other
| people make is a big inspiration. I have not tried Zig, for
| the kernel I don't think anything will beat C for me
| personally. But for userspace applications I'd love to try
| it!
| betimsl wrote:
| I think you could easily give the UI a refresh, modernize it a
| bit :)
| joexbayer wrote:
| Oh I'd love to, but good UI is apparently my biggest weakness.
| I've rewritten it so many times. And I'm probably gonna rewrite
| it soon again.
| enqk wrote:
| Congrats on running on real hardware, rather than something like
| qemu!
| badmonster wrote:
| Could you elaborate on how this compiler interacts with the
| operating system? Specifically, how does it handle features like
| structs, and what are the current limitations or planned
| enhancements in this area?
| ahmedfromtunis wrote:
| Let me guess, you're trying to dethrone Microsoft, aren't you?!
| Well, good luck with that!
|
| Just kidding. This is really impressive.
|
| There are two types of people that I think of as gods: drummers
| (but not the bad ones) and OS developers (even the bad ones).
|
| Congrats!
___________________________________________________________________
(page generated 2025-04-26 23:00 UTC)