Deep OS - A preemptive multitasking unix-like OS, built from scratch
License
jagatsastry/deepos
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
====================== Deep OS - A preemptive multitasking unix-like OS, built from scratch ===================== Authors: Jagat Sastry Pudipeddi Alok Katiyar Following are the features that our project supports: Libc -------- fork, exec, execve, execvpe, wait, waitpid, exit, getpid, open, close, read, opendir, readdir, closedir, sleep , printf, scanf (with multiple arguments), malloc, pwd, sleep Binaries -------- ls, cd, ps, sleep, dsh (shell), ulimit(-Sv) Shell commands/Features ----------------------- help env setenv (used for setting PATH) cd pwd sh (alias for dsh) Relative and absolute filename reference Path based command execution Background process (&) Status bar that mentions uptime, current process, number of process ====================================== Building and Running ===================================== The provided Makefile: 1) builds a kernel 2) copies it into rootfs/boot/kernel/kernel 3) creates an ISO CD image with the rootfs/ contents To boot the system in QEMU, run: qemu-system-x86_64 -curses -cdrom $USER.iso -drive id=disk,file=$USER.img,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 -gdb tcp::NNNN Explanation of parameters: -curses use a text console (omit this to use default SDL/VNC console) -cdrom x.iso connect a CD-ROM and insert CD with x.iso disk -hda x.img connect a hard drive with x.img disk -gdb tcp::NNNN listen for "remote" debugging connections on port NNNN When using the -curses mode, switch to the qemu> console with ESC-2. To connect a remote debugger to the running qemu VM: gdb ./kernel target remote localhost:1234 ==================== License/Attributions ==================== Released under BSD License. This is a hobby/coursework OS and should be used only for learning purposes. The following resources were used in building this OS. Some code snippets were adapted from the following tutorials and existing hobby OSes Bootloader is from the existing FreeBSD source code Online Tutorials ----------------- James Molloy OS dev tutorial - http://jamesmolloy.co.uk/tutorial_html/index.html Brans's Kernel dev tutorial - http://www.osdever.net/bkerndev/Docs/title.htm Ian Jack's kernel dev tutorial - http://www.ijack.org.uk/ Broken Thorn kernel dev tutorial - http://www.brokenthorn.com/Resources/OSDevIndex.html OS Development wiki - http://wiki.osdev.org/Expanded_Main_Page Other OSes ----------------- Geek OS - http://geekos.sourceforge.net/ (tarfs) Shovel OS - https://code.google.com/p/shovelos/ (interrupts) Minix 3 - https://github.com/minix3/minix Books ------------------- Understanding the Linux Kernel, Bovet et al Linux Kernel Development, Robert Love Design and Implementation of Operating Systems, Tanenbaum
About
Deep OS - A preemptive multitasking unix-like OS, built from scratch
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published