Releases: nanovms/nanos
Releases · nanovms/nanos
0.1.52
What's Changed
- getsockopt(SOL_TCP): add support for TCP_INFO and TCP_CONGESTION by @francescolavra in #2035
- On-demand program file paging: fix initialization of BSS areas by @francescolavra in #2032
- Aarch64 physical ID heap: fix setting of memory end address by @francescolavra in #2038
- exec_elf_finish(): add setting of cwd for non-static executables by @francescolavra in #2036
- pci_discover(): fix missing probe of bus 0 by @francescolavra in #2039
- Memory mapping: add support for Transparent Huge Pages (THP) by @francescolavra in #2037
- ARM: add parsing of device tree blob by @francescolavra in #2043
- ARM: add support for Azure instances by @francescolavra in #2041
Full Changelog: 0.1.51...0.1.52
0.1.51
What's Changed
- virtio-net: add multiqueue support by @francescolavra in #2011
- pagecache: fix on-demand mapping of evicted pages by @francescolavra in #2016
- timm_dealloc(): fix handling of tuples that reference
timm_oom
by @francescolavra in #2018 - TFS: fix handling of storage operations on uninited extents by @francescolavra in #2017
- x86: setup_initmap(): fix mapping of initial pages by @francescolavra in #2019
- adding in initial doxygen by @eyberg in #2020
- build(deps): bump golang.org/x/crypto from 0.0.0-20220321153916-2c7772ba3064 to 0.17.0 in /test/go by @dependabot in #2021
- x86: fix overlapping of kernel addresses with vsyscall page by @francescolavra in #2023
- bump xcode by @eyberg in #2026
- Azure: implement sending memory metrics via diagnostic extension by @francescolavra in #2022
- memfd_create(): add support for file sealing by @francescolavra in #2027
- scheduler: add support for CPU affinity (thread pinning) by @francescolavra in #2024
- Klibs: add strace by @francescolavra in #2028
- rm nightly x86 mac runner; change default mac runner to arm by @eyberg in #2031
- Virtio-9P device attach: fix initialization of virtio_9p struct by @francescolavra in #2030
New Contributors
- @dependabot made their first contribution in #2021
Full Changelog: 0.1.50...0.1.51
0.1.50
What's Changed
- E2E tests: ruby: remove sinatra gem install and GEM_HOME env var by @francescolavra in #1990
- cloud_init: fix errors when loaded before acquiring IP address by @francescolavra in #1992
- ELF exec: add AT_BASE entry to auxiliary vector by @francescolavra in #1991
- Kernel heaps: add page heap by @francescolavra in #1994
- Strings: remove unbounded memory access by @francescolavra in #1995
- Hyper-V: netvsc: fix setting of pbuf length in received packets by @francescolavra in #1997
- Klibs (x86_64): add User-Managed Concurrency Groups by @francescolavra in #1996
- Memory leak fixes by @francescolavra in #2001
- virtIO fixes by @francescolavra in #2002
- Security: add kernel address space layout randomization (KASLR) by @francescolavra in #2004
- Syscalls: add support for memfd_create by @francescolavra in #2005
- Closures: add closure struct definition to closure_type() macro by @francescolavra in #2006
- tmpfs_create(): add missing initialization of return value by @francescolavra in #2009
- uname: add configurability of sysname and release by @francescolavra in #2008
- Klibs: add DigitalOcean metrics agent by @francescolavra in #2007
- Fixing linker warnings by @francescolavra in #2012
Full Changelog: 0.1.49...0.1.50
0.1.49
0.1.48
0.1.47
stage2, uefi: allocate untyped buffers from tagged region This addresses a long-standing bug in targets that use a rewind tag for values (specifically the stage2 and uefi bootloaders), whereby an untyped buffer allocation was being allocated without creating space for the tag type. This could manifest in an incorrect tag type being read for a buffer. To remedy this, an additional tagged region heap is created of type tag_unknown, and untyped buffer values (currently only coming from decode_value() when using an old TFS encoding for backward compatibility) are allocated from that heap.
0.1.46
0.1.45
netlink RTM_GETADDR: add support for AF_INET6 and AF_UNSPEC This adds netlink support for reporting IPv6 interface addresses via the RTM_GETADDR request. It also handles the AF_UNSPEC address family by reporting both IPv4 and IPv6 addresses.
0.1.44
ATA: honor maximum number of sectors in each I/O request This commit adds a new function to the ATA disk driver to retrieve the maxiumum number of sectors that can be submitted in a single I/O request, which depends on whether LBA48 addressing is supported. This new function is called by both the x86_64 bootloader and the kernel ATA PCI driver, which check the maximum sector count value to split each I/O request so that it doesn't exceed the limit. This fixes booting on vsphere VMs with IDE disk emulation.
0.1.43
Klibs: AWS CloudWatch: add support for sending logs This change implements a new console driver that sends log messages to AWS CloudWatch when Nanos runs on an AWS instance. This feature is enabled by loading the cloudwatch and tls klibs and adding a "logging" tuple to the "cloudwatch" tuple in the root tuple. The "logging" tuple may contain the following attributes: - "log_group": specifies the CloudWatch log group to which log messages should be sent; if not present, the log group is derived from the image name (taken from the environment variables), or from the name of the user program if no IMAGE_NAME environment variable is present - "log_stream": specifies the CloudWatch log stream to which log messages should be sent; if not present, the log stream is derived from an instance identifier (e.g. 'ip-172-31-23-224.us-west-1.compute.internal') The log group and the log stream are automatically created if not existing. In order for the cloudwatch klib to retrieve the appropriate credentials needed to communicate with the CloudWatch Logs server, the AWS instance on which it runs must be associated to an IAM role with the CloudWatchAgentServerPolicy, which must grant permissions for the logs:PutLogEvents, logs:CreateLogGroup, and logs:CreateLogStream actions, as described in https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html Example contents of Ops configuration file: ``` "ManifestPassthrough": { "cloudwatch": { "logging": {"log_group":"my_log_group","log_stream":"my_log_stream"} } } ```