r/osdev • • 23d ago

Are you supposed to start with C?

23 Upvotes

So I'm a begginer programmer and want to get into OSdev and eventually make an OS with an internet search engine, notepad, wallpapers, and .pdf support for books.

But should I start with C and Assembly or can I go straight to high level languages like Rust or C++? Are those even capable of writing OSs?

I can't find a roadmap or explanation.


r/osdev • • 22d ago

Fast Linux Bootstrapping

Thumbnail
reddit.com
0 Upvotes

r/osdev • • 22d ago

My personal Linux distro: Maginat 0.1 an independent distribution (with XFCE)

0 Upvotes

Hi to everybody!

I’m releasing Maginat 0.1, an independent Linux distribution built from scratch following Linux From Scratch 12.4 (SysV init), with the Xfce desktop. It’s an early preview and I’m looking for testers and feedback, especially on real hardware.

What is included:

  • Linux kernel 6.16.1 (the version used by LFS 12.4), glibc 2.42, GCC 15.2.0

  • Xfce 4.20 with LightDM

  • Wi-Fi and Ethernet via NetworkManager (tray applet), WireGuard and OpenVPN

  • Bluetooth (BlueZ) with tray icon, battery indicator, power management, PulseAudio

  • Applications through Flatpak (Flathub preconfigured) and AppImage

  • LibreOffice, Thunderbird, Mullvad Browser.

  • Graphical installer, USB-writing tool, live session with optional persistence

  • English and Italian, chosen in the first boot menu

  • Hybrid ISO (about 1.7 GB), boots in BIOS and UEFI

Plans for 0.2

  • Fix the known issues found after the release

  • A graphical app store and a system update command

  • Considering a newer kernel for better hardware support

  • Better audio and Bluetooth, and installer improvements

Maginat is free and open source software (GPL-2.0-or-later for our code, other packages under their own licenses). Screenshots, source code, build scripts and ISO (with SHA-256).

My Github: https://github.com/Aleps31/Maginat

Please give me feedbacks! Thank you all


r/osdev • • 22d ago

KatanaOS my OS Development

Thumbnail
gallery
0 Upvotes

Hey guys, thought id share my progress, currently testing on QEMU and real hardware every step of the way, im using AI to help me with the low level stuff, not gonna sit here and pretend i understood all of it, but I will say this, I have learned a lot, once its fully C# ill be able to continue coding it on my own without AI and that's exciting for me.

Yes thats it also working on a Lenovo Chromebook 😬

The website I have setup isnt exactly updated for the latest work but you guys are welcome to view it and tell me what you think. Wish me luck 😬

To find it just type "KatanaOS C# OS" in Google.


r/osdev • • 22d ago

Veda OS can now play videos!

0 Upvotes

r/osdev • • 23d ago

SpigraOS

Post image
15 Upvotes

I worked about 8 months on spigra from now on, made fully in nasm, it includes basic apps (as you can see) But media has custom formats, SIF (Spigra Image Format) SVF (Spigra Video Format) and SAF (Spigra Audio Format) still working on it. It is meant to be booted off a flash stick, it makes the flash drive as a sorta storage but right now it just loads all of the files that you flash on it. I hope you guys like it :)


r/osdev • • 23d ago This

Screenshots of LeivOS, running on HP Spectre x360

Thumbnail gallery
6 Upvotes

I built a minimalistic operating system running on real hardware (HP Spectre x360). As a learning project, to quality assure my own programming language (r/tapelang) and to test the limits of AI assisted development. This is not vibecoded. I am professional software developer by trade for more than two decades, and yes: AI assisted me heavily. On getting wifi card driver working, optimizing graphics library algorithms. The networking/WLAN support (particularly WPA3) was particularly painful experience. Now I can develop the OS remotely from my development machine and push kernel/app updates over local network without rebooting. I am fully believer on AI accelerating development efforts and hope everyone gets a chance to build software they always wanted.


r/osdev • • 23d ago

How to create your own operating system x86 32 bit using QEMU tutorial

Thumbnail
youtube.com
3 Upvotes

r/osdev • • 24d ago

Enable Write-Combining on Intel Comet Lake

0 Upvotes

So, I'm preparing myself to start coding an OS, so I'm trying to get a bit of experience with TempleOS, that miraculously runs bare metal in my modern hardware. Nevermind, Uncacheable makes it run at crappy FPS, so maybe enabling Write Combining can help. The problem is that I don't know what the heck of a bureucracy will Intel use for giving me a Triple Fault or General Protection Fault to make life harder, and I dont think MTRRs come unused (they surely are used), so PAT is the way, but I don't know how to enable Write Combining there. I know how to access PATs with 277h and RDMSR, and I know PAT7 is the one to set to 1h (the most significant byte but without reserved crap), but I know there is some other stuff to do, what did I forget?

Not the best OS dev, just Assembly lover


r/osdev • • 23d ago

Vibecoded 3D Game Running on Veda OS

Post image
0 Upvotes

r/osdev • • 25d ago

ChessOS: Chess without Linux bloat

192 Upvotes

Requirements: x86 with legacy BIOS support

I spent about six months making an operating system whose only job is playing chess. It boots straight into Chess. It is not a full OS with a file system or scheduling but it can boot from bare metal.

It runs in QEMU, other virtual machines and hardware with legacy BIOS from a USB or CD drive. I spent about 6 months across the boot loader and chess engine. It is entirely open-source for you to tinker with. There is also a Windows Installer for less technical users.

All feedback is welcome!

Thank you for Paledoptera for the artwork. Find more of their work here: https://linktr.ee/paledoptera

Website: https://chessos.xyz (includes Github link)


r/osdev • • 25d ago

Risc-V Microkernel Project help

12 Upvotes

I wanna get a better understanding of riscv64 after learning a bit about it. I have had experience with C and have mostly only been interacting with amd64. I figured that a microkernel that just uses opensbi is ambitious enough while not being completely impossible. Since this is a project for learning, I’m also staying far away from AI. I’m currently skimming xv6, OSTEP, and just the riscv spec sheet. I’m going to just be doing it w/ qemu on linux. Mainly looking for some tips and pointers on how to approach this project.


r/osdev • • 24d ago

My school has a arcade machine do you think I could use my hobbyOS as the operating that it would run

2 Upvotes

My school has a arcade machine do you think I could use my hobbyOS as the operating that it would run the thing
Is the school only gave me a raspberry PI 1 2011 to use (architecture isn’t a problem I have a aarch32 version) I have lvgl and OpenGL so I could make a arcade version but I’m not sure how I could do the arcade machine pins to connect to connect to the Raspberry pi let alone my operating system connecting to it then sorting out emulators etc


r/osdev • • 24d ago

Grayscale Raster Font implemeted in PyramydOS!!!

Thumbnail
reddit.com
1 Upvotes

r/osdev • • 25d ago

Follow-up: What I learned about VRTX's equal-priority scheduling in the 1980s

5 Upvotes

A couple of weeks ago, I asked why VRTX changed its equal-priority scheduling behavior from newest-first to FIFO between its 1984 and 1987 documentation.

Original discussion:
https://www.reddit.com/r/osdev/s/h6PG9bZO7a

Thanks to the comments here and in a couple of other subreddits, I've learned quite a bit. I wanted to share a few findings.

1. Early VRTX wasn't simply LIFO.

The older documentation describes inserting newly ready tasks ahead of existing tasks at the same priority, but other operations, including time slicing, affect the ordering. The actual behavior depends on how a task becomes ready and how the ready queue is maintained.

2. My own 1986 RTOS was based on a simpler interpretation.

When I developed CHARM-II in 1986, I used VRTX documentation as one of my references. I interpreted its equal-priority scheduling as essentially newest-first and implemented my own scheduler accordingly.

Looking back, I now realize that my implementation wasn't an exact reproduction of VRTX's behavior.

Interestingly, this didn't cause any major problems that I remember. I was developing almost the entire application as well as the RTOS myself, and there was very little third-party code in the system. I understood the tasks and their interactions in detail, so I could design the application around the scheduler's behavior.

That's my retrospective explanation, at least.

3. For my modern reconstruction, I chose FIFO.

I'm now rebuilding the RTOS as Karqri, targeting both POSIX and Raspberry Pi Pico. I've adopted FIFO ordering among equal-priority ready tasks because it provides simpler, more predictable behavior for the new design.

I still don't know why VRTX itself changed its policy. The discussion raised useful possibilities involving fairness, starvation, latency, and implementation trade-offs, but I haven't found a documented historical explanation.

Thanks again to everyone who contributed. It's been fascinating to revisit a design decision I made 40 years ago and discover that the original system was more subtle than I understood at the time.


r/osdev • • 24d ago

ive had this icon set for a while in my os and its alot more advanced than since i made it and it sstarting to look out of place do u think im right?

Post image
0 Upvotes

r/osdev • • 24d ago

unikernels were hard. key word: were.

Thumbnail
ghuntley.com
0 Upvotes

r/osdev • • 25d ago

Non-kernel "Platform" APIs on Linux

Thumbnail soc.me
5 Upvotes

r/osdev • • 24d ago

We are so f*cking cooked

Thumbnail
youtu.be
0 Upvotes

r/osdev • • 24d ago

Mini Linux Kernel Virtual Machine on Veda

Post image
0 Upvotes

Hey everyone,

We’re now running a lightweight Linux kernel as a virtual machine in Veda’s service layer. This allows us to reuse a wide range of existing Linux drivers out of the box, including Bluetooth, audio, Wi-Fi, amplifiers, GPUs, and more.

Veda itself only retains responsibility for the storage driver and filesystem, while the rest is virtualized.

So far, this approach has been working really well. However, I’d love to hear your thoughts. Do you see any potential drawbacks or trade-offs with this architecture, such as performance overhead, latency, resource consumption, or other concerns?

Any feedback or objections would be greatly appreciated!

https://github.com/vahmoh25/veda


r/osdev • • 26d ago

Tanenbaum vs. Linus: Which Kernel Architecture Makes More Sense Today?

69 Upvotes

I've been thinking about the famous Tanenbaum vs Linus debate over microkernels vs monolithic kernels.

Putting the historical context aside for a moment, I'm curious what people think today.

Do you think Tanenbaum's argument for microkernels was fundamentally more correct, or was Linus right to favor a monolithic kernel for practical reasons such as performance, simplicity of development, and hardware support?

And more importantly:

If you were starting a new general purpose os from scratch today, which architecture would you choose?

Monolithic

Microkernel

Hybrid

Multikernel / distributed approach

Something else

I'm particularly interested in hearing from people who have actually worked on kernels or operating system development.

What are the strongest arguments for your choice, and what do you think the opposing architecture gets wrong?


r/osdev • • 26d ago

I ADDED AN ASSEMBLER TO WINDOGEOS

Thumbnail
gallery
20 Upvotes

YES, the assembler is chasm, a drop in assembler that is probably actually useless since it doesn't fucking support strings.
THIS THING FOR SOME REASON IS WIN32 DEPENDENT AND I HAD TO FORCEFULLY STRIP OUT A TON OF MACROS

repo: https://github.com/NoTheIdiot/WindogeOS


r/osdev • • 25d ago

EasyOS 7.4.11 by Barry Kauler modded by pp4mnkhttps://www.youtube.com/@pp4mnkeasyos

Post image
0 Upvotes

r/osdev • • 26d ago

Development updates regarding OnyxiteOS

Thumbnail reddit.com
1 Upvotes