Menu

Tree [r679] /
 History

HTTPS access


File Date Author Commit
 bin 2009-06-19 sadko4u [r619] Synchronization commit
 bootload 2008-09-22 sadko4u [r378] Small Patches for future disk support...
 exe2bin 2008-10-30 sadko4u [r492] Updated makefiles.
 licenses 2009-06-22 sadko4u [r621] Synchronization commit
 media 2008-09-29 sadko4u [r402] Shortened codepage names.
 rawmake 2008-10-30 sadko4u [r492] Updated makefiles.
 rawrite2 2007-02-07 sadko4u [r2] First Release version
 scripts 2009-06-30 sadko4u [r625] Synchronization commit
 xload 2009-06-19 sadko4u [r619] Synchronization commit
 xskernel 2010-05-18 sadko4u [r679] Synchronization commit
 xsmake 2008-10-30 sadko4u [r492] Updated makefiles.
 CHANGELOG 2009-09-26 sadko4u [r651] Synchronization commit
 README 2009-12-18 sadko4u [r672] Synchronization commit
 bochs.sh 2009-11-30 sadko4u [r666] Synchronization commit
 build.bat 2009-04-08 sadko4u [r584] Synchronization commit
 build.sh 2009-04-08 sadko4u [r584] Synchronization commit
 clear.sh 2009-02-15 sadko4u [r560] Cleaning script updates.
 floppy.bat 2008-11-04 sadko4u [r508] Whoops. Small patch.
 floppy.sh 2008-11-04 sadko4u [r508] Whoops. Small patch.
 genkernel.bat 2008-10-20 sadko4u [r459] System updates.
 genkernel.sh 2008-10-20 sadko4u [r459] System updates.
 qemu.bat 2009-06-19 sadko4u [r619] Synchronization commit
 qemu.sh 2009-11-29 sadko4u [r665] Synchronization commit
 utils.bat 2008-10-28 sadko4u [r480] Build scripts update.
 utils.sh 2008-10-28 sadko4u [r480] Build scripts update.

Read Me

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                ***************************************                     //
//              ***                                     ***                   //
//             ***  XSystem Kernel Project - XSystem OS  ***                  //
//              ***                                     ***                   //
//                ***************************************                     //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//   Authors:                                                                 //
//     Sadovnikov Vladimir (aka SadKo)                                        //
//                                                                            //
//   Copyright:                                                               //
//     (C) XSystem Kernel Team, 2008                                          //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

OVERVIEW
-------------------------

  This is a 32-bit operating system project compiled using Open Watcom C++.
  
  Current features:
    + Object-oriented kernel source code.
    + Virtual device common class interface implementation.
    + Virtual memory support (paging, no swap, no separated address spaces).
    + Interrupt handlers class interface implementation.
    + 32-bit flat-memory addressing (4GB address space).
    + Disk cache support.
    + Floppy disk driver integration.
    + Floppy/Flash disk drive loader.
    + Kernel can be generated on both Linux and Windows platforms.
    + Multitasking support (using hardware/software (configured) task switch).
    + Supports different protection levels - rings 0 and 3.
    + System calls (via Interrupt Gate).
    + Local Descriptor Table (LDT) for 0x7:0 system call.
    + FPU, MMX/MMX2 & SSE/SSE2/SSE3/SSE4.x task switching support.
    + GNU GCC tools cross-compiling.
    
  Experimental features:
    + ATA driver (PIO mode read support (CHS, LBA28, LBA48)).
    + FAT 12/16/32 file system integration (tested only on FAT12).
    + PCI driver (reading&writing configuration supported).
    + PS/2 mouse support (problems with emulated by BIOS USB mouse).
    + RealTEK 8139/8139A/8139B/8139C/8139C+ card support (experimental).
    + SMP multitasking support by scheduler (experimental).
    + Future SWAP model.

  Integrated devices (device file system):
    + APIC devices (/dev/apic/local, /dev/apic/timer).
    + ATA devices (/dev/ata).
    + CMOS & RTC driver devices (/dev/cmos, /dev/rtc).
    + CPU identification devices (/dev/cpuid).
    + DMA controller (/dev/dma).
    + Keyboard driver (/dev/kbc).
    + PCI device (/dev/pci). 
    + PS/2 mouse devices (/dev/mouse).
    + Programmable Interrupt Controller (PIC) driver (/dev/pic).
    + Special devices (/dev/null).
    + Terminal driver (/dev/term).
    + Text screen driver (/dev/con).
    + Timer device (/dev/timer).

  Plans to the future releases:
    - GNU GCC kernel cross-compiling.
    - CD/DVD boot loader.
    - Full APIC (local, I/O and additional devices) support.
    - ATAPI driver support.
    - EXT2 file system support.
    - ISO 9660 file system support.
    - PE-format Application loading support.
    - ELF-format Application loading support.
    - Command shell.
    - Demo applications.
    - Full SWAP mechanism support.
    - Window Manager.
    - Standart C/C++ Library.
  
PROJECT TREE
-------------------------

The project tree contents paths:
    - bootload:
        Primary boot loaders for several drives and file systems. Searches for
        XLOAD.COM in root directory, loads it to memory and starts.
    - exe2bin:
        Utility for creating 16-bit raw binary files from MS-DOS EXE files.
    - licenses:
        All licenses that are used to develop this project.
    - rawmake:
        Utility to make disk raw image file with filesystem. Supported filesystems
        are FAT12 and FAT16 now.
    - rawrite2:
        Utility for Windows for writing image files on floppy drives.
    - scripts:
        Kernel configuring & building scripts.
    - xload:
        XSystem Secondary Loader. Loads kernel image to memory and starts it.
        Uses BIOS disk service and unreal mode to use memory greater than 1 MB.
    - xskernel:
        XSystem Kernel. The main part of the project.
    - xsmake:
        Self-developed make utility (interpreter). 

BUILDING
-------------------------

  For building XSystem this software is required:

    Windows:
      + Open Watcom 1.7 or higher (http://www.openwatcom.org/).
      + FASM for Windows 1.61 or higher (http://flatassembler.net/).
      + Standart Windows command interpreter (http://www.microsoft.com/).
    
    Linux:
      + Open Watcom 1.7 or higher (http://www.openwatcom.org/).
      + FASM for Linux 1.61 or higher (http://flatassembler.net/).
      + BASH Interpreter (http://bash.org.ru/ ;) ).

  Before building operating system you must be able that all required software
is installed and works correctly.
  To build kernel and utilities follow these steps:

    Windows:
      + Make sure that you environment variable WATCOM is set.
      + Make sure that your PATH environment variable contents reference to
          Watcom binnt directory.
      + Make sure that your PATH environment variable contents reference to
          Flat Assembler directory.
      + Check that scripts\setvars.bat correctly defines environment variables.
      + Run build.bat.
      + Run floppy.bat if you want to write XSystem image on floppy disk. You
          must insert a floppy disk first.
    
    Linux:
      + Make sure that you environment variable WATCOM is set.
      + Make sure that your PATH environment variable contents reference to
          Watcom binl directory.
      + Make sure that your PATH environment variable contents reference to
          Flat Assembler directory.
      + Check that scripts/setvars.sh correctly defines environment variables.
      + Run build.sh.
      + Run floppy.sh if you want to write XSystem image on floppy disk. Be
          able that you have permissions for writing /dev/fd0 device and floppy
          disk is inserted into floppy drive.

COPYING
-------------------------

  See directory 'licenses' to learn out more source code license agreements.

  All copying agreements are divided on three parts:
    - All utilities source code for generating kernel is provided under terms
        of BSD license.
    
    - Kernel soure code is provided under terms of LGPL 2.1 license.
    
    - Third-party open source code with it's project-specific modifications
        is licensed under it's original source license aggreements that are
        placed into 'licenses' directory. These licenses are:
        - OpenSolaris license 1.0;
        - OpenWatcom Public License 1.0.
  
CONTACTS
-------------------------

If you have some questions or problems you can contact us:
    http://xskernel.org/
    mailto:team@xskernel.org
    
    You can mail from GMAIL, Yahoo, Mail.ru, Yandex.ru, Rambler.ru, but
      there is no warranty that other mail services are not banned on 
      XSystem Kernel Project's mail server. 

The online documentation and forum is available at:
    http://wiki.xskernel.org/
    http://forum.xskernel.org/

You can also support our poject via donation:
    http://xskernel.org/?pg=contacts

CREDITS
-------------------------

Copyright XSystem Kernel Team, 2008.
Members:
    Sadovnikov Vladimir (St. Petersburg, Russia)
        e-mail: xskernel@mail.ru
        ICQ:    251081467
        jabber: sadovnikov@jabber.ru
        blog:   http://sadko4u.livejournal.com/

Also great thanks to:
    Andrey Kiselev (Ivanovo, Russia),
    Andrey Valyaev (Moscow, Russia),
    Dyatlov Vitaliy (Moldova, Tiraspol),
    Kate Bereznyakova (Vologda, Russia),
    Mikae mika0x65 (Israel),
    Oleg Fedorov (St.Petersburg, Russia),
    Oleg Rybakov (Tambov, Russia),
    Pavel Olhov (L'viv, Ukraine),
    Sergey Lebedkin (Kiev, Ukraine),
    Vladimir Suhanov (Magnitogorsk, Russia).