7ec860a3d4
Kernel: Print stack trace on isr
2023-09-11 01:20:55 +03:00
9b9a6b2cfc
Kernel: Fix ext2 file write
2023-09-11 01:20:39 +03:00
8fb5f97a18
Kernel: Improve open() POSIX compatability
...
Also rename Process::sys_creat -> create_file since it is not
actually a syscall and only used by open as a healper.
2023-09-10 00:31:42 +03:00
921d95d18f
All: Clear lines with only whitspace in them
2023-09-10 00:31:42 +03:00
1fcf122c50
Kernel: Add basic ZeroDevice to /dev/zero
2023-09-10 00:31:42 +03:00
dd9af56e21
Kernel: Start work on making inodes more thread safe
...
All inode operations are now locked and thread blocked
2023-09-10 00:31:42 +03:00
39a5c52088
Kernel: Fix directory permissions
...
We did not care about X bit in directories and instead used only the
R bit for search/read.
2023-09-08 11:46:53 +03:00
660f7cbfeb
Kernel: Ext2 directories can allocate new blocks if needed
2023-09-08 10:29:26 +03:00
1abf54d652
Kernel: Fix bug in disk writing
...
I have used two weeks in locating a bug in my ext2 implementation
while the bug was actually in disk write. If you called write_sectors
on disk it would write the first sector_size bytes repeatedly to all
asked sectors and this corrupted the disk...
2023-09-08 02:43:08 +03:00
3750d29b2b
Kernel: Fix possible out-of-bounds disk access in ext2
2023-09-08 02:42:53 +03:00
4648f6718e
Kernel: Cleanup TTY::read()
2023-09-07 15:27:21 +03:00
b30af0edca
Kernel: TTY now reads input byte by byte
...
This allows correct behaviour for character streams / keyboard
handling. Serial input can now send working ^C :D
2023-09-07 15:06:27 +03:00
5e1725abb2
Kernel: Remove bitmap debug printing from ext2 inode allocation
2023-09-06 01:25:09 +03:00
6ad2f23259
Kernel: Correct inode links count
2023-09-05 14:46:56 +03:00
ba7e1b9ca5
Kernel: Add /dev/tty symlink that targets the current tty
2023-09-05 01:07:52 +03:00
f0772e385c
Kernel: Implement basic RamSymlinkInode
2023-09-05 01:07:52 +03:00
3fd94b1acb
Kernel: You can now read serial output from the /dev/ttyS*
2023-09-05 01:07:52 +03:00
93c5755012
Kernel: Receive interrupts for COM1 and COM2 input
...
The input has to still be attached to terminal
2023-09-04 22:07:40 +03:00
323de3c866
Kernel: Rework whole Terminal structure
...
Serial monitors can now be used as a output. This requires editing
init code for the stdio opening. Serial input is not supported, so qemu
still needs graphical window for ps/2 keyboard.
2023-09-04 19:34:18 +03:00
52b9fddfd7
Kernel: Make serial devices to their own class
2023-09-04 14:57:05 +03:00
04cfbca336
Kernel: Add ANSI support for hiding/showing cursor to TTY
2023-09-04 14:30:09 +03:00
9901f95d78
Kernel: Add basic nanosleep, only millisecond percision
2023-09-04 12:59:50 +03:00
b2139c0b1e
Kernel: Add basic support for O_NONBLOCK (only for tty)
2023-09-04 12:57:52 +03:00
6f002c926a
Kernel: add basic fcntl() with couple of commands and no validation
2023-09-04 12:57:09 +03:00
a711462ef4
Kernel: Split ext2 implementation to multiple files
2023-09-01 15:10:23 +03:00
f31c6b847f
Kernel: Start work on writable ext2 filesystem
2023-08-31 23:40:31 +03:00
195ccf4f53
Kernel: Add missing ififo() to Inode::Mode
2023-08-31 21:38:31 +03:00
073edd0b8e
Kernel: Stack trace dumping validates pointers before using them
2023-08-31 21:36:23 +03:00
250789aa20
Kernel: better handle kernel errors
2023-08-29 00:13:21 +03:00
8032824054
BuildSystem: use -a with rsync
...
This allows cmake to not rebuild whole project every time
2023-08-28 11:38:17 +03:00
80e7a89f67
BuildSystem: Base sysroot is now distributed as a tar ball
...
This allows file and directory permissions work as intended.
cmake is now filled with 'sudo' but with sudo timeout this should be
fine.
2023-08-23 10:38:21 +03:00
38e72019c7
Kernel: kill() with negative pid actually matches pgid
2023-08-22 14:54:15 +03:00
d745fca86a
Kernel: Process keeps track if forked process has called exec*()
2023-08-22 14:53:46 +03:00
60a2185ee6
Kernel/LibC: implement proper getpgid and setpgid
2023-08-22 14:53:12 +03:00
d634fec8dc
Kernel: Add function to enumerate processes in session
2023-08-22 14:52:28 +03:00
c9243f0d1e
Kernel/LibC: Add {get,set}pgrp()
2023-08-22 11:36:33 +03:00
0f6c19a1b7
Kernel: Barebones implementation sessions and process groups
2023-08-22 11:35:40 +03:00
79f3aa5419
Kernel/LibC: add dup() syscall and function
2023-08-17 12:03:29 +03:00
871c792976
Kernel: O_SEARCH doesn't require any permissions
...
Except read permissions for all directories in the path
This allows us to stat e.g. device files for which we don't have
the permissions.
2023-08-11 12:26:07 +03:00
8480ffe108
Kernel: open() now validates file access mode
2023-08-11 11:53:38 +03:00
e1400f9680
Kernel: Remove unused syscall
2023-08-11 11:43:48 +03:00
6e5bce3c57
Kernel: Zero initialize threads sse_storage
2023-08-11 00:26:43 +03:00
f75adab9d8
Kernel: Move structures in boot.S to .data section
2023-08-11 00:26:12 +03:00
5d0a6e7b08
Kernel: HPET is now used in legacy mode when PIC is forced
2023-08-10 22:01:30 +03:00
b0c8a9cdc4
Kernel: Fix slave PIC
...
we dont mask interrupt 2 in PIC since it corresponds to the
slave PIC. Also cleanup PIC code :)
2023-08-10 21:52:31 +03:00
ebe0adb3b5
Kernel: HPET doesn't use the legacy mapping anymore
2023-08-10 21:08:32 +03:00
4842d5e2b9
Kernel: APIC now uses MMIO namespace functions for mmio
2023-08-10 21:07:23 +03:00
0b8396b1a6
Kernel: IDT now sends EOI for every interrupt
...
EOI is sent before calling the interrupt handler. This should be fine
since all interrupts are processed with interrupts disabled
2023-08-09 09:57:02 +03:00
55ef793a74
Kernel: Validate HPET tick period
2023-08-09 09:50:38 +03:00
96c0ad0d3d
Kernel: Remove get_unix_timestamp from SystemTimer
...
Kernel now uses the percise real_time() and time_since_boot()
2023-08-09 08:57:50 +03:00