Giấy phép nguồn mở là gì?
Giấy phép nguồn mở nếu được hiểu theo cách đơn giản nhất là hợp đồng hợp pháp và ràng buộc giữa tác giả và người sử dụng các thành phần phần mềm, xác nhận rằng phần mềm có thể được sử dụng trong các ứng dụng thương mại theo các điều kiện cụ thể. Giấy phép là thứ biến mã nguồn thành một thành phần nguồn mở. Nếu không có giấy phép nguồn mở, thành phần phần mềm sẽ không thể được sử dụng bởi người khác, ngay cả khi nó đã được đăng công khai trên GitHub.
Mỗi giấy phép nguồn mở nêu rõ những gì người dùng có thể và không thể làm đối với các thành phần phần mềm và nghĩa vụ của họ theo các điều khoản và điều kiện. Điều này nghe có vẻ khá dễ hiểu, nhưng hiện tại có đến hơn 200 giấy phép mã nguồn mở, vì vậy rất khó để sắp xếp chúng một cách có tổ chức. Với các mức độ phức tạp và yêu cầu khác nhau, các tổ chức sẽ lựa chọn giấy phép tương thích nhất với các chính sách của họ để đảm bảo rằng chúng sẽ được tuân thủ.
Hai loại giấy phép nguồn mở.
Giấy phép nguồn mở có thể chia thành hai loại chính cần được giải thích sâu: Bản quyền cho dùng (Copyleft) và Cấp phép (Permissive). Sự phân chia này dựa trên các yêu cầu và hạn chế của giấy phép đối với người dùng.
Bản quyền là luật hạn chế quyền sử dụng, sửa đổi và chia sẻ các sản phẩm sáng tạo mà không được sự cho phép của chủ bản quyền. Ví dụ như âm nhạc, phim ảnh,… chúng là tài sản trí tuệ của người tạo ra chúng. Khi một tác giả phát hành một chương trình theo giấy phép copyleft, họ đưa ra các yêu cầu về bản quyền của chương trình và đưa ra tuyên bố rằng người khác có quyền sử dụng, sửa đổi và chia sẻ tác phẩm miễn là các nghĩa vụ vẫn được duy trì. Nói tóm lại, nếu họ đang sử dụng một thành phần có loại giấy phép nguồn mở này, thì họ sẽ phải mở mã của mình để người khác cũng có thể sử dụng.
Giấy phép nguồn mở permissive là giấy phép nguồn mở non-copyleft, đảm bảo quyền tự do sử dụng, sửa đổi và phân phối lại, đồng thời cho phép độc quyền các sản phẩm phái sinh . Giấy phép nguồn mở permissive thường được gọi là “Anything Goes”, nó đặt ra những hạn chế tối thiểu về cách người khác sử dụng các thành phần nguồn mở. Điều đó có nghĩa là loại giấy phép này cho phép các mức độ tự do khác nhau để sử dụng, sửa đổi và phân phối lại mã nguồn mở, cho phép sử dụng nó trong các tác phẩm phát sinh độc quyền và gần như không yêu cầu gì liên quan đến các nghĩa vụ trong tương lai.
Các Giấy phép Nguồn Mở Hàng đầu.
Điều quan trọng cần lưu ý là không có giấy phép nào tốt hoặc không tốt và không có giấy phép nào tốt hơn giấy phép nào. Bất kỳ ai cũng có thể tạo ra một giấy phép nguồn mở phù hợp với sở thích của họ, đó là lý do tại sao có rất nhiều giấy phép trên mạng. Điều này có thể làm cho việc lựa chọn giấy phép nguồn mở trở nên phức tạp hơn trong kinh doanh, đặc biệt là đối với những người như chúng ta, không thông thạo luật và chưa bao giờ được giải thích cặn kẽ về giấy phép nguồn mở. Để giúp thu hẹp các quyết định và đơn giản hóa sự lựa chọn, OSI đã tổng hợp một danh sách các giấy phép đã được phê duyệt, bao gồm hơn 80 giấy phép nguồn mở được sử dụng phổ biến nhất.
Trong số hàng chục giấy phép nguồn mở đã được OSI phê duyệt thì có một số giấy phép có giá trị cao đã và đang được sử dụng bởi một số dự án nguồn mở phổ biến nhất hiện nay.
Dưới đây là tổng hợp các giải thích về những giấy phép nguồn mở này:
- GNU General Public License (GPL)
- The Apache License
- Microsoft Public Licenses (Ms-PL)
- Berkeley Software Distribution (BSD)
- Common Development and Distribution License (CDDL)
- Eclipse Public License (EPL)
- MIT License
GNU General Public License (GPL)
GNU General Public License (GPL) là giấy phép nguồn mở phổ biến nhất hiện nay. Richard Stallman đã tạo ra GPL để bảo vệ phần mềm GNU khỏi việc bị trở thành độc quyền và nó là một sự triển khai định rõ khái niệm “copyleft” của ông.
GPL là một giấy phép copyleft. Điều này có nghĩa là bất kỳ phần mềm nào được viết dựa trên bất kỳ thành phần nào của GPL đều phải được phát hành dưới dạng mã nguồn mở. Kết quả là những phần mềm nào sử dụng thành phần mã nguồn mở của GPL (không quan trọng tỷ lệ phần trăm của nó trong toàn bộ mã là bao nhiêu) đều phải phát hành mã nguồn đầy đủ và cho phép tất cả các quyền sửa đổi và phân phối lại toàn bộ mã.
Luôn luôn có một số thắc mắc liên quan đến việc điều gì tạo nên một tác phẩm dựa trên một tác phẩm khác, điều đó đã tạo ra nghĩa vụ tương hổ lẫn nhau (có đi có lại) của GPL. Quỹ phần mềm tự do FSF đã cố gắng làm rõ hơn cho GPLv3 vào thời điểm nghĩa vụ tương hỗ này được kích hoạt.
Ngoài ra, FSF đã cố gắng tăng tính tương thích của GPLv3 với các giấy phép khác. Để kết hợp hai mã thành một tác phẩm lớn hơn thì cả hai chương trình đều phải cho phép điều đó, nếu các quyền đó được cấp bởi giấy phép của chương trình thì chúng sẽ tương thích. Bằng cách tăng khả năng tương thích của GPLv3, FSF đã mở rộng các tùy chọn để phát triển.
Điểm khác biệt thứ ba giữa hai phiên bản là GPLv3 được viết với mục đích tăng mức sử dụng trên toàn thế giới. Ngôn ngữ mô tả quyền cấp phép được sử dụng trong GPLv3 đã được sửa đổi để đảm bảo rằng luật pháp quốc tế sẽ diễn giải nó đúng như dự định của FSF, không giống như ngôn ngữ được sử dụng trong GPLv2, vốn được coi là rất tập trung vào Hoa Kỳ. GPLv3 cũng cho phép các nhà phát triển từ chối trách nhiệm địa phương, điều này cũng có thể giúp tăng mức sử dụng bên ngoài Hoa Kỳ.
Giấy phép Apache
Giấy phép Apache là một giấy phép phần mềm nguồn mở được phát hành bởi Apache Software Foundation (ASF). Đây là một loại giấy phép phổ biến, được triển khai rộng rãi và được hỗ trợ bởi một cộng đồng lớn mạnh. Giấy phép Apache cho phép bạn tự do sử dụng, sửa đổi và phân phối bất kỳ sản phẩm nào được cấp phép Apache. Tuy nhiên, bạn bắt buộc phải tuân theo các điều khoản của loại giấy phép này.
Apache Group (sau này là Apache Software Foundation – ASF) đã phát hành phiên bản đầu tiên của giấy phép vào năm 1995, nhưng hiếm khi bạn bắt gặp các thành phần vẫn mang theo giấy phép này.
Năm 2000, khi Berkeley chấp nhận lập luận do Tổ chức Phần mềm Tự do đưa ra, rút điều khoản quảng cáo của họ khỏi giấy phép BSD và hình thành giấy phép BSD sửa đổi, Apache cũng làm như vậy và tạo ra Giấy phép Apache phiên bản 1.1.
Việc xóa điều khoản quảng cáo có nghĩa là các tài liệu quảng cáo của các sản phẩm phát sinh từ bất kỳ sản phẩm nào được cấp phép Apache sẽ không còn bắt buộc phải bao gồm ghi nhận Giấy phép Apache nữa mà nó chỉ cần bao gồm ghi công trong tài liệu.
Năm 2004, ASF đã triệt để hơn trong việc rời khỏi BSD và phát hành phiên bản thứ 2 của Giấy phép Apache bằng việc cấp quyền bằng sáng chế và làm rõ những định nghĩa vững chắc của các khái niệm được nhắc đến làm cho nó trở nên chặt chẽ hơn.
Giấy phép Công cộng của Microsoft (Ms – PL)
Là một giấy phép phần mềm mã nguồn mở miễn phí do Microsoft phát hành, hãng sản xuất phần mềm này đã tạo ra giấy phép này cho những dự án của mình và được phát hành dưới dạng mã nguồn mở.
Bạn có thể tự do sao chép và phân phối các sản phẩm gốc hoặc tái sinh của bất kì phần mềm nào được cấp phép theo Ms-PL. Tuy nhiên, bạn có thể không được sử dụng tên, logo hay các nhãn hiệu của những người đã góp phần khi bạn thực hiện những việc nêu trên. Giấy phép Ms-PL bảo vệ các tác giả bằng cách không đưa ra bất kì giấy bảo hành được quy định rõ ràng hay sự bảo đảm nào cho việc sử dụng mã của bạn, vì vậy tác giả sẽ không chịu trách nhiệm pháp lý trong các trường hợp mã không hoạt động tốt.
Khi bạn phân phối phần mềm ( hay phân đoạn của nó) theo Ms-PL, bạn không cần phải phân phối mã nguồn của nó. Nếu bạn muốn bạn vẫn có thể phân phối mà không bị ép buộc. Tuy nhiên, bạn phải giữ lại tất cả các thông báo bản quyền, bằng sáng chế, nhãn hiệu và ghi nhận được đưa ra ngay từ đầu trong phần mềm.
Thêm vào đó, bạn chi có thể phân phối bất kì phân đoạn nào của phần mềm dưới dạng mã nguồn của nó theo Ms-PL bằng cách bao gồm một bản sao hoàn chỉnh của giấy phép này với bản phân phối của bạn. Nếu bạn phân phối bất kì phân đoạn nào của phần mềm ở dạng mã đã được biên dịch hoặc mã đối tượng, thì bạn chỉ có thể làm như thế theo bất kì giấy phép nào miễn là nó tuân thủ với Ms-PL.
Có một điều quan trọng cần lưu ý đó là các tài liệu điều khoản và điệu kiện của Ms-PL rất ngắn gọn, xúc tích và được viết bằng ngôn ngữ rất mạch lạc. Microsoft muốn có sự rõ ràng và trực tiếp với cộng động nguồn mở, điều này giúp tăng tỷ lệ chấp nhận ( được nhắc đến trong giấy phép BSD).
Berkeley Software Distribution (BSD)
Giấy phép BSD hay Giấy phép BSD gốc và 2 biến thể của nó – Giấy phép BSD Sửa đổi ( gồm 3 điều khoản) và Giấy phép BSD Đơn giản hóa/ Giấy phép FreeBSD ( gồm 2 điều khoản) – là một họ giấy phép phần mềm miền phí được thừa nhận.
Giấy phép BSD cho phép bạn tùy ý điều chỉnh và phân phối mã phần mềm của mình trong nguồn hoặc ở định dạng mã nhị phân miễn là bạn giữ nguyên bản sao của thông báo bản quyền, danh sách các điều kiện và tuyên bố từ chối trách nhiệm.
Giấy phép BSD gốc hoặc Giấy phép BSD 4 điều khoản cũng bao gồm một điều khoản quảng cáo và một điều khoản không chứng thực. Giấy phép BSD Sửa đổi hoặc Giấy phép BSD 3 điều khoản được hình thành bằng cách bỏ điều khoản quảng cáo trong Giấy phép BSD gốc. Hơn nữa, phiên bản FreeBSD hoặc Giấy phép BSD 2 điều khoản được hình thành bằng cách bỏ điều khoản không chứng thực trong Giấy phép BSD Sửa đổi hoặc Giấy phép BSD 3 điều khoản.
Giấy phép Phân phối và Phát triển chung (CDDL)
CDDF là một giấy phép nguồn mở được phát hành bởi Sun Microsystems để thay thế cho Giấy phép Cộng đồng Sun (SPL). Giấy phép CDDS được Sun ( hiện tại là Oracle) xem như là phiên bản thứ 2 của SPL, được lấy cảm hứng từ Giấy phép Công đồng Mozilla (MPL). Sun đã từng phát hành những dự án phần mềm miễn phí/ nguồn mở theo Giấy phép Cộng đồng Sun (SPL) của mình trước khi chuyển sang dựa vào CDDL vào năm 2004. CDDL thường được gọi là phiên bản đã được làm sạch của MPL và được làm ra để tạo điều kiện cho việc tái sử dụng.
Bạn được tự do sao chép và phân phối bất kì sản phẩm ban đầu hay phái sinh của bất kì phần mềm nào được cấp phép theo Giấy phép CDDL. Tuy nhiên, bạn không dược xóa hoặc thay đổi bất kì điều gì đến những thông báo bản quyền, bằng sáng chế hay nhãn hiệu được nêu rõ trong phần mềm. Bạn cũng phải giữ nguyên những thông báo của việc cấp phép hay bất kì văn bản mô tả nào về việc trao quyền hạn cho những cá nhân đã đóng góp hoặc developer ban đầu.
Khi bạn phân phối phần mềm của mình dưới dạng thực thì ( hay bất kì dạng nào khác ngoài mã nguồn), bạn cũng cần cung cấp mã nguồn có sẵn như vậy theo CDDL. Biễu mẫu thực thi có thể được phát hành theo Giấy phép CDDL hoặc bất kì giấy phép nào tương thích với CDDL.
Mã nguồn mà bạn phải cung cấp bao gồm các đóng góp của bạn miễn là những đóng góp đó là một phần thêm vào, xóa hoặc sửa đổi nội dung của tệp chứa phần mềm gốc – hoặc các tếp mới chứa những đoạn của chương trình gốc. Điều đó có nghĩa là nếu phần thêm vào của bạn được thực hiện trong các tệp riêng biệt và độc lập mà không chứa mã gốc thì bán không cần dựa theo Giấy phép CDDL để phát hành nó. Nếu bạn muốn thì bạn vẫn có thể làm như vậy nhưng điều này là không bắt buộc.
Thêm vào đó, phải phải đính kèm một bản sao của Giấy phép CDDL với bất kì mã nguồn nào mà bạn phân phối. Với mỗi sửa đổi được thực hiện, bạn phải tự nhận định bản thân là một điều chỉnh viên bằng cách thêm một thông báo vào những tệp đã được điều chỉnh của bạn.
Giấy phép Cộng đồng Eclipse (EPL)
Giấy phép Cộng đồng Eclipse (EPL) là một giấy phép nguồn mở được phát triển bởi Quỹ Eclipse. Nó được phái sinh từ Giấy phép Cộng đồng Chung (CPL). Cơ sở mã Eclipse hiện cso sẵn theo Giấy phép EPL ( trước đây đã được cấp phép bởi CPL).
Giấy phép EPL là một giấy phép bảo lưu mọi quyền (copyleft). Nếu bạn sửa đổi một thành phần của EPL’ed và phân phối nó dưới dạng mã nguồn như một phần chương trình của bạn, bạn cần phải làm rõ mã đã chỉnh sửa theo EPL. Nếu bạn phân phối chương trình như vậy dưới dạng mã đối tượng, bạn cần phải nêu rõ rằng mã nguồn đó có thể được cung cấp cho người nhận theo yêu cầu. Bạn còn cần phải chia sẻ cách để yêu cầu mã nguồn.
Quỹ Eclipse nêu rõ quan điểm của mình là việc “giao tiếp hoặc tương tác một cách đơn thuần” với một Eclipse plugin không khiến cho mã của bạn trở thành một sản phẩm phái sinh của plugin.
Nếu bạn phân phối lại một chương trình có thành phần EPL, bạn có nghĩa vụ phải đính kèm đầy đủ văn bản giấy phép và bản quyền.
EPL bảo vệ tác giả khỏi những vụ kiện tụng hoặc những thiệt hại có thể xảy ra nếu một công ty sử dụng thành phần họ làm ra trong một sản phẩm thương mại, ngoài ra nó còn cũng cũng cấp một khoản tài trợ bằng sáng chế cho tác giả.
Giấy phép MIT
MIT là một trong những giấy phép phần mềm miễn phí dễ sử dụng nhất. Về cơ bản, bạn có thể làm bất kì điều gì bạn muốn với phần mềm được cấp phép bởi Giấy phép MIT – chi khi bạn thêm một bản sao của Giấy phép MIT gốc và thông báo bản quyền vào đó. Sự đơn giản của nó chính là lý do nó có tỷ lệ chấp nhận cao với các developer.
Tri thức là sức mạnh
Có thể đọc đến đây, bạn vẫn cảm thấy mất định hướng trong Ma trận của mã nguồn mở. Tuy nhiên, thực tế cho thấy gần như tất cả các nhà phát triển phần mềm đều đang phụ thuộc nhiều vào các thành phần nguồn mở. Do đó, dù muốn hay không, bạn cần hiểu những điều cơ bản về việc cấp phép nguồn mở và sự khác biệt chính giữa các giấy phép nguồn mở hiện có.
Nếu bạn thấy bài viết hữu ích, đừng ngại chia sẻ cho những người quan tâm. Hãy thường xuyên truy cập website để có những thông tin và kiến thức mới nhất về lĩnh vực.