PHẠM VĂN THƯNHÀ SÁNG LẬP BDSGĐăng nhập / Đăng kýKết nối ↗
☰

Mã nguồn mở là gì? Định nghĩa, giấy phép và cách chọn phần mềm

Mã nguồn mở là gì?

Mã nguồn mở (open source) là cách phát hành phần mềm trong đó mã nguồn được công bố và người dùng được cấp quyền xem, sử dụng, sửa đổi và phân phối lại theo một giấy phép. Ở Việt Nam, thuật ngữ này thường được dùng song song với “nguồn mở”, và cụm “phần mềm mã nguồn mở” hay “phần mềm nguồn mở” đều chỉ cùng một khái niệm.

Tổ chức Open Source Initiative (OSI) duy trì Định nghĩa Nguồn mở (Open Source Definition). Phiên bản 1.9 gồm 10 tiêu chí, trong đó có quyền phân phối lại tự do, phải cung cấp mã nguồn, cho phép tạo tác phẩm phái sinh, không phân biệt đối xử với cá nhân, nhóm hay lĩnh vực sử dụng, và giấy phép không được gắn với một sản phẩm cụ thể hay hạn chế phần mềm khác.

Mã nguồn mở khác gì phần mềm miễn phí?

Miễn phí nói về giá, còn mã nguồn mở nói về quyền. Một phần mềm có thể miễn phí nhưng đóng mã nguồn, và một phần mềm mã nguồn mở vẫn có thể được bán hoặc kèm dịch vụ thu phí. Điều cốt lõi là giấy phép trao quyền gì cho người dùng.

Cũng cần phân biệt mã nguồn mở với “mã nguồn khả dụng” (source-available): mã được công khai để xem nhưng giấy phép hạn chế một số quyền như dùng thương mại hay cung cấp thành dịch vụ. Các giấy phép loại này thường không nằm trong danh sách giấy phép được OSI phê duyệt.

Ưu điểm của phần mềm mã nguồn mở

Ưu điểm đầu tiên là quyền kiểm soát: doanh nghiệp có thể tự lưu trữ, kiểm tra và tùy biến phần mềm, giảm nguy cơ bị khóa vào một nhà cung cấp. Ưu điểm thứ hai là cộng đồng: lỗi có thể được nhiều người phát hiện và sửa, tài liệu và tiện ích mở rộng thường phong phú.

Ngoài ra, mã nguồn mở thường cho phép bắt đầu thử nghiệm nhanh với chi phí giấy phép thấp, đặc biệt phù hợp với doanh nghiệp vừa và nhỏ muốn kiểm chứng ý tưởng trước khi đầu tư lớn.

Nhược điểm và rủi ro cần cân nhắc

Chi phí giấy phép thấp không đồng nghĩa với chi phí sở hữu thấp. Doanh nghiệp phải có người triển khai, vận hành, vá lỗi bảo mật và sao lưu, hoặc thuê đối tác làm việc đó. Một dự án có thể ngừng bảo trì, đổi giấy phép hoặc chuyển tính năng quan trọng sang bản thương mại.

Vì vậy, trước khi chọn cần kiểm tra mức độ hoạt động của dự án, quy trình báo cáo lỗ hổng, phạm vi giấy phép và các dịch vụ hay mô hình đi kèm có điều khoản riêng hay không.

Các giấy phép mã nguồn mở phổ biến

Nhóm giấy phép dễ dãi (permissive) như MIT và Apache 2.0 cho phép dùng, sửa và phân phối lại, kể cả trong sản phẩm đóng, với điều kiện giữ thông báo bản quyền và giấy phép; Apache 2.0 còn có điều khoản cấp quyền sáng chế. Nhóm copyleft như GPL yêu cầu tác phẩm phái sinh khi phân phối cũng phải theo cùng điều kiện, còn AGPL mở rộng yêu cầu cho cả trường hợp cung cấp phần mềm qua mạng.

Chi tiết so sánh, kèm lưu ý khi dùng trong sản phẩm thương mại, được trình bày tại trang giấy phép mã nguồn mở. Giấy phép chỉ có hiệu lực với đúng mã nguồn và phiên bản mà nó đi kèm, nên luôn đọc tệp LICENSE tại phiên bản đang dùng.

Cách chọn phần mềm mã nguồn mở cho doanh nghiệp

Bắt đầu từ bài toán kinh doanh, sau đó lập danh sách vài ứng viên và đọc tài liệu chính thức của từng dự án. Kiểm tra giấy phép, hoạt động của kho mã, tài liệu triển khai, cách lưu dữ liệu và các tính năng nằm ngoài bản mở.

Sau đó thử nghiệm nhỏ trên dữ liệu thật với tiêu chí đo được, tính chi phí vận hành, rồi mới quyết định mở rộng. Loạt nghiên cứu về phần mềm mã nguồn mở trên trang này áp dụng đúng cách làm đó cho từng dự án.

Xem tiếp: giấy phép mã nguồn mở và danh mục 100 phần mềm mã nguồn mở.

Câu hỏi thường gặp

Mã nguồn mở có phải là miễn phí không?

Không nhất thiết. Mã nguồn mở nói về quyền sử dụng, sửa đổi và phân phối lại mã; phần mềm vẫn có thể kèm dịch vụ thu phí.

Mã nguồn mở có dùng thương mại được không?

Thường là được, nhưng điều kiện tùy giấy phép. Nên đọc kỹ giấy phép, nhất là khi dùng GPL hoặc AGPL, hoặc khi phần mềm có phiên bản thương mại riêng.

Mã nguồn mở khác mã nguồn khả dụng (source-available) thế nào?

Mã nguồn khả dụng cho xem mã nhưng giới hạn một số quyền; mã nguồn mở theo định nghĩa của OSI phải đáp ứng đủ các tiêu chí về quyền tự do sử dụng và phân phối.

Nguồn tham khảo: Open Source Definition (OSI).