Bananymous
633929629c
Kernel: Start working on heap
2023-04-18 10:18:15 +03:00
Bananymous
6a3b3213cf
Kernel: Kmalloc now has its memory statically allocated
...
We don't use the memory map given by bootloader since this automatically
maps the memory to a available space.
2023-04-18 10:18:15 +03:00
Bananymous
fdb4eb6042
Kernel: Move kmalloc and MMU to Memory directory
2023-04-18 10:18:15 +03:00
Bananymous
998ae511a3
LibELF: Start implementing elf library
2023-04-18 10:18:15 +03:00
Bananymous
c897b90c28
Create LICENCE
2023-04-13 00:38:24 +03:00
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