Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
Unikraft
We are developing Unikraft, a fast, secure and opensource unikernel SDK for extreme specialization.
Collective -
Host: opensource -
https://opencollective.com/unikraft
- Website: https://t.co/W6HHOLeiUN
- Code: https://github.com/unikraft/unikraft
Allow quick access to the `UEFI` System Tables through a field in
the `bootinfo` structure.
Sig...
github.com/unikraft/unikraft - 64a2dcf05788a0b6000754ec203405c909659a88 authored over 1 year ago by Sergiu Moga <[email protected]>
Redefine ACPI structures so that they comply with the coding style
and fix Local SAPIC's wrong d...
Since all structures calculate their checksum in the same manner,
use only one general checksum ...
Begin by taking the setting up of the `EFI System Partition` layout
from `mkukefiiso` into a sep...
Resolve output file ambiguity by explicitly asking for it through
one of the command-line option...
Support adding a `Devicetree Blob` trough the `-d` option.
Signed-off-by: Sergiu Moga <sergiu.m...
github.com/unikraft/unikraft - d232a089d4fb775daf694c88d37ef8c536648530 authored over 1 year ago by Sergiu Moga <[email protected]>
Move the making of `GRUB ISO` images into its own method to make the
script more modular and mak...
Give the script the ability to build `UEFI` bootable `ISO`'s.
The `FAT32` image contained within...
Change command-line option to `-c` to make it more intuitive.
Furthermore, make it so that the ...
github.com/unikraft/unikraft - a8572d2bc6fd26c592e19992ccae068dd58f857a authored over 1 year ago by Sergiu Moga <[email protected]>
Preferably, a UEFI system is also an ACPI system and thus these
functionalities should be implem...
Implements the small ARM specific UEFI entry point which will call
the early self relocator, and...
This enables the EFI stub to load a Devicetree Blob file from the
same filesystem that the Unikr...
Implement a stub that comes after the architecture generic EFI stub
calls the routine that exits...
If `CONFIG_EFI_STUB` is enabled, add to the build system the ARM UEFI
entry stub and the ARM spe...
This script allows patching of the architecture specific fake PE
headers. It only fills in the f...
If `CONFIG_EFI_STUB` is enabled, add to the build system the fake PE
header, the architecture ge...
Implement a stub that comes after the architecture generic EFI stub
calls the routine that exits...
Define initial subset of UEFI specification structures and
definitions.
Signed-off-by: Sergiu M...
github.com/unikraft/unikraft - 809d09cfa5305a14502a9c06fa32a9acec6d1717 authored over 1 year ago by Sergiu Moga <[email protected]>
This enables the EFI stub to load an initial RAM disk file from the
same filesystem that the Uni...
Implement support to pass command-line arguments through Unikraft's
`struct ukplat_bootinfo`.
T...
github.com/unikraft/unikraft - 99e3389f3d6bc745f33b9018cbf6643669c8e4e5 authored over 1 year ago by Sergiu Moga <[email protected]>
Define the minimum subset of EFI definitions required to be able to
do file I/O in an UEFI envir...
Add an architecture generic EFI stub that sets up a
`struct ukplat_bootinfo`'s memory region des...
Add a description and proper dependencies for the
`KVM_BOOT_PROTO_LXBOOT` configuration entry. S...
Add a description and proper dependencies for the
`KVM_BOOT_PROTO_MULTIBOOT` configuration entry...
Add a configuration option to build the Unikernel as a valid,
loadable UEFI application. Make it...
Implements the small x86 specific UEFI entry point which will call
the early self relocator, adj...
Add `Trusted Computing Group`'s `Reset Attack Mitigation` mechanism.
Whenever a machine shuts do...
This commit corrects the output of the `properclean` make target. Instead
of just outputting `RM...
Starting with QEMU version 8.0, the `-device sga` parameter is removed from
the command line bec...
This commit adopts the preconfigured cross-compile prefixes for
Darwin (MacOS). It is assumed th...
This commit introduces native support for QEMU installations on
Darwin (MacOS). Apple's hypervis...
This commit introduces a replacement for `build/config-submenu.sh`. The
main reason for the rewr...
Enables X2APIC when TCG mode is selected. As soon as QEMU is available,
this should enable runni...
This commit sets `python3` as the default command for `python` scripts. It
is made available wit...
This commit intorduces thwe build variable $(HOSTOSENV) which contains the
host environmenrt (e....
This commit updates our internal copy of Kconfiglib to the latest version
from upstream: https:/...
This commit enables `kconfiglib` for configuration targets on non-Linux
host environments. Only ...
This commit updates the compiler version checking helpers so that they also
work under environme...
Add a hint on Darwin how to install a newer GNU make version if the
detected make version is too...
This commit creates the build folder substructure ealier, except that a
target was called that d...
The build system depends on the GNU version of `sed`. Since this is
typically installed with `gs...
Make use of `ukplat_memregion_list_insert_at_idx` in order to make
insertion faster in `ukplat_m...
Now that we rely on `ukplat_memregion` generic API's, we have no
more need for linuxu configurat...
We use this region to write to the VGA console and Firecracker also
keeps this area clear. This ...
Flushing the TLB introduces an unnecessary performance penalty if we
are modifying a page table ...
Now that we can dynamically decide the `SIPI Vector`, make sure
we do this allocation when all t...
Since there is a chance that the previous boot phase did not mark
this area as reserved through ...
Keep the `e820` enries below `1 MiB` that we were passed through
`Multiboot1` and rely on the un...
Now that we rely on `ukplat_memregion` generic API's, we have no
more need for KVM configuration...
Rely on the generic `ukplat_memregion` API's for memory region
management and drop `_libkvmplat_...
Add an inline function that simply allocates a reserved memory region
meant for the `SIPI Vector...
Add a memory region descriptor to indicate the range we are meant to
unmap when paging is initia...
Commit f0ae44de725f ("plat/kvm/x86: Workaround re-mapping low-mem areas")
introduced this check ...
Re-define `mem_init` into `ukplat_mem_init` that does the same thing,
but does not assume what r...
Since the `paging_init` function of the x86 KVM subsystem is written
in a generic manner, it can...
In order not to generate undefined references when building and
not to unmap anything, add an em...
In order not to generate undefined references when building and
not to unmap anything, add an em...
Add a memory region descriptor to indicate the range we are meant to
unmap when paging is initia...
Write a short inline function to insert the x86 legacy high memory
area right below the first 1M...
Since on `ARM64` we map all of the peripherals' I/O space statically,
make sure that we do not m...
In order to make it easier for the paging API to not invalidate the
stack, make it part of the i...
Whenever a memory region allocation request done through
`bootmemory_palloc` would require a len...
Implement the equivalent of `ukplat_memregion_list_insert` but one
that is aware of the index wh...
Since `bootmemory_palloc` can be used by any platform and
architecture and can come in handy whe...
Initialize the `heap` and `initrd` as soon as possible and move the
respective functions to `set...
Add a method that updates the `ukplat_bootinfo` structure with
relevant information extracted fr...
Add into the build process the sources required for integrating
the `struct ukplat_bootinfo` str...
Since `lcpu_arch_jump_to` can be used with and without
`CONFIG_HAVE_SMP`, move it to a place whe...
Switch to using the generic `ukplat_memregion` API's since they are
more dynamic and flexible.
...
github.com/unikraft/unikraft - f7b9ff80f1d17d75e1ba7449b80e96169c55a8d0 authored over 1 year ago by Sergiu Moga <[email protected]>
Switch to using the generic `ukplat_memregion` API's since they are
more dynamic and flexible.
...
github.com/unikraft/unikraft - f66e471d7e72ff3476f1d0006de593e1c0a00875 authored over 1 year ago by Sergiu Moga <[email protected]>
Increase `ukplat_memregion_alloc`'s memory region allocation
flexibility by giving the caller th...
Since this buffer is only meant for `ukplat_entry_argp`, which will
thrash it as a result of par...
Ensure that there are no overlapping memory regions in the memory
region descriptor list by coal...
Add a pointer to the devicetree blob's address. Since it is a
frequently accessed resource, it c...
Implement a function that, given a list of memory region descriptors,
coalesces them based on a ...
Since `build_bootinfo` can be used for other platforms as well, move
it to a more platform agnos...
Add into the build process the sources required for integrating
the `struct ukplat_bootinfo` str...
Sice `bootinfo` statically allocates space in the final image to store
Memory Region Descriptors...
Since these API's can be used on any platform and any architecture
subsystem that integrates `st...
In case we are somehow able to allocate memory from an in-image
memory hole, make sure we do not...
Since you cannot use `ukvmem` without the paging API's, it makes
sense to add a dependency on th...
Define the bits required to tell whether a page fault was generated
due to a read, write or exec...
Implement `Add PT_Lx_PTE_SET_PADDR()`, which allows to set the
physical address in a page table ...
Implement the equivalent page fault intermediary handler of the x86
one, by using the `AArch64` ...
Replace the static page table entries with relocatable ones through
the `ur_pte` macro. Thus, we...
Add a separate Linker Script containing all the required sections
to achieve positional independ...
Replace all `mov`'s and data declarations (`.long`, `.quad` etc.) that
use absolute symbol refer...
Export a linker script symbol called `_base_addr` to represent the exact
reference value used by...
Add `do_uk_reloc` a method that parses the `.uk_reloc` section and
applies the relocations accor...
Create a custom `ur_ldr` macro to replace the `ldr` instruction in
places where references to ab...
Add compiler and linker options to properly build the Unikernel as a
static PIE. For now, only K...
In order to start supporting positional independence we need to be able
to self relocate. Thus, ...
Remove the `elf32-i386` linker flag that forces the final Unikernel
binary output as a 32-bit ke...
Due to the placements of the `tls` and `tls_load` Program Headers,
The last two memory regions i...
Since it is the final binary that is loaded and executed, make sure
that `build_bootinfo` is cal...
Add a macro-definition to contain all of the common sections that are
to be discarded and edit t...
Similarly to the 64-bit C code `do_uk_reloc` self relocator,
`do_uk_reloc32` is a macro that tak...
Since `.data.boot` is meant mainly for boot specific data such as
a Multiboot header, move this ...
Pull this functionality out of `do_uk_reloc` so that other code has
access to the ability to rel...
Before waking up the secondary cores, the SMP initialization code copies
the, now position indep...