All Projects → ringgaard → sanos

ringgaard / sanos

Licence: other
Sanos operating system kernel

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
assembly
5116 projects
Makefile
30231 projects
shell
77523 projects
objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to sanos

Frosted
Frosted: Free POSIX OS for tiny embedded devices
Stars: ✭ 194 (+252.73%)
Mutual labels:  kernel, operating-system
Polaris
A WIP 64-bit UNIX-like kernel
Stars: ✭ 72 (+30.91%)
Mutual labels:  kernel, operating-system
Eduos Rs
A teaching operating system written in Rust
Stars: ✭ 210 (+281.82%)
Mutual labels:  kernel, operating-system
Cyjon
A simple, clean code, multi-tasking operating system written in pure assembly language for 64-bit processors from the AMD64 family.
Stars: ✭ 184 (+234.55%)
Mutual labels:  kernel, operating-system
tinyos
An UNIX-like toy operating system runs on x86 CPU
Stars: ✭ 47 (-14.55%)
Mutual labels:  kernel, operating-system
Unikraft
Unikraft is an automated system for building specialized POSIX-compliant OSes known as unikernels. (Core repository)
Stars: ✭ 183 (+232.73%)
Mutual labels:  kernel, operating-system
CPL-1
Operating system in C written for fun and glory
Stars: ✭ 33 (-40%)
Mutual labels:  kernel, operating-system
Zen
Experimental operating system written in Zig
Stars: ✭ 177 (+221.82%)
Mutual labels:  kernel, operating-system
MellOs
Minimal, collaboratively written kernel
Stars: ✭ 219 (+298.18%)
Mutual labels:  kernel, operating-system
chaos-2
A hand-made SMP-aware kernel
Stars: ✭ 20 (-63.64%)
Mutual labels:  kernel, operating-system
biefircate
Running x86-16 or x86-32 code from x86-64 UEFI; _very experimental_ • mirror of https://gitlab.com/tkchia/biefircate • developer notes at https://gitlab.com/tkchia/biefircate/-/blob/main/doc/NOTES.asciidoc
Stars: ✭ 47 (-14.55%)
Mutual labels:  kernel, operating-system
Macaron
A sweet hobby made operating system written in C++ for x86 CPUs with GUI
Stars: ✭ 34 (-38.18%)
Mutual labels:  kernel, operating-system
Pebble
Microkernel and userspace written in Rust exploring modern ideas
Stars: ✭ 184 (+234.55%)
Mutual labels:  kernel, operating-system
Libhermit
HermitCore: A C-based, lightweight unikernel
Stars: ✭ 190 (+245.45%)
Mutual labels:  kernel, operating-system
Pluto
An x86 kernel written in Zig
Stars: ✭ 172 (+212.73%)
Mutual labels:  kernel, operating-system
Manticore
Manticore is a research operating system, written in Rust.
Stars: ✭ 234 (+325.45%)
Mutual labels:  kernel, operating-system
Synestiaos
The Synestia Operating System
Stars: ✭ 159 (+189.09%)
Mutual labels:  kernel, operating-system
Willos
💾 A minimal kernel (just a hobby, won't be big and professional). // Work In Progress
Stars: ✭ 163 (+196.36%)
Mutual labels:  kernel, operating-system
Cardinal
Operating system designed to be fast and secure.
Stars: ✭ 20 (-63.64%)
Mutual labels:  kernel, operating-system
pranaOS
A unix operating system written from scratch in c that gives support for arm, x86
Stars: ✭ 138 (+150.91%)
Mutual labels:  kernel, operating-system
Sanos Operating System Kernel
-----------------------------

Sanos is an OS kernel for use in PC based server appliances. The kernel
was developed as part of an experiment on investigating the feasibility
of running java server applications without a traditional operating 
system only using a simple kernel.

Sanos is open source under a BSD style license. Please see the COPYING
file for details. Sanos can be downloaded from www.jbox.dk.


  -- Michael Ringgaard (http://www.jbox.dk)

Features
--------

 - Minimalistic no nonsense application server operating system kernel.
 - Open Source (BSD style license).
 - Runs on standard PC hardware.
 - Simple installation.
 - 32-bit protected mode.
 - Interrupt driven.
 - Multitasking.
 - Single address space.
 - Kernel protection.
 - Virtual memory.
 - PE dynamically loadable modules (standard EXE/DLL format).
 - Both kernel and user modules.
 - Low memory footprint (less than 512 KB RAM)
 - Lightweight
 - Embedding support with PC104 and Flash devices
 - Self configuring (PCI, PnP & DHCP support)
 - TCP/IP networking stack with BSD socket interface
 - SMB file system support
 - Very efficient multithreading
 - Written in C (98%) and x86 assembler (2%)
 - Development using Microsoft Visual C.
 - Remote source level debugging support (windbg)


Supported hardware
------------------

 - Standard PC architecture
 - Minimum 2MB RAM (Maximum 4GB RAM)
 - Intel IA-32 and compatible processors (486 and Pentium)
 - IDE disks (PIO and UDMA mode)
 - IDE cdrom (PIO mode)
 - Floppy disks (3½" 1.44MB)
 - Keyboard (US and DK)
 - Text mode video
 - Serial ports (8250, 16450, 16550 and 16550A)
 - Supported network interface cards:
    - 3Com 3C905
    - Intel EtherExpress Pro/100 (i82557/558/559 based boards)
    - RealTek 8139 and compatible
    - SiS 900 and compatible
    - Digital "Tulip" Ethernet card (DEC 21*4*-based chips)
    - AMD PCNET32 and compatible
    - Novell NE2000 (DP8390) and compatible

Installing sanos
----------------

In order to install sanos you first need to make a boot disk. Either 
download the sanos-bin-x.x.x.zip file from www.jbox.dk or build the
source code from sanos-src.x.x.x.zip. Unzip the files into a directory
(e.g. c:\sanos) and go to the build directory and execute the mkbootdisk
batch script:

  c:\sanos> mkbootdisk

This makes a sanos.flp file in the img directory. This file can be
written to a blank floppy disk using the mkfloppy utility found in 
the tools directory:

  c:\sanos> win\tools\mkfloppy a: win\img\sanos.flp

Boot your computer using the disk. Remember to set Floppy Disk as your
first boot device in your BIOS setup.

The default installation is set up to use DHCP to obtain TCP/IP settings
from a DHCP server. If you do not have a DHCP server on your network you
can either boot without network or manually configure network.

To boot without network remove the following section from os.ini before
building the bootdisk:

  [netif]
  eth0

To configure your network manually change the [netif] section to something
like:

  [netif]
  eth0:ip=192.168.123.5,gw=192.168.123.1,mask=255.255.255.0

Booting sanos from floppy will not install any files on your harddisk. 

  *************************************************************
  * WARNING: Running the setup program will destroy all files *
  * on the first partition of the primary disk.               *
  * DO NOT DO THIS UNLESS YOU KNOW WHAT YOU ARE DOING !!!     *
  *************************************************************

If you want to install sanos on the harddisk type:

  \$ setup

at the shell prompt after sanos has started. This will install sanos on the first 
partition of the primary harddisk. After the setup program completes remove the
floppy and boot the computer. Now sanos will boot from the harddisk.


Contributions to sanos
----------------------

The sanos kernel is written by Michael Ringgaard

The pcnet32 driver is written by Søren Gjesse

The heap allocator is a port of dlmalloc by Doug Lea

The TCP/IP network stack is a port of lwIP by Adam Dunkels

The DHCP module is a port of the lwIP DHCP module by Leon Woestenberg

The DNS resolver is a port of ISC BIND lwres

The kernel timer implementation is a port of Finn Arne Gangstads kernel timer implementation

The tulip, rtl8139, eepro100, and sis900, and tulip network drivers are ported from Linux (Donald Becker)

The win32 exception handling has been ported from WINE (Turchanov Sergey, Alexandre Julliard, and Jon Griffiths)

The math assembler routines have been ported from Al Maromaty's free C Runtime Library

The random device driver has been ported from Linux (Theodore Ts'o)

The inflate decompression routines has been ported from zlib (Jean-loup Gailly and Mark Adler)

The FTP daemon is derived from Troll FTP server (Arnt Gulbrandsen)

The regex library has been ported from Henry Spencer's regex libray

The C compiler has been ported from Tiny C (Fabrice Bellard)

The assembler has been ported from NASM (Julian Hall et al.)

Bug fixes and uk key binding by Thierry Supplisson

The shell parser has been derived from software contributed to Berkeley by Kenneth Almquist

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].