Fork me on GitHub

root/README

/* [previous][next][first][last][top][bottom][index][help] */
                        Fiwix kernel release 1.1.0
                        ==========================

Fiwix is an operating system kernel, written by Jordi Sanfeliu from scratch,
based on the UNIX architecture and fully focused on being POSIX compatible.
It is designed and developed mainly as a hobby OS but also for educational
purposes, therefore the kernel code is kept as simple as possible.

It runs on the i386 (x86 32bit) hardware architecture and is compatible with
a good base of existing GNU applications. It offers many UNIX-like features:

 - Mostly written in C language (Assembly only used in the needed parts).
 - GRUB Multiboot Specification v1 compliant.
 - Full 32bit protected mode non-preemptive kernel.
 - For i386 processors and higher.
 - Preemptive multitasking.
 - Protected task environment (independent memory address per process).
 - POSIX-compliant (mostly).
 - Process groups, sessions and job control.
 - Interprocess communication with pipes and signals.
 - BSD file locking mechanism (POSIX restricted to file and advisory only).
 - Virtual memory management up to 4GB (1GB physical only and no swapping yet).
 - Demand paging with Copy-On-Write feature.
 - Linux 2.0 ABI system calls compatibility (mostly).
 - ELF-386 executable format support (statically and dynamically linked).
 - Round Robin based scheduler algorithm (no priorities yet).
 - VFS abstraction layer.
 - EXT2 filesystem support with 1KB, 2KB and 4KB block sizes.
 - Minix v1 and v2 filesystem support.
 - Linux-like PROC filesystem support (read only).
 - PIPE pseudo-filesystem support.
 - ISO9660 filesystem support with Rock Ridge extensions.
 - RAMdisk device support.
 - Initial RAMdisk (initrd) image support.
 - SVGAlib based applications support.
 - Keyboard driver with Linux keymaps support.
 - Parallel port printer driver support.
 - Basic implementation of a Pseudo-Random Number Generator.
 - Floppy disk device driver and DMA management.
 - IDE/ATA ATAPI CD-ROM device driver.
 - IDE/ATA hard disk device driver.

Fiwix is distributed under the terms of the MIT License, see the LICENSE file
for more details.


COMPILING
===============================================================================
Before compiling you might want to tweak the kernel configuration by changing
the values in the 'include/fiwix/config.h' file.

The command needed to make a full compilation of the Fiwix kernel is:

make clean ; make

This will create the files 'fiwix' (the kernel itself) and 'System.map.gz' (the
symbol table) in the root directory of the source code tree.

Keep in mind that the kernel doesn't do anything on its own, you need to create
a user-space environment to make use of it. Upon booting, the kernel mounts the
root filesystem and tries to run '/sbin/init' on it, so you need to provide this
program yourself. 


TESTING
===============================================================================
To create a complete bootable floppy disk you need to download the Fiwix Media
Setup. Then insert a floppy disk into the drive and type the following:

make floppy

If you only want to update an existing floppy disk with a newer or modified
kernel version, then type the following:

make floppy_update


If you don't have a floppy drive but a bootable CD-ROM IDE/ATA drive, you can
create your own Fiwix Installation CD-ROM by using your current operating system
(i.e., GNU/Linux). To do this, you might want to use the scripts and tools that
come with the Fiwix Media Setup archive. 

The scripts to create such bootable images cannot be executed under Fiwix
because they need support for the loop device and the ISO9660 creation tools.


INSTALLING
===============================================================================
Please keep in mind that this is a kernel in its very early stages and may well
have serious bugs and broken features which have not yet been identified or
resolved.

Let me repeat that.

Please keep in mind that this is a kernel in its very early stages and may well
have serious bugs and broken features which have not yet been identified or
resolved.

                        *****************************
                        *** USE AT YOUR OWN RISK! ***
                        *****************************


You can proceed to install the FiwixOS on a hard disk either booting from the
Live CD-ROM or from a floppy. If you chosen the latter, you will also need the
Live CD-ROM inserted in order to install the packages that form all the system
environment.

The minimal requirements to use Fiwix are as follows:

 - Standard IBM PC-AT architecture.
 - i386 processor or higher.
 - 3MB of RAM memory (128MB recommended).
 - IDE/ATAPI CD-ROM or floppy disk (3.5", 1.44MB).
 - 500MB IDE hard disk (1GB recommended).

Let the system boot either from a CD-ROM or floppy, and when you are ready
just type:

install.sh


Happy hacking.

--
Copyright (C) 2018-2020, Jordi Sanfeliu.
https://www.fiwix.org

/* [previous][next][first][last][top][bottom][index][help] */