Phần mềm nguồn mở cấu thành từ gì? Đáp án B giải thích

Câu hỏi: Phần mềm nguồn mở được cấu thành từ những gì?

  • A. Mô đun chương trình viết trên ngôn ngữ máy.
  • B. Mô đun chương trình viết trên ngôn ngữ lập trình bậc cao.
  • C. Phần mềm thương mại.
  • D. Phần mềm miễn phí.

Đáp án đúng là B. Mô đun chương trình viết trên ngôn ngữ lập trình bậc cao. Phần mềm nguồn mở được tạo nên từ các mô đun chương trình (mã nguồn) viết bằng ngôn ngữ lập trình bậc cao — thứ ngôn ngữ mà con người đọc, hiểu, chỉnh sửa và phân phối lại được, đúng với bản chất “mở” của nó.

Minh họa câu hỏi phần mềm nguồn mở được cấu thành từ những gì với bốn phương án A, B, C, D

Vì sao đáp án B đúng

Điểm cốt lõi của phần mềm nguồn mở nằm ở chỗ mã nguồn được công bố công khai, cho phép bất kỳ ai xem, sửa đổi và phân phối lại. Muốn làm được điều đó, mã nguồn phải ở dạng con người đọc được, tức là được viết bằng ngôn ngữ lập trình bậc cao như C, C++, Java, Python, PHP, JavaScript… Mỗi mô đun chương trình trong phần mềm là một khối mã như vậy, đảm nhận một chức năng nhất định và có thể được cộng đồng chỉnh sửa độc lập.

Ngôn ngữ lập trình bậc cao dùng câu lệnh gần với ngôn ngữ tự nhiên và tư duy toán học, nên đọc hiểu, gỡ lỗi và sửa đổi đều thuận lợi. Chính đặc tính này là điều kiện kỹ thuật để mô hình phát triển cộng đồng của phần mềm nguồn mở vận hành: hàng nghìn lập trình viên có thể cùng đọc một đoạn mã, phát hiện lỗi và gửi bản sửa. Ví dụ quen thuộc là nhân Linux, trình duyệt Firefox, bộ ứng dụng văn phòng LibreOffice hay trình phát đa phương tiện VLC — mã nguồn của chúng đều viết bằng ngôn ngữ bậc cao và công khai cho cộng đồng.

Cần phân biệt: bản thân phần mềm khi chạy vẫn được máy tính thực thi dưới dạng mã máy, nhưng mã máy đó là kết quả biên dịch từ mã nguồn bậc cao. Câu hỏi đang xét hỏi về thành phần cấu thành nên phần mềm nguồn mở, tức là nguyên liệu mà lập trình viên viết ra và chia sẻ, chứ không phải dạng thức sau khi biên dịch.

Vì sao các phương án còn lại sai

A. Mô đun chương trình viết trên ngôn ngữ máy — ngôn ngữ máy là chuỗi lệnh nhị phân mà bộ xử lý hiểu trực tiếp. Loại mã này gần như không đọc được với con người, sửa một lệnh có thể làm hỏng toàn bộ chương trình, nên không thể là nền tảng cho việc chia sẻ và chỉnh sửa cộng đồng. Đây là phương án dễ nhầm nhất vì nó vẫn nói về “mô đun chương trình” — chỉ khác ở cấp ngôn ngữ; ai không phân biệt được ngôn ngữ máy với ngôn ngữ bậc cao sẽ chọn sai.

C. Phần mềm thương mại — “thương mại” mô tả mô hình kinh doanh, không mô tả cách cấu thành phần mềm. Phần mềm thương mại điển hình như Windows, Microsoft Office, Photoshop có mã nguồn đóng, không cho phép truy cập và sửa đổi. Ngoài ra, một sản phẩm vẫn có thể vừa mang giấy phép nguồn mở vừa được bán thương mại, nên tiêu chí này không xác định được phần mềm nguồn mở.

D. Phần mềm miễn phí — miễn phí chỉ nói về giá, không nói về quyền truy cập mã nguồn. Rất nhiều phần mềm miễn phí nhưng đóng mã nguồn (freeware), người dùng được dùng không mất tiền nhưng không được xem hay sửa mã. Ngược lại, phần mềm nguồn mở hoàn toàn có thể bán và thu phí hỗ trợ kỹ thuật.

Hệ thống kiến thức liên quan

Phần mềm nguồn mở (open-source software) được định nghĩa chủ yếu bằng quyền truy cập mã nguồn: mã có sẵn để xem, sửa đổi và phân phối lại. Cần tách rõ ba cặp khái niệm thường bị trộn lẫn trong đề trắc nghiệm:

  • Cách cấu thành: mô đun chương trình viết bằng ngôn ngữ lập trình bậc cao — đây là điều câu hỏi hướng tới.
  • Mô hình kinh doanh: thương mại hay phi thương mại, không quyết định phần mềm có nguồn mở hay không.
  • Chi phí sử dụng: miễn phí hay có phí, cũng không quyết định tính nguồn mở.

Nói cách khác, “nguồn mở” gắn với mã nguồn công khai và được phép chỉnh sửa, chứ không gắn với giá bán hay mục đích kinh doanh. Giấy phép nguồn mở (GPL, MIT, Apache…) là cơ sở pháp lý xác nhận các quyền đó, và chúng chỉ có ý nghĩa khi mã nguồn tồn tại ở dạng con người đọc được — tức ngôn ngữ bậc cao.

Mẹo ghi nhớ và cách nhận diện nhanh

Gắn từ “mở” với “mã nguồn đọc được”: mở để đọc, mở để sửa, mở để chia sẻ. Ngôn ngữ máy không đọc được nên bị loại ngay từ đầu. Hai phương án còn lại nói về tiền và mô hình kinh doanh, không nói về mã nguồn, nên cũng loại. Khi gặp câu hỏi dạng này trong đề Tin học, hãy tự hỏi: phương án nào mô tả đúng nguyên liệu tạo ra phần mềm? Đáp án là mô đun chương trình viết bằng ngôn ngữ lập trình bậc cao.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *