r/osdev

Image 1 — Built a bootable OS kernel with a filesystem and shell - looking for feedback and contributors
Image 2 — Built a bootable OS kernel with a filesystem and shell - looking for feedback and contributors
Image 3 — Built a bootable OS kernel with a filesystem and shell - looking for feedback and contributors
Image 4 — Built a bootable OS kernel with a filesystem and shell - looking for feedback and contributors
Image 5 — Built a bootable OS kernel with a filesystem and shell - looking for feedback and contributors
Image 6 — Built a bootable OS kernel with a filesystem and shell - looking for feedback and contributors
Image 7 — Built a bootable OS kernel with a filesystem and shell - looking for feedback and contributors
Image 8 — Built a bootable OS kernel with a filesystem and shell - looking for feedback and contributors
🔥 Hot ▲ 89 r/osdev

Built a bootable OS kernel with a filesystem and shell - looking for feedback and contributors

Hi,

I’ve been building a small operating system called SzymOS from scratch in C and Assembly, and I’ve reached a point where it’s actually usable.

Current features:

  • Bootable on x86 via GRUB
  • Interactive shell (16+ commands)
  • Custom filesystem (SzymFS) with persistence and saving to disk
  • File operations (create, read, delete, show)
  • Keyboard driver
  • Detects CPU, memory, and disk

I also added screenshots and a bootable ISO so it can be tested easily in QEMU or in a Virtual Machine.

Right now I’m working on fixing keyboard mapping issues (e.g. Shift + 3 outputs the wrong character) and improving the input system architecture.

I’d really appreciate feedback on:

  • code structure
  • system design
  • what features would be most valuable next

If anyone is interested in contributing (even small things), I’ve started adding beginner-friendly issues.

GitHub: https://github.com/Szymdows/SzymOS-kernel

Thanks!

u/Positive_Owl_6442 — 1 day ago
▲ 1 r/osdev+1 crossposts

Chain-of-command as boundary

I have in mind to use a chain-of-command idea for security.

How it’s supposed to work is that every program is being attributed to different layers. Every layer is vertical, like a hierarchy.

The layers can only interact with each other if adjacent (layer 1 can only interact with layer 0 and layer 2; layer 2 can only interact with layer 1 and layer 3).

Access between different layers is meant to happen through multiple brokers for IPC and syscall gatekeeping.

What this design is supposed to achieve is make kernel attacks more difficult (because now you need to chain exploits for multiple layers and multiple services) and somewhat limit lateral movement for binaries.

This design works best when supplemented by other security mechanisms.

reddit.com
u/themagicalfire — 1 day ago
▲ 5 r/osdev

Which host language for creating my own programming language?

so i am going to build my own self hosted programming language and before that i want advice on which host programming language should i use. for context, i will enter 5th semester (ty) of btech. so gaining experience in which language will give me highest benifits in my career.

i heard that rust will be easier that cpp because of the built in memory safety but i want an honest opinion on which language does the industry seek proficiency in.

reddit.com
u/notyetfallenicarus — 1 day ago
▲ 0 r/osdev

Kernel based on pure Rust, Assembly, Linker Script. without C.

Masika is a fast, powerful OS that works as close to the hardware as possible, essentially written in pure Rust. The kernel has already been written, but it needs some modification. The project is extremely young, consisting of exactly 10,808 lines of code. Please help me check and correct this code. The project has potential.

It's currently in a private GitHub repository, but will be open source in a week. Are you interested in the project?

reddit.com
u/Swimming_Answer_3714 — 15 hours ago
▲ 2 r/osdev+1 crossposts

Indirect Firewall Idea

The risk I want to stop is that programs can connect to the internet without my consent.

To connect to the internet, the network driver’s existence is a prerequisite.

So my idea is to modify the source code of the network driver to allow inputs only from specific programs. Maybe using PIDs or identity flags.

The desired result is that if a program isn’t whitelisted, the output isn’t allowed (using if/else logic).

reddit.com
u/themagicalfire — 1 day ago
▲ 6 r/osdev

Dealing with userspace C++ applications

Hello everyone.

Did someone tried to make a full functioning environment for C++ programs on your OS (with exceptions and other features).

Currently i have libc written from scratch as shared lib, which i link to my userspace apps for my os. It does not full compliant with posix, but i working on it implementing new functions and fixing old ones that behave differently from standard.

Do i need to implement stdc++ and STL on my own for my os, or it is possible to use gcc default implementation?

reddit.com
u/cvostr — 1 day ago
🔥 Hot ▲ 56 r/osdev

We're not just sticking with a simple gaming operating system; we also have a serious project coming soon specifically for satellite receivers.

u/DifficultBarber9439 — 3 days ago
▲ 5 r/osdev

How can i link kernel.c and boot.s together?

I have returned to OS development even though my other previous attempt a while back using UEFI didn't go that far, i have decided to instead develop an OS on bios because I want to learn the low level stuff. I am wondering how can i link kernel.c and boot.s together because I need to call main from kernel.c but whenever I use extern to tell the compiler that this symbol should be ignored because the linker will solve it, I can't compile it using nasm with this command "nasm -f bin boot.s -o boot.o" because flat binaries don't support external references.

reddit.com
u/FewMolasses7496 — 3 days ago
▲ 0 r/osdev

Hİ OSDEV

Hi everyone, Thank you for the great feedback on my recent posts about XMODS. It's been a long journey, and I've finally reached a stage where I want to let people actually try it out. I'm keeping the source code private for now, but I'll be releasing a pre-compiled ISO very soon. I'm curious to see how it performs on different emulators (like QEMU/Bochs) and potentially some older hardware. The ISO will include: Custom X-MODS kernel (v2.5). Basic GUI environment. I plan to host the file on a stable platform so you can easily download and launch it. I'm looking forward to feedback on hardware compatibility and stability. Stay tuned for the download link! 🚀 — YGCODES

reddit.com
u/DifficultBarber9439 — 2 days ago
▲ 0 r/osdev

What is The difference between applications and programs then and now?

https://preview.redd.it/cckjv5u1brvg1.jpg?width=1024&format=pjpg&auto=webp&s=aa6fb233faabf060bbb7b83661f68baa68ade677

https://preview.redd.it/qtzkt8u1brvg1.jpg?width=1068&format=pjpg&auto=webp&s=d0aeac19f2c3c87b5a5d4655483a0440df3b7f33

This is a picture of an old phone, and I opened it and found this. The phone consists of approximately half a gigabyte of RAM and 2 gigabytes of storage space. Despite this, for its time, it was able to run programs and run its operating system with advanced programs, take pictures, make calls, and other things (normal functions for any phone). I think, and Allah knows best, it was normally able to run applications from the store, normal games or other things. So, what is the difference from time immemorial to today? Let the applications differ in their requirements. What is The difference between applications and programs then and now?

reddit.com
u/Disastrous_Brief6240 — 3 days ago
▲ 19 r/osdev

What programming languages do you use?

I'm curious to know what languages are used for LL programming and OsDev, personally I use ZIG and Asm.

reddit.com
u/CanoBellissimo — 4 days ago
🔥 Hot ▲ 55 r/osdev

It's finally alive! Here’s a quick look at the UI and navigation of my Xbox-inspired OS. What do you think?

u/DifficultBarber9439 — 4 days ago
▲ 11 r/osdev

I keep breaking everything when adding small features

Every time I try to add what seems like a small feature, something unrelated stops working. Like I’ll tweak memory handling, and suddenly output breaks. Or I adjust interrupts, and now the system just hangs.

I get that this is part of low-level work, but it feels like I’m constantly chasing side effects.

Do you just get better at predicting these things over time, or is there a strategy to avoid breaking half your system every time you change something?

reddit.com
u/Bubba_deets — 4 days ago
🔥 Hot ▲ 185 r/osdev

I heard you like osdev so i connected to osdev with my os...dev

Decided to finally finish my IRC client written in my OS. So once it was done, i did the one thing i was planning to do for years. Connect it to the osdev irc channel on Libera.chat.

The IRC client is fully written in my operating system's language, Retro Rocket BASIC. It's pretty much like old clients like IRCII, does exactly what it says on the tin.

Source code for the IRC client: https://github.com/brainboxdotcc/retro-rocket/blob/master/os/programs/irc.rrbasic

Comments, feedback and questions welcome!

u/braindigitalis — 5 days ago
▲ 19 r/osdev

JVM derived UEFI plugins

Hello everyone!

This isn't an operating system yet, due to my project constraints, but I'd just like to introduce something I made.

With the finalization of the ClassFile API in JDK 24, we can do some very cool things with JVM CLASS files, such as recompiling it to work as a UEFI bytecode program (with a way to write PE32 files, of course.)

I'm eventually hoping to write a JVM-to-native transpiler within the EFI code to jump into so I can have an operating system fully constructed within a JVM (and maybe running in one, too), but I expect that will take some time. You can't exit boot services with just EBC, unfortunately.

The current EFI program will list the count of entries in the memory map. EFI shell displays return codes in hexadecimal, so there are 36.

https://reddit.com/link/1snfdbk/video/6zd10r5i3mvg1/player

EBC backend, PE construction

EFI Source, EFI PE writing

reddit.com
u/A3Phosphate — 4 days ago
▲ 0 r/osdev

Is this information accurate?

I apologize in advance if this kind of post is not allowed here, and, if its not, if anyone knows of a better place to ask instead that would be rad

I am studying and this excerpt from the study guide I was given isn't matching up with some of my other sources. Could someone please verify if any of this is correct/misleading? For instance, it says paging divides virtual memory and physical memory into pages, but isnt physical memory divided into frames?

Excerpt:

"Virtual RAM: also known as virtual memory, is a memory management technique used by operating systems to extend the apparent amount of RAM available to applications. This is done by using a portion of a computer's storage (such as an SSD or HDD) to simulate additional RAM.

Paging: The operating system divides physical memory and virtual memory into small fixed-sized blocks called pages. When the system runs out of physical RAM, it can swap inactive pages to the storage device, freeing up RAM for active processes.

Pagefile/Swap Space: On Windows systems, this is often referred to as a pagefile, while on Unix-like systems, it is called swap space. This file or partition on the storage device is used to store pages that are moved out of physical RAM.

Address Translation: The CPU uses a memory management unit (MMU) to translate virtual addresses (used by programs) into physical addresses (used by the hardware). This allows applications to use more memory than is physically available."

reddit.com
u/recyclops18505 — 4 days ago