Skip to content

gp7485451/seakernel

 
 

Repository files navigation

				SeaKernel
A simple unix-like kernel designed for simplicity and speed. In it's 
current iteration, it is a UNIX-like monolithic kernel with loadable module
support.

Written by Daniel Bittman (dbittman.github.io).

Features Overview
-----------------
Some primary features include:
 * Kernel-level threading support (incomplete)
 * SMP support
 * Multiprocessor scheduling (preemptive)
 * Unix-like syscalls and a standard C library
 * Loadable and unloadable modules
 * ATA hard drives
 * AHCI controller (incomplete)
 * ext2 file systems
 * ELF binaries
 * user-mode protections
 * ix86 processors (32-bit and 64-bit)
 * AES-NI
 * RDRAND
 * VT-100 like terminal

History
-------
SeaKernel was started in 2008 as a hobby, and went through several
different iterations and re-writes until its current iteration, which
was started in late 2011. Since then, it has seen an increase in 
complexity and features.

Usage Instructions
------------------
You need to have a cross compiler installed (typically i586-pc-seaos-gcc or
x86_64-pc-seaos-gcc) to build the kernel. This is built automatically by the
SeaOS userspace system, available on github (dbittman/sea). After initializing
the kernel will try to run a script in a ramdisk (sh /preinit.sh). The ramdisk
should provide a minimum of a shell and the init script.

Build Instructions
------------------
Building is handled via gmake (make). The available targets are:
 - deps: generate Dependency information for the build system
 - skernel: build the kernel (requires deps to have been built)
 - modules: build all configured modules
 - initrd.img: build the initial ram disk
 - kernel: skernel, modules, and initrd.img
 - config: run the configuration system (interactive)
 - defconfig: generate the default configuration
 - clean: clean compiled files
 - distclean: clean everything
 - doc: generate documentation into human-readable format(s)
 - all: deps and kernel
 - install: install the kernel on a SeaOS system

Generally, a good order for this would be: make config all

Special Thanks
--------------
SSRC at UC Santa Cruz (http://www.ssrc.ucsc.edu/)
#osdev on Freenode
forums.osdev.org, and wiki.osdev.org

About

Modular kernel built for simplicity

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 94.9%
  • C++ 2.1%
  • Assembly 2.0%
  • Other 1.0%