معجزه ۲۰۰ خط کد

در این ستون معمولا از شرکت‌های بزرگ نوشته‌ام و تکنولوژی‌هایی که قرار است دنیا را تغییر بدهند اما این هفته می‌خواهم سراغ یک تغییر خیلی کوچک بروم. در مقایس برنامه‌نویسی؛ خیلی خیلی کوچک: یک وصله دویست خطی برای کرنل.

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

اما ظاهرا قرار است اینبار مساله فرق کند. این هفته یک وصله جدید برای کرنل منتشر شده و زیر تست شخص لینوس توروالدز -نویسنده اصلی لینوکس- است که ظاهرا در دسکتاپ معجزه می‌کند. از نظر فنی این پچ می‌تواند به شکل اتوماتیک تسک‌های هر TTY را گروه‌بندی کند. بازهم مثل پچ‌های قبلی کرنل،‌ اکثر کاربران این مفهوم را درک نمی‌کنند. اما آنطور که بسیاری از آزمایش کنندگان و خود لینوس با هیجان می‌گویند، اینکار تاثیر بسیار بسیار واضحی روی بازدهی کامپیوترهای دسکتاپ در وضعیتی که از پرازنده و حافظه‌شان کار زیادی کشیده می‌شود خواهد داشت. مارک گالبرایت نویسنده این وصله است که ایده اصلی اش از لینوس توروالدز بوده. این پچ در حال حاضر در نسخه سوم است و عجیبترین نکته درباره آن این است که تنها ۲۲۴ خط به کرنل اضافه و ۹ خط از آن حذف می‌کند. به عبارت دیگر، این وصله با تغییر تنها ۲۳۳ خط از کرنل، باعث پرواز کامپیوتر رومیزی در شرایط سخت می‌شود.

آزمایش‌های خود مایک نشان داده که این وصله حداکثر تاخیر پاسخگویی کامپیوتر را ۹ برابر کمتر می‌کند و میانگیر تاخیر را تا حدود شصت برابر پایین می‌آورد! این اعداد آنقدر غیرواقعی به نظر می‌رسند که توروالدز لازم دیده شخصا مساله را بررسی کند و سپس در ایمیلی با اعلام کند که از عملکرد این پچ کوچک بسیار خوشحال و هیجان زده است و معتقد است که این پچ با وجود کوچکی بسیار زیبا نوشته شده.

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

من هم مطمئن هستم که اینبار برای به روز رسانی هسته بی‌تاب خواهم بود. مطمئنا هر هسته جدیدی که بیاید، اولین کار من خواندن فهرست تغییرات است و در صورت دیدن عبارت sched: automated per tty task groups در آن، محال است هیچ کاری قبل از به روز رسانی کرنل‌ام انجام دهم.