78d72c2f0c
Kernel, libc: Add a getdents() system call
...
This is meant to be a low-level interface to implement dirent.h on top of.
2022-10-23 14:03:46 +02:00
20429929dd
InitRD: Bump up the filesystem limits
2022-10-22 17:23:22 +02:00
58ca030711
initrd: warn when failing to register stuff
2022-10-22 17:21:34 +02:00
073c90e948
InitRD: leak an unused pointer so kmalloc() doesn't map memory all the time
2022-10-20 18:49:00 +02:00
b035795eb3
Kernel: Move errno.h and (k)assert.h out of the main include directory
...
This is mostly so IDEs don't pick them up instead of the userspace headers :)
2022-10-19 17:41:23 +02:00
d2e2883a79
Kernel: Make mkdir() accessible to userspace
2022-10-16 17:22:12 +02:00
62d631f1b4
Kernel: Rename assert.h to kassert.h so IDEs pickup the kernel header instead of the userspace one
2022-10-15 12:56:48 +02:00
a198cf8d8d
Add initrd_mkdir to registered directories in the initrd
2022-10-11 18:25:11 +02:00
4aa3da8c12
VFS: Add basic mount(), unmount() and mkdir() functions (not accessible to userspace yet)
2022-10-11 18:23:00 +02:00
1278cec065
VFS: Add a 'type' flag to Nodes, implement EISDIR
2022-10-11 17:48:11 +02:00
1b84c443fe
Merge branch VFS into main
...
Reviewed-on: #10
2022-10-10 18:25:43 +00:00
da84f1713c
InitRD: Use get_blocks_from_size()
2022-10-10 18:45:49 +02:00
bbe7c6e658
VFS: Implement resolve_path and form the initial ramdisk's VFS properly
...
Finally, resolve_path: a function which takes a path (/etc/fstab for example), and walks the VFS:
In this case, it would start with the root FS node, and ask it: "do you have a directory/file named etc?"
The node could say 'yes', 'no', or 'i'm not a directory, I'm a file' (should not be the case for the VFS root, but for the other ones it could be)
If it says yes, we continue and ask the child if it has a file named fstab. Etc...
2022-10-10 18:44:43 +02:00
2be70d0bc1
VFS: Use 64-bit numbers in read()
...
There is no need for any kind of 32-bit compatibility.
2022-10-09 21:30:38 +02:00
b38c52f8c7
more vfs stuff
2022-10-08 21:35:19 +02:00
f3d7e220ac
The beginnings of a VFS implementation!!
2022-10-08 21:22:46 +02:00
8ce58e9e30
Kernel/InitRD: Use %p with printf()
2022-10-08 18:16:55 +02:00
abcf1b6118
Define PAGE_SIZE as 4096 and use it everywhere instead of using 4096 as a magic number
2022-10-08 14:52:28 +02:00
594d79143e
Kernel: enable -Wconversion
2022-10-06 17:13:34 +02:00
8f310dd307
PMM: Map the page bitmap to kernel heap once the PMM and VMM are both initialized
2022-10-04 18:36:09 +02:00
1ecd24f5d6
Kernel: Add SSE support (enable SSE on boot and save context (user tasks only) on task switch)
2022-10-02 18:53:54 +02:00
87cb41e549
Separate the logging stack into toggleable backends, to disable console logging once boot finishes.
2022-10-01 15:35:11 +02:00
53d36be339
Add a much-needed get_blocks_from_size function
2022-10-01 12:13:38 +02:00
3fd1b6773d
Panic: Only dump stack trace if InitRD is initialized
2022-09-25 17:41:34 +02:00
a078a11dde
Move PMM and VMM initialization into MemoryManager::init
2022-09-25 17:38:17 +02:00
3891d0c52e
Rename KernelMemoryManager to MemoryManager
...
Kind of a more catchy name, isn't it?
2022-09-24 21:45:13 +02:00
46b7dab847
Remove RangeAllocator and make a PMM namespace
2022-09-24 21:27:45 +02:00
c3e5251687
Some more userland and font failing
2022-09-23 16:41:43 +02:00
11dd165a8e
Scheduler: add proper support for user tasks (still faults though)
2022-09-22 08:14:04 +02:00
49ddb47ad4
Reorganize structure
2022-09-21 17:56:53 +02:00
d8bfb76eef
Try to make TextRenderer work... still failing
...
I can now safely call try_initialize() in early_init though
2022-09-19 20:17:37 +02:00
86e4fce654
Separate conditions for easier debugging
2022-09-19 19:04:14 +02:00
31460fe148
I.... think I fixed the initrd code?
2022-09-19 17:06:08 +02:00
355ca6ea9f
Change initrd/sys/config
2022-09-15 18:42:59 +02:00
efb28d3258
Randomness and stack protection!!
2022-09-14 18:54:40 +02:00
db4c8e96b8
commit
2022-09-14 17:55:24 +02:00
0cb59ee17f
please work please
2022-09-11 08:23:32 +02:00
f98a45aefe
Updated InitRD to use virtual mappings
2022-09-10 22:15:19 +02:00
6a0cf7cf98
New framebuffer class!!
2022-09-10 18:42:40 +02:00
bd0a24097f
Add a KernelMemoryManager namespace to wrap PMM + VMM
2022-09-06 18:08:15 +02:00
0fbc68ca88
Finish VMM
2022-09-06 13:49:17 +02:00
8bff2ee0f5
Add a RangeAllocator which serves as a physical memory allocator
2022-09-06 13:21:54 +02:00
1b727a66ea
Ready. Set. Go!
2022-09-05 16:13:51 +02:00