c054ee89c247c87f15bb639c9296a485cd6be9fa
In legacy builds it's possible to boot on a cpu that doesn't appear to have CR4 implemented (Am586 to be precise), but there's no features needed to set, so it seems that this was architecturally okay.
The Little Kernel Embedded Operating System
The LK kernel is an SMP-aware kernel designed for small systems ported to a variety of platforms and cpu architectures.
See https://github.com/littlekernel/lk for the latest version.
High Level Features
- Fully-reentrant multi-threaded preemptive kernel
- Portable to many 32 and 64 bit architectures
- Support for wide variety of embedded and larger platforms
- Powerful modular build system
- Large number of utility components selectable at build time
Supported architectures
- ARM32
- Cortex-M class cores (armv6m - armv8m)
- ARMv7+ Cortex-A class cores
- ARM64
- ARMv8 and ARMv9 cores
- RISC-V 32 and 64bit bit in machine and supervisor mode
- x86-32 and x86-64
- Motorola 68000
- Microblaze
- MIPS
- OpenRISC 1000
- VAX (experimental)
TODO
To build and test for ARM64 on linux
- install or build qemu. v2.4 and above is recommended.
- install gcc for arm64 (see note 1)
- run scripts/do-qemuarm -6 (from the lk directory)
- you should see 'welcome to lk/MP'
This will get you a interactive prompt into LK which is running in qemu arm64 machine 'virt' emulation. type 'help' for commands.
Note: for ubuntu x86-64 sudo apt-get install gcc-aarch64-linux-gnu or fetch a prebuilt toolchain from https://newos.org/toolchains/aarch64-elf-14.1.0-Linux-x86_64.tar.xz
Languages
C
80.6%
C++
10.8%
Assembly
3.6%
Makefile
3.4%
Python
1%
Other
0.6%