Commit Graph

164 Commits

Author SHA1 Message Date
Bananymous 840cd80994 AOC2023: Implement day14 2023-12-19 02:49:48 +02:00
Bananymous 432a9847a8 AOC2023: Implement day13 2023-12-19 01:25:23 +02:00
Bananymous dd936f54a4 rm: Use remove instead of unlink for removing files 2023-12-14 11:03:58 +02:00
Bananymous 6655329c5c AOC2023: Fix day3 implementation
I accidently broke my day3 when messing with signed/unsigned integers
2023-12-14 11:03:19 +02:00
Bananymous b32049ffde 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
Bananymous 27dfc42d11 AOC2023: Implement day11 2023-12-11 14:36:33 +02:00
Bananymous a3e1d41a03 AOC2023: Remove unnecessary loop 2023-12-10 20:18:59 +02:00
Bananymous 60201ec28a 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
Bananymous 7298e6ba5d AOC2023: Implement day10 2023-12-10 18:28:04 +02:00
Bananymous acbded514c 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
Bananymous 70f37295ba ls+stat: show setuid, setgid and sticky bits 2023-12-09 19:43:25 +02:00
Bananymous 0648d0d653 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
Bananymous 50b0413483 AOC2023: Implement day9 2023-12-09 16:22:43 +02:00
Bananymous 1e929ffc9d BAN: Restructure sort functions and namespaces 2023-12-08 18:58:47 +02:00
Bananymous 33b3c8bed0 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
Bananymous 6ebe698218 AOC2023: Use the default sort algorithm 2023-12-08 00:10:59 +02:00
Bananymous 1aef0f5f0e sudo: fix some typos 2023-12-07 14:05:17 +02:00
Bananymous 918657b658 Shell: do path resolution only if command doesn't contain '/' 2023-12-07 13:34:46 +02:00
Bananymous d824449ddb AOC2023: Use quick sort in solution 2023-12-07 11:55:28 +02:00
Bananymous 8aa137bdfe BAN: implement quick sort and test for it 2023-12-07 11:55:28 +02:00
Bananymous 412aa05feb BAN: implement exchange sort and test for it 2023-12-07 11:55:28 +02:00
Bananymous 8516f04467 AOC2023: optimize hand score calculation 2023-12-07 09:26:17 +02:00
Bananymous d79703063f AOC2023: implement day7 2023-12-07 07:56:56 +02:00
Bananymous e811fc0be5 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
Bananymous 56b6b1685d Userspace: implement basic sleep command 2023-12-06 13:05:53 +02:00
Bananymous e3d15ca905 Shell: Handle keyboard input that was interrupted by signal 2023-12-06 13:04:33 +02:00
Bananymous acee6af98d AOC2023: implement day6 2023-12-06 07:27:25 +02:00
Bananymous 80cbb56878 AOC2023: implement day5 2023-12-05 09:13:13 +02:00
Bananymous 52309413af 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
Bananymous 657debc8c0 AOC2023: remove unnecessary loop 2023-12-04 17:54:10 +02:00
Bananymous 35999a5ecc AOC2023: implement day4 2023-12-04 17:51:27 +02:00
Bananymous b0ac571abe 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
Bananymous ba0981c0e3 AOC2023: implement day2 2023-12-02 16:10:37 +02:00
Bananymous 24c79d72cd AOC2023: Cleanup day1 code 2023-12-01 13:31:55 +02:00
Bananymous 6dcab1491e AOC2023: implement day1 2023-12-01 12:38:01 +02:00
Bananymous 8f3659dcb9 AOC2023: update buildsystem 2023-12-01 12:38:01 +02:00
Bananymous 2188dc2e1c Userspace: Prepare aoc2023 environment :) 2023-12-01 01:22:53 +02:00
Bananymous ff83c52c89 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
Bananymous 547aeb0170 image: Remove inheritance from Netbpm
This inheritance made no sense
2023-11-29 20:56:05 +02:00
Bananymous c10dffd719 Kernel: Make internal framebuffer bpp constexpr defined in libc 2023-11-29 20:07:33 +02:00
Bananymous 21392e34cb 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
Bananymous ea4a45aef2 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
Bananymous e3890fa7c4 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
Bananymous eeadf5fff1 Userspace: Implement basic test for framebuffer mmap 2023-11-28 23:52:22 +02:00
Bananymous 816f8091a9 mmap-shared-test: Add test case for msync 2023-11-22 22:45:16 +02:00
Bananymous 6e3f176457 ls: print link targets when listing files 2023-11-11 23:17:18 +02:00
Bananymous a0fbf18d3b meminfo: better format for files without permissions 2023-11-07 02:41:01 +02:00
Bananymous 6d899aa6ce 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
Bananymous 382f9d9bb3 Userspace: Add quick test for global ctors and dtors 2023-10-30 11:11:10 +02:00
Bananymous 1ec341e2dd rm: add option to remove recursively 2023-10-26 02:32:49 +03:00