SilverRainZ/OS67 logo

SilverRainZ/OS67

Free

An unix-like toy kernel

FreeFree tier
Type
Open Source

About SilverRainZ/OS67

OS67 is a unix-like toy kernel for x86 architecture, designed for educational purposes. It includes a simple shell with I/O redirection and pipes, a set of basic user routines (sh, ls, cat, mkdir, rm), and a comprehensive list of system calls. The kernel is built using gcc, nasm, and bochs emulator. It is inspired by xv6 and other educational kernels. The source code is available under GPL-3.0 license.

Key Features

Unix-like toy kernel for x86
Comprehensive system call interface
Simple shell with I/O redirection and pipe support
Basic user routines: sh, ls, cat, mkdir, rm
Built with gcc, nasm, ld, and runs on bochs
GPL-3.0 licensed
Educational project inspired by xv6 and other references

Pros & Cons

Pros
  • Well-documented system call interface from source
  • Simple and clean codebase suitable for learning
  • Includes a basic shell and file system
  • Comprehensive build instructions provided
  • Open source under GPL-3.0
Cons
  • Only runs on bochs emulator, not real hardware
  • Limited to 32-bit x86 architecture
  • Toy kernel not intended for production use
  • Requires Linux build environment with specific tools
  • No network or advanced features

Best For

Learning operating system development conceptsEducational experiments in kernel programmingHobbyist exploration of x86 architectureTeaching tool for system programming courses

FAQ

What is OS67?
OS67 is a unix-like toy kernel for x86 architecture, created for educational purposes. It includes a simple shell and user routines.
What are the build requirements?
Build requirements include Linux, gnu make, nasm, gcc, binutils, mkfs, and bochs 2.6.7+.
What user routines are included?
Included user routines are sh (shell), ls (list files), cat (read stdin to stdout), mkdir (make directory), and rm (remove file).
What license is OS67 under?
OS67 is licensed under the GNU General Public License Version 3.
How do I add a new user routine?
Create a new file in usr/, add its binary to the UPROGS variable in Makefile, and rebuild with 'make fs' and 'make run'.