July 14th, 2024

Fusion – a hobby OS implemented in Nim

Fusion hobby OS, created in Nim for x86-64, includes UEFI Bootloader, Memory Managers, Multitasking, System Calls, and more. Future plans involve adding features like Demand Paging, File System, GUI, and Networking.

Read original articleLink Icon
InterestAppreciationCuriosity
Fusion – a hobby OS implemented in Nim

The Fusion hobby operating system, developed in Nim for x86-64, boasts features like a UEFI Bootloader, Memory Managers, User Mode, Multitasking, System Calls, ELF Loader, and Timer Interrupts. Future enhancements include Demand Paging, Inter-Process Communication, Disk I/O, File System, Input Handling, Shell, GUI, and Networking. To construct Fusion, users require Nim, LLVM (clang and lld), and Just. Building Fusion involves executing `just build`, and running it on QEMU is achieved with `just run`. The project operates under the MIT license.

Related

ExectOS – brand new operating system which derives from NT architecture

ExectOS – brand new operating system which derives from NT architecture

ExectOS is a free, open-source operating system based on a new XT architecture, offering a stable and flexible platform with a powerful driver model. It aims to combine existing features with innovative technologies.

NUMA Emulation Yields "Significant Performance Uplift" to Raspberry Pi 5

NUMA Emulation Yields "Significant Performance Uplift" to Raspberry Pi 5

Engineers at Igalia developed NUMA emulation for ARM64, enhancing Raspberry Pi 5 performance. Linux kernel patches showed 18% multi-core and 6% single-core improvement in Geekbench tests. The concise code may be merged into the mainline kernel for broader benefits.

Fiwix: Unix-like kernel for the i386 architecture

Fiwix: Unix-like kernel for the i386 architecture

The Fiwix operating system kernel, a UNIX-based system, emphasizes POSIX compatibility. It offers preemptive multitasking, POSIX compliance, virtual memory management, and supports various filesystems and hardware platforms. Fiwix serves as an educational tool with simple kernel code for students and enthusiasts. Installation is feasible from CD-ROM or floppy disk with minimal hardware requirements. Users are cautioned about potential bugs and incomplete features due to its early development stage. More details are available on the Fiwix GitHub Repository or website.

Debian GNU/Hurd now can compile 71% of the packages from the Debian archive

Debian GNU/Hurd now can compile 71% of the packages from the Debian archive

Significant progress in the GNU/Hurd project in Q2 2024: AArch64 port of GNU Mach by Sergey Bugaev, GCC patches merged, new tests added, Debian GNU/Hurd enhancements, community engagement efforts.

Writing a BIOS bootloader for 64-bit mode from scratch

Writing a BIOS bootloader for 64-bit mode from scratch

Setting up an x86_64 CPU involves BIOS loading a boot sector, assembler like nasm, and QEMU emulation. Assembly code and GDT creation are crucial for transitioning to protected mode and reaching 64-bit long mode.

AI: What people are saying
The article on Fusion hobby OS, created in Nim, generates a mix of appreciation and curiosity among readers.
  • Author offers to answer questions and engage with the community.
  • Readers praise the project's documentation and the use of Nim.
  • Some express interest in Nim for its readability and potential for systems programming.
  • Concerns are raised about Nim's case and style insensitivity in team settings.
  • Comparisons are made with other systems like TempleOS, and discussions on Nim's community size and library availability.
Link Icon 12 comments
By @khaledh - 3 months
Author here. Thanks for posting this <3 Happy to answer questions.
By @mikenew - 3 months
Your blog/docs are excellent. Perfect balance of showing and telling. Thanks so much for taking the time to share what you're doing like this.
By @michaelsbradley - 3 months
Development journal of Fusion’s author:

https://0xc0ffee.netlify.app/osdev/01-intro.html

By @ryukoposting - 3 months
Nice, I love to see stuff like this. I've been an on-again, off-again Nim "ecosystem guy" for several years. It's great to see this delightful little project is still chugging along.
By @elcritch - 3 months
Nifty! Fun to pull up the module for ELF and have it be so easy to read.

Some day I want to write an RTOS in Nim. I enjoy writing embedded programs in Nim and it’d be fun to make an RTOS.

By @coiailo - 3 months
What is Nim, and what is the overarching design goal for Fusion? Thanks.

I'm hoping these questions aren't too basic, I have no context whatsoever for understanding this so hope someone can explain.

By @hugs - 3 months
Seeing more projects in Nim makes me happy. I'm a (mostly) Python and JavaScript programmer who is interested in the benefits of also knowing a modern, fast, statically-typed language. Among a candidate list of Go, Rust, Zig, or Nim, I like Nim the most. It feels the most "Pythonic" in the sense of very little syntax clutter when I'm reading code. I also love, love, love using a REPL to prototype new code, and INim does it well. The biggest problem with Nim currently is its small community size, which makes the universe of available and maintained software libraries smaller than in the other language communities. It's a chicken-or-egg problem, but can be solved by more devs (including me!) being "the change you want to see in the world".
By @jasfi - 3 months
Nim is a great systems language, and should be more popular.
By @ghotert - 3 months
How does this compare with TempleOS? Sounds quite similar what with the single address space.
By @v3ss0n - 3 months
The problem that nim have and many afraid to go nim is case and style insensitivity.

Is_land == island == IsLaND == is-land

It is bad in team setting, in real world projects.

How it goes now ? Last time I checked the main dev refuse to do anything about against popularity vote In Github.

Otherwise awesome project and documentation Fusion Os