Run the following command to try Kerla on QEMU:
qemu-system-x86_64 -m 512 -cpu Icelake-Server -serial mon:stdio \
-netdev user,id=net0 \
-device virtio-net,netdev=net0,disable-legacy=on \
-kernel kerla.x64.elf
Notable Changes
- The first cloud support for DigitalOcean: for example, my website is now powered by Kerla on DigitalOcean!
- boot2dump support: if an ext4 disk is attached over virtio-blk, kernel panic log will automatically saved into
/kerla.dump
.
All Changes
Baye Dieng (2):
- Remove redundant files already defined in virtio crate (#84)
- Make driver trait available globally for other drivers and typo fix (#89)
Seiya Nuta (42):
- Isolate arch-specific and memory allocators into a separate library (
kerla_runtime
) (#77) - Use Rust 2021 edition (#78)
- Turn device drivers into libraries (#80)
- build: Use Docker image cross compiling for M1 Mac (#81)
- Update author fields
- Implement deferred job (#82)
- Add some README.md
- Rename initramfs to testing (#83)
- Release IRQ_HANDLERS' lock before running deferred jobs (#85)
- Generate the kernel extensions loader (#86)
- Implement log filtering (#92)
- build: Add $(QEMU_ARGS) option (#93)
- Support the secondary serial port for kernel messages (#94)
- x64: Make SyscallFrame compatible with Linux's struct pt_regs (#95)
- Remove kexts_loader (#97)
- initramfs: Implement file size (#122)
- Implement shutdown(2) (#118)
- Implement exit_group(2) syscall (#119)
- Re-disable interrupts after handling an interrupt (#124)
- Kill a process immediately if its parent ignores SIGCHLD (#121)
- Make network parameters and allowed PCI devices configurable via cmdline (#123)
- Support freeing pages (#120)
- Use yapf for formatting python scripts (#125)
- Implement /proc/metrics (#126)
- Add rust-toolchain.toml (#129)
- build: Allow specifying extra kernel parameters through $(CMDLINE) (#127)
- downcast: Take a reference instead of the ownership (#130)
- virtio: Fix a bug in used descriptors GC (#131)
- net: Fix a memory leak (#132)
- virtio: Support legacy virtio devices (#133)
- /proc/metrics: Expose the monotonic clock (#134)
- x64: Fill an XSAVE area with zeroes (#136)
- net: Fix for dhcp=off (#135)
- x64: Dump some important registers on an unsupported exception (#138)
- allocator: Fill allocated pages with zeroes by default (#137)
- Support saving kernel crash logs using boot2dump (#139)
- x64: Fix memory leaks in a process internal buffers (#140)
- Add docs
- Fix some docs
- Allow specifying multiple interrupt handlers for the same IRQ number (#143)
- testing: Refactor Dockerfile (#128)
- Add tools/create-release.py
Serhiy Barhamon (4):
- Panic on irq_handler overwrite (#53)
- Single thread gettid syscall implementation (#75)
- rt_sigprocmask syscall implementation (#112)
- #112 followup (bugfix and fix build) (#114)
dependabot[bot] (1):
- build(deps): bump memoffset from 0.6.4 to 0.6.5 (#113)