Commit Graph

493 Commits

Author SHA1 Message Date
9d318d50aa Use TRY in MMU.cpp 2022-11-16 20:37:41 +01:00
2c9329928c Replace page_size (function) with ARCH_PAGE_SIZE (constant) 2022-11-16 20:37:32 +01:00
30ac95bcf8 Use usize/isize instead of (s)size_t
Since we're using Rust-style integer types already, why not go all in?
2022-11-16 20:30:34 +01:00
7fc5a6b753 Make kernel rodata and data not executable 2022-11-16 20:02:04 +01:00
7f15ba0ac5 Add some interrupt handling 2022-11-16 17:37:18 +01:00
df8666fd73 Remove unneeded label 2022-11-15 20:47:50 +01:00
bb46cd890b Add GDT and IDT setup and loading + NX if supported 2022-11-15 20:41:59 +01:00
c9feb11366 Introduce a check() method (like assert() but always on) 2022-11-15 19:36:50 +01:00
c319336e3d Add a CPU interface 2022-11-15 19:10:32 +01:00
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