هسته لینوکس در نسخه 6.19 با حذف تابع d_genocide و متغیر وابسته به آن بهدلیل بینیاز شدن فنی پس از بازطراحی ساختار کد و نیز در راستای رعایت سیاستهای زبان فراگیر، گام دیگری در بهینهسازی و پاکسازی عبارات حساسیتبرانگیز برداشت.
به گزارش سرویس سیستمعامل تکناک، در تازهترین تحولات توسعه کرنل (هسته) لینوکس، تابعی که به دلیل نامگذاری خود بحثبرانگیز شده بود، از کد منبع نسخه آینده Linux 6.19 حذف شد.
این تغییر که شامل حذف تابع d_genocide() و متغیر وابسته به آن DCACHE_GENOCIDE است، اگرچه در قالب یک اصلاح فنی صورت گرفته، اما همسویی کاملی با دستورالعملهای «زبان فراگیر» (Inclusive Language) در جامعه متنباز دارد.
جزئیات فنی و دلیل حذف تابع d_genocide() که عمر حضور آن در کرنل لینوکس به حدود دو سال میرسید، نخستین بار در سال ۲۰۲۳ به عنوان بخشی از بهروزرسانیهای dcache معرفی شد. وظیفه فنی این تابع، از بین بردن یک ورودی دایرکتوری (dentry) به همراه تمام زیرمجموعهها و فرزندان آن بود؛ فرآیندی که برای آزادسازی دایرکتوریهایی که به صورت مصنوعی در فایلسیستمهای خاص مشغول مانده بودند، استفاده میشد.
اکنون، با بازنگری و تغییر ساختار کدها توسط Al Viro (توسعهدهنده اصلی و نویسنده اولیه همین کد)، نیاز به این تابع از بین رفته است. در رویکرد جدید، با اصلاح تابع kill_litter_super()، عملاً کارکرد تابع قبلی پوشش داده شده و حذف آن از نظر فنی امکانپذیر شده است.

تاریخچه نامگذاری و دفاع نویسنده انتخاب نام «genocide» (به معنای نسلکشی) برای یک تابع نرمافزاری، از همان ابتدای معرفی با انتقاداتی همراه بود. Al Viro در آن زمان در دفاع از انتخاب خود استدلال کرده بود که هر نامی که برای توصیف عملیات «تخریب کامل یک درخت دایرکتوری و تمام بازماندگانش» انتخاب شود، ناگزیر تداعیکننده مفاهیم خشن و ناخوشایند خواهد بود. او همچنین تأکید داشت که این نامگذاری تنها در سطح کد منبع و برای توسعهدهندگان قابل مشاهده است و کاربران نهایی هرگز با آن روبرو نمیشوند.
به نقل از نئووین، سیاستهای زبان فراگیر در لینوکس پروژه کرنل لینوکس حدود پنج سال پیش، همگام با بسیاری از پروژههای بزرگ Open Source، سیاستهایی را برای استفاده از ادبیات فراگیر و محترمانه اتخاذ کرد. طی این فرآیند، واژگانی مانند «blacklist» (لیست سیاه) و «slave» (برده) با معادلهای خنثی جایگزین شدند.
نکته قابل تأمل اینجاست که تابع d_genocide() درست در دورانی به کد اضافه شد که این دستورالعملها برقرار بودند. هنوز مشخص نیست که آیا انتخاب این نام نوعی اعتراض خاموش به سیاستهای زبانی جدید بوده یا صرفاً همانطور که نویسنده ادعا کرده، انتخابی فنی برای توصیف دقیق یک عملیات مخرب بوده است.
با این حال، حذف این تابع در نسخه ۶.۱۹ نشاندهنده تداوم تعهد جامعه لینوکس به پاکسازی کدها از عبارات حساسیتبرانگیز، در کنار بهینهسازی فنی است.















