Does there exist a (micro-)kernel of an operating system that is fully implemented in hardware? That is, a kernel that is not stored in RAM, and loaded into CPU registers after an interrupt or system call, but is instead a fully hardcoded part of the CPU itself, so that a system call/interrupt never leads to a context switch?
1 Answer
The key search terms here are FPGA and ASIC, since at this point the OS is no longer running on instructions executed by a CPU in the conventional sense.
Here is a relevant result I found with a quick Google search on microkernel fpga
and os kernel fpga
:
Susanna Nordström et al. Application Specific Real-Time Microkernel in Hardware.
In the RTU, the scheduling, inter process communication, interrupt management, resource management, synchronization and time management control are implemented in hardware (using VHDL).
This paper goes a step further and describes an OS-like environment for FPGA programs themselves: Kermin Fleming et al. The LEAP FPGA Operating System.
Like a software operating environment, LEAP provides both basic device abstractions for FPGAs and a collection of standard I/O and memory management services.