Commit Graph

484 Commits

Author SHA1 Message Date
e16324887f MMU: Properly clear flags 2022-11-15 19:10:19 +01:00
3358454833 Add getters for free, used and reserved memory 2022-11-13 16:56:03 +01:00
6a7097c9ec Add variables for the future 2022-11-13 16:54:07 +01:00
ae235e5538 MMU: unmap and remap for x86_64 2022-11-13 16:51:21 +01:00
ba1bf72e1b Remove unused include 2022-11-13 16:32:28 +01:00
d6c56fb512 Mapping finally works!! 2022-11-13 16:31:32 +01:00
4c4f72b865 More MMU stuff, but writing still fails 2022-11-13 15:33:53 +01:00
d148e0aff7 Initialize MemoryManager instead of MMU directly 2022-11-13 14:29:59 +01:00
705c2747de Add memory manager 2022-11-13 14:29:15 +01:00
6b95307b54 Add init 2022-11-13 12:20:53 +01:00
ffbe5260a5 Add Framebuffer stuff 2022-11-13 11:25:15 +01:00
82c2381ac9 Serial printing!! 2022-11-13 10:30:10 +01:00
cf758fdfdc Initial commit :) 2022-11-13 10:09:09 +01:00
42efc21110 Start implementing read and write support in tmpfs
write seems to work fine, read just hangs there, waiting.
2022-11-12 20:11:26 +01:00
046065c533 Fix tmpfs 2022-11-12 19:05:47 +01:00
3451d50a37 Try building a tmpfs, but weird stuff happens 2022-11-12 18:13:41 +01:00
000ffd1fae Scheduler: Handle weird cases when the task we're iterating on is null 2022-11-12 18:12:42 +01:00
37bb3273ce Kernel: Add a C interface to the logging system 2022-11-12 18:12:18 +01:00
511bb7a8c1 Kernel: Make readdir() available in created InitRD directories 2022-11-12 18:11:58 +01:00
fa325072ac Kernel: Add __cxa_atexit and __cxa_finalize 2022-11-12 17:43:57 +01:00
de2451e553 Kernel: Change up the logging in the kernel's PRNG 2022-11-12 12:56:13 +01:00
11ee01f269 Kernel: Remove "checkpoint logging" in main.cpp 2022-11-12 12:55:47 +01:00
5c51b82f6a Kernel: Remove obtain_user_ref and add copy_typed_to and from_user 2022-11-12 12:08:26 +01:00
58fb422161 Kernel: Return a Result in MemoryManager and strdup_from_user 2022-11-12 11:56:40 +01:00
662afad426 Kernel: Add a Result class 2022-11-12 11:30:28 +01:00
559d074ce4 Kernel: Make a more convenient wrapper for basename() and dirname() 2022-11-12 10:39:25 +01:00
4aa3bd3107 Next version! 2022-11-09 17:25:05 +01:00
078f3f5862 Kernel: Add a remainder to refactor the initial ramdisk code 2022-11-09 16:07:49 +01:00
d76af10e70 Kernel: Move initrd into the fs/ folder
It makes more sense to put it in there.
2022-11-09 16:03:16 +01:00
60bd8d9418 Kernel: Add an explanatory comment to the end of _start() 2022-11-09 15:58:00 +01:00
1ea216dfd1 Kernel: Rename assert.h to ensure.h
The macro is named "ensure", the header file should reflect that.
2022-11-09 15:28:35 +01:00
da7ad8da5b Kernel: Show the file location when a check fails 2022-11-09 15:23:59 +01:00
ea94b331fb Scheduler: Use copy_to_user in a few system calls 2022-11-09 15:20:53 +01:00
accf7ee417 libc: Add unimplemented st_nlink field 2022-11-09 11:36:21 +01:00
033c41cbd7 Kernel: Rework the uid/gid system to make it compliant 2022-11-09 09:54:07 +01:00
98da473fdc Run clang-format 2022-11-08 19:07:43 +01:00
054d5a8bb4 Build system: Prettify build 2022-11-08 18:03:43 +01:00
6f72f92493 Kernel: Start preparing for recursive paging 2022-11-08 17:12:59 +01:00
5d94525c7a Kernel: Figure out why a program is misbehaving 2022-11-06 18:12:25 +01:00
44815b08c7 Kernel: Use copy_from_user() and copy_to_user() in read/write
This is huge. Finally, we can do proper reads/writes with invalid addresses, or big buffers.
2022-11-06 15:19:23 +01:00
b2fb740d99 Kernel: Refuse to mkdir any directory named . or .. 2022-11-05 12:09:01 +01:00
b78f6f269d Kernel: Omit displaying KernelHeap's buffer location in the log 2022-11-05 11:59:00 +01:00
9ab3ab7c40 Kernel: Show init's exit status before restarting 2022-11-05 11:56:16 +01:00
b63a9f5ba9 Kernel: Improve strdup_from_user and add copy to and from user
Still a bit funky, that's why we're not using it in read() and write() yet.
2022-11-05 11:54:55 +01:00
67f536cf91 Kernel: Split number-parsing code into a separate file 2022-11-05 10:50:58 +01:00
d0efc106b0 Kernel: Add UBSAN (Undefined Behaviour Sanitizer) 2022-11-05 10:47:18 +01:00
ffcaac0ca3 Kernel: Add validate_user_write() and validate_user_read()
Not at copy_from_user and copy_to_user yet, but an improvement over blindly using physical memory.
2022-11-04 22:46:48 +01:00
cbc2e76082 Remove the .elf suffix from the kernel filename 2022-11-03 20:44:37 +01:00
e5b2641019 Kernel: Enforce W^X when loading executables
From now on, if an executable contains segments that
want to be loaded as both writable and executable,
we refuse and abort with ENOEXEC.
2022-11-03 20:28:54 +01:00
2c08de044f Kernel, libc: Add support for querying the framebuffer's scanline via ioctl() 2022-11-03 20:20:22 +01:00