4 คะแนน โดย GN⁺ 2024-01-27 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

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 ความคิดเห็น

 
GN⁺ 2024-01-27
ความคิดเห็นใน 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 เพิ่มขึ้นเรื่อย ๆ

  • ชื่นชมว่าเป็นตัวเลือกที่น่าสนใจ และไม่ใช่แค่ลินุกซ์ดิสทริบิวชันอีกตัวหนึ่งเท่านั้น