Giới thiệu phần mềm mã
nguồn mở và Linux
TS. Hà Quốc Trung
Nội dung
•
•
•
•
Phần mềm mã nguồn mở
Linux
Các phần mềm mã nguồn mở khác
Các kho phần mềm mã nguồn mở
Các thao tác trên phần mềm
• Sử dụng phần mềm
• Thay đổi, nâng cấp, cải tiến phần mềm
– Reverse enginering
• Phân phối phần mềm
– Bản thực hiện, mã nguồn
– Nguyên bản, nâng cấp, thay đổi
• Quản lý phần mềm
– Cho phép/không cho phép thực hiện các thao tác
trên phần mềm
Bản quyền phần mềm
• Tài liệu qui định việc sử dụng và phân phối
phần mềm
• Phần mềm sở hữu
– Phần mềm miễn phí/phần mềm chia sẻ
• Bản quyền phần mềm sở hữu
• Bản quyền phần mềm tự do và mã nguồn mở
– Phần mềm tự do
– Phần mềm mã nguồn mở
Phần mềm sở hữu
• Ràng buộc chặt chẽ đảm bảo quyền lợi của người
làm ra phần mềm: COPY RIGHT
• Chặt chẽ về quyền phân phối và quản lý phần
mềm
• Hạn chế quyền thay đổi và cải tiến
• Hạn chế việc phân tích ngược mã
• Ví dụ
– MS Excel EULA
– MathWork Mathlab
Phần mềm tự do/mã nguồn mở
• Cung cấp tối đa các quyền trên phần mềm cho
số đơng NSD- TỰ DO
• Để thực hiện việc thay đổi, nâng cấp và phân
phối lại, cung cấp mã nguồn cho NSD: MÃ
NGUỒN MỞ
• Hạn chế quyền quản lý để đảm bảo cung cấp
các quyền khác cho NSD (COPY LEFT)
Đặc điểm của PMTD- MNM
•
•
•
•
•
•
•
•
•
Tự do phân phối
Ln kèm mã nguồn
Cho phép thay đổi phần mềm
Không cho phép thay đổi các ràng buộc bản quyền
Có thể có ràng buộc về việc
– Tích hợp mã nguồn
– Đặt tên phiên bản
Khơng phân biệt cá nhân/nhóm khác nhau
Khơng phân biệt mục đích sử dụng
Không hạn chế các phần mềm khác
Trung lập về công nghệ
Mơ hình phát triển nhà thờ
• Q trình phân tích thiết kế xây dựng được
quản lý giám sát chặt chẽ
• Độ tự do của các thành viên tham gia phát
triển thấp
• VD
– Our source phần mềm
Mơ hình phát triển bazar
•
•
•
•
•
NSD đóng vai trị nhà phát triển
Độ tự do lớn
Phiên bản đầu tiên sớm
Tích hợp các mô đun thường xuyên
3 phiên bản
– Bền vững, beta, night version
• Tính mơ đun hóa cao
• Mơ hình ra quyết định động
Lịch sử của PMTD-MNM
• 1983-GNU Project
• 1985- FSF, Richard Stallman, GPL
– />ftware_licences
• 1998- OSI
– />ftware_licences#OSI_approved_licenses
• 2008
– Pháp lý hóa: Vi phạm -> các quyền bị hủy->dùng PM
lậu
Bản quyền của PMMNM
•
•
•
•
•
PMMNM có bản quyền
Có thể bị vi phạm
Thể hiện đóng góp của các tác giả
Khó khăn trong việc chuyển đổi bản quyền
Quá nhiều người đóng góp
Nguồn lực phát triển phần mềm
MNM
•
•
•
•
•
Tư vấn
Đào tạo
Hỗ trợ kỹ thuật
Tài trợ/quảng cáo
Thương mại hóa
– Một phần (2 phiên bản song song)
– Tồn bộ (đóng mã nguồn)
So sánh phần mềm mở/khơng mở
• PM MNM triệt tiêu thị trường PM?
–
–
–
–
–
Có thể có thu nhập từ các dự án PM MNM
PMMNM là bước trung gian cho PM TM
Chia sẻ chi phí phát triển
Khơng bị cản trở bởi động lực kinh tế (vd vá lỗi)
Không sử dụng cơ chế ẩn
• PM MNM có thể phát triển
– Theo nhu cầu NSD
– Không bị giới hạn sự sáng tạo
– Cần sự hỗ trợ pháp lý
Ưu điểm
•
•
•
•
•
Mở rộng thị trường
Thiết lập các chuẩn cơng nghiệp
Lơi kéo được các nhà phát triển
Cập nhật sự phát triển về công nghệ
Cung cấp các phần mềm tin cậy, ổn định, giá
thành hạ
• Mềm dẻo, đổi mới, sáng tạo
• Khơng bị sức ép thương mại
Nhược điểm
• Khó thuyết phục NSD khơng là nhà phát triển
• Khơng có các dữ liệu về tính năng của phần
mềm
• Sản phẩm khó thương mại hóa
• 50-50 với hacker
Nội dung
•
•
•
•
Phần mềm mã nguồn mở
Linux
Các phần mềm mã nguồn mở khác
Các kho phần mềm mã nguồn mở
Lịch sử phát triển
• 1960-1970: Unix
– Tin cậy, sẵn sàng
– Mềm dẻo
– Sử dụng rộng rãi
– Ảnh hưởng tới các nhà thiết kế, phát triển
GNU Project
•
•
•
•
•
FSF-Richard Stallman
GNU GPL
Compilators
System tools
GNU Hurd (Stalled)
Berkeley Software Distribution
•
•
•
•
•
•
Xuất phát điểm Bell lab UNIX
Tranh cãi về bản quyền với AT&T
Kết thúc bằng vụ kiện 1990
Ràng buộc bởi bản quyền
Hạn chế trong phát triển
FreeBSD, Darwin, ……
MINIX and Tannenbaum
• Andrew Tannenbaum
– OS, Networking, DS, …
• MINIX with source code
– Can not modify
• 1991 Linus Tovald
– Nhân hệ điều hành mã nguồn mở
Linux kernel
•
•
•
•
•
1994: 1.0
1999: 2.2.0
2001: 2.4
2003: 2.6.0
2009: 2.6.3
Cons
Tanenbaum
• Nhân đơn khối (q cũ)
–
–
–
–
Chỉ hỗ trợ PC
Khơng có kiểm sốt mã nguồn
Một số chức năng vơ nghĩa
Sẽ bị thay thế bởi GNU Hurd
• Samizdat
• Copy mã nguồn của MINIX
• Tannebaum: Đã thiết kế lại, đơn nhân, khơng có
mã nguồn của Linux
Thành phần của Linux
•
•
•
•
Nhân hệ điều hành
Các drivers
Các phần mềm hệ thống
Các phần mềm ứng
dụng
• X Windows
• Các phần mềm ứng
dụng với giao diện đồ
họa
Tính năng của Linux
• Mã nguồn mở
– Nguồn sáng tạo vơ hạn?
• Hỗ trợ nhiều phần cứng
• Có các phân phối khác nhau
• Thừa kế các tính năng Unix
–
–
–
–
–
Khả chuyển
Đa NSD, đa nhiệm
Một hệ thống file duy nhất
Shell
Các tính năng mạng
Bản phân phối Linux
Linux = Kernel (OS Basic Part)
Developers
Software Packages
Distributor
SW management toosl
Installation tools
User interface
Kernel
Distribution
25