Commit Graph

26 Commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen 98a87fa1e5 Rename Sortix kernel directory to kernel. 2014-03-01 14:37:39 +01:00
Jonas 'Sortie' Termansen 2302350d78 Remove <sortix/kernel/platform.h>. 2013-12-17 14:30:45 +01:00
Jonas 'Sortie' Termansen 9bb2ea78ac Remove obsolete PC-Speaker sound driver. 2013-12-17 14:30:43 +01:00
Jonas 'Sortie' Termansen 04f797490d Add clocks for process and child execute and system time. 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen 5da12519cd Maintain recursive process execution and system time. 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen 1c64a7fda1 Maintain process execution and system time. 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen 1bc470624f Refactor kernel process.h and thread.h headers. 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen df5deac29b Add support for per-process timers. 2013-12-17 14:30:33 +01:00
Jonas 'Sortie' Termansen 193b76f8cb Refactor scheduler API. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen 9ba7f26bf0 Refactor kernel time API and add timespec API. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen 5424760719 Refactor kernel interrupt API. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen 2ce76e3876 Refactor system call API. 2013-12-17 14:30:26 +01:00
Jonas 'Sortie' Termansen 90036ca6a8 Update copyright headers of old files to the current format. 2013-12-17 14:30:23 +01:00
Jonas 'Sortie' Termansen 00869bcdc1 The PIC can now be deprogrammed and reprogrammed. 2012-05-26 14:00:24 +02:00
Jonas 'Sortie' Termansen db79994e64 Refactored all the sortix headers into a include directory.
Also got rid of trailing white space. That corrupted .git/.

Big ass-commit because of recovered .git directory.
2012-03-22 00:52:29 +01:00
Jonas 'Sortie' Termansen 35fc0f6dfe Removed the old unused interrupt 177. 2012-01-15 19:00:05 +01:00
Jonas 'Sortie' Termansen 93fb66ff90 Refactored Interrupt handlers to provide a user pointer. 2012-01-15 18:32:42 +01:00
Jonas 'Sortie' Termansen 854d9b171a uptime(2) now reports usecs instead of msecs. 2011-12-04 21:27:21 +01:00
Jonas 'Sortie' Termansen 8c146f14c0 Added uptime(1). 2011-11-28 16:29:53 +01:00
Jonas 'Sortie' Termansen 446616b3aa Improved JSVM compabillity. 2011-11-20 15:58:42 +01:00
Jonas 'Sortie' Termansen 2afe9d1fd6 Implemented the fork() system call and what it needed to work properly.
This commit got completely out of control.

Added the fork(), getpid(), getppid(), sleep(), usleep() system calls, and
aliases in the Maxsi:: namespace.

Fixed a bug where zero-byte allocation would fail.

Worked on the DescriptorTable class which now works and can fork.

Got rid of some massive print-registers statements and replaced them with
the portable InterruptRegisters::LogRegisters() function.

Removed the SysExecuteOld function and replaced it with Process::Execute().

Rewrote the boot sequence in kernel.cpp such that it now loads the system
idle process 'idle' as PID 0, and the initization process 'init' as PID 1.

Rewrote the SIGINT hack.

Processes now maintain a family-tree structure and keep track of their
threads. PIDs are now allocated using a simple hack. Virtual memory
per-process can now be allocated using a simple hack. Processes can now be
forked. Fixed the Process::Execute function such that it now resets the
stack pointer to where the stack actually is - not just a magic value.
Removed the old and ugly Process::_endcodesection hack.

Rewrote the scheduler into a much cleaner and faster version. Debug code is
now moved to designated functions. The noop kernel-thread has been replaced
by a simple user-space infinite-loop program 'idle'.

The Thread class has been seperated from the Scheduler except in Scheduler-
related code. Thread::{Save,Load}Registers has been improved and has been
moved to $(CPU)/thread.cpp. Threads can now be forked. A new CreateThread
function creates threads properly and portably.

Added a MicrosecondsSinceBoot() function.

Fixed a crucial bug in MemoryManagement::Fork().

Added an 'idle' user-space program that is a noop infinite loop, which is
used by the scheduler when there is nothing to do.

Rewrote the 'init' program such that it now forks off a shell, instead of
becoming the shell.

Added the $$ (current PID) and $PPID (parent PPID) variables to the shell.
2011-11-01 01:00:20 +01:00
Jonas 'Sortie' Termansen cc61176e5b Restored support for JSSortix using very ugly hacks. :( 2011-09-08 11:10:41 +02:00
Jonas 'Sortie' Termansen 3859e1f566 Refactored interrupt system and got rid of old not-mine code. 2011-09-07 18:45:07 +02:00
Jonas 'Sortie' Termansen c157e65352 Removed lots of deprecated suff! 2011-09-06 19:51:47 +02:00
Jonas 'Sortie' Termansen 6ae297d088 Ugly hacks to restore support for Sortix on real hardware. 2011-08-28 16:59:07 +02:00
Jonas 'Sortie' Termansen 9b79673dcb Initial version of Sortix. 2011-08-05 14:25:00 +02:00