นอกเหนือจาก Android, ChromeOS, Fuchsia ล่าสุดกูเกิลเปิดตัวระบบปฏิบัติการใหม่ (อีกแล้ว) ชื่อ KataOS สำหรับอุปกรณ์ฝังตัวที่เน้นความปลอดภัยสูง (กูเกิลใช้คำเรียกว่า secure operating system) เพื่อใช้งานประมวลผล machine learning ที่ปลายทาง (ambient ML หรือ AmbiML)
โครงการนี้เป็นผลงานวิจัยของ Google Research เลือกใช้เคอร์เนล seL4 ที่มีอยู่ก่อนแล้ว เป็นโครงการ microkernel แบบยูนิกซ์ที่เน้นความปลอดภัยสูง (อ่านบทความ Wikipedia ประกอบ) จากนั้นกูเกิลเขียนส่วนที่เหลือเกือบทั้งหมดด้วยภาษา Rust ที่อุดช่องโหว่เรื่องความปลอดภัยของหน่วยความจำ
แนวคิดของ KataOS คือการยืนยันได้ (verifiably) ว่าชิ้นส่วนต่างๆ ของ OS ปลอดภัยจริง (ด้วยอัลกอริทึมทางคณิตศาสตร์)
KataOS ถือเป็นชิ้นส่วนหนึ่งของ Project Sparrow โครงการใหญ่ที่ต้องการสร้างต้นแบบฮาร์ดแวร์ที่รัน KataOS โดยใช้ชิป root-of-trust จากโครงการ OpenTitan ที่เป็นสถาปัตยกรรม RISC-V อีกทีหนึ่ง แต่ก็บอกว่าจะรองรับสถาปัตยกรรมที่เป็น ARM64 ด้วยในอนาคต โดยเป้าหมายสุดท้ายคือต้องการโอเพนซอร์สทุกอย่าง ทั้งฮาร์ดแวร์และซอฟต์แวร์ออกสู่สาธาณะ
ที่มา - Google Open Source
Comments
รวมเป็น 5 แต่ mass อยู่แค่ 2 อย่างคือ watchOS กับ Android ที่เหลือแป๊ก
ChromeOS นี่น่าจะห่างไกลคำว่าแป๊กมากนะครับ
ปริมาณเยอะแถม support ยาวจัดๆ ทุกตัว
lewcpe.com, @wasonliw
ผมเองก็มองว่า ChromeOS นี่ประสบความสำเร็จระดับที่น่าพอใจเลยเหมือนกัน
..: เรื่อยไป
ตีจนเป๋กันทั้งไมโครซอฟท์และแอปเปิลเลย ในตลาดการศึกษา
lewcpe.com, @wasonliw
ผมว่ายังไม่ mass ในตลาดผู้ใช้งานกลุ่ม end user เท่าไหร่เลยคับ ดูกระแสมันไม่บูม ต้องรอดูสักพักยาวๆเลย
ไม่ mass ในกลุ่มผู้ใช้ทั่วไปไม่ได้แปลว่ามันแป๊กนะครับ OS แต่ละตัวมีกลุ่มผู้ใช้แตกต่างกันไป
กลุ่ม end user หลักคือตลาดการศึกษานี่ในสหรัฐฯ ครองตลาดค่อนข้างเยอะมาก ในไทยเองบางโรงเรียนที่บังคับให้มีคอมพิวเตอร์ทุกคนผมก็เคยเห็นบังคับ Chromebook บ้างแล้วนะครับ
ของเราบังคับใน notebook ส่วนตัวในโรงเรียนกันน้อย ก็เห็นน้อยตามไปด้วย
lewcpe.com, @wasonliw
ถ้าจะนับกันจริงๆ จะมี Cast OS ของ Google Home Hub/Nest Hub อีกตัวด้วยครับ ที่ตอนนี้เริ่มย้ายมาใช้ Fuchsia แทน
รากฐานของ Cast OS กับ Fuchsia OS เป็นเหมือนกันไหมครับ เห็นว่า Google Home Hub อัพเดทได้เองเลย ว้าวมาก
แป๊ก -> แป้ก ถ้าหมายถึงเสียงโท
แป๊กก็ยุบ
ปล่อยให้คนทุ่มใจให้ไปใช้อารมณ์ค้าง
ไปดู code มาคร่าวๆ เขียนด้วย Rust แต่ใช้ unsafe keyword เต็มไปหมด
แบบนี้ใช้ C ดีกว่าไหม
โค๊ด Rust ปรกติก็ Unsafe เยอะอยู่แล้วนี่ครับ (ฮา) ล้อเล่นนะครับ
ผมว่า พอมันเป็น OS มันต้องเล่นกับระดับล่างเยอะ การที่มันมี Unsafe เยอะผมว่ามันก็ไม่น่าแปลกนะ
คือสำหรับผม มันเหมือนคนใช้ Typescript แต่ใช้ดัน any เสียส่วนใหญ่น่ะครับ
แบบเลือกใช้ Rust เพราะมันมี feature memory by default แต่ดันไม่ใช้
ผมละงง
จริงฮะ ใช้ typescript ลง tslint แต่ใช้ /* tslint:disable rule1 rule2 rule 3 */ แทบทุกไฟล์ แถมประกาศเป็น any ไปทั่ว
ผมยังคิดว่า โค๊ดระดับล่าง เช่นพวกติดต่อกับฮาร์ดแวร์ หรือส่วนจัดการหน่วยความจำ ยังมีความจำเป็นต้องเป็น unsafe code อยู่มากครับ เพราะมันต้องมีการจัดการเมมโมรี่โดยตรงอยู่ อาจจะเป็นพวก memory-mapping อะไรงี้
หรืออาจจะเป็นส่วนที่ต้องคุยกับ library ที่มาจากภาษา C ก็ต้องเป็น unsafe ครับ ถ้าผมจำไม่ผิดนะ
แต่ส่วนที่อยู่ข้างบนนั้น ก็เป็น safe code ปรกติไป
ถ้าเคยเขียน C# มาก่อน ก็คอนเซพท์เดียวกันเลยครับ โค๊ดข้างล่างอาจจะต้อง unsafe ส่วนข้างบนก็ใช้ขั้นตอนปรกติไป อะไรงี้ครับ
(ปล. kernel developer หรือ rust developer มาอ่านเจอคงกุมขมับ ไอ้นี่มันไม่รู้จริงนี่หว่า ฮา)
ที่จริงผมก็ไม่ได้มีปัญหาอะไรกับ unsafe หรอกครับ
แค่ขัดใจนิดหน่อย เวลาคนชอบโทษภาษาโน้นนี้ว่าไม่ปลอดภัย ทั้งที่คนเขียนให้ไม่ปลอดภัยก็คือตนเอง
แล้วพอมาใช้ภาษาที่มันปลอดภัยกว่า ก็ดันเขียนให้มันไม่ปลอดภัยอีก
แทนที่จะศึกษาสักหน่อยว่ามันมีอะไรบ้างที่ทำให้ไม่ปลอดภัย ดันไปโทษภาษา
คือเรื่อง unsafe memory มันก็มี pattern อยู่ไม่ถึง 20 อย่าง
รู้ไว้ก็ไม่เสียหายใช้ได้กับทุกภาษา
Segmentation fault แค่อันนี้หน้าเดียวก็เกือบครบแล้ว
จะว่าไป ตอน C++ เริ่มมี smart pointer ช่วยจัดการเมมโมรี่ คนส่วนใหญ่ก็ยังใช้
new/delete
กันนะ ส่วนใหญ่คือมันชินมือกว่า และมันก็ชัดเจนกว่าด้วยว่า ตรงไหนมัน allocate ตรงไหนมัน free อะไรแบบนี้ก็ใช้เวลานานกว่าคนจะเลิกใช้ ซึ่งตอนนี้เองโค๊ดใหม่ๆ ถามว่ายังมีคนใช้ raw pointer อยู่ไหม บอกเลยว่าก็ยังเยอะครับ แค่ลดลงไปมากเท่านั้นเอง
มี code ที่อยู่นอก unsafe เยอะ เช่น ในไฟล์นี้ มี unsafe 4 ที่แต่ละที่ก็มี code ข้างในบรรทัดเดียว ประเด็นคือใช้ unsafe กี่ครั้งก็ตาม แต่ถ้ามี code อยู่นอก unsafe มากพอก็ใข้ได้
ถ้าสนใจคุยเรื่อง Rust ต่อเรียนเชิญที่กลุ่มที่ Telegramอีกทางครับ