TGViewer
Terminal Notes Terminal Notes @terminalnotes · 30 subscribers
Post #36 42
📌 #Tool: eBPF

اگه دواپس کار میکنید احتمالا اسم eBPF رو شنیدید. یه تکنولوژی که خیلی‌ها از شرکت‌ها مثل نتفلیکس و فیسبوک بهش وابسته‌ان.

تا قبل از eBPF، اگر می‌خواستید بدونید "دقیقا" توی سیستم‌عامل چه خبره، یا می‌خواستید روی ترافیک شبکه کنترل داشته باشید (مثل فیلتر کردن پکت‌ها یا load balancing سفارشی)، دو راه داشتید:

۱. تغییر سورس کرنل: که خب زمان بره.
۲. ماژول‌های کرنل: که دسترسی کامل داشتن، ولی یه باگ کوچیک توشون کافی بود تا همه چیز بیاد پایین.

🧭 راه حل مدرن: eBPF

خیلی ساده، eBPF یه ماشین مجازی (Virtual Machine) کوچیک و امنه که داخل خودِ کرنل لینوکس زندگی می‌کنه.
شما می‌تونید برنامه بنویسید، اون‌ها رو به کرنل تزریق کنید و کرنل اون‌ها رو اجرا کنه. اما با این مزیت که:

🔹 امنیت تضمین شده: قبل از اجرا، یه بخشی به اسم Verifier کد شما رو چک می‌کنه تا مطمئن شه لوپ بی‌نهایت نداره یا به حافظه غیرمجاز دسترسی پیدا نمی‌کنه.
🔹 بدون توقف: برای اجرای این برنامه‌ها نیازی به ریستارت کردن سیستم یا کامپایل دوباره کرنل نیست.
🔹 سرعت بالا: کدها به صورت JIT (Just-In-Time) کامپایل می‌شن و با سرعت Native اجرا می‌شن.

این تکنولوژی نیروی محرکه نسل بعدی ابزارهای شبکه و نظارت (Observability) هست.

⚖️ کاربردش کجاست

تقریبا هر جایی که نیاز به سرعت و دید عمیق هست:

• مانیتورینگ و Observability: ابزارهایی که نشون میدن کدوم پروسس داره چه فایل‌هایی رو باز می‌کنه یا چه پکت‌هایی رو می‌فرسته (بدون سربار ابزارهای قدیمی).
• شبکه: فیلتر کردن و مدیریت ترافیک.

🛑 البته قدرت همیشه درست به کار نمیره. این ابزار قابلیت DPI هم داره که سانسورچی توی ایران ازش برای بلاک کردن و کنترل ترافیک مردم استفاده میکنه.


شرکت هایی که ازش استفاده میکنن و چطور رو میتونید اینجا از سایت رسمی ببینید.

💠 جمع‌بندی

امروزه کار با eBPF با وجود زبونایی مثل Go و پایتون و کتابخونه‌های جدید راحت شده و نوشتن ابزارهایی که مستقیم با کرنل حرف می‌زنن خیلی ساده‌تر شده.

یه پروژه قدیمی با Go پیدا کردم که ساده پراسس های سیستم رو لایو مانیتور میکنه. چون قدیمیه یکم ریفکتورش کردم و پست های بعدی میذارمش میتونید چک کنید و ابزار خودتون رو بنویسید.

قبلش برای درک برنامه لازمه چندتا مفهوم لینوکسی مثل یوزر اسپیس و کرنل اسپیس توضیح داده بشه که پست بعد می‌نویسم.


🔘 @TerminalNotes <- #linux #ebpf
More from @terminalnotes
  1. Aug 28, 2026🔗 Students should only use AI for things they already know how to do well The author argu…
  2. Jul 16, 2026آیا هوش مصنوعی داره قدرت تفکر رو از ما می‌گیره؟🏃‍♂ یه مقاله‌ی جالب توی وبلاگ ArtFish منتش…
  3. Jul 9, 2026🔘 @TerminalNotes
  4. Jul 5, 2026خلاصه ویدیو ها: چطور ابتکار عمل داشته باشیم و از صفر پروژه بنویسیم. برای جونیور دولوپر برن…
  5. Jul 5, 2026🔗 Tutorials Are KILLING Your Growth | Prime Reacts 🔘 @TerminalNotes <- #youtube
  6. Jul 5, 2026🔗 How To Get Out of Tutorial Hell (Step by Step Guide) 🔘 @TerminalNotes <- #youtube
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 →