A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc.
This ticket tracks the status of support for AArch64 in Misaka and the rest of ToaruOS.
As of 2022-02-09, most essential functionality is available. SMP, basic memory management, processes, threads, debug tracing, graphical output, and a set of input devices are available. ToaruOS boots to a full GUI in QEMU, including KVM and HVF hardware virtualization environments.
Remaining work is mostly focused on device support. Interrupt management is missing and there are no supported network or audio devices. No physical hardware platforms are supported at this time.
[x] Build environment and toolchain
[x] Still some quirks with how libgcc_s.so is getting linked in userspace, look into this.
Weird link script resulted in absolute path (from the host) as the NEEDED entry for libgcc_s.so. -l: fixed it.
[x] Essential bringup
Stub loader for QEMU's -machine virt is ready.
Basic memory management API is implemented.
System timer is providing a clock source.
Ramdisk, filesystem, framebuffer access are working.
Userspace is reachable.
System call interface is functioning.
[x] Kernel context switching
[x] TLS relocations
[x] sys_clone() ABI stuff
[x] Interrupt management
[x] Need a preempt source for timing functions to work.
[x] Page fault handlers
[ ] CoW
Do we have any actual blockers for CoW? How big is our refcount table? I think it's still 1MiB/4GiB.
[ ] Basic device drivers
[x] virtio-keyboard, virtio-tablet
[ ] USB is a necessary thing for real hardware targets.
[ ] virtio-net
[ ] virtio-gpu as the Bochs adapter has issues
[x] SMP
[x] Basic core bringup
[ ] Fix cache bugs
[x] arch_fatal_prepare, arch_fatal need to stop other cores
Should we turn the other cores off with PSCI or send them an IPI like we do on x86-64?
[x] Modules
[x] Change module builds to use separate sources
[x] Implement necessary static object relocations
[ ] Possibly move some things (virtio?) to modules
[ ] Clean up
[x] Make sure build makes sense and we haven't broken x86-64.
This ticket tracks the status of support for AArch64 in Misaka and the rest of ToaruOS.
As of 2022-02-09, most essential functionality is available. SMP, basic memory management, processes, threads, debug tracing, graphical output, and a set of input devices are available. ToaruOS boots to a full GUI in QEMU, including KVM and HVF hardware virtualization environments.
Remaining work is mostly focused on device support. Interrupt management is missing and there are no supported network or audio devices. No physical hardware platforms are supported at this time.
libgcc_s.so
is getting linked in userspace, look into this.NEEDED
entry forlibgcc_s.so
.-l:
fixed it.-machine virt
is ready.sys_clone()
ABI stuffvirtio-keyboard
,virtio-tablet
virtio-net
virtio-gpu
as the Bochs adapter has issuesarch_fatal_prepare
,arch_fatal
need to stop other coresatan2
,pow
,fmod
virt
machine.virtio
input device drivers back to x86-64 (shared module between the two arches?)