Phần mềm nguồn mở là gì và nó hoạt động như thế nào?

Phần mềm nguồn mở đề cập đến phần mềm được phát hành mà không có giới hạn bản quyền thông thường. Điều này có nghĩa là (những) nhà phát triển đã phát minh ra phần mềm này rất vui khi những người khác sử dụng phần mềm của họ cho mục đích riêng của họ, điều chỉnh và phát triển phần mềm khi họ thấy phù hợp. Thông thường, phần mềm nguồn mở cũng miễn phí, khiến nó trở thành giải pháp hoàn hảo cho các cá nhân cũng như doanh nghiệp.

Các nhà phát triển phát hành phần mềm mã nguồn mở không hạn chế vào phạm vi công cộng. Điều này có nghĩa là bất kỳ ai cũng có thể kiểm tra, nghiên cứu và sửa đổi ‘mã nguồn’ của phần mềm, các khối xây dựng của phần mềm, để hiểu cách thức hoạt động của phần mềm, sửa đổi phần mềm vì mục đích riêng của họ hoặc thực hiện các cải tiến cho những người dùng khác. Ngoài ra, một tính năng chính của phần mềm mã nguồn mở là người dùng được phép phân phối phần mềm trên, có hoặc không có thay đổi mà họ đã thực hiện, cho bất kỳ ai họ thích. Do đó, không có “sản phẩm cuối cùng” khi nói đến phần mềm nguồn mở – nó liên tục phát triển khi những người dùng và nhà phát triển khác nhau cộng tác từ khắp nơi trên thế giới.

Ví dụ về các sản phẩm nguồn mở bao gồm WordPress (một hệ thống quản lý nội dung), Open Office, trình duyệt Internet Mozilla Firefox, Wikipedia, hệ điều hành GNU/Linux và Android phái sinh của nó, một hệ điều hành dành cho thiết bị di động.

Hướng dẫn toàn diện này đưa bạn qua mọi thứ bạn cần biết về phần mềm nguồn mở trong các phần sau:

  • Phần mềm mã nguồn mở là gì?
  • Các loại giấy phép mã nguồn mở
  • Ưu điểm của mô hình mã nguồn mở
  • Nhược điểm của mô hình mã nguồn mở
  • Tại sao làm cho phần mềm mã nguồn mở?
  • Lịch sử của mã nguồn mở
  • Suy nghĩ cuối cùng và câu hỏi thường gặp

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

Điều đặc biệt làm cho phần mềm nguồn mở là giấy phép được đính kèm với nó. Giấy phép nguồn mở, đôi khi được gọi là giấy phép phần mềm tự do, có thể ngầm hoặc rõ ràng. Chúng độc đáo ở chỗ chúng cho phép người dùng có nhiều quyền tự do đối với sản phẩm: cụ thể là quyền tự do sửa đổi và phân phối lại phần mềm, điều này thường bị cấm theo luật bản quyền. Khi chủ sở hữu quyền chọn loại bỏ những hạn chế này, họ làm như vậy bằng cách sử dụng giấy phép phần mềm miễn phí hoặc giấy phép phần mềm nguồn mở, có nghĩa là người dùng có toàn quyền kiểm soát phần mềm mà không phải trả phí cho người tạo ban đầu.

Ngược lại với phần mềm mã nguồn mở là phần mềm sở hữu độc quyền, trong đó chỉ (những) cá nhân người tạo hoặc công ty tạo ra nó mới có quyền kiểm soát hoặc thay đổi mã nguồn. Ví dụ về phần mềm độc quyền bao gồm Microsoft Office và Adobe Photoshop – khách hàng trả tiền có thể sử dụng phần mềm nhưng họ chỉ có thể sử dụng phần mềm cho các mục đích được (những) người sáng tạo cho phép rõ ràng.

Phần mềm nguồn mở thường bị nhầm lẫn với phần mềm miễn phí, nhưng hai phần mềm này rất khác nhau. Phần mềm miễn phí đề cập đến phần mềm mà người dùng có thể tải xuống và sử dụng hoàn toàn miễn phí. Tuy nhiên, họ không có quyền sửa đổi mã nguồn.

Tính linh hoạt của phần mềm nguồn mở có nghĩa là bạn có thể sử dụng nó cho hầu hết mọi thứ. Đối với các doanh nghiệp, giải pháp phần mềm hệ điều hành có thể hỗ trợ bạn trong công việc kế toán, quản lý quan hệ khách hàng, quản lý nguồn lực doanh nghiệp và thậm chí cả điểm bán hàng. Nhiều ngành nghề dựa vào phần mềm hệ điều hành hàng ngày, chẳng hạn như các nhiếp ảnh gia sử dụng phần mềm chỉnh sửa video và các văn phòng dựa trên LibreOffice. Phần mềm hệ điều hành ít kỹ thuật hơn bao gồm nhiều trình phát nhạc và video phổ biến nhất.

Các loại giấy phép mã nguồn mở

Có một số giấy phép nguồn mở có sẵn cho người tạo phần mềm. Mặc dù tất cả đều tuân theo các nguyên tắc và tiêu chí chính của phần mềm nguồn mở, nhưng chúng hơi khác nhau về mức độ cho phép người dùng sửa đổi mã nguồn và trong những điều kiện nào. Một số giấy phép phổ biến nhất là:

  • Giấy phép MIT: Giấy phép này bắt nguồn từ MIT và cho phép người dùng sửa đổi mã gốc với rất ít hạn chế. Nó tuân thủ GPL, nghĩa là người dùng có thể cấp lại phần mềm MIT dưới dạng phần mềm GPL. Giấy phép MIT cũng cho phép người dùng tái cấp phép phần mềm của họ dưới dạng phần mềm độc quyền, đó là điểm khác biệt của nó với giấy phép phần mềm copyleft.
  • Giấy phép Công cộng GNU (GPL) 2.0./3.0.: Bất kỳ ai viết mã phần mềm theo GPL cũng phải phát hành dưới dạng mã nguồn mở. Người dùng phải chia sẻ mã nguồn đầy đủ và tất cả các quyền để sửa đổi và chia sẻ tất cả mã.
  • Giấy phép Apache 2.0: Giấy phép này có các quy tắc chặt chẽ hơn, đặc biệt là khi phân phối lại. Nếu bạn cấp giấy phép Apache, bạn có thể tự do sử dụng, sửa đổi và chia sẻ mã phần mềm. Nếu người dùng muốn phân phối lại mã dẫn xuất, họ phải cung cấp các tuyên bố rõ ràng để nói rằng các tệp đã được sửa đổi.
  • Giấy phép Phát triển và Phân phối Chung 1.0 (CDDL-1.0): Bất kỳ người dùng nào sở hữu CDDL đều có thể sao chép và phân phối bất kỳ tác phẩm gốc hoặc tác phẩm phái sinh nào. Tuy nhiên, sau đó họ không thể tiếp tục đăng ký bản quyền, nhãn hiệu hoặc thay đổi bằng sáng chế. Các nhà phát triển phải cung cấp bất kỳ phiên bản sửa đổi nào của mã nguồn theo CDDL.

Danh mục cuối cùng là giấy phép BSD. Giấy phép BSD đặt ra ít hạn chế hơn đối với các nhà phát triển của nó, mặc dù vẫn còn tranh cãi về việc liệu điều này có làm cho phần mềm trở nên tự do hơn hay không.

Sự khác biệt chính với giấy phép BSD là người dùng được phép sử dụng và thao tác với mã nguồn của chương trình, nhưng sau đó họ không bắt buộc phải chia sẻ lại các thay đổi của mình cho cộng đồng. Điều này có nghĩa là họ có thể giữ bất kỳ cải tiến nào vì lợi ích cá nhân và tiếp thị sản phẩm mới theo giấy phép thương mại. Mặc dù loại giấy phép này mang lại cho nhà phát triển nhiều tự do hơn, nhưng nhiều người ủng hộ triết lý nguồn mở cảm thấy rằng điều này đi ngược lại đặc tính của sáng kiến.

Nguồn mở Vs Phần mềm cấp phép miễn phí

Chúng ta thường nghe thấy phần mềm nguồn mở được sử dụng thay thế cho phần mềm có giấy phép miễn phí. Cả hai phần lớn giống nhau, mặc dù các tiêu chí PMNM do Sáng kiến ​​nguồn mở đưa ra gần mười năm sau phần mềm giấy phép tự do và nhấn mạnh hơn vào các thay đổi đối với phần mềm. Một quan niệm sai lầm phổ biến là phần mềm có giấy phép miễn phí hoặc phần mềm nguồn mở đề cập đến giá và do đó miễn phí. Mặc dù nhiều giải pháp miễn phí, nhưng đó không phải là điều kiện và có nhiều giải pháp phần mềm hệ điều hành phải trả phí.

Ưu điểm của mô hình mã nguồn mở

Nhiều người, cả cá nhân và doanh nghiệp, thích sử dụng phần mềm nguồn mở hơn phần mềm thương mại hoặc sở hữu độc quyền. Có một số lý do cho việc này, bao gồm:

  • Phần lớn là miễn phí – các ước tính cho thấy phần mềm mã nguồn mở cùng nhau tiết kiệm cho các doanh nghiệp gần 50 tỷ bảng Anh mỗi năm. Các công ty được hưởng lợi từ việc cung cấp nguồn mở cho các sáng tạo của họ, vì họ có thể hưởng lợi từ những thay đổi, cập nhật và cải tiến do các lập trình viên giỏi nhất thế giới trên toàn thế giới thực hiện mà không phải trả một xu nào.
  • Tính linh hoạt – sử dụng phần mềm mã nguồn mở có nghĩa là bạn không bị khóa trong việc sử dụng hệ thống của một nhà cung cấp cụ thể vốn chỉ hoạt động với các hệ thống khác của họ. Bạn có thể điều chỉnh nó theo nhu cầu của mình và sử dụng nó cùng với các sản phẩm của các nhà cung cấp khác.
  • Bảo mật – nhiều người thích làm việc với phần mềm nguồn mở vì tính minh bạch mà nó mang lại. Kể từ khi nguồn được cung cấp công khai, hàng ngàn lập trình viên không ngừng nghiên cứu, kiểm tra và xem xét mã. Điều này có nghĩa là sẽ có ít chỗ cho lỗi hơn – cần phải có người phát hiện ra những thiếu sót hoặc lỗi và sửa chữa hoặc loại bỏ chúng.
  • Phát triển nhanh – Phần mềm thường không chỉ phát triển nhanh hơn khi là mã nguồn mở mà còn phát triển  nhanh hơn  . Việc không phải xin phép tác giả ban đầu để thay đổi phần mềm có nghĩa là quá trình phát triển diễn ra nhanh hơn.
  • Cộng đồng – phần mềm mã nguồn mở đại diện cho một triết lý. PMNM truyền cảm hứng cho sự hợp tác từ cộng đồng người dùng và nhà phát triển trên khắp thế giới để làm cho phần mềm trở nên tốt nhất có thể.
  • Giáo dục – thúc đẩy việc trao đổi kiến ​​thức này cũng làm cho ngành dễ tiếp cận hơn với những người muốn tìm hiểu về viết mã và lập trình. Phần mềm mã nguồn mở cung cấp một nguồn tài nguyên khổng lồ, ngày càng tăng cho các lập trình viên và lập trình viên, cho phép nhiều người hơn nữa trở thành những nhà phát triển và đổi mới phần mềm lành nghề.
  • Tính ổn định – việc một công ty đặt phần mềm và hoạt động của họ trên phần mềm nguồn mở cũng thường ổn định hơn nhiều. Vì rất nhiều nhà phát triển và lập trình viên liên tục cập nhật phần mềm này trong phạm vi công cộng nên ít có khả năng phần mềm sẽ ngừng khả dụng, khiến nó trở thành một lựa chọn đáng tin cậy cho các sản phẩm dài hạn.

Nhược điểm của mô hình mã nguồn mở

Trong khi những lợi ích của phần mềm mã nguồn mở là đáng kể, có một vài nhược điểm cần xem xét:

  • Không quá ‘thân thiện với người dùng’ – vì không có yêu cầu tạo ra một sản phẩm thương mại sẽ bán và tạo ra tiền, phần mềm nguồn mở có thể có xu hướng phát triển phù hợp hơn với mong muốn của nhà phát triển hơn là nhu cầu của người dùng cuối. Do đó, phần mềm thường khó sử dụng hơn và kém thân thiện hơn do các nhà phát triển ít chú ý đến giao diện người dùng.
  • Nếu bạn là một doanh nghiệp nhỏ sử dụng phần mềm của mình dựa trên phần mềm nguồn mở, hãy nhớ rằng sẽ không có ai giúp bạn nếu có sự cố xảy ra. Phần mềm nguồn mở có xu hướng dựa vào cộng đồng người dùng của nó để phản hồi và khắc phục sự cố. Mặc dù không thiếu sự trợ giúp sẵn có trong cộng đồng rộng lớn hơn, nhưng bạn có thể phải trả giá cho sự hỗ trợ từ bên ngoài và có thể mất nhiều thời gian hơn so với thời gian bạn trả cho phần mềm theo giấy phép thương mại.
  • Mặc dù có một hệ thống mở có nghĩa là có nhiều người xác định lỗi và sửa chúng, nhưng điều đó cũng có nghĩa là những người dùng ác ý có thể nhìn thấy nó và khai thác bất kỳ lỗ hổng nào.

Tại sao làm cho phần mềm nguồn mở?

Công nghệ không ngừng phát triển, cập nhật và thích nghi để phù hợp hơn với nhu cầu hàng ngày của chúng ta. Công cụ trí tuệ nhân tạo sáng tạo của Google, Tensorflow, là công nghệ đằng sau các công cụ nâng cao nhận dạng lời nói và tìm kiếm hình ảnh. Vậy tại sao Google tạo mã nguồn mở Tensorflow vào năm 2015?

Câu trả lời đơn giản là càng nhiều cái đầu cùng nhau thì càng tiến bộ. Họ hy vọng rằng bằng cách mở bảng cho các nhà phát triển khác, họ có thể tạo ra phần mềm phù hợp hơn với nhu cầu của họ. Hơn 1.300 nhà phát triển bên ngoài hiện đã làm việc trên TensorFlow. Sự hợp tác này có nghĩa là nó hiện là một trong những khuôn khổ tiêu chuẩn được sử dụng để phát triển các ứng dụng AI, sẽ hỗ trợ các dịch vụ AI được lưu trữ trên đám mây của riêng Google, do đó hoàn thành vòng kết nối. Bằng cách công khai mã, Google đã đảm bảo rằng họ có thể hưởng lợi từ phần mềm tốt hơn sẽ tiếp tục phát triển.

Việc mở rộng phần mềm ra công chúng cũng mang lại hiệu quả quảng cáo tốt. Khi Google phát hành TensorFlow, nó đã tạo ra sự quan tâm đáng kể đối với phần mềm, hiện được Dropbox và Airbnb sử dụng. Nhìn chung, việc đóng góp cho phần mềm nguồn mở mang lại lợi ích chung cho tất cả các bên tham gia, đảm bảo rằng không bên nào bỏ lỡ những cải tiến mới nhất.

Điều quan trọng cần nhớ là mỗi công ty thao túng mã nguồn cho mục đích sử dụng của riêng họ. Ý tưởng không phải là sao chép và tư nhân hóa cùng một thiết kế, mà là chia sẻ kiến ​​thức cơ bản để tạo ra các giải pháp khác nhau cho các mục đích khác nhau, đồng thời hưởng lợi từ kinh nghiệm, kiến ​​thức chuyên môn và cải tiến của những người khác. Mô hình phát triển nguồn mở khuyến khích cộng tác mở, được hỗ trợ bởi sản xuất ngang hàng, vì lợi ích của hàng triệu người dùng trên toàn thế giới.

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

Khi phần mềm còn sơ khai, người ta thường chia sẻ phần mềm và mã nguồn, đặc biệt là trong các trường đại học hoặc tổ chức nghiên cứu. Nhưng vào năm 1974, Ủy ban Hoa Kỳ về Sử dụng Công nghệ Mới đối với Tác phẩm có Bản quyền (CONTU) đã tuyên bố phần mềm có bản quyền. Do đó, phần mềm đã được trao trạng thái giống như các tác phẩm văn học, điều này đã bắt đầu cấp phép cho phần mềm. Kể từ đó trở đi, việc mua phần mềm không có nghĩa là bạn có thể sử dụng mã nguồn, hoặc thậm chí xem nó, chứ chưa nói đến việc thao túng nó để bạn sử dụng hoặc phân phối nó.

Sự thay đổi này đã lấy đi sự hợp tác mà nhiều nhà phát triển phần mềm rất thích. Năm 1983, một người đàn ông tên là Richard Stallman đã phát hành một giải pháp thay thế miễn phí cho hệ điều hành phổ biến lúc bấy giờ, Unix, đặt tên cho phiên bản miễn phí là GNU. GNU là một nỗ lực nhằm mang lại sự cộng tác cởi mở giữa các nhà phát triển và anh ấy đã phát hành mã của mình theo Giấy phép Công cộng GNU, được gọi là GPL, cho phép người dùng tự do sử dụng mã.

GPL rất quan trọng trong việc thiết lập một nền văn hóa hợp tác mới, vì giấy phép cũng quy định rằng tất cả các sản phẩm phái sinh của mã gốc cũng phải duy trì theo giấy phép GPL, giữ mã trong phạm vi công cộng. Vào cuối những năm 90, nhiều công ty và lập trình viên đã thúc đẩy một phong trào tương tự với sự nhấn mạnh nhiều hơn vào tiềm năng kinh doanh của việc chia sẻ và cộng tác trên mã phần mềm, sử dụng thuật ngữ nguồn mở.

Suy nghĩ cuối cùng và câu hỏi thường gặp

Cho dù bạn là người khởi nghiệp, một doanh nghiệp đáng gờm hay chỉ là một cá nhân, phần mềm nguồn mở có thể là một giải pháp sáng tạo, hiệu quả về chi phí cho tất cả các nhu cầu trực tuyến, PC hoặc doanh nghiệp của bạn. Đặc tính hợp tác của phần mềm HĐH có nghĩa là người dùng có quyền truy cập vào các cải tiến mới nhất, cho phép ngay cả những doanh nghiệp nhỏ nhất tích hợp các giải pháp phần mềm tiên tiến mà không phải trả tiền cho phần mềm độc quyền đắt tiền.

Mã nguồn là gì?

Về cơ bản, mã nguồn tạo thành cơ sở của tất cả các chương trình. Đó là văn bản đơn giản, lập trình có thể đọc được, cung cấp hướng dẫn cho máy tính. Bằng cách kiểm tra mã nguồn của phần mềm, bạn có thể tìm hiểu về cách thức hoạt động của nó. Sau đó, các nhà phát triển có thể sử dụng mã nguồn này để viết thêm mã và lập trình máy tính để thực hiện các hành động khác.

Một số lập trình viên nổi tiếng đã sớm ủng hộ sáng kiến ​​​​này và làm theo tấm gương của Stallman, một trong những người đáng chú ý nhất là Linus Torvalds, người chủ mưu đằng sau hệ điều hành Linux. Theo IDC , Linux đã hình thành nền tảng cho Android, hệ điều hành ngày nay chiếm hơn 86% điện thoại thông minh trên toàn thế giới   . Giấy phép nguồn mở của nó có nghĩa là bất kỳ ai cũng có thể xem, sửa đổi và chia sẻ mã đằng sau phần lớn điện thoại thông minh. Do đó, không có gì ngạc nhiên khi hơn 15.000 lập trình viên trên toàn thế giới tham gia bảo trì Android.

Leave a Comment