Commit Graph

2247 Commits

Author SHA1 Message Date
Bananymous 3f9d6f0311 LibC: add needed stubs to build executables with our compiler 2023-04-12 17:53:02 +03:00
Bananymous 8ee63f8264 Kernel: We can create basic userspace processes
These are still allocated on the kernel memory
2023-04-12 17:52:36 +03:00
Bananymous 34358b8471 Kernel: Scheduler can now terminate processes threads 2023-04-12 17:49:04 +03:00
Bananymous 5b1af4ec47 Kernel: Debug::dump_stack_trace now 'detects' repeating function 2023-04-12 01:32:41 +03:00
Bananymous 071d7af58a Kernel: kmalloc does not check for corruptiong unless it cannot allocate
We 'don't care' if kmalloc is corrupted unless it prevents us from
allocating memory. Scheduler should be catching stack overflows either
way and is much more efficient
2023-04-12 00:24:02 +03:00
Bananymous 3201c3654e Kernel: Threads now use only 4 KiB stack :) 2023-04-12 00:22:08 +03:00
Bananymous 6ed3023725 Kernel: Fix TTY spinlock usage 2023-04-12 00:20:04 +03:00
Bananymous 892a63aec5 Kernel: Shell TTY_PRINT is now function instead of macro
This makes functions uses way less stack
2023-04-12 00:18:58 +03:00
Bananymous 3fe889d4a4 BuildSystem: GCC will now complain on functions with 1 KiB stack 2023-04-12 00:18:06 +03:00
Bananymous c35e7368f2 BAN: Variant now aligns its data properly 2023-04-12 00:17:45 +03:00
Bananymous cafd546ce8 Kernel: kmalloc now detects corruption
Kmalloc checks if its nodes have corrupted. This was happening
because of stack overflow.
2023-04-11 23:36:46 +03:00
Bananymous 5810a77cbf Kernel: Mark Scheduler::start() as noreturn as appropriate 2023-04-11 23:33:20 +03:00
Bananymous 6f7045ead2 Kernel: kernel doesn't allocate large blocks of data on stack
We used to allocate 1 KiB blocks on multiple places on stack. This
is a problem, since kernel stack shouldn't have to be too big
2023-04-11 23:31:58 +03:00
Bananymous 40f9a42c00 Kernel: Scheduler will panic if it encounters stack overflow 2023-04-11 23:29:21 +03:00
Bananymous 9abe1f27bb Kernel: Process now locks the mutex while modifying open files
This allows processes to be actually removed from the list instead
of dead locking
2023-04-11 23:28:16 +03:00
Bananymous aa2aee684b Kernel: remove message from BAN::Error
We don't store the error message anymore in BAN::Error.
Instead we store a error code that can be mapped into a string.
This allows BAN::Error to only take 4 bytes instead of 128.

We should also make some kernel initialization just panic instead
of returning errors since they are required for succesfull boot
anyway.
2023-04-11 23:25:21 +03:00
Bananymous cfa025acae BAN: Move RefPtr to its own file and create New.h
New.h contains definitions for placement new operators and
BAN::allocator and BAN::dealloctor
2023-04-10 21:07:25 +03:00
Bananymous 781cc78a1f BuildSystem: Fix header copying to sysroot
We used to copy all headers everytime to sysroot which caused
rebuild of the whole os. Now we use the cmake command
'copy_directory_if_different' which seemed to fix this issue :)
2023-04-10 21:07:25 +03:00
Bananymous f924ac9265 Kernel: Threads can now be terminated mid execution 2023-04-10 21:07:25 +03:00
Bananymous df6e8a6562 Kernel: Add small wait in ATA driver before reading/writing
This allows bochs to boot again
2023-04-10 21:07:25 +03:00
Bananymous 3f01f936a1 Kernel: Fix framepointers on started threads 2023-04-10 21:07:25 +03:00
Bananymous 25ddc24754 BuildSystem: cmake can now build out libc
I can't seem to get libc++ build to work...
2023-04-10 21:07:25 +03:00
Bananymous 989f9ec5fe LibC: remove old unused files 2023-04-07 02:26:44 +03:00
Bananymous 3fbee2c835 BuildSystem: remove now obsolete include directories from kernel build 2023-04-07 02:25:47 +03:00
Bananymous b10b3cbe3b Add a screenshot to README 2023-04-06 21:01:27 +03:00
Bananymous 77e94e1d3b General: Write basic README 2023-04-06 20:59:45 +03:00
Bananymous 4a3bfaff90 Scripts: linecount does not count lines from toolchain/ 2023-04-06 20:31:10 +03:00
Bananymous 2a8dc58b6a BuildSystem: Cleanup cmake code
The buildsystem is kind of a mess. I will be writingn build
instructions soon.
2023-04-06 20:31:10 +03:00
Bananymous 8a8793fd2d BuildSystem: you can now build the toolchain with cmake 2023-04-06 00:23:02 +03:00
Bananymous 7ab9e420ac Update .gitignore 2023-04-06 00:02:47 +03:00
Bananymous 43ca62de47 BuildSystem: Create script for os specific toolchain 2023-04-06 00:02:13 +03:00
Bananymous a5830c5424 LibC: add stubs for a lot of functions 2023-04-05 23:58:40 +03:00
Bananymous b6896a6d85 LibC: sys/types uses 'typedef' instead of 'using' 2023-04-05 15:03:24 +03:00
Bananymous 9e0b4132ee Kernel: Shell now somewhat functions again
I will not be fixing the shell implementation until I get to
userspace
2023-04-05 11:37:41 +03:00
Bananymous 68158324f4 Kernel: Fix TTY echo and canonical flag behaviour 2023-04-05 11:35:19 +03:00
Bananymous a420be6b20 Kernel: Fix ansi control sequence cursor movement 2023-04-05 03:07:52 +03:00
Bananymous f281543255 Kernel: Add tty to process and make termios modifiable 2023-04-05 02:53:28 +03:00
Bananymous 67ff01e915 LibC: Add errno ENOTTY 2023-04-05 02:47:37 +03:00
Bananymous dcf0969e2d Kernel: TTY now supports clearing 2023-04-05 02:04:18 +03:00
Bananymous 4f522d337a Kernel: Add partial support for shell
We don't handle arrow keys, and the tty does not know how to clear
the screeen :D
2023-04-05 01:30:58 +03:00
Bananymous af0979ec32 Kernel: Process can now initialize stdio
This allows the use of the fds STD{IN,OUT,ERR}_FILENO
2023-04-05 01:10:25 +03:00
Bananymous 63e863ad35 LibC: Add unistd.h with STD{IN,OUT,ERR}_FILENO definitions 2023-04-05 00:59:48 +03:00
Bananymous 7f95444bb5 Kernel: Start work on making tty a file
TTY is now a file that you can read from/write to. I still have
to port shell to use this new interface
2023-04-05 00:56:09 +03:00
Bananymous 783842bac2 Kernel: add virtual write function to inode 2023-04-03 20:29:07 +03:00
Bananymous e1534ad25b Kernel: Fix keys in PS2Keymap 2023-04-03 20:25:23 +03:00
Bananymous ee1f3623ce Kernel: Fix typo 2023-04-03 19:56:55 +03:00
Bananymous dffdb51713 BuildSystem: remove non-existent file from kernel CMakeLists.txt 2023-04-03 19:02:25 +03:00
Bananymous daa35aaf7d BAN: Add data() member function to Array 2023-04-03 17:00:52 +03:00
Bananymous b87dae7e7c Kernel: Device dev and rdev number is done more properly
Also hd* partitions are now 1 indexed instead of 0
2023-04-03 11:43:16 +03:00
Bananymous 86d777e2eb LibC: add device macros in sys/sysmacros.h 2023-04-03 10:59:15 +03:00