Bananymous
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
Bananymous
f077e17b2a
AOC2023: Implement day10
2023-12-10 18:28:04 +02:00
Bananymous
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
Bananymous
c273bf98c9
ls+stat: show setuid, setgid and sticky bits
2023-12-09 19:43:25 +02:00
Bananymous
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
Bananymous
0c3e5980d6
AOC2023: Implement day9
2023-12-09 16:22:43 +02:00
Bananymous
2b927b9729
BAN: Restructure sort functions and namespaces
2023-12-08 18:58:47 +02:00
Bananymous
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
Bananymous
7bb3172591
AOC2023: Use the default sort algorithm
2023-12-08 00:10:59 +02:00
Bananymous
3bc7113cc5
sudo: fix some typos
2023-12-07 14:05:17 +02:00
Bananymous
24243268a6
Shell: do path resolution only if command doesn't contain '/'
2023-12-07 13:34:46 +02:00
Bananymous
669d55707e
AOC2023: Use quick sort in solution
2023-12-07 11:55:28 +02:00
Bananymous
6caa9b6f95
BAN: implement quick sort and test for it
2023-12-07 11:55:28 +02:00
Bananymous
43458cc74f
BAN: implement exchange sort and test for it
2023-12-07 11:55:28 +02:00
Bananymous
536bb74d53
AOC2023: optimize hand score calculation
2023-12-07 09:26:17 +02:00
Bananymous
efd8be8207
AOC2023: implement day7
2023-12-07 07:56:56 +02:00
Bananymous
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
Bananymous
ff8b3be8dc
Userspace: implement basic sleep command
2023-12-06 13:05:53 +02:00
Bananymous
56008869d6
Shell: Handle keyboard input that was interrupted by signal
2023-12-06 13:04:33 +02:00
Bananymous
531211e09d
AOC2023: implement day6
2023-12-06 07:27:25 +02:00
Bananymous
82cb2ea20b
AOC2023: implement day5
2023-12-05 09:13:13 +02:00
Bananymous
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
Bananymous
cf76d2e7d9
AOC2023: remove unnecessary loop
2023-12-04 17:54:10 +02:00
Bananymous
41f8974080
AOC2023: implement day4
2023-12-04 17:51:27 +02:00
Bananymous
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
Bananymous
49f8c4268f
AOC2023: implement day2
2023-12-02 16:10:37 +02:00
Bananymous
70c224d8ea
AOC2023: Cleanup day1 code
2023-12-01 13:31:55 +02:00
Bananymous
6a7335e5c9
AOC2023: implement day1
2023-12-01 12:38:01 +02:00
Bananymous
3aaa755c51
AOC2023: update buildsystem
2023-12-01 12:38:01 +02:00
Bananymous
dabd79afa7
Userspace: Prepare aoc2023 environment :)
2023-12-01 01:22:53 +02:00
Bananymous
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
Bananymous
8564b59e14
image: Remove inheritance from Netbpm
...
This inheritance made no sense
2023-11-29 20:56:05 +02:00
Bananymous
327b330338
Kernel: Make internal framebuffer bpp constexpr defined in libc
2023-11-29 20:07:33 +02:00
Bananymous
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
Bananymous
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
Bananymous
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
Bananymous
42a1d26d5b
Userspace: Implement basic test for framebuffer mmap
2023-11-28 23:52:22 +02:00
Bananymous
4c3da66c92
mmap-shared-test: Add test case for msync
2023-11-22 22:45:16 +02:00
Bananymous
bfe6d60e9e
ls: print link targets when listing files
2023-11-11 23:17:18 +02:00
Bananymous
613d6640fe
meminfo: better format for files without permissions
2023-11-07 02:41:01 +02:00
Bananymous
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
Bananymous
a63006afaf
Userspace: Add quick test for global ctors and dtors
2023-10-30 11:11:10 +02:00
Bananymous
ea0d7156a4
rm: add option to remove recursively
2023-10-26 02:32:49 +03:00
Bananymous
81228d3401
Userspace: implement basic rm command
2023-10-25 21:45:27 +03:00
Bananymous
6ee4d10651
Kernel/LibC/Userspace: Implement mkdir and creat
...
Touch now uses creat insteadd of open with O_CREAT flag
2023-10-25 21:07:26 +03:00
Bananymous
c445ea6266
cp: abort copy if write fails
2023-10-25 02:43:02 +03:00
Bananymous
e685f38fd1
Userspace: Add basic chmod command
2023-10-25 02:37:19 +03:00
Bananymous
657f95d3f0
Userspace: Implement basic cp
...
This does not support any meaningful command line arguments but
is a good start.
2023-10-25 00:07:25 +03:00
Bananymous
07f8c972b3
Shell: Set get old termios earlier
...
I sourced the config file before getting old termios. Sourcing
updated the termios so old_termios was always in non canonical, non
echoing mode.
2023-10-24 19:10:53 +03:00
Bananymous
6f6ccbfa04
meminfo: fix g++ warning for oob write
...
g++ doesn't realize that read can only return -1
2023-10-24 16:50:21 +03:00