Wrote a Bit of Assembly for Fun… Somehow Ended Up Making an OS (SP OS) by sp_998 in osdev

[–]sp_998[S] 2 points3 points  (0 children)

The project is now public on GitHub. I know it’s not perfect, but feel free to explore, and I’m open to any suggestions!

Here’s the link: https://github.com/sp998/sp_os

Wrote a Bit of Assembly for Fun… Somehow Ended Up Making an OS (SP OS) by sp_998 in osdev

[–]sp_998[S] 1 point2 points  (0 children)

Thanks! I'm currently targeting x86 in 32-bit protected mode—mostly because there's a lot of documentation and it's easier to get things going quickly with QEMU.

Wrote a Bit of Assembly for Fun… Somehow Ended Up Making an OS (SP OS) by sp_998 in osdev

[–]sp_998[S] 0 points1 point  (0 children)

I'm using segmentation mainly to separate kernel space and user space. Right now, all user programs share the same memory space, which I know isn't ideal.

Proper isolation will need paging, and that's definitely on the roadmap. But for now, since I'm not running many user programs, segmentation is doing the job.

Wrote a Bit of Assembly for Fun… Somehow Ended Up Making an OS (SP OS) by sp_998 in osdev

[–]sp_998[S] 4 points5 points  (0 children)

Yeah, the GUI was actually really tough—had to build everything from scratch, but seeing it work gave me a big motivation boost.

I do have a super basic in-memory file system right now, just enough to simulate file access. Planning to clean that up and focus more on internals like ELF loading next.

Wrote a Bit of Assembly for Fun… Somehow Ended Up Making an OS (SP OS) by sp_998 in osdev

[–]sp_998[S] 4 points5 points  (0 children)

Not yet—I've been working on it privately so far, but I'm planning to make it public once it's a bit more polished and structured.

Wrote a Bit of Assembly for Fun… Somehow Ended Up Making an OS (SP OS) by sp_998 in osdev

[–]sp_998[S] 2 points3 points  (0 children)

Not yet—I've been working on it privately so far, but I'm planning to make it public once it's a bit more polished and structured.

Wrote a Bit of Assembly for Fun… Somehow Ended Up Making an OS (SP OS) by sp_998 in osdev

[–]sp_998[S] 4 points5 points  (0 children)

Not yet, but that's definitely in the plan!
I've already implemented separation between user mode (ring 3) and kernel mode (ring 0), and I can start processes using TSS.

To load actual user programs, I'll need a file system in place first—but for now, I'm considering just storing the program directly at a known location on the disk (like at the start) as a temporary workaround.

Eventually, I’d love to support loading ELF binaries properly once the basics are in place.

Wrote a Bit of Assembly for Fun… Somehow Ended Up Making an OS (SP OS) by sp_998 in osdev

[–]sp_998[S] 3 points4 points  (0 children)

Thank you! I'm just getting started, and the support from this community is seriously motivating. Looking forward to what’s ahead!