SerenityOS - ระบบปฏิบัติการแบบ Unix-like ที่สร้างด้วย GUI ยุค 90
(serenityos.org)-
ระบบปฏิบัติการที่ให้ความรู้สึกเหมือนการผสาน UI ของ Windows/Mac ช่วงปลายยุค 1990 เข้ากับแกน *nix ช่วงปลายยุค 2000
-
เริ่มต้นเป็นโปรเจกต์ของคนคนเดียว และกำลังเติบโตด้วยการสนับสนุนจากชุมชนตลอด 3 ปีที่ผ่านมา
-
ตั้งแต่เคอร์เนลไปจนถึงเว็บเบราว์เซอร์/IDE ทั้งหมดถูก "พัฒนาขึ้นเองจากพื้นฐานโดยไม่ใช้ไลบรารีภายนอก"
-
ตัวระบบเองพัฒนาด้วย Serenity C++
→ รูปแบบหนึ่งของ C++ สมัยใหม่ที่มีไลบรารีมาตรฐานของตัวเอง
Repo : https://github.com/SerenityOS/serenity
- ความสามารถของเคอร์เนล
→ เคอร์เนล x86(32bit) / x86_64(64bit) ที่รองรับ preemptive multithreading
→ สแตก IPv4 (ARP, TCP, UDP, ICMP)
→ ระบบไฟล์ ext2
→ รองรับ POSIX signal
→ รองรับระบบไฟล์ /proc
- บริการของระบบ
→ Launch/session daemon (SystemServer)
→ Compositing window server (WindowServer)
→ Text console manager (TTYServer)
→ DNS client (LookupServer)
→ เซิร์ฟเวอร์สำหรับโปรโตคอลเครือข่าย (RequestServer and WebSocket)
→ sound daemon แบบ software-mixing (AudioServer)
→ การแจ้งเตือนบนเดสก์ท็อป (NotificationServer)
→ HTTP server (WebServer)
→ Telnet server (TelnetServer)
→ DHCP client (DHCPClient)
- ไลบรารี
→ C++ templates and containers (AK)
→ Event loop and utilities (LibCore)
→ ไลบรารีกราฟิก 2D (LibGfx)
→ ไลบรารีที่เข้ากันได้กับ OpenGL 1.x (LibGL)
→ GUI toolkit (LibGUI)
→ ไลบรารีสื่อสารข้ามโปรเซส (LibIPC)
→ HTML/CSS engine (LibWeb)
→ JavaScript engine (LibJS)
→ Markdown (LibMarkdown)
→ Audio (LibAudio)
→ Digital Signal Processing/Synthesizer Chains (LibDSP)
→ ฐานข้อมูล PCI (LibPCIDB)
→ Terminal emulation (LibVT)
→ network protocol I/O แบบ out-of-process (LibProtocol)
→ ฟังก์ชันทางคณิตศาสตร์ (LibM)
→ การจัดการไฟล์ ELF (LibELF)
→ POSIX threading (LibPthread)
→ threading ระดับสูง (LibThreading)
→ Transport Layer Security (LibTLS)
→ HTTP and HTTPS (LibHTTP)
→ IMAP (LibIMAP)
- ความสามารถของ userland
→ libc และ userland แบบ Unix-like
→ Shell ที่รองรับ pipes และ I/O redirection
→ ระบบช่วยเหลือออนไลน์ (มีทั้งแบบเทอร์มินัลและ GUI)
→ เว็บเบราว์เซอร์ (Browser)
→ C++ IDE (HackStudio)
→ เดสก์ท็อปซินธิไซเซอร์ (Piano)
→ โปรแกรมรับส่งอีเมล (Mail)
→ แอปเดสก์ท็อปและเกมหลากหลาย
→ ธีมสี
1 ความคิดเห็น
ในบรรดา OS ที่ทำเป็นงานอดิเรก น่าจะเป็นตัวที่มีเอกลักษณ์ที่สุดแล้วครับ การที่ใส่ทั้งไลบรารีและแอปจำนวนมากขนาดนั้นเข้าไปได้ก็น่าทึ่งเหมือนกัน
โปรเจ็กต์นี้เริ่มต้นโดยผู้สร้างดั้งเดิม Andreas Kling ในปี 2018 หลังจากจบโปรแกรมบำบัดการติดยาระยะ 3 เดือน และมีเวลาส่วนตัวมากขึ้น จึงเริ่มทำขึ้นมาเพื่อใช้เวลาให้เป็นประโยชน์
ก่อนหน้านี้เขาเป็นนักพัฒนาที่ทำงานด้าน WebKit ที่ Apple และ Nokia ครับ ว่ากันว่าจากประสบการณ์ที่เคยทำงานที่ Apple ทำให้เขามุ่งเน้นการพัฒนาทุกอย่างด้วยตัวเองโดยไม่พึ่งแพ็กเกจภายนอก
ตั้งแต่เดือนพฤษภาคมปีนี้ เงินสนับสนุนก็มีมากพอแล้ว ทำให้ตอนนี้เขาพัฒนา SerenityOS แบบเต็มเวลาอยู่ครับ
ตอนนี้มีผู้สนับสนุนผ่าน GitHub Sponsors อยู่ 232 คน https://github.com/sponsors/awesomekling
ส่วน Patreon มี 279 คนครับ https://www.patreon.com/serenityos
ตอนนี้มีผู้ร่วมพัฒนามากกว่า 500 คนแล้ว และในช่อง YouTube ก็มีการอัปโหลดอัปเดต OS ทุกเดือนด้วย
https://youtube.com/playlist/?list=PLMOpZvQB55bfp6ykOLayLqLrjcpv_Sw3P
ช่วงต้นปี 2019 ความยาวอยู่ราว ๆ 10 นาที แต่ช่วงนี้อัปเดตยาวขึ้นเป็นประมาณ 30–40 นาทีแล้ว
อีกคลิปที่ดังมากคือวิดีโอที่พอร์ต Devilution ซึ่งเป็นการทำ reverse engineering ของ Diablo 1 ให้รันบน SerenityOS ได้ภายในเวลาเพียง 1 ชั่วโมง
https://github.com/diasurgical/devilution
https://www.youtube.com/watch?v=ZOzZ8R4gphE