Andreas Kling
9a71c7759a
Implement loading of linked ELF executables.
...
This took me a couple hours. :^)
The ELF loading code now allocates a single region for the entire
file and creates virtual memory mappings for the sections as needed.
Very nice!
2018-10-27 14:56:52 +02:00
Andreas Kling
3db8d7ae1a
Use Unix::stat for sys$lstat().
2018-10-27 00:29:31 +02:00
Andreas Kling
509e5f9952
Add some basic address validation to syscalls.
...
This is extremely ineffcient, but it doesn't really matter yet.
2018-10-27 00:29:24 +02:00
Andreas Kling
2716a9e2d7
Greatly improve /proc/PID/stack by tracing the ebp frame chain.
...
I also added a generator cache to FileHandle. This way, multiple
reads to a generated file (i.e in a synthfs) can transparently
handle multiple calls to read() without the contents changing
between calls.
The cache is discarded at EOF (or when the FileHandle is destroyed.)
2018-10-27 00:14:24 +02:00
Andreas Kling
1c45b28da6
Add sys$uname() and a /bin/uname utility.
2018-10-26 14:57:26 +02:00
Andreas Kling
dc6f57f19c
Add gettimeofday() syscall and LibC wrappers gettimeofday() and time().
...
This only has second accuracy right now, I'll work out subseconds later.
2018-10-25 17:36:18 +02:00
Andreas Kling
8f941561b4
Add ALWAYS_INLINE macro.
2018-10-22 12:55:59 +02:00
Andreas Kling
f67d695254
More paging stuff.
...
The test userspace process now runs at linear address 0x300000 which is
mapped to a dynamically allocated page from the MemoryManager. Cool!
2018-10-18 13:05:00 +02:00
Andreas Kling
aec8ab0a60
Add the basic character devices to kernel.
2018-10-16 14:33:16 +02:00
Andreas Kling
72bb80a9ae
These changes were lying around uncommitted in the old repo.
...
I'm just gonna commit them without too much thinking and then take
it from there.
2018-10-16 11:06:35 +02:00
Andreas Kling
9396108034
Import the "gerbert" kernel I worked on earlier this year.
...
It's a lot crappier than I remembered it. It's gonna need a lot of work.
2018-10-16 11:02:00 +02:00