Phần mền mã nguồn mở và Linux - Trương Thị Diệu Linh

pdf 51 trang hapham 2810
Bạn đang xem 20 trang mẫu của tài liệu "Phần mền mã nguồn mở và Linux - Trương Thị Diệu Linh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfphan_men_ma_nguon_mo_va_linux_truong_thi_dieu_linh.pdf

Nội dung text: Phần mền mã nguồn mở và Linux - Trương Thị Diệu Linh

  1. 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 13 tháng 2 năm 2011 Trương thị Diệu Linh 1
  2. 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ự domã 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
  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ự domã nguồn mở Định nghĩa phần mềm tự domã 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
  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ự domã nguồn mở Một số phần mềm mã nguồn mở Trương thị Diệu Linh 4
  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ự domã 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 15. Trương thị Diệu Linh 5
  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ự domã 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
  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ự domã 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 Open Source Definition Introduction Open source doesn’t just mean access to the source code. The distribution terms of opensource 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
  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ự domã 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 wellpublicized 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
  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ự domã nguồn mở Open Source Definition 4. Integrity of The Author’s Source Code The license may restrict sourcecode 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
  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ự domã 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
  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ự domã 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 opensource software. 10. License Must Be TechnologyNeutral No provision of the license may be predicated on any individual technology or style of interface. – Open Source Initiative, Trương thị Diệu Linh 11
  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ự domã nguồn mở Bản quyền phần mềmCopyright 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
  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ự domã nguồn mở Giấy phép phần mềmSoftware 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 (enduser) 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
  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ự domã 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
  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ự domã 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
  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ự domã 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
  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ự domã 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
  18. 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ự domã 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
  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ở 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
  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ở Mô hình duallicense 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 duallicense 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
  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ở 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
  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 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
  23. 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
  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 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
  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 Ư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
  26. 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
  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 19501960: Phần mềm được phân phối tự do chỉ để sử dụng phần cứng Cuối những năm196x: 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 1984: Các phần mềm bắt đầu được phát triển cho hệ điều hành GNU. Trương thị Diệu Linh 27
  28. 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: Thành lập Free Software Foundation (FSF), đưa ra định nghĩa Free Software Definition và Copyleft nhằm cung cấp tự do cho người dùng phần mềm. 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 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
  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 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
  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 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ư miễn phí, 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
  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 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
  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) 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
  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 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) TrươngARISING thị Diệu Linh IN ANY WAY OUT OF THE USE OF THIS 33
  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 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
  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 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à miễn phí hay không. Trương thị Diệu Linh 35
  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 GNU General Public License Là loại giấy phép phần mềm miễn phí 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
  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 GNUGPL 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 GNUGPL, 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
  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 Giấy phép GNUGPL 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
  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 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
  40. 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
  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 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
  42. 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
  43. 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 19601970 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
  44. 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
  45. 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
  46. 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 tính năng mạng Trương thị Diệu Linh 46
  47. 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
  48. 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
  49. 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
  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 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
  51. 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