Commit Graph

214 Commits

Author SHA1 Message Date
f46240e879 AOC2023: Implement day14 2023-12-19 02:49:48 +02:00
68627995f8 AOC2023: Implement day13 2023-12-19 01:25:23 +02:00
d273c5e77c rm: Use remove instead of unlink for removing files 2023-12-14 11:03:58 +02:00
8344f2f9ab AOC2023: Fix day3 implementation
I accidently broke my day3 when messing with signed/unsigned integers
2023-12-14 11:03:19 +02:00
862993398d AOC2023: Implement day12
There seems to be a problem with my malloc so the hash map is not
working. This code worked fine on my linux with actually working
malloc :D
2023-12-14 10:51:48 +02:00
225c7c6ab4 AOC2023: Implement day11 2023-12-11 14:36:33 +02:00
58633ca373 AOC2023: Remove unnecessary loop 2023-12-10 20:18:59 +02:00
00d57d783e LibC+userspace: Make everything compile with -Wall -Wextra -Werror
I added -Wall -Wextra -Werror as public compile flags to libc. Now
everything in userspace in compiled using these flags. I made all
necessary changes to allow compilation to work.

Only exception is execvp which has a large stack usage. Maybe it
should use malloc for the buffer but posix allows ENOMEM only when
kernel is out of memory... This can be fixed when fexecve is
implemented and there is no need for absolute path.
2023-12-10 19:20:14 +02:00
f077e17b2a AOC2023: Implement day10 2023-12-10 18:28:04 +02:00
a6bfbbf655 ls: Rewrite whole program for cleaner output
ls -l now sorts elements and aligns them by columns.
2023-12-10 01:05:12 +02:00
c273bf98c9 ls+stat: show setuid, setgid and sticky bits 2023-12-09 19:43:25 +02:00
99a5b6e2ef AOC2023: Cleanup day9 code
Move tree building to its own function. Both parts can use the same
tree. This also decreaseas memory usage by one element by row :D
2023-12-09 19:08:13 +02:00
0c3e5980d6 AOC2023: Implement day9 2023-12-09 16:22:43 +02:00
2b927b9729 BAN: Restructure sort functions and namespaces 2023-12-08 18:58:47 +02:00
b523ccb893 AOC2023: Implement day8
Second part was kinda weird. You are supposted to assume something
of the input, which necessarily is not true.
2023-12-08 17:13:20 +02:00
7bb3172591 AOC2023: Use the default sort algorithm 2023-12-08 00:10:59 +02:00
3bc7113cc5 sudo: fix some typos 2023-12-07 14:05:17 +02:00
24243268a6 Shell: do path resolution only if command doesn't contain '/' 2023-12-07 13:34:46 +02:00
669d55707e AOC2023: Use quick sort in solution 2023-12-07 11:55:28 +02:00
6caa9b6f95 BAN: implement quick sort and test for it 2023-12-07 11:55:28 +02:00
43458cc74f BAN: implement exchange sort and test for it 2023-12-07 11:55:28 +02:00
536bb74d53 AOC2023: optimize hand score calculation 2023-12-07 09:26:17 +02:00
efd8be8207 AOC2023: implement day7 2023-12-07 07:56:56 +02:00
06a84da844 Userspace: Implement barebones sudo
This doesn't do any password checking or anything. Just sets uid and
gid before execvp()
2023-12-06 18:15:42 +02:00
ff8b3be8dc Userspace: implement basic sleep command 2023-12-06 13:05:53 +02:00
56008869d6 Shell: Handle keyboard input that was interrupted by signal 2023-12-06 13:04:33 +02:00
531211e09d AOC2023: implement day6 2023-12-06 07:27:25 +02:00
82cb2ea20b AOC2023: implement day5 2023-12-05 09:13:13 +02:00
622007f2ee Shell: Verify that command exists before executing it
This prevents page fault somewhere when executing non-existing
commands.
2023-12-04 22:57:27 +02:00
cf76d2e7d9 AOC2023: remove unnecessary loop 2023-12-04 17:54:10 +02:00
41f8974080 AOC2023: implement day4 2023-12-04 17:51:27 +02:00
3ed25425a3 AOC2023: implement day3
Solution to second puzzle is not optimal, it definately should be
O(1) space, but I didn't want to think about it.
2023-12-03 17:07:09 +02:00
49f8c4268f AOC2023: implement day2 2023-12-02 16:10:37 +02:00
70c224d8ea AOC2023: Cleanup day1 code 2023-12-01 13:31:55 +02:00
6a7335e5c9 AOC2023: implement day1 2023-12-01 12:38:01 +02:00
3aaa755c51 AOC2023: update buildsystem 2023-12-01 12:38:01 +02:00
dabd79afa7 Userspace: Prepare aoc2023 environment :) 2023-12-01 01:22:53 +02:00
6ccb1bbbf9 init: set default termios on every username prompt
Before if e.g. Shell crashed init would have broken termios
2023-12-01 01:22:53 +02:00
8564b59e14 image: Remove inheritance from Netbpm
This inheritance made no sense
2023-11-29 20:56:05 +02:00
327b330338 Kernel: Make internal framebuffer bpp constexpr defined in libc 2023-11-29 20:07:33 +02:00
7090388c70 cp: allow copying all files except directories
The old condition seemed odd. This allows taking screen shots by
copying the /dev/fb0.
2023-11-29 16:13:40 +02:00
ff550785a7 Userspace: Implement basic image rendering for Netbpm
You can now render Netbpm (P6) format image to framebuffer using
`image` command. I added basic test image to
/usr/share/images/sample.ppm
2023-11-29 16:11:35 +02:00
056586486d Shell: make clear use \e[2J instead of \e[J
This makes kernel to actually clear the full screen. If framebuffer
did not fit font exactly last row would be left partially uncleared
2023-11-28 23:55:37 +02:00
42a1d26d5b Userspace: Implement basic test for framebuffer mmap 2023-11-28 23:52:22 +02:00
4c3da66c92 mmap-shared-test: Add test case for msync 2023-11-22 22:45:16 +02:00
bfe6d60e9e ls: print link targets when listing files 2023-11-11 23:17:18 +02:00
613d6640fe meminfo: better format for files without permissions 2023-11-07 02:41:01 +02:00
f6c312a6b3 BuildSystem: using sysroot doesn't need root privileges anymore!
Sysroot is now created with fakeroot. This allows root access to be
only needed for disk image creation, since it uses loopback devices.
2023-11-04 17:50:43 +02:00
a63006afaf Userspace: Add quick test for global ctors and dtors 2023-10-30 11:11:10 +02:00
ea0d7156a4 rm: add option to remove recursively 2023-10-26 02:32:49 +03:00