Jonas 'Sortie' Termansen
4b1079510b
Execute only programs with an executable bit set.
2016-01-25 17:39:57 +01:00
Jonas 'Sortie' Termansen
2e3d7c45af
Add paging no-execute and write protection support.
...
Enable the NX bit on x86_64 and set if not PROT_EXEC and enable the write
protection mode (CR0.WP) that disables the default behavior where the kernel
is able to write to read-only memory. Fix kernel broken assumptions it can
access read-only memory and take care to never set PROT_KWRITE on user-space
pages unless PROT_WRITE is also set, otherwise user-space will be able to
write to read-only memory.
This achieves X^W in the whole system except for the core kernel itself as
it is currently don't know the purpose of pages when identity mapping the
first 4 MiB.
2016-01-25 17:39:57 +01:00
Jonas 'Sortie' Termansen
ff8b2be515
Implement CLOCK_THREAD_CPUTIME_ID and CLOCK_THREAD_SYSTIME_ID.
2016-01-09 02:28:44 +01:00
Jonas 'Sortie' Termansen
a45b93785c
Fix program loading bugs.
2016-01-08 00:41:20 +01:00
Jonas 'Sortie' Termansen
4b6b06bbc8
Add scram(2).
2015-12-12 22:53:07 +01:00
Jonas 'Sortie' Termansen
fc637c8880
Prevent orphan processes from becoming zombies.
2015-10-28 19:36:33 +01:00
Jonas 'Sortie' Termansen
158716f96a
Fix ctype invocations with wrong domain.
2015-08-11 15:57:56 +02:00
Jonas 'Sortie' Termansen
fffefeba8f
Fix execve(2) keeping program descriptors open.
2015-07-09 19:20:49 +02:00
Jonas 'Sortie' Termansen
9acc74de28
Fix read-only mmap with backing store.
2015-06-27 17:06:33 +02:00
Jonas 'Sortie' Termansen
bb70eef85b
Replace system call array types with pointers.
2015-01-23 14:52:51 +01:00
Jonas 'Sortie' Termansen
ab66b91086
Fix NOTO typo.
2014-12-28 20:18:58 +01:00
Jonas 'Sortie' Termansen
bbf454e164
Rewrite program loader.
2014-12-04 16:14:17 +01:00
Jonas 'Sortie' Termansen
5143f01b0a
Remove sbrk(2).
...
Note: This is an incompatible ABI change.
2014-12-03 23:55:55 +01:00
Jonas 'Sortie' Termansen
ba1e0882ec
Initialize system call table at compile time.
2014-12-03 14:19:49 +01:00
Jonas 'Sortie' Termansen
ba12c1d246
Store loaded programs in special allocations rather than the kernel heap.
2014-11-26 22:27:57 +01:00
Jonas 'Sortie' Termansen
749d123331
Maintain counts of physical frames used for particular purposes.
2014-11-26 22:27:04 +01:00
Jonas 'Sortie' Termansen
f8c5adf20f
Add #! support to execve(2).
2014-11-26 21:14:13 +01:00
Jonas 'Sortie' Termansen
152d768112
Memory efficiently extract the initrd.
2014-11-24 22:32:57 +01:00
Jonas 'Sortie' Termansen
400eb2238f
Refactor process id allocation and accounting.
2014-11-18 20:33:21 +01:00
Jonas 'Sortie' Termansen
25e07a9083
Refactor kernel interrupt and thread register support.
2014-11-18 20:33:21 +01:00
Jonas 'Sortie' Termansen
cef4c8d982
Fix waitpid status copying to user-space.
2014-10-04 17:10:25 +02:00
Jonas 'Sortie' Termansen
c0ad3d8a80
Fix error case in tfork(2).
2014-09-25 17:27:54 +02:00
Jonas 'Sortie' Termansen
e29f0cdd1e
Fix class process constructor forgetting some members.
2014-09-23 20:45:57 +02:00
Jonas 'Sortie' Termansen
6558de636e
Fix tfork(2) not copying signal properties.
2014-09-23 20:45:57 +02:00
Jonas 'Sortie' Termansen
30cd318c17
Implement signals.
...
Note: This is an incompatible ABI change.
2014-07-22 13:25:39 +02:00
Jonas 'Sortie' Termansen
316ed84e60
Fix process constructor not zeroing the user timers.
2014-07-22 13:16:16 +02:00
Jonas 'Sortie' Termansen
b4d494cf8b
Implement thread creation in tfork(2).
2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen
8411dce330
Add kernel uthread support.
2014-07-08 17:41:50 +02:00
Jonas 'Sortie' Termansen
fdcfb1f2da
Handle ELF notes during program load.
2014-07-07 17:52:33 +02:00
Jonas 'Sortie' Termansen
874baffd57
Fix wrongly named system call constants.
2014-06-27 15:49:55 +02:00
Jonas 'Sortie' Termansen
1f72c1637c
Maintain fsbase and gsbase as per-thread registers.
...
Note: This is an incompatible ABI change.
2014-05-29 17:07:42 +02:00
Jonas 'Sortie' Termansen
68d379c605
Fix insecure user-space pointer dereferences in sys_execve.
2014-05-16 16:58:33 +02:00
Jonas 'Sortie' Termansen
4283d90102
Fix memory leak of processes that are not process group leaders.
2014-05-16 14:48:27 +02:00
Jonas 'Sortie' Termansen
da87b6f0aa
Fix troublesome debug assertions in kernel/process.cpp.
2014-03-31 19:47:54 +02:00
Jonas 'Sortie' Termansen
2fe3595feb
Add getumask(2).
2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen
98a87fa1e5
Rename Sortix kernel directory to kernel.
2014-03-01 14:37:39 +01:00