Thuật ngữ nguồn mở đề cập đến thứ mà mọi người có thể sửa đổi và chia sẻ vì thiết kế của nó có thể truy cập công khai.
Thuật ngữ này bắt nguồn từ bối cảnh phát triển phần mềm để chỉ định một cách tiếp cận cụ thể để tạo các chương trình máy tính. Tuy nhiên, ngày nay, “nguồn mở” chỉ định một tập hợp rộng hơn các giá trị, cái mà chúng tôi gọi là “cách thức mã nguồn mở“. Các dự án, sản phẩm hoặc sáng kiến nguồn mở nắm bắt và tôn vinh các nguyên tắc trao đổi mở, tham gia hợp tác, tạo nguyên mẫu nhanh, minh bạch, trọng dụng nhân tài và phát triển hướng tới cộng đồng.
Phần mềm mã nguồn mở là gì?
Phần mềm nguồn mở là phần mềm có mã nguồn mà bất kỳ ai cũng có thể kiểm tra, sửa đổi và nâng cao.
“Mã nguồn” là một phần của phần mềm mà hầu hết người dùng máy tính không bao giờ nhìn thấy; đó là mã mà các lập trình viên máy tính có thể thao tác để thay đổi cách một phần mềm—một “chương trình” hoặc “ứng dụng”—hoạt động. Các lập trình viên có quyền truy cập vào mã nguồn của chương trình máy tính có thể cải thiện chương trình đó bằng cách thêm các tính năng vào chương trình đó hoặc sửa các phần không phải lúc nào cũng hoạt động chính xác.
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 là gì?
Một số phần mềm có mã nguồn mà chỉ người, nhóm hoặc tổ chức đã tạo ra nó và duy trì quyền kiểm soát độc quyền đối với nó—mới có thể sửa đổi. Người ta gọi loại phần mềm này là phần mềm “độc quyền” hay phần mềm “nguồn đóng”.
Chỉ tác giả gốc của phần mềm độc quyền mới có thể sao chép, kiểm tra và thay đổi phần mềm đó một cách hợp pháp. Và để sử dụng phần mềm độc quyền, người dùng máy tính phải đồng ý (thường bằng cách ký giấy phép hiển thị trong lần đầu tiên họ chạy phần mềm này) rằng họ sẽ không làm bất cứ điều gì với phần mềm mà tác giả của phần mềm không cho phép rõ ràng. Microsoft Office và Adobe Photoshop là những ví dụ về phần mềm độc quyền.
Phần mềm mã nguồn mở thì khác. Các tác giả của nó cung cấp mã nguồn của nó cho những người muốn xem mã đó, sao chép nó, học hỏi từ nó, thay đổi nó hoặc chia sẻ nó. LibreOffice và Chương trình thao tác hình ảnh GNU là những ví dụ về phần mềm nguồn mở.
Như họ làm với phần mềm độc quyền, người dùng phải chấp nhận các điều khoản của giấy phép khi họ sử dụng phần mềm nguồn mở—nhưng các điều khoản pháp lý của giấy phép nguồn mở khác biệt đáng kể so với các điều khoản của giấy phép độc quyền.
Giấy phép nguồn mở ảnh hưởng đến cách mọi người có thể sử dụng, nghiên cứu, sửa đổi và phân phối phần mềm. Nói chung, giấy phép nguồn mở cấp cho người dùng máy tính quyền sử dụng phần mềm nguồn mở cho bất kỳ mục đích nào họ muốn. Một số giấy phép nguồn mở—cái mà một số người gọi là giấy phép “copyleft”—quy định rằng bất kỳ ai phát hành chương trình nguồn mở đã sửa đổi cũng phải phát hành mã nguồn cho chương trình đó cùng với nó. Hơn nữa, một số giấy phép nguồn mở quy định rằng bất kỳ ai thay đổi và chia sẻ chương trình với người khác cũng phải chia sẻ mã nguồn của chương trình đó mà không tính phí cấp phép cho nó.
Theo thiết kế, các giấy phép phần mềm nguồn mở khuyến khích cộng tác và chia sẻ vì chúng cho phép những người khác thực hiện các sửa đổi đối với mã nguồn và kết hợp những thay đổi đó vào các dự án của riêng họ. Họ khuyến khích các lập trình viên máy tính truy cập, xem và sửa đổi phần mềm nguồn mở bất cứ khi nào họ muốn, miễn là họ cho phép những người khác làm điều tương tự khi họ chia sẻ công việc của mình.
Có phải phần mềm nguồn mở chỉ quan trọng đối với các lập trình viên máy tính?
Không. Công nghệ mã nguồn mở và tư duy mã nguồn mở đều có lợi cho cả lập trình viên và những người không phải lập trình viên.
Bởi vì các nhà phát minh ban đầu đã tự xây dựng phần lớn Internet trên các công nghệ nguồn mở—như hệ điều hành Linux và ứng dụng máy chủ Web Apache—bất kỳ ai sử dụng Internet ngày nay đều được hưởng lợi từ phần mềm nguồn mở.
Mỗi khi người dùng máy tính xem các trang web, kiểm tra email, trò chuyện với bạn bè, phát nhạc trực tuyến hoặc chơi trò chơi điện tử nhiều người chơi, máy tính, điện thoại di động hoặc bảng điều khiển trò chơi của họ sẽ kết nối với mạng máy tính toàn cầu bằng phần mềm mã nguồn mở để định tuyến và truyền dữ liệu của họ. dữ liệu đến các thiết bị “cục bộ” mà họ có trước mặt. Các máy tính thực hiện tất cả công việc quan trọng này thường được đặt ở những nơi xa mà người dùng không thực sự nhìn thấy hoặc không thể truy cập trực tiếp—đó là lý do tại sao một số người gọi những máy tính này là “máy tính từ xa”.
Ngày càng có nhiều người dựa vào các máy tính từ xa khi thực hiện các tác vụ mà lẽ ra họ có thể thực hiện trên các thiết bị cục bộ của mình. Ví dụ: họ có thể sử dụng phần mềm xử lý văn bản, quản lý email và chỉnh sửa hình ảnh trực tuyến mà họ không cài đặt và chạy trên máy tính cá nhân của mình. Thay vào đó, họ chỉ cần truy cập các chương trình này trên máy tính từ xa bằng cách sử dụng trình duyệt Web hoặc ứng dụng điện thoại di động. Khi họ làm điều này, họ đang tham gia vào “máy tính từ xa”.
Một số người gọi điện toán từ xa là “điện toán đám mây” vì nó liên quan đến các hoạt động (như lưu trữ tệp, chia sẻ ảnh hoặc xem video) kết hợp không chỉ các thiết bị cục bộ mà cả một cũng là một mạng toàn cầu gồm các máy tính từ xa tạo thành một “bầu không khí” xung quanh chúng.
Điện toán đám mây là một khía cạnh ngày càng quan trọng trong cuộc sống hàng ngày với các thiết bị kết nối Internet. Một số ứng dụng điện toán đám mây, như Google Apps, là độc quyền. Những thứ khác, như ownCloud và Nextcloud, là mã nguồn mở.
Các ứng dụng điện toán đám mây chạy “nằm trên” thêm phần mềm giúp chúng hoạt động trơn tru và hiệu quả, nên người ta sẽ thường nói phần mềm chạy “nằm dưới” các ứng dụng điện toán đám mây đóng vai trò là “nền tảng” cho các ứng dụng đó. Nền tảng điện toán đám mây có thể là nguồn mở hoặc nguồn đóng. OpenStack là một ví dụ về nền tảng điện toán đám mây mã nguồn mở.
Tại sao mọi người thích sử dụng phần mềm mã nguồn mở?
Mọi người thích phần mềm nguồn mở hơn phần mềm độc quyền vì một số lý do, bao gồm:
Điều khiển. Nhiều người thích phần mềm nguồn mở hơn vì họ có nhiều quyền kiểm soát hơn đối với loại phần mềm đó. Họ có thể kiểm tra mã để đảm bảo mã không làm bất cứ điều gì họ không muốn và họ có thể thay đổi các phần mà họ không thích. Những người dùng không phải là lập trình viên cũng được hưởng lợi từ phần mềm nguồn mở, bởi vì họ có thể sử dụng phần mềm này cho bất kỳ mục đích nào họ muốn—không chỉ theo cách mà người khác nghĩ rằng họ nên làm.
Đào tạo. Những người khác thích phần mềm mã nguồn mở vì nó giúp họ trở thành những lập trình viên giỏi hơn. Vì mã nguồn mở có thể truy cập công khai nên sinh viên có thể dễ dàng nghiên cứu nó khi họ học cách tạo ra phần mềm tốt hơn. Học sinh cũng có thể chia sẻ công việc của mình với những người khác, mời bình luận và phê bình, khi họ phát triển kỹ năng của mình. Khi mọi người phát hiện ra những sai lầm trong mã nguồn của chương trình, họ có thể chia sẻ những sai lầm đó với những người khác để giúp họ tránh mắc phải những sai lầm tương tự.
Bảo vệ. Một số người thích phần mềm nguồn mở vì họ cho rằng nó an toàn và ổn định hơn phần mềm độc quyền. Bởi vì bất kỳ ai cũng có thể xem và sửa đổi phần mềm nguồn mở, nên ai đó có thể phát hiện và sửa các lỗi hoặc thiếu sót mà các tác giả ban đầu của chương trình có thể đã bỏ sót. Và bởi vì rất nhiều lập trình viên có thể làm việc trên một phần mềm nguồn mở mà không cần xin phép tác giả gốc, nên họ có thể sửa chữa, cập nhật và nâng cấp phần mềm nguồn mở nhanh hơn so với phần mềm sở hữu độc quyền.
Sự ổn định. Nhiều người dùng thích phần mềm mã nguồn mở hơn phần mềm độc quyền cho các dự án dài hạn, quan trọng. Bởi vì các lập trình viên phân phối công khai mã nguồn cho phần mềm nguồn mở, người dùng dựa vào phần mềm đó để thực hiện các tác vụ quan trọng có thể chắc chắn rằng công cụ của họ sẽ không biến mất hoặc rơi vào tình trạng hư hỏng nếu người tạo ban đầu của họ ngừng làm việc với chúng. Ngoài ra, phần mềm nguồn mở có xu hướng kết hợp và vận hành theo các tiêu chuẩn mở.
Cộng đồng. Phần mềm nguồn mở thường truyền cảm hứng cho một cộng đồng người dùng và nhà phát triển hình thành xung quanh nó. Điều đó không phải là duy nhất đối với nguồn mở; nhiều ứng dụng phổ biến là chủ đề của các cuộc gặp gỡ và nhóm người dùng. Nhưng trong trường hợp mã nguồn mở, cộng đồng không chỉ là một nhóm người hâm mộ ủng hộ (về tình cảm hoặc tài chính) cho một nhóm người dùng ưu tú; đó là những người sản xuất, thử nghiệm, sử dụng, quảng cáo và cuối cùng ảnh hưởng đến phần mềm mà họ yêu thích.
Có phải “nguồn mở” chỉ có nghĩa là miễn phí không?
Không. Đây là một quan niệm sai lầm phổ biến về ý nghĩa của “nguồn mở” và ý nghĩa của khái niệm này không chỉ là kinh tế.
Các lập trình viên phần mềm nguồn mở có thể tính tiền cho phần mềm nguồn mở mà họ tạo ra hoặc đóng góp cho phần mềm đó. Nhưng trong một số trường hợp, vì giấy phép nguồn mở có thể yêu cầu họ phát hành mã nguồn của họ khi họ bán phần mềm cho người khác, một số lập trình viên nhận thấy rằng việc tính phí người dùng cho các dịch vụ và hỗ trợ phần mềm (hơn là cho chính phần mềm) sẽ sinh lợi hơn. Bằng cách này, phần mềm của họ vẫn miễn phí và họ kiếm tiền khi giúp người khác cài đặt, sử dụng và khắc phục sự cố.
Trong khi một số phần mềm nguồn mở có thể miễn phí, thì kỹ năng lập trình và khắc phục sự cố phần mềm nguồn mở có thể khá có giá trị. Nhiều nhà tuyển dụng đặc biệt tìm cách thuê các lập trình viên có kinh nghiệm làm việc trên phần mềm nguồn mở.
Nguồn mở “ngoài phần mềm” là gì?
Tại itman.asia, chúng tôi muốn nói rằng chúng tôi quan tâm đến cách áp dụng các nguyên tắc và giá trị nguồn mở cho thế giới bên ngoài phần mềm. Chúng tôi thích nghĩ về nguồn mở không chỉ là một cách để phát triển và cấp phép cho phần mềm máy tính, mà còn là một thái độ.
Tiếp cận tất cả các khía cạnh của cuộc sống “theo cách nguồn mở” có nghĩa là thể hiện sự sẵn sàng chia sẻ, cộng tác với những người khác theo những cách minh bạch (để những người khác cũng có thể xem và tham gia), chấp nhận thất bại như một phương tiện để cải thiện và mong đợi—thậm chí khuyến khích —mọi người khác cũng làm như vậy.
Điều đó cũng có nghĩa là cam kết đóng một vai trò tích cực trong việc cải thiện thế giới, điều này chỉ có thể thực hiện được khi mọi người đều tiếp cận được cách thế giới đó được thiết kế.
Thế giới đầy rẫy “mã nguồn”—bản thiết kế, công thức, quy tắc—hướng dẫn và định hình cách chúng ta suy nghĩ và hành động trong đó. Chúng tôi tin rằng mã cơ bản này (bất cứ điều gì tôits) phải mở, có thể truy cập và chia sẻ—để nhiều người có thể chung tay thay đổi nó tốt hơn.
Ở đây, chúng tôi kể những câu chuyện về tác động của các giá trị nguồn mở lên tất cả các lĩnh vực của cuộc sống—khoa học, giáo dục, chính phủ, sản xuất, y tế, luật pháp và động lực tổ chức. Chúng tôi là một cộng đồng cam kết nói với những người khác cách thức mã nguồn mở là cách tốt nhất, bởi vì tình yêu mã nguồn mở cũng giống như bất kỳ thứ gì khác: sẽ tốt hơn khi nó được chia sẻ.
Tôi có thể tìm hiểu thêm về mã nguồn mở ở đâu?
Chúng tôi đã biên soạn một số tài nguyên được thiết kế để giúp bạn tìm hiểu thêm về nguồn mở. Chúng tôi khuyên bạn nên đọc Câu hỏi thường gặp về nguồn mở, hướng dẫn cách thực hiện và hướng dẫn của chúng tôi để bắt đầu.