Commit Graph

273 Commits

Author SHA1 Message Date
8e6741ebd6 Rename SYS_version to SYS_getversion 2022-10-02 17:25:56 +02:00
c6b044acab ELFLoader: show permissions of loadable segment 2022-10-02 17:10:24 +02:00
3c6c94adda Add a proper syscall() function to unistd.h 2022-10-02 17:02:15 +02:00
83d23ce8fe Correct the syscall ABI 2022-10-02 17:01:46 +02:00
6bacded5cf Update build system 2022-10-02 17:01:30 +02:00
e483f6d1e6 Adjust build scripts to install LibC headers 2022-10-02 12:47:50 +02:00
f8a72f15c8 Adjust build system to be more flexible and to work with the new toolchain 2022-10-02 12:44:32 +02:00
ba52e389a5 Hosted GCC cross-compiler for x86_64-luna!!! 2022-10-02 12:21:02 +02:00
dc0fd428d3 Syscalls return a value, right? 2022-10-02 10:47:59 +02:00
85d4268b01 Hosted Binutils for x86_64-luna 2022-10-02 10:33:34 +02:00
fcf5923cc0 WIP: Add a C Library, let's try to compile a Hosted GCC cross-compiler using this! 2022-10-01 20:59:22 +02:00
c76ecdf07c Moon 0.8-dev 2022-10-01 17:35:10 +02:00
c7f46f96ff Use the new syscalls in init 2022-10-01 17:32:50 +02:00
ac6fdce737 Add 2 new syscalls (sys_version, sys_gettid) 2022-10-01 17:30:31 +02:00
96f53922c9 Write a (kindof) proper init, at least with the capabilities we have right now 2022-10-01 15:54:42 +02:00
ba4806f9d3 Syscall: do not send user programs' output to the serial console 2022-10-01 15:53:55 +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
0e46ea8ada Finally, a text renderer that actually works. We can now see the kernel messages without a serial port :) 2022-10-01 14:27:45 +02:00
cde850258d Don't assume we are located at /bin/init 2022-10-01 13:16:59 +02:00
008bdf505c Rename gfx.cpp to paint.cpp 2022-10-01 13:09:43 +02:00
30411b4b78 Fix hackiness in converting a uint32_t to a Color, by providing a function to do so 2022-10-01 13:08:47 +02:00
03db57bbf9 Sanity checks 2022-10-01 12:32:09 +02:00
66bee86a8b Scheduler: add a load_user_task function that directly loads a file from the initrd 2022-10-01 12:28:32 +02:00
1c4383dea4 Add an apps/ folder and build-system to build userspace apps which can now be loaded from the initrd 2022-10-01 12:17:16 +02:00
9012ccc49e Remove _userspace and move the idle task to assembly 2022-10-01 12:16:30 +02:00
6e6cf5b2b0 Add an ELF Loader!! 2022-10-01 12:15:56 +02:00
53d36be339 Add a much-needed get_blocks_from_size function 2022-10-01 12:13:38 +02:00
e769cb45a7 MemoryManager: add get_page_at and get_pages_at functions to map any physical memory at a fixed virtual address (inverse of get_mapping and get_mappings) 2022-10-01 12:12:50 +02:00
867d312177 Let's try to start parsing ELFs! 2022-09-30 17:43:14 +02:00
87f67b255e Moon 0.7-dev 2022-09-29 20:09:39 +02:00
ef5994e389 Proper userspace program 2022-09-29 20:06:18 +02:00
522d74b65d Add is_user_address and is_kernel_address functions 2022-09-29 19:30:42 +02:00
9716891eff do not fault in the userspace demo >.< 2022-09-29 19:20:31 +02:00
f25014a8ed refine syscalls 2022-09-29 19:17:43 +02:00
46f459337c Interrupts: Remove ensure_handler and use a more reliable way of detecting if we are in a handler 2022-09-29 18:35:51 +02:00
6c036dfe99 Modify the userspace task 2022-09-27 19:51:01 +02:00
63e2b84370 Don't build such a small image 2022-09-26 17:55:16 +02:00
692221dd9e GO FAST WHEEEEEEEEEEEEEEEE (pit tick 1 time per millisecond, so 1ms accuracy instead of 2ms like before) 2022-09-25 22:00:36 +02:00
40e8aa9ff6 Show something on the framebuffer on unsupported type, so that we can know something is going on 2022-09-25 22:00:00 +02:00
07d6fe388d Fix naming 2022-09-25 21:43:28 +02:00
f1a7138568 User mode (with a few syscalls)
IT ACTUALLY WORKS NOW.

Why wasn't it working? Oh, because I was not setting already present page tables's permissions to user mode. Just a little bug. THAT I SPENT DAYS TRYING TO FIND

Anyways, it works now. Such a relief...
2022-09-25 20:35:05 +02:00
d1413541f3 Merge commit 'minimize image size' from stable 2022-09-25 18:22:35 +02:00
b22297de4c Minimize image size 2022-09-25 18:22:22 +02:00
2b700f3c1d Moon 0.6-dev 2022-09-25 18:16:49 +02:00
57bb1164e9 change 4 pages of stack per stack to a #define 2022-09-25 18:13:20 +02:00
d3527b8824 Use new and delete in Scheduler 2022-09-25 18:12:12 +02:00
ae9967c462 Add new and delete C++ operators 2022-09-25 18:12:03 +02:00
19dff40ee2 Scheduler: track total CPU time of tasks 2022-09-25 17:49:51 +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