페도라 한국 사용자 모임

VDSO (Virutal Dynamic Shared Object)

게시판 Tech/Tip VDSO (Virutal Dynamic Shared Object)

  • This topic has 1개 답변, 2명 참여, and was last updated 11 years 전에 by ELem. This post has been viewed 25 times
  • 만든이
  • #12042
    • 게시글141
    • 댓글379
    • 총합520
    • ★★

    * 외국얘들과 IRC으로 논의하면서 정리했던 노트입니다.

    About VDSO (Virutal Dynamic Shared Object)

     (Roland MCGrath's VDSO Linux Patch)

    Virtual Dynamically-linked Shared Object, a kernel-provided shared library that helps userspace
    perform a few kernel actions without the overhead of a system call, as well as automatically
    choosing the most efficient syscall mechanism. Also called the "vsyscall page".

    vDSO is virtual Dynamic Shared Object and the vdso32 is designed to prevent stack overflow.
    A shared object exposed by the kernel at a fixed address in every process' memory.
    We can verify  vDSO map information via "#>cat /proc//maps".
    So that instead doing int80 or SYSCALL, the app can simply jump to vDSO address and
    passing required parameters. the vDSO will decide which one will be used,
    newer SYSCALL/SYSENTER or int 0x80 depending on machine capability or other settings.
    Actually "lib/modules/vdso" are part of kernel, but made accessible from user space.

    Roland MCGrath's VDSO Linux Patch is located in website.
    This patch makes CONFIG_COMPAT_VDSO disable the real vma and  use the fixmap area consistently.
    This makes it actually compatible with what the old vdso implementation did.
    If "/proc/sys/vm/vdso_enabled" turned on, the kernel randomizes the vDSO address as early as possible.

    * 오픈소스는 Open Innovationa & 윈윈전략을 도모할 지언정 절대 공짜(무료)임을 뜻하지 않는다.치

0 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #12595
      • 게시글67
      • 댓글672
      • 총합739
      • ★★

      뭐..뭔가 현업 뛰시는분들은 다르시군요;

0 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.