Skip to content
/ funix Public

Funix project is a development project that includes a Unix-like operating system kernel and user-space applications. Funix project features a kernel, file system, memory management, process management, and system calls.

License

Notifications You must be signed in to change notification settings

melihxz/funix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Funix OS

Funix OS is a project that involves creating a simple operating system kernel along with basic drivers. It serves as a learning tool for those interested in understanding how to develop and compile an operating system kernel.

Features

  • Basic kernel structure
  • Disk and keyboard drivers
  • Simple file system (ext2)
  • Network stack (TCP/UDP)
  • Basic command-line interface (shell)
  • Basic C library (math, errno, stdlib, string)

Requirements

  • gcc (GNU Compiler Collection)
  • nasm (Netwide Assembler)
  • make (Build automation tool)
  • An x86 emulator or real hardware (QEMU, VirtualBox, etc.)

Build Instructions

To compile and run the project, follow these steps:

  1. Clone the Project Repository:

    git clone https://github.com/melihxz/funix.git
    cd funix
  2. Compile the Project:

    make

    This command compiles the kernel and all modules, generating the executable funix.

  3. Clean Up:

    make clean

    This command removes all temporary files created during the build process.

  4. Run the Project:

    qemu-system-x86_64 -drive format=raw,file=funix.img

    You can test the operating system using QEMU.

Project Structure

  • boot/: Boot phase and bootloader code.
  • kernel/: Kernel code and core functionalities.
  • drivers/: Disk, keyboard, and other drivers.
  • fs/: File system implementations.
  • net/: Networking stack.
  • shell/: Command-line interface.
  • libc/: Basic C library.
  • include/: General header files.
  • Makefile: Project build file.
  • linker.ld: Linker script.

About

Funix project is a development project that includes a Unix-like operating system kernel and user-space applications. Funix project features a kernel, file system, memory management, process management, and system calls.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published