در مجموعه کامپایلر GCC گنجانده شده است
علاوه بر یک پس زمینه برای تولید بایت ، GCC شامل یک درگاه LiBGCC برای EBPF و ابزارهایی برای تولید پرونده های ELF است که باعث می شود کد در دستگاه مجازی EBPF با استفاده از لودرهای ارائه شده با هسته امکان پذیر شود. وصله هایی برای پشتیبانی از eBPF در GCC توسط مهندسانی از Oracle تهیه شده است که قبلاً این کار را انجام داده بودند
برنامه های eBPF را می توان در زیر مجموعه ای از زبان C تعریف کرد، کامپایل و در هسته بارگذاری کرد. قبل از اجرای ، مترجم EBPF کد BYTECODE را برای استفاده از دستورالعمل های مجاز بررسی می کند و قوانین خاصی را به کد تحمیل می کند (به عنوان مثال ، بدون حلقه).
در ابتدا از ابزارهای مبتنی بر LLVM برای کامپایل eBPF در لینوکس استفاده شد. پشتیبانی EBPF در GCC جالب است زیرا به شما امکان می دهد بدون نصب وابستگی های اضافی از یک ابزار ابزار برای ساخت برنامه های هسته لینوکس و EBPF استفاده کنید.
در قالب برنامه های EBPF ، می توانید دستیار عملیات شبکه ، ترافیک فیلتر ، مدیریت پهنای باند ، سیستم های مانیتور ، تماس های سیستم رهگیری ، کنترل کنترل ، شمارش فرکانس و زمان عملیات را ایجاد کرده و با استفاده از KPROBES/UPROBES/TRACEPOINT انجام دهید.
منبع: opennet.ru