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
Bananymous
126edea119
Userspace: implement basic rm command
2023-10-25 21:45:27 +03:00
Bananymous
8bb47aee02
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
9e4adc1264
cp: abort copy if write fails
2023-10-25 02:43:02 +03:00
Bananymous
7a54a088b4
Userspace: Add basic chmod command
2023-10-25 02:37:19 +03:00
Bananymous
e8890062d6
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
1e2c2fb973
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
adbbdf73c4
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
Bananymous
f0820e6f24
Shell: Fix parsing $ with unknown character
2023-10-12 22:24:27 +03:00
Bananymous
7ce8e2d57b
cat: Use write() instead of puts to print file contents
...
This allows printing files that contain null bytes behave more like
you would expect
2023-10-04 22:16:19 +03:00
Bananymous
e780eaa45f
meminfo: Print allocated physical memory percentage
2023-10-03 10:39:27 +03:00
Bananymous
44cb0af64f
Shell: source $HOME/.shellrc if found on Shell startup
2023-10-03 10:39:27 +03:00
Bananymous
bb0989fdef
Shell: Implement sourcing scripts
2023-10-03 10:24:10 +03:00
Bananymous
f0b6844feb
meminfo: Add process command line to the output
2023-09-30 23:17:31 +03:00
Bananymous
797ca65c66
Kernel: Add physical memory info to /proc/{pid}/meminfo
2023-09-30 22:11:45 +03:00
Bananymous
762b7a4276
Userspace: Add meminfo command that parses /proc/{pid}/meminfo
2023-09-30 21:20:53 +03:00
Bananymous
94ce2c97be
Shell: Quick fix to not freeze for multiple seconds
...
When sync is writing to disk, it reserves whole disk to itself.
This commit makes Shell to read username only once from getpwuid().
We used to get username every time prompt was printed.
2023-09-29 19:20:48 +03:00