Oasis เป็นระบบลินุกซ์ขนาดเล็ก
- Oasis แตกต่างจากระบบปฏิบัติการที่ใช้ลินุกซ์ตัวอื่นค่อนข้างมาก และใกล้เคียงกับ BSD มากกว่า
- ซอฟต์แวร์ทั้งหมดลิงก์แบบสแตติก จึงช่วยแก้ปัญหาการอัปเกรดไลบรารี และให้ไบนารีที่แยกตัวสมบูรณ์ซึ่งคัดลอกไปยังระบบอื่นได้ง่าย
- ให้การบิลด์ที่รวดเร็วและบิลด์ที่ทำซ้ำได้ 100% พร้อมเวลาในการบิลด์ที่เหมาะสม การบิลด์ที่คาดการณ์และทำซ้ำได้ การพึ่งพาระหว่างเวลาบิลด์ที่ลดลง และการบิลด์แบบ incremental ได้แม้ข้ามขอบเขตแพ็กเกจ
- มีการพึ่งพาสำหรับการบูตสแตรปขั้นต่ำ ทำให้ครอสคอมไพล์ได้ง่ายแม้บนระบบที่ไม่ใช่ลินุกซ์อย่าง macOS หรือ OpenBSD
หลักการ
- ความซับซ้อนของซอฟต์แวร์ควรถูกวัดโดยรวมการพึ่งพาแบบส่งต่อทั้งหมด
- ไฟล์ปฏิบัติการควรลิงก์แบบสแตติก
- องค์ประกอบของซอฟต์แวร์ควรเอื้อให้ปรับแต่งและแก้ไขได้ง่าย
- ซอร์สของแพ็กเกจควรถูกอ้างอิงผ่าน URL หรือ git submodule และไม่ควรถูกรวมมาโดยตรง
/etc ควรเรียบง่ายพอที่จะทำความเข้าใจได้ทั้งหมด
- แพตช์ควรจัดระเบียบอย่างดี มีคำอธิบายที่ดี และต้องสามารถนำไปใช้ได้อย่างสะอาดเสมอ
การติดตั้ง
- Oasis เป็นโปรเจ็กต์ที่มีความทะเยอทะยาน และยังมีงานอีกมากที่ต้องทำ
- ผู้ใช้ควรคุ้นเคยกับการบิลด์เคอร์เนลของตนเองและการแก้ปัญหาของระบบ
- หากเกิดปัญหา ทางโครงการยินดีช่วยเหลือเสมอ
QEMU
- หากอยากลองใช้ Oasis โดยยังไม่ติดตั้งจริง สามารถใช้ QEMU image ได้
- ภายในอาร์ไคฟ์มี root filesystem, Linux kernel และสคริปต์สำหรับรัน QEMU รวมอยู่
- สามารถรันในโหมดกราฟิกด้วย
./run และรันในโหมดซีเรียลด้วย ./run -s
ซอฟต์แวร์
- ใช้อิมพลีเมนเทชันของไลบรารีและเครื่องมือที่เรียบง่ายและเล็กที่สุดเท่าที่เป็นไปได้
- musl, sbase, ubase, pigz, mandoc, bearssl, oksh, sdhcp, vis, byacc, perp และ sinit, netsurf, samurai, velox, netbsd-curses ถูกใช้แทน glibc, coreutils, util-linux, gzip, man-db, openssl, bash, dhclient/dhcpcd, vim/emacs, bison, sysvinit/systemd, chromium/firefox, ninja, Xorg, ncurses ตามลำดับ
- แพ็กเกจถูกจัดกลุ่มเป็นชุดตามตรรกะ และสามารถดูรายการทั้งหมดได้ในไดเรกทอรี pkg
- หากซอฟต์แวร์ที่ต้องการไม่มีอยู่ ก็ยังสามารถติดตั้งผ่าน pkgsrc หรือ nix ได้
ช่องทางติดต่อ
- สำหรับคำถาม แพตช์ หรือการพูดคุยทั่วไป สามารถใช้เมลลิงลิสต์ (~mcf/oasis@lists.sr.ht) และช่อง IRC (#oasis บน libera.chat)
ความเห็นของ GN⁺
- Oasis นำเสนอแนวทางที่แตกต่างจากระบบลินุกซ์แบบเดิม และด้วยคุณสมบัติอย่างการลิงก์แบบสแตติก การบิลด์ที่รวดเร็ว และการพึ่งพาสำหรับการบูตสแตรปขั้นต่ำ จึงมอบทางเลือกใหม่ให้แก่นักพัฒนา
- ระบบนี้มีปรัชญาที่ให้ความสำคัญกับการลดความซับซ้อนของการพัฒนาซอฟต์แวร์ และความง่ายในการปรับแต่งและแก้ไข จึงมอบมุมมองที่สดใหม่ต่อหลักการของวิศวกรรมซอฟต์แวร์
- แม้ Oasis จะยังเป็นโปรเจ็กต์ที่อยู่ระหว่างการพัฒนา แต่ก็อาจเป็นทางเลือกที่น่าสนใจสำหรับผู้ใช้ที่ชื่นชอบความท้าทายทางเทคนิคและต้องการความเข้าใจระบบอย่างลึกซึ้ง
1 ความคิดเห็น
ความคิดเห็นใน Hacker News
อาจพูดถึงตัวระบบได้ไม่มากนัก แต่ตอนมีปฏิสัมพันธ์กับชุมชนผ่าน IRC พวกเขาเป็นมิตรมาก มีแผนจะสร้างอิมเมจ OS แบบ immutable เพื่อรันเป็นโหนด Kubernetes และก็ทำสำเร็จด้วยความช่วยเหลือเล็กน้อย
การลิงก์แบบสแตติกบ่งชี้ว่า base image และหน่วยความจำขณะรันอาจใหญ่ขึ้นเพราะมีไลบรารีหลายชุดซ้ำกัน ความเรียบง่ายของการลิงก์แบบสแตติกนั้นดี แต่ก็ดูเหมือนจะขัดกับแนวคิดเรื่อง "การลดขนาด"
มีการให้ลิงก์ไปยังกระทู้สนทนาก่อนหน้าเมื่อเดือนสิงหาคม 2022
สงสัยว่ามีใครรู้หรือไม่ว่าขนาดการติดตั้งพื้นฐานเท่าไร หาคำตอบจากที่ไหนก็ไม่เจอ และลิงก์ไปยังอิมเมจ QEMU ตอนนี้ก็เสียแล้ว เช่น อยากรู้ว่าเมื่อเทียบกับ Alpine ที่มีชุดแพ็กเกจใกล้เคียงกันแล้วเป็นอย่างไร
สงสัยว่า use case คืออะไร และข้อดีของการใช้คอมไพเลอร์ C อย่าง croc คืออะไร มีข้อได้เปรียบอะไรเมื่อใช้ croc แทน TCC และรู้สึกสนใจที่ได้รู้จักเบราว์เซอร์ Netsurf แต่เพราะมันใช้เอนจิน JS อย่าง Duktape จึงอาจมีปัญหาเรื่องประสิทธิภาพ
มีคอมเมนต์หนึ่ง (ที่ถูกลบไปแล้ว) แสดงความไม่พอใจที่ไม่สามารถเข้า Github ได้เมื่อปิด JavaScript อยู่ อย่างไรก็ตาม รีโพซิทอรีของ Oasis ก็มีการมิเรอร์ไว้บน sourcehut ด้วย ซึ่งอาจยอมรับได้มากกว่า
michaelforney ยังเป็นผู้ทำพอร์ต st ไปยัง wayland ด้วย ต้นกำเนิดก่อนหน้าของ Oasis คือ sta.li
สงสัยว่าไลบรารีแบบสแตติกมีขนาดมากน้อยเพียงใด ไลบรารีแบบไดนามิกสามารถแชร์ address space กันได้ แต่ในกรณีของไลบรารีแบบสแตติก ลิงเกอร์สามารถตัดรูทีนที่ไม่ได้ใช้ออกได้ จึงอาจมีประสิทธิภาพที่คาดไม่ถึงได้ นอกจากนี้อาจเร็วกว่าอีกด้วย
สงสัยว่าการเปรียบเทียบระหว่าง musl กับ glibc แบบดั้งเดิมเป็นอย่างไร และมีความต่างด้านประสิทธิภาพระหว่างไลบรารีทั้งสองหรือไม่ ช่วงหลังมานี้การใช้ musl ใน ecosystem ของ Rust และ Zig เพิ่มขึ้นเรื่อย ๆ
ชื่นชมว่าเป็นตัวเลือกที่น่าสนใจ และไม่ใช่แค่ลินุกซ์ดิสทริบิวชันอีกตัวหนึ่งเท่านั้น