8 phút

Richard Stallman và Phần mềm Tự do: Những ý tưởng đã thay đổi mã nguồn

Khám phá triết lý phần mềm tự do của Richard Stallman, Dự án GNU và GPL — và cách chúng thay đổi cấp phép, quyền nhà phát triển và mã nguồn mở.

Richard Stallman và Phần mềm Tự do: Những ý tưởng đã thay đổi mã nguồn

Tại sao Richard Stallman vẫn quan trọng

Phần mềm không chỉ là một sản phẩm kỹ thuật—nó còn là một tập hợp quyền hạn. Ai có thể chạy nó, sao chép nó, chia sẻ với bạn bè, sửa một lỗi, hoặc xây dựng thứ gì đó mới dựa trên nó? Những câu hỏi này được trả lời ít bằng mã hơn và nhiều bằng cấp phép. Khi phần mềm trở nên trung tâm cho công việc, giao tiếp và nghiên cứu, các quy tắc về “bạn được phép làm gì” bắt đầu định hình đổi mới chẳng kém gì các tính năng.

Richard Stallman (thường gọi là “RMS”) quan trọng vì ông làm cho những quy tắc ấy không thể bị bỏ qua. Vào đầu thập niên 1980, ông chứng kiến một thay đổi: nhiều chương trình được phân phối mà không kèm mã nguồn, và người dùng ngày càng được nói rằng họ chỉ có thể dùng phần mềm theo điều khoản của người khác. Stallman không coi đó là một phiền toái nhỏ, mà là mất mát quyền tự do của người dùng và nhà phát triển—và ông đáp lại bằng cách đề xuất một tập nguyên tắc và công cụ pháp lý rõ ràng để bảo vệ những quyền đó.

Bài viết này là (và không phải là) gì

Bài viết này tập trung vào các ý tưởng của Stallman và những hệ quả thực tế: định nghĩa Phần mềm Tự do, Dự án GNU, copyleft và GNU General Public License (GPL)—và cách những điều này đã định hình hệ sinh thái mã nguồn mở hiện đại và các chuẩn mực cấp phép phần mềm.

Nó không phải là một tiểu sử, và cũng không phải một bài đào sâu kỹ thuật về biên dịch kernel hay quản lý kho mã. Bạn không cần nền tảng lập trình để theo dõi.

Góc nhìn cân bằng, dễ tiếp cận

Stallman vừa có ảnh hưởng vừa gây tranh cãi. Mục tiêu ở đây là giữ sự chính xác và dễ đọc: ông đã tranh luận điều gì, cơ chế pháp lý nào xuất hiện, doanh nghiệp và nhà phát triển đã thích nghi ra sao, và những tranh luận còn tiếp diễn ở đâu ngày nay—để bạn có thể thấy tại sao công việc của ông vẫn ảnh hưởng tới các lựa chọn phần mềm hàng ngày.

“Phần mềm tự do” thực sự có nghĩa là gì

"Phần mềm tự do" dễ bị hiểu sai vì từ tự do nghe như nhãn giá. Richard Stallman dùng tự do để chỉ quyền—khả năng của người dùng kiểm soát phần mềm họ phụ thuộc.

Nếu một chương trình có giá $0 nhưng bạn không được phép xem mã nguồn, thay đổi nó, hay chia sẻ nó, thì nó có thể là “miễn phí như bia” nhưng vẫn không tự do theo nghĩa Stallman quan tâm.

Bốn quyền thiết yếu

Phần mềm tự do được định nghĩa bởi bốn quyền cơ bản:

  • Freedom 0: Chạy chương trình cho bất kỳ mục đích nào.
  • Freedom 1: Nghiên cứu cách chương trình hoạt động và thay đổi nó theo ý bạn.
  • Freedom 2: Phân phối lại bản sao để bạn có thể giúp người khác.
  • Freedom 3: Phân phối các phiên bản đã chỉnh sửa để cộng đồng được hưởng lợi.

Những quyền này liên quan đến năng lực hành động: bạn không chỉ là người tiêu dùng công cụ—bạn có thể trở thành người tham gia, xác minh, điều chỉnh và cải tiến chúng.

Tại sao truy cập mã nguồn là bắt buộc

Freedom 1 và 3 không thể thực hiện được nếu không có truy cập tới mã nguồn—chỉ dẫn đọc được bởi con người. Không có mã nguồn, phần mềm giống như một thiết bị bị niêm phong: bạn có thể dùng nó, nhưng bạn không biết nó đang làm gì, không sửa khi hỏng, và không điều chỉnh cho nhu cầu mới.

Truy cập mã nguồn cũng quan trọng cho độ tin cậy. Nó cho phép kiểm tra độc lập (về riêng tư, bảo mật và tính công bằng) và làm cho việc duy trì phần mềm khả thi ngay cả khi người phát triển ban đầu ngừng hỗ trợ.

Tương tự đơn giản: công thức nấu ăn vs thực phẩm đóng kín

Hãy nghĩ đến một bữa ăn nhà hàng.

  • Phần mềm độc quyền giống như mua một món ăn đóng gói sẵn: bạn có thể ăn nó, nhưng bạn không biết nguyên liệu, không thể điều chỉnh công thức, và không được phép chia sẻ bản sao.
  • Phần mềm tự do giống như được nhận công thức: bạn có thể nấu ở nhà, học cách làm, điều chỉnh cho dị ứng, và chia sẻ phiên bản cải tiến với bạn bè.

Đó là ý chính: phần mềm tự do nói về các quyền người dùng cần để giữ quyền kiểm soát máy tính của mình.

Vấn đề mà Stallman phản ứng

Trước khi “cấp phép phần mềm” trở thành điều phần lớn người ta tranh luận, nhiều văn hóa lập trình—đặc biệt ở đại học và phòng thí nghiệm nghiên cứu—chạy dựa trên một giả định: nếu bạn có thể cải tiến một công cụ, bạn sẽ chia sẻ cải tiến đó. Mã nguồn đi kèm phần mềm, người ta học bằng cách đọc công việc của nhau, và các sửa lỗi lan truyền qua hợp tác không chính thức.

Từ chuẩn mực chia sẻ đến phần mềm bị khóa

Văn hóa đó bắt đầu thay đổi khi phần mềm trở thành sản phẩm. Các công ty (và thậm chí một số tổ chức) bắt đầu coi mã nguồn như lợi thế cạnh tranh. Phân phối kèm theo điều khoản “không chia sẻ”, mã không còn được phát hành cùng chương trình, và thỏa thuận không tiết lộ trở nên phổ biến. Với những nhà phát triển quen giải quyết vấn đề tập thể, sự thay đổi này không chỉ gây khó chịu—nó giống như thay đổi luật khiến việc giải quyết vấn đề theo cộng đồng trở nên rủi ro về mặt pháp lý.

Câu chuyện về máy in (ví dụ chứ không phải thần thoại)

Một trong những câu chuyện nguồn gốc được nhắc tới nhiều liên quan đến một chiếc máy in ở MIT’s AI Lab. Stallman mô tả rằng một máy in mới đến kèm phần mềm chỉ phân phối ở dạng nhị phân, không có mã nguồn. Vấn đề thực tế rất đời thường: phòng thí nghiệm muốn sửa chương trình để xử lý các tình huống như thông báo kẹt giấy hoặc định tuyến lệnh in thông minh hơn. Theo chuẩn mực “hacker” trước đây, ai đó sẽ vá mã và chia sẻ bản sửa. Ở đây, họ không thể—vì họ không được phép xem hoặc thay đổi mã nguồn.

Cần giữ điều này ở tỷ lệ hợp lý: không phải một chiếc máy in đã tạo nên phong trào toàn cầu. Đó là một ví dụ rõ ràng, dễ hiểu của một xu hướng rộng hơn—các công cụ mà người ta phụ thuộc đang trở nên không thể sửa bởi chính người dùng của chúng.

Tại sao điều này dẫn tới ý tưởng cấp phép mới

Với Stallman, vấn đề cốt lõi không chỉ là truy cập kỹ thuật; đó là mất quyền hợp tác. Nếu bạn không thể nghiên cứu cách một chương trình hoạt động, bạn không thể thực sự kiểm soát nó. Nếu bạn không thể chia sẻ cải tiến, các cộng đồng phân mảnh và mọi người sẽ tự phát minh lại sửa lỗi một cách riêng rẽ.

Động lực đó đã định hình các đổi mới về cấp phép sau này. Thay vì dựa vào thiện chí hay chuẩn mực không chính thức, Stallman muốn những quy tắc bảo tồn khả năng sử dụng, nghiên cứu, sửa đổi và chia sẻ phần mềm—để hợp tác không thể bị rút lại ngay khi một chương trình trở nên có giá trị thương mại.

Dự án GNU: Xây một hệ điều hành tự do

Bước đi lớn của Stallman không chỉ là viết một tuyên ngôn—mà là khởi xướng một nỗ lực kỹ thuật thực tế. Năm 1983 ông tuyên bố Dự án GNU, với mục tiêu tham vọng: xây dựng một hệ điều hành hoàn chỉnh mà bất kỳ ai cũng có thể dùng, nghiên cứu, sửa đổi và chia sẻ, đồng thời tương thích với Unix để người dùng có thể chạy các chương trình và quy trình làm việc quen thuộc.

Một hệ thống đầy đủ, không phải một công cụ đơn lẻ

Một hệ điều hành không phải là một chương trình duy nhất—nó là cả một ngăn xếp. GNU đặt ra mục tiêu tạo tất cả các phần cần thiết hàng ngày để làm cho một máy tính hữu ích, bao gồm:

  • Bộ biên dịch (nổi tiếng nhất là GCC) để nhà phát triển biến mã thành chương trình chạy được
  • Tiện ích dòng lệnh cốt lõi (các công cụ cơ bản để sao chép tệp, tìm kiếm văn bản, quản lý tiến trình)
  • Thư việncông cụ phát triển để hỗ trợ xây dựng phần mềm
  • Shell và trình soạn thảo để làm việc trên máy hàng ngày

Nói đơn giản: GNU xây lớp ống nước, hệ dây điện và các công tắc—không chỉ một thiết bị đơn lẻ.

GNU + Linux: cách hầu hết mọi người tiếp xúc

Đầu những năm 1990, GNU đã sản xuất phần lớn “userland” này, nhưng một mảnh quan trọng còn chậm trễ: kernel (phần quản lý phần cứng và tài nguyên). Khi Linux xuất hiện năm 1991, nó lấp vào khoảng trống đó.

Đó là lý do nhiều hệ thống phổ biến ngày nay kết hợp thành phần GNU với nhân Linux—thường gọi là “GNU/Linux”.

Cơ sở hạ tầng quan trọng không kém lý tưởng

GNU biến ý tưởng phần mềm tự do thành hiện thực bằng cách tạo nền tảng hoạt động để người khác xây dựng. Triết lý giải thích tại sao tự do quan trọng; GNU cung cấp các công cụ làm cho tự do trở nên thực tế, có thể nhân rộng và mở rộng.

Copyleft nói giản dị

Copyleft là một chiến lược cấp phép nhằm giữ phần mềm tự do (theo nghĩa quyền) không chỉ ở lần phát hành đầu tiên, mà cả ở các phiên bản tương lai. Nếu bạn nhận được mã copyleft, bạn được phép sử dụng, nghiên cứu, sửa đổi và chia sẻ—nhưng khi bạn phân phối phiên bản đã chỉnh sửa, bạn phải truyền cùng các quyền đó cho người khác.

Công cụ pháp lý dựa trên bản quyền

Copyleft nghe có vẻ như “chống bản quyền”, nhưng thực tế nó dựa vào luật bản quyền. Tác giả sử dụng quyền bản quyền của mình để đặt ra điều khoản cho phép: “Bạn có thể sao chép và sửa đổi, nhưng nếu bạn phân phối lại, bạn phải giữ nó dưới cùng giấy phép này.” Nếu không có bản quyền, sẽ không có cơ chế pháp lý để thực thi những điều kiện đó.

Ý tưởng “chia sẻ tương tự” (với ví dụ đơn giản)

Hãy coi nó là một quy tắc theo sau mã:

  • Fork: Bạn fork một dự án copyleft, thêm tính năng và công bố fork. Bạn phải công bố mã nguồn và giữ cùng giấy phép để người khác cũng có thể fork của bạn.
  • Phân phối lại: Bạn đóng gói chương trình vào một sản phẩm đưa đến khách hàng. Bạn có thể tính phí, nhưng bạn phải cung cấp mã nguồn và cùng quyền cho người nhận.

Mục tiêu là ngăn chặn mô hình Stallman lo ngại: ai đó lấy công sức cộng đồng, cải tiến và sau đó khóa những cải tiến lại.

Copyleft so với giấy phép permissive

Giấy phép permissive (như MIT hoặc BSD) thường cho phép bạn làm gần như mọi thứ với mã, kể cả phân phối phiên bản đã chỉnh sửa dưới giấy phép đóng. Giấy phép copyleft (như GNU GPL) vẫn cho phép sử dụng và sửa đổi rộng rãi, nhưng yêu cầu các bản phân phối phái sinh giữ cùng điều khoản copyleft—vậy nên quyền tự do được bảo tồn về phía sau.

GNU GPL đã thay đổi cấp phép như thế nào

Xây và kiếm credits
Chia sẻ những gì bạn xây hoặc mời đồng đội và kiếm credits khi bạn tiến triển.

GNU General Public License (GPL) thay đổi cấp phép phần mềm bằng cách biến “chia sẻ” thành một quy tắc có thể thi hành, chứ không chỉ là một cử chỉ tốt. Trước GPL, bạn có thể nhận mã nguồn, cải tiến nó và sau đó phát hành phiên bản đóng cửa mà người dùng không thể nghiên cứu hay sửa đổi. GPL đảo ngược động lực đó: nó bảo vệ quyền người dùng bằng cách gắn điều kiện vào việc phân phối.

GPL cho gì—và yêu cầu gì đổi lại

Ở mức thực tế, GPL trao quyền để chạy chương trình cho bất kỳ mục đích nào, đọc và sửa mã nguồn, và chia sẻ bản gốc hoặc phiên bản đã sửa.

Nếu bạn phân phối phần mềm theo GPL (đặc biệt trong một sản phẩm), bạn phải truyền lại những quyền đó. Điều này thường có nghĩa:

  • Cung cấp mã nguồn (hoặc cách hợp lệ để nhận nó) cho người nhận
  • Kèm theo văn bản giấy phép và giữ nguyên các chú thích bản quyền
  • Cấp phép các sửa đổi của bạn dưới GPL, để người dùng phía sau không bị “khóa” lại

Nghĩa vụ phân phối mã nguồn (khi áp dụng)

Nghĩa vụ của GPL chủ yếu kích hoạt khi bạn phân phối phần mềm cho người khác—gửi nhị phân, bán thiết bị kèm phần mềm, hoặc đưa bản sao cho khách hàng. Nếu bạn chỉnh sửa mã GPL để dùng nội bộ và không phân phối, thường bạn không phải công bố mã nguồn.

“Tác phẩm phái sinh” nói dễ hiểu

Bạn không cần lý thuyết pháp lý phức tạp để hiểu chung: nếu chương trình của bạn kết hợp mã GPL theo cách tạo ra một tác phẩm kết hợp (ví dụ, bằng cách liên kết vào ứng dụng của bạn), kết quả thường được coi là tác phẩm phái sinh và phải được phân phối theo GPL. Chỉ chạy chương trình GPL, hoặc giao tiếp với nó như một tiến trình riêng qua giao diện chuẩn, thường khác biệt.

Các biến thể GPL: v2, v3 và LGPL

GPLv2 là phiên bản cổ điển dùng rộng rãi. GPLv3 bổ sung các bảo vệ quanh các thỏa thuận bằng sáng chế và “tivoization” (thiết bị chặn phần mềm đã sửa đổi). LGPL được thiết kế cho thư viện: nó cho phép liên kết từ chương trình độc quyền trong một số điều kiện, đồng thời giữ thư viện tự do.

Quyền—và trách nhiệm—của nhà phát triển dưới giấy phép tự do

Giấy phép tự do (đặc biệt là GNU GPL) không chỉ “cho phép” chia sẻ—chúng bảo vệ quyền được nghiên cứu, sửa đổi và phân phối phần mềm theo cách khó bị thu hồi sau này. Với tư cách nhà phát triển, điều đó có nghĩa các cải tiến của bạn có thể tiếp tục có sẵn cho người khác dưới cùng điều khoản, thay vì bị hấp thụ vào sản phẩm đóng mà cộng đồng không hưởng lợi.

Những quyền bạn có

Dưới GPL, bạn có thể:

  • Thay đổi thoải mái: đọc mã nguồn, sửa và chạy phiên bản sửa đổi.
  • Chia sẻ công việc: phân phối bản gốc hoặc chương trình đã sửa.
  • Xây dựng trên cải tiến của người khác: vì người nhận phải có cùng quyền.

Đó là lý do GPL thường được mô tả là “tương hỗ có thể thi hành.” Nếu ai đó phân phối chương trình được phủ bởi GPL (hoặc tác phẩm phái sinh), họ không thể thêm các hạn chế ngăn người dùng phía sau làm cùng loại sửa đổi và chia sẻ.

Trách nhiệm bạn gánh

Những quyền này đi kèm nghĩa vụ khi bạn phân phối phần mềm:

  • Giữ nguyên thông báo bản quyền và giấy phép.
  • Cung cấp (hoặc đề nghị) mã nguồn tương ứng khi GPL yêu cầu.
  • Giữ giấy phép nguyên vẹn để người nhận biết quyền của họ.

Những trách nhiệm này không phải “bẫy”—chúng là cơ chế giữ cho hợp tác không trở thành khai thác một chiều.

Ghi chú thực tế về tuân thủ

Các nhóm nên coi tuân thủ giấy phép như là thói quen phát hành. Hãy theo dõi:

  • những thành phần mã nguồn mở bạn phân phối,
  • phiên bản và giấy phép của chúng,
  • nơi bạn cung cấp mã nguồn (hoặc đề nghị bằng văn bản),
  • và bất kỳ sửa đổi nào bạn đã thực hiện.

Một SBOM đơn giản và checklist lặp lại cho phát hành có thể ngăn hầu hết vấn đề trước khi luật sư phải can thiệp.

Phần mềm tự do so với mã nguồn mở: phân rẽ về giá trị

Mang theo mã nguồn
Giữ các lựa chọn mở bằng cách xuất mã để xem xét, fork, hoặc bảo trì lâu dài.

Ở mức mã nguồn, “phần mềm tự do” và “mã nguồn mở” thường mô tả nhiều dự án giống nhau. Sự khác biệt chủ yếu là tại sao việc chia sẻ lại quan trọng.

Ưu tiên khác nhau: tự do vs áp dụng

Phong trào Phần mềm Tự do (liên quan đến Richard Stallman và Free Software Foundation) xem tự do phần mềm như một vấn đề đạo đức: người dùng nên có quyền chạy, nghiên cứu, sửa đổi và chia sẻ phần mềm. Ý điểm không chỉ là kỹ thuật tốt hơn—mà là bảo vệ quyền tự chủ của người dùng.

Cách tiếp cận Mã nguồn Mở nhấn mạnh kết quả thực tiễn: hợp tác tốt hơn, vòng lặp nhanh hơn, ít lỗi hơn và bảo mật cải thiện qua minh bạch. Nó chấp nhận giới thiệu tính mở như một mô hình phát triển vượt trội, mà không buộc các đội phải mang lập trường đạo đức.

Tại sao “mã nguồn mở” lan rộng

Năm 1998, Open Source Initiative (OSI) phổ biến thuật ngữ “open source” để làm cho ý tưởng thân thiện hơn với doanh nghiệp. “Free software” thường bị hiểu nhầm là “miễn phí về giá”, và một số công ty e ngại thông điệp mang tính quyền và đạo đức. “Open source” cho tổ chức một cách nói “chúng ta có thể làm việc theo cách này” mà không mang vẻ ý thức hệ.

Cùng giấy phép, cách kể chuyện khác nhau

Nhiều dự án tự gọi là open source dùng GNU GPL hoặc các giấy phép copyleft khác, trong khi nhiều dự án khác chọn giấy phép permissive như MIT hoặc Apache. Văn bản pháp lý có thể giống nhau; câu chuyện kể với cộng tác viên, người dùng và khách hàng thay đổi. Một thông điệp là “điều này bảo vệ quyền của bạn”, thông điệp khác là “điều này giảm ma sát và cải thiện chất lượng.”

Hướng dẫn quyết định đơn giản

  • Nếu ưu tiên của nhóm bạn là đảm bảo người dùng phía sau giữ cùng quyền, hãy chọn khung phần mềm tự do và xem xét copyleft.
  • Nếu ưu tiên là tối đa hóa việc áp dụng (kể cả bởi công ty không muốn nghĩa vụ tương hỗ), khung mã nguồn mở—và thường là giấy phép permissive—có thể phù hợp hơn.
  • Nếu bạn muốn hợp tác rộng nhưng cũng muốn cải tiến được trả về, dùng ngôn ngữ open source cho sự thân thiện đồng thời chọn giấy phép copyleft cho kết quả mong muốn.

Mô hình kinh doanh và động lực thực tế

Phần mềm tự do không có nghĩa “không ai được trả tiền.” Nó có nghĩa người dùng có quyền chạy, nghiên cứu, sửa đổi và chia sẻ mã. Nhiều công ty xây doanh thu khỏe mạnh quanh quyền đó—thường bằng cách bán những thứ tổ chức thực sự cần: độ tin cậy, trách nhiệm, và thời gian.

Doanh nghiệp kiếm tiền với FOSS bằng cách nào

Một vài mô hình phổ biến:

  • Hỗ trợ và dịch vụ: tổng đài trả phí, SLA, đào tạo, kiểm toán, tính năng tùy chỉnh và di cư.
  • Hosting và dịch vụ quản lý: bán phiên bản host nơi khách hàng trả cho tiện lợi, mở rộng, sao lưu và tuân thủ.
  • Cấp phép kép: cung cấp cùng phần mềm dưới giấy phép miễn phí (thường copyleft) và đồng thời giấy phép thương mại cho khách hàng muốn điều khoản khác.
  • Open core (cẩn trọng): giữ lõi thực sự miễn phí trong khi bán add-on đóng. Cách này có thể hiệu quả nhưng dễ gây căng thẳng với lòng tin cộng đồng.

Một biến thể hiện đại của mô hình “dịch vụ quản lý” là sự xuất hiện của các nền tảng tạo và chạy ứng dụng nhanh. Ví dụ, Koder.ai là nền tảng vibe-coding giúp nhóm xây web, backend và ứng dụng di động qua chat—trong khi vẫn hỗ trợ xuất mã nguồn. Sự kết hợp đó (lặp nhanh + sở hữu mã) phù hợp tự nhiên với giá trị đằng sau tự do phần mềm: khả năng kiểm tra, thay đổi và di chuyển phần mềm khi bạn cần.

Tại sao permissive vs copyleft ảnh hưởng chiến lược

Lựa chọn giấy phép có thể định hình ai nắm giữ giá trị:

  • Giấy phép permissive (như MIT/Apache) khiến người khác—kể cả nhà cung cấp lớn—dễ tái sử dụng mã trong sản phẩm đóng. Điều này có thể tăng áp dụng, nhưng giảm khả năng bạn kiếm độc quyền từ mã.
  • Giấy phép copyleft (như GPL) yêu cầu người phân phối phía sau chia sẻ sửa đổi dưới cùng điều khoản. Điều này có thể làm giảm nhánh đóng và hỗ trợ các mô hình kinh doanh dựa trên dịch vụ, phân phối được chứng nhận hoặc cấp phép kép.

“Thương mại” và “phần mềm tự do” không phải đối lập

“Thương mại” mô tả cách bán; “phần mềm tự do” mô tả quyền người dùng. Một công ty có thể bán phần mềm tự do, tính phí hỗ trợ, và vẫn tôn trọng tự do phần mềm.

Danh sách kiểm tra bền vững

Trước khi áp dụng hoặc đặt cược vào một dự án FOSS, hãy hỏi:

  • Có cộng đồng hoạt động (vấn đề, phát hành, review) không?
  • Quản trị rõ ràng không (ai quyết định, cách giải quyết xung đột)?
  • Nguồn tài trợ có rõ ràng không (nhà tài trợ, công ty hậu thuẫn, quỹ)?
  • Khối lượng công việc của người duy trì có bền vững không (bus factor, dấu hiệu kiệt sức)?
  • Thực hành bảo mật có được ghi chép không (tần suất vá, thông báo lỗ hổng)?

Những hiểu lầm phổ biến về GPL và FOSS

GPL và “FOSS” được bàn luận nhiều, nhưng một vài quan niệm sai lầm thường làm rối những đội chỉ muốn phát hành sản phẩm mà không vô tình vi phạm giấy phép.

“GPL có nghĩa là public domain”

Không phải. Public domain nghĩa là không còn chủ sở hữu bản quyền—bất kỳ ai cũng có thể tái sử dụng mà không ràng buộc.

GNU GPL ngược lại với “không điều kiện”. Tác giả giữ bản quyền và cấp quyền rộng để dùng, sửa và chia sẻ—nhưng phải tuân theo điều khoản GPL (nổi tiếng nhất là chia sẻ mã nguồn khi bạn phân phối nhị phân được bảo phủ).

“Mã nguồn mở luôn an toàn”

Hiển thị mã nguồn có thể giúp an ninh, nhưng không đảm bảo. Một dự án mã nguồn mở vẫn có thể:

  • bị bỏ bê,
  • được review kém,
  • có lỗ hổng tồn tại nhiều năm trước khi ai đó phát hiện.

Bảo mật đến từ việc duy trì tích cực, kiểm toán, quy trình tiết lộ có trách nhiệm và thực hành vận hành tốt—không phải chỉ vì nhãn giấy phép.

Mô tả “giấy phép truyền nhiễm”

Người ta thường gọi GPL là “viral” để ám chỉ nó lan rộng vô kiểm soát. Đó là ẩn dụ nặng nề.

Nó thường nói tới copyleft: nếu bạn phân phối tác phẩm phái sinh của mã GPL, bạn phải cung cấp mã tương ứng theo GPL. Yêu cầu đó là cố ý: nó bảo tồn quyền cho người dùng phía sau. Đó không phải “lây nhiễm”; đó là một điều khoản mà bạn có thể chọn chấp nhận—hoặc tránh bằng cách dùng mã khác.

“Tôi có thể dùng mã GPL trong app hoặc dịch vụ không?” (ở mức cao)

Quy tắc thông thường: nghĩa vụ kích hoạt chủ yếu khi bạn phân phối.

  • Sử dụng nội bộ: dùng phần mềm GPL trong công ty thường không buộc bạn công bố thay đổi.
  • Giao app/thiết bị: nếu bạn phân phối chương trình theo GPL (hoặc tác phẩm phái sinh), bạn thường phải cung cấp mã nguồn và thông báo giấy phép.
  • SaaS / dịch vụ web: chạy phần mềm GPL trên máy chủ thường không buộc phát hành mã cho người dùng. (AGPL được tạo ra để thu hẹp khoảng này.)

Khi quan trọng, hãy xem xét chính xác cách mã được kết hợp và phân phối—đừng chỉ dựa vào giả định.

Phê bình, tranh cãi và các cuộc tranh luận còn tiếp diễn

Phát hành app React sớm hơn
Khởi tạo một ứng dụng web React và lặp nhanh mà không mất quyền kiểm soát mã nguồn.

Richard Stallman là một nhân vật gây tranh cãi. Có thể thừa nhận điều đó—và vẫn nói rõ về ảnh hưởng lâu dài của các ý tưởng và giấy phép gắn với ông.

Một khởi điểm hữu ích là tách hai cuộc trò chuyện: (1) tranh luận về Stallman với tư cách cá nhân và thành viên cộng đồng, và (2) tác động có thể đo lường của nguyên tắc phần mềm tự do, Dự án GNU, và GNU GPL lên cấp phép phần mềm và quyền nhà phát triển. Phần thứ hai có thể bàn bằng nguồn chính (văn bản giấy phép, lịch sử dự án, mô hình áp dụng) ngay cả khi người ta có quan điểm mạnh về phần đầu.

Quản trị và “ai quyết định?”

Một phê bình thường gặp không phải về cấp phép mà là về quản trị: dự án quyết định thế nào, ai có thẩm quyền, và chuyện gì xảy ra khi người sáng lập, người duy trì và người dùng muốn điều khác nhau. Cộng đồng phần mềm tự do đã vật lộn với các câu hỏi như:

  • Lãnh đạo nên được chọn hay thay thế thế nào?
  • Quỹ nên do thành viên, hội đồng quản trị, hay người duy trì điều hành?
  • Khi nào “tự do” của người duy trì xung đột với nhu cầu của đóng góp viên?

Những câu hỏi này quan trọng vì giấy phép đặt điều khoản pháp lý, nhưng không tự tạo ra quy trình ra quyết định lành mạnh.

Bao trùm, hành vi và chuẩn mực cộng đồng

Một cuộc tranh luận khác tập trung vào tính bao dung và chuẩn mực cộng đồng: dự án đặt kỳ vọng về hành vi tôn trọng thế nào, xử lý xung đột ra sao, và chào đón người mới như thế nào. Một số cộng đồng nhấn mạnh quy tắc ứng xử chính thức; số khác thích ít quy tắc hơn và điều phối không chính thức. Không cách nào tự nhiên là “đúng”, nhưng cân nhắc đánh đổi là thực tế và đáng thảo luận mà không có công kích cá nhân.

Giữ cuộc thảo luận thực tế

Nếu bạn đánh giá di sản của Stallman, tốt nhất là giữ các khẳng định có thể kiểm chứng: GPL yêu cầu gì, copyleft thay đổi thực hành tuân thủ ra sao, và những ý tưởng này ảnh hưởng thế nào tới giấy phép và tổ chức sau này. Bạn có thể phê bình, ủng hộ hoặc phân vân—chỉ cần hướng tới sự chính xác, tôn trọng và rõ ràng về điều bị phê bình.

Kết luận thực tế: chọn giấy phép và đóng góp

Món quà thực tế lớn nhất của Stallman cho các đội hàng ngày là một câu hỏi rõ ràng: bạn muốn đảm bảo những quyền nào cho người dùng phía sau? Trả lời câu đó biến “chọn giấy phép” từ cảm tính thành một quyết định.

Cây quyết định đơn giản

  • Bạn có muốn người khác (kể cả đối thủ) tái sử dụng mã của bạn với ít điều kiện? Chọn giấy phép permissive (ví dụ MIT, Apache-2.0).
  • Bạn có muốn các cải tiến của mã bạn luôn có thể được chia sẻ khi phân phối? Chọn copyleft mạnh (ví dụ GNU GPL).
  • Bạn muốn chia sẻ áp dụng chủ yếu cho các sửa đổi thư viện, trong khi cho phép ứng dụng độc quyền liên kết? Chọn copyleft yếu (ví dụ LGPL, MPL).

Nếu chưa chắc, quyết định dựa trên mục tiêu của bạn: áp dụng (permissive) vs tương hỗ (copyleft) vs tương hỗ thân thiện với thư viện (copyleft yếu).

Các bước thực tế để phát hành phần mềm có trách nhiệm

  1. Chọn một giấy phép cho mỗi dự án và ghi rõ trong README.
  2. Thêm file LICENSE ở gốc repo (sao chép toàn văn giấy phép).
  3. Thêm chú thích bản quyền nơi tổ chức bạn yêu cầu.
  4. Ghi chép phụ thuộc (trực tiếp và các phụ thuộc quan trọng) và giấy phép của chúng.
  5. Nếu bạn phân phối nhị phân, chuẩn bị các thông báo, đề nghị mã nguồn (nếu áp dụng) và ghi nhận attribution.

Nếu bạn dùng phát triển hỗ trợ AI (bao gồm nền tảng chat như Koder.ai), checklist này càng quan trọng hơn: bạn vẫn phân phối phụ thuộc thực, sản phẩm thực và nghĩa vụ giấy phép thực. Tốc độ không loại trừ trách nhiệm—nó chỉ làm cho quy trình tuân thủ có thể lặp lại trở nên quý giá.

Tạo quy trình tuân thủ nội bộ nhẹ

Làm cho nó nhàm chán và lặp lại:

  • Sinh SBOM trong quá trình build.
  • Giữ mẫu file notices và cập nhật khi phụ thuộc thay đổi.
  • Thêm điểm kiểm tra đánh giá giấy phép vào PR/phát hành (dù chỉ là checklist 10 phút).

Để so sánh sâu hơn, xem Choosing an open-source license và GPL vs MIT vs Apache.

Câu hỏi thường gặp

Phần mềm “tự do” có nghĩa là phần mềm không phải trả tiền?

"Free software" có nghĩa là tự do, chứ không phải giá cả.

Một chương trình có thể miễn phí về giá tiền nhưng vẫn không tự do nếu bạn không thể kiểm tra, sửa đổi hoặc chia sẻ nó. Phần mềm tự do tập trung vào quyền được chạy, nghiên cứu, thay đổi và phân phối phần mềm mà bạn phụ thuộc vào.

Bốn “quyền thiết yếu” trong phần mềm tự do là gì?

Định nghĩa dựa trên bốn quyền cơ bản:

  • Freedom 0: chạy chương trình cho bất kỳ mục đích nào
  • Freedom 1: nghiên cứu và thay đổi nó
  • Freedom 2: phân phối lại bản sao
  • Freedom 3: phân phối các phiên bản đã chỉnh sửa

Nếu thiếu bất kỳ quyền nào trong số này, người dùng mất kiểm soát và sự hợp tác trở nên khó khăn hơn.

Tại sao quyền truy cập mã nguồn được coi là không thể thương lượng?

Bởi vì bạn không thực sự nghiên cứu hay sửa đổi phần mềm khi không có mã nguồn.

Truy cập mã nguồn cho phép:

  • kiểm toán về bảo mật/riêng tư
  • tự sửa lỗi (hoặc thuê người khác sửa)
  • tiếp tục bảo trì khi tác giả gốc bỏ cuộc
  • chia sẻ cải tiến mà không phải tự làm lại từ đầu
Copyleft là gì, nói một cách đơn giản?

Copyleft dùng luật bản quyền để yêu cầu “chia sẻ theo cùng điều kiện” khi bạn phân phối lại.

Bạn có thể sử dụng, sửa đổi, thậm chí bán phần mềm, nhưng nếu bạn phân phối phiên bản đã chỉnh sửa, bạn phải cung cấp cho người nhận các quyền tương tự (thường bằng cách phát hành mã nguồn tương ứng dưới cùng một giấy phép).

GPL yêu cầu gì khi tôi giao phần mềm cho khách hàng?

GPL trao cho người dùng quyền rộng (chạy, nghiên cứu, sửa đổi, chia sẻ) và yêu cầu đối ứng khi phân phối.

Nếu bạn phân phối nhị phân có GPL, thường bạn phải:

  • cung cấp mã nguồn tương ứng (hoặc cách hợp lệ để nhận nó)
  • kèm theo văn bản giấy phép GPL
  • giữ nguyên các chú thích bản quyền
  • cấp phép các thay đổi của bạn theo GPL khi chúng là phần của tác phẩm được phân phối
Tôi có phải mở mã các thay đổi nếu dùng mã GPL nội bộ không?

Thường thì không.

Với phần mềm GPL, nghĩa vụ thường bắt nguồn khi bạn phân phối. Nếu bạn chỉnh sửa mã GPL để dùng nội bộ và không đưa bản sao ra bên ngoài tổ chức, thường bạn không phải công bố thay đổi.

(Có các trường hợp cạnh; xem đây là quy tắc chung chứ không phải tư vấn pháp lý.)

Thực tế thì gì được xem là “tác phẩm phái sinh” theo GPL?

Tùy thuộc cách mã được kết hợp.

Nói chung:

  • Liên kết/ghép mã GPL vào chương trình của bạn có thể tạo ra tác phẩm phái sinh và phải được phân phối theo GPL.
  • Chạy chương trình GPL như một tiến trình riêng và giao tiếp qua giao diện chuẩn thường được xử lý khác biệt.

Khi vấn đề quan trọng, hãy vạch rõ kiểu tích hợp trước khi phát hành.

Sự khác nhau giữa GPLv2, GPLv3 và LGPL là gì?

Chúng nhắm tới các mối quan tâm khác nhau:

  • GPLv2: phiên bản cổ điển, được dùng rộng rãi
  • GPLv3: bổ sung bảo vệ liên quan đến bằng sáng chế và “tivoization” (thiết bị chặn phần mềm đã sửa đổi)
  • LGPL: dành cho thư viện; cho phép liên kết từ ứng dụng độc quyền trong những điều kiện nhất định trong khi giữ thư viện miễn phí

Chọn dựa trên việc bạn muốn tính đối ứng mạnh mẽ (GPL) hay thân thiện với thư viện (LGPL).

Nếu tôi cung cấp dịch vụ web (SaaS), GPL có buộc tôi phải phát hành mã nguồn không?

Thông thường không theo GPL.

Nếu bạn chạy phần mềm GPL trên máy chủ của mình và người dùng chỉ tương tác qua mạng, bạn thường không phân phối bản sao, nên nghĩa vụ chia sẻ mã theo GPL thường không kích hoạt.

Nếu bạn muốn quyền sử dụng qua mạng cũng buộc phải chia sẻ mã, hãy xem xét AGPL và cân nhắc kỹ mô hình triển khai của bạn.

Doanh nghiệp làm thế nào để kiếm tiền với phần mềm tự do và mã nguồn mở?

Có—nhiều công ty kiếm tiền với phần mềm tự do/mã nguồn mở bằng dịch vụ và cung cấp.

Mô hình phổ biến:

  • hỗ trợ trả phí, đào tạo, SLA, tư vấn
  • hosting và dịch vụ quản lý (tiện lợi, mở rộng, sao lưu, tuân thủ)
  • cấp phép kép (một bản miễn phí cho cộng đồng + điều khoản thương mại cho khách hàng)
  • “open core” (giữ lõi miễn phí, bán tính năng trả phí) — có thể hiệu quả nhưng dễ gây căng thẳng với cộng đồng

Lựa chọn giấy phép ảnh hưởng chiến lược: permissive có thể tối đa hóa việc áp dụng; copyleft có thể ngăn nhánh đóng nguồn và hỗ trợ các mô hình dựa trên dịch vụ.

Related posts