لینوس توروالدز می‌گوید Claude Code در نوشتن وصله‌ای برای هسته لینوکس کمک کرده است

pasqualepillitteri.it

انتشار در منبع: انتشار در سایت ما:

مقاله اصلی · English

لینوس توروالدز، خالق لینوکس، مجموعه‌ای از وصله‌های هسته لینوکس را با کمک Claude Code، دستیار برنامه‌نویسی شرکت Anthropic، نوشته است. او در پیام اصلی ثبت تغییرات که در شاخه noref-filemap-read-with-llm از مخزن رسمی منتشر شده، توضیح داده است که کد، برنامه‌های آزمایشی، بررسی‌ها و نخستین پیش‌نویس متن با کمک این دستیار و «تحت هدایت من» تولید شده‌اند و اندازه‌گیری‌های عملکرد نیز «روی دستگاه خودم» انجام شده‌اند.

مایکل لارابل از Phoronix هنگام انتظار برای انتشار Linux 7.3-rc7 این شاخه جدید را مشاهده کرد. مخزن توروالدز معمولاً فقط شاخه اصلی را نگه می‌دارد، بنابراین وجود شاخه‌ای با عبارت LLM در انتهای نام آن توجه‌ها را جلب می‌کند. این کد هنوز به هسته لینوکس ادغام نشده است.

لینوس توروالدز می‌گوید Claude Code در نوشتن وصله هسته لینوکس و شاخه noref-filemap-read-with-llm کمک کرده است
شاخه noref-filemap-read-with-llm و شماره وصله‌هایی که رسانه‌های تخصصی گزارش کرده‌اند

چه چیزی در نحوه خواندن فایل‌ها تغییر می‌کند

مشکلی که این مجموعه وصله‌ها هدف گرفته، برای کسانی که روی مدیریت حافظه کار می‌کنند شناخته‌شده است. وقتی تعداد زیادی نخ، بخش‌های کوچک یک فایل مشترک را می‌خوانند (در آزمایش‌ها هر بار ۱۶ بایت)، هر عملیات خواندن باید شمارنده ارجاع را برای «فولیو» افزایش و سپس کاهش دهد؛ فولیو واحدی است که هسته لینوکس برای مدیریت صفحات موجود در کش صفحه از آن استفاده می‌کند. همه پردازنده‌ها به یک خط کش مشترک فشار وارد می‌کنند و زمان پردازشی به جای کپی داده، صرف انتظار برای یکدیگر می‌شود.

این وصله شمارنده را از مسیر خواندن حذف می‌کند. عملیات خواندن درون یک بخش بحرانی RCU (Read-Copy-Update؛ سازوکاری که به هسته اجازه می‌دهد تعداد زیادی خواننده را بدون مسدود کردن آن‌ها سرویس دهد) انجام می‌شود و حافظه فولیو تنها پس از یک دوره مهلت RCU آزاد می‌شود. طبق بازسازی ارائه‌شده توسط Startup Fortune، یک سازوکار ایمنی نیز وجود دارد: اگر بیش از ۱۰۲۴ صفحه به ازای هر پردازنده در صف آزادسازی قرار گیرد، هسته یک دوره مهلت سریع‌شده را اجباری می‌کند تا حافظه انباشته نشود.

برای خواننده غیرمتخصص، نکته اصلی این است که هسته دائماً فایل‌هایی را می‌خواند که از قبل در حافظه قرار دارند؛ بنابراین هر چرخه پردازشی که در این مسیر ذخیره شود، در تعداد بسیار زیادی فراخوانی ضرب خواهد شد.

اعداد، با یک ملاحظه مهم

رقم‌هایی که تاکنون منتشر شده‌اند از Startup Fortune آمده‌اند که آن‌ها را به Hardware Busters نسبت داده است. این داده‌ها مربوط به یک لپ‌تاپ واحد با پردازنده Core i7-8565U، هشت رشته پردازشی و خواندن‌های ۱۶ بایتی هستند.

معیارپیش از تغییرپس از تغییر
چرخه‌های هسته برای هر خواندن (۸ رشته)حدود ۲۹۵۰حدود ۷۲۵
Load HITM (رقابت روی خط کش)۳۰٬۵۳۸۱۰۱
خواندن در ثانیهحدود ۱۰ میلیونحدود ۳۳ میلیون
خواندن تکی، یک رشته (صفحه نگاشت‌نشده)حدود ۴۱۵۰ چرخهحدود ۶۵۵۰ چرخه

جالب‌ترین ردیف، مورد آخر است. در حالت تک‌نخی، مسیر جدید کندتر است (حدود ۶۵۵۰ چرخه در برابر ۴۱۵۰ چرخه)؛ این هزینه قابل پیش‌بینی برای مسیری است که برای شرایط دارای رقابت طراحی شده و در نبود رقابت، سربار بیشتری دارد. بهبود اصلی در بارهای کاری با تعداد زیادی خواننده روی یک فایل مشترک دیده می‌شود. HITM برای کسانی که با این مفهوم آشنا نیستند، به دسترسی‌ای گفته می‌شود که خط کش را در حالتی پیدا می‌کند که هسته دیگری آن را تغییر داده است؛ نشانه‌ای از رفت‌وبرگشت داده میان هسته‌ها که این وصله قصد حذف آن را دارد.

این اندازه‌گیری‌ها باید مقدماتی در نظر گرفته شوند. همان‌طور که خود توروالدز اعلام کرده، آزمایش‌ها روی یک دستگاه انجام شده‌اند. در حال حاضر بازتولید مستقل نتایج روی سخت‌افزارهای دیگر وجود ندارد.

وصله‌ای با سابقه قبلی

افرادی که فهرست‌های توسعه لینوکس را دنبال می‌کنند می‌دانند این موضوع تازه نیست. در اکتبر ۲۰۲۵، کریل شوتسمائو پیشنهاد mm/filemap: Implement fast short reads را مطرح کرده بود؛ روشی برای کوتاه‌تر کردن خواندن‌های کوچک بر پایه شمارنده توالی. در بحث انجام‌شده در LKML، دیوید هیلدنبرند اشاره کرد که کد باید تضمین کند داده از فولیویی خوانده می‌شود که در این فاصله دوباره استفاده نشده باشد و پیشنهاد کرد این بهینه‌سازی کنار گذاشته شود و به جای آن، آزادسازی فولیو با RCU به تعویق بیفتد. توروالدز نیز اشاره کرده بود که کش صفحه از قبل «کل رقص folio_try_get()» را دارد و آزادسازی در واقع با RCU به تأخیر نمی‌افتد؛ به همین دلیل هسته شمارنده ارجاع را زیر RCU افزایش می‌دهد و سپس بررسی می‌کند.

یک سال بعد، همان مسیری که آن زمان به‌عنوان راه‌حل جایگزین مطرح شده بود، یعنی آزادسازی تأخیری با RCU، در شاخه جدید توروالدز عملی شده است. اینکه توروالدز این کار را با کمک Claude Code نوشته، نه به‌صورت دستی، همان جزئیاتی است که آن را به خبر تبدیل کرده است.

از AudioNoise تا درایور Xe اینتل

برای توروالدز، این اتفاق ناگهانی نیست. او در ژانویه ۲۰۲۶ در فایل README پروژه AudioNoise، پروژه افکت صوتی برای پدال‌های گیتار، پذیرفته بود که تصویرساز پایتون این پروژه با روش vibe coding و با استفاده از Google Antigravity نوشته شده است؛ موضوعی که Phoronix گزارش کرده بود.

او در پیامی در فهرست پستی هسته لینوکس در ۱۵ ژوئیه نیز موضع خود را روشن کرد. توروالدز نوشت لینوکس یکی از پروژه‌های مخالف هوش مصنوعی نیست. هرکس مشکلی دارد می‌تواند آن را فورک کند یا کنار برود. به گفته او این ابزار «به‌وضوح مفید» است و هیچ‌کس مجبور به استفاده از آن نیست، اما با کسانی که بخواهند استفاده از آن را برای دیگران ممنوع کنند، مخالفت خواهد کرد (پیام منتشرشده توسط Phoronix). او همچنین به جنبه منفی آن اشاره کرد و گفت هوش مصنوعی می‌تواند برای نگه‌دارندگان پروژه «کمی دردسرساز» باشد، زیرا دائماً باگ‌های شرم‌آور پیدا می‌کند.

مهم‌ترین گام عملی در ۲۱ اوت رخ داد. پس از یک «جلسه اشکال‌زدایی از جهنم» روی کارت Battlemage G21، توروالدز اصلاحیه‌ای برای درایور گرافیکی Intel Xe امضا کرد و در پیام ثبت تغییرات نوشت که هوش مصنوعی بخش بزرگی از کارهای سنگین را انجام داده است. او توضیح داد که دستیار چند بار اعلام کرده مشکل غیرممکن است و پیشنهاد داده گزارش تهیه شود، اما با اصرار او همچنان کدهای اشکال‌زدایی اضافه کرده است. نتیجه، تغییر از round_up() به round_down() بود که پس از ۲۴ وصله اشکال‌زدایی و ۱۸ بار راه‌اندازی هسته انجام شد؛ همان‌طور که Phoronix گزارش کرده است. این اصلاحیه در Linux 7.3 پذیرفته شد.

این چهار مرحله یک مسیر مشخص را نشان می‌دهند: ابتدا یک سرگرمی شخصی (AudioNoise)، سپس موضع‌گیری درباره هوش مصنوعی در فهرست پستی هسته، بعد اشکال‌زدایی یک درایور و اکنون تغییری در قلب مدیریت حافظه. این جهش مهم است، زیرا کش صفحه جایی برای آزمون‌وخطای بی‌محابا نیست.

چه چیزهایی هنوز مشخص نشده است

این وصله هنوز وارد هسته نشده است. Phoronix تنها اشاره کرده که توروالدز ممکن است آن را در بازه ادغام Linux 7.4 وارد کند. در گزارش‌های منتشرشده، واکنشی از نگه‌دارندگان زیرسامانه حافظه یا بررسی عمومی اعداد روی سخت‌افزارهای مختلف دیده نمی‌شود. برای تغییری که نحوه آزادسازی صفحات در هسته را تغییر می‌دهد، این مرحله بسیار مهم‌تر از برچسب «نوشته‌شده با دستیار» است.

موضوع دیگری نیز به روش کار مربوط می‌شود. پیام ثبت تغییرات، دستیار را در تولید آزمایش‌ها و بررسی‌ها شریک می‌داند. این مسئله پرسشی منطقی ایجاد می‌کند: وقتی آزمایش و کد از یک منبع می‌آیند، چه کسی چه کسی را بررسی می‌کند؟ پاسخ توروالدز در عبارت «تحت هدایت من» است که مسئولیت نهایی را دوباره بر عهده نگه‌دارنده می‌گذارد.

در حوزه امنیت، دستیارهای هوش مصنوعی پیش‌تر نیز تأثیر خود را بر هسته گذاشته‌اند، اما با نتایج متفاوت. نمونه آن Bad Epoll (CVE-2026-46242) بود؛ باگی که هوش مصنوعی Anthropic آن را شناسایی نکرده بود. استفاده از این ابزارها برای نوشتن کد، نه فقط یافتن نقص‌ها، گام دیگری محسوب می‌شود. وصله کش صفحه نخستین آزمایش عمومی این رویکرد است که با امضای مدیر پروژه ارائه شده است.

پرسش‌های متداول

۱. وصله توروالدز چه زمانی وارد هسته می‌شود؟

تاریخ مشخصی وجود ندارد. این وصله فعلاً در شاخه‌ای جداگانه از مخزن توروالدز قرار دارد و در شاخه اصلی نیست. گزارش‌ها تنها احتمال حضور آن در بازه ادغام Linux 7.4 را مطرح کرده‌اند. بررسی نگه‌دارندگان و آزمایش‌های بیشتر باید پیش از آن انجام شود.

۲. آیا بنچمارک یک لپ‌تاپ برای سرورها قابل تعمیم است؟

فقط تا حدی. اندازه‌گیری‌ها روی Core i7-8565U با هشت رشته و خواندن‌های ۱۶ بایتی انجام شده‌اند؛ سناریویی که برای افزایش رقابت طراحی شده است. در سیستم‌های دارای هسته‌های بیشتر، رقابت ممکن است اهمیت بیشتری داشته باشد، اما رفتار بارهای ترکیبی خواندن و نوشتن هنوز مشخص نیست و تاکنون اندازه‌گیری مستقل منتشر نشده است.

۳. آیا می‌توان کد نوشته‌شده با هوش مصنوعی را به هسته لینوکس ارائه کرد؟

بله، اما اجباری نیست. توروالدز در پیام ۱۵ ژوئیه نوشت لینوکس پروژه‌ای ضد هوش مصنوعی نیست و هیچ‌کس مجبور به استفاده از این ابزارها نیست. فردی که وصله را ارسال می‌کند مسئول آن است؛ خود توروالدز نیز استفاده از دستیار را در توضیحات وصله اعلام کرده است.

۴. آیا Claude Code تنها دستیار مورد استفاده توروالدز بوده است؟

خیر. او برای تصویرساز AudioNoise از Google Antigravity استفاده کرده بود، در حالی که در اصلاحیه درایور Xe، گزارش‌های Phoronix تنها از «یک هوش مصنوعی» نام برده‌اند و ابزار مشخص نشده است. در توضیحات وصله کش صفحه، نام دستیار به‌طور کامل ذکر شده است.

هسته و دستیار آن

نگه‌دارنده‌ای که در اکتبر ۲۰۲۴ بیشتر هوش مصنوعی را بازاریابی می‌دانست، اکنون نام یک ابزار را در ثبت تغییری مربوط به حافظه هسته می‌نویسد و روش استفاده از آن را توضیح می‌دهد. این تغییر نه با یک اعلامیه بزرگ، بلکه با شاخه‌ای در مخزن رخ داده که تقریباً اتفاقی دیده شد. اینکه این مسیر ادامه پیدا می‌کند یا نه، به بررسی همکاران توروالدز و آزمایش اعداد روی سخت‌افزارهایی غیر از لپ‌تاپ او بستگی دارد.