Линуксийн цөмд Rust-ийг оруулах тухай халз мэтгэлцээн хакеруудын нийгэмлэгт нэлээд удаан үргэлжилж байна. Бидний ихэнх нь шуугиан дэгдээж, эргэлзэж байгааг хоёуланг нь хүлээн зөвшөөрдөг. Одоогийн байдлаар ихэнх хэлэлцүүлгүүд нь Rust-ийн аюулгүй байдлын ашиг тус, түүнийг одоо байгаа С-д суурилсан экосистемд нэгтгэхэд тулгарч буй сорилтууд зэрэг ойрын асуудлууд дээр төвлөрч байна. Одоо Линус Торвалдс энэ санааг дэвшүүлж байгаа тул Rust аль хэдийн бидний хайртай үйлдлийн системийн эх код руу орж эхэлжээ.
Тиймээс Linux цөмд Rust-ийг ашиглах эсэх нь биш, харин хэрхэн . Эцсийн эцэст Rust бол зүгээр нэг програмчлалын хэл биш юм; энэ нь бас бүрэн хэмжээний дизайны философи юм. Энэ нь санах ойн эвдрэлийн алдаа багатай С-ийн шинэчлэл биш, харин хатуу дүрмийн багцыг албадаж, улмаар олон алдаа гарахаас сэргийлдэг код бичих систем юм. Энэ бол Rust-ийг Linux цөмд оруулахдаа анхаарах ёстой гол зүйл гэдэгт би итгэдэг.
Байгууллагын олон талт байдлын талаархи судалгаагаар Линукс зэрэг маш том төслүүд нь дасан зохицох чадвартай, хамааралтай, амжилттай байхын тулд хоёр төрлийн үйл ажиллагааг тасралтгүй явуулах ёстой.
Богино хугацааны баримжаатай ашиглалтын үйл ажиллагаа нь урт хугацааны баримжаатай хайгуулын үйл ажиллагаанаас гарах хандлагатай байдгийг судалгаа харуулж байна. Энэ нь шинэ ур чадвар эзэмшихийг хүсэх эсвэл уламжлалт бус төсөл дээр ажиллахыг хүсч байгаа боловч үүний оронд өдөр тутмын ажлыг үргэлж эрэмбэлэхтэй адил юм. Линукс зэрэг томоохон төслүүдэд мөн адил хамаарна; Хэрэв тэд богино хугацааны үр ашигт хэт их анхаарал хандуулбал урт хугацаанд хуучирч хоцрох эрсдэлтэй. Төсөл өөрчлөгдөөгүй байхад дэлхий өөрчлөгдсөөр байгаа нь хэрэглэгчдийн хувьсан өөрчлөгдөж буй хэрэгцээ шаардлагад түүний санал болгож буй зүйлс улам бүр хамааралгүй болж байна.
Нэг талаас Rust-ийг нэвтрүүлэх нь маш уламжлалт бус туршилт бөгөөд үүнийг Линуксийн хайгуулын үйл ажиллагаа гэж үзэж болно. Энэ үүднээс авч үзвэл Зэвийг оруулсан нь үндэслэлтэй юм. Гэсэн хэдий ч нөгөө талаас, C хэлээс ялгаатай нь бүх төрлийн галзуурал, тодорхойгүй зан авирыг нээлттэй гараараа хүлээн зөвшөөрдөг бөгөөд үүнийг доод түвшний хакердалтын хэл болгодог - Rust нь код бичих тодорхой бүтэцтэй арга барилыг хэрэгжүүлдэг дотоод хүнд сурталтай байдаг. Нэг ёсондоо Rust нь Six Sigma гэх мэт аргачлалтай төстэй програмчлалын хэл, үйл явцын удирдлагын системийн үүрэг гүйцэтгэдэг. Код бичих тодорхой, бүтэцтэй арга нь аюулгүй байдлын сул тал, найдвартай байдлын асуудал гэх мэт үйл явцыг хялбарчилж, богино хугацааны үр дүнг сайжруулахад тусална. Гэсэн хэдий ч бусад үйл явцын удирдлагын системүүдийн нэгэн адил энэхүү хатуу байдал нь урт хугацааны уян хатан байдал, дасан зохицох чадварт эрсдэл учруулдаг.
Тиймээс, Rust-ийн үйл явцыг оновчтой болгож, аюулгүй болгоход оруулсан гавьяа нь ялангуяа урт хугацааны дасан зохицох чадвар нь чухал биш цөмийн бүрэлдэхүүн хэсгүүдэд гялалзах болно. Жишээлбэл, төхөөрөмжийн драйверууд нь гадны оролттой шууд харьцдаг бөгөөд санах ойн аюулгүй байдал, найдвартай байдлын хувьд өндөр эрсдэлтэй бүрэлдэхүүн хэсгүүд юм. Тиймээс тэдгээрийг Зэвээр бичих нь утга учиртай юм. Шинэ төхөөрөмжүүд нь ихэвчлэн хуучин төхөөрөмжийг сольж байдаг тул тэдний ашиглалтын хугацаа харьцангуй богино байдаг. Өөрөөр хэлбэл, Rust аргачлал нь хайгуулыг бууруулж магадгүй гэсэн болгоомжлол, эсвэл код бичих философийн өөрчлөлтийн улмаас бид эцэст нь Rust-ээс холдохыг хүсэх магадлал багасч байна. Төхөөрөмжийн драйверийг Rust-ээр хөгжүүлсэн тохиолдолд энэ нь ихэвчлэн илүү аюулгүй, найдвартай байдаг бөгөөд бусад бүрэлдэхүүн хэсгүүд нь энэ код дээр баригддаггүй. Үүний үр дүнд энэ нь хэдэн арван жилийн дараа хэнийг ч код бичих тодорхой арга барилд оруулахыг албаддаггүй.
Үүний эсрэгээр, төлөвлөгч гэх мэт цөмийн үндсэн бүрэлдэхүүн хэсгүүд нь ирээдүйн сорилт, шинэ парадигмуудыг дасан зохицох чадвартай хэвээр байх ёстой. Эдгээр газруудад зэвийг ашиглах нь хайгуул хийхэд саад болж, хоцрогдолд хүргэдэг хөшүүн байдлыг бий болгож болзошгүй юм. Үүнийг ингэж бодоорой: Ирээдүйн код нь өнөөдөр бүтээгдэж байгаа бүрэлдэхүүн хэсгүүдэд тулгуурлах шаардлагатай бөгөөд эцэст нь програм хангамж бичих өөр философи нь ирээдүйд илүү давуу талтай болох үед маш уян хатан C кодыг ерөнхийд нь шинэ хандлага болгон хувиргах хүртэл үе шаттайгаар өөрчилж болно (өсөлттэй стратегийн шинэчлэл). Үүний эсрэгээр, Rust код бичих өөрийн гэсэн арга барилыг шаарддаг тул энэ нь үүнийг эхнээс нь бичихийн оронд хуучин арга барилаар үргэлжлүүлэн хөгжихөд хүндрэл учруулж болзошгүй юм. Үнэгүй програм хангамж нь хангалттай тооны мэргэшсэн, байнгын сайн дурын ажилтнуудыг олох, түүнчлэн хангалттай хэмжээний тогтмол санхүүжилтийг олоход үргэлж бэрхшээлтэй байдгийг харгалзан үзвэл ахисан сайжруулалт нь бүрэлдэхүүн хэсгийг хаях, эхнээс нь бичих гэх мэт томоохон төсөл хэрэгжүүлэхээр шийдсэнээс хамаагүй хялбар байдаг. Тиймээс, код бичих тодорхой аргыг шаарддаг аливаа хэл нь ирээдүйд хариуцлага болж, Линуксыг код бичих хуучин арга барилаа үргэлжлүүлэхэд хүргэж, хамгийн сүүлийн үеийн байр сууриа алдах болно.
Товчхондоо, би зэвсгийг аюулгүй байдал чухал байдаг богино хугацааны бүрэлдэхүүн хэсгүүдэд түлхүү ашигладаг эрлийз стратегийг санал болгож байна, харин Си хэлийг техник хангамжид хамааралгүй хамгийн уян хатан хэл нь ирээдүйн парадигм, арга барилд уян хатан байдлыг хадгалахын тулд урт хугацааны бүрэлдэхүүн хэсгүүдэд тэргүүлэх ач холбогдол өгдөг.