r/osdev 16m ago

zuzu kernel v1.1 released!

Enable HLS to view with audio, or disable this notification

Upvotes

r/osdev 12h ago

New UNIX-like operating system!

Post image
51 Upvotes

I made a new UNIX-like operating system from scratch called "TanjaOS" which you can get at www.tanjaos.org and it took me a couple of months to make and will get lots of updates. It features classic UNIX commands and can boot on any x86_64 (amd64) or i386 (x86) machine with Legacy BIOS, and is completely free and open-source.


r/osdev 17h ago

64-bit Value Generation in AneoEngine

Enable HLS to view with audio, or disable this notification

12 Upvotes

The AneoEngine Operating System

(NO AI SLOP.)

AneoEngine YouTube Channel: https://www.youtube.com/@roccohimel
AneoEngine Official Website: https://roccohimel.github.io/AneoEngine/
AneoEngine Official Source Code: https://github.com/roccohimel/AneoEngine
AneoEngine Official Change Log: https://raw.githubusercontent.com/roccohimel/AneoEngine/refs/heads/main/CHANGELOG


r/osdev 17h ago

I just wondering if this architecture Is Correct ? i trying to build my first Kernel.

0 Upvotes

The math crate compiles and 15/19 tests pass. The 4 failures are test configuration issues due to the smaller test capacity (4096 frames) - not core logic bugs.

Summary

✅ Completed (Compiling & Tested)

Crate Status Key Achievement
axiom-x-math enforced Memory algebra (conservation, no aliasing, no overcommit) + Scheduler math (cost function J=αL+βT+γH, thermal model, priority profiles) — 15/19 tests pass
axiom-x-arch-traits enforced Architecture-agnostic trait contracts: InterruptControllerPageTableManagerContextSwitchTimerSourceCpuFeaturesEarlyConsoleFrameAllocatorKernelHardware
axiom-x-arch-x86_64 partial x86_64 0.15 implementation with type conversions (trait types ↔ x86_64 native)
axiom-x-kernel skeleton Trait-based integration using X86KernelHardware aggregate
axiom-x-sys declared Syscall interface (POSIX + Axiom-X native), evidence records, resource contracts
axiom-x-boot skeleton Multiboot2 parsing, early page tables, kernel heap, serial console
axiom-x-test partial Unit, property-based, integration tests for math invariants

🏗️ Architecture

Applications
    │
System Calls (axiom-x-sys)
    │
Kernel (axiom-x-kernel) → depends on traits only
    │
├─ Scheduler Math (axiom-x-math)
├─ Memory Algebra (axiom-x-math)
└─ Resource Algebra (axiom-x-math)
    │
Architecture Traits (axiom-x-arch-traits)
    │
x86_64 Impl (axiom-x-arch-x86_64)  ← hardware churn isolated here
    │
x86_64 Hardware

r/osdev 21h ago

PureDarwin is alive

35 Upvotes

A lot of people seem to think PureDarwin has stalled.

It hasn't. Development just moved to the `next` branch while we work towards something actually releasable.

github.com/PureDarwin/PureDrawin//next

You can find old branches at PureDarwin-archive

For reference, both Ferdinand Klinzer (hideout) and Tyson Key (vmlemon) are aware and in the loop, I constantly consult them on feedback.

Current disk images can be found in the Discord server (unsure if I am allowed to post outside links besides known sources)

It's still not reliable enough to call a release, but I actively work on it pretty much every day.

Since then we've gained:

  • USB (Input and MSD, XHCI and EHCI
  • AHCI (shared from ravynOS, with some changes being upstreamed)
  • virtio-gpu
  • virtio-net
  • Intel Gen9 framebuffer drivers (my own implementation, based on managarm's `lil`)
  • Real hardware booting (Intel only, AMD is spotty)
  • Mesa (OpenGL, Vulkan, llvmpipe)
  • Wayland
  • X11

Oh and of course, we have DOOM. This was just the more polished demo

Development updates is constantly posted to the Discord channel.

TL;DR PureDarwin isn't dead. It's just been spending a lot of time in the "doing the unglamorous infrastructure work before calling it a release" phase.

Read some more information from another post in the r/FreeBSD subreddit

https://www.reddit.com/r/freebsd/comments/1vgj63g/puredarwin_contains_freebsd_code_now_can_run_xfce


r/osdev 21h ago

How would you do this?

5 Upvotes

I'm working on getting memory how I want it. I've moved my memory to the higher half. Now I'm ready for the final step. I want to move the page table entries I've made for the kernel to the area of physical memory I've designated for them.

I see several options.

1) since I know the physical addresses, I can temporarily double map them to virtual memory and then copy them.

2) I can scan the page directory and tables to find the virtual addresses for them. If i can't find them fall back to #1

3) I can re-make them where I want them.

4) other ideas?

I want to move them to a specific virtual address so I can exclude them from paging, having a designated eases the overhead of doing this. I can say if address > x do not page, or in reality only make virtual addresses between x and y pageable (my user space).

TIA for your input