เปิดตัว OpenBSD 7.9
(openbsd.org)- เพิ่มฟีเจอร์ หน่วงเวลาก่อน hibernate ทำให้ระบบสามารถปลุกตัวเองหลังจากเวลาที่ตั้งไว้ขณะอยู่ในสถานะ suspend แล้วเข้าสู่ hibernate ทันที เพื่อป้องกันแบตเตอรี่หมดระหว่าง suspend โดยกำหนดเวลาหน่วงเป็นวินาทีได้ด้วย
machdep.hibernatedelay - การเปลี่ยนแปลงด้านความปลอดภัย ถอดการข้ามข้อจำกัด
BIOCLOCKของ bpf(4) สำหรับ root, ยกเลิก promisetmppathของ pledge(2) และเพิ่ม __pledge_open(2) เพื่ออนุญาตการเข้าถึงไฟล์ภายใน libc แบบจำกัด - OpenSSH 10.3 แก้ไขปัญหาความปลอดภัยหลายรายการ เช่น ความเป็นไปได้ในการรันคำสั่งจากการขยาย
%token ของชื่อผู้ใช้ในssh(1), การจับคู่ principal ของ certificate ในsshd(8), การจัดการ setuid/setgid ของscp -Oแบบ legacy, การบังคับใช้ข้อจำกัดอัลกอริทึม ECDSA และการขาดการตรวจสอบ mux proxy - LibreSSL 4.3.0 เพิ่มการรองรับ TLS
MLKEM768_X25519keyshare,sievestarttls และ OID ของ pubkey แบบRSASSA-PSSพร้อมแก้ไขความเป็นไปได้ของการเขียนทับหน่วยความจำฮีป 4 ไบต์จากข้อผิดพลาด off-by-one ในการตรวจสอบ depth ของ X.509 verifier - ใน network stack veb(4) กลายเป็น bridge ที่รองรับ VLAN-aware รองรับ PVID, bitmap ของ VID ที่อนุญาต และการตั้งค่าพอร์ตแบบ access/trunk/hybrid โดยใช้ PVID เริ่มต้นเป็น 1 เพื่อให้เข้ากันได้กับการตั้งค่าแบบเดิม
- เปิดใช้งาน IPv6 autoconf(SLAAC) เป็นค่าเริ่มต้น และ pflow(4) เพิ่ม NAT template สำหรับ IPFIX/Netflow v10 ที่บรรจุ IP และพอร์ตต้นทาง/ปลายทางหลัง NAT
- pf(4) เพิ่ม source/state limiter และสามารถกำหนด action เมื่อถึงขีดจำกัดได้ โดย action เริ่มต้นของ limiter ใน pfctl(8) เปลี่ยนจาก
no-matchเป็นblock - ระบบเสมือนจริง เพิ่ม
vmbootเพื่อให้ sysupgrade(8) ทำงานได้ภายใน VM ของ vmd(8) พร้อมปรับปรุงการทำงานบน Apple Virtualization, เส้นทาง confidential computing เช่น AMD SEV และแก้ปัญหา race, hang และ network reset หลายรายการ - การรองรับฮาร์ดแวร์ เพิ่ม arm64 SoC รุ่น RK3588/RK3576, GL9755 SDHC บนโน้ตบุ๊ก Apple Silicon บางรุ่น, SoC SpacemiT K1 บน riscv64, nhi(4) สำหรับ USB4 และ ispi(4) สำหรับ Intel LPSS SPI
- เครือข่ายไร้สาย รองรับ 802.11ax เป็นค่าเริ่มต้น, รองรับ 5GHz 160MHz window และ 160MHz ใน iwx(4), เพิ่ม PMF ให้กับ iwm(4), iwx(4), qwx(4) และเปิดใช้
iwx(4)powersave เป็นค่าเริ่มต้น - การติดตั้งและอัปเกรด เปลี่ยนให้
sysupgradeล้มเหลวเมื่อไฟล์ซิสเต็ม/usrใช้งานเกิน 90% เพื่อลดความเสี่ยงต่อความเสียหายของระบบ และบน amd64 รองรับการโหลดไฟล์ kernel จาก EFI system partition ทำให้สามารถวาง OpenBSD boot loader และbsd.rdไว้ใน EFI boot partition ได้ - แพ็กเกจและองค์ประกอบหลัก มีแพ็กเกจให้ใช้ 13,044 รายการบน amd64, 12,883 รายการบน aarch64 และ 10,631 รายการบน i386 โดยรวม Chromium 147.0.7727.101, Firefox 150.0, Node.js 22.22.2, PostgreSQL 18.3, Rust 1.94.1 และ LLVM/Clang 19.1.7·20.1.8·21.1.8
2 ความคิดเห็น
ความเห็นจาก Hacker News
งานศิลป์ประจำรีลีสของ OpenBSD 7.9 ทำโดย Lyra Henderson
https://www.openbsd.org/images/PinkPuffy.png
https://www.openbsd.org/images/puffy79.gif
เพลงประจำรีลีสคือ "Diamond in the Rough" ที่ Bob Kitella แต่งและโปรดิวซ์
https://www.openbsd.org/lyrics.html#79
ตอนนี้สินค้ายังดูเหมือนจะเน้นเสื้อยืดเป็นหลัก: https://openbsdstore.com/
ผมใช้มันบนเซิร์ฟเวอร์เล็ก ๆ ที่บ้านสำหรับ DNS/DHCP และประทับใจในความเสถียร มองออกชัดเลยว่าผ่านการตรวจสอบสะสมกันมายาวนาน
ปัญหาด้านความปลอดภัยยังถูกค้นพบในระบบปฏิบัติการอื่นอย่างต่อเนื่อง และเพราะ AI มันจะยิ่งเร็วขึ้น ผมเลยคิดว่าถึงเวลาที่ทุกคนควรพิจารณา OpenBSD แล้ว
แนวทางที่เน้นความปลอดภัยต่อเนื่องมาหลายสิบปีนั้นแทบไม่มีใครเทียบได้ ผมย้ายจาก Ubuntu/Debian มา OpenBSD แบบเต็มตัวแล้ว และไม่คิดจะย้อนกลับไป
ถ้าต้องเลือก BSD ผมก็คงยังเลือก FreeBSD อยู่ดี
โค้ดเดียวกันรันได้ดีบน Linux/FreeBSD/Windows แต่บน OpenBSD ประสิทธิภาพแบบหลายเธรด ต่ำกว่า และ async socket ก็ส่งข้อมูลเร็ว ๆ ได้ไม่กี่วินาทีก่อนจะหยุด
ไม่ได้แปลว่า OpenBSD ผิด แค่ให้ความรู้สึกว่ามันต่างออกไป
ยังหาข้อมูลที่รองรับเรื่องนี้ไม่ได้ เห็นแต่ความเห็นเชิงความรู้สึกที่ค่อนข้างคลุมเครือ
มีการพูดถึงเรื่องนี้ไว้ที่: https://forum.qubes-os.org/t/qubesos-vs-openbsd-security/790...
https://x.com/ortegaalfredo/status/2055362910415671459
แน่นอนว่าฝั่ง Linux เองก็พูดได้ไม่เต็มปากว่าดีกว่า แต่ข้อได้เปรียบคือมีคนช่วยมองหาปัญหาและแก้ไขมากกว่าเพราะส่วนแบ่งตลาดสูงกว่า
สำหรับบางคน ข่าวใหญ่คือ Exim ถูกถอดออกจาก ports
มีบทความดี ๆ เรื่องการย้ายจาก Exim ไป OpenSMTPD: https://nxdomain.no/~peter/time_for_opensmtpd.html
ผมเคยลอง OpenSMTPD ตอนเพิ่งออกใหม่ ๆ แต่ตอนนั้นมันยังไม่เสถียรพอ ตอนนี้น่าจะถึงเวลาลองอีกครั้งแล้ว
ใช้ OpenSMTPD มาหลายปีทั้งบน OpenBSD และ Linux และไม่มีอะไรให้บ่น
เดิมทีมันก็ไม่ได้อยู่ใน base system อยู่แล้ว น่าจะเป็นแค่ ผู้ดูแลแพ็กเกจ ไม่อยากดูแลต่อมากกว่า
มันกระชับไม่รก และเมื่อเทียบกับรูปแบบเก่า ๆ แล้ว วิธีตั้งค่า ก็ให้ความรู้สึกทันสมัยพอสมควร
สำหรับกรณีใช้งานส่วนใหญ่ ผมมองว่ามันคือ SMTP server ที่ดีที่สุด
น่าเสียดายที่การรองรับพอร์ตไปแพลตฟอร์มอื่นไม่ค่อยดีนัก เลยทำให้คนที่ได้เรียนรู้ว่ามันดีแค่ไหนมักจำกัดอยู่ในกลุ่มผู้ใช้ OpenBSD
ผมเคยติดตั้งมันบน G4 PowerBook แล้วใช้อยู่พักหนึ่ง น่าจะช่วงต้นยุค 2000
ผมชอบท่าทีที่ไม่ยอมประนีประนอมกับ binary blob และแนวทางที่เน้นความปลอดภัย แถมประสบการณ์ใช้งานโดยรวมก็ดีมาก
โค้ดที่เคยอ่านก็ดูเขียนไว้อย่างสะอาด
มันเป็นระบบที่แนะนำได้เสมอ และผมคงต้องหาเครื่องสักตัวมาติดตั้งใหม่ในเร็ว ๆ นี้
นี่ยังเป็น รีลีสครั้งที่ 60 ด้วย ขอแสดงความยินดีกับทีมงาน
มีการเพิ่มกลไกใน scheduler สำหรับจัดการ แกน CPU ที่มีความเร็วต่างกัน
hw.blockcpuรับลำดับตัวอักษรสี่ตัวคือ S สำหรับ SMT, P สำหรับ performance core ปกติ, E สำหรับ efficiency core, และ L สำหรับแกนที่ช้ากว่า ใช้เลือก CPU ที่จะตัดออกจาก scheduler โดยค่าเริ่มต้นคือ SLตอนนี้ทำงานบน amd64 และ arm64
แต่ผมก็ยังไม่ค่อยเข้าใจข้อดีของการมีแกนช้าอยู่ใน CPU แบบ big.LITTLE เท่าไรนัก
เราก็คงไม่อยากให้งานถูกส่งไปลงแกนแบบนั้นอยู่แล้ว และแม้แต่งานเบื้องหลังก็น่าจะประหยัดพลังงานกว่าถ้าทำให้เสร็จเร็ว ๆ ไม่ใช่หรือ
ถ้าแต่ละแกนมีความสามารถต่างกัน ก็สงสัยเหมือนกันว่าจะเกิดอะไรขึ้น เช่น ตอนโปรเซสที่ต้องใช้ฟีเจอร์ CPU อย่าง AVX-512 ถูกจัดไปลงบนแกนที่ไม่มีฟีเจอร์นั้น
OpenBSD เลือกวิธีตรงไปตรงมาแบบเร็ว ๆ คือปิดแกนช้าไปเลย แต่ผมก็ไม่แน่ใจว่ามี heuristic ที่ดีสำหรับการมอบหมายงานให้แกนแบบนั้นหรือไม่
ที่พอนึกออกก็มีแค่กลไกซับซ้อนอย่างการติดแท็ก executable หรือ thread แบบกำหนดเองว่า “โปรเซสนี้เหมาะกับแกนช้า”
จากที่อ่านใน mailing list ดูเหมือน scheduler แบบเรียบง่ายจะโยนโปรเซสไปลงที่ไหนก็ได้ และแกนเล็กในระบบ big.LITTLE รุ่นใหม่บางตัวช้ามากจนกระทบการคอมไพล์โค้ดอย่างหนัก
ถ้างานเบื้องหลังรันต่อเนื่อง ตอบสนองต่อเหตุการณ์ที่คาดเดาไม่ได้ หรือปลุกขึ้นมาทำงานนิด ๆ หน่อย ๆ บ่อย ๆ ตรรกะ boost ของ CPU เพียงอย่างเดียวก็แก้ปัญหาการใช้พลังงานไม่ได้
และบน x86-64 หรือ ARM นั้น P-core กับ E-core ใช้ instruction set เดียวกัน จึงไม่มีความเสี่ยงที่จะไปรันคำสั่ง CPU ผิดชุด
แต่ instruction set แบบต่างชนิดกันจริง ๆ อาจกลับมาอีกในอนาคต ดังนั้นก็ควรระวังไว้
ถ้าใครที่นี่ใช้ OpenBSD อยู่ ผมอยากรู้ว่าใช้ทำอะไรบ้าง
ผมเองเคยอยากลองใช้ NetBSD กับแอปพลิเคชันสำหรับ embedded system หรืออุปกรณ์ IoT แต่ยังไม่มีโอกาส
OpenBSD ทำงานได้ยอดเยี่ยมบน ฮาร์ดแวร์ Apple รุ่นเก่าที่ Cupertino ไม่ซัพพอร์ตแล้วด้วย
ตอนนี้ผมรันคลัสเตอร์ Intel Mac Mini ด้วย uptime ที่แทบสมบูรณ์แบบ
ถ้าเป็นเซิร์ฟเวอร์ที่ต้องการความเสถียรและความปลอดภัยอย่างเว็บ เมล DNS NFS หรือฐานข้อมูล ก็แทบไม่ต้องมองหาอย่างอื่นแล้ว
แม้จะมีช่วงเรียนรู้ แต่คุ้มค่ามาก
เหตุผลหลักคือชอบ โครงสร้างที่เบาและเรียบง่าย
ระบบแพ็กเกจก็ง่าย การพัฒนาเคอร์เนลและการอัปเกรดก็ง่าย
ตัวโค้ดเคอร์เนลเองก็เขียนในสไตล์ที่ผมชอบ มีแต่แก่นสำคัญ ไม่มี abstraction หรือความวุ่นวายที่ไม่จำเป็น
เมื่อเทียบกับ BSD ตัวอื่นที่เคยใช้ ผมก็ยังชอบมันมากกว่า ทั้ง NetBSD และ FreeBSD/DragonFlyBSD
ผมชอบความรู้สึกที่ว่าสามารถเข้าใจระบบได้เกือบทั้งหมด
มันอาจไม่ฟีเจอร์ครบเท่า Linux แต่ความรู้สึกว่าเข้าใจระบบของตัวเองนั้นสดใหม่ดี
มันคล้ายกับการไปพักร้อนในเมืองเล็ก ๆ ที่สวยงามแล้วใช้ชีวิตเรียบง่ายสงบ ๆ แน่นอนว่าความรู้สึกนี้แต่ละคนก็คงต่างกัน
มันค่อนข้างเสถียรและคุ้นเคย
ถ้าคุณรู้จัก Unix อยู่แล้ว มันเรียบง่ายมาก
ผมหวังว่า OpenBSD จะไม่หายไป และก็ไม่ค่อยรู้ว่ามีอะไรแทนได้
ตอนนี้ Linux ซับซ้อนเกินไปจนรู้สึกตามไม่ทันแล้ว
ผมดูแลงานฝั่งดิจิทัล ทำแอป Ruby on Rails แล้ว deploy บน OpenBSD
ระบบทั้งหมดรันอยู่บนเซิร์ฟเวอร์ Supermicro U1 ราคาประหยัดเครื่องเดียวในแร็กที่บ้าน
nsdส่วนอีเมลใช้opensmtpdซึ่งรันได้ทันทีด้วยการตั้งค่าน้อยมากแม้บน KVM ที่มีหน่วยความจำต่ำเอกสารยอดเยี่ยมและติดตั้งง่าย
sysupgrade เป็นการปรับปรุงครั้งใหญ่ แต่ก็อยากให้รอบการออกรุ่นช้าลงอีกนิด
เห็นว่ามีการเปลี่ยนสปินล็อก
casใน kernel mutex ไปเป็น parking lock เลยสงสัยว่า parking lock คืออะไรและทำงานอย่างไรผมหาเรื่องนี้ใน man page ไม่เจอ
https://man.openbsd.org/OpenBSD-5.5/lock.9
https://man.openbsd.org/OpenBSD-5.9/mutex.9
https://webkit.org/blog/6161/locking-in-webkit/
spinlock จะมีประสิทธิภาพดีเมื่อการแข่งขันไม่สูงและช่วงเวลาที่ถือครองล็อกสั้น แต่ถ้าไม่เข้าเงื่อนไขข้อใดข้อหนึ่ง เธรดที่ติดรอก็มักจะเผาผลาญ CPU core ไปเต็ม ๆ ระหว่างที่รอได้ง่าย
ออกนอกประเด็นไปหน่อย แต่ผมก็อยากให้ฝั่ง FreeBSD ถอยออกมาจาก โลโก้ลูกแก้วแก้วใส แบบองค์กรปลอมไร้วิญญาณ กับฟอนต์ที่เหมือนกล่องของเล่นยานอวกาศยุคต้น 90s แล้วกลับไปหา Beastie กับฟอนต์ serif เท่ ๆ อีกครั้ง
พูดอีกอย่างคือผมอิจฉา และงานอาร์ตของ OpenBSD นั้นยอดเยี่ยมจริง ๆ
อยากให้ OpenBSD รองรับ Bluetooth
การไม่มีมันเป็นข้อจำกัดสำคัญที่น่าเสียดาย เพราะตอนเคยลองใช้บนเดสก์ท็อปก็ถือว่ายอดเยี่ยมมาก
มันถูกถอดออกไปในปี 2014
OpenBSD ดูน่าสนใจมาก แต่ตอนนี้ยังให้ความรู้สึกว่าถูกจำกัดไว้กับงานเซิร์ฟเวอร์มากกว่าเดสก์ท็อป ซึ่งในแง่ที่เน้นความเรียบง่ายก็อาจเป็นข้อดี
ถึงอย่างนั้นก็ยังอยากให้รองรับฮาร์ดแวร์มากกว่านี้
ถ้ารัน OpenBSD ใน virtual machine ก็อาจได้ทั้งการรองรับฮาร์ดแวร์จากระบบโฮสต์อย่าง Linux/Windows และข้อดีของ OpenBSD ไปพร้อมกัน
ยกตัวอย่างเช่นกับคีย์บอร์ด BLE ผมใช้ Seeed Studio XIAO nRF52840
พอดีเลย ผมกำลังสงสัยว่า 7.9 จะออกเมื่อไรอยู่
แถมยังมี เพลงประจำรีลีส อีกด้วย ยิ่งดีเลย
ถ้าจำไม่ผิด เหมือนจะไม่มีเพลงใหม่มาสักพักแล้ว
อย่างที่มีคนพูดในอีกเธรด เพลงล่าสุดคือ 7.3
ความคิดเห็นจาก Lobste.rs
เพิ่งรู้วันนี้ว่า OpenBSD มีทั้ง อาร์ตเวิร์กและเพลง สำหรับทุกรีลีส: https://www.openbsd.org/lyrics.html#79
มีอยู่สามเหตุผลคือ อยากให้ร้านหนังสือสั่งของเกี่ยวกับ OpenBSD เข้ามาเรื่อยๆ, อยากสนับสนุนโปรเจกต์, และอยากมีอาร์ตเวิร์กกับเพลงเป็นชิ้นจริงๆ และก็คิดถึงพิธีกรรมแบบนั้น
สนใจ BSD มาตลอด แต่คงยังเลิกใช้ Linux ไม่ได้เพราะ เกม
เกมออนไลน์จำนวนมากมีพื้นผิวการโจมตีจากช่องโหว่ขนาดใหญ่ เป็นโค้ดปิดที่ไม่มีใครตรวจสอบ และบางทีก็ถูกปล่อยทิ้งหลังวางขายโดยไม่มีอัปเดต
ข้อดีคือไม่ต้องเก็บข้อมูลธนาคารหรือเอกสารเกี่ยวกับบัตรประชาชน/ตัวตนภาครัฐไว้ในเครื่องเดียวกัน
ใช้ความพยายามนิดหน่อยในการตั้งค่า
sshdแล้วก็ลองเล่นฟีเจอร์ต่างๆ ของ BSD ได้เต็มที่ และถ้าอยากก็ยังขยายไปทำ self-hosting ได้ด้วยตอนนี้ฉันรัน Home Assistant อยู่บน
bhyveที่ FreeBSD ดูแลอยู่ และกำลังคิดว่าเครื่องถัดไปจะเอาอะไรไปรันเพื่อใช้เซิร์ฟเวอร์ให้คุ้มขึ้นแน่นอนว่าทำผ่าน virtual machine ก็ได้ แต่สำหรับฉัน อย่างน้อยมันยังแทนความรู้สึกของการได้จับระบบจริงๆ ไม่ได้ทั้งหมด
ลองใช้ OpenBSD 7.9 บน QEMU แล้ว ตัวติดตั้งดูค่อนข้างโบราณ และชุดพื้นฐาน
X11+fvwm2+xtermก็ดูเก่า แต่บูตขึ้นมาและทำงานได้ดีdoasทำงานได้ยอดเยี่ยม และติดตั้งแพ็กเกจด้วยpkg_addได้ด้วยแปลกใจที่การติดตั้งพื้นฐานไม่มี
curlหรือwgetแต่ในมุมมองด้านความปลอดภัย ฉันชอบแนวคิด คอนฟิกขั้นต่ำมันพาคุณผ่านทั้งกระบวนการ แต่ถ้าต้องการแทรกแซงด้วยมือเมื่อไรก็ทำได้ง่าย
จะกด Enter ไปเรื่อยๆ อย่างเดียวก็ได้ หรือจะจัดการเองเกือบทั้งหมดก็ได้
ชุดพื้นฐาน
X11+fvwm2+xtermก็ดูเหมือนตั้งใจให้เป็นชุดแพ็กเกจที่ติดตั้งและใช้งานได้แม้บนเครื่องเก่ามากระดับเหมือนเศษขนมปังขึ้นราถึงอย่างนั้น Wayland ก็ถูก พอร์ต มายัง OpenBSD แล้ว และก็ดีใจที่สิ่งซึ่งในปี 2023 ยังใกล้เคียงกับแค่ แผน กลับเป็นรูปเป็นร่างได้เร็วขนาดนี้
สำหรับการดาวน์โหลด เขาคาดหวังให้ใช้ ftp(1) ซึ่งแม้ชื่อจะเป็นแบบนั้น แต่ไม่ได้รองรับแค่ FTP อย่างเดียว ยังดึงผ่าน HTTP(S) ได้ด้วย
ในที่สุดก็คงได้ลองติดตั้งลง Yeelong Lemote อีกครั้ง
ก่อนหน้านี้ฉันโดนเล่นงานเพราะการเปลี่ยนแปลง
pledgeใน errata ล่าสุด ทำให้ต้องคอมไพล์แค่เคอร์เนล 7.8 ใหม่โดยปล่อย userland ไว้เหมือนเดิม และแน่นอนว่า Loongson ก็ไม่มีไบนารีอัปเดตให้อยู่แล้ว