Hacker News new | ask | show | jobs
Show HN: FOSD – Framework of Operating System Development (github.com)
54 points by i70h4n 658 days ago
The FOSD(Framework for Operating System Development) Framework is an innovative and flexible framework for operating system development. It strives to provide flexible resources and tools to help developers design, develop, and deploy operating systems efficiently and effectively. The framework is intended to support various architectures and provide corresponding build systems that facilitate the overall development of the operating system. It gives the already-implemented build system for each architecture that can automatically detect and compile user's source code and create a full operating system with proper bootloader(that's suitable with architecture.) The framework also provides HAL(Hardware Abstraction Layer) that can remedy the difficulty of having to develop all the device drivers for every hardware. Although currently, we're in the early development stage of only having x86 architecture kernel that can barely print "Hello, world", we are planning to implement from the fundamental framework features like interrupt system or basic print system to the file system interface, complicated device drivers(corresponding to the architecture) or even feature for task management.

The ultimate goal is to make the operating system development easy and efficient for everybody!

4 comments

Earlier projects with similar motivation:

OSKit (1999 - 2002) https://www-old.cs.utah.edu/flux/oskit/

Pintos (up to 2018, used in computer science courses) https://web.stanford.edu/class/cs140/projects/pintos/

This seems like a cool idea which might see some uses in the future. For now it seems like docs are lacking details, so I could not figure out how it works.

Does it only support risc? I saw the example written in C++. Which versions are supported? Is it common to use in kernel development? (AFAIK only NT uses cpp, right?)

Anyways, cool project. I could see it as an alternative for embedded development in the future.

Thank you for asking about our project! Currently FOSD supports basic 32bit loader and 64bit kernel with a rudimentary printing system in Intel x86 architecture. We are unsure of what version of C++ our project supports(speculatively g++ version 13.2.0 as we built the latest release on that compiler,) but the project can be compiled with a cross compiler(specifically x86_64-elf and x86_64-linux-gnu.) The ongoing developments consist of user-customizable kernel loader, kernel's memory and task management system. Our ultimate goal is to make a GUI/VSC extension similar to Arduino IDE, making the use of framework more easy. Leave the PR anytime if you want to contribute to our project! :)
Have you implemented a toy operating system with this? The examples directory only has a debug print statement. I'd be interested to see how it's used in an operating system.
Thank you for your interest in the FOSD project! You're right that the examples directory currently contains just a basic debug print statement. We're still in the early stages of development, and the project is evolving as we work to build out more features.

At this point, FOSD supports the development of a basic 32-bit loader and a 64-bit kernel on the Intel x86 architecture. Although the framework is still limited, we've successfully implemented a simple print system as a starting point. We're actively working on integrating an interrupt system to support standard I/O operations, which will lay the groundwork for more complex functionality, such as a file system interface and task management.

We're excited about the potential of FOSD to make operating system development more accessible, and we appreciate your feedback and interest in the project! Stay tuned as we continue to build out these features.

All right. I wish you the best!