tìm hiểu phần mềm mã nguồn mở

78 719 0
tìm hiểu phần mềm mã nguồn mở

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

tìm hiểu phần mềm mã nguồn mở

TRƢỜNG ĐH HÙNG VƢƠNG KHOA TOÁN – CÔNG NGHỆ THỰC TẬP CHUYÊN NGÀNH Hệ chính quy Chuyên ngành: Tin học Tên đề tài TÌM HIỂU PHẦN MỀM NGUỒN MỞ Giáo viên hƣớng dẫn: kỹ sƣ Đinh Thái Sơn Họ và tên sinh viên: Nguyễn Tuấn Anh Lê Văn Ngọc Vũ Thị thu Thủy Vi Văn Toàn Lớp: k7- ĐH tin NĂM 2012 TRƢỜNG ĐH HÙNG VƢƠNG KHOA TOÁN – CÔNG NGHỆ THỰC TẬP CHUYÊN NGÀNH Hệ chính quy Chuyên ngành: Tin học Tên đề tài TÌM HIỂU PHẦN MỀM NGUỒN MỞ Giáo viên hƣớng dẫn: kỹ sƣ Đinh Thái Sơn Họ và tên sinh viên: Nguyễn Tuấn Anh Lê Văn Ngọc Vũ Thị thu Thủy Vi Văn Toàn Lớp: k7- ĐH tin NĂM 2012 LỜI CÁM ƠN Chúng em xin gửi lời cám ơn và biết ơn sâu sắc nhất tới Kỹ sƣ Đinh Thái Sơn đã chỉ bảo và hƣớng dẫn tận tình cho chúng em trong suốt quá trình thực tập này. Chúng em chân thành cám ơn các thầy, cô trong bộ môn tin, khoa toán- công nghệ - trƣờng Đại Học Hùng Vƣơng đã giúp đỡ và tạo những điều kiện thuận lợi cho chúng em hoàn thành tốt đợt thực tập này. Chúng em cũng xin cám ơn ban lãnh đạo khoa Toán-Công nghệ và ban lãnh đạo trƣờng Đại Học Hùng Vƣơng đã tạo điều kiện cho chúng em đƣợc học tập và thực tập tại trƣờng. Cuối cùng, chúng em muốn gửi lời cám ơn và biết ơn vô hạn tới bố mẹ, anh chị em và tất cả bạn bè đã cổ vũ và tạo điều kiện tốt nhất cho chúng em hoàn thành đợt thực tập này. Xin chân thành cảm ơn! Trƣởng nhóm Sinh viên: Lê Văn Ngọc MỤC LỤC DANH SÁCH CÁC TỪ VIẾT TẮT STT Nội dung viết tắt Từ viết tắt 1 Phần mềm nguồn mở PMMNM 2 Gnu’s Not Unix GNU 3 General Public Licence GPL 4 Lesser General Public Licence LGPL 5 Berkely Software Distribution BSD 6 Free Software Foundation FSF 7 Phần mềm nguồn đóng PMNĐ 8 Công nghệ thông tin CNTT 9 Công nghệ phần mềm CNPM 10 Hệ thống phiên bản đồng thời CVS 11 Hệ thống kiểm soát sửa đổi SVN 12 Thông tin và Truyền thông TT & TT 13 Ủy ban nhân dân UBND 14 Giáo dục đào tạo GDĐT 15 Common Public License CPL DANH SÁCH HÌNH VẼ Hình 1: hình thác nƣớc điển hình Hình 2: Vòng đời của tính năng trong hình phát triển nguồn mở Hình 3: hình quy trình PMMNM Hình 4: Giao diện màn hình hệ điều hành Linux DANH SÁCH BẢNG BIỂU Bảng 1: Danh mục sản phẩm phần mềm nguồn mở đáp ứng đƣợc yêu cầu sử dụng trong các cơ quan nhà nƣớc, tổ chức nhà nƣớc Bảng 2: Thống kê việc triển khai nguồn mở tại Việt Nam đến tháng 3/2010 LỜI MỞ ĐẦU 1. Tính cấp thiết của đề tài Trong vài thập niên gần đây, cùng với sự thay đổi và phát triển không ngừng của ngành công nghệ thông tin nói chung thì ngành công nghệ phần mềm cũng đang có những bƣớc tiến vƣợt bậc. Khi đã phát triển lên 1 tầm cao thì nhu cầu ngƣời dùng cũng ngày càng tăng khi đó ngƣời ta lại quan tâm tới 3 khả năng sau của một phần mềm đố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 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 nguồn (Accessibility to source code): Chủ sở hữu phần mềm cho phép bạn xem nguồn, sử dụng, sửa đổi 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 đó? Những khả năng trên chỉ có trên các phần mềm nguồn mở (Open Source Software). Nhƣ vậy sử dụng phần mềm nguồn mở có rất nhiều ƣu điểm nhƣ: + Ƣu diểm đầu tiên là chi phí thấp. Chu kỳ sống của một nguồn mở thƣờng bắt đầu là phần mềm nhỏ, miễn phí. Phần mềm này thƣờng sẽ phát triển tới bản beta, vesion 1.0, 2.0,… cho tới khi nhận đƣợc sự ủng hộ và tài trợ rộng rãi của cộng đồng. Những phần mềm nhƣ vậy sẽ nhanh chóng có đƣợc thƣơng hiệu riêng và nhóm phát triển bắt đầu đƣa ra các dịch vụ hỗ trợ ngƣời dùng có chi phí. + Ƣu điểm thứ 2 là tính đa dạng của nguồn mở. Một phần mềm tốt trên môi trƣờng này sẽ nhanh chóng đƣợc một nhóm phát triển khác triển khai trên môi trƣờng khác. Các tính năng cũng sẽ đƣợc cộng đồng nguồn mở bổ sung vào. Để làm nhƣ vậy, các phần mềm đều có kiến trúc mở, theo dạng module để có thể sẵn sàng cấu hình tính năng mới. + Ƣu điểm thứ 3 là độ ổn định và ít lỗi. Một khi đã chọn giải pháp nguồn mở, doanh nghiệp luôn có thể biết rõ hiện còn bao nhiêu lỗi, các lỗi sẽ sửa lúc nào, phiên bản nào,… Điểm này khác hẳn những phần mềm nguồn đóng ở chỗ chúng vẫn có lỗi nhƣng không biết khi nào lỗi đƣợc sửa. Bản chất của nguồn mở là phát triển bởi nhóm ngƣời nhỏ nhƣng dùng và kiểm tra bởi nhiều ngƣời, có thể hàng trăm, hàng ngàn ngƣời. Nhóm phát triển, để phần mềm của mình đạt đƣợc tiêu chuẩn nguồn mở thƣờng phải đƣa ra đầy đủ các tài liệu thiết kế, hƣớng dẫn cài đặt, các forum thảo luận, yêu cầu tính năng, các hệ thống kiểm soát nguồn, lỗi,… Đề tài “tìm hiểu phần mềm nguồn mở ” tập trung nghiên cứu về quá trình phát triển và khả năng ứng dụng của phần mềm nguồn mở tại Việt Nam và lợi ích thiết thực của nó. 2. Mục đích nghiên cứu - Tìm hiểu và nắm rõ những kiến thức cơ bản và chuyên sâu về phần mềm nguồn mở. - Tìm hiểu về thực trạng ứng dụng phần mềm nguồn mở tại các cơ quan nhà nƣớc và trong hệ thống giáo dục ở Việt Nam. - Cài đặt và sử dụng một phần mềm nguồn mở demo. 3. Phạm vi nghiên cứu - Đối tƣợng nghiên cứu: phần mềm nguồn mở. - Phạm vi nghiên cứu: tìm hiểu về phần mềm nguồn mở, ứng dụng của nó trong các cơ quan nhà nƣớc và trong giáo dục tại Việt Nam. Giới thiệu một phần mềm nguồn mở demo. 4. Phƣơng pháp nghiên cứu - Phương pháp nghiên cứu tài liệu: Tìm hiểu qua nhiều nguồn tài liệu để rút ra những ý chính, những kết luận chính xác và hiệu quả nhất về phần mềm nguồn mở, về thực trạng việc triển khai nguồn mở trong cơ quan nhà nƣớc và trong hệ thống giáo dục tại Việt Nam. Nghiên cứu về một phần mềm nguồn mở demo. - Phương pháp tham khảo ý kiến chuyên gia: Từ những vấn đề đã tìm hiểu nghiên cứu qua tài liệu, hỏi trực tiếp giảng viên hƣớng dẫn và các giảng viên trong bộ môn tin để hoàn thiện hơn về cả hình thức và nội dung. CHƢƠNG 1: TỔNG QUAN VỀ PHẦN MỀM NGUỒN MỞ 1.1 Định nghĩa phần mềm nguồn mở Phần mềm nguồn mở (PMMNM) là những phần mềm đƣợc cung cấp dƣới cả dạng và nguồn, không chỉ là miễn phí về giá mua chủ yếu là miễn phí về bản quyền: ngƣời dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung qui định trong giấy phép PMMNM (ví dụ General Public Licence – GPL) không cần xin phép ai, điều họ không đƣợc phép làm đối với các phần mềm nguồn đóng (tức là phần mềm thƣơng mại) Nhìn chung, điều thuận lợi chính PMMNM đem lại là sự miễn phí và cho phép ngƣời dùng có quyền “sở hữu hệ thống”. Nhà cung cấp Phần mềm nguồn mở có quyền yêu cầu ngƣời dùng trả một số chi phí về các dịch vụ bảo hành, huấn luyện, nâng cấp, tƣ vấn, vv… tức là những dịch vụ thực sự đã thực hiện để phục vụ ngƣời dùng, nhƣng không đƣợc bán các sản phẩm nguồn mở vì nó là tài sản của trí tuệ chung, không phải là tài sản riêng của một nhà cung cấp nào. Tiện ích nguồn mở mang lại chính là quyền tự do sử dụng chƣơng trình cho mọi mục đích, quyền tự do để nghiên cứu cấu trúc của chƣơng trình, chỉnh sữa phù hợp với nhu cầu, truy cập vào nguồn, quyền tự do phân phối lại các phiên bản cho nhiều ngƣời, quyền tự do cải tiến chƣơng trình và phát hành những bản cải tiến vì mục đích công cộng. 1.2 Các điều khoản phân phối của phần mềm nguồn mở Tự do và miễn phí tái phân phối : Phần mềm có thể có nhiều bản sao và đƣợc tự do phân phối. Tuy nhiên, cần có giấy phép bản quyền khi thực hiện phân phối phần mềm. Bản quyền không giới hạn bất cứ ai bán hay đem cho phần mềm. Bản quyền không đòi hỏi việc phải giữ nguyên trạng phần mềm và không phải trả tiền bản quyền hay các lệ phí khác để bán phần mềm. nguồn Chƣơng trình phải đi kèm nguồn, và phải cho phép phân phối cả nguồn cũng nhƣ dạng đã đƣợc biên dịch. Ở những nơi một số dạng sản phẩm không đƣợc phân phối cùng nguồn thì phải có các cách thức đƣợc phổ biến rộng rãi nhằm lấy đƣợc nguồn với chi phí không cao hơn chi phí tái sản xuất hợp lý–khuyến khích cho phép tải về một cách miễn phí qua Internet. Vì mục đích của nguồn mở là tạo điều kiện để việc phát triển đƣợc thuận lợi nên yêu cầu sự sửa đổi nguồn cũng phải đƣợc tạo điều kiện thực hiện. Do đó, nguồn phải để dạng đƣợc ƣa chuộng theo đó một lập trình viên sẽ có thể tham gia sửa đổi chƣơng trình đƣợc. Việc biến đổi nguồn thành một dạng gây rối một cách có chủ tâm là không đƣợc phép. Các chƣơng trình phát sinh Bản quyền phải cho phép sửa đổi và các chƣơng trình phát sinh từ đó, và phải cho phép chúng đƣợc phân phối cùng các điều khoản nhƣ giấy phép của phần mềm gốc. Tính toàn vẹn của nguồn cung cấp bởi Tác giả Bản quyền có thể hạn chế không cho phép nguồn đƣợc phân phối ở dạng đã đƣợc sửa đổi nếu nhƣ “các file vá” cùng nguồn nhằm mục đích sửa đổi chƣơng trình ở thời gian tạo sản phẩm. Bản quyền phải cho phép một cách tƣờng minh việc phân phối phần mềm đƣợc tạo ra từ nguồn đƣợc sửa đổi. Bản quyền có thể yêu cầu các sản phẩm phát sinh phải mang một cái tên hay một số hiệu phiên bản khác so với phần mềm gốc. Theo đó, bản quyền nguồn mở phải đảm bảo rằng nguồn sẽ tồn tại ở dạng dễ dàng lấy đƣợc, nhƣng có thể yêu cầu rằng nó sẽ đƣợc phân phối với nguồn nguyên gốc ban đầu kèm với các bản vá. Theo cách này, những thay đổi “không chính thức” có thể xuất hiện ở hình thức sẵn sàng để tiếp cận nhƣng đƣợc phân biệt một cách dễ dàng với nguồn cơ sở. Không có sự phân biệt đối xử giữa các cá nhân hay nhóm ngƣời Bản quyền phải không đƣợc phân biệt đối xử với bất cứ cá nhân hay nhóm ngƣời nào. Không phân biệt đối xử với bất cứ một lĩnh vực công việc nào Bản quyền phải không đƣợc cản trở bất cứ ai khỏi việc sử dụng chƣơng trình trong một lĩnh vực công việc cụ thể. Ví dụ, nó không đƣợc cản trở không cho chƣơng trình đó đƣợc dùng trong một doanh nghiệp, hay không đƣợc dùng cho việc nghiên cứu gien. Việc phân phối bản quyền Các quyền lợi đi kèm với chƣơng trình phải áp dụng cho tất cả những ai chƣơng trình đó đƣợc tái phân phối đến, đồng thời không cần phải thực thi một thứ giấy phép phụ nào do các bên đó quy định. [...]... trình phát triển phần mềm nguồn mở 2.2.1 Các giai đoạn phát triển Quy trình phát triển phần mềm luôn đƣợc xây dựng trên cơ sở các giai đoạn chuẩn của Công nghệ phần mềm Một cách tổng quát có thể nói rằng cả hai quy trình phát triển phần mềm nguồn mởphần mềm nguồn đóng đều thực hiện theo các bƣớc sau: Bước 1: Xác định các yêu cầu phần mềm (Requirement Engineering): Xác định phần mềm cần phải... Bằng sáng chế đƣợc gắn với sự phân phối những sửa đổi 1.5 So sánh phần mềm nguồn mởphần mềm nguồn đóng 1.5.1 Ƣu điểm Về độ tin cậy và tính an ninh của phần mềm: - PMMNM có nguồn để công khai trên Internet nên đƣợc rà soát liên tục bởi nhiều ngƣời Còn phần mềm nguồn đóng (PMMNĐ) việc rà soát nguồn chỉ do nhóm phát triển phần mềm thực hiện Vì vậy khả năng phát hiện lỗi và các lỗ hổng an ninh... (mô hình RUP) Phân phối phần mềm nguồn mở (PMMNM) có nghĩa là nguồn của phần mềm đƣợc phân phối và truyền bá cùng với các ứng dụng của nó hình phát triển PMMNM cũng có tất cả các giai đoạn của quy trình phát triển phần mềm: - Xác định các yêu cầu phần mềm: Lập trình nguồn mở cần phải xây dựng các công cụ cần thiết để phát triển phần mềm Thông thƣờng các yêu cầu phần mềm đƣợc phân tán và lan... sản phẩm kiểu phần mềm soạn thảo GNU Emacs, chƣơng trình dịch GNU Compiler, phần mềm gỡ rối GNU Debugger và nhiều gói phần mềm GNU khác Ông là Chủ tịch của Tổ chức Phần mềm Tự do (Free Software Foundation) Phần mềm tự do nguồn mở, dùng để chỉ các phần mềm có giấy phép sử dụng theo kiểu GNU Tự do ở đây không ám chỉ sự miễn phí, chỉ nói về các quyền tự do phần mềm tự do nguồn mở mang lại cho... khách hàng xác định các yêu cầu phần mềm về mặt chức năng, tổng hợp các yêu cầu phần mềm hình hóa các yêu cầu phần mềm Bước 2: Phân tích hệ thống phần mềm (Analysis): Tiến hành phân tích hệ thống phần mềm: xác định kiến trúc cấu hình phần cứng, xác định kiến trúc phần mềm, hình phát triển phần mềm, xác định các kiến trúc và thành phần đáp ứng các yêu cầu của phần mềm Bước 3: Thiết kế chi tiết... đƣợc chất lƣợng phần mềm, v.v… 2.2.2 Loại phần mềm nguồn mở (*) Dựa theo tính chất của dự án phát triển, phần mềm nguồn mở đƣợc chia làm hai loại: (l) Các dự án đƣợc tài trợ toàn phần: Các dự án này đƣợc hỗ trợ kinh phí toàn phần bởi các tổ chức ví dụ nhƣ Free Software Foundation Khi đó chúng ta có thể coi nhƣ đây là một dự án phát triển phần mềm giống nhƣ bất kỳ một dự án phần mềm thƣơng mại... cần có hình để phát triển sao cho hợp lí CHƢƠNG 2: PHÁT TRIỂN PHẦN MỀM NGUỒN MỞ 2.1 hình phát triển phần mềm nguồn mở 2.1.1 Giới thiệu hình phát triển phần mềm nguồn mở đƣợc đặc trƣng bởi các qui trình và giá trị làm cho nó khác biệt với hình phát triển sở hữu độc quyền theo truyền thống hình phát triển phần mềm đƣợc nhiều tổ chức thực hiện thƣờng gồm những giai đoạn riêng... Quản lý nội dung của phần mềm • Quản lý trong xuất quá trình vận hành sản phẩm cho tới khi sản phẩm không đƣợc sử dụng nữa 2.1.3 hình phát triển phần mềm nguồn mở Phần mềm nguồn mở (OSS) là dự án đƣợc xây dựng và duy trì bởi một mạng lƣới của các lập trình viên tình nguyện và không có một thiết kế ban đầu rõ ràng, không có một qui trình quản lý chính thức Phần mềm nguồn mở nói chung cho phép... gốc của các phần mềm tự do nguồn mở chính là giấy phép GPL Các phần mềm đƣợc cung cấp theo giấy phép GPL chính là các phần mềm tự do nguồn mở tuân thủ theo các quyền của GPL Một số qui định đáng lƣu ý trong GPL Version 2: – Có thể bán thực thi tạo ra từ phiên bản sửa đổi tuy nhiên nguồn phải công bố – nguồn của sản phẩm và tất cả các sửa đổi sau đó phải tồn tại dƣới dạng phần mềm tự do – Tất... phép phần mềm nguồn mở 1.4.1 Các loại giấy phép nguồn mở: Kiểu BSD - (Open Source BSD-style): Một nhóm đã phát triển các PMMNM theo giấy phép phân phối Berkely (BSD – Berkely Software Distribution) cho phép sử dụng và phân phối lại các phần mềm này dƣới dạng nhị phân nguồn Tuy ngƣời dùng có quyền sửa đổi mã, nhƣng về nguyên tắc nhóm phát triển không cho phép ngƣời dùng tự do lấy nguồn

Ngày đăng: 08/06/2014, 09:12

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan