Andreas Kling
68739dc43e
Start working on virtual consoles/TTYs.
...
This is a mess right now, but I'd rather commit as I go.
2018-10-30 13:59:29 +01:00
Andreas Kling
1d4af51250
Add a VFS::absolutePath(InodeIdentifier).
...
This is pretty inefficient for ext2fs. We walk the entire block group
containing the inode, searching through every directory for an entry
referencing this inode.
It might be a good idea to cache this information somehow. I'm not sure
how often we'll be searching for it.
Obviously there are multiple caching layers missing in the file system.
2018-10-28 12:20:25 +01:00
Andreas Kling
e904f193c1
Canonicalize the path used by sh.
...
With a bunch of LibC work to support the feature. LibC now initializes
AK::StringImpl by default. It's now fine to use AK in LibC/Userland! :^)
2018-10-28 09:36:21 +01:00
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
5cfeeede7c
Remove the obsolete "Userspace" stuff.
2018-10-27 00:41:23 +02:00
Andreas Kling
c928b06218
Add a very hackish /proc/PID/stack.
...
It walks the stack and identifies anything that looks like a kernel symbol.
This could be a lot more sophisticated.
2018-10-26 22:33:15 +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
4bd69d4352
Remove old DatBuffer class.
...
(also increase the number of sectors loaded by the bootloader in the
since I just noticed we were at the limit. This is not the ideal way
of doing this.)
2018-10-25 10:50:30 +02:00
Andreas Kling
de7c54545a
Remove age-old IPC stuff that wasn't working anyway.
...
I'll make a fresh start with IPC code when I get there.
2018-10-25 10:39:39 +02:00
Andreas Kling
3676214a62
Remove remains of the old "panel" task.
...
...and grow the console by 1 row! :^)
2018-10-23 15:47:03 +02:00
Andreas Kling
ed2422d7af
Start adding a basic /proc filesystem and a "ps" utility.
2018-10-23 12:04:03 +02:00
Andreas Kling
63764b3a65
Import very modest Userland.
2018-10-22 14:06:22 +02:00
Andreas Kling
bae59609e3
Move kprintf to its own file. It has nothing to do with VGA anymore.
2018-10-22 13:20:35 +02:00
Andreas Kling
a9ca75c98b
Add IRQHandler class that can be subclasses to handle an IRQ.
...
Also move Keyboard to a class implementation using this pattern.
2018-10-22 12:58:29 +02:00
Andreas Kling
a70bfb87d5
Add a Console device and start refactoring screen output.
2018-10-21 21:59:43 +02:00
Andreas Kling
c149d2a8f0
Build ELFLoader into Kernel.
2018-10-18 15:03:10 +02:00
Andreas Kling
77299cf54d
Add basic paging. Only identity maps the bottom 4MB as a start.
2018-10-17 23:13:55 +02:00
Andreas Kling
e0f31d38a2
Add -fno-pic -fno-pie to build flags.
2018-10-17 16:49:30 +02:00
Andreas Kling
39fa1eb2c2
Print the contents of motd.txt on boot.
2018-10-17 12:07:39 +02:00
Andreas Kling
705832f387
List the root directory after mounting /.
...
So cool that it works! It's spewing out a bunch of terminal escape sequences
that the OS console obviously doesn't support, but we'll get there too.
2018-10-17 11:47:14 +02:00
Andreas Kling
d2425495ca
VirtualFileSystem class builds inside Kernel.
2018-10-17 11:40:58 +02:00
Andreas Kling
9171521752
Integrate ext2 from VFS into Kernel.
2018-10-17 10:57:23 +02:00
Andreas Kling
aec8ab0a60
Add the basic character devices to kernel.
2018-10-16 14:33:16 +02:00
Andreas Kling
12e515735b
Add a simple IDEDiskDevice class that implements DiskDevice from VFS.
2018-10-16 14:17:43 +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