Линус Торвалдс анх удаа Claude Code-оор Linux Kernel-д код бичүүлж, кэш уншилтыг 3 дахин хурдлуулав
Хэдхэн жилийн өмнө хиймэл оюун ухааны давалгааг "90% нь маркетинг, ердөө 10% нь бодит байдал" хэмээн хатуухан шүүмжилж байсан Linux-ийг үндэслэгч Линус Торвалдс өөрийн гараар түүхэн алхам хийлээ. Тэрээр өөрийн албан ёсны Git сандаа noref-filemap-read-with-llm хэмээх туршилтын салбар (branch) үүсгэж, Linux Kernel-ийн санах ойн удирдлагын чухал хэсгийг сайжруулсан 8 цуврал патчийг нийтэлсэн байна.
Гайхалтай нь энэхүү цуврал өөрчлөлтийн дийлэнх кодыг Anthropic-ийн Claude Code агент бичсэн бөгөөд олон thread зэрэг ажиллах үед дискний кэшээс өгөгдөл унших хурд 3 дахин нэмэгджээ.
Асуудлын гол: Page cache ба Folio Refcount-ийн мөргөлдөөн
Линусийн шийдвэрлэхээр зорьсон асуудал бол орчин үеийн олон цөмт (multi-core) процессорууд дээрх Линуксийн санах ойн менежментийн (Memory Management) хуучин гацаа байв.
Линукс үйлдлийн систем дискнээс файл унших бүрд түүнийг RAM дээр page cache буюу хуудасны кэш болгон хадгалдаг. Хэрэв өөр өөр олон thread нэгэн зэрэг нэг файлын өчүүхэн хэсгүүдийг тасралтгүй уншвал цөм тухайн санах ойн блокийг (folio) суллаж устгахаас сэргийлж, холбогдох тоолуурыг (refcount) тогтмол нэмэгдүүлж, хасдаг.
Энэхүү атомик (atomic) үйлдлүүд нь CPU-ийн олон цөмийн хооронд кэш шугамын мөргөлдөөн буюу cache line bouncing үүсгэдэг. Өөрөөр хэлбэл, хэдийгээр өгөгдөл RAM дотор бэлэн байсан ч тоолуур шинэчлэх цоож, хүлээлтээс болж систем ноцтой удааширдаг байв.
AI + Системийн архитектор: RCU ашиглан цоожгүй унших шийдэл
Линус Claude Code-д чиглэл өгч, уг унших процессийг refcount шаардлагагүйгээр буюу "noref" хэлбэрээр дахин загварчилжээ.
Шийдлийн гол цөм нь Linux Kernel-ийн домогт механизм болох RCU (Read-Copy-Update) юм:
- Санах ойн folio-г санах ойноос чөлөөлөх хугацааг RCU-ийн grace period дуустал хойшлуулдаг болгосон.
- Ингэснээр хэрэглэгчийн унших хүсэлт тухайн folio-г RCU-ээр хамгаалагдсан бүс дотор шууд унших боломжтой болж, ямар ч refcount авах шаардлагагүй болов.
- CPU-ийн цөмүүд хоорондоо тоолуур булаацалдахгүй болсон тул зэрэгцээ ажиллагааны бүтээмж эрс сайжирсан байна.
Линусийн өөрийн зөөврийн компьютер дээр 8 thread-ээр хийсэн туршилтаар уншилтын дамжуулах чадвар секундэд 10 сая уншилтаас 30-33 сая уншилт болж, бараг 3 дахин өссөн гайхалтай үр дүн гарчээ. Энэ нь кэшээс олон уншилт зэрэг хийдэг өгөгдлийн сан (database), өндөр ачаалалтай веб серверүүдийн хувьд асар том давуу тал юм.
Ил тод байдал: "Код, тест, тайлбарыг AI бичсэн"
Линус өөрийн commit тайлбартаа AI ашигласнаа огт нуусангүй:
"Энэхүү код, тестийн програмууд, нээлттэй үлдсэн асуудлуудын дүн шинжилгээ болон уг тайлбарын анхны нооргийг бүгдийг нь миний удирдлага дор LLM туслах (Claude Code) гүйцэтгэсэн. Хэмжилтийг өөрийн машин дээрээ хийв."
Сүүлийн саруудад Open Source хөгжүүлэгчдийн дунд "AI-аар код бичүүлж оруулахыг хориглох уу, зөвшөөрөх үү?" гэсэн ширүүн маргаан өрнөж байгаа. Харин Линус өмнө нь "Linux бол AI-ийг эсэргүүцэгч шашны бүлэглэл биш. Хэрэв та нар шинэ багаж хэрэгслийг хүлээн зөвшөөрч чадахгүй бол төслийг fork хийгээд явж болно" гэж шулуухан мэдэгдэж байсан удаатай. Тэрээр хэлсэн үгээ бодит үйлдэл болгон харууллаа.
AI төгс биш: Review-ээр илэрсэн Race Condition
Гэсэн хэдий ч уг патч үндсэн (mainline) цөм рүү шууд ороогүй байна. Бусад kernel хөгжүүлэгчид кодод нарийвчилсан review хийх явцад санах ойн хуудасны алдаа (page fault) гарах үед өгөгдөл зөрчилдөх эрсдэлтэй race condition цоорхой байгааг илрүүлжээ.
Энэ явдал инженерүүдэд хамгийн чухал сургамжийг өгч байна:
- AI бол бие даасан архитектор биш, хурдасгуур: Системийн суурь түвшний зөв чиглэл, бүтцийн шийдлийг инженерийн олон жилийн туршлага тодорхойлно.
- AI-ийн бичсэн кодод хүний нарийн шүүлтүүр шаардлагатай: AI код хурдан үйлдвэрлэх боловч үйлдлийн системийн цөм шиг алдаа гаргах эрхгүй, параллель орчинд нарийн edge-case-үүдийг орхигдуулдаг хэвээр байна. Кодын эцсийн хариуцлагыг зөвхөн хөгжүүлэгч өөрөө хүлээнэ.
Линус Торвалдс өөрөө AI ашиглан системийн цөмийг шинэчилж эхэлсэн явдал нь програм хангамжийн ертөнцөд AI зөвхөн энгийн веб, скрипт бичих түвшинг аль хэдийн давж, системийн гүн рүү нэвтэрснийг харуулсан том дохио боллоо.
Сэтгэгдэл
Ачаалж байна...