x86 OS built from scratch
A Unix-like kernel for x86-64. Pipes, signals, virtual terminals, job control. Boots in QEMU.
Pipes work: ps | grep shell. File system is RAM-based with VFS. Signals handle Ctrl+C properly. Four virtual terminals via Alt+F1-F4. Background jobs with &. I/O redirection. Command history and tab completion.
64-bit long mode with 4-level paging. Preemptive multitasking via timer-based scheduler. Linux-style syscalls (18+). Per-process virtual memory and file descriptors. Ring 0/3 separation.
# Start the enhanced shell
$ /bin/shell_v2
# Pipe example - filter process list
$ ps | grep shell
2 1 RUN shell_v2
# File operations
$ echo "Hello SimpleOS" > test.txt
$ cat test.txt
Hello SimpleOS
$ ls
hello.txt
readme.txt
test.txt
# Background jobs
$ stress &
[1] 25
$ jobs
[1] Running stress &
$ fg 1
# Virtual terminals
Press Alt+F2 # Switch to terminal 2
Press Alt+F1 # Back to terminal 1
# Tab completion
$ he<TAB> # Completes to "help"
$ e<TAB> # Shows: echo exit
# Signal handling
$ stress
Press Ctrl+C # Interrupt the process
Requires x86_64-elf-gcc cross-compiler, xorriso, and QEMU.
make # Build ISO
make run # Boot in QEMU
Process: fork, exec, exit, wait, getpid, ps
I/O: read, write, open, close, pipe, dup2
FS: stat, mkdir, readdir
Memory: sbrk
Other: sleep, kill
x86 OS built from scratch
A Unix-like kernel for x86-64. Pipes, signals, virtual terminals, job control. Boots in QEMU.
Pipes work: ps | grep shell. File system is RAM-based with VFS. Signals handle Ctrl+C properly. Four virtual terminals via Alt+F1-F4. Background jobs with &. I/O redirection. Command history and tab completion.
64-bit long mode with 4-level paging. Preemptive multitasking via timer-based scheduler. Linux-style syscalls (18+). Per-process virtual memory and file descriptors. Ring 0/3 separation.
# Start the enhanced shell
$ /bin/shell_v2
# Pipe example - filter process list
$ ps | grep shell
2 1 RUN shell_v2
# File operations
$ echo "Hello SimpleOS" > test.txt
$ cat test.txt
Hello SimpleOS
$ ls
hello.txt
readme.txt
test.txt
# Background jobs
$ stress &
[1] 25
$ jobs
[1] Running stress &
$ fg 1
# Virtual terminals
Press Alt+F2 # Switch to terminal 2
Press Alt+F1 # Back to terminal 1
# Tab completion
$ he<TAB> # Completes to "help"
$ e<TAB> # Shows: echo exit
# Signal handling
$ stress
Press Ctrl+C # Interrupt the process
Requires x86_64-elf-gcc cross-compiler, xorriso, and QEMU.
make # Build ISO
make run # Boot in QEMU
Process: fork, exec, exit, wait, getpid, ps
I/O: read, write, open, close, pipe, dup2
FS: stat, mkdir, readdir
Memory: sbrk
Other: sleep, kill