1. Trong ngữ cảnh phần mềm mã nguồn mở, `vendor lock-in` (khóa chặt vào nhà cung cấp) là gì và mã nguồn mở giải quyết vấn đề này như thế nào?
A. `Vendor lock-in` là việc phụ thuộc hoàn toàn vào một nhà cung cấp duy nhất; mã nguồn mở không liên quan đến vấn đề này.
B. `Vendor lock-in` là việc nhà cung cấp khóa mã nguồn; mã nguồn mở làm trầm trọng thêm vấn đề này.
C. `Vendor lock-in` là việc phụ thuộc vào một nhà cung cấp cụ thể, gây khó khăn khi chuyển đổi sang nhà cung cấp khác; mã nguồn mở giảm thiểu điều này bằng cách cho phép người dùng tự do thay đổi nhà cung cấp hoặc tự duy trì phần mềm.
D. `Vendor lock-in` là việc người dùng bị khóa tài khoản; mã nguồn mở không giải quyết được vấn đề này.
2. Trong mô hình phát triển phần mềm mã nguồn mở, `upstream` và `downstream` đề cập đến điều gì?
A. Upstream là phiên bản cũ, downstream là phiên bản mới.
B. Upstream là mã nguồn gốc hoặc dự án chính, downstream là các nhánh phát triển hoặc bản phân phối phái sinh.
C. Upstream là phần mềm phía máy chủ, downstream là phần mềm phía máy khách.
D. Upstream là phần mềm miễn phí, downstream là phần mềm thương mại.
3. Điều gì KHÔNG phải là một lợi ích trực tiếp của việc sử dụng phần mềm mã nguồn mở?
A. Giảm chi phí bản quyền.
B. Tăng cường bảo mật do kiểm tra mã nguồn công khai.
C. Luôn có hỗ trợ kỹ thuật chuyên nghiệp được đảm bảo bởi một công ty duy nhất.
D. Khả năng tùy biến cao.
4. Mô hình phát triển `chợ` (bazaar) thường được liên kết với phần mềm mã nguồn mở, mô tả điều gì?
A. Một mô hình phát triển tập trung, có tổ chức chặt chẽ và kiểm soát nghiêm ngặt.
B. Một mô hình phát triển phân tán, mở cửa cho nhiều người tham gia đóng góp, thử nghiệm và sửa lỗi.
C. Một mô hình phát triển theo giai đoạn, tuân thủ quy trình waterfall.
D. Một mô hình phát triển dựa trên hợp đồng và thời hạn cố định.
5. Điều gì có thể là một lý do khiến một dự án phần mềm mã nguồn mở thất bại?
A. Quá nhiều người đóng góp.
B. Thiếu sự hỗ trợ từ cộng đồng, thiếu người đóng góp và duy trì dự án.
C. Giấy phép mã nguồn mở quá tự do.
D. Quá nhiều tính năng.
6. So sánh với phần mềm độc quyền, phần mềm mã nguồn mở có thể mang lại lợi thế gì về mặt đổi mới?
A. Phần mềm độc quyền thường đổi mới nhanh hơn do có nguồn lực lớn hơn.
B. Phần mềm mã nguồn mở không thúc đẩy đổi mới.
C. Phần mềm mã nguồn mở có thể thúc đẩy đổi mới nhanh hơn nhờ sự tham gia của cộng đồng lớn và đa dạng, cùng khả năng tự do tiếp cận và sửa đổi mã.
D. Đổi mới chỉ phụ thuộc vào nhà phát triển chính, không liên quan đến mã nguồn mở hay độc quyền.
7. Ví dụ nào sau đây là một hệ điều hành mã nguồn mở phổ biến?
A. Microsoft Windows
B. macOS
C. Ubuntu Linux
D. iOS
8. So sánh chi phí ban đầu giữa phần mềm mã nguồn mở và phần mềm độc quyền, điều nào sau đây thường đúng?
A. Phần mềm mã nguồn mở luôn đắt hơn phần mềm độc quyền.
B. Phần mềm độc quyền thường miễn phí, trong khi mã nguồn mở phải trả phí.
C. Phần mềm mã nguồn mở thường có chi phí ban đầu thấp hơn hoặc miễn phí, trong khi phần mềm độc quyền thường yêu cầu chi phí bản quyền.
D. Chi phí ban đầu của cả hai loại phần mềm luôn tương đương.
9. Khái niệm `copyleft` trong giấy phép mã nguồn mở nhằm mục đích gì?
A. Ngăn chặn mọi hình thức sửa đổi và phân phối lại phần mềm.
B. Đảm bảo rằng các phiên bản sửa đổi và mở rộng của phần mềm cũng phải được phân phối dưới giấy phép mã nguồn mở tương tự.
C. Cho phép độc quyền hóa các phần mềm phái sinh từ mã nguồn mở.
D. Bảo vệ quyền sở hữu trí tuệ của tác giả ban đầu một cách tuyệt đối.
10. Ví dụ nào sau đây KHÔNG phải là phần mềm mã nguồn mở?
A. Mozilla Firefox
B. LibreOffice
C. Adobe Photoshop
D. WordPress
11. Giấy phép mã nguồn mở nào sau đây ít hạn chế nhất, cho phép sử dụng, sửa đổi và phân phối lại phần mềm gần như không giới hạn?
A. GNU Affero General Public License (AGPL)
B. GNU Lesser General Public License (LGPL)
C. BSD Licenses
D. Creative Commons Attribution-ShareAlike
12. Ưu điểm chính của việc sử dụng phần mềm mã nguồn mở trong các tổ chức là gì?
A. Luôn có hỗ trợ kỹ thuật chuyên nghiệp 24/7 từ nhà cung cấp.
B. Chi phí bản quyền thường thấp hơn hoặc miễn phí, và khả năng tùy biến cao.
C. Đảm bảo 100% không có lỗi bảo mật vì mã nguồn được kiểm tra công khai.
D. Tương thích hoàn toàn với mọi hệ điều hành và phần cứng.
13. Rủi ro bảo mật nào có thể đặc biệt liên quan đến phần mềm mã nguồn mở?
A. Không có rủi ro bảo mật vì mã nguồn được kiểm tra công khai.
B. Rủi ro bảo mật thấp hơn so với phần mềm độc quyền.
C. Việc các lỗ hổng bảo mật được công khai có thể bị khai thác trước khi có bản vá, nếu quá trình vá lỗi chậm trễ.
D. Rủi ro bảo mật chỉ tồn tại ở phần mềm độc quyền.
14. Giấy phép `copyleft yếu` (weak copyleft) như GNU Lesser General Public License (LGPL) khác với `copyleft mạnh` (strong copyleft) như GNU General Public License (GPL) ở điểm nào?
A. LGPL không phải là giấy phép mã nguồn mở.
B. LGPL chỉ áp dụng cho các thư viện phần mềm, không áp dụng cho ứng dụng.
C. LGPL cho phép liên kết với phần mềm độc quyền mà không yêu cầu phần mềm độc quyền đó phải trở thành mã nguồn mở, trong khi GPL thì yêu cầu.
D. LGPL mạnh mẽ hơn GPL về việc bảo vệ mã nguồn.
15. Nhược điểm tiềm ẩn của việc sử dụng phần mềm mã nguồn mở có thể là gì?
A. Không có cộng đồng hỗ trợ người dùng.
B. Ít tài liệu hướng dẫn sử dụng.
C. Có thể thiếu hỗ trợ kỹ thuật chuyên nghiệp và trách nhiệm pháp lý rõ ràng từ một nhà cung cấp duy nhất.
D. Hiệu suất thường kém hơn so với phần mềm độc quyền.
16. Loại hình kinh doanh nào sau đây thường được xây dựng dựa trên phần mềm mã nguồn mở?
A. Bán bản quyền phần mềm mã nguồn mở.
B. Cung cấp dịch vụ hỗ trợ, tùy chỉnh, triển khai và đào tạo cho phần mềm mã nguồn mở.
C. Ngăn chặn việc sử dụng phần mềm mã nguồn mở cho mục đích thương mại.
D. Giữ mã nguồn mở nhưng bán các tính năng bổ sung độc quyền.
17. Giấy phép mã nguồn mở nào sau đây là giấy phép `permissive` (cho phép), cho phép sử dụng, sửa đổi và phân phối lại phần mềm cho cả mục đích mã nguồn mở và độc quyền mà không yêu cầu chia sẻ mã nguồn?
A. GNU General Public License (GPL)
B. Creative Commons License
C. MIT License
D. Affero General Public License (AGPL)
18. Trong bối cảnh phát triển phần mềm, `sự minh bạch` của mã nguồn mở mang lại lợi ích gì?
A. Giảm sự minh bạch vì mã nguồn quá phức tạp.
B. Tăng cường sự tin tưởng và khả năng kiểm chứng của phần mềm, vì mã nguồn có thể được kiểm tra bởi bất kỳ ai.
C. Không có lợi ích thực tế, chỉ là một khía cạnh lý thuyết.
D. Làm giảm tính bảo mật của phần mềm.
19. Phần mềm mã nguồn mở được định nghĩa chính xác nhất là gì?
A. Phần mềm được bán với giá rẻ hoặc miễn phí cho người dùng.
B. Phần mềm mà mã nguồn của nó được công khai cho phép người dùng tự do sử dụng, nghiên cứu, sửa đổi và phân phối.
C. Phần mềm chỉ có thể được sử dụng bởi các tổ chức phi lợi nhuận.
D. Phần mềm được phát triển bởi một nhóm nhỏ các lập trình viên tình nguyện.
20. Trong ngữ cảnh phần mềm mã nguồn mở, `contributor` (người đóng góp) là ai?
A. Người dùng cuối cùng sử dụng phần mềm.
B. Người quản lý dự án mã nguồn mở.
C. Bất kỳ ai đóng góp vào dự án, có thể là mã nguồn, tài liệu, báo cáo lỗi, thử nghiệm, hoặc hỗ trợ cộng đồng.
D. Người trả tiền để sử dụng phần mềm.
21. Điều gì có thể xảy ra nếu một công ty sử dụng phần mềm mã nguồn mở mà không tuân thủ giấy phép của nó?
A. Không có hậu quả gì vì phần mềm là mã nguồn mở.
B. Có thể bị kiện vi phạm bản quyền và phải chịu trách nhiệm pháp lý.
C. Chỉ bị cảnh cáo từ cộng đồng mã nguồn mở.
D. Chỉ bị mất quyền truy cập vào các bản cập nhật phần mềm.
22. Trong phát triển phần mềm mã nguồn mở, `code review` (đánh giá mã) có vai trò gì?
A. Chỉ là hình thức, không có vai trò thực tế.
B. Đảm bảo rằng chỉ có nhà phát triển chính mới được xem mã.
C. Cải thiện chất lượng mã, phát hiện lỗi sớm và chia sẻ kiến thức giữa các nhà phát triển.
D. Làm chậm quá trình phát triển phần mềm.
23. Thuật ngữ `forking` trong ngữ cảnh phần mềm mã nguồn mở có nghĩa là gì?
A. Việc hợp nhất nhiều dự án mã nguồn mở thành một dự án lớn hơn.
B. Việc tạo ra một nhánh phát triển mới từ một dự án mã nguồn mở hiện có, thường do bất đồng về hướng phát triển hoặc mục tiêu.
C. Việc đóng góp mã nguồn trở lại dự án gốc.
D. Việc dịch mã nguồn từ ngôn ngữ lập trình này sang ngôn ngữ lập trình khác.
24. Cộng đồng đóng vai trò như thế nào trong sự thành công của phần mềm mã nguồn mở?
A. Cộng đồng chủ yếu đóng vai trò quảng bá phần mềm.
B. Cộng đồng không có vai trò quan trọng, sự thành công phụ thuộc vào nhà phát triển chính.
C. Cộng đồng đóng vai trò then chốt trong việc đóng góp mã, kiểm thử, báo cáo lỗi, hỗ trợ người dùng và phát triển tài liệu.
D. Cộng đồng chỉ có vai trò trong việc gây quỹ cho dự án.
25. Trong ngữ cảnh phần mềm mã nguồn mở, thuật ngữ `open standards` (tiêu chuẩn mở) có liên quan như thế nào?
A. Không liên quan, `open standards` chỉ áp dụng cho phần cứng.
B. Phần mềm mã nguồn mở luôn tuân thủ `open standards`.
C. Phần mềm mã nguồn mở thường được xây dựng dựa trên `open standards` để tăng tính tương tác và tránh `vendor lock-in`.
D. `Open standards` chỉ dành cho phần mềm độc quyền.
26. Lợi ích nào sau đây là đặc trưng nhất của mô hình phát triển phần mềm mã nguồn mở về mặt tốc độ phát triển?
A. Tốc độ phát triển chậm hơn do cần sự đồng thuận của cộng đồng.
B. Tốc độ phát triển luôn nhanh hơn phần mềm độc quyền.
C. Tốc độ phát triển có thể nhanh hơn nhờ sự đóng góp song song của nhiều nhà phát triển trên toàn thế giới.
D. Tốc độ phát triển không khác biệt so với phần mềm độc quyền.
27. Giấy phép mã nguồn mở nào sau đây là giấy phép `copyleft` mạnh nhất, yêu cầu bất kỳ phần mềm phái sinh nào cũng phải được phát hành dưới cùng giấy phép?
A. MIT License
B. Apache License 2.0
C. GNU General Public License (GPL)
D. BSD Licenses
28. Điều gì có thể là một thách thức khi triển khai phần mềm mã nguồn mở trong một doanh nghiệp lớn?
A. Chi phí bản quyền quá cao.
B. Thiếu tính năng và chức năng cần thiết.
C. Khả năng tương thích kém với phần cứng hiện đại.
D. Vấn đề tích hợp với các hệ thống hiện có và đảm bảo hỗ trợ kỹ thuật liên tục.
29. So với phần mềm độc quyền, phần mềm mã nguồn mở thường có ưu thế gì về khả năng tùy biến?
A. Phần mềm độc quyền tùy biến tốt hơn vì được thiết kế chuyên biệt.
B. Cả hai loại phần mềm có khả năng tùy biến tương đương.
C. Phần mềm mã nguồn mở thường có khả năng tùy biến cao hơn do người dùng có quyền truy cập và sửa đổi mã nguồn.
D. Phần mềm mã nguồn mở không thể tùy biến.
30. Lợi ích chính của việc kiểm tra mã nguồn công khai trong phần mềm mã nguồn mở là gì về mặt bảo mật?
A. Không có lợi ích gì, vì tin tặc cũng có thể xem mã nguồn.
B. Giúp phát hiện và sửa chữa lỗ hổng bảo mật nhanh chóng hơn do nhiều người có thể xem xét mã.
C. Làm cho phần mềm dễ bị tấn công hơn vì tin tặc biết rõ cấu trúc mã.
D. Chỉ có lợi ích về mặt lý thuyết, thực tế không ảnh hưởng đến bảo mật.