Skip to content

Releases: hermit-os/kernel

0.11.0

25 Mar 07:35
c2c480c
Compare
Choose a tag to compare

🚀 Features

  • (xtask) Download OVMF prebuilts
  • (processor) Read TSC frequency from FDT
  • (hermit-builtins) Add nan, nanf
  • (fs/mem) Implement fstat
  • Add gap between kernel and available virtual memory
  • (x86_64/mm) Remove detect_from_multiboot
  • (x86_64/mm) Remove detect_from_uhyve
  • Switch to identity-mapped page tables
  • (fs) Make off_t signed as required by POSIX
  • (fd) Implement fcntl(F_GETFL)
  • (aarch64-interrupts) Rename gic related variables
  • (aarch64-interrupts) Use cpuid and gicr_stride
  • (socket) Add AF_UNSPEC
  • (socket) Make AF_INET non-zero
  • (time) Add SystemTime::UNIX_EPOCH and SystemTime::duration_since
  • Make empty mm public
  • (mm) Export virtual_to_physical

🐛 Bug Fixes

  • Move O_NONBLOCK definition into OpenOptions
  • (paging) clippy::doc_overindented_list_items
  • (xtask) Run doc for hermit-builtins and xtask
  • (xtask) Setup the correct buildtype for hermit-c
  • Don't set errno on success
  • (xtask/qemu) Set virtio-mmio.force-legacy=off
  • (drivers) Initialize 64-bit RISC-V drivers before the executor
  • (riscv64) Finalize MMIO drivers
  • (x86_64/paging) Don't panic in disect
  • (x86_64/paging) Break when printing unused table entries
  • (x86_64/paging) Support all functions on UEFI
  • (mm) Exempt UEFI from device alloc mapping
  • (x86_64/mm) kernel_heap_end should only be the first page
  • (x86_64/mm) Identity-map physical memory
  • (fd) Extract StatusFlags into separate type
  • (riscv64/interrupts) Typo
  • (riscv64/interrupts) Remove commented-out code
  • (riscv64/interrupts) Improve interrupt handler
  • (fd) Make open options contain the file status flags
  • (fs) Only check for O_CREAT if file does not exist
  • (fs) Deduplicate boolean expression
  • Provide type annotations in comparisons
  • clippy::uninlined-format-args

💼 Other

  • (deps) Upgrade ureq from 2 to 3
  • Map BAR with the information from capabilities
  • (deps) Update OpenSBI to version 1.5.1
  • (deps) Upgrade arm-gic to 0.2
  • (kernel) Specify hermit-macro version
  • (deps) Update Cargo.lock

🚜 Refactor

  • (x86_64/paging) Use higher-ranked trait bounds
  • (x86_64/mm) Merge kernel_heap_end functions
  • (x86_64/mm) Make kernel_heap_end non-const
  • (x86_64/mm) Explicitly work with page table indices for kernel_heap_end
  • (fd) Replace ObjectInterface::ioctl with set_status_flags

🎨 Styling

  • Format hermit-builtins
  • Sort hermit-builtins exports
  • (x86_64/apic) Rename typ to ty for types
  • (hermit-macro) Reorder Cargo.toml

⚙️ Miscellaneous Tasks

  • Run format job for hermit-builtins
  • Test virtio-net on UEFI
  • Activate httpd target for riscv64
  • Upgrade toolchain channel to nightly-2025-03-15
  • (hermit-macro) Add authors, repository to Cargo.toml

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

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy