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
Commit 1d84f3dd98e ("build: make all linker scripts preprocessable")
introduced preprocessable l...
Now that we have preprocessor support, we can use it to make some of
these numbers more expressi...
On contrary to previously existing scheme, the *.dbg image is a fully
functional binary now. A u...
The last patch introduced read-only pages into the page table. However,
unless the WP flag is se...
The main effect is that trying to read or write from the null pointer or
very low addresses (tha...
Signed-off-by: Florian Schmidt <[email protected]>
Reviewed-by: Simon Kuenzer <simon.kue...
For newlib we will be using this same header, thus we move it to
ukunistd library.
Signed-off-b...
github.com/unikraft/unikraft - bbcb60ce66721a07a20c206e7dd427f0ec59feb2 authored over 5 years ago by Costin Lupu <[email protected]>
Library to provide access to info about system parameters. Only
fpathconf, sysconf, confstr, pat...
The header was adapted from newlibc, release version 2.5.0.20170922.
Signed-off-by: Vlad-Andrei...
github.com/unikraft/unikraft - 2000379181e8b64dac565b624dfc36046de3f6a8 authored over 5 years ago by Vlad-Andrei BĂDOIU (78692) <[email protected]>
Signed-off-by: Vlad-Andrei Badoiu <[email protected]>
Reviewed-by: Costin Lupu ...
The pid_t type is needed by pwd.h which is added in the next patch. This patch
enables it via a ...
This patch adds the pwd.h header. The implementation follows the posix
specifications and is ins...
Signed-off-by: Vlad-Andrei Badoiu <[email protected]>
Reviewed-by: Costin Lupu ...
Signed-off-by: Vlad-Andrei Badoiu <[email protected]>
Reviewed-by: Costin Lupu ...
Patch a554f82f unified the symbol definition for linker script symbols.
They are now all pointer...
Since commit 9e3470a6a, `/plat/Linker.uk` includes each platform's
`Linker.uk` file by iterating...
Spin_lock_irq* variants are used for synchronizing data that might be
accessed from within an in...
If len=0x7ec2000, when using the formula we get memr->nr_pages=32448. On
the other hand range va...
The vfscore_fops structure has been depreciated in
a recent patch. Now we're using vnops. This p...
Gcc generates them anyways. Let's take a little control over what it
does.
Signed-off-by: Yuri ...
github.com/unikraft/unikraft - e6a88d61f12d9e839289070969b435425587ee90 authored over 5 years ago by Yuri Volchkov <[email protected]>
The option --build-id=none is enabled only for LDFLAGS, but not for
LIBLDFLAGS. This creates a s...
By setting UK_PLAT_*_LINKER, a platform library can now set the path and
filename of the Linker....
Adds a pre-processing rule generator for M4 macro processor
files (`.m4` extension).
Signed-off...
github.com/unikraft/unikraft - 5767e8254e823981021600d9edf55c952e97f294 authored over 5 years ago by Simon Kuenzer <[email protected]>
Extends the build system with pre-processing rules. Any source file
can be pre-processed before ...
`src2dst` converts a list of sources to paths pointing to their
corresponding destination files ...
This will allow to apply some code de-duplication, and makes build
system a little bit homogeneo...
Signed-off-by: Yuri Volchkov <[email protected]>
Reviewed-by: Simon Kuenzer <simon.kuenzer...
Malloc was used for expanding ramfs buffers during writes, which does
not have to allocate zeroe...
Until now, enabling uksched did not enable ukschedcoop, which is the
only scheduler implementati...
Scheduler reference should be kept until destroying the thread,
basically during the entire life...
When thread destruction is wanted, one should kill the thread and wait
for it in order to free i...
Instead of having individual platform-global variables that hold
configuration found during setu...
Introduces a helper macro that returns the first initramdisk module
found as memory region.
Sig...
github.com/unikraft/unikraft - 69ccac9ce25dece306cbedb6fdccd59b288a8ee3 authored over 5 years ago by Simon Kuenzer <[email protected]>
In order to remember where an initrd was found in memory, we add
region definitions to the confi...
Introduce macros to test if:
- a value is part of a number range
- two ranges are overlapping
S...
github.com/unikraft/unikraft - 25e99bca27fc0aa570ef09e21e30a9b94e9b6261 authored over 5 years ago by Simon Kuenzer <[email protected]>
Add region flags to specify memory regions that contain init
modules (initramdisks).
This patch ...
Inspects Multiboot modules information to retrieve the location of an
loaded initramdisk. It wil...
Use the ukplat_memregion_foreach() macro to simplify initialization of
the memory allocator.
Si...
github.com/unikraft/unikraft - 6336687704c0728a207ef2a57069e93a62470b2b authored over 5 years ago by Simon Kuenzer <[email protected]>
Introduces two helpers for iterating over memory region descriptors:
- One helper to find a memo...
For stdio.h to provide the declaration of asprintf(), _GNU_SOURCE needs
to be defined. This need...
This fixes compiler warnings with g++.
Signed-off-by: Florian Schmidt <[email protected]...
github.com/unikraft/unikraft - 85fa9e16597b3ad1fb496221cb29911522671269 authored over 5 years ago by Florian Schmidt <[email protected]>
Macro UK_CTASSERT(cond) is borrowed from FreeBSD. If 'cond' is False,
compilation is aborted wit...
Constructors do not work if CONFIG_OPTIMIZE_DEADELIM is enabled. From
the compile perspective al...
Commit a48d634 ("lib/uklock: Use timeout equal to 0 for trying down a
semaphore") implicitly cha...
The printing routine miscalculated the amount of characters to print if
there were several newli...
By putting the ALIGN inside the .preinit_array and .init_array sections
in the linker scripts, t...
Signed-off-by: Simon Kuenzer <[email protected]>
Reviewed-by: Felipe Huici <felipe.huici@n...
If level is passed as a macro, the concatenation will paste the name
of the macro instead of the...
The priority constant had parentheses. This constant is passed into
UK_CTOR_FUNC, where parenthe...
Similar to other Unix-like OSes (e.g., Linux using `__linux__`,
FreeBSD using `__FreeBSD__`, Min...
`ar.h` defines macros and data types for working with archive files
created with the Unix `ar` t...
Signed-off-by: Simon Kuenzer <[email protected]>
Reviewed-by: Felipe Huici <felipe.huici@n...
Following the C standard, this patch moves fixed integer limit
definitions (e.g., INT8_MIN, INT8...
Separates API functions from allocator internal functions. The new
header <uk/alloc_impl.h> shou...
Expose the remaining non stubbed posix functions.
Signed-off-by: Vlad-Andrei Badoiu <vlad_andre...
github.com/unikraft/unikraft - 51a0a8e4e72f9063bf99239f09d50fea0078e9bf authored over 5 years ago by Vlad-Andrei BĂDOIU (78692) <[email protected]>
This patch introduces 'page.h' which contains page related operations. For now
it contains only ...
This patch adds a new section for the ukplat_ctortab
array. The array is NULL-terminated and con...
Signed-off-by: Vlad-Andrei Badoiu <[email protected]>
Reviewed-by: Sharan Santh...
This patch updates the constructor register from all
Unikraft internal libraries to use the UKPL...
Use `strncpy()` to retrieve the command line in KVM. This is to
simplify the routine. Additional...
This commit implements patch f897e6d8 with `mk_sub_build_dir`
instead. This change makes the way...
This patch fixes a typo in the exportedvfscore symbols. It changes the
symbol readir to readdir....
For some macrodefinitions, newlib headers do not care if they were
previously defined and this r...
Fix typo that was preventing ftruncate from being exposed
Signed-off-by: Felipe Huici <felipe.h...
github.com/unikraft/unikraft - 1519dbfb89632a0492173544ec6b980797791b7f authored over 5 years ago by Felipe Huici <[email protected]>
Expose vfs functions needed by a number of external libraries
(e.g., libuuid).
Signed-off-by: F...
github.com/unikraft/unikraft - 8189fa5ecd748148860dd445baf4a0ed7d60dd9a authored over 5 years ago by Felipe Huici <[email protected]>
Library to provide access to POSIX operating system APIs. Only
getuid is implemented for now.
S...
github.com/unikraft/unikraft - d7ab6740e7d6859d21dc81a0b83e7ba05494ac52 authored over 5 years ago by Felipe Huici <[email protected]>
Commit d1aae7129b71 ("plat: Register eh_frame and eh_frame_hdr in
memory.h") added new memory re...
Signed-off-by: Vlad-Andrei Badoiu <[email protected]>
Reviewed-by: Sharan Santh...
This patch adds the eh_frame and eh_frame hdr sections to
the linker script for both XEN and KVM...
The sa_* names as well as the CLOCK_* defines clash with newlib. To
prevent that, prefix them wi...
The Unikraft build system provides a option to include additional
linker scripts. In the current...
Signed-off-by: Sharan Santhanam <[email protected]>
Reviewed-by: Costin Lupu <costin.lu...
We add this patch to split virtio-net device from the virtio bus
library.
Signed-off-by: Sharan...
github.com/unikraft/unikraft - a7f4f2fc96939823c7631a708d3724f104180731 authored over 5 years ago by Sharan Santhanam <[email protected]>
In our current build system, the virtio libraries are enabled
with the wrong CONFIG_VIRTIO optio...
Note that this is hypervisor/emulator-specific and currently only
supports QEMU (and whoever is ...
When adding an externally-built object file to the Unikraft build via
[LIBNAME]_OBJS, the make b...
These two rules running during the prepare step expect build/kconfig/ to
exist. This happens to ...
Instructions such as xsave and xsaveopt, which are designed to save the
extended registers on re...
ukschedcoop library needs nothing more than uksched library.
Signed-off-by: Costin Lupu <costin...
github.com/unikraft/unikraft - 5c518aed6312acbae219f489131249d7c799f603 authored almost 6 years ago by Costin Lupu <[email protected]>
Re-entrancy in newlib is provided by mapping a _reent attribute to
each thread. The attribute en...
The private field may be used by the user for holding its private
information in scheduling fram...
Scheduler may reject adding threads if certain conditions are not met.
Therefore we set the sche...
Currently, uk_sched_start and uk_sched_started are the only scheduler
functions (which do not co...
STACK_MASK_TOP is used for getting the current stack address (e.g. sp &
STACK_MASK_TOP).
Signed...
github.com/unikraft/unikraft - 7e597e5843ef9ec22ab5f028533339fb101583ba authored almost 6 years ago by Costin Lupu <[email protected]>
We introduce uk_sched_create function which allocates the memory
needed for schedulers data. It ...
Thread kill function replaces the thread destroy function as the
public function for triggering ...
Similar to waiting processes, we introduce support for waiting
threads. This is the conventional...
By the default, detached flag is set on false meaning that one has to
wait for the thread in ord...
We use a list for terminated threads on all schedulers because it
keeps references to those thre...
We introduce a thread attributes abstraction which is used for
configuring thread behavior. The ...
sleep() can be implemented as a simple wrapper around nanosleep(), and
it's quite convenient for...
Multiboot drops us into protected mode with a suitable set of segment
register settings [1], so ...
The build system supports preprocessing of linker script. But in the
current implementation its ...
These seem to be a leftover from porting code from solo5, but don't
serve a purpose in our booti...
* Remove magic numbers from early boot code, replacing it with labels
and defines.
* Add and r...
Since we spend almost no time in 32-bit mode, and never do any calls or
returns, there's no reas...
In our build system, we hard code Linker.uk for the supported
platforms. This patch uses the UK_...
Platform-specific options are built even when they are
disabled in the configuration. This is fi...
The patch extends the nolibc strto* family of functions with strtol.
The implementation uses the...
In accordance with the posix documentation, strto* functions shall
report ERANGE if the correct ...