Releases: hermit-os/kernel
Releases · hermit-os/kernel
0.8.0
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 tovirtio-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 ofsys_shutdown_socket
by @mkroening in #1220 - feat(virtio-net): enable
VIRTIO_NET_F_MQ
and testVIRTIO_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
- ci: upgrade OpenSBI to version 1.4 by @mkroening in #1139
- riscv64: replace deprecated legacy extensions to SBI 2.0 extensions by @luojia65 in #1088
- fix(riscv64): remove
dbg!
invocation by @mkroening in #1143 - fix(virtio/pci): use volatile accesses for device features by @mkroening in #1146
- refactor(macro): replace
syn::parse2(quote!
withparse_quote!
by @mkroening in #1147 - ci: enable fs feature for rusty_demo by @mkroening in #1126
- chore: upgrade to nightly-2024-04-15 by @stlankes in #1148
- virtq: specify endianness by @cagatay-y in #1141
- fix(virtio/pci): put common config into volatile reference by @mkroening in #1145
- fix(aarch64): add size of
_private
toTaskTLS
allocation by @mkroening in #1155 - perf: forward default allocator methods and remove memory overprovisioning by @SFBdragon in #1045
- virtio_net: use smoltcp methods instead of hardcoding field offsets by @cagatay-y in #1161
- fix(gem-net): clippy warnings by @mkroening in #1163
- fix(x86_64): virtio-net-device (MMIO) by @mkroening in #1164
- fix(x86_64/newlib): remove unused import by @mkroening in #1169
- new: Add colored log levels by @camnwalter in #1171
- virtq: use a struct with the actual layout rather than a struct of references by @cagatay-y in #1150
- fix(microvm): explicitly disable ACPI by @mkroening in #1180
- fix(x86_64): make
CoreLocal
#[repr(Rust)]
again by @mkroening in #1172 - fix(abi): various typedefs by @mkroening in #1179
- remove typo with in debug message by @stlankes in #1183
- refactor(mm): replace
freelist
module withfree-list
crate by @mkroening in #1182 - fix(x86_64): shutdown using triple fault on all platforms by @mkroening in #1181
- fix(virtio/pci): compare capabilities length with proper struct size by @mkroening in #1185
- fix(POSIX/time): make subsecond fields signed and use
timespec
instat
by @mkroening in #1196 - Virtq refactor by @cagatay-y in #1174
- style: sort dependencies in
Cargo.toml
by @mkroening in #1198 - fix(xtask): run clippy on virtio-mmio configurations by @mkroening in #1199
- refactor(virtio): move feature definitions to
virtio-def
by @mkroening in #1197 - refactor(virtio-net): migrate header to virtio-spec by @mkroening in #1202
- refactor(virtio): migrate to
virtio-spec::FeatureBits::requirements_satisfied
by @mkroening in #1203 - Fix device notification by @stlankes in #1206
- fix conversion from IpAddress::Ipv4 to in_addr by @stlankes in #1207
- add file attributes for mounted directories by @stlankes in #1209
- build: update toolchain
nightly-2024-05-15
by @mkroening in #1208 - add option to open a directory by @stlankes in #1210
- Added no_mangle to all extern C functions by @CarlWachter in #1216
- fix(virtio-pci):
next_ptr
+cfg_ptr
offsets by @jounathaen in #1218 - fix(syscalls): use
EAI_*
constants from FreeBSD by @mkroening in #1222 - fix(syscall): always return zero on
sys_getpid
by @mkroening in #1221 - add system calls
readv
andwritev
by @stlankes in #1219 - add basic DNS support by @stlankes in #1211
- fuse: provide header and payloads separately by @cagatay-y in #1204
- add option to define the DNS servers at compile time by @stlankes in #1224
- introduce public interface to shutdown the system by @stlankes in #1227
- add interface to create a directory by @stlankes in #1228
- move all filesystem functions to crate::fs by @stlankes in #1229
- remove unneeded unwraps by @stlankes in #1230
- ci: workaround bad mio branch by @mkroening in #1236
- refactor(virtio/mmio): migrate
MmioRegisterLayout
tovirtio-spec
by @mkroening in #1231 - refactor(virtio/mmio): migrate
IsrStatusRaw
tovirtio-spec
by @mkroening in #1239 - fix(virtio): notification location calculation by @mkroening in #1238
- fix(virtqueue):
next_off
must not be shifted for notification data by @mkroening in #1240 - refactor(virtio/pci): migrate
IsrStatusRaw
tovirtio-spec
by @mkroening in #1244 - refactor(virtio): migrate
DevId
tovirtio-spec
by @mkroening in #1245 - refactor(virtio/pci): migrate
CfgType
tovirtio-spec
by @mkroening in #1246 - refactor(virtqueue): make several types smaller by @mkroening in #1241
- reduce the number of log messages by @stlankes in #1252
- fix(fuse): potential panic on unknown mode bits by @mkroening in #1251
- add warning if HERMIT_IP is set and dhcpv4 feature is enabled by @stlankes in #1254
- refactor(pci): use more of the
pci_types
crate by @mkroening in #1250 - fix(virtio/pci): remove
ComCfgRaw
by @mkroening in #1255 - build(deps): update volatile to version 0.6 by @mkroening in #1258
- chore: upgrade toolchain channel to
nightly-2024-06-01
by @mkroening in #1259 - add option to use a busy waiting within the idle loop by @stlankes in #1243
- refactor(virtio/transport): move notification location calculation into
NotifCfg
by @mkroening in #1262 - fix(x86_64/pci): incorporate function in
ConfigRegionAccess
by @mkroening in #1256 - refactor(virtio/pci): migrate PCI capabilities to virtio-spec by @mkroening in #1257
- chore: release version 0.8.0 by @mkroening in #1263
New Contributors
- @luojia65 made their first contribution in #1088
- @SFBdragon made their first contribution in #1045
- @camnwalter made their first contribution in htt...
0.7.0
Highlights
- Detect memory from fdt by @duanyu-yu in #1074
- fuse: reduce copying and handle errors by @cagatay-y in #1084
- build(deps): bump hermit-entry from 0.9.10 to 0.10.0 by @mkroening in #1132
- Hermit now requires at least the Hermit loader
v0.5.0
or Uhyvev0.3.0
- Hermit now requires at least the Hermit loader
What's Changed
- Use a trait for the common Virtq interface by @cagatay-y in #1053
- improve compatibility to the BSD socket layer by @stlankes in #1085
- remove obsolete code by @stlankes in #1086
- ignore unsupported kernel flags by @stlankes in #1094
- add option to start a simple shell as async task by @stlankes in #1096
- introduce feature flag
nostd
to boot the kernel withoutstd
by @stlankes in #1098 - feat: implement system calls with attribute proc macro by @mkroening in #1105
- fix(fuse): fix fat pointer metadata by @mkroening in #1112
- fuse: fix incorrect len field in command headers by @cagatay-y in #1113
- feat(shutdown): always try qemu debug exit for error codes by @mkroening in #1119
- feat: align Uhyve mount path to virtiofsd by @mkroening in #1120
- fix(riscv64): make time stubbing warning less noisy by @mkroening in #1131
- refactor: make platform matches non-exhaustive by @mkroening in #1133
New Contributors
- @duanyu-yu made their first contribution in #1074
Full Changelog: v0.6.9...v0.7.0
0.6.9
What's Changed
- refactor(eventfd): use
ready!
to extractPoll::Ready
by @mkroening in #1067 - fix(executor): replace
Pin::new_unchecked
withpin!
by @mkroening in #1072 - prepare kernel to use it as monolithic kernel by @stlankes in #1069
- refactor(scheduler): use
ready!
for extractingPoll::Ready
by @mkroening in #1077 - improve compatibility to BSD sockets by @stlankes in #1081
- add error number in thread local storage by @stlankes in #1082
Full Changelog: v0.6.8...v0.6.9
0.6.8
Hightlights
- add basic support of a virtual filesystem by @stlankes in #1013
- add support of a unix-like poll function by @stlankes in #1046
- add basic support a linux-like syscall
evendfd
by @stlankes in #1052 - Refactor FUSE by @cagatay-y in #1047
- fix(x86_64): support GNU variant of TLS by @mkroening in #1062
What's Changed
- add feature
syscall
to run kernel as standalone application by @stlankes in #1011 - if the feature
syscall
is enabled, don't switch the stack by @stlankes in #1012 - rename the feature "syscall" to "common-os" by @stlankes in #1026
- doc: fix broken internal links by @cagatay-y in #1023
- using crate semihosting on aarch64 by @stlankes in #1040
- fix: overflow in time calculation on AArch64 by @mkroening in #1041
- chore: add
.vscode/settings.json
by @mkroening in #993 - forward error code to the host by @stlankes in #1048
- unlink is only able to delete a file by @stlankes in #1049
- Remove Pinned by @cagatay-y in #983
- add CI tests for the MIO support by @stlankes in #1061
- perf(fs/mem): minimize locking duration of pos by @mkroening in #1066
- fix(eventfd): add explicit guard drop to avoid deadlock by @mkroening in #1065
- refactor(PollEvent): simplify flag propagation by @mkroening in #1064
Full Changelog: v0.6.7...v0.6.8
0.6.7
Highlights
- feat: make ready for instrumentation by @mkroening in #991
- feat: make hermit-builtins a workspace root by @mkroening in #1004
- feat: add
sys_image_start_address
by @mkroening in #999 - add recvfrom and sendto support by @stlankes in #1007
What's Changed
- ci: test everything with SMP by @mkroening in #994
- chore: update Rust to
nightly-2023-12-01
by @mkroening in #996 - ci: use latest Firecracker after 1.5.1 release by @mkroening in #1000
- fix(AP Boot): remove
nop
s by @mkroening in #1001 - build: upgrade to nightly-2023-12-15 by @mkroening in #1006
- chore: release version 0.6.7 by @mkroening in #1009
Full Changelog: v0.6.6...v0.6.7
0.6.6
Highlights
- feat: add 64-bit RISC-V support by @mkroening in #800
What's Changed
- chore: upgrade to nightly-2023-10-01 by @mkroening in #939
- chore: remove explicit dependency on tock-registers by @mkroening in #938
- chore: remove clippy allow for false positive by @mkroening in #944
- ci: only cache the main branch by @cagatay-y in #947
- fix(net): deallocate network buffers by @mkroening in #943
- ci: use a matrix for test configurations by @cagatay-y in #940
- ci: improve caches by @mkroening in #954
- refactor: use cfg-if for arch module by @mkroening in #948
- ci: pin firecracker to 1.4.1 by @mkroening in #965
- chore: upgrade to nightly-2023-10-15 by @mkroening in #956
- Minimize casts to pointers by @cagatay-y in #964
- chore: upgrade to nightly-2023-11-01 by @mkroening in #970
- chore: rename rusty-loader to hermit-loader by @mkroening in #971
- collect configuration of mmio devices by @stlankes in #968
- chore: upgrade to nightly-2023-11-15 by @mkroening in #977
- fix(rust-toolchain.toml): remove
x86_64-unknown-none
by @mkroening in #978 - fix(xtask): misc by @mkroening in #980
- chore: release version 0.6.6 by @mkroening in #990
New Contributors
- @cagatay-y made their first contribution in #947
Full Changelog: v0.6.5...v0.6.6
0.6.5
Highlights
- NASM is no longer required for SMP on x86-64 (#926)
What's Changed
- improve the readability by @stlankes in #845
- avoid unneeded programming of the timer interrupt by @stlankes in #847
- add support of VIRTIO_NET_F_MRG_RXBUF by @stlankes in #848
- build: upgrade Rust to nightly-2023-08-15 by @mkroening in #854
- fix: support lib tests on Apple Silicon by @mkroening in #856
- refactor(Cargo.toml): sort tests, features, dependencies by @mkroening in #858
- feat: rename crate to hermit-kernel by @mkroening in #860
- chore: adapt to hermit-rs' kernel renaming by @mkroening in #863
- chore(Cargo.toml): remove CMakeLists.txt from exclude by @mkroening in #862
- chore: rename RustyHermit to Hermit by @mkroening in #864
- chore: remove GitLab CI config by @mkroening in #861
- build(deps): upgrade zerocopy from 0.6.3 to 0.7.0 by @mkroening in #869
- feat: initialize heap after paging by @mkroening in #857
- chore(Cargo.toml): omit patch version from dependencies by @mkroening in #871
- fix(comments): fix repo links in TODOs by @mkroening in #872
- Updated Logo by @jounathaen in #873
- refactor: remove get_tls_* functions by @mkroening in #874
- ci: set network tests on aarch64 to continue-on-error by @mkroening in #876
- refactor(env): replace get_cmdline, get_cmdsize with args by @mkroening in #875
- create dummy folder to share files between host and guest by @stlankes in #883
- return error also in the closing state by @stlankes in #881
- add basic UDP support by @stlankes in #882
- build(toolchain): update to nightly-2023-09-01 by @mkroening in #885
- build(deps): upgrade talc to version 3 by @mkroening in #890
- add CI test for the UDP support by @stlankes in #891
- ci: change UDP port to 9975 by @mkroening in #892
- ci: run on main branch too to create caches by @mkroening in #893
- ci: cache the kernel workspace too by @mkroening in #894
- fix(aarch64): properly disable interrupts on mutexes by @mkroening in #896
- add KVM tests with uhyve, qemu and firecracker by @stlankes in #895
- fix: proper firecracker shutdown by @mkroening in #901
- ci: reorder kvm job by @mkroening in #902
- ci: install kernel toolchain too by @mkroening in #907
- feat(xtask): add ci subcommand by @mkroening in #879
- fix(scheduler): move cursor creation to first use by @mkroening in #908
- style(xtask): use Self instead of Arch in impl by @mkroening in #909
- refactor(scheduler): simplify add_network_timer by @mkroening in #915
- publish main branch (master isn't longer supported) by @stlankes in #916
- ci: add
-y --no-install-recommends
for self-hosted by @mkroening in #919 - chore: upgrade hermit-sync to 0.1.5 by @mkroening in #918
- chore: upgrade to nightly-2023-09-15 by @mkroening in #920
- Make
core_scheduler
sound by @mkroening in #912 - Extend the FUSE support by @stlankes in #917
- Replace HermitCore with Hermit by @mkroening in #927
- feat: remove NASM dependency by @mkroening in #926
- fix(paging): add debug functionality for identity mapped pagetables by @sarahspberrypi in #928
- chore: release version 0.6.5 by @mkroening in #933
New Contributors
- @sarahspberrypi made their first contribution in #928
Full Changelog: v0.6.4...v0.6.5
v0.6.4
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
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
0.6.2
What's Changed
- disable kaniko cache by @stlankes in #711
- Make CoreLocal repr(C) by @nathanwhyte in #705
- Implements PriorityTaskQueue with std's LinkedList rather than a custom linked list implementation by @michaelRichards99 in #706
- Change alignment of virtiofs structs to be based on the first field. by @joannejchen in #709
- Replace use of internal syscalls by @nathanwhyte in #715
- virtio-net: Replace AsSliceU8 trait with zerocopy::AsBytes. by @joannejchen in #716
- Add basic docs for timer and semaphore syscalls by @nathanwhyte in #719
- remove deprecated functions and use hermit-dtb from crates.io by @stlankes in #723
- add check if the idle task has to give up the processor by @stlankes in #724
- don't initialize IO-APIC for uhyve by @stlankes in #725
- remove obsolete function
detect_from_uhyve
by @stlankes in #726 - move hardware independent function is_uhyve to env by @stlankes in #728
- remove typo by @stlankes in #729
- remove trailing null characters by @stlankes in #730
- don't leak memory if the environment is empty by @stlankes in #731
- revise aarch64 support by @stlankes in #732
- add RTC support and determine boot time by @stlankes in #733
- revise assertion by @stlankes in #734
- revise TLS handling by @stlankes in #736
- using arm-gic to programm the ARM Generic Interrupt Controller by @stlankes in #741
- Delete bors.toml by @mkroening in #742
- revise PCI support by @stlankes in #745
- test also the virtio network interface by @stlankes in #747
- add option to program the the PCI bars by @stlankes in #748
- remove old socket interface by @stlankes in #681
- remove compiler warnings for the target aarch64 by @stlankes in #751
- remove some clippy warnings by @stlankes in #752
- use within an interrupt handler scheduler::abort instead of syscall exit by @stlankes in #753
- remove unneeded code by @stlankes in #754
- use kernel stack to allocate memory by @stlankes in #755
- Update Cargo.lock by @mkroening in #762
- take always the oldest task from the queue by @stlankes in #764
- Update Rust to nightly-2023-06-14 by @mkroening in #763
- CI (ARM): Pin CPU by @mkroening in #767
- AArch64: use a software-generated interrupt (SGI)to reschedule the system by @stlankes in #765
- Release version 0.6.2 by @mkroening in #766
New Contributors
- @nathanwhyte made their first contribution in #705
- @michaelRichards99 made their first contribution in #706
- @joannejchen made their first contribution in #709
Full Changelog: v0.6.1...v0.6.2