PMNM là những phần mềm được cung cấp dưới cả dạng mã và nguồn, không
chỉ là miễn phí về giá mua mà chủ yếu là miễn phí về bản quyền: người
dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số
nguyên tắc chung qui định trong giấy phép PMNM (ví dụ General Public
Licence – GPL) mà không cần xin phép ai, điều mà họ không được phép
làm đối với các phần mềm nguồn đóng (tức là phần mềm thương mại).
Nhà cung cấp phần mềm nguồn mở có quyền yêu cầu người dùng trả một số
chi phí về các dịch vụ bảo hành, huấn luyện, nâng cấp, tư vấn, vv...
tức là những dịch vụ thực sự đã thực hiện để phục vụ người dùng, nhưng
không được bán các sản phẩm nguồn mở vì nó là tài sản của trí tuệ
chung, không phải là tài sản riêng của một nhà cung cấp nào.
Trên thị trường phần mềm, có nhiều loại giấy phép. Có thể chia các
giấy phép này đại khái như sau [1]:
▪ Phần mềm thương mại (Commercial Software)
Là phần mềm thuộc bản quyền của tác giả hoặc nhà sản xuất, chỉ được
cung cấp ở dạng mã nhị phân, người dùng phải mua và không có quyền
phân phối lại.
▪ Phần mềm thử nghiệm giới hạn (Limited Trial Software)
Là những phiên bản giới hạn của các phần mềm thương mại được cung cấp
miễn phí nhằm mục đích thử nghiệm, giới thiệu sản phẩm và kích thích
người dùng quyết định mua. Loại sản phấm này không chỉ giới hạn về
tính năng mà còn giới hạn về thời gian dùng thử (thường là 60 ngày).
▪ Phần mềm “chia sẻ” (Shareware)
Loại phần mềm này có đủ các tính năng và được phân phối tự do, nhưng
có một giấy phép khuyến cáo các cá nhân hoặc tổ chức mua, tùy tình
hình cụ thể. Nhiều tiện ích Internet (như “WinZip” dùng các thuận lợi
của Shareware như một hệ thống phân phối).
▪ Phần mềm sử dụng phi thương mại (Non-commercial Use)
Loại phần mềm này được sử dụng tự do và có thể phân phối lại bởi các
tổ chức phi lợi nhuận. Nhưng các tổ chức kinh tế, thí dụ các doanh
nghiệp, ... muốn dùng phải mua. Netscape Navigator là một thí dụ của
loại phần mềm này.
▪ Phần mềm không phải trả phần trăm cho nhà sản xuất (Royalties Free
Binaries Software)
Phần mềm được cung cấp dưới dạng nhị phân và được dùng tự do. Thí dụ:
bản nhị phân của các phần mềm Internet Explorer và NetMeeting.
▪ Thư viện phần mềm không phải trả phần trăm (Royalties Free Software
Libraries)
Là những phần mềm mà mã nhị phân cũng như mã nguồn được dùng và phân
phối tự do, nhưng người dùng không được phép sửa đổi. Thí dụ: các thư
viện lớp học, các tệp “header”, vv ...
▪ Phần mềm mã nguồn mở kiểu BSD - (Open Source BSD-style)
Một nhóm nhỏ khép kín (closed team) đã phát triển các PMNM theo giấy
phép phân phối Berkely (BSD – Berkely Software Distribution) cho phép
sử dụng và phân phối lại các phần mềm này dưới dạng mã nhị phân và mã
nguồn. Tuy người dùng có quyền sửa đổi mã, nhưng về nguyên tắc nhóm
phát triển không cho phép người dùng tự do lấy mã nguồn từ kho mã ra
sửa (gọi là check-out) và đưa mã đã sửa vào lại kho mã mà không được
họ kiểm tra trước (gọi là các “check-in”) [2].
▪ PMNM kiểu Apache (Open Source Apache-style)
Chấp nhận nguồn mở kiểu BSD nhưng cho phép những người ngoài nhóm phát
triển xâm nhập vào lõi của mã nền (core codebase), tức là được phép
thực hiện các “check-in”.
▪ PMNM kiểu CopyLeft hay kiểu Linux (Open Source CopyLeft, Linux-
style)
PMNM kiểu CopyLeft (trò chơi chữ của Free Software Foundation – FSF –
và GNU – Gnu’s Not Unix, để đối nghịch hoàn toàn với CopyRight !) hay
còn gọi là giấy phép GPL (General Public Licence) là một bước tiến
quan trọng theo hướng tự do hóa của các giấy phép phần mềm. Giấy phép
GPL yêu cầu không những mã nguồn gốc phải được phân phối theo các qui
định của GPL mà mọi sản phẩm dẫn xuất cũng phải tuân thủ GPL.
GPL cho người dùng tối đa quyền hạn và tự do đối với các PMNM theo
GPL, cụ thể người dùng có quyền không những sao chép, sửa đổi, mua bán
các PMNM dưới CopyLeft mà còn được quyền tự do như vậy đối với các
phần mềm dẫn xuất. Tóm lại nếu PMNM gốc đã theo CopyLeft thì mọi PMNM
dẫn xuất của nó cũng đương nhiên theo CopyLeft.
Bảng sau đây so sánh mức độ mở của các loại PMNM nói trên.
Trong bài trên
[1]- Eric S. Raymond, Open Source Software, A (New) Development
Methodology, xem trong
http://www.opensource.org/hallowen
[2]- "Check-in" và “check-out” là những lệnh trong chương trình quản
lý mã [code] có tên là CVS, có đặc điểm là mỗi lần sửa mã, thì mã này
được tự động ghi một phiên bản (version) mới -- để khi chạy một phiên
bản nào đó có bị trục trặc thì có thể quay về bất cứ phiên bản nào
trước đó một cách dễ dàng. Quy trình đối với CVS như sau:
Kho mã nguồn [code repository] – checkout =>(mã nguồn) -- sửa thử --
=>(mã nguồn đã sửa/thử) – checkin =>kho mã nguồn.
"checkout" là lấy mã nguồn từ kho ra để sửa, và "checkin" là đưa mã
nguồn đã sửa vào kho. CVS cho version mới khi người dùng checkin. Ý
của đoạn viết là những người phụ trách BSD không cho người dùng tự
động làm khâu cuối cùng, mà họ phải kiểm tra mọi sửa đổi trước.