Các loại giấy phép phần mềm mã nguồn mở phổ biến hiện nay

21/03/25
36 lượt xem

Phần mềm mã nguồn mở ngày nay được sử dụng nhiều trong nhiều lĩnh vực nhờ khả năng được tự do chỉnh sửa, phát hành, phân phối lại. Tuy nhiên, để quy định quyền sử dụng, chỉnh sửa và phân phối, các phần mềm này được phát hành kèm theo giấy phép mã nguồn mở. Mỗi loại giấy phép có điều kiện và hạn chế khác nhau, ảnh hưởng đến cách doanh nghiệp và cá nhân sử dụng phần mềm. Vậy giấy phép nguồn mở là gì? Có bao nhiêu loại? Hãy cùng QT Software tìm hiểu qua nội dung sau!

Giấy phép nguồn mở là gì

Giấy phép mã nguồn mở là gì?

Giấy phép mã nguồn mở (Open Source License) là tập hợp các điều khoản pháp lý quy định về việc sử dụng, sửa đổi, phân phối và chia sẻ phần mềm mã nguồn mở. Các giấy phép này cho phép người dùng truy cập mã nguồn, tùy chỉnh và phát triển phần mềm theo những điều kiện nhất định mà không cần trả phí bản quyền.

Phân loại giấy phép phần mềm mã nguồn mở

Tùy vào từng loại giấy phép, mức độ tự do khi sử dụng và phát hành phần mềm sẽ khác nhau. Hiện nay Giấy phép mã nguồn mở được chia thành ba nhóm chính: Giấy phép Copyleft , Giấy phép Permissive và Public Domain Licenses

Giấy phép Copyleft

Giấy phép mã nguồn mở Copyleft yêu cầu rằng khi phần mềm/mã nguồn được phân phối lại dù đã được chỉnh sửa hay chưa, đều phải sử dụng cùng loại giấy phép ban đầu. Điều này đảm bảo rằng phần mềm/mã nguồn và tất cả các phiên bản phái sinh của nó luôn là mã nguồn mở và được phát hành miễn phí, phù hợp với OSD – Open Source Definition.

Một số giấy phép nguồn mở thuộc loại này là: Apple Public Source License v.1.2, Common Public License v.1.0; GNU General Public License v.2.0, Nokia Open Source License v.1.0a IBM Public License v.1.0, Mozilla Public License v.1.0 and v.1.1, Open Software License v.1.1, Python License, Sun Public License v.1.0 Python Software Foundation License v.2.1.1,…

Giấy phép Permissive (non-Copyleft)

Giấy phép Permissive có tính linh hoạt cao hơn, không quy định bất kì sự hạn chế nào trong việc sự dụng và phân phối mã nguồn, cho phép người dùng tự do chỉnh sửa, sử dụng phân phối phần mềm/mã nguồn dưới dạng miễn phí hoặc thương mại mà không cần phải công khai mã nguồn.

Một số giấy phép nguồn mở thuộc loại này là: Apache Software License v.1.1, BSD License, MIT License, Sun Industry Standards Source License, Intel Open Source License for CDSA/CSSM Implementation, W3C Software Notice and License…

Sơ đồ Khả năng tương thích giấy phép giữa các giấy phép phần mềm nguồn mở
Khả năng tương thích giấy phép giữa các giấy phép phần mềm nguồn mở

Giấy phép Public Domain Licenses

Giấy phép Public Domain Licenses là một dạng giấy phép mã nguồn mở không có ràng buộc bản quyền, nghĩa là tác giả từ bỏ tất cả các quyền sở hữu trí tuệ đối với phần mềm hoặc nội dung, cho phép bất kỳ ai có thể sử dụng, sửa đổi, phân phối và thương mại hóa mà không cần xin phép hoặc ghi nhận tác giả.

Một số dạng giấy phép Public Domain phổ biến là: Creative Commons Zero (CC0), WTFPL (Do What The F* You Want To Public License), Unlicense,…

Các loại giấy phép mã nguồn mở phổ biến hiện nay

Mặc dù có nhiều loại giấy phép mã nguồn mở khác nhau, nhưng chúng đều bao gồm ba nội dung chính quy định: quyền lợi của người sử dụng, trách nhiệm khi sử dụng, phân phối hoặc chỉnh sửa phần mềm, và xử lý khi vi phạm giấy phép. Dưới đây là những giấy phép mã nguồn mở phổ biến.

Giấy phép GNU General Public License (GPL)

GPL (General Public License) là giấy phép mã nguồn mở phổ biến nhất do Richard Stallman – Free Software Foundation (FSF) phát triển. Đây là một giấy phép Copyleft.

Phiên bản hiện tại của giấy phép này là phiên bản 3 phát hành năm 2007(GPL v3), tuy nhiên phiên bản được sử dụng nhiều nhất hiện nay là phiên bản 2 phát hành vào năm 1991.

Quy định & ràng buộc:

  • Phần mềm phát hành theo GPL bắt buộc phải công khai mã nguồn khi phân phối.
  • Yêu cầu mọi phần mềm phát triển từ mã nguồn GPL cũng phải được phát hành theo giấy phép GPL.
  • Không được phép tích hợp mã nguồn với phần mềm đóng nguồn.
  • Người dùng có quyền tự do sử dụng, sửa đổi và phân phối lại phần mềm mà không có hạn chế.

Một số phần mềm sử dụng giấy phép GNU: Ubuntu, GIMP, Drupal,  RedHat Enterprise Linux, WordPress, Joomla…

Giấy phép MIT

MIT License là một giấy phép mã nguồn mở rất linh hoạt và ít hạn chế, phù hợp với hầu hết các dự án phần mềm. MIT được phát hành bởi Học viện Công nghệ Massachusetts (Massachusetts Institute of Technology – MIT), và được hội đồng MIT X sử dụng.

Quy định & ràng buộc:

  • Người dùng có thể sử dụng, sao chép, chỉnh sửa và phân phối phần mềm/mã nguồn mà không gặp ràng buộc pháp lý nào.
  • Duy nhất một yêu cầu: Phải giữ nguyên tuyên bố bản quyền của tác giả gốc trong mọi bản sao.
  • Giấy phép MIT cũng có thể được chỉnh sửa lại sao cho phù hợp với yêu cầu thực tế.
  • Giấy phép MIT không bắt buộc phải hiện danh sách tất cả những người từng tham gia thực hiện dự án trong phần thông tin của chương trình.
  • Cho phép tích hợp với phần mềm nguồn đóng và thương mại mà không yêu cầu công khai mã nguồn.

Một số phần mềm sử dụng giấy phép MIT: PuTTY, Ruby on Rails, React.js, Excalidraw, Metabase và X Window System…

Giấy phép nguồn mở MIT
Giấy phép nguồn mở MIT

Giấy phép Apache License 2.0

Được phát triển bởi Apache Software Foundation – ASF, giấy phép này cung cấp sự bảo vệ pháp lý cao hơn so với MIT và cho phép tích hợp vào cả phần mềm thương mại.

Quy định & ràng buộc:

  • Cho phép sử dụng tự do, sửa đổi và phân phối lại.
  • Không có yêu cầu về “Copyleft”, có thể sử dụng trong cả phần mềm thương mại và mã nguồn mở.
  • Khi phân phối phần mềm, cần giữ hai tệp tin quan trọng trong thư mục gốc là LICENSE: Bản sao đầy đủ của giấy phép Apache License 2.0; Và NOTICE: Tệp chứa thông tin về các thư viện bên thứ ba đã sử dụng, kèm tên tác giả hoặc tổ chức phát triển.
  • Trong mỗi tệp tin mã nguồn được cấp phép, thông tin về bản quyền và bằng sáng chế từ bản gốc phải được giữ nguyên khi phân phối lại.
  • Nếu có chỉnh sửa mã nguồn, cần thêm ghi chú rõ ràng về lần chỉnh sửa, bao gồm thời điểm và nội dung thay đổi.

Một số phần mềm sử dụng giấy phép Apache License 2.0: Apache Server, Apache Cocoon, XAMPP, Apache Axis2,…

Giấy phép BSD (Berkeley Software Distribution)

BSD License có nhiều phiên bản, phổ biến nhất là BSD 2-Clause và BSD 3-Clause. Giấy phép BSD được phát hành với các điều kiện rất đơn giản được sử dụng nhiều trên mềm máy tính.

Quy định & ràng buộc:

  • Giấy phép BSD được phát hành với các điều kiện rất đơn giản được sử dụng nhiều cho mềm máy tính.
  • BSD 2-Clause: Cho phép sử dụng, sửa đổi, phân phối mà không có ràng buộc ngoài việc ghi nhận tác giả gốc.
  • BSD 3-Clause: Tương tự BSD 2-Clause, nhưng cấm sử dụng tên tác giả hoặc tổ chức gốc để quảng bá sản phẩm thương mại nếu không có sự cho phép.
  • Có thể sử dụng trong cả phần mềm thương mại và mã nguồn mở.
  • Nhà phát triển được phép thay thế, bổ sung thêm các điều khoản vào trong giấy phép cho phù hợp với mình, hoặc cũng có thể sử dụng giấy phép khác.

Một số phần mềm sử dụng giấy phép BSD: X Window System (X11), Python, FreeBSD, OpenBSD, SQLite,…

4.3 BSD UNIX
“4.3 BSD UNIX” tại Đại học Wisconsin khoảng  năm 1987. Đang khởi động và đăng nhập hệ thống.

Giấy phép GNU Lesser General Public License (LGPL)

LGPL là phiên bản nới lỏng hơn của GPL, giấy phép này chủ yếu áp dụng cho các thư viện phần mềm mã nguồn mở.

Quy định & ràng buộc:

  • Cho phép tích hợp thư viện LGPL vào cả phần mềm mã nguồn mở và phần mềm thương mại.
  • Nếu chỉ sử dụng thư viện mà không chỉnh sửa mã nguồn gốc, phần mềm sử dụng không bắt buộc phải phát hành theo LGPL.
  • Nếu sửa đổi mã nguồn của phần mềm phát hành kèm theo LGPL, thì bắt buộc phải công khai những thay đổi đó.

Một số phần mềm sử dụng giấy phép nguồn mở LGPL: FFmpeg, FLTK (Fast Light Toolkit), GNU C Library (glibc), VLC media player:

Giấy phép Mozilla Public License (MPL)

MPL là giấy phép mã nguồn mở do Mozilla Foundation phát triển, có tính kết hợp cân bằng giữa GPL và BSD, cho phép sử dụng mã nguồn mở trong các dự án phần mềm thương mại mà vẫn đảm bảo một phần mã nguồn phải được chia sẻ lại.

Quy định & ràng buộc:

  • Cho phép sử dụng phần mềm mã nguồn mở trong cả dự án thương mại và phi thương mại.
  • Yêu cầu công khai mã nguồn của các tệp tin đã sửa đổi, nhưng không yêu cầu toàn bộ phần mềm phải được mở mã nguồn như GPL.
  • Có thể kết hợp với phần mềm nguồn đóng, miễn là các tệp mã nguồn gốc thuộc MPL vẫn giữ nguyên giấy phép.
  • MPL là giấy phép cấp phép riêng lẻ theo từng tệp tin, tức là chỉ những tệp MPL bị chỉnh sửa mới cần công khai mã nguồn, còn phần mềm chứa nó có thể giữ bản quyền riêng.

Một số phần mềm sử dụng giấy phép mã nguồn mở MPL:  Mozilla Firefox, Mozilla Thunderbird, Cairoshell, Bugzilla,…

Mozilla Public License
Mozilla Public License

Giấy phép Eclipse Public License (EPL)

EPL là giấy phép nguồn mở do Eclipse Foundation phát triển, chủ yếu được sử dụng trong các phần mềm doanh nghiệp.

Quy định & ràng buộc:

  • Cho phép sử dụng, sửa đổi, và phân phối lại mã nguồn được cấp phép EPL trong cả các sản phẩm nguồn mở và thương mại mà không yêu cầu toàn bộ sản phẩm phải được phát hành dưới EPL.
  • Nếu phân phối mã nguồn (bao gồm cả bản gốc và bản sửa đổi), thì phải: Cung cấp mã nguồn dưới giấy phép EPL; Đính kèm một bản sao của giấy phép EPL; Giữ nguyên các thông báo bản quyền và tuyên bố từ chối trách nhiệm ban đầu; Nếu đã sửa đổi mã, phải chỉ rõ rằng bạn đã sửa đổi nó và ngày sửa đổi.
  • Nếu phân phối mã EPL chỉ ở dạng phần mềm thì phải: Đính kèm một bản sao của giấy phép EPL; Thông báo rõ ràng rằng mã nguồn của phần mềm (hoặc ít nhất là phần được cấp phép EPL) có sẵn; Không bắt buộc phải cung cấp mã nguồn của toàn bộ ứng dụng, chỉ phải chia sẻ phần mã EPL được sử dụng.

Một số phần mềm sử dụng giấy phép mã nguồn mở EPL: Eclipse IDE, JGit, Xtend, Jetty,…

Giấy phép Microsoft Public License (Ms-PL)

Microsoft Public License (Ms-PL) là một giấy phép mã nguồn mở do Microsoft phát triển. Đây là một trong những giấy phép đầu tiên của Microsoft được công nhận là tuân thủ các tiêu chuẩn mã nguồn mở theo định nghĩa của Open Source Initiative (OSI).

Quy định & ràng buộc:

  • Cho phép sử dụng, chỉnh sửa và phân phối mã nguồn mà không có ràng buộc Copyleft.
  • Không yêu cầu công khai mã nguồn khi phân phối lại phần mềm.
  • Có thể sử dụng trong cả phần mềm mã nguồn mở và thương mại.
  • Không được sử dụng thương hiệu Microsoft để quảng bá phần mềm, trừ khi có sự cho phép từ Microsoft.
  • Microsoft không chịu trách nhiệm pháp lý về bất kỳ lỗi hoặc thiệt hại nào gây ra bởi phần mềm sử dụng giấy phép này.

Một số phần mềm sử dụng Ms-PL: .NET Micro Framework, Managed Extensibility Framework (MEF), Windows Template Library (WTL), IronRuby,…

Microsoft Public License
Microsoft Public License

Với đa dạng giấy phép như vậy thì cần dựa vào tiêu chí gì để lựa chọn giấy phép nguồn mở phù hợp cho dự án? Cùng QT Software theo dõi tiếp nhé!

Cách lựa chọn giấy phép phù hợp cho dự án mã nguồn mở

Vì mỗi giấy phép sẽ ảnh hưởng đến quyền sử dụng, sửa đổi, phân phối và thương mại hóa mã nguồn/phần mềm, nên bạn cần phải chọn đúng giấy phép khi phát hành. Dưới đây là những trường hợp giúp bạn lựa chọn được giấy phép nguồn mở phù hợp:

Trường hợp 1: Bạn muốn mã nguồn của mình luôn mở và không bị thương mại hóa, hãy Chọn GPL hoặc AGPL.

Trường hợp 2: Bạn muốn cho phép thương mại hóa nhưng vẫn giữ quyền kiểm soát một phần mã nguồn, hãy chọn LGPL, MPL hoặc EPL.

Trường hợp 3: Bạn muốn mã nguồn mở hoàn toàn nhưng cho phép tích hợp vào phần mềm thương mại, hãy chọn MIT, Apache 2.0 hoặc BSD.

Trường hợp 4: Bạn đang phát triển phần mềm doanh nghiệp hoặc phần mềm liên quan đến Microsoft, hãy chọn Ms-PL hoặc EPL.

Lựa chọn giấy phép phù hợp cho dự án mã nguồn mở
Lựa chọn giấy phép phù hợp cho dự án mã nguồn mở

Các câu hỏi thường gặp – FAQs

Làm sao để biết phần mềm đang dùng giấy phép nào?

Hãy tìm tệp LICENSE hoặc COPYING hoặc NOTICE trong thư mục chính của phần mềm/mã nguồn, sau đó mở tệp xem tiêu đề trong mã nguồn, tại đây sẽ ghi rõ giấy phép của phần mềm/mã nguồn.

Ví dụ một phần mềm sử dụng giấy phép nguồn mở MIT, trong file LICENSE.md sẽ có nội dung:

# Released under MIT License

Copyright (c) 2013 Mark Otto.

Copyright (c) 2017 Andrew Fong.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Có thể đổi giấy phép nguồn mở sau khi đã phát hành không?

Nếu bạn là tác giả gốc và đã phát hành giấy phép dạng Copyleft (như GPL) cho phần mềm/mã nguồn thì bạn chỉ có thể thay đổi giấy phép cho phiên bản mới nhất do bạn phát triển. Không thể thay đổi giấy phép của phiên bản GPL đã phát hành trước đó vì bất kỳ ai đã nhận phần mềm/mã nguồn theo GPL vẫn có quyền tiếp tục sử dụng và phân phối theo giấy phép đó.

Các trường hợp còn lại, nếu bạn là người duy nhất viết phần mềm/mã nguồn và giữ toàn quyền, bạn có thể đổi sang bất kỳ giấy phép nào, kể cả giấy phép thương mại sau khi đã phát hành. Nếu phần mềm có nhiều người đóng góp, thì phải có sự đồng ý của tất cả trước khi thay đổi giấy phép.

Lời kết

Hy vọng rằng với những chia sẻ trên của QT Software đã cung cấp cho bạn kiến thức tổng quan về giấy phép mã nguồn mở, từ các loại giấy phép phổ biến hiện nay, đến cách lựa chọn giấy phép phù hợp để phát hành. Nếu bạn còn thắc mắc gì nữa, đừng ngần ngại hãy liên hệ chia sẻ với QT Software để được hỗ trợ giải đáp nhé

Hotline: 0938203609