Bài giảng Linux và phần mềm mã nguồn mở - Trương thị Diệu Linh
Các phần mềm mã nguồn mở khác
Trên Linux
Webserver: Apache
Mail server: Postfix
Giao diện: KDE, GNOME, . . . .
Trên các hệ điều hành khác
Open Office
Gimp
FireFox
LaTeX
Cách thức trao đổi PMMNM
Sử dụng hệ thống CVS (Concurrent Versions System) để quản
lý các phiên bản
Quản lý tất cả các thay đổi của một tập các file
→ cho phép nhiều người cùng hợp tác phát triển.
Sử dụng hệ thống SVN (Apache Subversion) để quản lý các
phiên bản
SVN được phát triển theo mô hình CVS
Được dùng rất phổ biến trong các hệ thống PMMNM
51 trang |
Chia sẻ: hachi492 | Ngày: 07/01/2022 | Lượt xem: 504 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Linux và phần mềm mã nguồn mở - Trương thị Diệu Linh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở và Linux
Trương thị Diệu Linh
Bộ môn Truyền Thông và Mạng
Ngày 5 tháng 9 năm 2012
Trương thị Diệu Linh 1
Phần mềm mã nguồn mở và Linux
Nội dung
1 Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Giấy phép phần mềm
Mô hình kinh doanh với phần mềm mã nguồn mở
Quan hệ phần mềm tự do mã nguồn mở và phần mềm sở hữu
Lịch sử phát triển của PMMNM
Các loại giấy phép PMMNM
Giấy phép Apache
Giấy phép BSD
Giấy phép GNU
Mô hình phát triển phần mềm MNM
2 Giới thiệu Linux
3 Các phần mềm mã nguồn mở khác
4 Cách thức trao đổi PMMNM
Trương thị Diệu Linh 2
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Định nghĩa phần mềm tự do-mã nguồn mở
Phần mềm mà mã nguồn được cung cấp công khai và
một số quyền thông thường chỉ thuộc về người nắm giữ bản
quyền (copyright) cũng được cung cấp theo giấy phép phần
mềm (software license):
nghiên cứu, thay đổi, cải tiến
phân phối...
Ví dụ PMMNM:
Apache, Asterisk, Linux, Open Office, Firefox ...
PMMNM thường miễn phí. Sử dụng PMMNM tiết kiệm 60 tỉ
USD/năm.
Trương thị Diệu Linh 3
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Một số phần mềm mã nguồn mở
Trương thị Diệu Linh 4
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Các thao tác trên phần mềm máy tính
1 Sản xuất phần mềm
2 Sử dụng phần mềm
3 Thay đổi, nâng cấp, cải tiến phần mềm
4 Phân tích ngược: Reverse enginering
5 Phân phối phần mềm: Phân phối bản thực hiện, mã nguồn,
nguyên bản, bản nâng cấp, thay đổi ...
6 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
Nói chung các PMMNM cho phép thực hiện các thao tác 1-5.
Trương thị Diệu Linh 5
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Phân biệt PMMNM với một số loại phần mềm khác
Phần mềm sở hữu (proprietary software)
Chỉ cho phép người dùng được sử dụng phần mềm với một số
điều kiện
Không cho phép sửa đổi, phân phối hay phân tích mã ngược
phần mềm.
VD: MS Office, Windows, MS Studio, Photoshop...
Phần mềm miễn phí (freeware)
Không mất phí sử dụng nhưng không nhất thiết là mã nguồn
mở.
VD: Yahoo Messinger, Skype, IE, BKAV Home...
Phần mềm chia sẻ (shareware)
Phần mềm cung cấp miễn phí với một số hạn chế chức năng
hoặc mức độ thuận tiện.
Người dùng chỉ có được đầy đủ chức năng khi trả tiền mua
giấy phép.
Trương thị Diệu Linh 6
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Định nghĩa PMMNM của Open Source Initiative
Open Source Initiative (OSI) là tổ chức thúc đẩy sự phát triển
của Phần mềm mã nguồn mở
Open Source Definition
Introduction
Open source doesn’t just mean access to the source code. The
distribution terms of open-source software must comply with the
following criteria:
1. Free Redistribution
The license shall not restrict any party from selling or giving away
the software as a component of an aggregate software distribution
containing programs from several different sources. The license
shall not require a royalty or other fee for such sale.
Trương thị Diệu Linh 7
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Open Source Definition
2. Source Code
The program must include source code, and must allow
distribution in source code as well as compiled form. Where some
form of a product is not distributed with source code, there must
be a well-publicized means of obtaining the source code for no
more than a reasonable reproduction cost preferably, downloading
via the Internet without charge. The source code must be the
preferred form in which a programmer would modify the program.
Deliberately obfuscated source code is not allowed. Intermediate
forms such as the output of a preprocessor or translator are not
allowed.
3. Derived Works
The license must allow modifications and derived works, and must
allow them to be distributed under the same terms as the license
of the original software.
Trương thị Diệu Linh 8
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Open Source Definition
4. Integrity of The Author’s Source Code
The license may restrict source-code from being distributed in
modified form only if the license allows the distribution of "patch
files" with the source code for the purpose of modifying the
program at build time. The license must explicitly permit
distribution of software built from modified source code. The
license may require derived works to carry a different name or
version number from the original software.
5. No Discrimination Against Persons or Groups
The license must not discriminate against any person or group of
persons.
6. No Discrimination Against Fields of Endeavor
The license must not restrict anyone from making use of the
program in a specific field of endeavor. For example, it may not
restrict the program from being used in a business, or from being
used for genetic research.
Trương thị Diệu Linh 9
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Open Source Definition
7. Distribution of License
The rights attached to the program must apply to all to whom the
program is redistributed without the need for execution of an
additional license by those parties.
8. License Must Not Be Specific to a Product
The rights attached to the program must not depend on the
program’s being part of a particular software distribution. If the
program is extracted from that distribution and used or distributed
within the terms of the program’s license, all parties to whom the
program is redistributed should have the same rights as those that
are granted in conjunction with the original software distribution.
Trương thị Diệu Linh 10
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Open Source Definition
9. License Must Not Restrict Other Software
The license must not place restrictions on other software that is
distributed along with the licensed software. For example, the
license must not insist that all other programs distributed on the
same medium must be open-source software.
10. License Must Be Technology-Neutral
No provision of the license may be predicated on any individual
technology or style of interface.
– Open Source Initiative,
⇒ có thể mất phí hoặc miễn phí nhưng có quyền tự do sửa đổi
hay phân phối lại
Trương thị Diệu Linh 11
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Bản quyền phần mềm-Copyright
Bản quyền qui định quyền của TÁC GIẢ, người tạo ra phần
mềm bao gồm
quyền sao chép (copy),
quyền phân phối (distribute)
quyền thay đổi
Phần mềm MNM có bản quyền, thể hiện đóng góp của tác
giả.
Trương thị Diệu Linh 12
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Giấy phép phần mềm-Software License
Giấy phép phần mềm quy định về việc SỬ DỤNG và PHÂN
PHỐI phần mềm.
Thông thường quy định cách người dùng cuối (end-user) sử
dụng một/một vài bản sao phần mềm mà không phương hại
đến bản quyền phần mềm.
Đặc trưng quan trọng của PMMNM là nó không hạn chế
quyền sử dụng và phân phối phần mềm.
Trương thị Diệu Linh 13
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Giấy phép 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
Thường chỉ cung cấp 1 phần quyền sử dụng
Quyền sử dụng bổ sung cần trả tiền bổ sung
Hạn chế việc phân tích ngược mã
Các quyền phân phối thường bị hạn chế
Quyền thay đổi phần mềm không bao giờ cung cấp
Quyền quản lý phần mềm có giá rất cao
Ví dụ: MS Excel End User License Aggrement
Trương thị Diệu Linh 14
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
MS Excel End User License Aggrement
Chỉ cho sử dụng trên một máy tính
Không cho phép chia sẻ thông qua kết nối
Fair/Unfair?
Người sử dụng có 2 máy tính cài MS Excel
2 Người sử dụng có 2 máy tính cài MS Excel
Trương thị Diệu Linh 15
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Giấy phép phần mềm 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Ở
Đa số giấy phép cho phép cả quyền sử dụng phần mềm cho
mục đích thương mại mà không cần trả phí cho tác giả
Một số giấy phép chỉ cho phép phân phối phần mềm với mục
đích phi thương mại.
Hạn chế quyền quản lý để đảm bảo cung cấp các quyền khác
cho NSD (COPY LEFT)
Trương thị Diệu Linh 16
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Copyleft
Vì sao cần copyleft?
Cách đơn giản nhất để cung cấp phần mềm tự do là để không
bản quyền
Phần mềm không bản quyền có thể bị lợi dung để chuyển
thành phần mềm sở hữu → nó không còn tự do nữa
Copyleft là gì?
Là một loại giấy phép
Yêu cầu khi phân phối lại phần mềm (có sửa hoặc không)
phải giữ nguyên các điều khoản của giấy phép nguyên bản
→ Đảm bảo người nhận phần mềm thứ cấp cũng có quyền như
những người phân phối.
→ Thường được sử dụng đảm bảo một phần mềm và bản sửa
đổi của nó là tự do.
→ Lợi dụng luật bản quyền để cung cấp quyền tự do cho NSD.
Trương thị Diệu Linh 17
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Khái niệm phần mềm tự do-mã nguồn mở
Đặc điểm của phần mềm mã nguồn mở
Tự do phân phối
Luôn 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ệ
Trương thị Diệu Linh 18
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Mô hình kinh doanh với phần mềm mã nguồn mở
Sử dụng phần mềm mã nguồn mở trong doanh nghiệp
Khó khăn khi sử dụng PMMNM trong doanh nghiệp
Thiếu các hỗ trợ kỹ thuật chính thức cho phần mềm
Thiếu dịch vụ đào tạo sử dụng phần mềm
Phần mềm được phát triển nhanh nhưng không cung cấp định
hướng lâu dài rõ ràng
Nhiều dự án PMMNM nghiêm túc thực chất lại kiếm tiền từ
dịch vụ hỗ trợ hoặc tài liệu.
Không thể thu lợi trực tiếp từ PMMNM theo cách truyền
thống như các phần mềm thương mại
Trương thị Diệu Linh 19
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Mô hình kinh doanh với phần mềm mã nguồn mở
Mô hình dual-license với PMMNM trong môi trường
thương mại
Các doanh nghiệp PMMNM thường sử dụng mô hình dual-license
với 2 giấy phép:
Một giấy phép sở hữu (propriety license) dành cho các bên
muốn tích phần mềm vào hệ thống của họ
Một giấy phép PMMNM cung cấp phần mềm miễn phí.
VD: MySQL có 2 bản với License GPL (open source) và bản
thương mại (phải mua)
Trương thị Diệu Linh 20
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Mô hình kinh doanh với phần mềm mã nguồn mở
Cung cấp các dịch vụ trả phí đi kèm PMMNM
Đào tạo sử dụng PMMNM → thu phí
Hỗ trợ kỹ thuật cho PMMNM → thu phí
Tài trợ/quảng cáo
Thương mại hóa một phần (2 phiên bản song song)
Bản MNM để quàng cáo cho bản sở hữu.
Thu lợi từ bản sở hữu cung cấp tài chính phát triển MNM.
Thương mại hóa toàn phần: Tạo các phiên bản thương mại
mã nguồn đóng từ các bản MNM.
Trương thị Diệu Linh 21
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Mô hình kinh doanh với phần mềm mã nguồn mở
Dịch vụ do công ty Redhat cung cấp
Tư vấn
Đào tạo và cấp chứng chỉ
Hỗ trợ kỹ thuật cho các sản phẩm
Quản lý kỹ thuật cho các sản phẩm
Cung cấp các giải pháp mã nguồn mở
Cung cấp các giải pháp cho tổ chức (mã nguồn mở?)
Cung cấp các sản phẩm thương mại
Trương thị Diệu Linh 22
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Mô hình kinh doanh với phần mềm mã nguồn mở
Dịch vụ do công ty canonical cung cấp
Đào tạo
Cấp chứng chỉ
Phát triển sản phẩm
Hỗ trợ kỹ thuật
...
Trương thị Diệu Linh 23
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Quan hệ phần mềm tự do mã nguồn mở và phần mềm sở hữu
So sánh phần mềm mở và không mở
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
Vấn đề tin cậy, bảo mật: tranh cãi giữa cộng đồng MNM và
mã nguồn đóng. Thực tế các PMMNM có it lỗi hơ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ý
Trương thị Diệu Linh 24
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Quan hệ phần mềm tự do mã nguồn mở và phần mềm sở hữu
Ưu điểm của PMMNM
Miễn phí
Người dùng có thể sửa đổi mã nguồn để có sản phẩm riêng
theo ý mình
Có cộng đồng chia sẻ hỗ trợ sủa lỗi cũng như các vấn đề gặp
phải.
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
Trương thị Diệu Linh 25
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Quan hệ phần mềm tự do mã nguồn mở và phần mềm sở hữu
Nhược điểm của PMMNM
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
Trương thị Diệu Linh 26
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Lịch sử phát triển của PMMNM
Lịch sử phát triển của PMMNM
1950-1960: Phần mềm được phân phối tự do chỉ để sử dụng
phần cứng
Cuối 1960s: giá trị phần mềm tăng → giá phần mềm bắt đầu
được tính trong phần cứng cài đặt nó.
198x: Công nghiệp phần mềm bắt đầu chỉ cung cấp mã thực
thi của chương trình, chống người dùng sửa đổi phần mềm.
1980: Luật bản quyền được mở rộng cho cả chương trình máy
tính
1983: Richard Stallman, một hacker cho ra đời GNU Project
mục tiêu xây dựng HĐH GNU giống Unix nhưng hoàn toàn tự
do.
1984: GNU project đưa ra danh sách các phần mềm cần phát
triển cho HĐH điều hành GNU → các phần mềm dần được
xây dựng
Trương thị Diệu Linh 27
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Lịch sử phát triển của PMMNM
Lịch sử phát triển của PMMNM (tiếp)
1985: Richard Stallman thành lập Free Software Foundation
(FSF) với mục tiêu hỗ trợ GNU project, đưa ra định nghĩa
Free Software Definition: Bất kể nhận được phần mềm mất
phí hay không thì phải được tự do sửa đổi, phân phối lại hoặc
bán ⇒ có thể bán. FSF đưa ra Copyleft nhằm cung cấp tự do
cho người dùng phần mềm.
Đầu 1990s, các phần của hệ điều hành GNU đã đầy đủ nhưng
hạt nhân chưa hoàn thiện (mãi đến 2001 hạt nhân GNU mới
tạm ổn)
1991: Linus Torvalds cho ra đời hạt nhân Linux hòa toàn miễn
phí và có thể sửa mã nguồn.
1992: Hạt nhân Linux sử dụng giấy phép GNU GPL. Hạt nhân
Linux được tích hợp vào → HĐH GNU/Linux.
1998: Open Source Initiative (OSI) ra đời
FSF, OSI công nhận một số loại giấy phép PMMNM khác
nhau.
Trương thị Diệu Linh 28
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Các loại giấy phép PMMNM
Các loại giấy phép PMMNM
Khi tác giả cống hiến mã nguồn cho một dự án MNM, họ
cung cấp kèm theo giấy phép.
Có hơn 1400 giấy phép PMMNM.
Từ năm 2008, luật pháp Mỹ quy định PMMNM cũng phải
tuân theo luật bản quyền → người dùng cuối phải tuân theo
quy định trong giấy phép.
Có các giấy phép được tạo riêng cho một phần mềm, có loại
giấy phép áp dụng chung cho các phần mềm khác nhau.
VD một số loại giấy phép PMMNM:
Apache License,
GNU General Public License, GNU Lesser General Public
License - Copyleft,
BSD license - Các phiên bản sửa đổi có thể được phân phối với
ràng buộc chặt chẽ hơn bản gốc - "dễ dãi".
Trương thị Diệu Linh 29
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Các loại giấy phép PMMNM
Apache License
The Apache License is a free software license authored by the
Apache Software Foundation (ASF).
Cho phép sử dụng mã nguồn để phát triển các phần mềm sở
hữu cũng như tự do, mã nguồn mở
Cho phép phân phối các bản sửa đổi phần mềm mà không
cần phải sử dụng giấy phép gốc – không phải là copyleft.
Trương thị Diệu Linh 30
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Các loại giấy phép PMMNM
BSD License bản gốc - Giấy phép 4 điều khoản
BSD: Berkeley Software Distribution - UC Berkeley
BSD- Giấy phép 4 điều khoản
Copyright (c) ,
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1 Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2 Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.
Trương thị Diệu Linh 31
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Các loại giấy phép PMMNM
BSD License bản gốc - Giấy phép 4 điều khoản (tiếp)
BSD- Giấy phép 4 điều khoản (tiếp)
3 All advertising materials mentioning features or use of this
software must display the following acknowledgement: This
product includes software developed by the .
4 Neither the name of the nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior written
permission.
Trương thị Diệu Linh 32
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Các loại giấy phép PMMNM
BSD License bản gốc - Giấy phép 4 điều khoản (tiếp)
BSD- Giấy phép 4 điều khoản (tiếp)
THIS SOFTWARE IS PROVIDED BY
”AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THISTrương thị Diệu Linh 33
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Các loại giấy phép PMMNM
BSD License bản mới/sửa đổi - Giấy phép 3 điều khoản
Cho phép phân phối không hạn chế vì bất kỳ mục đích gì
Với điều kiện là dòng cảnh báo bản quyền và phần từ chối
trách nhiệm (in hoa) được giữ nguyên
Giống giấy phép 4 điều khoản trừ điều khoản số 3 về quảng
cáo đã được lược bỏ
OSI công nhận giấy phép này với tên The BSD license
FSF công nhận giấy phép này tương thích với GNU GPL dưới
tên Modified BSD license.
Trương thị Diệu Linh 34
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Các loại giấy phép PMMNM
FreeBSD License - Giấy phép 2 điều khoản
Lược bỏ điều khoản số 3,4 so với giấy phép gốc
Tương thích với GNU GPL
Như vậy các giấy phép BSD chỉ chú trọng việc bảo vệ bản quyền
trên các bản phân phối mà không bắt buộc bản phân phối phải là
tự do hay không.
Trương thị Diệu Linh 35
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Các loại giấy phép PMMNM
GNU - General Public License
Là loại giấy phép phần mềm tự do phổ biến nhất cho
PMMNM: Linux, GCC, MySQL ...
Là giấy phép của FSF
Là copyleft → cống hiến của các lập trình viên trong phần
mềm sẽ được cung cấp tự do.
Là giấy phép được dùng áp dụng chung cho các phần mềm
khác nhau.
Trải qua 3 phiên bản
Trương thị Diệu Linh 36
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Các loại giấy phép PMMNM
Giấy phép GNU-GPL phiên bản 1
Công bố năm 1989
Mục tiêu ngăn chặn việc nhà phân phối phần mềm mà giới
hạn tự do của người dùng
Yêu cầu phân phối bản thực thi của phần mềm phải kèm theo
mã nguồn dưới cùng điều khoản.
Nếu phần mềm được sửa đổi có tích hợp bên trong phần mềm
khác thì nó cũng phải được phân phối với cùng điều khoản
trong giấy phép GNU-GPL, không được chặt chẽ hơn
Không đề cập đến giá của phần mềm.
Trương thị Diệu Linh 37
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Các loại giấy phép PMMNM
Giấy phép GNU-GPL phiên bản 2
Công bố năm 1990
Điều khoản: Tự do hay là Chết (Liberty or Death)
Nếu người nhận được phần mềm với giấy phép GPL mà vì một
lý do nào đó không thể phân phối lại phần mềm mà vẫn đảm
bảo quyền tự do thì người đó không được phép phân phối
phần mềm.
Trương thị Diệu Linh 38
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Các loại giấy phép PMMNM
GNU - Lesser General Public License
GNU Library General Public License (LGPL) phục vụ cho việc
cung cấp giấy phép cho các thư viện (VD: thư viện C)
Trung gian giữa giấy phép copyleft như GNU GPL và loại "dễ
dãi" như BSD.
Chương trình "bắt nguồn" từ một chương trình (L)GPL phải
cho phép sửa đổi mã nguồn, phân tích mã ngược, debug các
sửa đổi đó.
Chương trình chạy độc lập có sử dụng thư viện (động hoặc
tĩnh) không được coi là "bắt nguồn" từ thư viện đó.
→ Copyleft đối với các chương trình, KHÔNG đối với phần mềm
liên kết đến các chương trình đó.
Có thể sử dụng thư viện dưới giấy phép LGPL viết phần mềm
sở hữu.
GNU Library GPL = GNU Lesser General Public License
Trương thị Diệu Linh 39
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Các loại giấy phép PMMNM
GNU GPL phiên bản 3
Công bố chính thức năm 2007
Phát biểu tường minh rằng phần mềm GPL có thể được bán
với bất kỳ giá nào → không hạn chế việc sử dụng cho mục
đích thương mại.
Người phân phối không được hạn chế thêm các quyền đã
được GPL cung cấp → ngăn chặn việc phân phối phần mềm
với điều kiện bảo mật nội dung.
Trương thị Diệu Linh 40
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Mô hình phát triển phần mềm MNM
Mô hình phát triển Nhà thờ
Phương pháp phát triển phần mềm truyền thống
Các vai phân tích, thiết kế, lập trình được định nghĩa rõ ràng
và được quản lý giám sát chặt chẽ
Để hệ thống được tích hợp tốt, cần ít người tham gia thiết kế
Độ tự do của các thành viên tham gia phát triển thấp
Trương thị Diệu Linh 41
Phần mềm mã nguồn mở và Linux
Phần mềm mã nguồn mở
Mô hình phát triển phần mềm MNM
Mô hình phát triển Bazar
Các vai (phân tích, thiêt kế ...) không được định nghĩa rõ
→ Độ tự do lớn
NSD đóng vai trò là người cùng phát triển phần mềm
→ phần mềm tiến hóa, được phát hiện lỗi, sửa lỗi nhanh.
Phiên bản đầu tiên xuất hiện sớm
→ sớm tìm ta người đồng phát triển.
Tích hợp các mô đun thường xuyên khi có bug được fix, cả
ban đêm.
Thường có 3 phiên bản: Bền vững, beta, night version
Tính mô đun hóa cao: Cấu trúc phần mềm được modul hóa
để có thể phát triển song song các thành phần.
Mô hình ra quyết định động
Trương thị Diệu Linh 42
Phần mềm mã nguồn mở và Linux
Giới thiệu Linux
Khái niệm, Lịch sử
Hệ điều hành mã nguồn mở
Xuất phát từ UNIX là hệ điều hành sở hữu, thương mại
Đa nhiệm, đa NSD
Tin cậy, sẵn sàng
Mềm dẻo
Sử dụng rộng rãi những năm 1960-1970
GNU project ra đời, mong muốn tạo ra hệ điều hành MNM
Linus Torval viết Hạt nhân Linux và kêu gọi cộng đồng mạng
cùng phát triển
Trương thị Diệu Linh 43
Phần mềm mã nguồn mở và Linux
Giới thiệu Linux
Hạt nhân Linux- Linux Kernel
Các thành phần cơ bản để có thể khai thác tài nguyên phần
cứng của máy tính
1994: 1.0
1999: 2.2.0
2001: 2.4
2003: 2.6.0
2009: 2.6.3
Số đầu: phiên bản chính
Trương thị Diệu Linh 44
Phần mềm mã nguồn mở và Linux
Giới thiệu Linux
Các 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
Trương thị Diệu Linh 45
Phần mềm mã nguồn mở và Linux
Giới thiệu Linux
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
Trương thị Diệu Linh 46
Phần mềm mã nguồn mở và Linux
Giới thiệu Linux
Các bản phân phối của Linux
Trương thị Diệu Linh 47
Phần mềm mã nguồn mở và Linux
Giới thiệu Linux
Một số bản phân phối phổ biến của Linux
Dòng Debian:
Knoppix: Bản LiveCD chỉ chạy từ CDROM không cần cài đặt.
Ubuntu
Dòng Fedora (tài trợ bởi Red Hat)
Fedora
CentOS
Red Hat Enterprise Linux
Trương thị Diệu Linh 48
Phần mềm mã nguồn mở và Linux
Các phần mềm mã nguồn mở khác
Các phần mềm mã nguồn mở khác
Trên Linux
Webserver: Apache
Mail server: Postfix
Giao diện: KDE, GNOME, . . . ..
Trên các hệ điều hành khác
Open Office
Gimp
FireFox
LaTeX
Trương thị Diệu Linh 49
Phần mềm mã nguồn mở và Linux
Cách thức trao đổi PMMNM
Cách thức trao đổi PMMNM
Sử dụng hệ thống CVS (Concurrent Versions System) để quản
lý các phiên bản
Quản lý tất cả các thay đổi của một tập các file
→ cho phép nhiều người cùng hợp tác phát triển.
Sử dụng hệ thống SVN (Apache Subversion) để quản lý các
phiên bản
SVN được phát triển theo mô hình CVS
Được dùng rất phổ biến trong các hệ thống PMMNM
Trương thị Diệu Linh 50
Phần mềm mã nguồn mở và Linux
Cách thức trao đổi PMMNM
Cách thức trao đổi PMMNM
Sử dụng kho (repository) chứa mã nguồn trên web:
Sourceforge.net
cho phép các dự án PMMNM hosting và quản lý quá trình
phát triển mã nguồn
Hỗ trợ CVS, SVN
Các repositories khác: Debian Repository, Canonical
repository, Google repository, CTAN ...
Sử dụng các ứng dụng để cài đặt phần mềm từ các
repository: yum, apt, rpm ...
Trương thị Diệu Linh 51
Các file đính kèm theo tài liệu này:
- bai_giang_linux_va_phan_mem_ma_nguon_mo_truong_thi_dieu_linh.pdf