Skip to content

v0.1.0

Latest
Compare
Choose a tag to compare
@nuta nuta released this 24 Dec 06:55
· 24 commits to main since this release

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)