Commit Graph

  • aa5c1be945 Separate building a debug image and running it, and provide a script for GDB. apio 2022-10-08 15:32:48 +0200
  • 309058888c Bugfix: remove duplicate error check when loading a userspace ELF program apio 2022-10-08 13:12:19 +0000
  • 159d025d9f ACPI::get_rsdt_or_xsdt(): Use a temporary variable to do mappings, then set cache to it. apio 2022-10-08 15:05:59 +0200
  • a5daa24fbf Fix bug :) apio 2022-10-08 15:03:10 +0200
  • 533b7c9e71 Refactor ACPI::get_rsdt_or_xsdt() apio 2022-10-08 15:00:42 +0200
  • abcf1b6118 Define PAGE_SIZE as 4096 and use it everywhere instead of using 4096 as a magic number apio 2022-10-08 14:52:28 +0200
  • 1235ce8b32 Avoid magic numbers apio 2022-10-08 14:44:48 +0200
  • ce6ec3585c Kernel, libc: Add ENOSYS apio 2022-10-08 14:18:25 +0200
  • ac72d64490 Make (v)fprintf alias to (v)printf instead of throwing an error apio 2022-10-08 13:45:57 +0200
  • a086ec514b Remove the Superblock.h file which has never been used. apio 2022-10-08 13:28:30 +0200
  • 9b778254f1 Merge branch perror into main apio 2022-10-08 10:46:02 +0000
  • e76d903642 apps: make memeater use perror #6 apio 2022-10-08 12:42:46 +0200
  • ee7558a9b7 Add a perror() function apio 2022-10-08 12:42:25 +0200
  • d6f45c284e Merge branch strerror into main apio 2022-10-08 10:32:12 +0000
  • 21e8ea1486 apps: make memeater use strerror() #5 apio 2022-10-08 12:29:19 +0200
  • 8f0b6d80b2 libc: Implement strerror() apio 2022-10-08 12:29:06 +0200
  • 71e15e94af Kernel, libc and userspace: Add basic errno support. apio 2022-10-08 12:06:09 +0200
  • ad115e9bab libc: Correct include guards apio 2022-10-08 11:32:01 +0200
  • 1f655fabe2 The beginnings of Moon 0.10 apio 2022-10-07 20:33:00 +0200
  • 8bf1aac961 Finally, add a README. old-0.9 apio 2022-10-07 20:16:44 +0200
  • 028a1b1a3c libc: Enable even more warnings apio 2022-10-07 18:19:06 +0200
  • b7ee746da3 Kernel: Enable even more warnings apio 2022-10-07 18:10:20 +0200
  • dc389da74e Implement an ELFImage struct apio 2022-10-07 17:54:05 +0200
  • b2d43d66c4 Remove boot/font.psf from the initrd apio 2022-10-07 15:38:08 +0200
  • 13f69bc4fc Add LICENSE apio 2022-10-07 13:27:01 +0000
  • 1ee5deb0f0 Remove unnecessary include apio 2022-10-06 19:51:16 +0200
  • 3fd24133e9 I'm so dumb apio 2022-10-06 18:04:32 +0200
  • 4a50a9e027 that was a dumb bug to fix apio 2022-10-06 18:02:57 +0200
  • 594d79143e Kernel: enable -Wconversion apio 2022-10-06 17:13:34 +0200
  • 952d8fa294 Be more strict with warnings apio 2022-10-05 17:34:22 +0200
  • 560b0a1705 libc: Rename the _ folder to bits, as used internally by libraries apio 2022-10-04 19:11:54 +0200
  • 48b858af5a libc: Add strncpy and strncat, and deprecate strcpy and strcat (which, since we're building with -Werror, is an instant ban from using these functions) apio 2022-10-04 19:08:59 +0200
  • a050ed9133 libc: add an internal macros.h header with headers to make attributes less verbose apio 2022-10-04 19:06:56 +0200
  • c6ed8d2abb libc: remove duplicate declaration of strcpy apio 2022-10-04 18:59:13 +0200
  • 3bfdad7a75 Kernel: Remove outdated rule in Makefile apio 2022-10-04 18:52:02 +0200
  • 25928a2a8d Kernel: Always build config.cpp, even when it's not modified apio 2022-10-04 18:46:10 +0200
  • 7a998dda4d Kernel: Do not stop interrupts by default in the interrupt handler apio 2022-10-04 18:45:46 +0200
  • 8f310dd307 PMM: Map the page bitmap to kernel heap once the PMM and VMM are both initialized apio 2022-10-04 18:36:09 +0200
  • 5d8b825659 Add a few example apps/demos in C, and make the kernel choose a random one to demonstrate every boot apio 2022-10-03 21:24:38 +0200
  • 885e39f60f libc: fix printf to actually print correct more-than-one-digit numbers (hint: the bugfix was a very stupid one) apio 2022-10-03 20:30:12 +0200
  • cb60e418b2 Add vprintf, (v)sprintf and (v)snprintf to libc + move the non v-printfs to stdio.cpp, since they can now call their v-variants and thus don't depend on internal_printf apio 2022-10-03 19:59:33 +0200
  • 9420484c9b Do not use __builtin_alloca in puts (could overflow the stack for large strings) apio 2022-10-03 19:05:04 +0200
  • 34aa953dbc Add printf() and puts(), quite primitive, looks like hex printing isn't there yet... apio 2022-10-03 19:00:10 +0200
  • fc9868819f Moon 0.9-dev apio 2022-10-02 21:19:49 +0200
  • dae2ff8d50 Add mmap and munmap syscalls, and thus, add malloc and free to libc!! (yet again, thanks to the wonderful liballoc) old-0.8 apio 2022-10-02 20:45:04 +0200
  • ee31a3458d Fix setup-binutils and setup-gcc apio 2022-10-02 19:58:52 +0200
  • db9e1ba17c Add a memclr() SSE-optimized function apio 2022-10-02 19:13:33 +0200
  • 38470724dc Scheduler: adjust SSE saving conditions apio 2022-10-02 19:13:21 +0200
  • 1ecd24f5d6 Kernel: Add SSE support (enable SSE on boot and save context (user tasks only) on task switch) apio 2022-10-02 18:53:54 +0200
  • d2f9e17c86 Use __luna_abort in init apio 2022-10-02 18:16:27 +0200
  • ae95a528f2 Make function stubs in libc loudly abort instead of silently failing apio 2022-10-02 18:10:53 +0200
  • 8e6741ebd6 Rename SYS_version to SYS_getversion apio 2022-10-02 17:25:56 +0200
  • c6b044acab ELFLoader: show permissions of loadable segment apio 2022-10-02 17:10:24 +0200
  • 3c6c94adda Add a proper syscall() function to unistd.h apio 2022-10-02 17:02:15 +0200
  • 83d23ce8fe Correct the syscall ABI apio 2022-10-02 17:01:46 +0200
  • 6bacded5cf Update build system apio 2022-10-02 17:01:30 +0200
  • e483f6d1e6 Adjust build scripts to install LibC headers apio 2022-10-02 12:47:50 +0200
  • f8a72f15c8 Adjust build system to be more flexible and to work with the new toolchain apio 2022-10-02 12:44:32 +0200
  • ba52e389a5 Hosted GCC cross-compiler for x86_64-luna!!! apio 2022-10-02 12:21:02 +0200
  • dc0fd428d3 Syscalls return a value, right? apio 2022-10-02 10:47:59 +0200
  • 85d4268b01 Hosted Binutils for x86_64-luna apio 2022-10-02 10:33:34 +0200
  • fcf5923cc0 WIP: Add a C Library, let's try to compile a Hosted GCC cross-compiler using this! apio 2022-10-01 20:59:22 +0200
  • c76ecdf07c Moon 0.8-dev apio 2022-10-01 17:35:10 +0200
  • c7f46f96ff Use the new syscalls in init old-0.7 apio 2022-10-01 17:32:50 +0200
  • ac6fdce737 Add 2 new syscalls (sys_version, sys_gettid) apio 2022-10-01 17:30:31 +0200
  • 96f53922c9 Write a (kindof) proper init, at least with the capabilities we have right now apio 2022-10-01 15:54:42 +0200
  • ba4806f9d3 Syscall: do not send user programs' output to the serial console apio 2022-10-01 15:53:55 +0200
  • 87cb41e549 Separate the logging stack into toggleable backends, to disable console logging once boot finishes. apio 2022-10-01 15:35:11 +0200
  • 0e46ea8ada Finally, a text renderer that actually works. We can now see the kernel messages without a serial port :) apio 2022-10-01 14:27:45 +0200
  • cde850258d Don't assume we are located at /bin/init apio 2022-10-01 13:16:59 +0200
  • 008bdf505c Rename gfx.cpp to paint.cpp apio 2022-10-01 13:09:43 +0200
  • 30411b4b78 Fix hackiness in converting a uint32_t to a Color, by providing a function to do so apio 2022-10-01 13:08:47 +0200
  • 03db57bbf9 Sanity checks apio 2022-10-01 12:32:09 +0200
  • 66bee86a8b Scheduler: add a load_user_task function that directly loads a file from the initrd apio 2022-10-01 12:28:32 +0200
  • 1c4383dea4 Add an apps/ folder and build-system to build userspace apps which can now be loaded from the initrd apio 2022-10-01 12:17:16 +0200
  • 9012ccc49e Remove _userspace and move the idle task to assembly apio 2022-10-01 12:16:30 +0200
  • 6e6cf5b2b0 Add an ELF Loader!! apio 2022-10-01 12:15:56 +0200
  • 53d36be339 Add a much-needed get_blocks_from_size function apio 2022-10-01 12:13:38 +0200
  • 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) apio 2022-10-01 12:12:50 +0200
  • 867d312177 Let's try to start parsing ELFs! apio 2022-09-30 17:43:14 +0200
  • 87f67b255e Moon 0.7-dev apio 2022-09-29 20:09:39 +0200
  • ef5994e389 Proper userspace program old-0.6 apio 2022-09-29 20:06:18 +0200
  • 522d74b65d Add is_user_address and is_kernel_address functions apio 2022-09-29 19:30:42 +0200
  • 9716891eff do not fault in the userspace demo >.< apio 2022-09-29 19:20:31 +0200
  • f25014a8ed refine syscalls apio 2022-09-29 19:17:43 +0200
  • 46f459337c Interrupts: Remove ensure_handler and use a more reliable way of detecting if we are in a handler apio 2022-09-29 18:35:51 +0200
  • 6c036dfe99 Modify the userspace task apio 2022-09-27 19:51:01 +0200
  • 63e2b84370 Don't build such a small image apio 2022-09-26 17:55:16 +0200
  • 692221dd9e GO FAST WHEEEEEEEEEEEEEEEE (pit tick 1 time per millisecond, so 1ms accuracy instead of 2ms like before) apio 2022-09-25 22:00:36 +0200
  • 40e8aa9ff6 Show something on the framebuffer on unsupported type, so that we can know something is going on apio 2022-09-25 22:00:00 +0200
  • 07d6fe388d Fix naming apio 2022-09-25 21:43:28 +0200
  • f1a7138568 User mode (with a few syscalls) apio 2022-09-25 20:35:05 +0200
  • d1413541f3 Merge commit 'minimize image size' from stable apio 2022-09-25 18:22:35 +0200
  • b22297de4c Minimize image size apio 2022-09-25 18:22:22 +0200
  • 2b700f3c1d Moon 0.6-dev apio 2022-09-25 18:16:49 +0200
  • 57bb1164e9 change 4 pages of stack per stack to a #define old-0.5 apio 2022-09-25 18:13:20 +0200
  • d3527b8824 Use new and delete in Scheduler apio 2022-09-25 18:12:12 +0200
  • ae9967c462 Add new and delete C++ operators apio 2022-09-25 18:12:03 +0200
  • 19dff40ee2 Scheduler: track total CPU time of tasks apio 2022-09-25 17:49:51 +0200
  • 3fd1b6773d Panic: Only dump stack trace if InitRD is initialized apio 2022-09-25 17:41:34 +0200