Commit Graph

749 Commits

Author SHA1 Message Date
21c5ef0822 Actually, we can protect the GDT behind a proper mutex 2022-11-01 12:19:48 +01:00
f29161fd0b Remove Cargo.lock 2022-11-01 11:49:04 +01:00
f362e0e6f4 Kernel/x86_64: Add GDT initialization under a portable cpu::platform_init interface 2022-11-01 11:43:10 +01:00
896ee2d7e9 tools: make some scripts executable 2022-11-01 11:42:34 +01:00
739fa56ece Kernel: Add double fault handler 2022-11-01 11:11:33 +01:00
b4914c26fe Kernel: Prevent deadlocks when panicking 2022-11-01 11:11:20 +01:00
06c7bbac0d Kernel: Make a portable wrapper for the breakpoint instruction 2022-11-01 11:10:55 +01:00
d2fb4a68ca Kernel: Add basic interrupt handling 2022-11-01 10:55:54 +01:00
523130a69e Kernel: Add try_print! and try_println! 2022-11-01 10:55:42 +01:00
6a41c4fc4e Kernel: Make get_bootboot return a reference to avoid continuously copying data 2022-11-01 10:54:46 +01:00
75219763da update spin to 0.9.4 2022-10-31 17:44:35 +01:00
a08a53c7f0 Add IO and Serial 2022-10-31 17:32:33 +01:00
d49823d5d0 video: Add support for BGRA framebuffers 2022-10-31 16:39:20 +01:00
70d78d86be Kernel: Add CPU functions in a portable way 2022-10-31 16:18:05 +01:00
ed29870172 Update README.md 2022-10-31 14:48:35 +01:00
79f7a285a2 Remove Makefile 2022-10-31 14:48:29 +01:00
868597b70a Add a script to build and install mkbootimg 2022-10-31 14:48:23 +01:00
9c09fe7cec init: add a check_magic function 2022-10-31 14:34:32 +01:00
9902506264 video: Add a Color enum to make it easier to work with colors 2022-10-31 14:34:09 +01:00
ab4d34ecdb Add Cargo.lock to gitignore 2022-10-31 14:33:37 +01:00
c167b7a247 remove .clang-format 2022-10-31 14:33:19 +01:00
a26dabaa5a Let's get Rusty!! 2022-10-31 14:02:12 +01:00
534500cda0 Implement enough runtime for binutils to compile 2022-10-31 12:29:53 +01:00
497a52dd82 apps: add a little mkdir utility 2022-10-31 09:53:52 +01:00
c2a08060cf VFS: Add support for an implementation-defined value 2022-10-30 20:53:45 +01:00
5eae93bbb0 Bugfix: do not crash if we are blocking for no reason 2022-10-30 20:51:32 +01:00
aabff7a1d3 libc: Add mktime() 2022-10-30 20:46:25 +01:00
45f40a31d6 Remove old FIXME 2022-10-30 20:40:53 +01:00
f83c78bcad libc: Implement gettimeofday() and instantly mark it as deprecated 2022-10-30 20:40:05 +01:00
7bd1cba1e3 libc: Stub out bsearch() 2022-10-30 20:02:03 +01:00
52d4f34f05 Kernel, libc: Implement umask() 2022-10-30 19:55:38 +01:00
0d443385e9 libc: Add system() 2022-10-30 19:43:37 +01:00
29c59abf7d Kernel: Rename blocking_wait_info's wait_pid to pid 2022-10-30 19:28:43 +01:00
9c3792718c Kernel: Remove waitpid() debug messages and add more checks 2022-10-30 19:24:56 +01:00
e244c150c2 Kernel, libc: Add ECHILD 2022-10-30 19:24:26 +01:00
c68d040484 Scheduler: Make sure we are in the kernel's address space when resuming a blocked process 2022-10-30 19:10:46 +01:00
a7e4f2bdd2 sh: Make it much more versatile
This commit implements:
Argument matching, to show help and version
Support for running scripts
Support for parsing and running commands (via -c)

This is the first step to implementing the system() libc function.
2022-10-30 19:09:18 +01:00
e58aa361c8 sh: Show message when child called abort() 2022-10-30 18:36:52 +01:00
00f90246c8 Kernel: Implement very basic escape sequences for TextRenderer 2022-10-30 18:34:40 +01:00
08c4dac2c2 Kernel: Enable -Wvla 2022-10-30 18:20:16 +01:00
b4ccd786f9 remove-port.sh: export DESTDIR 2022-10-30 18:19:12 +01:00
97df9d8d3a Ports: Add nasm port 2022-10-30 18:14:57 +01:00
948361bec5 printf: Show which format specifier is unknown 2022-10-30 18:08:29 +01:00
d186d573dd libc: Document strftime in time.h 2022-10-30 17:48:54 +01:00
d5a6c7f27f libc: Implement strftime() 2022-10-30 17:47:47 +01:00
4c096bd36c uptime: break time down into more understandable units
80 seconds -> 1 minute, 20 seconds for example
647 seconds would be 10 minutes, 47 seconds
and more...
2022-10-30 10:31:59 +01:00
af0f4d2037 Kernel: Remove /dev/uptime
This information can now be fetched with clock_gettime.
2022-10-30 10:16:53 +01:00
6df5b8a703 Make backspace work 2022-10-30 10:08:52 +01:00
e640c6e245 Kernel, libc, userspace: Add file timestamps (atime,ctime,mtime) 2022-10-30 09:57:17 +01:00
8d46c9bbe2 Kernel, libc: Fix a big bug in printf()
Every time printf flushes the buffer to us in sprintf() or snprintf(), we call strncat to append the data.

But we want to start from the beginning in the first flush. What if there was data already there?
Well, we just append to the old data. Which is not good, and breaks snprintf()'s maximum size policy.

This fix sets the first byte of str to NULL, to avoid this.
2022-10-30 09:53:23 +01:00