
Đề thi Olympic Tin học OLP06
chủ đề Mã nguồn mở (MNM)
Phần I : Hiểu biết về MNM
Câu hỏi 1 : (2 đ)
Copyleft là gì ? Nói Copyleft là loại bỏ bản quyền (Copyright) có đúng không ? Hãy giải thích.
Trả lời :.............................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
Câu hỏi 2 : (2 đ)
Free software và freeware giống và khác nhau ở những điểm nào ?
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 3 : (1 đ)
Giấy phép sử dụng (license) là chỉ dành riêng cho phần mềm, đúng hay sai ? Nếu sai, hãy cho một vài
phản ví dụ.
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 4 : (1 đ)
Một tác giả X quyết định đặt phần mềm S của mình dưới giấy phép GPL (General Public license).
Anh ta đã sao chép nguyên văn giấy phép này vào gói phần mềm cũng như vào các tệp mã của phần
mềm. Phần mềm này như vậy đã trở thành phần mềm GPL hay chưa ? Nếu chưa, hãy giải thích và
cho biết làm thế nào để phần mềm của tác giả X trở thành phần mềm GPL.
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
1/16

..........................................................................................................................................................
Câu hỏi 5 : (1 đ)
Một nhà phát triển cải tiến một phần mềm GPL, sau đó đã bán sản phẩm của mình cho một khách
hàng Y. Việc làm này có gì trái với giấy phép GPL không ? Hãy giải thích.
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 6 : (1 đ)
Phong trào ¨nguồn mở¨ (Open Source) có phải chỉ dành riêng cho phần mềm hay có thể dùng cho cả
các lĩnh vực khác ? Nếu có hãy cho một vài ví dụ.
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 7 : (1 đ)
Một PMNM có thể sử dụng một khuôn dạng dữ liệu đóng không ? Hãy giải thích.
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 8 : (1 đ)
Làm thế nào để nhận biết một phần mềm tự do (free software) ?
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 9 : (2 đ)
CVS (Concurrent Versions System) là một công cụ hầu như không thể thiếu của các dự án PMNM.
Hãy cho biết lợi ích của CVS và những gì công cụ này không thể làm được trong việc phát triển phần
mềm.
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
2/16

Câu hỏi 10 : (3 đ)
Một công cụ khá phổ biến hay được phân phối cùng với mã nguồn của một PMNM là configure.
Công cụ này có công dụng gì cho người sử dụng PMNM ? Hãy chỉ ra các bước đặc trưng khi sử dụng
công cụ này.
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 11 : (2 đ)
Trong tác phẩm nổi tiếng ¨Thánh đường và chợ giời¨ (The Cathedral and the Bazar), tác giả Eric
Raymond, một trong những người khởi xướng phong trào Mã nguồn mở, đã dùng hình ảnh ¨chợ giời¨
để chỉ phương pháp xây dựng PMNM. Hãy nêu những đặc trưng chính của phương pháp này. Mọi
PMNM có phải đều được xây dựng theo mô hình này không ?
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 12 : (2 đ)
Một phần mềm có thể đồng thời được phân phối theo 2 loại giấp phép là mã nguồn mở và mã nguồn
đóng được không ? Nếu được thì làm như vậy có ích lợi gì ?
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Phần II : LibPDF++
Câu hỏi 13 (1đ)
Một công ty phần mềm OpenCom dự định sử dụng thư viện LibPDF++ trong sản phẩm thương mại
BigTester của mình. Theo như luật bản quyền thì công ty OpenCom có được phép làm điều này không?
a) Không thể được, do sử dụng LibPDF++ nên BigTester cũng phải là sản phẩm mã nguồn mở.
b) Có thể được, với điều kiện là trong sản phẩm BigTester phải có nói rõ là OpenCom đã sử
dụng LibPDF++ trong phần About và mã nguồn của LibPDF++ phải được phân phối kèm sản
phẩm.
3/16

c) Có thể được, với điều kiện là trong sản phẩm BigTester phải có nói rõ là OpenCom đã sử
dụng LibPDF++ trong phần About.
d) Được, OpenCom vẫn có quyền thương mại sản phẩm BigTester khi sử dụng LibPDF++.
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 14 (3đ)
Một lập trình viên muốn xuất một đoạn văn bản p ra tài liệu pdf với font f cho trước. Do đoạn văn bản
khá dài, nên không thể nào ghi trọn vẹn trên một dòng mà buộc phải ghi thành nhiều dòng (nhưng vẫn
nằm trong cùng một trang). Trả lời 2 câu hỏi sau:
a) (2đ) LibPDF++ có hỗ trợ trực tiếp việc xuất đoạn văn bản như trên hay không?
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
b) (1đ) Nếu có, đó là hàm nào? Nếu không có, vậy cần sử dụng hàm nào để tìm vị trí ngắt dòng?
(Chỉ cần chỉ ra tên hàm là đù)
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 15 (4đ)
Sử dụng trình biên dịch gcc phiên bản 3.2 trở lên (hoặc trình biên dịch tương đương) theo hướng dẫn
của tác giả, có thể xuất ra một chuỗi unicode (wstring) như trong Câu hỏi 14 không? Yêu cầu giải
thích rõ.
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 16 (2đ)
a) (1đ) Liệt kê tất cả các phiên bản pdf được LibPDF++ hỗ trợ:
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
4/16

b) (1đ) Chỉ ra tập tin, dòng liên quan.
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 17 (5đ)
a) (1đ) LibPDF++ định nghĩa một số loại font chữ chuẩn, có thể sử dụng trong tài liệu pdf mà
không cần nhúng font chữ vào tài liệu. Có bao nhiêu họ font chữ chuẩn được định nghĩa trong
tài liệu pdf? Liệt kê ra.
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
b) (3đ) Để sử dụng một font chữ không chuẩn, cần phải sử dụng các hàm nào để nhúng font chữ
này vào tài liệu?
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
c) (1đ) Nếu như trong tài liệu pdf sử dụng font chữ Webdings nhưng chỉ dùng một vài ký tự, có
thể yêu cầu LibPDF++ chỉ nhúng font chữ của riêng các ký tự này vào tài liệu pdf được không
? Hãy giải thích.
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 18 (4đ)
Hãy thực hiện sửa đổi trên thư viện LibPDF++ sao cho, bất kể lập trình viên có yêu cầu nhúng font
hay không thì font chữ vẫn không được nhúng vào tài liệu pdf. Yêu cầu chỉ rõ các tập tin, vị trí cần
sửa đổi và nội dung sửa đổi.
Trả lời :.............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
5/16

