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

Mã nguồn mở, phần mềm mã nguồn mở (Open Source Software - OSS) là những công cụ có sự đóng góp rất lớn cho sự phát triển của nền công nghệ 4.0 như hiện nay.

Phần mềm mã nguồn mở (Open Source Software - OSS) là một phần mềm mà mã nguồn có thể được công chúng xem và thay đổi, hay có nghĩa là "mở". Nếu mã nguồn không thể được công chúng xem hay thay đổi thì nó gọi là "đóng" hay "độc quyền".

Mã nguồn là thứ đứng sau phần mềm mà người dùng không thể thấy, nó đưa ra các hướng dẫn cho cách hoạt động của phần mềm và các tính năng của nó.

Phần mềm nguồn mở là gì?

Thuật ngữ "phần mềm nguồn mở" có nghĩa gần tương đương với "mã nguồn mở" nhưng với độ bao hàm cao hơn. Phần mềm nguồn mở thì có hệ quả là mã nguồn mở, nhưng điều ngược lại thì không đúng (ví dụ một phần mềm có mã nguồn mở nhưng giấy phép "đóng" - hệ quả của tình huống này là người dùng được truy cập vào mã nguồn nhưng có thể bị ngăn cấm quyền sao chép, chỉnh sửa, phân phối lại...).

Ngày nay có rất nhiều dạng mở (không đóng) bao gồm: phần cứng, phần mềm nguồn mở, tài liệu/ học liệu mở, thiết kế mở... Phần mềm nguồn mở ngày nay phát triển với tốc độ khá cao, cho thấy nó có nhiều động lực hơn so với mã đóng. Không nghi ngờ ngày nay sự phát triển lĩnh vực công nghệ thông tin có thể nói tới nguồn mở như cái gì đó năng động nhất. Tốc độ phát triển của nó có thể nói đến từng giờ một.

Người dùng được lợi gì từ phần mềm mã nguồn mở?

Phần mềm mã nguồn mở cho phép các lập trình viên cùng hợp tác cải thiện phần mềm như tìm lỗi, sửa lỗi (bug), cập nhật với các công nghệ mới hoặc tạo ra các tính năng mới. Hoạt động nhóm trên các dự án mã nguồn mở như vậy mang đến lợi ích là việc sửa lỗi thường diễn ra nhanh, tính năng mới được bổ sung thường xuyên, phần mềm ổn định hơn, các bản vá bảo mật cũng được đưa ra nhanh chóng hơn các phần mềm độc quyền.

Nhiều OSS sử dụng một số phiên bản hoặc biến thể của GNU General Publics License (GNU GPL hoặc GPL). Cách đơn giản nhất để nghĩ về GPL là coi nó như một tấm ảnh thuộc về tài sản công (pubic domain). Cả hai đều cho phép bất kì ai chỉnh sửa, cập nhật, dùng lại bất cứ thứ gì họ muốn.

GPL cho phép lập trình viên và người dùng quyền truy cập, thay đổi mã nguồn trong khi tài sản công cho phép họ tùy ý dùng tấm ảnh. Phần GNU trong GNU GPL ám chỉ tới quyền được tạo cho các hệ thống GNU, một hệ điều hành mở/miễn phí đã và sẽ tiếp tục là một dự án quan trọng của công nghệ mã nguồn mở.

Một điểm cộng khác cho OSS với người dùng là chúng hoàn toàn miễn phí, tuy vậy một số phần mềm có thể tính thêm chi phí nếu có các dịch vụ khác như hỗ trợ kỹ thuật…

Một phần của hệ sinh thái phần mềm TIGO được xây dựng trên nền tảng các mã nguồn mở
Một phần của hệ sinh thái phần mềm TIGO được xây dựng trên nền tảng các mã nguồn mở

Mã nguồn mở từ đâu mà có?

Ý niệm và một phần mềm hợp tác cùng lập trình đã có từ những năm 1950-1960 nhưng tới những năm 1970-1980, các tranh cãi về pháp lý khiến cho ý tưởng này mất đi sức hấp dẫn. Phần mềm độc quyền chiếm thế trên thị trường phần mềm cho tới khi Richard Stallman sáng lập Free Software Foundation (FSF) vào năm 1985, đưa phần mềm mở/miễn phí trở lại.

Khái niệm "phần mềm miễn phí" ám chỉ sự tự do, không phải trả phí. Phong trào xã hội đứng sau phần mềm mở cho phép người dùng phần mềm tự do xem, thay đổi, cập nhật, sửa, thêm vào mã nguồn để đáp ứng nhu cầu của mình và phân phối, chia sẻ với người khác dễ dàng.

FSF đóng vai trò quan trọng trong phong trào phần mềm mã nguồn mở bằng dự án GNU Project. GNU là hệ điều hành miễn phí (một nhóm các phần mềm và công cụ hướng dẫn thiết bị hoặc máy tính vận hành), thường phát hành các công cụ, thư viện, ứng dụng… gộp lại được gọi là các phiên bản hoặc bản phân phối.

GNU đi kèm một phần mềm được gọi là kernel, có nhiệm vụ quản lý các nguồn lực của máy tính hoặc thiết bị, trong đó có việc giao tiếp giữa các ứng dụng và phần cứng. Kernel phổ biến nhất của GNU là Linux kernel, được Linus Torvalds tạo ra đầu tiên. Việc kết hợp hệ điều hành và kernel được gọi là hệ điều hành GNU/Linux, dù thường được gọi đơn giản là Linux.

Vì nhiều lý do, gồm cả việc gây dễ nhầm lẫn trên thị trường về ý nghĩa của thuật ngữ "phần mềm mở" mà thuật ngữ thay thế là "mã nguồn mở" thường được dùng cho các phần mềm được tạo và duy trì bởi sự phối hợp của cộng đồng.

Thuật ngữ "mã nguồn mở" chính thức được chấp thuận tại hội nghị đặc biệt của những người đi đầu về công nghệ diễn ra vào 2/1998 do Tim O’Reilly tổ chức. Cuối tháng đó, Open Source Initiative (OSI) được thành lập bởi Eric Raymond và Bruce Perens, là một tổ chức phi lợi nhuận nhằm khuyến khích phát triển phần mềm mã nguồn mở.

FSF tiếp tục là tổ chức ủng hộ và hoạt động để hỗ trợ "quyền tự do và quyền liên quan tới mã nguồn mở" của người dùng. Tuy vậy, nhiều tổ chức hiện này sử dụng thuật ngữ "mã nguồn mở" cho các dự án và phần mềm mà họ cho phép công chúng truy cập mã nguồn.

Phần mềm mã nguồn mở là một phần của cuộc sống hàng ngày

Các dự án mã nguồn mở rất phổ biến trong cuộc sống hàng ngày. Hệ điều hành iOS và cả Android trước đây đều được tạo bằng các khối từ phần mềm, dự án mã nguồn mở.

Bạn đang dùng Chrome hay Firefox để đọc bài viết này? Mozilla FIrefox là trình duyệt web mã nguồn mở. Google Chrome là phiên bản có chỉnh sửa của dự án mã nguồn mở có tên Chromium - dù Chromium được các nhà phát triển Google khởi xướng và họ vẫn tiếp tục đóng vai trò quan trọng trong việc cập nhật, bổ sung thêm, Google cũng đưa thêm các tính năng mới (một vài trong số chúng không phải mã nguồn mở) vào phần mềm cơ sở để phát triển trình duyệt Google Chrome.

Không thể có Internet ngày nay nếu không có OSS. Những người tiên phong trong công nghệ đã xây dựng nên thế giới World Wide Web bằng công nghệ mã nguồn mở, như hệ điều hành Linux và máy chủ web Apache để tạo ra Internet ngày nay.

Ưu điểm và nhược điểm của phần mềm nguồn mở

Ưu điểm

  • Tính ổn định/đáng tin cậy: Thông thường, phần mềm mã nguồn mở sở hữu độ đáng tin cậy cao.
  • Gia tăng tư duy sáng tạo: Vì sở hữu thiết kế dưới dạng mở, nên nhiều người có thể nghiên cứu nhằm tạo ra những ứng dụng hoàn thiện hơn.
  • Chức năng tiện ích: Nó cho nhiều người cùng làm việc trên một phần mềm mã nguồn mở mà không cần xin phép từ các người tạo ra. Vậy nên, họ có quyền sửa chữa, cập nhật, nâng cấp nó nhanh hơn các phần mềm có bản quyền.
  • Lợi thế về chi phí: Dễ dàng tìm mua các plugin từ cộng đồng trên khắp thế giới với giá rẻ hơn là tự viết mã, vì một plugin thường chỉ có giá từ 50$ đến vài trăm $.

Nhược điểm

  • Khả năng bảo mật kém: Đây là một nhược điểm, do được chia sẻ rộng rãi trên mạng, nên bất cứ ai truy cập Internet đều có khả năng download về để tìm hiểu chúng. Điều này đồng nghĩa với mọi hacker cũng dễ dàng xem, đánh cắp dữ liệu hay làm gián đoạn quá trình hoạt động của trang web. Tuy vậy bạn không quá lo lắng vì quan trọng vì hacker chỉ tấn công những người "ngạo mạn". Chỉ cần sống khiêm tốn, được lòng thì sẽ không ai tấn công Website của bạn cả ngay cả khi Website đó viết bằng mã nguồn mở phổ biến đến mức ai cũng biết "ruột gan" website của bạn.
  • Tốc độ: Khi chúng ta không thể kiểm soát được kiến trúc source code của một mã nguồn mở lớn thì chúng ta sẽ rất vất vả để thiết kế được Website như ý muốn. Trước đây rất nhiều doanh nghiệp và cơ quan Nhà nước sử dụng DotNetNuke framework (phần mềm nguồn mở cho các Cổng thông tin và CMS) nên tốc độ thiết kế rất hạn chế, không có nhiều "themes" như Wordpress (một  blogging framework nhỏ gọn nhưng rất linh hoạt).
  • Dịch vụ hỗ trợ hạn hẹp: Vì được viết sẵn bởi những Developer tình nguyện, nên công ty cung cấp không thể nắm rõ tất cả chi tiết của website. Do đó, nếu xảy ra tình trạng lỗi hoặc muốn nâng cấp thêm chức năng… thì đối với nhà cung cấp, đây là điều vô cùng khó khăn.
  • Thiếu tính độc quyền: Phương pháp xây dựng này được gọi là cài đặt web chứ không phải là lập trình hay thiết kế. Bởi không cần kiến thức chuyên môn bạn cũng có thể làm ra được. Do vậy, tình trạng nhiều người cùng sở hữu một kiểu dáng, chức năng và bố cục website là điều không thể tránh khỏi.


Cảm ơn các bạn đã quan tâm và theo dõi