forked from dbittman/seakernel
-
Notifications
You must be signed in to change notification settings - Fork 0
Modular kernel built for simplicity
License
gp7485451/seakernel
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
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 0
No packages published
Languages
- C 94.9%
- C++ 2.1%
- Assembly 2.0%
- Other 1.0%