Nguồn mở là gì?

Nguồn mở là một mô hình sản xuất phi tập trung cho phép mọi cá nhân sửa đổi và chia sẻ công nghệ nhờ thiết kế cho phép truy cập công khai. Thuật ngữ này bắt nguồn từ ngữ cảnh phát triển phần mềm nhằm biểu thị phần mềm tuân thủ một số tiêu chí phân phối miễn phí nhất định. Ngày nay, thuật ngữ phương pháp nguồn mở chỉ định một tập giá trị rộng hơn dựa trên các nguyên tắc trao đổi thông tin, xây dựng nguyên mẫu nhanh chóng và hợp tác phát triển tự do. Mọi cá nhân đều có thể đóng góp những ý tưởng mới và cải thiện công nghệ thêm nữa để nguồn mở có thể phát triển tự nhiên.

Tại sao nguồn mở lại quan trọng?

Ý tưởng về nguồn mở xuất hiện từ cộng đồng công nghệ. Quá trình đổi mới công nghệ cần có sự hợp tác toàn cầu để phát triển. Ví dụ: giả sử một đội ngũ lập trình tại Hoa Kỳ phát triển được công nghệ nguồn mở mới dành cho một ứng dụng tài chính. Một đội ngũ lập trình khác tại Úc điều chỉnh công nghệ này, thêm tính năng mới phù hợp hơn dành cho lĩnh vực y tế. Sau đó, đội ngũ thứ ba tại Châu Á phát triển các sản phẩm nguồn mở mới dùng công nghệ gốc đó làm thành phần cốt lõi.

Việc chia sẻ kiến thức và đổi mới nhờ công sức của tập thể như vậy mang lại lợi ích cho cả cộng đồng. Lấy bằng sáng chế, bản quyền và giấy phép đắt đỏ để ràng buộc công nghệ làm giới hạn khả năng phát triển. Trong vài thập kỷ qua, nhiều dự án nguồn mở nổi tiếng đã mở đường cho sự phát triển công nghệ nhanh chóng trên toàn thế giới.

Nguồn mở có những nguyên tắc nào?

Mọi dự án nguồn mở đều có những nguyên tắc cốt lõi như sau:

Cộng đồng

Cộng đồng nguồn mở là một nhóm người tập hợp lại với nhau để đạt được mục đích chung. Giá trị và mục tiêu chung của họ giúp dẫn lối để ra quyết định và thúc đẩy dự án nguồn mở phát triển.

Tính minh bạch

Các dự án nguồn mở đảm bảo mọi người trong cộng đồng có quyền truy cập vào thông tin và tài liệu cần thiết để làm việc với kết quả tốt nhất. Nhờ nhận thức được bức tranh toàn cảnh, các thành viên của nhóm có thể ra quyết định hiệu quả hơn và xây dựng dựa trên các ý tưởng và khám phá của nhau.

Cộng tác mở

Các dự án cộng đồng khuyến khích làm việc nhóm, do đó một nhóm có thể giải quyết vấn đề mà cá nhân không thể giải quyết được. Ví dụ: thành viên thuộc sáng kiến nguồn mở bất kỳ đóng góp những thay đổi nhằm cải thiện dự án của người khác. Bạn có thể thiết lập những quy tắc để người khác có thể sửa đổi giải pháp khi cần trong tương lai.

Xây dựng nguyên mẫu nhanh chóng

Dự án nguồn mở tuân theo phương pháp tiếp cận lặp lại, trong đó các thành viên nhóm sẽ tạo và chia sẻ nguyên mẫu theo định kỳ thường xuyên. Việc xây dựng nguyên mẫu nhanh chóng sẽ khuyến khích văn hóa thử nghiệm. Bạn có thể cải thiện và tiếp tục áp dụng những thay đổi có hiệu quả và loại bỏ những thay đổi không hiệu quả.

Chế độ nhân tài bao hàm mọi người

Phong trào nguồn mở khuyến khích nên có nhiều cuộc trò chuyện và góc nhìn đa dạng. Cộng đồng ra quyết định thông qua sự nhất trí nhưng cũng ưu tiên sự thành công. Cộng đồng nguồn mở sẽ ủng hộ và góp sức cho ý tưởng phù hợp nhất.

 

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

Phần mềm nguồn mở là loại phần mềm có mã nguồn cho phép mọi người kiểm tra, sửa đổi và tăng cường. Mã nguồn là một phần của phần mềm được các lập trình viên máy tính điều chỉnh để thay đổi cách ứng dụng vận hành hoặc để bổ sung các tính năng mới. Bất cứ ai có quyền truy cập vào mã nguồn của phần mềm đều có thể cải tiến và tùy chỉnh ứng dụng bằng cách bổ sung các tính năng hoặc khắc phục các lỗi hiện có. Phần mềm nguồn mở xuất hiện trong hầu hết các ứng dụng web và thiết bị bạn sử dụng ngày nay. Một số ví dụ về phần mềm nguồn mở gồm có Linux, một hệ điều hành nguồn mở, cùng Mozilla Firefox, một trình duyệt Internet nguồn mở.

Phần mềm nguồn mở có những đặc điểm gì?

Đặc điểm của bất kỳ phần mềm nguồn mở nào cũng được điều chỉnh phù hợp với giá trị của phong trào nguồn mở.

Nguồn mở

Phần mềm nguồn mở được phép phát hành khi có giấy phép nguồn mở đáp ứng các tiêu chí phân phối cụ thể, chẳng hạn như:

  • Không áp dụng quy định hạn chế đối với việc bán hoặc cho tặng phần mềm khi đó là một thành phần của phần phân phối phần mềm toàn thể
  • Phải bao hàm và cho phép phân phối mã nguồn
  • Phải cho phép sửa đổi và phát triển thêm dựa trên sản phẩm đó
  • Quyền kèm theo chương trình phải được áp dụng đối với tất cả mọi người mà không có sự phân biệt đối xử

Thiết kế mở

Thiết kế mở đảm bảo quy trình lên kế hoạch và thiết kế phần mềm phải có tính mở và tính minh bạch. Đây có nghĩa là cho phép cộng đồng thúc đẩy quá trình thiết kế và lộ trình tính năng của phần mềm. Sẽ rất mất thời gian để có được sự nhất trí từ cộng đồng, do đó quá trình này có thể là một thách thức. Tuy nhiên, thiết kế được cộng đồng chấp thuận sẽ cho ra sản phẩm tốt hơn, có khả năng đáp ứng nhu cầu của người dùng hiệu quả hơn.

Phát triển mở

Phát triển mở là việc áp dụng các quy trình phát triển bao hàm mọi người và minh bạch, cho phép ai cũng có thể tham gia như nhau. Dịch vụ cho phép truy cập công khai cung cấp khả năng hiển thị đối với các hoạt động phát triển. Ví dụ: các dự án nguồn mở thường áp dụng một bộ tiêu chuẩn nêu rõ số liệu, cũng chính là tiêu chuẩn đánh giá một đóng góp. Điều này cho phép xem xét tất cả các bản cập nhật phần mềm một cách công bằng, bất kể bản cập nhật đó đến từ người đóng góp lần đầu hay từ nhà phát triển cấp cao.

Cộng đồng mở

Cộng đồng mở đảm bảo rằng cộng đồng phát triển phần mềm là một môi trường bao hàm mọi người, sẵn sàng lắng nghe mọi ý kiến và mọi người đều có quyền xung phong đảm nhiệm vị trí lãnh đạo. Điều này giúp cân bằng yêu cầu cần cả nhà phát triển lẫn người dùng nhờ thiết lập những mục tiêu chung và tạo dựng các liên kết bền vững.

Đâu là sự khác biệt giữa phần mềm nguồn mở và các loại phần mềm khác?

Đôi lúc, tổ chức hoặc người tạo ra phần mềm muốn kiểm soát phần mềm vì lý do thương mại. Họ duy trì quyền sở hữu độc quyền đối với mã nguồn, nghĩa là chỉ riêng họ mới có quyền sửa đổi mã này để sửa lỗi hoặc bổ sung các tính năng mới. Phần mềm như vậy được gọi là phần mềm độc quyền hoặc phần mềm nguồn đóng. Các sản phẩm của Adobe Photoshop và Norton AntiVirus chính là ví dụ của phần mềm độc quyền.

So sánh giữa Phần mềm nguồn mở và Phần mềm nguồn đóng

Giữa phần mềm nguồn mở và phần mềm nguồn đóng, hay phần mềm độc quyền, có ba điểm khác biệt chính như sau:

Độ tin cậy

Phần mềm độc quyền dựa vào một tổ chức hoặc nhà phát triển có khả năng kiểm soát để giúp mã luôn được cập nhật, hoạt động và không xảy ra lỗi. Mặt khác, phần mềm nguồn mở lại được một cộng đồng rộng rãi duy trì. Một số dự án nguồn mở phổ biến có hàng nghìn người đóng góp trên khắp toàn cầu, cũng chính là những người đang kiểm thử toàn diện các thay đổi cũ lẫn mới. Điều này thường giúp tăng độ tin cậy của mã nguồn mở.

Bảo mật

Mọi mã nguồn đều có thể có các khuyết điểm về bảo mật khiến mã nguồn dễ gặp các cuộc tấn công mạng. Tuy nhiên, phần mềm nguồn mở có lợi thế là sửa lỗi nhanh chóng. Khi bạn hoặc thành viên khác trong cộng đồng báo cáo có lỗ hổng bảo mật, các dự án nguồn mở sẽ cho ra mắt một bản cập nhật mã trong vòng một hoặc hai ngày. Nếu công ty thương mại phát triển phần mềm nguồn mở, khả năng hiển thị cao sẽ tạo sự cấp thiết cần phải khắc phục các vấn đề và thậm chí còn có thể tạo ra phần mềm gốc tốt hơn.

Ngược lại, phần mềm độc quyền có các chu kỳ cập nhật dài hơn vì những lý do sau:

  • Nhà cung cấp có thể có ít nhân lực làm việc trong một dự án nhất định.
  • Nhà cung cấp có thể ưu tiên xem xét khía cạnh tài chính hơn là khiếm khuyết về bảo mật.
  • Nhà cung cấp có thể tạm ngưng ra mắt bản cập nhật bảo mật vì họ muốn thêm nhiều thay đổi cùng một gói và cho ra mắt cùng một lần.

Cấp phép

Các công ty thường bán phần mềm nguồn đóng theo một giấy phép độc quyền có nêu rõ cách sử dụng phần mềm được pháp luật cho phép. Không ai có thể xem, chỉnh sửa hay sửa đổi mã độc quyền này khi chưa được phép. Ví dụ: giấy phép độc quyền có thể cho phép cá nhân hoặc doanh nghiệp sử dụng nhưng không được phép bán lại. Giấy phép này cũng có thể ràng buộc bạn trong hợp đồng với nhà cung cấp cụ thể trong khoảng thời gian cố định.
 
Mặt khác, phần mềm nguồn mở có sẵn theo giấy phép nguồn mở, nghĩa là ta có thể sử dụng, sửa đổi và tái phân phối miễn phí phần mềm này. Hợp đồng ràng buộc của nhà cung cấp là không tồn tại hoặc rất linh hoạt. Nhà phát triển có thể tải xuống phần mềm này từ một trang web công khai và xem tất cả mã nguồn mở trên máy tính của mình. Giấy phép nguồn mở cũng cho phép người dùng thực hiện những điều sau:
 
  • Sửa đổi mã nguồn cho các dự án cá nhân.
  • Tái phân phối mã đã sửa đổi nếu người dùng tiếp tục cho phép người khác xem những thay đổi.

Giấy phép phần mềm nguồn mở có những loại nào?

Dù giấy phép nguồn mở có ít quy định hạn chế hơn so với giấy phép độc quyền nhưng cấp độ và phạm vi quyền vẫn sẽ khác nhau tùy loại giấy phép. Sau đây là một số loại giấy phép nguồn mở phổ biến:

Giấy phép miền công cộng

Giấy phép miền công cộng cho biết rằng mọi người đều có thể sửa đổi, sử dụng hoặc thương mại hóa phần mềm mà không bị hạn chế. Trong hầu hết trường hợp, nhà sáng tạo phần mềm nguồn mở miền công cộng tự nguyện hoặc chủ động quyết định không áp đặt bản quyền cho phần mềm này.

Giấy phép cấp phép

Giấy phép nguồn mở cấp phép chứa các yêu cầu tối thiểu đối với cách bạn sửa đổi hoặc phân phối phân mềm. Một số ví dụ về loại giấy phép này bao gồm Giấy phép Apache và giấy phép Phân phối nguồn Berkeley (BSD). Dù phần mềm gốc được áp đặt bản quyền và có nguồn mở, người dùng vẫn có thể thương mại hóa và tái phân phối các phiên bản đã qua sửa đổi.

Giấy phép công cộng hạn chế

Giấy phép công cộng hạn chế (LGPL) cho phép bạn sử dụng những thành phần nguồn mở mà không bị hạn chế. Những thành phần này thường cho phép truy cập dưới dạng các mô-đun mã được gọi là thư viện, mà bạn có thể đưa vào bất cứ mã nào của mình và sử dụng. Nếu bạn sử dụng mã nguồn LGPL trong ứng dụng của mình, bạn có thể thương mại hóa ứng dụng đó. Tuy nhiên, nếu sửa đổi mã LGPL hiện có, bạn sẽ phải tái phân phối theo cùng loại giấy phép một lần nữa.

Giấy phép bản sao cho dùng

Giấy phép bản sao cho dùng là loại giấy phép nguồn mở phổ biến nhất và Giấy phép công cộng (GPL) chính là một ví dụ điển hình. Các điều khoản của giấy phép bản sao cho dùng cố gắng hạn chế việc thương mại hóa:
 
  • Nếu sửa đổi các thành phần của nguồn mở bản sao cho dùng, bạn phải phát hành toàn bộ mã nguồn mới cùng với ứng dụng của mình. Tuy nhiên, bạn không phải thực hiện điều này nếu chỉ sử dụng ứng dụng nội bộ và không bao giờ phát hành công khai.
  • Bạn có thể bán phiên bản sửa đổi GPL của mình, nhưng người mua có thể tái phân phối phiên bản này nếu muốn.
  • Bạn phải ghi nhận đóng góp của tất cả các tác giả xây dựng mã trước đây trong phần thông báo bản quyền mã mới của mình.

Ai là người quản lý phần mềm nguồn mở?

Sáng kiến nguồn mở (OSI) là một tổ chức phi lợi nhuận trên toàn cầu, chuyên hướng dẫn và ủng hộ tất cả các loại phần mềm nguồn mở. Với tư cách là một cơ quan tiêu chuẩn, tổ chức này duy trì Định nghĩa nguồn mở, là tài liệu xác định về mặt pháp lý các điều kiện tạo nên phần mềm nguồn mở bất kỳ.

Bằng cách tuân theo tài liệu Định nghĩa nguồn mở của tổ chức này, bạn có thể nhận được thương hiệu cho giấy phép được OSI thông qua. Thương hiệu này tạo nên sự tin tưởng và khuyến khích người khác đóng góp và cộng tác cùng bạn. OSI duy trì một danh sách gồm các giấy phép được thông qua và phê duyệt các giấy phép mới trong cộng đồng nguồn mở. Tổ chức này cũng quản lý yêu cầu tiêu chuẩn mở đối với phần mềm.

Tiêu chuẩn mở là gì?

Tiêu chuẩn mở là những quy tắc phát triển phần mềm hỗ trợ tính nhất quán và khả năng tương tác trong công nghệ. Ta có thể thoải mái triển khai, áp dụng và cập nhật các tiêu chuẩn này. Kết quả là các tiêu chuẩn này khiến nhiều khía cạnh trong đời sống hàng ngày của chúng ta thêm phần thoải mái và thuận tiện.

Ví dụ: các tiêu chuẩn cho phép tất cả loại máy kết nối với mọi bộ định tuyến không dây. Bạn có thể sử dụng máy tính xách tay để kết nối Internet từ nhà và từ quán cà phê yêu thích của mình bất kể đang dùng bộ định tuyến nào. Nếu không có các tiêu chuẩn, bạn sẽ phải tìm một quán cà phê có bộ định tuyến tương thích với máy tính xách tay của mình đấy!

So sánh giữa nguồn mở và tiêu chuẩn mở

Tiêu chuẩn là những quy tắc, hướng dẫn và thông số kỹ thuật cho quá trình viết một số loại mã nguồn nhất định chứ không phải cho riêng mã đó. Để được phân loại là nguồn mở, tiêu chuẩn phần mềm phải tuân theo những quy tắc nhất định. Ví dụ: nếu bạn yêu cầu công nghệ độc quyền triển khai các tiêu chuẩn nhất định, vậy các tiêu chuẩn đó không phải nguồn mở.

Tại sao phần mềm nguồn mở lại có các phiên bản thương mại?

Các nhà sáng tạo và công ty khác kiếm tiền từ nhiều dự án nguồn mở bằng cách bán tiện ích bổ sung, chẳng hạn như phân tích và bảo mật, thu hút các doanh nghiệp lớn hơn. Các công ty tư nhân có thể thương mại hóa mọi phần mềm trong miền công cộng bằng cách đưa các phần mềm nguồn mở này vào trong mã ứng dụng của họ. Họ cũng có thể cho ra mắt các phiên bản khác nhau của cùng phần mềm đấy theo các giấy phép khác nhau.

Ví dụ: giả sử một công ty cho ra mắt một hệ thống quản lý cơ sở dữ liệu theo cả Giấy phép công cộng (GPL) và giấy phép độc quyền. Mọi người đều có thể sử dụng phiên bản GPL này để phát triển phần mềm, miễn là họ làm mã mới là nguồn mở. Ngược lại, phiên bản độc quyền cung cấp các dịch vụ phần mềm bổ sung, chẳng hạn như sau:

  • Dịch vụ cơ sở dữ liệu được quản lý toàn phần
  • Dịch vụ sao lưu dữ liệu cấp doanh nghiệp
  • Tính năng mã hóa bảo mật bổ sung
 
Bạn có thể mua phần mềm thương mại để sử dụng nội bộ hoặc trả thêm phí để sử dụng phần mềm này trong các sản phẩm và dịch vụ của mình.

Phần mềm nguồn mở có giống với phần mềm miễn phí không?

Thuật ngữ phần mềm miễn phí đề cập đến một phong trào xã hội, cũng được gọi là phong trào phần mềm miễn phí, hướng đến việc đạt được và bảo đảm được một số quyền tự do nhất định cho người dùng phần mềm. Phong trào này diễn ra để đảm bảo rằng người dùng có quyền tự do thực hiện những điều sau:

  • Chạy phần mềm.
  • Nghiên cứu phần mềm.
  • Sửa đổi phần mềm.
  • Chia sẻ các bản sao của phần mềm.
 
Phong trào nguồn mở bắt nguồn từ phong trào phần mềm miễn phí, diễn ra vào đầu những năm 1980. Một số nhóm muốn tập trung vào các ứng dụng công nghệ thực tiễn. Họ cảm thấy thuật ngữ phần mềm miễn phí chưa được rõ ràng và không khuyến khích doanh nghiệp áp dụng. Họ đề xuất thuật ngữ nguồn mở và về sau phổ biến cũng như chuẩn hóa thuật ngữ này bằng cách xây dựng Sáng kiến nguồn mở (OSI).

So sánh giữa phần mềm nguồn mở và phần mềm miễn phí

Ngày nay, phần mềm miễn phí đề cập đến giấy phép nguồn mở trong miền công cộng. Không giống như trong phong trào phần mềm miễn phí, phần mềm nguồn mở giờ đây bao hàm nhiều loại giấy phép và có thể áp đặt một số quy định hạn chế đối với người dùng. Tốt hơn nên gọi phần mềm miễn phí là phần mềm miền công cộng bởi thuật ngữ freeware (phần mềm không mất phí) và free software (phần mềm miễn phí) đều được dùng tương đương nhau.

So sánh giữa phần mềm nguồn mở và phần mềm không mất phí

Thuật ngữ phần mềm không mất phí hiểu đơn giản là một sản phẩm thương mại khác, được cung cấp miễn phí trong thời gian giới hạn. Phần mềm không mất phí cũng có thể là phiên bản dùng thử miễn phí hoặc phiên bản giới hạn tính năng của một sản phẩm yêu cầu phí đăng ký. Kể cả khi có quyền truy cập vào phần mềm không mất phí, bạn vẫn sẽ không có quyền bán lại, chia sẻ hoặc sửa đổi phần mềm đó dưới bất cứ hình thức nào.

AWS đóng góp như thế nào cho phần mềm nguồn mở?

Tại AWS, chúng tôi tin rằng nguồn mở phù hợp cho mọi người. Chúng tôi cam kết cung cấp giá trị của nguồn mở đến với khách hàng và khả năng vận hành xuất sắc của AWS đến với các cộng đồng nguồn mở. Các kỹ sư của AWS thường xuyên phát triển phần mềm nguồn mở và đóng góp cho hàng nghìn cộng đồng nguồn mở trên GitHub, Apache, Linux Foundation, v.v. Chúng tôi hỗ trợ nguồn mở bằng một số cách khác sau đây:

  • Chúng tôi đã làm việc cật lực nhằm đảm bảo khách hàng có thể triển khai và đưa vào vận hành phần mềm nguồn mở ưa thích của họ trên đám mây. AWS hỗ trợ nhiều công nghệ nguồn mở hơn các nhà cung cấp đám mây khác.
  • Chúng tôi có nhiều dự án lâu dài trong cộng đồng nguồn mở. Chúng tôi không ngừng đóng góp các bản sửa lỗi, bảo mật, hiệu năng, khả năng điều chỉnh quy mô và cải thiện tính năng cho những dự án này.
  • Chúng tôi hợp tác chặt chẽ với các công ty nguồn mở hàng đầu – từ HashiCorp cho đến MongoDB, Confluent, Red Hat – và hỗ trợ họ vượt ngưỡng mong đợi của khách hàng.

Tìm hiểu thêm về các dự án nguồn mở của chúng tôi tại Nguồn mở tại AWS hoặc khám phá hơn 1200 dự án nguồn mở do Amazon dẫn dắt trên GitHub.

Bắt đầu sử dụng nguồn mở trên AWS bằng cách tạo tài khoản miễn phí ngay hôm nay.

Các bước tiếp theo trên AWS

Tham khảo các tài nguyên bổ sung liên quan đến sản phẩm
Tìm hiểu thêm về nguồn mở 
Dịch vụ AWS bậc miễn phí

Xem dịch vụ AWS bậc miễn phí

Xem dịch vụ miễn phí 
Bắt đầu xây dựng trong bảng điều khiển

Bắt đầu xây dựng với AWS trên Bảng điều khiển quản lý AWS.

Đăng nhập