Skip to content

Releases: hermit-os/kernel

0.10.0

18 Jan 17:36
791b932
Compare
Choose a tag to compare

🚀 Features

  • (x86_64) Print FDT
  • (newlib) Add support for riscv64
  • (virtio-spec) Add vsock definitions
  • (newlib) Add support for aarch64
  • (xtask) Sanitize rustc for finding binutils
  • (xtask) Sanitize rustup calls
  • (xtask) Sanitize cargo for normal builds
  • (xtask) Support relative paths
  • (xtask) Add --artifact-dir option for builds
  • (xtask) Allow starting the hypervisor using sudo
  • (newlib) Remove sbrk
  • Add strace feature
  • Log jumping into application
  • (env) Parse FDT bootargs on all platforms
  • (env) Parse env=KEY=VALUE for env vars
  • (uhyve) Don't override get_application_parameters
  • UEFI MVP
  • Add stable exit code message in non-Uhyve VMs
  • (xtask) Set vcpu_count for Firecracker
  • (xtask) Create xtask ci rs subcommand
  • (xtask) Add xtask ci c subcommand
  • (log) Make HERMIT_LOG_LEVEL_FILTER case-insensitive
  • (panic) Resolve deadlock when panicking while printing
  • Upgrade to Rust 2024
  • (uhyve) Use absolute paths
  • Weakly provide the sys_errno_location function for all errno access
  • Add version note

🐛 Bug Fixes

  • (pci) Remove FnOnce workaround
  • (virtio) Remove unused PciError::BadCapPtr
  • (virtio/pci) Remove PciCfgAlt
  • (pci) Make BAR pages no-execute
  • (virtio) Make config generation checking transport independent
  • (net/virtio/pci) Remove commented out code
  • (virtio-spec) Rustdoc::broken_intra_doc_links
  • (net/virtio) Remove unused and wrong net command enums
  • (virtio-spec) Make net::Config fields read-only
  • (x86_64/physicalmem) Rename detect_from_limits to detect_from_uhyve
  • (virtqueue/packed) Simplify DrvNotif::enable_specific
  • (virtqueue/split) Set next_idx for driver notifications
  • (virtqueue/packed) Fix EventSuppr bitfield operations
  • (virtqueue/packed) Check range on RING_EVENT_FLAGS_DESC
  • (virtqueue/packed) Use correct next_idx
  • (virtqueue/packed) Set flags according to wrap count
  • (virtqueue/split) Fix off-by-one error
  • (pci) Remove unused enum DeviceHeader
  • (pci) Remove unused mod constants
  • (pci) Remove unused PciDevice methods
  • (virtqueue/split) Remove dead code
  • (virtqueue/packed) Zero-initialize descriptors
  • (virtqueue/packed) Don't change flags when not making available
  • (virtqueue/packed) Check for descriptor exhaustion
  • (virtq/split) Return id with the correct index for the chain head
  • (virtio-spec) Export vsock feature bits
  • (virtq) Move fuse_entry_out to payload
  • (net/virtio) Push the correct number of packets to the queue
  • (xtask) Keep CARGO_HOME and RUSTUP_HOME
  • (xtask) Set current dir for sanitized binaries
  • (xtask) Move builtins target dir into main one
  • (syscalls) Unused_imports
  • (entropy) Unused_imports
  • (recmutex) Clippy::new_without_default
  • (recmutex) Clippy::not_unsafe_ptr_arg_deref
  • (tasks) Clippy::not_unsafe_ptr_arg_deref
  • (riscv64/virtualmem) Dead_code
  • (xtask) Enable clippy for feature = "newlib"
  • Boot application processors after initializing scheduler
  • (fd) Clippy::too_long_first_doc_paragraph
  • (x86_64) Downgrade log level of page unmap
  • (x86_64/phys_mem) Don't panic on empty FDT memory map
  • Remove explicit link section attributes
  • (aarch64) Remove unused get_boot_info_address
  • (entry) Only set boot info globals on first CPU core
  • (riscv64) Validate entry signature
  • (entry) Allow boot info null pointer
  • (smp) Don't populate boot info pointer
  • (x86_64/smp) Remove boot_info parameter
  • (arch) Remove RAW_BOOT_INFO
  • (arch) Make BOOT_INFO a OnceCell
  • Make Virtq require Send
  • (pci) Put PCI devices into a cell
  • (pci) Put PCI drivers into a cell
  • (x86_64) Put MMIO drivers into a cell
  • (x86_64/vga) Put VGA screen into mutex
  • (aarch64) Put serial port into mutex
  • (aarch64) Put GIC into mutex
  • (net) Make GEM driver Send
  • (riscv64) Put MMIO drivers into a cell
  • (riscv64) Put available HARTs into a cell
  • (shell) Unreachable_code
  • (shell) Unused_variables
  • (xtask) Enable shell feature
  • clippy::needless_lifetimes
  • (aarch64/core_local) clippy::pointers_in_nomem_asm_block
  • (shell) Move shell into async task
  • (arch) Migrate to naked_asm in naked functions
  • (riscv64) Remove manual align implementations
  • (cfg) dead_code
  • (x86_64/mem) Allow deallocating before kernel
  • (x86_64/paging) Extract map_pages
  • (x86_64/paging) print_page_tables
  • (x86_64/paging) Rework disect
  • (x86_64/paging) Add print_page_table_entries
  • (virtqueue) Clippy::extra_unused_lifetimes
  • (xtask) Build docs for each arch separately
  • (x86_64) Make kernel_heap_end a valid virtual address
  • (x86_64) Log interrupt even without handler
  • (x86_64) Check for null pointer in core_scheduler
  • (main) Enable interrupts after initializing scheduler
  • (apic) Disable PIT interrupt
  • (x86_64) Use unaligned write for TLS pointer
  • (apic) Fix width of MP config table entry type
  • (xtask) Remove --verbose from Uhyve call
  • (virtqueue) clippy::unnecessary_map_or
  • (pci) clippy::question_mark
  • (syscalls) Use c_char instead of u8
  • (socket) Remove upstream-resolved allow
  • (virtio-net) Use the correct number of buffers for merging
  • (syscalls) Use ptr::byte_add
  • (syscalls) Remove useless pointer casts
  • Enable clippy::string_to_string
  • Enable clippy::ref_as_ptr
  • Enable clippy::ptr_as_ptr
  • Enable clippy::ptr_cast_constness
  • Enable clippy::borrow_as_ptr
  • Enable clippy::cast_lossless
  • Enable clippy::if_not_else
  • Enable clippy::ignored_unit_patterns
  • Enable clippy::manual_let_else
  • Enable clippy::semicolon_if_nothing_returned
  • Enable clippy::ref_option
  • Enable clippy::explicit_deref_methods
  • Enable clippy::default_trait_access
  • Enable clippy::manual_assert
  • Enable clippy::inconsistent_struct_constructor
  • Enable clippy::match_wildcard_for_single_variants
  • Enable clippy::unreadable_literal
  • Enable clippy::separated_literal_suffix
  • Enable clippy::decimal_literal_representation
  • (dns) clippy::len_zero
  • (dns) clippy::useless_conversion
  • (xtask) Run clippy on feature = "dns"
  • (xtask) Don't test feature = "shell" on unsupported arches
  • (virtqueue) Make BufferElem::{len,capacity} return u32
  • (uhyve) Fix improper unlink string handling
  • (common-os) clippy::unreadable-literal
  • (common-os) clippy::fn_to_numeric_cast
  • (common-os) clippy::unnecessary_cast
  • (common-os) clippy::result_unit_err
  • (common-os) Expect dead_code
  • (aarch64) Fix compilation with feature = "common-os"
  • (riscv64) Fix compilation with feature = "common-os"
  • (xtask) Run clippy on feature = "common-os"
  • (x86_64) Use correct MSR for read{fs,gs}
  • Allow building with all features
  • (interrupts) unused_imports
  • (scheduler) dead_code
  • (rtl8139) clippy::if-not-else
  • clippy::semicolon-if-nothing-returned
  • (udp) clippy::ignored-unit-patterns
  • (xtask) Clippy all features
  • clippy::literal_string_with_formatting_args
  • clippy::precedence
  • (tests) static_mut_refs
  • (tests) stable_features
  • (tests) Remove unused value_fence
  • (tests) Don't reexport in common
  • (tests) Move parse to avoid dead_code
  • (tests) unsafe-op-in-unsafe-fn
  • (tests) Allow dead_code on test_case_runner
  • (tests) Literals
  • (tests/basic_mem) Clippy
  • (tests) clippy::uninit_vec
  • (tests/thread) Pointer casting
  • (tests) clippy::result_unit_err
  • (tests) Remove explicit QEMU debug exit
  • (xtask) Run clippy on all targets
  • (tests) Clean up comments
  • Use #[unsafe(no_mangle)]
  • Mark extern blocks as unsafe
  • (macros) tail_expr_drop_order
  • (xtask) Use canonical cargo_home location
  • (xtask) Assume exe exists in cargo_home
  • (xtask) Add support testing for C-based HTTP servers
  • (xtask) Don't assume exe exists in cargo_home
  • (paging) Support huge pages in debug function

💼 Other

  • Turn cmd from a tuple into a struct
  • Separate response headers and payload
  • Don't assume uninitialized objects to be initalized
  • Don't expose uninit rsp to the fuse module
  • Use DeviceAlloc for virtq allocations
  • TransferTokens should always have a BufferToken
  • Move common logic for making descriptor available into a function
  • Remove unnecessary memory barriers
  • Move common lines in conditional outside
  • Move ctrl_desc to TransferToken
  • Merge Buffer variants
  • Start MemDescrId from 0
  • Delay MemDescrId assignment until push
  • Handle id exhaustion
  • Don't expose TransferTokens to the drivers
  • Use the actual type for ctrl_descs instead of MemDescr
  • Don't modify flags for skipped descriptors
  • Improve error handling
  • Correctly parse irq-flags from dts
  • (fs) Correct uhyve mount message
  • (deps) Upgrade zerocopy to 0.8, fuse-abi to 0.2, and virtio-spec to 0.2
  • Store only the most preferred capability of a type
  • (qemu) Simplify memory calculation
  • Close connection if data isn't available
  • (deps) Update Cargo.lock
  • (virtio-fs) Remove unnecessary to_string()
  • (vscode) Don't check all architectures
  • Don't panic on initial unmap if page is not mapped
  • (deps) Update Cargo.lock
  • (deps) Remove x86
  • Use the serial buffer hypercall instead of the byte-wise one
  • (deps) Update hermit-entry to 0.10.2
  • (deps) Don't specify minor version of bitflags crate
  • (deps) Update Cargo.lock

🚜 Refactor

  • (virtio/pci) Remove offset, length fields
  • (virtio/pci) Inline Origin into PciCap
  • (virtio/pci) Rename PciCap::cap_struct to PciCap::cap
  • (virtio/pci) Remove cfg_type, id from PciCap
  • (virtio/pci) Migrate extra cap ...
Read more

0.8.0

07 Jun 14:46
7425269
Compare
Choose a tag to compare

Highlights

  • feat(xtask): add support for building with cargo-careful by @mkroening in #1142
  • feat: allow mounting a virtiofsd share to / by @stlankes in #774
  • feat: add virtio-def crate for virtio definitions by @mkroening in #1149
  • feat(riscv64): fix compilation with default features and with gem-net by @mkroening in #1162
  • feat(mm): add DeviceAlloc for communicating with devices by @mkroening in #1160
  • feat: stabilize kernel interface by @stlankes in #1167
  • feat(sys): add sys_available_parallelism by @mkroening in #1184
  • feat(xtask): add xtask doc by @mkroening in #1200
  • feat: rename virtio-def crate to virtio-spec by @mkroening in #1201
  • feat(virtio-spec): many features for endian numbers, make feature flags little-endian by @mkroening in #1205
  • feat(syscall): add sys_shutdown in favor of sys_shutdown_socket by @mkroening in #1220
  • feat(virtio-net): enable VIRTIO_NET_F_MQ and test VIRTIO_F_RING_PACKED by @mkroening in #1223
  • feat(virtio-spec): migrate to endian-num crate by @mkroening in #1225
  • feat(newlib): using kernel networking, instead of lwip by @CarlWachter in #1237
  • feat(newlib): remove lwIP support by @mkroening in #1165

What's Changed

New Contributors

Read more

0.7.0

11 Apr 15:12
4ce7439
Compare
Choose a tag to compare

Highlights

What's Changed

New Contributors

Full Changelog: v0.6.9...v0.7.0

0.6.9

29 Feb 08:42
1d9d19c
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.8...v0.6.9

0.6.8

16 Feb 13:39
6a1ac7b
Compare
Choose a tag to compare

Hightlights

What's Changed

Full Changelog: v0.6.7...v0.6.8

0.6.7

19 Dec 11:03
244d5b3
Compare
Choose a tag to compare

Highlights

What's Changed

Full Changelog: v0.6.6...v0.6.7

0.6.6

30 Nov 16:25
bb07a10
Compare
Choose a tag to compare

Highlights

What's Changed

New Contributors

Full Changelog: v0.6.5...v0.6.6

0.6.5

27 Sep 11:54
a01f7d5
Compare
Choose a tag to compare

Highlights

  • NASM is no longer required for SMP on x86-64 (#926)

What's Changed

New Contributors

Full Changelog: v0.6.4...v0.6.5

v0.6.4

14 Aug 08:52
Compare
Choose a tag to compare

What's Changed

  • fix bug in the initialization of the virtio network driver

Full Changelog: v0.6.3...v0.6.4

v0.6.3: improving the performance

10 Aug 09:59
72c09a0
Compare
Choose a tag to compare

What's Changed

  • improve network performance
  • add option to enable / disable of FUSE support
  • remove bug in the initialization of the memory subsystem
  • using Talc as memory allocator to improve the overall performance

Full Changelog: v0.6.2...v0.6.3