Logo
lehuutrung.dev
Tổng quan về mã nguồn mở

Tổng quan về mã nguồn mở

January 5, 2020
14 min read
Table of Contents

Xin chào các bạn, lại là mình đây 😁

Hôm nay, mình xin chia sẻ với các bạn một số kiến thức về mã nguồn mở mà mình đã tìm hiểu được, những chia sẻ của mình có thể còn nhiều thiếu sót, nếu các bạn có đóng góp thì vui lòng bình luận vào bên dưới bài viết nhé! Giờ thì cũng nhau tìm hiểu xem mã nguồn mở là cái gì và ăn được không nào!

1. GIỚI THIỆU MÃ NGUỒN MỞ

1.1. Mã nguồn là gì?

Mã nguồn (Source Code) là một phiên bản phần mềm được viết bởi con người (lập trình viên) ở dạng văn bản. Mã nguồn bao gồm một hoặc nhiều tập tin chứa các dòng lệnh dưới dạng một hoặc nhiều ngôn ngữ lập trình. Mã nguồn có thể dịch được thành ngôn ngữ máy (machine language) bởi trình biên dịch (compiler) để có thể sử dụng trên máy tính hoặc các thiết bị có vi xử lý.

Ví dụ về mã nguồn một chương trình được viết bằng C++
Ví dụ về mã nguồn một chương trình được viết bằng C++

Về cơ bản, mã nguồn có 2 loại: Mã nguồn mở (Open Source Code) và mã nguồn đóng (Closed Source Code).

1.2. Mã nguồn mở là gì?

Ngày nay, chúng ta thường nghe nói rất nhiều về các phần mềm “mã nguồn mở”, nhưng thực sự chúng ta đã hiểu rõ về nó hay chưa?

Mã nguồn mở (Open Source Code) chỉ những phần mềm mà mã nguồn có sẵn cho phép mọi người (thường là các lập trình viên) có thể tải về, xem, sử dụng, chỉnh sửa lại nếu thấy phù hợp và có thể phân phối lại nếu tuân thủ các điều khoản về mã nguồn mở do tổ chức Open Source Initiative — Hoa Kỳ đề ra.

Minh họa cho mã nguồn mở
Minh họa cho mã nguồn mở (Nguồn: Perforce.com)

Tại sao lại cần có mã nguồn mở? Từ thời công nghệ còn sơ khai, ý tưởng về mã nguồn mở được các lập trình viên và các chuyên gia nhen nhóm khi mà họ cần phải phát triển các công nghệ mới dựa trên hình thức hợp tác. Lấy ví dụ, một lập trình viên ở Việt Nam phát triển một ứng dụng mới. Tuy nhiên, một lập trình viên ở Mỹ lại nghiên cứu ứng dụng và tìm ra phương pháp để cải thiện ứng dụng đó tốt hơn. Hình thức hợp tác giữa hai lập trình viên đã giúp cho kiến thức được chia sẻ, thúc đẩy khả năng sáng tạo và người dùng sẽ được sử dụng những ứng dụng mới nhất, tốt nhất.

Minh họa cho ý tưởng hình thành mã nguồn mở (Nguồn: VectorStock)
Minh họa cho ý tưởng hình thành mã nguồn mở (Nguồn: VectorStock)

2. NỘI DUNG TỔNG QUAN VỀ MÃ NGUỒN MỞ

2.1. Lịch sử hình thành và phát triển mã nguồn mở

Cụm từ “mã nguồn mở” được tạo ra tại hội nghị chiến lược tổ chức ngày 3 tháng 2 năm 1998 tại Palo Alto, California, ngay sau khi công bố việc phát hành mã nguồn trình duyệt web Netscape. Hội nghị tập trung vào việc thông báo của Netscape đã tạo ra cơ hội để học tập, phát triển và là minh chứng cho sự ưu việt của quá trình phát triển phần mềm mở. Những người tham gia hội nghị cho rằng việc Netscape công bố mã nguồn, thuyết phục người dùng và các nhà phát triển tham gia sáng tạo, cải thiện mã nguồn đã tạo ra một cộng đồng mã nguồn mở. Đồng thời, họ cũng thấy cần phải có từ để chỉ ra và phân biệt nó với các khái niệm khác và cụm từ “open source” đã được đề xuất bởi Christine Peterson. Hai người trong số những người tham gia hội nghị là Bruce Perens và Eric Raymond đã thành lập nên tổ chức Open Source Initiative (OSI) — công ty thúc đẩy việc sử dụng phần mềm nguồn mở vào cuối tháng 2 năm 1998. Việc sử dụng các thuật ngữ và phát triển phần mềm với sự hỗ trợ ban đầu của cộng đồng mã nguồn mở Netscape đã nhanh chóng lan rộng và phát triển như ngày nay.

Logo của OSI và cụm từ “Open Source” (Nguồn: Hackernoon)
Logo của OSI và cụm từ “Open Source” (Nguồn: Hackernoon)

2.2. Ưu điểm của mã nguồn mở

Những phần mềm mã nguồn mở mang lại nhiều lợi ích cho người sử dụng và nhiều trong số chúng lại khiến chúng ta sử dụng mã nguồn mở thường xuyên hơn.

  • Miễn phí và sẽ luôn như vậy: Các phần mềm mã nguồn mở là miễn phí hay có chăng chỉ là những quyên góp nhỏ ủng hộ cho tổ chức (cá nhân) đứng ra phát hành các bản phần mềm đó trên tinh thần tự nguyện. Chắc chắn đây là một yếu tố quan trọng giúp người dùng đến gần hơn với phần mềm nguồn mở.
  • Dễ dàng chia sẻ: Phần mềm nguồn mở cho phép chúng ta chia sẻ với bạn bè, người thân hay bất kỳ ai mà không sợ vi phạm bản quyền.
  • Bảo mật: Với sự tham gia của cả cộng đồng thì việc tìm ra lỗ hổng bảo mật dễ dàng hơn bao giờ hết, đó cũng là lý do mà các phần mềm nguồn mở thường sẽ có bản cập nhật nhanh chóng và kịp thời hơn so với phần mềm bản quyền.
  • Tính năng phù hợp: Các phần mềm mã nguồn mở thường sẽ có các tính năng rất phù hợp với nhu cầu của người dùng vì chính họ đang đóng góp một phần vào việc phát triển phần mềm, đó cũng là lý do mà các phần mềm mã nguồn mở thường rất nhẹ nhàng.

Đối với cá nhân thì lợi ích của phần mềm nguồn mở là không có gì để bàn cãi, vậy còn đối với các tổ chức, doanh nghiệp thì sao? Họ được lợi gì khi sử dụng phần mềm mã nguồn mở?

  • Chi phí: Những phần mềm mã nguồn mở thường miễn phí hoặc chi phí rất thấp. Những phần mềm này thường được các doanh nghiệp săn đón hơn các phần mềm bản quyền khi mà họ sẽ cắt giảm bớt chi phí bản quyền, phí nâng cấp, phí phát triển phần mềm. Đồng thời các phần mềm mã nguồn mở thường sẽ tận dụng được tối đa phần cứng (phần mềm mới nhất vẫn có thể chạy tốt trên các đời máy tính cũ), giúp cho các doanh nghiệp có thể tiết kiệm tối đa chi phí. Chi phí mà họ bỏ ra chỉ để phát triển phần mềm cho phù hợp với từng giai đoạn phát triển mà thôi.
  • Tính tùy biến: Việc phải chờ đợi vào một số nhà phát triển phần mềm có thể gây thiệt hại cho doanh nghiệp, thay vào đó, nếu sử dụng phần mềm nguồn mở, họ có thể tự phát triển dựa trên mã nguồn có sẵn để phù hợp hơn với tình hình doanh nghiệp của họ.
  • Bản quyền: Với việc sử dụng phần mềm nguồn mở, tổ chức, doanh nghiệp sẽ tránh được việc vi phạm bản quyền hoặc tranh chấp về bản quyền phần mềm.
  • An toàn, bảo mật: Việc nhiều người cùng phát triển giúp dễ dàng kiểm soát các lỗ hổng bảo mật, điều này thực sự quan trọng với các doanh nghiệp, giúp họ tránh được những rủi ro nhất định.
  • Tăng tính thương hiệu: Đối với các doanh nghiệp, việc có thể tự hào tuyên bố chuyển đổi công nghệ thành công và hoàn toàn không vi phạm bản quyền là một điểm cộng trong mắt đối tác của họ.

2.3. Nhược điểm của mã nguồn mở

Nói đi cũng phải nói lại, đúng với câu “Trên đời không có gì là hoàn hảo”, phần mềm mã nguồn mở cũng vậy, dù có rất nhiều ưu điểm những bên cạnh đó vẫn còn tồn tại những nhược điểm.

  • Ít có bản cập nhật tính năng mới: Thông thường, những bản cập nhật của phần mềm mã nguồn mở chỉ là những bản vá bảo mật và những sửa đổi nho nhỏ, ít khi tung ra những tính năng mới vì ban đầu nó đã được tạo ra để đáp ứng các nhu cầu nhất định và không phải ai cũng có đủ nhiệt huyết để duy trì hỗ trợ một dự án suốt đời.
  • Phân nhánh: Vì là những dự án mã nguồn mở làm cho cộng đồng, mà “chín người mười ý”, nên để thỏa mãn nhu cầu của những nhóm người nhất định, các dự án sẽ dần tách thành các nhánh phát triển khác nhau, đó cũng là nguyên nhân làm cho người dùng ái ngại khi phải sử dụng phần mềm mã nguồn mở vì có quá nhiều sự lựa chọn!
  • Thiếu nhân lực, kinh phí duy trì: Vì là phần mềm miễn phí, ai cũng có thể sử dụng nên chẳng mấy ai đóng góp, ủng hộ để những nhà phát triển tiếp tục duy trì cập nhật những dự án mã nguồn mở nữa. Nhiều dự án lớn muốn tồn tại và phát triển phải được duy trì bởi quỹ của một công ty hay tổ chức nào đó. Với những dự án phát triển nhỏ lẻ thì chẳng khác nào những nhà phát triển phần mềm đang đi làm từ thiện vì đam mê cả!

2.4. Một số ví dụ điển hình phần mềm mã nguồn mở

  • Hệ điều hành Linux: Theo thống kê vào tháng 4 năm 2019, thị phần máy tính của hệ điều hành này chỉ là 2.18% nhưng lại có tới 85% điện thoại thông minh trên thế giới chạy Android. Nhưng đừng để con số ấy đánh giá tầm quan trọng của hệ điều hành Linux, Linux hầu như có mặt ở khắp nơi trong nhà của chúng ta, từ ti vi thông minh, tủ lạnh thông minh, máy giặt, xe hơi cho đến chiếc đồng hồ thông minh, điện thoại thông minh,…Có thể chiếc máy tính của chúng ta cài các hệ điều hành khác như Windows hay MacOS, nhưng gần như toàn bộ các máy chủ hay các siêu máy tính trên thế giới đều chạy hệ điều hành Linux, điều này cũng đồng nghĩa với việc chúng ta sử dụng Internet cũng là đang gián tiếp sử dụng Linux. Và tất nhiên, Internet hay các phần mềm liên quan đến Linux đều miễn phí. Đó là lý do mà các tổ chức, doanh nghiệp (đặc biệt là các doanh nghiệp về công nghệ) thường sử dụng hệ điều hành Linux trên máy tính của họ.
Giao diện hệ điều hành Ubuntu – một bản phân phối HĐH Linux (Nguồn: FreeCodeCamp)
Giao diện hệ điều hành Ubuntu – một bản phân phối HĐH Linux (Nguồn: FreeCodeCamp)
  • Wordpress: Là phần mềm mã nguồn mở cho phép chúng ta tạo ra trang web, blog một cách dễ dàng. Wordpress được viết bằng ngôn ngữ PHP và sử dụng hệ cơ sở dữ liệu MySQL. Ngay cả hai thành phần chính tạo nên Wordpress cũng là phần mềm mã nguồn mở thì không có lý do gì để Wordpress không miễn phí và phổ biến với mọi người. Nó có rất nhiều plugin giúp việc phát triển trang web trở nên cực kỳ nhanh gọn và dễ dàng.
Minh họa cho WordPress (Nguồn: wecan-group.com)
Minh họa cho WordPress (Nguồn: wecan-group.com)
  • Trình duyệt web FireFox: Có lẽ không cần phải giải thích nhiều khi nói đến trình duyệt web mã nguồn mở Firefox. Sỡ hữu các đặc điểm của phần mềm nguồn mở, FireFox là miễn phí và bảo mật, do đó cực kỳ được người dùng ưu chuộng.
Minh họa giới thiệu về FireFox Browser (Nguồn: ZDNet.com)
Minh họa giới thiệu về FireFox Browser (Nguồn: ZDNet.com)

2.5. Tương lai của mã nguồn mở ở nước ta

Trong thời đại phát triển toàn cầu cùng với cuộc cách mạng công nghiệp 4.0 như hiện nay thì công nghệ thông tin đóng vai trò cực kỳ quan trọng giúp nước ta có thể hội nhập với Thế giới. Và chính phần mềm mã nguồn mở sẽ là vũ khí cực kỳ quan trọng giúp chúng ta đạt được những điều đó. Chính vì thế, trong tương lai tới đây, việc sử dụng phần mềm mã nguồn mở sẽ giúp cho kinh tế phát triển hơn, đồng thời tránh được việc vi phạm bản quyền, giúp cho con người Việt Nam chúng ta năng động và sáng tạo hơn. Việc áp dụng các chính sách của Nhà nước sẽ sớm giúp đưa phần mềm mã nguồn mở trở nên quen thuộc hơn. Cụ thể, quyết định số 08/2007/QĐBTTTT đã ban hành danh mục các sản phẩm phần mềm mã nguồn mở đáp ứng được yêu cầu sử dụng trong các cơ quan, tổ chức, nhà nước hay quyết định số 1872/QĐ-BTTTT đã công bố định mức kinh tế - kĩ thuật triển khai áp dụng phần mềm nguồn mở. Qua đó cho thấy Nhà nước ta đang có những định hướng phát triển phần mềm mã nguồn mở và cũng cho chúng ta thấy được tương lai của phần mềm mã nguồn mở.

3. KẾT LUẬN

Phần mềm mã nguồn mở thực sự được ưa chuộng trong thời đại số ngày nay. Mặc dù không thể phủ nhận một số lợi ích nhất định của các công nghệ độc quyền với các doanh nghiệp, nhưng phần mềm mã nguồn mở đã và đang đóng một vai trò cực kỳ quan trọng trong việc giúp chúng ta đến gần hơn với một thế giới hiện đại mà ở đó, chúng ta chính là những người đã đóng góp để xây nên thế giới đó. Với những người sử dụng bản phân phối cuối cùng của phần mềm mã nguồn mở thì không có lý do gì để từ bỏ nó khi mà nó đã đáp ứng gần như toàn bộ những nhu cầu cần thiết của chúng ta. Là những người văn minh trong thời đại số, nếu không có đủ điều kiện kinh tế để mua bản quyền phần mềm, hãy sử dụng phần mềm mã nguồn mở để tôn trọng những con người đang ngày đêm đóng góp công sức cho ngành công nghiệp phần mềm.

Ghi chú: Nội dung bài viết được mình chia sẻ và tham khảo các nguồn:

[1] What is open source code and close source code: Quora (13/10/2019)

[2] Source Code Definition: Linfo (13/10/2019)

[3] Kiến thức cơ bản về mã nguồn: Websitechuan (13/10/2019)

[4] Open Source Definition: Opensource (14/10/2019)

[5] History of the OSI: Opensource (01/01/2020)

[6] Sử dụng mã nguồn mở, hướng đi tương lai: Tonphong (01/01/2020)

[7] Quyết định số 1872-QĐ-BTTTT: Thuvienphapluat (01/01/2020)

[8] Operating Systems Market Share: Hostingtribunal (01/01/2020)

[9] Nhược điểm của phần mềm mã nguồn mở: Techrum (05/01/2020)

Cảm ơn các bạn đã theo dõi bài viết! Cùng mình chia sẻ đến với nhiều người hơn nhé!