Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Provide VDSO image and __kernel_vsyscall interface #23

Closed
wants to merge 1 commit into from

Commits on Jul 28, 2023

  1. feat: Provide VDSO image and __kernel_vsyscall interface

    This patch provides the capability to automatically generate a VDSO
    (Virtual Dynamic Shared Object) image and pass it to the application.
    The VDSO contains only symbols, while its actual implementation is
    retained in the kernel, with their mapping relationship recorded in
    `vdso_mapping.conf`.
    
    Additionally, this introduces the `__kernel_vsyscall` interface,
    which allows libc to access system calls without relying on slow
    binary syscalls. The difference between `__kernel_vsyscall` and
    `uk_syscall6_r` lies in considering TLS (Thread Local Storage)
    switching, enabling both the kernel and user applications to use
    thread-local storage seamlessly. To utilize this feature, the libc
    needs to be modified accordingly, please refer to `fork-musl` [1]
    and `fork-glibc` [2] for further information.
    
    To use the VDSO, please select
    `Application Options -> Provide VDSO Image`.
    
    [1] https://github.com/unikraft/fork-musl
    [2] https://github.com/unikraft/fork-glibc
    
    Signed-off-by: Tianyi Liu <i.pear@outlook.com>
    i-Pear committed Jul 28, 2023
    Configuration menu
    Copy the full SHA
    6cf7d7f View commit details
    Browse the repository at this point in the history