mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-25 22:14:37 +00:00
52 lines
2.5 KiB
Markdown
52 lines
2.5 KiB
Markdown
# TODO
|
|
|
|
---
|
|
|
|
- [x] Optimize SMP.
|
|
- [ ] Support IPv6.
|
|
- [ ] ~~Endianess of the network stack (currently: [HOST](LSB)<=>[NETWORK](MSB)). Not sure if this is a standard or not.~~ (???)
|
|
- [ ] Support 32-bit applications (ELF, PE, etc).
|
|
- [ ] ~~Do not map the entire memory. Map only the needed memory address at allocation time.~~ (we just copy the pages for userland, see `Fork()` inside [core/memory/page_table.cpp](core/memory/page_table.cpp))
|
|
- [ ] Implementation of logging (beside serial) with log rotation.
|
|
- [x] Implement a better task manager. (replace struct P/TCB with classes)
|
|
- [ ] Rewrite virtual file system.
|
|
- [ ] Colors in crash screen are not following the kernel color scheme.
|
|
- [x] ~~Find a way to add intrinsics.~~ (not feasible, use inline assembly)
|
|
- [ ] Rework PSF1 font loader.
|
|
- [x] ~~The cleanup should be done by a thread (tasking). This is done to avoid a deadlock.~~ (not needed, everything is done by the scheduler)
|
|
- [ ] Implement a better Display::SetBrightness() function.
|
|
- [ ] Fix memcpy, memset and memcmp functions (they are not working properly with SIMD).
|
|
- [ ] Fully support i386.
|
|
- [ ] Support Aarch64.
|
|
- [ ] ~~SMP trampoline shouldn't be hardcoded at 0x2000.~~ (0x2000 is in the conventional memory, it's fine)
|
|
- [ ] Rework the stack guard.
|
|
- [x] Mutex implementation.
|
|
- [ ] Update SMBIOS functions to support newer versions and actually use it.
|
|
- [x] COW (Copy On Write) for the virtual memory. (https://en.wikipedia.org/wiki/Copy-on-write)
|
|
- [x] Implement lazy allocation. (page faults)
|
|
- [ ] Bootstrap should have a separate bss section + PHDR.
|
|
- [ ] Reimplement the driver conflict detection.
|
|
- [x] Elf loader shouldn't create a full copy of the elf binary. Copy only the needed sections.
|
|
- [ ] Use NX-bit.
|
|
- [ ] Fix std::string.
|
|
- [x] Rewrite PS/2 drivers.
|
|
- [ ] Improve signal handling.
|
|
|
|
- [ ] Improve the way the kernel crashes.
|
|
- Add panic() function.
|
|
- Handle assertion failures.
|
|
|
|
- [ ] Optimize screen printing.
|
|
- On real hardware it's very slow, a solution is dirty printing.
|
|
|
|
- [x] Thread ids should follow the POSIX standard.
|
|
- When a new process is created, the first thread should have the same id as the process id.
|
|
- If pid is 400, the first thread should have the id 400. The second thread should have the id 401, etc.
|
|
|
|
- [ ] Optimize the scheduler
|
|
- Create a separate list for processes that are waiting for a resource or a signal, etc.
|
|
- Use all cores to schedule threads.
|
|
|
|
- [x] Improve Remap() function.
|
|
- Remove Unmap & Map logic. Remove all flags directly.
|