summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md135
1 files changed, 59 insertions, 76 deletions
diff --git a/README.md b/README.md
index 056a5be..06ca753 100644
--- a/README.md
+++ b/README.md
@@ -3,31 +3,50 @@ Welcome to FoolOS
![FoolOS Logo](https://gitweb.softwarefools.com/?p=miguel/fool-os.git;a=blob_plain;f=img/logo.png;hb=HEAD)
-Multiboot
----------
-The FoolOS Kernel is following the Multiboot Specification (0.6.96)
-providing a multiboot header and the entry point _start().
+Abstract
+--------
+Welcome to the Home of the most useless operating system.
-This in turn calls the C function kernel_main().
+Quick-start
+-----------
+Simply boot from the FoolOS.iso in your favourite emulator or
+_dd_ to an USB stick and test on real hardware.
-Disclaimer
-----------
+Features
+--------
-THIS IS A WORK IN PROGRESS.
+* Booting with Multiboot (grub)
+* 32-bit protected mode
+* VESA and EGA-standard text-mode
+* Logging to COM1
+* Parsing ACPI and Multiboot Data (partly)
+* Symmetrical Multiprocessing with LAPIC and IOAPIC
+* APIC and PIT Timers
+* Seperate GDT and IVT on each CPU
+* Paging / Virtual Memory
+* RAM image (ext2 read-only)
+* VESA Framebuffer with fallback to a text-only terminal
+* Standard streams (stdin/stdout/stderr)
+* Mouse and Keyboard
+* Multithreading & Multitasking
+* Kernel and Userspace Tasks (ring 0/ring 3)
+* CPU Private Memory
+* Superfast Task Scheduler
+* Newlib C library for Userspace
+* ELF binaries
+* IRQ Handling Framework
+* Spinlocks
+* Simple Shell
+* PCI bus scanning
-This is a simple and useless "operating system", with a very basic set
-of features. It is the fruit of my fundamental explorations of the x86
-architecture and operating system design.
+_Please note that most features are only very rudimentary and mostly buggy._
-Copyright M.Idziorek 2014-2015,2018 <m.i@gmx.at> unless stated otherwise.
+Multiboot
+---------
+The FoolOS Kernel is following the Multiboot Specification (0.6.96)
+providing a multiboot header and the entry point _start().
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+This in turn calls the C function kernel_main().
Prequisites
-----------
@@ -45,14 +64,10 @@ NEWLIB
https://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz
https://ftp.gnu.org/gnu/automake/automake-1.11.6.tar.gz
-Usage
------
-Use the FoolOS.iso in your favourite emulator or `dd` to an usb stick
-and test on real hardware.
Supported Platforms
-------------------
-TODO: update/recheck
+__TODO: update/recheck__
FoolOS is tested/developed on the following emulators/machines
@@ -64,69 +79,37 @@ FoolOS is tested/developed on the following emulators/machines
* Q6600 on Asus p5n32-e sli plus (Desktop PC)
* 4790K on Asus (Desktop PC)
-Features
---------
-
-Please note that most features are only very rudimentary and mostly buggy.
-
-* Booting with Multiboot (grub)
-* 32-bit protected mode
-* VESA and EGA-standard text-mode
-* Logging to COM1
-* Parsing ACPI and Multiboot Data (partly)
-* Symmetrical Multiprocessing with LAPIC and IOAPIC
-* APIC and PIT Timers
-* Seperate GDT and IVT on each CPU
-* Paging / Virtual Memory
-* RAM image (ext2 read-only)
-* VESA Framebuffer with fallback to a text-only terminal
-* Standard streams (stdin/stdout/stderr)
-* Mouse and Keyboard
-* Multithreading & Multitasking
-* Kernel and Userspace Tasks (ring 0/ring 3)
-* CPU Private Memory
-* Superfast Task Scheduler
-* Newlib C library for Userspace
-* ELF binaries
-* IRQ Handling Framework
-* Spinlocks
-* Simple Shell
-* PCI bus scanning
-
-Discontinued Features
----------------------
-
-* Floppy Disk Driver
-* Custom Bootloader (2 stages)
-
Todos
-----
+* Unit Testing
* Mouse & KB processing in seperate task.
* Kernel Stuff Reentrancy & Newlib Reeentrancy Struct
-* Unit Tests
* Ethernet driver E1000 / NS2000 & Networking stack (ipxe network drivers?)
* Porting (ncurses, gcc, binutils, vim, apache...)
* Posix getdents
* GCC optimizations (break kernel?)
* Writing to ext2 RAM-image
-* Mutes
+* Mutexes
* Flush TLB
* GUI / Window Manager (update\_rect, etc..)
-REFERENCES
-==========
-
- http://www.brokenthorn.com/Resources/OSDev17.html
- http://www.jamesmolloy.co.uk/tutorial_html/9.-Multitasking.html
- http://pdos.csail.mit.edu/6.828/2011/labs/lab6/
- http://pdos.csail.mit.edu/6.828/2011/xv6.html
- http://www.nongnu.org/ext2-doc/
- http://www.osdever.net/tutorials/view/multiprocessing-support-for-hobby-oses-explained
- http://forum.osdev.org/viewtopic.php?f=1&t=10944
- http://wiki.osdev.org/Virtual_8086_Mode
- http://wiki.xomb.org/index.php?title=ACPI_Tables
- http://wiki.osdev.org/Hosted_GCC_Cross-Compiler
- https://sourceware.org/newlib/
- and many many more...
+Disclaimer
+----------
+
+THIS IS A WORK IN PROGRESS.
+
+This is a simple and useless "operating system", with a very basic set
+of features. It is the fruit of my fundamental explorations of the x86
+architecture and operating system design.
+
+Copyright M.Idziorek 2014-2015,2018 <m.i@gmx.at> unless stated otherwise.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.