Tuesday, July 17, 2007

Ôi mã nguồn mở của tôi

Tôi là một người ủng hộ phong trào mã nguồn mở (*), một trong rất nhiều thành quả vĩ đại mà giới hacker dâng tặng thế giới này. Tôi chưa bao giờ từ bỏ bất kì cơ hội nào để giải thích, giới thiệu và quảng bá lợi ích của việc sử dụng mã nguồn mở. Tôi đã từng tham gia vô số các cuộc tranh luận (vô bổ) có đề tài kiểu như "Windows vs Linux". Nếu mã nguồn mở là một tín ngưỡng với đấng tối cao là ngài Richard Stallman, chắc hẳn tôi sẽ là một tín đồ trung thành và có lẽ hơi bị cuồng tín. Do đó khi thấy một bài viết có nhan đề "Dùng nguồn mở không công khai: vấn nạn của phần mềm Việt?", tôi liền nhào vào đọc rồi hết sức thất vọng. Và đó cũng là lý do của bài viết hôm nay (đề nghị vỗ tay :-p).

Công ty riêng của tôi làm về phần mềm mã nguồn mở. Khi tôi giới thiệu những sản phẩm và dịch vụ của công ty mình, hầu hết mọi người đều rất ngạc nhiên là tại sao tôi lại bán phần mềm mã nguồn mở, điều mà họ cho rằng là không hợp lệ. Đây chính là một trong những ngộ nhận mà tôi thường gặp nhất. Bạn hoàn toàn có thể bán, thậm chí với giá cao, phần mềm mã nguồn mở. Nói tóm gọn là như vậy, tôi sẽ quay lại đề tài này vào một dịp khác. Rất may là bài báo trên không mắc phải ngộ nhận này, nhưng nó lại chứa đựng nhiều ngộ nhận khác còn nghiêm trọng hơn:
Phần mềm nguồn mở (PMNM) là phần mềm với mã nguồn được chia sẻ cho cộng đồng miễn phí và sử dụng một giấy phép bản quyền nguồn mở. Giấy phép này cho phép bất cứ ai cũng có thể nghiên cứu, thay đổi và cải tiến phần mềm với mục đích tiếp tục nghiên cứu, phát triển mã nguồn đó.

Nhưng nếu sử dụng phần mềm nguồn mở với mục đích thương mại như viết phần mềm, xây dựng website sau đó bán cho các đơn vị khác, mà không ghi rõ nguồn, ngầm "coi như" đó là sản phẩm do bản thân mình tự lập trình từng dòng lệnh, thì lại là một chuyện hoàn toàn khác.

Đáng tiếc là tình trạng này hiện rất phổ biến ở Việt Nam, nó chứng tỏ vấn đề nhận thức trong sử dụng PMNM, cũng như tính cộng đồng và sự tôn trọng quyền sở hữu trí tuệ của giới IT trong nước vẫn còn nhiều hạn chế. Trong số đó, có cả website của hai ngân hàng lớn tại Việt Nam.

Trên một số diễn đàn về bảo mật và tin học gần đây có thông tin bàn luận về website Techcombank.com.vn và một số website được xây dựng từ NukeViet có các tham số URL (URL parameter) giống nhau tới từng chữ một! Giao diện cũng có nhiều điểm tương đồng, trong khi Techcombank.com.vn không hề có các thông tin trên website nói rằng hệ thống site của họ được phát triển từ mã nguồn mở!

Sự thật là cho đến thời điểm này, không có dòng nào trong các giấy phép mã nguồn mở như GPL, BSD, Apache hay MIT bắt buộc bạn phải ghi copyright hay credit cho nhóm tác giả khi sử dụng phần mềm của họ như là một người sử dụng cuối. Trong trường hợp của Techcombank, họ là người sử dụng cuối, họ hoàn toàn có quyền lược bỏ các thông tin về copyright nếu như họ sử dụng phần mềm mã nguồn mở. Thậm chí nếu Techcombank tự phát triển website của họ dựa trên phần mềm mã nguồn mở, họ cũng không cần phải công bố mã nguồn. Nếu các giấp phép mã nguồn mở yêu cầu phải ghi credit và copyright, chắc hẳn bạn sẽ thấy những dòng copyright kiểu như thế này: website này được viết bằng ngôn ngữ PHP, với máy chủ web là Apache, cơ sở dữ liệu là MySQL, hệ điều hành là Linux cộng với mấy trang A4 danh sách các developer đã tham gia viết các phần mềm này lolz!

Các điều lệ về copyright notice trong phần mềm mã nguồn mở chỉ áp dụng khi bạn sao chép hoặc phân phối các phiên bản nguyên gốc hay đã có sữa chữa rồi, nghĩa là nó chỉ áp dụng cho developer hay các nhà phân phối phần mềm. Trong trường hợp này, nó áp dụng cho công ty GLTEC, đơn vị được Techcombank thuê để thực hiện website:
Phía GLTEC khẳng định thông tin quan trọng nhất: Họ thừa nhận "Trong quá trình xây dựng website Techcombank.com.vn, GLTEC có sử dụng hệ thống nguồn mở PHP Nuke".

Thế nhưng đại diện GLTEC cũng thản nhiên: "Chúng tôi cho rằng, chỉ cần ghi rõ là có sử dụng mã nguồn mở trong source code của sản phẩm là được, và chúng tôi đã làm việc này trong website của Techcombank. Còn việc ghi rõ website được phát triển bằng PMNM trên trang chủ, chúng tôi quyết định không ghi vì lý do bảo mật!"
GLTEC thản nhiên là có cơ sở bởi vì họ chẳng làm gì trái luật nếu như họ thật sự sử dụng phần mềm mã nguồn mở. Họ chỉ cần thông báo cho Techcombank biết là họ có sử dụng phần mềm nguồn mở trong sản phẩm mà họ bán cho Techcombank là đủ.Tuy nhiên, trong trường hợp này thì GLTEC đã sai bởi vì php-nuke, phần mềm mà họ sử dụng, không phải là phần mềm nguồn mở:
Tuy nhiên, theo anh Nguyễn Ngọc Minh - admin diễn đàn Javavietnam.org, điều này trái với các quy định đi kèm đối với việc sử dụng hệ thống mã mở PHP Nuke! PHP Nuke yêu cầu phải ghi rõ copyright PHP Nuke ở footer (phía dưới trang web):

Khi làm động tác "view source" file "Footer.PHP" trong bộ source code của PHP Nuke, rõ ràng ngay ở vị trí trên cùng, hết sức dễ thấy và trang trọng, có đăng ba dòng thông báo lớn: "Do not remove the following copyright line. You're not remove or edit this / If you really need to remove it and have my written authorization check: http://phpnuke.org/modules.php?name=Commercial_License / Play fair and support the development, please!" (Tạm dịch: Không được xóa dòng bản quyền duới đây và cũng không được phép biên tập nó! / Nếu thực sự cần phải xóa thì phải được phép của người sở hữu licence http://phpnuke.org... / Hãy chơi đẹp và ủng hộ sự phát triển chung!)

Tại sao anh Nguyễn Ngọc Minh không nghĩ rằng với yêu cầu như trên, php-nuke không còn là phần mềm mã nguồn mở (chính xác là phần mềm tự do nữa) mặc dù tác giả vẫn phát hành nó theo giấy phép GPL? Đã có một thảo luận trên mailing list của Debian vào năm 2003 về đề tài này:
Is PHPNuke free or not? Several new discussions talked about whether license problems in PHPNuke are real and rendering the package non-free. A notice tries to make users believe that the package is still free, but Steve Langasek concluded that the license addition indeed renders the package non-free. The maintainer agreed that he would upload the package to non-free, which didn't happen yet.

Và đây là nguyên nhân khiến tôi gửi bài viết lên blog này:
Khi chúng tôi trao đổi các vấn đề bảo mật với một số chuyên gia CNTT, nhiều người cho rằng việc không ghi rõ sản phẩm được phát triển bằng PM nguồn mở vì yêu cầu bảo mật là một quan điểm không chính xác.

Một chuyên gia nói: "Sản phẩm nguồn mở là trí tuệ của cộng đồng, vì thế nó chỉ có độ bảo mật cao khi được cập nhật lỗi (bug) thường xuyên. Việc ghi copyright trên website sẽ nhắc người quản trị phải thường xuyên cập nhật bug hơn!".

Không biết đây là chuyên gia nào nhỉ? Nhà bạn có một cục vàng, bạn giấu cục vàng trong một cái két sắt, cái két sắt đó để ở trong một căn phòng được khóa bằng một ổ khóa to nằm trong một căn nhà có vài anh lính bảo vệ. Bạn nghĩ cục vàng có an toàn hơn khi bạn thông báo rộng rãi cho tất cả mọi người được biết két sắt bạn xài là hiệu gì, các ổ khóa bạn mua của hãng nào và lịch trực của các anh bảo vệ? Security through only obscurity is no security but security plus obscurity is better than security alone!

Tóm lại, người dùng cuối (Techcombank) thì bị lừa, lập trình viên (GLTEC) thì bất chấp luật lệ, nhà báo (VietnamNet) thì viết mà không nghĩ và các chuyên gia thì tha hồ phán. Đó là cách mà họ vẫn đang nói và làm về mã nguồn mở ở VN.

-Thái.
-------
(*): thật ra nói chính xác phải là phần mềm tự do và phần mềm mã nguồn mở nhưng do ở VN thì hai khái niệm này được xem là một và được gọi chung là "mã nguồn mở" nên tôi tạm gọi như vậy trong bài viết này

13 comments:

Anonymous said...

Phan me tu do (Free Software) va phan mem ma nguon mo (OpenSource Software) la hai khai niem khac nhau. K/n phan mem tu do rong hon so voi Pm nguon mo: mot trong nhung tieu chi cua phan me tu do la phan mem do phai la phan mem nguon mo. Trong khi do phan mem nguon mo chua chac da la phan mem tu do (vi du PHP-Nuke hay cac thu vien Ms: MFC, atl, wtl,...)

rilwis said...

Anh Thái ơi, anh có thể viết 1 bài nêu những khái niệm và quy tắc về phần mềm mã nguồn mở được không? Những vấn đề anh nói em vẫn chưa cảm thấy thực sự hiểu rõ. Cám ơn anh.

Anonymous said...

chào Thái,

Bài của bạn các luận điểm đều đúng, tuy nhiên bài báo trên cũng không hẳn là sai, vì phần mềm mã nguồn mở có rất NHIỀU loại giấy phép khác nhau mà: GPL, LGPL, CDDL, MPL, CCL... nếu mình không lầm thì ít nhất cũng hơn 30 loại khác nhau.

thân mến,

Sonny said...

Bài viết hay lắm. Kết luận rất "thấm"

"Tóm lại, người dùng cuối (Techcombank) thì bị lừa, lập trình viên (GLTEC) thì bất chấp luật lệ, nhà báo (VietnamNet) thì viết mà không nghĩ và các chuyên gia thì tha hồ phán. Đó là cách mà họ vẫn đang nói và làm về mã nguồn mở ở VN."

Tuy nhiên, chúng ta cũng nên thông cảm cho mấy phóng viên, vì đa số họ không phải là phóng viên chuyên ngành. Khi viết những bài chuyên sâu về một lĩnh vực như bảo mật hoặc mã nguồn mở chẳng hạn, họ đành phải dựa vào "ý kiến chuyên gia" để hoàn thành bài viết mà thôi.

Những bài như thế này nên đăng trên các báo, sẽ giúp mọi người có một cái nhìn đúng đắn hơn về các khái niệm trong IT (bảo mật, mã nguồn mở).

Cảm ơn anh về bài viết.

Nguyễn Tiến Sĩ said...

Hôm nay đọc bài viết về mã nguồn nguồn mở trên Quản Trị Mạng thấy hơi nhột, định viết một bài viết, nhưng thấy Ông nay viết hay quá nên tịt luôn. Vì cảm thấy không viết hay bằng ông. Cám ơn vì bài viết.

thaidn said...

rilwis: hi vọng sẽ có một bài như thế trong một ngày gần đây :p.

-Thái

Anonymous said...

Bài viết hay, cô đọng. Bên ddth.com đang thảo luận vấn đề này, tôi đã có phản ánh trình độ yếu kém của phóng viên (hay là "chuyên gia??" trong việc dịch cái GPL.
Chuyện phân biệt dựa trên từ ngữ ("tự do" hay "mở" ...) thì còn nhiều vấn đề tranh cãi. Chúng ta tốt hơn hết nên phân biệt bằng license, có 3 loại:
1)Public domain: không có license gì hết, anh muốn làm gì thì làm
2)BSD-style license (Apache): tác giả giữ lại copyright nhưng anh cũng có thể làm gì cũng được
3)Copyleft (GPL): tác giả giữ lại copyright và anh không được sửa đổi license khi re-distribute cho người khác.

Thực sự thì GPL là "mất tự do" nhất. Các công ty thường ưa chuộng loại 1) và 2) hơn, vì họ có thể giữ bí mật kinh doanh + kiếm lời. Điển hình là các library của Apache Foundation được dùng rất rộng rãi

Anonymous said...

Free software = phần mềm miễn phí

Anonymous said...

Bài viết rất hay.

Anonymous said...

"Tôi là một người ủng hộ phong trào mã nguồn mở (*), một trong rất nhiều thành quả vĩ đại mà giới hacker dâng tặng thế giới này."

Tôi chỉ đọc dến đấy rồi thôi. Có mối liên hệ nào giữa "mã nguồn mở" và hacker? Tôi đọc khá nhiều các mã nguồn mở mà thấy có chỗ nào là "hack" đâu?

Huy Thang said...

Đề nghị anh Thái public lại cái bài viết này của anh về việc nhầm lẫn tai hại trong bài "Dùng nguồn mở không công khai: Vấn nạn phần mềm Việt" lên Vietnamnet để nhiều người biết đó còn tránh. Anh viết cái bài này trên cái personal blog này thì ai biết đấy là đâu mà quan tâm.
Cũng đề nghị anh luôn: anh cần phải commnent cho những comment về bài này của anh. Tôi thấy có người vào đây post: "free software = phần mềm miễn phí" (sai) có chết người không cơ chứ. Anh phải làm gì chứ sao lại kệ thây như vậy.
Mong anh nghĩ đến việc nhiều "chuyên gia" Việt Nam vẫn còn lẫn lộn các khái niệm về open source, free software, freeware.
PS: 2 bài viết của stallman dưới đây tuy không phải là mới nhưng những ai mới chập chững tìm hiểu về open source, free software thì nên xem:
Why “Free Software” is better than “Open Source” (stallman)
http://www.gnu.org/philosophy/free-software-for-freedom.html
Why “Open Source” misses the point of Free Software (stallman)
http://www.gnu.org/philosophy/open-source-misses-the-point.html

saylinux said...

Lần đầu tiên được biết đến Blog của anh khi ấy vẫn chưa biết gì về Linux hết. Hôm nay tình cờ tìm đọc lại thì thấy anh vẫn viết bài như xưa. Nếu được anh có thể cho em vài ý kiến đóng góp cho www.ubuntu-vn.org để trở thành một cộng đồng người dùng Ubuntu đúng nghĩa ở Việt Nam không?

Manhvu said...

Mot bai viet thu vi, to cung da dang nghien cuu ve ma nguon mo.