Windows OS โอบกอดสนิม
Windows รักสนิม
ที่งาน BlueHat IL 2023 ในเมืองเทลอาวีฟ เมื่อวันที่ 29-30 มีนาคม David Weston ผู้อำนวยการฝ่าย OS Security สำหรับ Windows ประกาศว่า Windows จะทำการบูทด้วย Rust ในเคอร์เนลเร็วๆ นี้ “ ในอีกไม่กี่สัปดาห์หรือหลายเดือนข้างหน้า ” นั่นค่อนข้างน่าตื่นเต้นสำหรับแฟน ๆ ของ Rust
ไม่มีความลับใดที่ Windows กำลังทดลองกับ Rust เรื่องรัก ๆ ใคร่ ๆ เริ่มต้นเมื่อหลายปีก่อน สำหรับผู้ที่ไม่ทราบ Rust เป็นภาษาโปรแกรมที่ออกแบบมาโดยมีความปลอดภัยของหน่วยความจำเป็นหนึ่งในเป้าหมายหลัก
บรรลุเป้าหมายนี้ด้วยการผสมผสานแนวทางต่างๆ ในแง่ง่าย:
- ทางสถาปัตยกรรม — ภาษาใช้แนวคิดของการเป็นเจ้าของหน่วยความจำ โดยที่หน่วยความจำที่จัดสรรใดๆ นั้นเป็นเจ้าของโดยตัวแปรเดียว (แต่สามารถยืมเป็นแบบอ่านอย่างเดียวได้)
- ตัวตรวจสอบการยืม — คอมโพเนนต์ที่บังคับใช้โมเดลความเป็นเจ้าของที่ร่างไว้ด้านบน เพื่อให้มั่นใจว่าไม่มีการเข้าถึงหน่วยความจำหลังการจัดสรรคืน ขณะเดียวกันก็มั่นใจว่าไม่มีการแย่งชิงข้อมูลที่หลายเธรดพยายามเข้าถึงหน่วยความจำเดียวกันพร้อมกัน (ไม่ใช่เงื่อนไขการแย่งชิงทั่วไป)
- อายุการใช้งานที่กำหนด — อายุการใช้งานของตัวแปรจะทราบในเวลาคอมไพล์ ซึ่งช่วยให้ตัวตรวจสอบการยืมสามารถบังคับใช้กฎการเป็นเจ้าของและการยืม และทำให้แน่ใจว่าทันทีที่ไม่ต้องการใช้หน่วยความจำที่จัดสรรอีกต่อไป หน่วยความจำนั้นจะถูกทำให้ว่างโดยอัตโนมัติ
- ไม่เปลี่ยนรูป — โดยค่าเริ่มต้น ตัวแปรทั้งหมดจะเปลี่ยนรูปไม่ได้ ช่วยป้องกันปัญหาด้านความปลอดภัยของหน่วยความจำโดยไม่ได้ตั้งใจ
มันเริ่มขึ้นแล้ว
พอร์ตแรกที่พวกเขาแนะนำคือการเลิกใช้งานDWrite (DirectWrite) ซึ่งเป็นส่วนหนึ่งของรหัสการ แยกวิเคราะห์แบบอักษรของ Windows เพื่อสนับสนุนDWiteCore DWriteCoreเป็น DWrite เวอร์ชันข้ามแพลตฟอร์มที่เขียนด้วย Rust ซึ่งขณะนี้เป็นผู้รับการพัฒนาฟีเจอร์ใหม่ทั้งหมดที่กำลังใช้งานอยู่ พวกเขายังใช้ Win32k GDI บางส่วนด้วยการนำ ประเภทข้อมูล ภูมิภาคซึ่งเป็นองค์ประกอบหลักของเคอร์เนล Windows ที่รับผิดชอบในการจัดการหน้าต่าง คอมโพเนนต์นี้กำลังจัดส่งอยู่ในขณะนี้ แต่ถูกปิดใช้งานหลังแฟล็กฟีเจอร์ ซึ่งจะถูกลบออกสำหรับการดูตัวอย่างวงใน “เร็วๆ นี้”
แล้วปัญหาคืออะไร?
ทั้งหมดข้างต้นเป็นข่าวที่ยอดเยี่ยมอย่างยิ่งสำหรับแฟน ๆ ด้านความปลอดภัย, Rust และ Windows OS ปัญหาที่อาจเกิดขึ้นคือRust Foundationเอง
ในวันที่ 6 เมษายน เพียงหนึ่งสัปดาห์หลังจากการประกาศในการประชุมที่ประเทศอิสราเอล Rust Foundation ได้เผยแพร่ร่างนโยบายเครื่องหมายการค้าฉบับใหม่และเชิญความคิดเห็นผ่านแบบฟอร์มGoogleซึ่งกำหนดเส้นตายในวันที่ 16 เมษายน เนื่องจากอยู่ในแบบฟอร์มของ Google ความคิดเห็นจึงไม่ปรากฏต่อสาธารณะ แต่นักพัฒนาซอฟต์แวร์ใช้สื่อสังคมออนไลน์ใด ๆ และทั้งหมดเพื่อแจ้งข้อกังวลของพวกเขา และควันศักดิ์สิทธิ์ก็เปล่งความกังวลออกมา ผู้คนออกมาจากทุกซอกทุกมุมของอินเทอร์เน็ตเพื่อแสดงความคิดเห็นYouTube , SubStack , Reddit , Twitterและโดยพื้นฐานแล้วทุกฟอรัมอื่น ๆ ที่คุณนึกถึง ถึงจุดที่ชุมชน Rust สร้างทางแยกของภาษา
เพื่อความกระชับ(-ish) ไฮไลท์คือสิ่งนี้ หลังจากหนึ่งปีของการพิจารณา มูลนิธิได้เผยแพร่ร่างสุดท้ายของนโยบายเครื่องหมายการค้าใหม่ ซึ่งโดยหลักแล้วระบุว่าคุณไม่สามารถใช้ชื่อ “Rust” หรือใช้โลโก้ Rust เพื่อผลกำไรหรือกำไรใด ๆ จดทะเบียนชื่อโดเมนโดยไม่ได้รับอนุญาตอย่างชัดแจ้ง จากรากฐานสนิม
ถูกต้อง คุณไม่สามารถใช้ชื่อหรือโลโก้ได้เลยโดยไม่ได้รับอนุญาตอย่างชัดแจ้งในชื่อโดเมน (เพื่อผลกำไรหรือไม่ก็ตาม) หรือในสิ่งใดก็ตามที่อาจสร้างผลกำไรหรือได้รับ ได้ทุกที่ ด้วยเหตุผลใด ๆ. มีชื่อโดเมนที่ใช้คำว่า “สนิม” ในการอ้างอิงถึงภาษาหรือไม่? ถูกปฏิเสธ ช่อง YouTube ของคุณเกี่ยวกับภาษา Rust มีคำว่า Rust อยู่ในนั้นไหม ถูกปฏิเสธ คุณต้องการทำเสื้อยืดที่ส่งเสริมการเกิดสนิมโดยใช้โลโก้หรือไม่? ไม่. มีเว็บไซต์ที่ไม่แสวงหาผลกำไรเพื่อสอน Rust ที่มีชื่อโดเมนที่มีคำว่า rust อยู่ในนั้นหรือไม่? ไม่อีกแล้ว.
และเพื่อความสนุกยิ่งขึ้น นี่เป็นส่วนหนึ่งของนโยบายใหม่:
“ การใช้ [คำว่า “Rust”] ในชื่อเครื่องมือสำหรับใช้ใน Rust toolchain, โปรแกรมซอฟต์แวร์ที่เขียนด้วยภาษา Rust หรือโปรแกรมซอฟต์แวร์ที่เข้ากันได้ ด้วยซอฟต์แวร์ Rust ส่วนใหญ่จะต้องมีใบอนุญาต ”
หากคุณสงสัยว่าหมายความว่าอย่างไร หมายความว่าซอฟต์แวร์ใดๆ ที่เป็นส่วนหนึ่งของระบบนิเวศของสนิมจะถูกห้ามไม่ให้ใช้คำว่าสนิม นั่นคือปลั๊กอิน IDE, ไลบรารี เช่นopensl-rust , rust-mysqlและเครื่องมือ ลัง หรือไลบรารีอื่นๆ ที่คุณนึกออก
สิ่งนี้หมายความว่า?
อาจจะไม่มีอะไร ในแง่หนึ่ง MS ได้ประกาศที่ BlueHat IL 2023 ก่อนที่จะมีการเปิดตัวร่างนโยบายเครื่องหมายการค้า และฉันเห็นได้ว่านโยบายที่เข้มงวดอย่างบ้าคลั่งนี้ทำให้พวกเขากังวลอย่างมากเกี่ยวกับการใช้ภาษา ซึ่งแน่นอนว่าเกี่ยวกับการส่งเสริมการใช้ภาษานั้น
ในทางกลับกัน MS เป็นหนึ่งในสมาชิกผู้ก่อตั้งของ Rust Foundation ร่วมกับ Amazon (ซึ่งกำลังส่งเสริมการนำ Rust มาใช้) และอื่น ๆ ดูเหมือนจะเป็นยาเม็ดใหญ่ที่ต้องกลืนลงไปโดยที่ MS ไม่ได้ตระหนักถึงนโยบายที่เข้มงวดอย่างบ้าคลั่งนี้ แต่เนื่องจากพวกเขาเป็นหนึ่งในสมาชิกผู้ก่อตั้ง จึงสันนิษฐานว่าพวกเขาอาจได้รับอนุญาตอย่างชัดแจ้งให้ทำอะไรก็ได้ตามต้องการด้วยชื่อและโลโก้
วันรุ่งขึ้นหลังจากปิดการแสดงความคิดเห็น ทางมูลนิธิได้ออกมาขอโทษสำหรับการขาดความโปร่งใสในกระบวนการ และพวกเขาจะพิจารณาข้อเสนอแนะอย่างรอบคอบ
แล้วประเด็นของฉันคืออะไร?
ฉันไม่คิดว่า MS จะมีปัญหาใด ๆ กับนโยบายเครื่องหมายการค้าเพราะพวกเขาเป็นสมาชิกผู้ก่อตั้งและฉันไม่สามารถจินตนาการได้ว่าพวกเขาจะไม่ได้รับอนุญาตสำหรับสิ่งที่พวกเขาต้องการทำเกี่ยวกับชื่อและโลโก้ สิ่งที่ฉันเห็นคือสามตำแหน่งที่เป็นไปได้ที่ MS สามารถครอบครองได้เกี่ยวกับนโยบายเครื่องหมายการค้า
- พวกเขาไม่รู้ว่าเกิดอะไรขึ้นเพราะพวกเขาไม่สนใจหรือเพิกเฉย เราสามารถโยนตัวเลือกที่ไม่รู้ออกไปได้ทันทีโดยดูที่คณะกรรมการ
- พวกเขาสนับสนุนนโยบายใหม่อย่างจริงจัง
- เป็นความผิดพลาดอย่างแท้จริงที่ถ้อยคำนั้นเข้มงวดอย่างเหลือเชื่อและมันจะไม่มีอะไรเบอร์เกอร์เมื่อพูดและทำทั้งหมด
ในกรณีที่สอง คุณควรเริ่มถามตัวเองว่า “ทำไม MS ถึงสนับสนุนนโยบายนี้” แต่อย่าหยุดเพียงแค่นั้น นั่นเป็นคำถามที่ถูกต้องสำหรับ Amazon, Google, Meta และสมาชิกผู้ก่อตั้งคนอื่นๆ มีประโยชน์อย่างไรหากนโยบายเครื่องหมายการค้านี้มีผลบังคับใช้ ใครได้ประโยชน์จากการจำกัดไม่ให้ผู้คนใช้คำว่า “Rust” หรือโลโก้ของ Rust
ในกรณีที่สาม นี่จะเป็นเรื่องที่เราทุกคนหัวเราะในสักวันหนึ่ง ฉันพบว่าตัวเลือกนี้มีความเป็นไปได้ที่สมาชิกคณะกรรมการจะเพิกเฉยต่อนโยบายใหม่ ประการแรก นโยบายเครื่องหมายการค้าเดิมไม่มีสิ่งใดต้องแก้ไข และแม้ว่าจะจำเป็นต้องปรับปรุง ก็ไม่มีเหตุผลใดที่จะต้องย่างทุกคนด้วยไฟที่ลุกโชนในทันใด ประการที่สอง กรรมการของสมาชิกองค์กรไม่ได้เป็นคนงี่เง่าหรือหลงลืม และพวกเขาก็พร้อมที่จะเข้าใจปฏิกิริยาของชุมชน ความจริงที่ว่าพวกเขาทั้งหมดพลาดปฏิกิริยาที่จะเกิดขึ้นดูเหมือนจะเป็นยาเม็ดที่ยากต่อการกลืน
สิ่งนี้นำฉันกลับไปที่กรณีที่สอง ใครได้ประโยชน์และอย่างไร? ฉันไม่เห็นคำตอบที่ชัดเจนสำหรับสิ่งนั้น แต่ฉันสนใจอย่างมากที่จะดูว่านโยบายที่อัปเดตมีลักษณะอย่างไรเมื่อออกมา