Bài giảng Mã nguồn mở - Bài 1: Tổng quan về mã nguồn mở - Phan Thanh Toàn

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

pdf25 trang | Chia sẻ: thanhle95 | Lượt xem: 867 | Lượt tải: 1download
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