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 phuongnguyen 9321
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ÁT TRIỂN PHẦN MỀM NGUỒN MỞ
 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
 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 
 14
Một số phần mềm nguồn mở
 15
 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_bai_2_phan_mem_nguon.pdf