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

pdf51 trang | Chia sẻ: hachi492 | Ngày: 07/01/2022 | Lượt xem: 398 | Lượt tải: 0download
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:

  • pdfbai_giang_linux_va_phan_mem_ma_nguon_mo_truong_thi_dieu_linh.pdf