Blog FOSS by Lê Trung Nghĩa

https://letrungnghia.mangvn.org

Những điều cơ bản về nguồn mở (Phần 1)

Những điều cơ bản về nguồn mở (Phần 1)

(Bài đăng trên tạp chí Tia Sáng, xuất bản tháng 6/2021. Phiên bản điện tử có tại địa chỉ: https://tiasang.com.vn/-doi-moi-sang-tao/Nhung-dieu-co-ban-ve-nguon-mo-Phan-1-28248)

Nguồn mở bắt đầu vào Việt Nam những năm cuối thập niên 1990, có lẽ vào khoảng thời gian ra đời của tổ chức Sáng kiến Nguồn Mở - OSI (Open Source Initiative) vào năm 1998 ở nước Mỹ, tổ chức bảo vệ cho phong trào phần mềm nguồn mở toàn thế giới. Tới lượt mình, OSI được thành lập từ một nhóm người tách ra từ phong trào phần mềm tự do được một tổ chức khác là Quỹ Phần mềm Tự do – FSF (Free Software Foundation), tổ chức bảo vệ cho phong trào phần mềm tự do toàn thế giới, được thành lập vào năm 1984 cũng ở nước Mỹ.

Nguồn mở dù bắt đầu bằng phần mềm, nhưng sau đó lan nhanh sang các lĩnh vực khác. Chính triết lý và thực hành của phần mềm tự do nguồn mở trong thế kỷ 20 đã truyền cảm hứng để đầu thế kỷ 21 hàng loạt các khái niệm mở liên quan tới các dạng nội dung khác nhau ra đời, như truy cập mở, tài nguyên giáo dục mở, hay dữ liệu mở.

Ngoài ra, còn có những khái niệm mở khác có liên quan chặt chẽ tới phần mềm và nội dung như cấp phép mở, tiêu chuẩn mở, định dạng mở, phần cứng mở, kiến trúc mở, .v.v. Gần đây hơn, một khái niệm bao trùm đã xuất hiện và trở thành xu thế mới của thế giới, đó là Khoa học Mở. Ngay cả trong đại dịch COVID-19, các sáng kiến như Cam kết COVID Mở (Open COVID Pledge) hay OpenCovid19 (Covid-19 Mở) cũng đều được truyền cảm hứng từ triết lý và các thực hành của nguồn mở.

A. Định nghĩa

Phần mềm nguồn mở (PMNM) và mã nguồn mở là gì?

Bản thảo Khuyến cáo Khoa học Mở mới nhất của UNESCO, xuất bản ngày 12/05/2021 định nghĩa phần mềm nguồn mở và mã nguồn mở như sau:

Phần mềm nguồn mở và mã nguồn mở thường gồm các phần mềm mà mã nguồn của chúng được làm cho sẵn sàng công khai, kịp thời và thân thiện với người sử dụng, ở định dạng cả con người và máy móc đều đọc được và sửa đổi được, theo một giấy phép mở trao cho những người khác quyền để sử dụng, sử dụng lại, sửa đổi, mở rộng, nghiên cứu, tạo ra các tác phẩm phái sinh, và chia sẻ phần mềm và mã nguồn đó, thiết kế hoặc kế hoạch chi tiết của nó. Mã nguồn đó phải được đưa vào trong phát hành phần mềm và làm cho sẵn sàng trong các kho truy cập mở và giấy phép được chọn phải cho phép các sửa đổi, có các tác phẩm phái sinh, và chia sẻ theo các điều khoản và điều kiện mở tương đương hoặc tương thích.

 

Phần mềm tự do (PMTD) là gì?

Trước khi xuất hiện khái niệm ‘phần mềm nguồn mở’ thì đã có khái niệm ‘phần mềm tự do’. Một chương trình phần mềm được gọi là phần mềm tự do khi người sử dụng có các quyền tự do cơ bản sau:

  1. Quyền tự do sử dụng chương trình đó vì bất kỳ mục đích gì;

  2. Quyền tự do phân phối chương trình đó cho bất kỳ ai;

  3. Quyền tự do sửa đổi chương trình cho phù hợp với mục đích sử dụng của mình; và để có thể sửa đổi được thì mã nguồn phải là mở cho bất kỳ ai cũng có thể có được chúng;

  4. Quyền tự do phân phối lại chương trình đã được sửa đổi;

Về khía cạnh quyền của người sử dụng, phần mềm nguồn mở hầu như không khác gì so với phần mềm tự do. Ngược lại, phần mềm nguồn đóng, hay còn được gọi là phần mềm sở hữu độc quyền, không có bất kỳ quyền tự do nào như với 4 quyền tự do được nêu ở trên.

Ở Việt Nam, phần mềm tự do và phần mềm nguồn mở được gọi chung là phần mềm tự do nguồn mở (PMTDNM).

Một chương trình PMTDNM là không mất tiền để mua, nhưng ngược lại, một phần mềm không mất tiền để mua lại chưa chắc là PMTDNM. Lý do cơ bản ở đây là với PMTDNM thì bạn luôn có được mã nguồn của chương trình phần mềm đó, nếu bạn muốn, còn phần mềm không mất tiền mua thì chưa chắc, vì nó có thể là phần mềm nguồn đóng/phần mềm sở hữu độc quyền, vì thế bạn không thể có mã nguồn của nó.

B. Triết lý của nguồn mở và văn hóa của người Việt Nam

Triết lý của nguồn mở, đôi khi còn được gọi là triết lý của quả táo và ý tưởng, được nêu như sau:

Tôi có một quả táo, bạn có một quả táo, nếu chúng ta trao đổi cho nhau thì mỗi người vẫn có một quả táo. Tôi có một ý tưởng, bạn có một ý tưởng, nếu chúng ta trao đổi cho nhau thì mỗi người sẽhai ý tưởng.

Ở đây, quả táo là đại diện cho những thứ hữu hình sờ mó được, như mảnh đất, ngôi nhà, mỏ dầu hay hòn đảo, .v.v.; còn ý tưởng là đại diện cho những thứ vô hình không sờ mó được, như phần mềm, nội dung số, và tất cả những gì là kết quả của việc số hóa - bước đầu tiên của quá trình chuyển đổi số. Điều dễ tưởng tượng là những thứ hữu hình sẽ luôn dần cạn kiệt, trong khi với chuyển đổi số và Internet trong kỷ nguyên số ngày nay, những thứ vô hình sẽ ngày càng nhiều, vô cùng nhiều và ngày càng thừa thãi.

Triết lý trên đã chỉ ra nguyên tắc cộng lực để phát triển và nguyên tắc này chỉ có thể thịnh vượng được khi cùng một lúc có 2 điều kiện, là VÔ HÌNH và MỞ, vì nếu VÔ HÌNH mà ĐÓNG thì cũng không có giá trị do không có chia sẻ, và vì thế không thể có việc mỗi người có hai ý tưởng được.

Hình 1. Triết lý của nguồn mở

Với văn hóa của người Việt Nam bốn ngàn năm lịch sử, ai cũng đều biết tới các thành ngữ mà các thế hệ cha ông truyền đời cho chúng ta như ‘tiền nào của nấy’ hay ‘ăn bánh trả tiền’, chúng thấm vào trong chúng ta và thường điều khiển cách hành xử của chúng ta trong cuộc sống thường ngày. Tuy nhiên, điều khác biệt cơ bản so với ông cha chúng ta hàng ngàn năm trước, là chúng ta ngày nay có Internet, và vì thế có lẽ văn hóa ‘tiền nào của nấy’ hay ‘ăn bánh trả tiền’ khi được áp dụng vào trong nền kinh tế số và xã hội số chủ yếu dựa vào Internet, là không chắc còn phù hợp nữa, bởi chúng ta đều biết rất rõ rằng nhiều ứng dụng, dịch vụ kỹ thuật số trên Internet mà chúng ta sử dụng thường ngày không phải trả tiền, trong khi các ứng dụng dịch vụ đó lại có chất lượng tốt, thậm chí rất tốt, và các hãng tạo ra chúng lại là các tập đoàn giàu có hàng đầu thế giới, như Google, Facebook và nhiều doanh nghiệp số khác trong lĩnh vực công nghệ thông tin và truyền thông[1]. Điều này được giải thích vì các mô hình kinh doanh đi với chúng là khác và/hoặc rất khác so với các mô hình kinh doanh truyền thống, kiểu ‘tiền nào của nấy’ và ‘ăn bánh trả tiền’, bốn ngàn năm lịch sử của người Việt Nam chúng ta.

C. Mô hình phát triển của phần mềm nguồn mở

Bên cạnh triết lý quả táo và ý tưởng, PMTDNM được phát triển tuân theo Luật Linus, nó nêu rằng “Nhiều con mắt soi vào thì lỗi sẽ cạn” (Given enough eyeballs, all bugs are shallow), hoặc như câu nói nổi tiếng của người phát minh ra nhân Linux, Linus Torvalds: “Nói là không có giá trị, hãy cho tôi xem mã nguồn” (Talk is cheap. Show me the code!)[2]. Một chương trình phần mềm mà bạn không thể tải về mã nguồn của nó để xem và soi xét, chắc chắn 100%, nó không phải là phần mềm nguồn mở. Để dễ tưởng tượng, có thể nêu như sau: mã nguồn của một phần mềm nguồn mở do (các) lập trình viên người Việt Nam tạo ra, thì một lập trình viên ở bất kỳ quốc gia nào trên thế giới này, cũng PHẢI có khả năng tải về được từ Internet! Điều này còn cho thấy vai trò không thể thiếu của Internet trong phát triển phần mềm nguồn mở - chính Internet xúc tác để Luật Linus hiện thực hóa được trên phạm vi toàn cầu!

Lưu ý là, bất kể phần mềm được phát triển theo mô hình của phần mềm nguồn mở hay phần mềm nguồn đóng/sở hữu độc quyền, để có lòng tin vào phần mềm ở khía cạnh bảo mật của nó, được khuyến cáo bạn không nên tin tưởng vào bất kỳ phần mềm nào mà bản thân bạn chưa kiểm tra nó, còn nếu bạn phải tin tưởng phần mềm bạn đã không/chưa kiểm tra, thì hãy chọn tin tưởng mã nguồn được phơi ra cho nhiều lập trình viên, những người có khả năng độc lập để nói về các lỗi của phần mềm. Tuân thủ theo Luật Linus không có nghĩa là phần mềm nguồn mở mặc định một cách tự nhiên là bảo mật hơn so với phần mềm sở hữu độc quyền, nhưng các hệ thống có tại chỗ để sửa lỗi được lên kế hoạch, được triển khai, và được phân bổ nhân sự, tốt hơn nhiều[3].

Trên thực tế, hầu hết các phần mềm nguồn mở đều do các cộng đồng lập trình viên phần mềm trên thế giới tạo ra, rất ít người trong số đó là người Việt Nam. Không ít các công ty Việt Nam tải về kho mã nguồn phần mềm nguồn mở, rồi sửa đổi các mã nguồn đó, sau đó đóng nó lại, ngắt bỏ mọi liên hệ với cộng đồng các lập trình viên của thế giới phát triển chính phần mềm đó. Cách làm này là rất không khôn ngoan, vì sau một khoảng thời gian, phần mềm được công ty tùy chỉnh đó có thể sẽ rất khác với phần mềm gốc của cộng đồng thế giới; và vì chúng ta không phải là những người khởi xướng ra phần mềm đó, nên nếu họ thay đổi ở (một) vài phần quan trọng của phần mềm đó, chúng ta sẽ gặp khó, đôi khi hoàn toàn mất khả năng quản lý và kiểm soát đối với phần mềm cùng các phần tùy chỉnh của chúng ta. Để tránh điều này xảy ra, được khuyến cáo gửi ngược lên dòng trên (upstream) toàn bộ phần mã nguồn chúng ta tùy chỉnh về cây dự án gốc của cộng đồng thế giới, để các phiên bản tiếp sau của phần mềm đó có thể có được sự hỗ trợ của toàn bộ cộng đồng thế giới đối với cả các tùy chỉnh của chúng ta[4], như mô hình trên Hình 2. Nói một cách tổng quát, chúng ta cần phát triển nguồn mở cùng và không tách rời khỏi cộng đồng nguồn mở thế giới.

Hình 2. Mô hình phát triển đúng của một dự án phần mềm nguồn mở

D. Mô hình cấp phép của phần mềm nguồn mở

Theo Luật sở hữu trí tuệ, ngay khi một tài nguyên - một tác phẩm trí tuệ - được tạo ra, nó sẽ tự động được Luật sở hữu trí tuệ (hoặc Luật bằng sáng chế) bảo vệ, bất kể tác giả của nó có đăng ký tác phẩm đó hay không[5]. Vì thế, chỉ khi được chính (các) tác giả cấp phép mở, tài nguyên mới thực sự là tài nguyên mở, vì người sử dụng rõ ràng có được sự cho phép từ (các) tác giả đối với tài nguyên đó để họ sử dụng mà không vi phạm bất kỳ bản quyền/các quyền sở hữu trí tuệ nào của (các) tác giả được Luật sở hữu trí tuệ bảo vệ. Điều này giải thích vì sao:

  • Một chương trình phần mềm không được cấp phép mở thì 100% không phải là PMTDNM. Cộng đồng phần mềm nguồn mở thế giới coi các phần mềm được gọi là ‘MỞ’ dạng này là Open Washing, tạm dịch sang tiếng Việt là “tráng qua hàng mở” hay “phần mềm nguồn mở RỞM”.

  • Tương tự, một tài nguyên không được cấp phép mở thì tài nguyên đó 100% không là tài nguyên mở, không là tài nguyên truy cập mở, không là dữ liệu mở, không là tài nguyên giáo dục mở, và nhiều nhất, chúng chỉ có thể được gọi là “tài nguyên mở RỞM”.

Đáng tiếc là tình trạng “phần mềm nguồn mở RỞM” và/hoặc “tài nguyên mở RỞM” là rất phổ biến hiện nay ở Việt Nam, mà nguyên nhân sâu xa của nó có lẽ là do không một cơ sở giáo dục nào ở mọi cấp học của Việt Nam dạy về cấp phép mở, trong khi nhà nước cũng không có chính sách nào về cấp phép mở cho tới nay.

Một khi tài nguyên được cấp phép mở, tùy thuộc vào giấy phép mở được gắn vào từng tài nguyên đó, chúng sẽ được gọi với những cái tên khác nhau, như tài nguyên truy cập mở, tài nguyên giáo dục mở hay dữ liệu mở, như trên Hình 3.

Hình 3. Tên gọi của tài nguyên khác nhau, tùy thuộc vào giấy phép mở được gắn với nó

Một dạng đặc biệt của các tài nguyên mở là các tài nguyên nằm trong phạm vi công cộng như được minh họa ở phần cao nhất trên Hình 3, chúng có ở 2 dạng: (1) các tài nguyên đã hết thời hạn bảo hộ của Luật sở hữu trí tuệ hoặc Luật bằng sáng chế và chúng thường đi với dấu phạm vi công cộng (Public Domain Mark[6]); (2) các tài nguyên mà tác giả của nó khước từ tất cả các quyền và hiến tặng vào phạm vi công cộng, và chúng thường đi với công cụ/giấy phép CC0[7]. Các tài nguyên dạng này còn được gọi là các tài nguyên không có bản quyền (No Copyright). Để dễ hình dung, hầu như tất cả các tác phẩm do các tác giả người Việt Nam xuất bản từ thế kỷ 19 trở về trước đều nằm trong phạm vi công cộng và phần lớn chúng nằm trong các viện bảo tàng, kho lưu trữ và/hoặc thư viện, những nơi mà bất kỳ ai cũng có quyền tự do không mất tiền để truy cập tới chúng. Được khuyến cáo, khi tiến hành số hóa các tài nguyên dạng này thì phiên bản số hóa của chúng cũng nên nằm trong phạm vi công cộng[8] để không tước đoạt đi quyền truy cập tự do không mất tiền không chỉ của gần 100 triệu người Việt Nam, mà còn cả của gần 8 tỷ người trên thế giới.

(xem tiếp Phần 2)

H. Các chú giải

[1] Lê Trung Nghĩa, 2020: Chuyển đổi số: Cách tiếp cận mới về Mở: https://giaoducmo.avnuc.vn/bai-viet-toan-van/chuyen-doi-so-cach-tiep-can-moi-ve-mo-280.html, CC BY.

[2] Linus Torvalds > Quotes: https://www.goodreads.com/author/quotes/92867.Linus_Torvalds

[3] OpenSource.com: Understanding Linus's Law for open source security: https://opensource.com/article/21/2/open-source-security. Bản dịch sang tiếng Việt của Lê Trung Nghĩa có tại địa chỉ: https://giaoducmo.avnuc.vn/phan-mem-tu-do-nguon-mo/hieu-luat-linus-ve-bao-mat-cua-nguon-mo-431.html

[4] Linux Foundation, 2012: Upstreaming: Strengthening Open Source Development. Bản dịch sang tiếng Việt của Lê Trung Nghĩa: https://www.dropbox.com/s/ao6fprcmn3uzexx/lf_upstreaming_os_dev-Vi-31012012.pdf?dl=0

[5] Creative Commons: Creative Commons Certificate for Educators, Academic Librarians and GLAM; Unit 2: Copyright Law: https://certificates.creativecommons.org/cccertedu/chapter/2-1-copyright-basics/

[6] Creative Commons: Public Domain Mark: https://creativecommons.org/share-your-work/public-domain/pdm

[7] Creative Commons: CC0: https://creativecommons.org/share-your-work/public-domain/cc0

[8] Lê Trung Nghĩa, 2020: Chuyển đổi số của ngành văn hóa trong bối cảnh hội nhập quốc tế và cách mạng công nghiệp lần thứ tư và khía cạnh chuyển thể các tác phẩm và di sản văn hóa đang nằm trong phạm vi công cộng sang dạng kỹ thuật số: https://giaoducmo.avnuc.vn/bai-viet-toan-van/chuyen-doi-so-cua-nganh-van-hoa-trong-boi-canh-hoi-nhap-quoc-te-va-cach-mang-cong-nghiep-lan-thu-tu-va-khia-canh-chuyen-the-cac-tac-pham-va-di-san-van-hoa-dang-nam-trong-pham-vi-cong-cong-sang-dang-ky-thuat-so-312.html




Giấy phép nội dung: CC BY 4.0 Quốc tế

Lê Trung Nghĩa

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây