14 พ.ค. เวลา 05:18 • การศึกษา

GNU License คืออะไร

โดย
ในโลก Open Source มี License สองขั้วที่แตกต่างกันสุดขั้วครับ ขั้วแรกคือ Permissive License อย่าง MIT, BSD, Apache ที่บอกว่าทำอะไรก็ได้ ขอแค่ให้เครดิตส่วนอีกขั้วคือ GNU General Public License (GPL) ที่ประกาศก้องว่าเสรีภาพต้องย้อนกลับ! ใครเอาโค้ดของเราไปใช้ ต้องปลดปล่อยโค้ดของเขาคืนสู่ชุมชนด้วย!
💡 ถ้าเปรียบให้เห็นภาพ
MIT คือ ทุนนิยมเสรีส่วน GPL คือ สังคมนิยมสาย Open Source ครับ เพราะมันสร้างกฎลูกโซ่ที่เรียกว่า Copyleft ซึ่งทำให้ซอฟต์แวร์เสรีต้องคงความเป็นเสรีตลอดไป ไม่มีใครมาผูกขาด หรือ ปิดกั้นมันได้
บทความนี้จะพาคุณดำดิ่งสู่ปรัชญา และ การใช้งาน GNU License (โดยเฉพาะ GPL, LGPL, และ AGPL) อย่างเจาะลึก ไปดูกันครับว่า License ที่ริชาร์ด สตอลล์แมน (Richard Stallman) ก่อร่างสร้างตัวขึ้นมานี้ ยังคงมีความสำคัญในยุค AI และ Cloud อย่างไรบ้าง!
  • ​📜 GNU License คืออะไร? (ว่าด้วยเสรีภาพ 4 ประการ)
GNU General Public License (GPL) คือใบอนุญาตซอฟต์แวร์แบบ Copyleft ที่ริเริ่มโดย Richard Stallman และ Free Software Foundation (FSF) ในปี 1989 โดยมีจุดมุ่งหมายเพื่อปกป้องเสรีภาพ 4 ประการ ของผู้ใช้ซอฟต์แวร์
1) เสรีภาพที่ 0 : รันโปรแกรมเพื่อจุดประสงค์ใดก็ได้
2) เสรีภาพที่ 1 : ศึกษาและแก้ไขโค้ดให้ตรงกับความต้องการ
3) เสรีภาพที่ 2 : แจกจ่ายสำเนาให้ผู้อื่นได้
4) เสรีภาพที่ 3 : ปรับปรุงและเผยแพร่การปรับปรุงสู่สาธารณะ
💡 ข้อแตกต่างสำคัญ
Permissive License อนุญาตให้คุณเอาโค้ดไปใช้ในซอฟต์แวร์แบบปิดได้ แต่ GPL ไม่ยอมครับ! ถ้าคุณแจกจ่ายซอฟต์แวร์ที่มีโค้ด GPL อยู่คุณต้องเปิดเผยซอร์สโค้ด (Source Code) ทั้งหมดของโปรเจกต์นั้นภายใต้ GPL เช่นกัน นี่คืออาวุธที่ใช้ต่อสู้กับซอฟต์แวร์แบบผูกขาดของยักษ์ใหญ่ในอดีต และ ยังคงขลังมาจนถึงปัจจุบัน
  • ​🔗 หัวใจสำคัญ Copyleft และเงื่อนไขการส่งต่อ (Viral Clause)
⚪ Copyleft คืออะไร?
Copyleft (ตรงข้ามกับ Copyright) คือกลไกทางกฎหมายที่บอกว่า
"คุณมีสิทธิ์นำโค้ดนี้ไปใช้ ดัดแปลง แจกจ่าย แต่ถ้าคุณแจกจ่ายเวอร์ชันที่ดัดแปลงแล้ว คุณต้องใช้ License เดิมกับโค้ดทั้งหมดที่เกี่ยวข้อง และ ต้องเปิดซอร์สโค้ดให้ผู้อื่นเข้าถึงได้"
มันเหมือนไวรัส (Viral) ที่แพร่กระจายเสรีภาพไปเรื่อยๆ ครับ (แต่ทาง FSF ชอบเรียกว่าการปกป้องมากกว่า)
⚪ เงื่อนไขหลักของ GPL (ฉบับเข้าใจง่าย)
1) การแจกจ่าย Binary
ถ้าคุณแจกไฟล์ที่คอมไพล์แล้ว (เช่น .exe, .apk) คุณต้องเปิดซอร์สโค้ด ให้พร้อมแจกจ่ายคู่กัน หรือ ชี้เป้าให้ดาวน์โหลดได้
2) การรักษาลิขสิทธิ์
ต้องรักษา Copyright Notice และ ตัวข้อความ License นี้ไว้เสมอ
3) การดัดแปลง
ถ้าแก้ไขโค้ด GPL แล้วแจกจ่าย คุณต้องแจ้งให้ชัดเจนว่าเปลี่ยนอะไรบ้าง และ โค้ดที่แก้แล้วก็ต้องอยู่ภายใต้ GPL เท่านั้น
4) ห้ามเพิ่มเงื่อนไข
คุณจะเพิ่มกฎใหม่ที่ขัดกับ GPL ไม่ได้ (เช่น ห้ามใช้ขายของ)
💡 จุดสำคัญ : GPL มีผลเฉพาะตอนที่คุณแจกจ่าย (Distribute) เท่านั้นครับ ถ้าคุณใช้ซอฟต์แวร์ GPL ภายในองค์กรตัวเองเงียบๆ โดยไม่ได้แจกให้ใคร คุณไม่จำเป็นต้องเปิดซอร์สโค้ดก็ได้ (ข้อนี้หลายคนเข้าใจผิดเยอะมาก!)
  • ​📊 ความแตกต่างของแต่ละเวอร์ชัน (GPLv1 → v2 → v3)
⚪ GPLv1 (1989) - ฉบับกำเนิด
- จุดเริ่มต้น : แก้ปัญหาของ Emacs และ GNU Project
- สถานะปัจจุบัน : เลิกใช้แล้ว แทบไม่มีใครใช้ในโปรเจกต์ใหม่ๆ
⚪ GPLv2 (1991) - ฉบับตำนาน (ที่ Linux Kernel เลือกใช้!)
- จุดเด่น : ระบุชัดเจนว่า ถ้าแจก Binary ต้องแจก Source มีข้อความปฏิเสธความรับผิดชอบ (No Warranty) เพื่อเซฟคนเขียนโค้ด
- จุดอ่อน : มีปัญหาเรื่อง Tivoization (ผู้ผลิตฮาร์ดแวร์ใช้โค้ด GPL แต่ล็อคเครื่องไม่ให้ผู้ใช้อัปเดตโค้ดเอง)
- ใครใช้ : Linux Kernel (ใช้ v2 อย่างเดียวไม่ขยับไป v3), Git, WordPress และ โปรเจกต์คลาสสิกมากมาย
⚪ GPLv3 (2007) - ฉบับอัปเดตรับยุคใหม่
- จุดเด่นใหม่ : ห้ามการทำ Hardware Lock (Anti-Tivoization), เพิ่มการคุ้มครองเรื่องสิทธิบัตร (Patent Grant), และ ทำให้เข้ากันได้กับ Apache 2.0
- การคุ้มครอง : มีกฎเรื่อง DRM เพื่อไม่ให้ใช้ GPL สร้างระบบที่ละเมิดสิทธิ์ผู้ใช้
- ใครใช้ : MySQL (บางเวอร์ชัน), VLC และ โปรเจกต์ใหม่ๆ ที่ต้องการความคุ้มครองสูง
  • ​👥 ตระกูลของ GNU License (LGPL และ AGPL)
GNU ไม่ได้มีแค่ GPL ครับ ยังมีสมาชิกอีกสองตัวที่ปรับให้เหมาะกับงานที่ต่างกัน
1) LGPL (Lesser General Public License) - GPL แบบผ่อนปรน
⚪ความแตกต่าง : คุณสามารถเชื่อมต่อ (Link) ไลบรารี LGPL กับโค้ดแบบปิด (Proprietary) ได้ โดยไม่ต้องเปิดซอร์สโค้ดของแอปคุณ! แต่ถ้าคุณไปแก้ไขตัวไลบรารี LGPL เอง คุณต้องเปิดซอร์สเฉพาะส่วนที่แก้ครับ
⚪ เหมาะกับ : ไลบรารีที่อยากให้คนเอาไปใช้เยอะๆ แม้ในซอฟต์แวร์ที่ทำเพื่อการค้า
2) AGPL (Affero General Public License) - GPL สำหรับยุค Cloud
⚪ ความแตกต่าง : ปิดช่องโหว่ SaaS (ซอฟต์แวร์ที่ให้บริการผ่านเว็บ) ถ้าคุณรันซอฟต์แวร์ AGPL บนเซิร์ฟเวอร์เพื่อให้คนอื่นใช้งานผ่านเครือข่าย คุณต้องเปิดซอร์สโค้ดให้ผู้ใช้เหล่านั้นด้วย!
⚪ เหมาะกับ : ซอฟต์แวร์ที่ให้บริการผ่าน Cloud/SaaS ที่ไม่อยากให้คนชุบมือเปิบเอาไปทำบริการโดยไม่ช่วยพัฒนาคืนสู่ชุมชน
  • ​⚖️ ข้อดีและข้อเสีย (ในมุมมองนักพัฒนาและธุรกิจ)
⚪ ข้อดี (✅)
✅ เสรีภาพยั่งยืน : รับประกันว่าโค้ดจะไม่มีวันถูกใครเอาไปผูกขาดเป็นของส่วนตัว
✅ พลังแห่งชุมชน : บังคับให้เกิดการพัฒนาร่วมกัน ยิ่งมีคนใช้เยอะ โค้ดยิ่งพัฒนาไปไกล
✅ คุ้มครองสิทธิบัตร (ใน v3) : ป้องกันการถูกฟ้องร้องเรื่องสิทธิบัตรจากผู้ร่วมพัฒนา
✅ ความเชื่อถือสูง : โปรเจกต์ที่ทรงอิทธิพลที่สุดในโลกอย่าง Linux และ GCC ต่างก็เลือกใช้
⚪ ข้อเสีย (❌)
❌ ความน่ากลัวของ Viral Clause : ถ้าเผลอเอาโค้ด GPL ไปผสมในโปรเจกต์ปิดเพียงนิดเดียว คุณอาจต้องเปิดซอร์สทั้งหมดของธุรกิจคุณ
❌ ความซับซ้อน : License ยาว และ อ่านยากกว่า MIT มาก (GPLv3 ยาวถึง 650 บรรทัด!)
❌ ไม่ถูกใจสายธุรกิจ : บริษัทส่วนใหญ่จะหลีกเลี่ยง GPL เพราะกังวลเรื่องความลับทางการค้า
  • ​🤔 ความเข้าใจผิดยอดนิยมเกี่ยวกับ GPL
1) GPL หมายถึงซอฟต์แวร์ฟรี (0 บาท)
ไม่จริงครับ! คุณขายซอฟต์แวร์ GPL ได้ Red Hat คือตัวอย่างบริษัทที่ทำเงินมหาศาลจากโมเดลนี้
2) ใช้ภายในบริษัทก็ต้องเปิดซอร์ส
ไม่จริงครับ! ตราบใดที่คุณไม่แจกจ่ายให้บุคคลภายนอก (Third Party) คุณจะแก้ยังไงก็ได้โดยไม่ต้องเปิดซอร์ส
3) GPLv2 กับ v3 ใช้ด้วยกันได้
ไม่ได้ครับ! ถ้าโปรเจกต์หนึ่งใช้ v2 only อีกอันใช้ v3 จะเอามารวมกันไม่ได้ นอกจากจะระบุว่า v2 or later
4) AGPL ก็เหมือน GPL
ต่างกันมากครับ! โดยเฉพาะคนทำเว็บ ถ้าใช้ AGPL แล้วคนใช้งานผ่านหน้าเว็บ คุณต้องเปิดซอร์สทันที
  • ​🛤️ วิธีการเลือกใช้
✅ เลือก GPLv2
เมื่อต้องทำงานร่วมกับ Linux Kernel หรืออยากได้มาตรฐาน Copyleft แบบคลาสสิก
✅ เลือก GPLv3
เมื่อทำโปรเจกต์ใหม่ และ ต้องการการคุ้มครองสิทธิบัตร รวมถึงป้องกันฮาร์ดแวร์ล็อค
✅ เลือก LGPL
เมื่อทำ Library ที่อยากให้บริษัทต่างๆ นำไปเรียกใช้ได้ง่าย
✅ เลือก AGPL
เมื่อทำ Web App หรือ SaaS และ อยากให้คนที่เอาไปรันบนคลาวด์ต้องเปิดซอร์สด้วย
✅ ไม่เลือก GNU
เมื่อต้องการความอิสระสูงสุดหรืออยากให้บริษัทใหญ่ๆ นำไปใช้โดยไม่มีเงื่อนไข (ไปเลือก MIT/Apache แทน)
  • ​💬 บทสรุป
GNU License (โดยเฉพาะ GPL) คือ ดาบสองคมครับ ด้านหนึ่งมันคือเกราะป้องกันเสรีภาพที่แข็งแกร่งที่สุด อีกด้านหนึ่งมันอาจเป็นกำแพงที่กั้นนักธุรกิจออกไป ในปี 2026 นี้ AGPL กำลังมาแรงมากเพราะโลกหมุนไปสู่ SaaS มากขึ้น
ถ้าคุณคือกลุ่มที่มีอุดมการณ์อยากเห็นซอฟต์แวร์เติบโตไปพร้อมกับชุมชน GPL คือคำตอบที่ใช่ที่สุดครับ แต่ถ้าคุณทำธุรกิจที่ต้องการปิดบังความลับทางการค้า จงระวัง GPL ไว้ให้ดีเพราะถ้าพลาดขึ้นมา เสรีภาพจะมาเคาะประตูบ้านคุณทันที!
คุณล่ะครับ ชอบอิสระแบบสุดขั้ว หรือ ชอบความเรียบง่ายแบบ MIT? คอมเมนต์มาคุยกัน ได้เลยครับ! ⚔️✨
✏️ Shoper Gamer
  • ​MIT License คืออะไร? 👇
  • ​Apache 2.0 คืออะไร? 👇
  • ​BSD Licence คืออะไร? 👇
Credit :
👇
  • ​https://pitt.libguides.com/openlicensing/GNU-GPL
  • ​https://softwareengineering.stackexchange.com/questions/314635/can-we-use-a-gpl-2-product-for-the-commercial-purpose
  • ​https://opensource.org/license/gpl-2.0
  • ​https://www.gnu.org/licenses/gpl-3.0.html
โฆษณา