| ▲ | nunobrito 2 hours ago | |
I've seen cases where documentation is seriously lacking but this project is quite something. Was reading the comments, was able to learn more. So I assume it provides a command line interface. Question: Can it run binaries compiled for the platform/OS? This has been a limitation since forever on ESP microcontrollers because they basically have the power of computers and yet the flashing limitation of calculators. Would be good to finally be able to launch arbitrary binaries without flashing. (I know there are tricks right now, just looking for a proper OS-approach). | ||
| ▲ | retrac an hour ago | parent [-] | |
Yes. It has Unix style processes. The basic memory model is similar to ancient Unix on the PDP-11 without paging. A process gets a flat memory space. Processes are swapped out in the background as necessary. How it is implemented varies by platform. On the 8-bit micros it takes advantage of bank-switching memory hardware if there is any. On the MMUless 68K a flat single address space can be used with position-independent code for the processes. On platforms with paging or relocation hardware that is used. Most of the host platforms do not have hardware memory protection, but there's room in the design to support it. It has been ported to the Raspberry Pi Pico [1] (ARM Cortex-m0+ based) and could be ported to other microcontrollers which have enough RAM. Toolchain is the biggest problem. It's hard to get a good cross toolchain that works. FUZIX's creator has been writing a portable C compiler but it's not done yet. The code does compile with Clang and GCC but a working toolchain is a steep knowledge cliff to climb. I have got the kernel to build and link for a riscv32i target. Just need some real riscv32 hardware to test it on. And free time. | ||