Trong công nghệ, có rất nhiều khái niệm mà chúng ta chưa biết đến. Mã nguồn mở thường được lưu trữ trong kho lưu trữ công cộng và được chia sẻ công khai. Cùng tìm hiểu phần mềm mã nguồn mở là gì và sự so sánh với phần mềm mã nguồn đóng qua bài viết dưới đây.
Phần mềm mã nguồn mở là gì?
Phần mềm nguồn mở (Open source software – OSS) là phần mềm được phân phối cùng với mã nguồn, do đó, luôn sẵn sàng đối với việc sử dụng, sửa đổi và chia sẻ quyền truy cập.
Xem ngay: phần mềm là gì để biết các thành phần cơ bản
Mã nguồn là một phần của phần mềm mà hầu hết người dùng không bao giờ thấy. Đó là mã được các lập trình viên máy tính thiết lập để kiểm soát hoạt động của một chương trình hoặc ứng dụng. Các lập trình viên có quyền truy cập vào mã nguồn, tiến hành các thay đổi chương trình bằng cách thêm hoặc sửa chữa các phần trong đó. OSS thường bao gồm một giấy phép cho phép các lập trình viên sửa đổi phần mềm để phù hợp nhất với nhu cầu của họ và kiểm soát cách phần mềm có thể được phân phối.
Phần mềm mã nguồn mở hoạt động như thế nào?
Mã nguồn mở thường được lưu trữ trong kho lưu trữ công cộng và được chia sẻ công khai. Bất kỳ ai cũng có thể truy cập kho lưu trữ để sử dụng mã một cách độc lập hoặc đóng góp các cải tiến về thiết kế và chức năng của dự án tổng thể.
OSS thường đi kèm với giấy phép phân phối. Giấy phép này bao gồm các điều khoản xác định cách các nhà phát triển có thể sử dụng, nghiên cứu, sửa đổi và quan trọng nhất là phân phối phần mềm. Theo Synopsys Black Duck® KnowledgeBase, năm trong số các giấy phép phổ biến nhất là:
- MIT License
- GNU General Public License (GPL) 2.0 — Giấy phép này nghiêm ngặt hơn và yêu cầu các bản sao của code đã sửa đổi phải được cung cấp để sử dụng công khai
- Apache License 2.0
- GNU General Public License (GPL) 3.0
- BSD License 2.0 (3 điều khoản, Mới hoặc Sửa đổi)
Khi mã nguồn được thay đổi, OSS phải thông báo những thay đổi đó, cũng như các phương pháp đã được sử dụng. Tùy thuộc vào các điều khoản cấp phép, phần mềm phát sinh từ những sửa đổi này có thể sẽ phải cung cấp miễn phí trong một số trường hợp.
Click ngay: bộ nhớ trong của máy tính để biết các bộ phận chi tiết
Phần mềm mã nguồn mở & phần mềm mã nguồn đóng: Khác biệt là gì?
Tiêu chí | Phần mềm mã nguồn mở | Phần mềm mã nguồn đóng |
Giá thành | Miễn phí truy cập và sử dụng | Chi phí thay đổi tùy theo quy mô của phần mềm. |
Quyền tùy chỉnh | Hoàn toàn có thể tùy chỉnh nhưng phụ thuộc vào giấy phép nguồn mở. | Các yêu cầu thay đổi phải được gửi đến công ty bán phần mềm. Điều này bao gồm các bản sửa lỗi, tính năng và cải tiến. |
Trải nghiệm người dùng | Trải nghiệm người dùng thường không cao như đối với phần mềm mã nguồn đóng. Tuy nhiên, điều này phụ thuộc vào mục tiêu của dự án và năng lực của đơn vị duy trì. | Thân thiện hơn với người dùng. Trải nghiệm người dùng được để cao, bởi đây là sản phẩm vì lợi nhuận |
Chính sách hậu mãi | Một số phần mềm mã nguồn mở rất phổ biến (ví dụ: OSS do Red Hat hoặc SUSE phân phối) có nhiều hỗ trợ. Nếu không, người dùng có thể tìm trợ giúp thông qua các diễn đàn hoặc email. | Đội ngũ hỗ trợ luôn sẵn sàng. Mức độ dịch vụ khả dụng tùy thuộc vào thỏa thuận mức dịch vụ (SLA). |
Bảo mật | Mã nguồn được mở để mọi người cùng xem xét, phát hiện và giảm thiểu nguy cơ tồn tại các lỗi. Tuy nhiên, điều này không loại trừ một số lỗ hổng bảo mật có thể gây ra rủi ro đáng kể. | Vì mã nguồn được đóng nên việc phát hiện lỗi có những giới hạn nhất định và các nhà phát triển có trách nhiệm khắc phục các rủi ro bảo mật. |
Vendor lock-in | Không có vendor lock-in về chi phí đi kèm. Việc tích hợp vào hệ thông có thể tạo ra ràng buộc kĩ thuật sau này. | Trong hầu hết các trường hợp, có nhiều khoản đầu tư lớn vào các phần mềm độc quyền. Việc chuyển sang một nhà cung cấp khác hoặc một giải pháp mã nguồn mở có thể gây ra tốn kém về chi phí |
Mức độ phổ biến | Một số giải pháp mã nguồn mở rất phổ biến và thậm chí còn dẫn đầu thị trường (ví dụ: Linux, Apache). | Trong một số ngành, phần mềm độc quyền phổ biến hơn, đặc biệt nếu nó đã có mặt trên thị trường trong nhiều năm. |
Sự tham gia của cộng đồng | Bản chất của phần mềm mã nguồn mở là cho phép cộng đồng tham gia phát triển, đánh giá, phê bình và cải tiến phần mềm. | Cộng đồng khép kín. |
Phát triển tính năng mới | Người dùng có thể cải tiến hay phát triển tính năng mới nếu cần | Chủ sở hữu phần mềm chịu trách nhiệm phát triển tính năng |
Trên đây là phần mềm mã nguồn mở là gì và sự so sánh với phần mềm mã nguồn đóng. Hy vọng bài viết của chúng tôi đã cung cấp cho bạn nhiều thông tin.