Bài giảng Phát triển phần mềm nguồn mở - Bài 2: Phần mềm nguồn mở - Nguyễn Hữu Thể

Sở hữu phần mềm

 Khi một phần mềm được tạo ra nó thuộc một chủ sở

hữu nào đó.

 Chủ sở hữu phần mềm có toàn quyền trên phần

mềm mà họ là chủ sở hữu, và sẽ quyết định mức

độ sử dụng và khai thác của những người khác trên

phần mềm mà họ là chủ sở hữu.

 Khi muốn sử dụng một phần mềm, bạn phải có một

Giấy phép sử dụng (License) phần mềm đó.

pdf 18 trang yennguyen 4540
Bạn đang xem tài liệu "Bài giảng Phát triển phần mềm nguồn mở - Bài 2: Phần mềm nguồn mở - Nguyễn Hữu Thể", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Phát triển phần mềm nguồn mở - Bài 2: Phần mềm nguồn mở - Nguyễn Hữu Thể

Bài giảng Phát triển phần mềm nguồn mở - Bài 2: Phần mềm nguồn mở - Nguyễn Hữu Thể
PHẦN MỀM NGUỒN MỞ
PHÁT TRIỂN PHẦN MỀM NGUỒN MỞ
Tham khảo chính: Bài giảng “Phần mềm mã nguồn mở”, TS. Ngô Bá Hùng
Sở hữu phần mềm
 Khi một phần mềm được tạo ra nó thuộc một chủ sở
hữu nào đó.
 Chủ sở hữu phần mềm có toàn quyền trên phần
mềm mà họ là chủ sở hữu, và sẽ quyết định mức
độ sử dụng và khai thác của những người khác trên
phần mềm mà họ là chủ sở hữu.
 Khi muốn sử dụng một phần mềm, bạn phải có một
Giấy phép sử dụng (License) phần mềm đó.
2
Giấy phép sử dụng phần mềm
 Là một bản hợp đồng cho phép bạn khai thác phiên
bản phần mềm, qui định về những khả năng mà bạn
có thể có được.
 Các tiêu chí phân loại phần mềm dựa trên giấy phép
• Khả năng phân phối lại ( Distribution Possibility)
• Truy cập vào mã nguồn (Accessibility to source code)
• Phí sử dụng (Free)
3
Tiêu chí phân loại phần mềm
 Khả năng phân phối lại
• Quyền được phép sao chép và phân phối lại phiên bản phần
mềm mà bạn đang có trong tay (có giấy phép sử dụng nó)
hay không ?
 Truy cập vào mã nguồn
• Chủ sở hữu phần mềm cho phép bạn xem mã nguồn, sử
dụng, sửa đổi mã nguồn phần mềm của họ cho mục đích của
bạn hay không ?
 Phí sử dụng
• Khi bạn sử dụng một phần mềm, bạn phải trả tiền hay không
cho người chủ sở hữu phần mềm đó ?
4
Phần mềm thương mại
 Bản quyền của phần mềm thương mại chỉ cho phép người
sử dụng khai thác phần mềm theo những ràng buộc đã ghi
rõ trong giấy phép.
• Ví dụ: không cho phép người sử dụng cài đặt phần mềm trên
nhiều máy khác nhau.
 Bản quyền loại này rất bị hạn chế.
 Trong trường hợp có những lỗi phần mềm được phát hiện
hay một số chức năng hoạt động không tốt:
• Người sử dụng không còn cách nào khác hơn là phải chờ cho đến
khi chủ sở hữu phần mềm sửa đổi chúng.
• Các nhà sản xuất phần mềm đôi khi không sẵn lòng làm việc đó
hoặc thực hiện chúng với thời gian rất lâu hay đôi khi người sử
dụng phải trả thêm tiền cho các bản cập nhật.
• Người sử dụng không có một phương tiện nào để thúc đẩy tiến
trình cập nhật và sửa chữa lỗi của các phần mềm thương mại.
5
Phần mềm miễn phí/trả một phần
 Phần mềm miễn phí (freeware) và phần mềm trả một
phần (shareware) KHÔNG là phần mềm mã nguồn
mở.
 Phần mềm miễn phí và phần mềm trả một phần:
• Vẫn là các phần mềm có chủ sở hữu.
• Được phân phối một cách tự do.
 Phần mềm trả một phần thì sau một khoản thời gian
đã định người sử dụng phải trả tiền nếu như muốn
được phép sử dụng tiếp.
6
Phần mềm mã nguồn mở
 Một phần mềm mã nguồn mở nếu nó hội đủ các yếu
tố cơ bản sau:
• Nó được phân phối đến người sử dụng cùng với mã nguồn
của nó mà chúng có thể bị sửa đổi
• Nó có thể được phân phối lại mà không bị một ràng buộc
nào khác
• Chúng ta có thể phân phối cả những thay đổi mà chúng ta đã
thực hiện trên mã nguồn gốc
7
Một số loại phần mềm thông dụng
8
Phần mềm tự do (free software)
 Những phần mềm mà người dùng có thể tự do chia 
sẻ, nghiên cứu và sửa đổi chúng.
 Không đề cập đến vấn đề chi phí/giá cả
 Sự tự do bao gồm 4 yếu tố:
• Tự do thực thi chương trình cho bất kỳ mục đích gì
• Tự do nghiên cứu cách thực thi của chương trình và sửa đổi
chúng cho mục đích của bạn. Truy cập vào mã nguồn
chương trình là tiền đề
• Tự do phân phối phần mềm cho người khác
• Tự do cải tiến chương trình và phân phối cải tiến của bạn
cho cộng đồng. Truy cập vào mã nguồn chương trình là tiền
đề
9
Khái niệm Copyleft
 Copyright nhằm bảo về quyền tác giả
 Copyleft là một phương pháp tổng quát nhằm làm
cho một chương trình tự do và yêu cầu tất cả những
phiên bản sửa đổi hay mở rộng của chương trình
cũng phải tự do
 Giấy phép «GNU General Public License»
• Viết tắt «GNU GPL»
• Cụ thể hóa khái niệm Copyleft
• Dùng cho phần lớn các sản phẩm của dự án GNU
10
Lịch sử giấy phép của GNU
 Version 1 – General Public License – GPL v1 – 1989
 Version 2 – General Public License – GPL v2 – 1991
 Version 2 – Library General Public License – LGPL
v2 – 1991
 Version 2.1 – Lesser General Public License – LGPL
v2.1 – 1999
 Version 3 – GPLv3 – 2007
11
GNU GPL V2
 Có thể bán mã thực thi tạo ra từ phiên bản sửa đổi
• Tuy nhiên mã nguồn phải công bố
 Mã nguồn của sản phẩm và tất cả các sửa đổi sau đó
phải tồn tại dưới dạng phần mềm tự do
 Tất cả các chương trình có sử dụng mã nguồn GPL
phải phát hành dưới giấy phép GPL
• Liên kết động hay tĩnh đến mã nguồn hoặc thự viện GPL
• Sao chép một số dòng của mã nguồn GPL
12
GNU LGPL v2.1
 Được tạo ra để cho phép liên kết động mã nguồn
không phát hành dưới dạng GPL hoặc LGPL vào mã
nguồn LGPL
 Dàn xếp việc sử dụng các thư viện tự do vào mục
đích thương mại, ví dụ thư viện GNU C
 Hầu hết các điều khoản và điều kiện tương tự GPL
 Nếu bạn thay đổi và phân phối một thư viện LGPL
• Thư viện và những thay đổi phải được công bố (mã thực thi
và mã nguồn cùng với chú thích về những sửa đổi)
• Bằng sáng chế được gắn với sự phân phối những sửa đổi
13
14
Một số phần mềm nguồn mở
 ArgoUML — ArgoUML is a modelling tool that helps you design 
using UML diagrams
 GCC — a set of compilers for multiple programming languages and 
platforms, including C, C++, Objective-C, Ada, Java, Pascal, 
Fortran
 Perl — a programming language strong on text processing
 PHP — a scripting language designed for web site applications
 Python — A high-level scripting language
 Ruby — A high-level scripting language
 Notepad++
 Unikey
 XAMPP — a package of web applications including Apache and MySQL 
15
Một số phần mềm nguồn mở
Framework
 Thư viện các lớp đã được xây dựng hoàn chỉnh
 Bộ khung để phát triển các phần mềm.
16
Framework PHP
17
Top PHP Frameworks 2016
 Theo Google trends (website thống kê các xu hướng tìm kiếm
và quan tâm của người sử dụng thông qua các từ khóa và theo
các mốc thời gian).
• Top: Laravel
18

File đính kèm:

  • pdfbai_giang_phat_trien_phan_mem_nguon_mo_chuong_2_phan_mem_ngu.pdf