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