ไลบรารี GNU Portability Library (gnulib-tool) เป็นไลบรารีที่รวบรวมชุดคำสั่งทั่วไปของ GNU สำหรับให้นักพัฒนาใช้อิมพอร์ตเข้าไปในโค้ดตอนเขียนโปรแกรมภาษาต่างๆ
เนื่องจาก gnulib-tool เริ่มต้นสร้างขึ้นมาโดยเน้นด้าน portability เป็นสำคัญ มันจึงถูกเขียนขึ้นโดยใช้ shell script นั่นทำให้ประสิทธิภาพในการทำงานอาจจะไม่เร็วนักเมื่อเทียบกับไลบรารีที่เขียนด้วยภาษาโปรแกรมอื่น นักพัฒนาหลายคนก็บ่นเรื่องความช้าของ gnulib-tool มาเป็นเวลานาน
ช่วงหลายปีที่ผ่านมา เราเห็น Rust ถูกนำไปใช้เขียนซอฟต์แวร์พื้นฐานสำคัญๆ หลายตัวที่เดิมสร้างด้วย C/C++ ด้วยเหตุผลด้านความปลอดภัยที่ระดับตัวภาษา Rust เอง ตัวอย่างโครงการลักษณะนี้คือ su/sudo ตัวใหม่ที่เขียนด้วย Rust , Rustls โครงการทดแทน OpenSSL , mod_tls ของ Apache เป็นต้น
ในโลกของลินุกซ์ยังมีซอฟต์แวร์พื้นฐานที่เรียกรวมๆ ว่า coreutils (ย่อมาจาก Core Utilities) ตัวอย่างที่ใช้บ่อยๆ คือคำสั่งอย่าง ls, ln, more, chmod, chown, cat, printenv, wc เป็นต้น ซอฟต์แวร์เหล่านี้ถูกสร้างโดยโครงการ GNU มายาวนานตั้งแต่ยุค 90s และพัฒนาด้วยภาษา C
Richard Stallman หรือ RMS ผู้ก่อตั้งโครงการ GNU และ Free Software Foundation เปิดเผยว่าเขากำลังต่อสู้กับโรคมะเร็งต่อมน้ำเหลืองชนิดโตช้า follicular lymphoma โดยระบุว่าสถานการณ์มะเร็งของเขายังดี และหวังว่าจะอยู่คู่กับวงการ GNU ไปอีกหลายปี
Stallman ปรากฏตัวในงานฉลองโครงการ GNU ครบรอบ 40 ปี ในสภาพที่ไม่คุ้นเคยเพราะผมและหนวดเคราที่เป็นเอกลักษณ์หายไปหมด และเสียงของเขาไม่ดีนักในตอนพูด
ปัจจุบัน Stallman อายุ 70 ปีแล้ว เขาก่อตั้งโครงการ GNU ในปี 1983 และมูลนิธิ Free Software Foundation ในปี 1985 โดยซอฟต์แวร์หลายตัวในโครงการ GNU ถูกใช้งานแพร่หลายในโลกโอเพนซอร์สมาจนถึงปัจจุบัน เช่น glibc, Bash, GCC, Emacs, Grub, GIMP เป็นต้น
grep โปรแกรมค้นหาข้อความที่อยู่คู่กับยูนิกซ์มายาวนาน (สร้างโดย Ken Thompson ผู้สร้างยูนิกซ์ในปี 1973 อายุโปรแกรมตอนนี้ 48 ปี) ที่ผ่านมาเคยมีเวอร์ชันแยกย่อย เช่น egrep และ fgrep ที่มีพฤติกรรมการทำงานแตกต่างกันเล็กน้อย
grep เวอร์ชันที่ใช้งานอยู่ในปัจจุบันคือ GNU Grep ล่าสุดเพิ่งออกเวอร์ชัน 3.8 มีการเปลี่ยนแปลงสำคัญคือจะแจ้งเตือนผู้ใช้เวลาสั่ง egrep และ fgrep แล้ว ให้เปลี่ยนไปใช้คำสั่ง grep -E และ grep -F แทน
คนใช้ลินุกซ์ในกลุ่ม Ubuntu น่าจะพบว่าเอกสารการใช้งานส่วนมากไม่ได้แนะนำให้แก้ไขไฟล์ด้วย vi
เช่นเดียวกับลินุกซ์อื่นๆ แต่อาศัย nano
ที่ใช้งานค่อนข้างง่ายกว่าแทน วันนี้ทางโครงการก็ออก GNU nano 5.0
ฟีเจอร์สำคัญคือผู้ใช้จะสามารถเปิดออปชั่น --indicator
หากไฟล์ยาวเกินหน้าจอตัวโปรแกรมก็จะแสดง scrollbar ขึ้นด้านข้างแสดงว่าหน้าจอตอนนี้อยู่ตรงส่วนใดของไฟล์ นับเป็นฟีเจอร์พื้นฐานของโปรแกรมแก้ไขไฟล์แบบ GUI จำนวนมาก
นอกจากนี้ยังมีฟีเจอร์ชุดใหญ่ เช่น รองรับ syntax ไฟล์ Markdown, bookmark (เรียกในโปรแกรมว่า tagged) ตำแหน่งไฟล์ไว้ได้, เพิ่มสีที่รองรับในระบบเป็นต้น
ที่มา - GNU nano
GNU nano ออกเวอร์ชัน 4.0 นับเป็นเวอร์ชันใหญ่ที่ต่อจาก GNU nano 3.0 ที่เพิ่งออกเมื่อปีที่แล้ว ของใหม่ที่สำคัญได้แก่
- เปลี่ยนวิธีตัดบรรทัดที่ยาวเกินไป ไม่ใช้วิธี hard-wrapped อีก (แก้คืนได้ถ้าต้องการ)
- ไม่แทรกอักขระขึ้นบรรทัดใหม่ (newline) เข้ามาในบัฟเฟอร์ของข้อความอีกแล้ว
- ใช้ smooth scrolling เลื่อนทีละ 1 บรรทัดเป็นค่าดีฟอลต์ (เปลี่ยนกลับเป็นเลื่อนทีละครึ่งหน้าได้)
- ช็อตคัต Alt+Up/Down สำหรับเลื่อนบรรทัด
- Read more about GNU Nano ออกเวอร์ชันใหญ่ 4.0
- Log in or register to post comments
Bash (Bourne Again SHell) ระบบคอนโซลแบบ command line ที่ได้รับความนิยมสูงสุดในลินุกซ์ออกเวอร์ชั่น 5.0 หลังจากรุ่น 4.0 ออกมาตั้งแต่เดือนกุมภาพันธ์ปี 2009 หรือเกือบสิบปีก่อน
ความเปลี่ยนแปลงยิบย่อยมีจำนวนมาก ความเปลี่ยนแปลงสำคัญ เช่น
- ตัวแปร BASH_ARGV0 ที่ทำให้สามารถเซ็ตค่าตัวแปร $0 หรือชื่อสคริปต์ได้ มีประโยชน์ต่อการดีบั๊กในบางกรณี
- EPOCHSECONDS ตัวแปรค่าเวลา epoch ระดับวินาที
- EPOCHREALTIME ตัวแปรค่าเวลา epoch ระดับไมโครวินาที
- คำสั่ง history สามารถเลือกลบเป็นช่วง
สำหรับผู้ใช้ทั่วไปคงต้องรอดิสโทรลินุกซ์ต่างๆ นำไปรวมในโครงการ เราน่าจะเริ่มเห็นลินุกซ์รายหลักๆ อัพเดตกันในไม่กี่เดือนนี้
GNU nano โปรแกรมแก้ไขข้อความยอดนิยมอีกตัวในสายยูนิกซ์ ออกเวอร์ชันใหญ่ 3.0 พร้อมฟีเจอร์ใหม่หลายอย่าง
- อ่านไฟล์ได้เร็วขึ้นถึง 70%
- จัดการข้อความแบบ ASCII ได้เร็วขึ้นเกือบสองเท่า
- เพิ่มปุ่มลัด Ctrl+Delete ลบคำที่อยู่ถัดไป และ Ctrl+Shift+Delete ลบคำก่อนหน้า
- แก้บั๊กการแสดงเลขบรรทัด ในกรณีเปิดหลายไฟล์
- เปลี่ยนชื่อคำสั่งที่สับสน เช่น copytext เป็น copy และ uncut เป็น paste
ที่มา - nano-editor , Phoronix
โปรแกรมแก้ไขไฟล์รุ่นเก๋าอย่าง Emacs ออกรุ่น 25.1 แล้ว หลังจากออกเวอร์ชั่นหลักครั้งล่าสุดเมื่อกลางปี 2012 และออกเวอร์ชั่นแรกมาตั้งแต่ปี 1976 จนถึงตอนนี้ก็สี่สิบปีพอดี
ในเวอร์ชั่นนี้ทางโครงการหันไปใช้มาตรฐาน C99 และยกเลิกการซัพพอร์ต SGI IRIX แล้ว และสามารถโหลดไดนามิกไลบรารีเข้ามาใน Emacs เพื่อเสริมความสามารถได้ ไฟล์บางส่วนจะไม่สามารถใช้ร่วมกับเวอร์ชั่นเก่าได้ เช่น ไฟล์เดสก์ทอปที่ปรับเวอร์ชั่นเป็น 208
ฟีเจอร์สำคัญในเวอร์ชั่นนี้ คือ Emacs จะมาพร้อมกับเกมสามเกม ได้แก่ tertis, pong, และ snake
รายการความเปลี่ยนแปลงทั้งหมดอ่านได้ใน release note
นักพัฒนาซอฟต์แวร์สายโอเพนซอร์สคงรู้จัก GDB หรือ GNU Debugger ซอฟต์แวร์ดีบั๊กเกอร์ชื่อดังภายใต้โครงการ GNOME
ล่าสุดไมโครซอฟท์ประกาศว่า Visual Studio 2015 จะรองรับ GDB Extension เพิ่มเติม ช่วยให้นักพัฒนาสามารถดีบั๊กโค้ดบนเครื่องลินุกซ์แบบรีโมท ได้จากตัว Visual Studio เลย
ขั้นตอนการใช้งานคือติดตั้ง Visual Studio GDB Debugger จากนั้นเชื่อมต่อเครื่องวินโดวส์ต้นทางกับเครื่องลินุกซ์ปลายทางด้วย SSH ก็เรียบร้อย ในกรณีที่อยากดีบั๊กบนเครื่องตัวเอง (local) สามารถลง GDB ผ่านตัวช่วยอย่าง MinGW ได้เช่นกัน
โครงการ GNU ออก Hurd (ระบบปฏิบัติการชนิดหนึ่งจาก GNU ที่ใช้ Kernel แบบ Mach) รุ่น 0.7 แล้ว
ปัจจุบัน Hurd รองรับสถาปัตยกรรมเฉพาะ 32-bit x86 เท่านั้น ส่วน 64-bit x86 อยู่ในช่วงกำลังพัฒนา และกำลังหาอาสาสมัครเพื่อทำให้ Hurd รองรับสถาปัตยกรรมอื่นๆ ด้วย ระยะเวลาห่างกันของรุ่น 0.6 กับ 0.7 อยู่ที่ 6 เดือน (รวดเร็วกว่าเดิม) โดยมีการแก้บั๊ก และเพิ่มสิ่งใหม่ๆ เช่น
- เพิ่ม node cache ลงใน ext2fs
- เพิ่มโปรแกรม utility rpcscan
- update compiler และ libc ให้เป็นรุ่นใหม่กว่า
ที่มา - Hurd 0.7 changelog
- Read more about GNU Hurd 0.7 ออกแล้ว
- 7 comments
- Log in or register to post comments
Project Zero ของกูเกิลที่ตั้งขึ้นมาเพื่อหาบั๊กความปลอดภัยในซอฟต์แวร์ใดๆ ที่มีคนใช้งานจำนวนมากเริ่มมีผลงานต่อสาธารณะ รอบนี้เป็นบั๊กฟังก์ชั่น iconv_open ของ glibc ที่มีบั๊กทำให้ซอฟต์แวร์ที่มุ่งร้ายสามารถเข้าสู่สิทธิ์ root ได้
รายงานบั๊กใหม่จากวิศวกรของ Red Hat พบว่าชุดเครื่องมือความปลอดภัย GnuTLS มีบั๊กในการจัดการกับความผิดพลาดของใบรับรอง SSL หากแฮกเกอร์สามารถสร้างใบรับรองได้อย่างถูกต้อง จะสามารถข้ามการตรวจสอบทั้งหมดได้ทันทีแม้จะไม่ได้รับรองจากหน่วยงานออกใบรับรองใดๆ
ที่เลวร้ายคือบั๊กนี้อาจจะมีมาตั้งแต่ปี 2005 นานกว่าบั๊ก goto fail;
ของแอปเปิล
มาก ที่สำคัญคือมีซอฟต์แวร์อาศัยโค้ดของ GnuTLS ในการตรวจสอบใบรับรอง SSL มากมาย นับแต่ curl
ที่ Debian และ Ubuntu มีตัวเลือกใช้ GnuTLS แทน OpenSSL ใน libcurl3-gnutls
ไปจนถึงระบบ VPN ของซิสโก้ที่ใช้งานไลบรารีนี้เช่นกัน
- Read more about GNU ก็เฟล พบบั๊กร้ายแรงใน GnuTLS ทุกคนควรอัพเดตทันที
- 6 comments
- Log in or register to post comments
วันที่ 27 เดือนที่แล้ว เป็นวันเกิดครบรอบ 30 ปีของ โครงการ GNU ครับ ( ข่าวเก่า 25 ปี GNU ) หลัง ๆ ชื่อของ GNU อาจจะไม่ได้ถูกพูดถึงมากนัก เมื่อเทียบกับ Linux หรือ GCC แต่อาจจะกล่าวได้ว่า GNU ทั้งในแง่เทคโนโลยี และ ปรัชญา เป็นส่วนสำคัญที่ผลักดันให้อุตสาหกรรมและวงการคอมพิวเตอร์ได้เติบโตมาถึงทุกวันนี้ และข่าวแถม Hurd kernel 0.5 ออกแล้ว
- Read more about 30 ปี GNU และ Hurd 0.5 ออกแล้ว
- 7 comments
- Log in or register to post comments
GCC เริ่มพัฒนาด้วย C++ มาตั้งแต่กลางปี 2010 ระหว่างนี้กระบวนการพัฒนาเกิดขึ้นหลายอย่าง โดยเฉพาะ กำหนดมาตรฐานว่าต้องใช้ฟีเจอร์ใดของ C++ บ้าง
ในแง่ของผู้ใช้งานคงไม่ต่างอะไรนัก แต่ฟีเจอร์อย่างการจัดการหน่วยความจำตาม scope ของโค้ด จะช่วยให้ตัว GCC คืนหน่วยความจำเร็วขึ้น ทำให้การใช้หน่วยความจำลดลง
ฟีเจอร์ของ GCC 4.8 ใหม่ที่สำคัญ เช่น
- Read more about GCC 4.8 ใช้ C++ แล้ว
- 2 comments
- Log in or register to post comments
การรองรับ ARMv8 หรือชื่อในกลุ่มซอฟต์แวร์โอเพนซอร์สว่า AArch64 เริ่มไล่มา ตั้งแต่เคอร์เนล จนตอนนี้ทาง GNU ก็ออก glibc (GNU C Library) รุ่น 2.17 ที่รองรับ AArch64 ออกมาแล้ว
glibc เป็นไลบรารีพื้นฐานสำหรับซอฟต์แวร์ที่เขียนด้วยภาษาซีแทบทั้งหมด มันเป็นส่วนขยายเพิ่มเติมมาจาก API ที่ถูกกำหนดไว้ในมาตรฐาน POSIX การย้ายแอพพลิเคชันที่เขียนด้วยภาษาที่ต้องคอมไพล์ก่อนใช้งาน (เช่นภาษาซี) ไปยังสถาปัตยกรรมใหม่ จำเป็นต้องรอให้เคอร์เนลและไลบรารีพื้นฐานเหล่านี้ถูกพอร์ตไปก่อน แอพพลิเคชันจึงสามารถพอร์ตไปได้ง่ายขึ้น
- Read more about glibc 2.17 รองรับ AArch64
- 2 comments
- Log in or register to post comments
"สัญญาอนุญาต" หรือ license หมายถึงข้อกำหนดที่บอกว่าเราทำอะไรกับซอฟต์แวร์ (รวมถึงงานสร้างสรรค์อื่นๆ) ได้บ้าง
ในโลกของซอฟต์แวร์เสรี/โอเพนซอร์สก็มีสัญญาอนุญาตมาตรฐาน (เป็นแพ็กเกจสำเร็จรูป) ให้เลือกใช้ได้หลายชนิด ตามแต่ความต้องการของนักพัฒนาที่ต่างกันออกไป อย่างไรก็ตาม ปัญหาของการมีสัญญาอนุญาตจำนวนมากทำให้นักพัฒนาหน้าใหม่อาจจะงงว่าควรเลือกแบบไหนอย่างไรดี
Free Software Foundation (FSF) ในฐานะผู้ดูแลสัญญาอนุญาตยอดนิยมหลายตัว ได้ออกเอกสารแนะนำนักพัฒนาว่าควรเลือกใช้สัญญาอนุญาตแบบไหนบ้าง
แม้ว่าเราจะเห็นภาพอินเทลกับไมโครซอฟท์เป็นมิตรที่ดีต่อกันเสมอมา แต่ในทางหนึ่งแล้วอินเทลเป็นผู้สนับสนุนโอเพนซอร์สโครงการหลักๆ เช่นตัวลินุกซ์เอง, โครงการ X.org หรือกระทั่งลินุกซ์ดิสโทรอย่าง Moblin
อย่างไรก็ตามโครงการสำคัญเช่น GCC นั้นกลับไม่ได้รับความช่วยเหลือจากอินเทลมากนัก เนื่องจากอินเทลมีคอมไพล์เลอร์เป็นของตัวเอง (ไม่ได้แจกฟรี) ต่างจากเอเอ็มดีที่ส่งโค้ดมาปรับปรุง GCC ให้ทำงานกับชิปของตัวเองได้ดีขึ้นอยู่เรื่อยๆ
อย่างไรก็ตาม Melanie Blower ซึ่งเป็นพนักงานของทางอินเทลได้ติดต่อไปยังมูลนิธิซอฟต์แวร์เสรี (Free Software Foundation - FSF) เพื่อขอเอกสารที่มูลนิธิต้องการ สำหรับการส่งโค้ดเข้าไปยังโครงการของมูลนิธิ
- Read more about อินเทลเตรียมส่งโค้ดจำนวนมากเข้า GCC
- 12 comments
- Log in or register to post comments
ซอฟต์แวร์โอเพนซอร์สได้รับการยอมรับในหมู่ผู้ผลิตจำนวนมากขึ้นเรื่อยๆ ในช่วงหลายปีมานี้ ที่ดังที่สุดคงเป็น Linksys WRT54G ที่ใช้ลินุกซ์และมีการปล่อยซอร์สโค้ดทั้งหมดออกมา ทำให้เกิดโครงการอย่าง OpenWRT ที่ดูแลลินุกซ์สำหรับอุปกรณ์เน็ตเวิร์คขึ้นมา
แม้การนำซอฟต์แวร์โอเพนซอร์สไปใช้งานเพื่อการค้าจะเป็นเรื่องน่ายินดี แต่ดูเหมือนว่าซิสโก้จะไม่ได้ทำตามข้อกำหนดในสัญญาอนุญาตอย่างครบถ้วนนัก จนนำมาซึ่งการฟ้องซิสโก้จาก Free Software Foundation (FSF)
- Read more about Free Software Foundation ฟ้องซิสโก้ฐานละเมิดลิขสิทธิ์
- Log in or register to post comments
เรื่องที่คนจำนวนมากไม่รู้คือลินุกซ์นั้นเป็นเพียงแกนระบบปฏิบัติการ โดยอาศัยซอฟต์แวร์รอบๆ จากโครงการอื่นๆ จำนวนมากมารวมกันเป็นระบบปฎิบัติการเต็มรูปแบบ และโครงการที่สำคัญที่สุดคงเป็น GNU ที่มีปริมาณโค้ดใหญ่กว่าตัวลินุกซ์เองเสียอีก โดยซอฟต์แวร์ที่รู้จักกันดีคงเป็น GCC คอมไพล์เลอร์ฟรีที่ใช้งานกันเป็นวงกว้างทั่วโลก
และในวันที่ 2 กันยายนนี้ก็เป็นวันที่โครงการ GNU ครบรอบ 25 ปี เข้าสู่วัยเบญจเพศพอดิบพอดีทางโครงการเลยออกวีดีโอมาฉลองวันเกิดโครงการ เป็นการเล่าถึงความหมายของซอฟต์แวร์เสรีโดย Stephen Fry
ว่าแต่ 25 ปีก่อนนี่สมัยนั้นใครทำอะไรกันอยู่บ้างเหรอครับ? ผมยังนอนอ้อแอ้อยู่บนเบาะอยู่เลย
ที่มา - GNU
- Read more about ครบรอบ 25 ปีโครงการ GNU
- 18 comments
- Log in or register to post comments