Bananymous
232fdcb82c
Kernel: add basic support for symlinks
2023-06-01 00:24:45 +03:00
Bananymous
0ccc23d544
Kernel: Shell opens standard files
2023-05-31 23:14:15 +03:00
Bananymous
789ca3db1a
BuildSystem: cmake creates /usr/bin
2023-05-31 23:13:53 +03:00
Bananymous
cb359a05dc
BuildSystem: link libraries when they change
...
This also fixed the need for manual linkin on firt build
2023-05-31 23:01:40 +03:00
Bananymous
14982c137a
Userspace: make test program link against libc on change
2023-05-31 22:36:47 +03:00
Bananymous
0acab11620
LibC: add execl
2023-05-31 22:36:26 +03:00
Bananymous
02f0239016
Kernel: Cleanup exec code
2023-05-31 22:36:05 +03:00
Bananymous
ab61b49aca
Kernel: Add SYS_EXEC syscall
2023-05-31 20:57:33 +03:00
Bananymous
4da1d6fd27
Kernel: Implement Process::exec()
2023-05-31 20:56:29 +03:00
Bananymous
909e847369
Kernel: Move userspace entry functions to Process instead of Thread
2023-05-31 19:31:10 +03:00
Bananymous
eafa09fecf
Kernel: boot.S maps GiB as single pdpte
2023-05-31 00:51:15 +03:00
Bananymous
8175348284
Kernel: Fix comment
2023-05-31 00:51:15 +03:00
Bananymous
b2832cb47a
Kernel: PageTable destructor works now
...
we are successfully booting higher half kernel now :)
2023-05-31 00:44:14 +03:00
Bananymous
9f499991c8
Kernel: PageTable::create_userspace() now works
2023-05-31 00:44:14 +03:00
Bananymous
9a416e8ae8
Kernel: kmalloc free error prints the pointer
2023-05-31 00:34:56 +03:00
Bananymous
911922c6a3
Kernel: RSDP location is now done with virtual addresses
2023-05-31 00:34:21 +03:00
Bananymous
1f2fd59ad5
Kernel: Physical range now calculates RAM with physical addresses
2023-05-31 00:33:44 +03:00
Bananymous
708d401d2c
Kernel: Heap gets multiboot pointer with P2V
2023-05-30 23:57:44 +03:00
Bananymous
ed0dcacab3
Kernel: Move V2P and P2V to Memory/Types.h
2023-05-30 23:57:03 +03:00
Bananymous
e86050f343
Kernel: PageTable::map_range_at maps correctly the last page
2023-05-30 23:56:07 +03:00
Bananymous
57f7da6ce1
Kernel: Booting with higher half kernel gets to Heap initialization
2023-05-30 22:21:12 +03:00
Bananymous
93e6455171
Kernel: start work on higher half kernel
2023-05-30 08:00:17 +03:00
Bananymous
8f38780197
Toolchain: lib gcc is wuild with mcmodel=large
2023-05-30 07:59:41 +03:00
Bananymous
341f7e41e5
LibC: Fix some headers to make gcc build again
2023-05-30 01:17:45 +03:00
Bananymous
265fe9c62e
Kernel: We now identity map full GiB in boot.S
...
The paging structure is pre-built so no unnecessary calculations are done
2023-05-30 00:08:52 +03:00
Bananymous
3b9d60d7cb
Kernel: Remove unused includes of CriticalScope
2023-05-29 21:15:55 +03:00
Bananymous
278b873e89
Kernel: Remove unnecessary usages of PageTableScope
...
This should be used as few times as possible since it calls 'cli'
2023-05-29 21:11:29 +03:00
Bananymous
e640344d7a
Kernel: Rename MMU to PageTable
...
This is more descriptive name for what it actually represents
2023-05-29 21:06:09 +03:00
Bananymous
7151bb86a8
Kernel/LibC: opening standard files is done in libc
2023-05-29 20:21:19 +03:00
Bananymous
2a34391b71
LibC: open() now just returns syscall(SYS_OPEN, ...)
...
errno is handled in syscall()
2023-05-29 20:19:17 +03:00
Bananymous
3d95cf02f3
Kernel: We can't lock the MMU lock in load()
...
It needs to be callable always by scheduler
2023-05-29 19:39:35 +03:00
Bananymous
dd3f34cb2c
Kernel: Make RecursiveSpinLock thread safe
...
also SpinLock is now implemented with gcc builtins
2023-05-29 19:38:09 +03:00
Bananymous
0c316ebfb2
Kernel: Add SYS_SLEEP
2023-05-28 22:34:48 +03:00
Bananymous
282bf24f65
Kernel: fork() now copies allocations through FixedWidthAllocator
2023-05-28 21:34:35 +03:00
Bananymous
f964f6be8d
Kernel: Move page macros to Types.h
2023-05-28 21:03:08 +03:00
Bananymous
0202ccec5f
Kernel: ISR will now crash userspace process instead of panicing kernel
2023-05-28 20:53:10 +03:00
Bananymous
636c308993
Kernel: fork() now copies allocation done through GeneralAllocator
2023-05-28 20:37:39 +03:00
Bananymous
6fdbe6f9c2
Kernel: Add bareboness fork() function
2023-05-28 18:08:49 +03:00
Bananymous
c19f4c019a
Kernel: Add invalidate() to MMU
2023-05-28 18:05:49 +03:00
Bananymous
83eb3dc0cb
Kernel: fix MMU::map_page_at()
...
We used to only reassign if flags changed
2023-05-28 17:57:05 +03:00
Bananymous
481c8406f3
LibC: fputs uses fputc instead of putc
2023-05-28 17:48:34 +03:00
Bananymous
0129619d9a
Kernel: Processes and Threads use VirtualRange memory allocations
2023-05-28 17:48:34 +03:00
Bananymous
e0479b291d
Kernel: Move PhysicalRange to its own file and add VirtualRange
2023-05-28 17:48:34 +03:00
Bananymous
b847d7dfd5
Kernel: MMU::get() is now MMU::kernel
...
MMU is can now be locked with RecursiveSpinLock.
Scheduler now has get_current_tid() that works before the Scheduler
is initialized. This allows RecursiveSpinLock usage early on.
2023-05-28 16:18:18 +03:00
Bananymous
245dff8027
Shell: we now link BAN (we can't use it though)
2023-05-26 22:31:21 +03:00
Bananymous
fed690a7f2
Kernel: Directory listing is working again
2023-05-26 22:31:21 +03:00
Bananymous
54d981120d
Kernel: kmalloc debug_dump is marked [[maybe_unused]]
2023-05-26 22:31:21 +03:00
Bananymous
f79250c4d4
LibC: Rewrite all the headers.
...
We now have more or less posix issue 2018 conforming libc headers.
This was a really time consuming and boring operation but it had to
be done.
Now we get to actually start implementing libc :)
2023-05-26 22:31:21 +03:00
Bananymous
78b62776d2
BAN: libban is now build into library dir
2023-05-26 22:31:21 +03:00
Bananymous
bda4614783
BAN: Errors.h can be included from userspace
2023-05-26 22:31:21 +03:00