Content text Ung dung va phat trien phan mem nguon mo v2020.pdf
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC SƯ PHẠM TRẦN NGỌC HÀ ỨNG DỤNG VÀ PHÁT TRIỂN PHẦN MỀM MÃ NGUỒN MỞ TÀI LIỆU DÀNH CHO SINH VIÊN NGÀNH TIN HỌC Thái Nguyên - Năm 2020
2 Chương 1. Tổng quan về phần mềm mã nguồn mở 1.1. Mã nguồn phần mềm Để giải các phương trình bậc 2, giả sử lập trình viên A viết một chương trình C++, chương trình này được lưu thành file giaiptb2.cpp như sau: Sau đó A sử dụng một trình biên dịch để biên dịch tập tin giaiptb2.cpp thành tập tin giaiptb2.exe cho phép người dùng nhập các hệ số a,b,c và nhận được kết luận nghiệp của phương trình như trong hình dưới. Qua ví dụ này, ta cần phân biệt một số khái niệm như sau: − Tập tin giaiptb2.exe là một phần mềm, hay một chương trình máy tính − Tập tin giaiptb2.cpp được gọi là mã nguồn của phần mềm giaiptb2.exe
3 − Lập trình viên A được gọi là chủ sở hữu của phần mềm (sở hữu cả chương trình và mã nguồn) 1.2. Chủ 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 có thể là một cá nhân (lập trình viên viết ra phần mềm) hoặc là một công ty phần mềm (người bỏ tiền ra thuê mướn lập trình viên trực tiếp viết phần mềm cho công ty). 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 đó, người sử dụng phải xin phép chủ sở hữu phần mềm thông qua một giấy phép được cập bởi chủ sở hữu phần mềm. 1.3. Giấy phép sử dụng phần mềm Được chủ sở hữu phần mềm cấp cho người muốn sử dụng phần mềm. Nó là một bản hợp đồng gồm các điều khoản và điều kiện, mô tả những gì mà chủ sở hữu phần mềm cho phép bạn khai thác phiên bản phần mềm liên quan. Nó qui định về những khả năng mà bạn có thể có được trên phần mềm mà bạn được cấp giấy phép sử dụng. Giấy phép của một số loại phần mềm chia thành các loại phổ biến sau: 1.3.1 Phần mềm thương mại hay phần mềm chia sẻ (shareware) Giấy phép sử dụng 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. Chẳng hạn như 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 thì 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. Phần mềm chia sẻ cho phép người dùng dùng thử trong một thời gian nhất định, sau khoảng thời gian đó người sử dụng phải trả tiền nếu như muốn được phép sử dụng tiếp. Hoặc một số phần mềm cho dùng thử nhưng hạn chế chức năng, muốn sử dụng các chức năng chuyên nghiệp người dùng sẽ phải trả phí bản quyền. 1.3.2 Phần mềm miễn phí (freeware) 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 miễn phí không đòi hỏi tiền bản quyền sử dụng phần mềm. Cả hai loại phần mềm này đều không cho phép người sử dụng truy cập vào mã nguồn của phần mềm. 1.3.3 Phần mềm mã nguồn mở
4 Giấy phép phần mềm lại này qui định rằng 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. Các điều khoản, điều kiện mô tả trong các giấy phép sử dùng phần mềm khác nhau là khác nhau. Ở đây ta xem xét các điều khoản liên quan đến 3 khả năng sau đối với người sử dụng: − Khả năng phân phối lại (Distribution Possibility): 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 ? − Khả năng truy cập vào mã nguồn (Accessibility to source code): 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 phần mềm (Free): 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 đó? Bảng sau cho thấy các khả năng này trên giấy phép của một số loại phần mềm thông dụng: 1.4. Phong trào phần mềm tự do Nhằm tạo ra những Phần mềm tự do (free software) là 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. Được khởi xướng bởi Richard M. Stallman vào năm 1983 khi ông bắt đầu dự án GNU, viết tắt của “GNU is Not UNIX”. Nhằm thay thế hệ điều hành Unix với tính năng tự do. Thành lập quỹ phần mền tự do (FSF - Free Software Foundation) năm 1985. 1.4.1 Phần mềm tự do (Free Software) Một phần mềm được gọi là phần mềm tự do nếu giấy phép sử dụng của nó cho phép người sử dụng phần mềm có 4 khả năng tự do sau: − 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 đề. 1.4.2 Giấy phép sử dụng phần mềm GPL (General Public License) Thông thường, các phần mềm đều được copyright nhằm bảo về quyền tác giả. Richard M. Stallman đưa ra khái niệm 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