Chương trình mã nguồn mở là gì

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ể.

Chương trình mã nguồn mở là gì
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.

Phần 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. 

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.

Lịch sử của phần mềm mã nguồn mở

Ý tưởng về việc cung cấp mã nguồn có sẵn và miễn phí được đề xuất từ năm 1983 bởi Richard Stallman, một lập trình viên tại MIT. Stallman tin rằng lập trình viên nên được trao quyền truy cập vào phần mềm để sửa đổi nó theo ý muốn, mục tiêu là nhằm tìm hiểu và từng bước cải thiện phần mềm sao cho tối ưu nhất. Stallman bắt đầu phát hành code miễn phí theo giấy phép của riêng mình, được gọi là GNU Public License. Cách tiếp cận và tư tưởng của Stallman đã đặt tiền đề cho sự hình thành của Sáng kiến ​​Nguồn mở (Open Source Initiative) vào năm 1998.

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.

Phần mềm mã nguồn mở không chứa lỗi?

“Is OSS bug-free?”/ “Phần mềm mã nguồn mở không hề có lỗi?” Câu trả lời là không. Với việc nhiều bên thực hiện các sửa đổi và cải tiến, phần mềm mã nguồn mở không thể tránh khỏi các lỗ hổng về chất lượng, hiệu suất và bảo mật. Tuy nhiên, sự tham gia của số lượng rất lớn các lập trình viên trên toàn thế giới cũng có nghĩa là những lỗi này sẽ được xác định và sửa chữa nhanh hơn.

Bất kể loại phần mềm nào — mã nguồn mở hay thương mại — đều sẽ tồn tại các lỗ hổng về mã. Sự khác biệt chính là ai chịu trách nhiệm sửa lỗi; đối với phần mềm thương mại, nhà cung cấp chịu trách nhiệm, trong khi đó, người tiêu dùng chịu trách nhiệm về phần mềm nguồn mở. 

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 đóngGiá thànhMiễn phí truy cập và sử dụngChi phí thay đổi tùy theo quy mô của phần mềm.Quyền tùy chỉnhHoà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ùngTrả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ãiMộ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ậtMã 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-inKhô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ếnMộ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 đồngBả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ớiNgười dùng có thể cải tiến hay phát triển tính năng mới nếu cầnChủ sở hữu phần mềm chịu trách nhiệm phát triển tính năngSo sánh phần mềm mã nguồn mở và phần mềm mã nguồn đóng

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

Ưu điểm

  • Phần mềm mã nguồn mở là hoàn toàn miễn phí
  • Phần mềm mã nguồn mở có khả năng linh hoạt cao, các nhà phát triển có thể kiểm tra hoạt động của mã và thực hiện các thay đổi về tính năng để phù hợp hơn với nhu cầu riêng của họ.
  • Mã nguồn mở mang tính ổn định; có thể được sử dụng cho các dự án dài hạn.
  • Mã nguồn mở thúc đẩy đổi mới, sáng tạo. Các lập trình viên có thể sử dụng mã có sẵn để cải thiện phần mềm và thậm chí đưa ra những đổi mới của riêng họ.
  • Mã nguồn mở được liên tục sửa đổi và cải tiến bởi cộng đồng cùng tham gia phát triển. 
  • Mã nguồn mở mang tới cho các lập trình viên một cơ hội học tập tuyệt vời. Bởi mã nguồn mở có thể truy cập công khai, sinh viên do đó dễ dàng nghiên cứu, học cách phát triển phần mềm, tiếp nhận nhận xét, đánh giá từ những người khác, đồng thời chia sẻ những lỗi gặp phải để tránh việc lặp lại các lỗi tương tự.

Nhược điểm

  • Mã nguồn mở có thể khó sử dụng, khó thiết lập và thiếu một giao diện thân thiện với người dùng.
  • Mã nguồn mở có thể gây ra các vấn đề về tính tương thích. Khi lập trình phần cứng độc quyền với OSS, thường cần có các trình điều khiển chuyên biệt chỉ có sẵn từ nhà sản xuất phần cứng.
  • Phần mềm mã nguồn mở có thể đặt ra các vấn đề về trách nhiệm pháp lý. Không giống như phần mềm thương mại, được kiểm soát hoàn toàn bởi nhà cung cấp, mã nguồn mở hiếm khi có bất kỳ bảo hành, trách nhiệm pháp lý hoặc bồi thường vi phạm nào. Điều này khiến người dùng của phần mềm mã nguồn mở có trách nhiệm duy trì việc tuân thủ các nghĩa vụ pháp lý.

Nhằm thúc đẩy chia sẻ dữ liệu y tế, hướng tới xây dựng tiền đề phát triển cho cộng đồng Trí tuệ nhân tạo và Khoa học dữ liệu, VinBigdata quyết định mở toàn bộ mã nguồn của VinDr Lab – phần mềm gán nhãn dữ liệu y tế cho cộng đồng. VinDr Lab là phần mềm mã nguồn mở cho phép quản lý và gán nhãn dữ liệu ảnh y tế. Phần mềm được VinBigdata phát triển để lược bỏ những khó khăn mà các kỹ sư, tổ chức gặp phải trong quá trình xây dựng các giải pháp y tế ứng dụng Trí tuệ nhân tạo. Người dùng hoàn toàn có thể tùy chỉnh mã nguồn để phục vụ các mục đích riêng của tổ chức, cá nhân. Cộng đồng quan tâm có thể truy cập tại: https://github.com/vinbigdata-medical/vindr-lab 

Thế giới nói gì

Toàn cảnh về ánh xạ gen

VinBigData - 29/09/2021 0

Ánh xạ gen (Genetic mapping) giúp cung cấp bằng chứng về mối liên hệ của gen đối với một số bệnh di truyền, đồng...

Read more

Thế giới nói gì

Transformer Neural Network – Mô hình học máy biến đổi thế giới NLP

VinBigData - 10/08/2021 0

Năm 2017, Google công bố bài báo “Attention Is All You Need” thông tin về Transformer như tạo ra bước ngoặt mới trong lĩnh...

Read more

Thế giới nói gì

Dự báo chuỗi thời gian cùng công nghệ Học sâu

VinBigData - 04/08/2021 0

Dự báo chuỗi thời gian (Time series forecasting) hiện là lĩnh vực nghiên cứu rất phổ biến. Dễ dàng tìm thấy nhiều loại dữ...

Read more

Thế giới nói gì

08 khóa học Machine Learning miễn phí

VinBigData - 03/08/2021 0

Những khóa học Machine Learning dưới đây đều được triển khai bởi những trường đại học, viện nghiên cứu hay công ty công nghệ...

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

Mã nguồn mở (Open Source) được hiểu đơn giản các phần mềm mà code của chúng được công khai để mọi người đều có thể tải xuống để sử dụng, chỉnh sửa và tùy biến. Sau đó có thể đóng góp thêm vào nội dung của mã nguồn nhằm cung cấp những lợi ích và tính năng vượt trội hơn cho cộng đồng.

Phần mềm mã nguồn mở dùng để làm gì?

Phần mềm mã nguồn mở là phần mềm với mã nguồn được công bố, với một giấy phép sử dụng đi kèm, cho phép bất cứ ai cũng có thể sử dụng, nghiên cứu, thay đổi cải tiến phần mềm và phân phối phần mềm ở dạng chưa thay đổi hoặc đã thay đổi. Phần mềm mã nguồn mở cung cấp miễn phí cho người sử dụng.

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

Đây những phần mềm được cung cấp dưới dạng nguồn, không chỉ được chia sẻ miễn phí mà trên phương diện bản quyền, người dùng còn được phép chỉnh sửa, nâng cấp và phát triển (trong phạm vi được qui định) mà không cần phải xin phép với bất cứ ai trong khi điều này bị cấm đối với những phần mềm thương mại tức ...

Mã nguồn mở là gì ví dụ?

Mã nguồn mở là những phần mềm được cung cấp dưới cả dạng nguồn, không chỉ miễn phí về giá mua mà chủ yếu 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 ...