MỤC TIÊU BÀI HỌC
• Phân biệt được phần mềm mã nguồn mở và phần
mềm bản quyền.
• Trình bày được các điểm chính trong các học thuyết
về mã nguồn mở.
• Liệt kê được các loại giấy phép của phần mềm mã
nguồn mở.
3v1.0015106225
CÁC KIẾN THỨC CẦN CÓ
Để hiểu rõ bài này, yêu cầu sinh viên cần có các
kiến thức cơ bản liên quan đến các môn học sau:
• Công nghệ phần mềm;
• Nguyên lí hệ điều hành.
4v1.0015106225
HƯỚNG DẪN HỌC
• Đọc tài liệu và tóm tắt những nội dung chính của
từng bài.
• Luôn liên hệ và lấy ví dụ thực tế khi học đến từng
vấn đề và khái niệm.
• Thực hành trực tiếp trên hệ điều hành Linux và
một số phần mềm mã nguồn mở như Open
office, PHP.
• Làm bài tập v
25 trang |
Chia sẻ: thanhle95 | Lượt xem: 867 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Mã nguồn mở - Bài 1: Tổng quan về mã nguồn mở - Phan Thanh Toàn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
v1.0015106225
1
MÃ NGUỒN MỞ
Giảng viên: ThS. Phan Thanh Toàn
1
v1.0015106225
BÀI 1
TỔNG QUAN VỀ MÃ NGUỒN MỞ
Giảng viên: ThS. Phan Thanh Toàn
2
v1.0015106225
MỤC TIÊU BÀI HỌC
• Phân biệt được phần mềm mã nguồn mở và phần
mềm bản quyền.
• Trình bày được các điểm chính trong các học thuyết
về mã nguồn mở.
• Liệt kê được các loại giấy phép của phần mềm mã
nguồn mở.
3
v1.0015106225
CÁC KIẾN THỨC CẦN CÓ
Để hiểu rõ bài này, yêu cầu sinh viên cần có các
kiến thức cơ bản liên quan đến các môn học sau:
• Công nghệ phần mềm;
• Nguyên lí hệ điều hành.
4
v1.0015106225
HƯỚNG DẪN HỌC
• Đọc tài liệu và tóm tắt những nội dung chính của
từng bài.
• Luôn liên hệ và lấy ví dụ thực tế khi học đến từng
vấn đề và khái niệm.
• Thực hành trực tiếp trên hệ điều hành Linux và
một số phần mềm mã nguồn mở như Open
office, PHP...
• Làm bài tập và luyện thi trắc nghiệm theo yêu
cầu từng bài.
5
v1.0015106225
CẤU TRÚC NỘI DUNG
Các học thuyết về phần mềm mã nguồn mở1.2
Khái niệm phần mềm mã nguồn mở1.1
Các loại giấy phép về phần mềm mã nguồn mở1.3
6
Phần mềm dịch vụ miễn phí1.4
v1.0015106225
1.1. KHÁI NIỆM PHẦN MỀM MÃ NGUỒN MỞ
1.1.1. Phần mềm
miễn phí
1.1.2. Phần mềm mã
nguồn mở
7
v1.0015106225
1.1.1. PHẦN MỀM MIỄN PHÍ
Khái niệm phần mềm
• Phần mềm là chương trình chạy trên máy tính;
• Phần mềm được phát triển dựa trên ngôn ngữ lập trình;
• Chương trình là tập các lệnh theo một ngôn ngữ lập trình;
• Tập lệnh của chương trình được gọi là mã nguồn (Source code);
• Source code được dịch thành mã máy.
8
v1.0015106225
1.1.1. PHẦN MỀM MIỄN PHÍ (tiếp theo)
Cơ sở về phần mềm
• Để sử dụng phần mềm người sử dụng không cần có mã nguồn.
• Thay đổi chương trình thông thường yêu cầu quyền sở hữu và sự cho phép để thay
đổi mã nguồn.
• Bất kì ai kiểm soát mã nguồn hợp pháp thì có thể thay đổi, nâng cấp phần mềm.
• Những người sử dụng không có mã nguồn thường không thể thay đổi được
chương trình.
9
v1.0015106225
1.1.1. PHẦN MỀM MIỄN PHÍ (tiếp theo)
10
• Có hai hình thức dùng phần mềm chi phí thấp.
Phần mềm tự do, mã nguồn mở (Libre Software, Open Source Software):
Sử dụng, sao chép, phân phối và/hoặc sửa đổi tự do;
Một số được cung cấp mã nguồn;
Tuân thủ theo các giấy phép gốc của phần mềm đó.
Phần mềm dạng dịch vụ miễn phí:
Sử dụng miễn phí theo tài khoản;
Chủ yếu đáp ứng nhu cầu phần mềm chạy trên nền web;
Xuất phát điểm từ trào lưu phần mềm như là dịch vụ (SaaSSoftware as
a Service).
v1.0015106225
1.1.2. PHẦN MỀM MÃ NGUỒN MỞ
• Lịch sử hình thành phần mềm tự do mã nguồn mở
Free Software
Definition
(1986)
Open Software
Definition
(1998)
Free and Open
Software Definition
(1998)
FLOSS
(2001)
11
v1.0015106225
1.1.2. PHẦN MỀM MÃ NGUỒN MỞ (tiếp theo)
• Free software (hay Libre software)
Có thể có mã nguồn hoặc không có mã nguồn;
Mang nghĩa tự do (không hẳn miễn phí), được sử dụng, sao chép, phân phối,
sửa đổi (nếu có mã nguồn).
• Open source software
Có mã nguồn, được sử dụng, sao chép, phân phối, sửa đổi theo quy định trong
giấy phép;
Mang nghĩa nhóm nhiều người có thể cùng nhau phát triển dựa trên mã nguồn
được cung cấp.
• FOSS (Free and open-source software): Vừa là free software lẫn Open source
software.
12
v1.0015106225
1.1.2. PHẦN MỀM MÃ NGUỒN MỞ (tiếp theo)
13
• Định nghĩa phần mềm mã nguồn mở (David Wheeler)
Các chương trình OSS/FS là những chương trình mà quy trình cấp phép sẽ cho
người dùng quyền tự do chạy chương trình theo bất kì mục đích nào, quyền nghiên
cứu và sửa đổi chương trình, quyền sao chép và tái phát hành phần mềm gốc hoặc
phần mềm đã sửa đổi (mà không phải trả tiền bản quyền cho những người lập
trình trước).
v1.0015106225
1.1.2. PHẦN MỀM MÃ NGUỒN MỞ (tiếp theo)
• Sự bùng nổ về số lượng triển khai các hệ thống phần mềm nguồn mở đã làm thay
đổi thế giới công nghệ thông tin.
• Khi những hệ thống FOSS đầu tiên được phát triển, nhiều người sớm sử dụng các
hệ thống này như là các chuyên gia về công nghệ.
14
v1.0015106225
1.1.2. PHẦN MỀM MÃ NGUỒN MỞ (tiếp theo)
15
So sánh phần mềm mã nguồn mở và phần mềm thương mại
Phần mềm thương mại Phần mềm mã nguồn mở
Được coi là • Một tài sản trí tuệ;
• Một sản phẩm.
• Một dịch vụ;
• Sự thể hiện kĩ thuật.
Lập trình viên Được phân công làm các
phần của dự án.
Tham gia vào các phần
theo năng lực.
Cài đặt trên máy mà
không trả phí
Vi phạm bản quyền. Không vi phạm, mang lại
giá trị hơn cho phần mềm.
Bảo mật được đảm
bảo nhờ
Không ai bên ngoài biết
được cơ chế làm việc
bên trong.
Ai cũng có thể phát hiện lỗi
và đề xuất giải pháp xử lí.
Lợi nhuận đem lại • Bán các phiên bản mới;
• Hỗ trợ kĩ thuật.
• Bán dịch vụ đi kèm;
• Hỗ trợ kĩ thuật.
v1.0015106225
1.1.2. PHẦN MỀM MÃ NGUỒN MỞ (tiếp theo)
16
Ưu điểm
Giảm chi phí.
Có thể thay đổi phần mềm để đáp ứng nhu cầu riêng.
Nhược điểm
Không có sự hỗ trợ kĩ thuật một cách chính thức, ít
tài liệu, giao diện tương tác chưa thuận tiện.
Tính cam kết duy trì sự phát triển thấp.
Khó kiểm soát phiên bản và sự thay đổi mã nguồn.
Phải tuân thủ theo các yêu cầu trong giấy phép.
v1.0015106225
1.2. CÁC HỌC THUYẾT VỀ PHẦN MỀM MÃ NGUỒN MỞ
17
1.2.1. Học thuyết FSF
1.2.2. Học thuyết OSI
v1.0015106225
1.2.1. HỌC THUYẾT FSF
Tổ chức phần mềm tự do FSF (Free Software Foundation) đề xuất nhằm bảo vệ các
quyền tự do của người dùng
• Quyền tự do chạy một chương trình với bất kì mục đích nào.
• Quyền tự do nghiên cứu cách thức vận hành của một chương trình và thích ứng nó
cho phù hợp với nhu cầu của mình.
• Quyền tự do phân phát các phiên bản của phần mềm để giúp đỡ những người
xung quanh.
• Quyền tự do thêm mới các chức năng cho một chương trình và công bố những tính
năng mới đó đến công chúng để toàn cộng đồng được hưởng lợi.
18
v1.0015106225
1.2.2. HỌC THUYẾT OSI
Chương trình sáng kiến nguồn mở OSI (Open Source Initiative) đề xuất
• Chú trọng giá trị kĩ thuật của việc tạo ra những phần mềm mạnh, có độ tin cậy cao
và phù hợp với kinh doanh, đặc biệt là lợi ích thực tiễn của phương pháp xây dựng
và quảng bá phần mềm nguồn mở.
• Open Source không chỉ có nghĩa là truy cập vào source code. Các điều khoản phân
phối phần mềm nguồn mở phải tuân theo các tiêu chí sau:
Free Redistribution – Miễn phí phân phối lại
Việc cấp giấy phép sẽ không hạn chế bất kì ai từ việc bán hoặc cho theo các
cách khác nhau.
Việc cấp giấy phép sẽ không đòi hỏi phải có trả tiền hoặc các chi phí khác.
Source code
Chương trình phải bao gồm source code, và phải cho phép phân phối source
code cũng như các hình thức biên soạn.
Trong trường hợp một số sản phẩm không được phân phối với mã nguồn, thì
phải công bố trên các phương tiện đại chúng hoặc download từ Internet mà
không có phí.
Source code phải được ưu tiên trong trường hợp lập trình viên sẽ chỉnh sửa
chương trình.
Cố ý làm rối source code là không được phép.
19
v1.0015106225
1.2.2. HỌC THUYẾT OSI (tiếp theo)
20
Derived Works – Các sản phẩm dẫn xuất: Giấy phép phải cho phép sửa đổi, bổ
sung, các sản phẩm dẫn xuất phải cho phép họ được phân phối theo cùng một
điều khoản như giấy phép của phần mềm gốc.
Integrity of The Author's Source Code – Sự toàn vẹn source code của tác giả
Giấy phép có thể đưa ra các hạn chế mã nguồn.
Giấy phép có thể yêu cầu các sản phẩm dẫn xuất mang một tên khác hay
phiên bản khác từ phần mềm ban đầu.
No Discrimination Against Persons or Groups - Không phân biệt đối xử với cá
nhân hoặc nhóm: Giấy phép không được phân biệt đối xử đối với bất kì người
nào hoặc nhóm người.
No Discrimination Against Fields of Endeavor – Chống lại phân biệt sự cố gắng
của các thành viên: Giấy phép không được giới hạn việc sử dụng chương trình
trong các lĩnh vực cụ thể.
Distribution of License – Phân phối giấy phép: Các quyền kèm theo trong các
chương trình cần phải áp dụng cho tất cả các chương trình được phân phối, mà
không cần thực hiện thêm một giấy phép giữa các bên.
v1.0015106225
1.3. CÁC LOẠI GIẤY PHÉP VỀ PHẦN MỀM MÃ NGUỒN MỞ
• Open Source Initiative (OSI) là tổ chức phi lợi nhuận đề xướng khái niệm nguồn mở.
• OSI quản lí “The Open Source Definition” (định nghĩa về nguồn mở) nhằm xác định
chính xác khái niệm về nguồn mở (
• Phần mềm mã nguồn mở đơn giản là phần mềm dùng loại giấy phép đáp ứng định
nghĩa về nguồn mở trên.
• Một số giấy phép mã nguồn mở phổ biến:
Gnu General Public License (GPL);
Gnu Lesser General Public License (LGPL);
Mozilla Public License (MPL);
Apache Software License;
Apple Public Source License;
Artistic License;
BSD License.
21
v1.0015106225
1.3. CÁC LOẠI GIẤY PHÉP VỀ PHẦN MỀM MÃ NGUỒN MỞ (tiếp theo)
22
• Cơ bản các giấy phép đều cho phép tự do sử dụng, phân phối, sửa đổi.
• Nguồn mở không có nghĩa là trở thành của công. Tác giả vẫn là người nắm giữ bản
quyền và không bị khước từ bất cứ quyền nào. Họ cho phép sử dụng với những giới
hạn riêng. Ví dụ: Phải giữ tên tác giả ở những phiên bản kế thừa.
• Người giữ bản quyền gốc có thể cung cấp phần mềm theo cả giấy phép nguồn mở
và giấy phép thương mại với các điều khoản khác nhau.
• Phần mềm nguồn mở đôi khi cũng phải trả phí bản quyền.
• Với đối tượng cá nhân thì không có nhiều sự khác biệt giữa các loại giấy phép.
v1.0015106225
1.4. PHẦN MỀM DỊCH VỤ MIỄN PHÍ
• Bên cạnh phần mềm tự do và mã nguồn mở, xu
hướng hiện tại cung cấp phần mềm dưới dạng
dịch vụ.
• Chuyển từ “mua” sang “thuê” phần mềm.
• Hay cung cấp miễn phí với tính năng tối thiểu, trả
phí với tính năng mở rộng – Freemium.
• Dùng bao nhiêu trả tiền bấy nhiêu.
23
v1.0015106225
1.4. PHẦN MỀM DỊCH VỤ MIỄN PHÍ (tiếp theo)
24
SaaS – Software as a Service
• Dữ liệu được lưu trữ trên “Đám mây” (Internet).
• Truy cập phần mềm qua Web Browser.
• Lợi ích:
Truy cập được từ bất cứ đâu, bất cứ thời điểm nào.
Chi phí thường rẻ hơn mua phần mềm dạng sản phẩm (không phải trả tiền cho
những tính năng không dùng).
Không cần sắm, cài đặt, bảo trì, hệ thống hay máy chủ. Đơn giản chỉ cần có thiết
bị truy cập được và Internet.
Không phụ thuộc nền tảng (platform).
• Nhược điểm:
Kết nối Internet và tốc độ đường truyền.
Khó tùy biến để đáp ứng nhu cầu đặc thù của doanh nghiệp.
Rủi ro về bảo mật thông tin.
Lệ thuộc vào nhà cung cấp dịch vụ.
v1.0015106225
TÓM LƯỢC CUỐI BÀI
Trong bài học này, chúng ta đã tìm hiểu những nội dung
chính sau:
• Khái niệm về phần mềm mã nguồn mở;
• Các học thuyết về phần mềm mã nguồn mở;
• Các loại giấy phép về phần mềm mã nguồn mở;
• Các phần mềm dịch vụ miễn phí.
25