All Projects → NlightNFotis → Fotix

NlightNFotis / Fotix

Licence: bsd-3-clause
My very own UNIX clone, for education/self-amusement.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Fotix

Posnk
An operating system project.
Stars: ✭ 34 (+325%)
Mutual labels:  unix, operating-system, osdev
airyx
A BSD-based OS project that aims to provide an experience like and some compatibility with macOS (formerly known as airyxOS)
Stars: ✭ 2,490 (+31025%)
Mutual labels:  unix, osdev, operating-system
MeetixOS
An hobby OS written in modern C++20 which aims to be Unix-like. Currently based on EvangelionNG, a GhostOS derived kernel
Stars: ✭ 179 (+2137.5%)
Mutual labels:  unix, osdev, operating-system
duckOS
Yet another hobby x86 UNIX-like operating system written in C and C++. Features a dynamically linked userspace, an in-house c standard library, and more! And yes, it runs DOOM.
Stars: ✭ 250 (+3025%)
Mutual labels:  unix, osdev, operating-system
Aquila
AquilaOS: UNIX-like Operating System
Stars: ✭ 413 (+5062.5%)
Mutual labels:  unix, operating-system, osdev
georgios
Hobby Operating System
Stars: ✭ 19 (+137.5%)
Mutual labels:  unix, osdev, operating-system
nightingale
A small operating system where I experiment and learn osdev.
Stars: ✭ 86 (+975%)
Mutual labels:  osdev, operating-system
MandelbrotOS
A community driven OS by the youth
Stars: ✭ 172 (+2050%)
Mutual labels:  osdev, operating-system
RocketOS
RocketOS is a Unix based OS that uses legacy BIOS and GRUB and is written in C17. It is being developed for educational purposes primarily, but it still is a serious project. It is currently in its infancy.
Stars: ✭ 23 (+187.5%)
Mutual labels:  osdev, operating-system
Maurice Bach Notes
Notes on the classic book : The Design of the UNIX Operating System
Stars: ✭ 285 (+3462.5%)
Mutual labels:  unix, operating-system
KnutOS
An x86_64 hobbyist OS written in C and Assembly
Stars: ✭ 16 (+100%)
Mutual labels:  osdev, operating-system
LudOS
A toy monolithic kernel written in C++
Stars: ✭ 38 (+375%)
Mutual labels:  osdev, operating-system
Toaruos
A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc.
Stars: ✭ 4,687 (+58487.5%)
Mutual labels:  operating-system, osdev
pedigree
The Pedigree Operating System
Stars: ✭ 48 (+500%)
Mutual labels:  osdev, operating-system
utero
The Operating System (for x86_64) written in Crystal as much as possible
Stars: ✭ 55 (+587.5%)
Mutual labels:  osdev, operating-system
Einherjar
colorForth computing environment for amd64 and PowerPC Macs.
Stars: ✭ 20 (+150%)
Mutual labels:  osdev, operating-system
infinity
A secure, modern and intelligent operative system
Stars: ✭ 27 (+237.5%)
Mutual labels:  osdev, operating-system
Rusty Hermit
RustyHermit - A Rust-based, lightweight unikernel
Stars: ✭ 268 (+3250%)
Mutual labels:  operating-system, osdev
Qword
Operating system for x86_64 based around a "keep it simple and make it work" philosophy.
Stars: ✭ 367 (+4487.5%)
Mutual labels:  unix, operating-system
Ponyos
My Little Unix: Kernels are Magic!
Stars: ✭ 392 (+4800%)
Mutual labels:  unix, operating-system

fotix is a unix like clone.
Copyright (c) 2013 - 2016 Fotis Koutoulakis

Introduction

fotix is a unix like kernel that I made, mostly for self-education / self-amusement.

Features:

  • Interrupt handling.
  • Multitasking capable
  • Some (primal) memory management
  • A (primal) scheduler

Instructions

Prerequisites

To build fotix, you should have a cross-compiler. I personally used GCC-4.9 for my development purposes, targeted at i586. It goes without saying that you should also have binutils. You can get a basic toolchain installed by running the script at utils/prepare_toolchain.sh. You should also have nasm.

To build the iso, you should also have installed grub-mkrescue and xorriso. To run the iso, you can use any virtual machine hypervisor, although I personally use QEMU, and the one-step-build script is automated to use QEMU.

Building instructions

If you do have all that, just run make at the top of the project's root directory and then run the build.sh script (as root). This will create an ISO, and run it with QEMU.

If you don't want to use QEMU, simply modify build.sh to not delete the iso image, so that you can use it with another hypervisor, or just replace QEMU with your favourite hypervisor.

I should have a cross compiler built (along with binutils)

  • There is one at earth. It is under $HOME/bin/cross/
  • To use it for the session I have to do export PATH="$HOME/bin/cross/bin:$PATH"

Known bugs

  • When a fork()-ed process attemtps to run, we get a page fault, which results on a kernel panic.

Notes

02:50:34 [email protected] ~/osdev/fotix $ cloc .
      37 text files.
      37 unique files.
     353 files ignored.

http://cloc.sourceforge.net v 1.56  T=1.0 s (33.0 files/s, 3337.0 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C                               14            325            428           1488
C/C++ Header                    13            130            190            459
Assembly                         4             39             48            190
make                             1              6              2             14
Bourne Shell                     1              3              4             11
-------------------------------------------------------------------------------
SUM:                            33            503            672           2162
-------------------------------------------------------------------------------

TODO

  • Implement IPC
  • Implement threading
  • Improve memory management
  • Implement a shell
  • Improve the scheduler

LICENSE

fotix is distributed under the BSD 3-Clause license. See file LICENSE for more info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].