TGViewer
OS Internals OS Internals @oxaa55 · 3.64K subscribers
Post #122 3.78K
نحوه‌ی استفاده‌ی لینوکس از vDSO برای سرعت بخشیدن به فراخوانی‌های سیستمی

اگر ساختار حافظه‌ی پروسه‌های لینوکسی را مشاهده کنید (مثلا از طریق cat /proc/pid/maps) در کنار بخش‌های مربوط به کد، داده، پشته، هیپ و کتابخانه‌های استفاده شده در برنامه، دو بخش نیز مشاهده می‌شود که عناوین vsyscall/vdso دارند که آدرس‌های یکی مربوط به Kernel Mode بوده و دیگری آدرس‌های User Modeای دارد.

این دو، مکانیزم‌هایی هستند که برای سرعت بخشیدن به اجرای syscallهایی که نرخ فراخوانی بالایی دارند استفاده می‌شوند. یکی از این syscallها gettimeofday است که به صورت مستقیم و غیر مستقیم توسط تعداد زیادی از توابع کتابخانه‌ای فراخوانی می‌شود و به دلیل سنگین بودن فراخوانی syscall و رفتن به Kernel و پردازش درخواست و بازگشتن به User Mode در فضای آدرس‌دهی پروسه قرار می‌گیرند که کار فراخوانی سریع‌تر شده و نیاز به طی مسیر پیش‌فرض syscallها نباشد.

در لینوکس کل فضای در اختیار پروسه در دسترس بوده و امکان dump آن به کمک dd وجود دارد. در این ویدئو مروری بر روی کاربرد vDSO انجام گرفته، علت استفاده از آن به جای vsyscall شرح داده شده و به dump و بررسی vDSO‌ و مشاهده‌ی توابع تعریف شده در آن می‌پردازیم.

ℹ️پ.ن: اگر دوست دارید که جزئیات system callها را در لینوکس بدانید، لینک انتهای پست را در کانالم چک کنید. من قبلا در یک ارائه جزئیات system callهای لینوکس از شیوه‌ی تعریف آن‌ها، نحوه‌ی اضافه کردن یک syscall به کرنل لینوکس و جزئیاتی که در فراخوانی system callهای لینوکس وجود دارد را به صورت کامل شرح داده‌ام که می‌توانید ویدئوی آنرا مشاهده کنید.

لینک ویدئوی vDSO در یوتیوب:
https://youtu.be/UK6annv-t-s
لینک ویدئوی vDSO در آپارات:
https://aparat.com/v/7HRz1
لینک پست مربوط به جزئیات syscall در لینوکس:
https://t.me/OxAA55/87

#ShortLinuxInternals #linux #internals #syscalls #systemcalls #ELF #dump #memory
YouTube Virtual Dynamic Shared Object (vDSO) in Linux [PER] اگر ساختار حافظه‌ی پروسه‌های لینوکسی را مشاهده کنید (مثلا از طریق cat /proc/#pid#/maps) در کنار بخش‌های مربوط به کد، داده، پشته، هیپ و کتابخانه‌های استفاده شده در برنامه، دو بخش نیز مشاهده می‌شود که عناوین vsyscall/vdso دارند که آدرس‌های یکی مربوط به Kernel…
  • ❤ 12
  • 👏 4
More from @oxaa55
  1. Sep 24, 2026🎯Inside the MBR: How the 512-Byte Boot Sector and Partition Tables Work ⁉️تا حالا به این…
  2. Aug 21, 2026🔸 کارگاه تخصصی «Linux Kernel Internals» اگر با Linux کار می‌کنید، شناختن دستورات و مدیریت…
  3. Aug 14, 2026OS Internals pinned «🚀 دوره‌ی Foundations of Linux Reverse Engineering and Exploitation ب…
  4. Aug 14, 2026🚀 دوره‌ی Foundations of Linux Reverse Engineering and Exploitation به صورت کامل منتشر شد!…
  5. Jun 3, 2026سلام به همه عزیزان، یکی از کارهایی که تجربه خیلی با ارزشی است و یادگیری زیادی داره، کار کر…
  6. Dec 12, 2025📢 انتشار فصل هفتم دوره Linux Exploit Development ℹ️ جزئیات ساختار فایل‌های ELF. مشاهده‌ی…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →