Lập trình java phần 1 docx

8 334 0
Lập trình java phần 1 docx

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

Thông tin tài liệu

1 2/24/2012 1 GIỚI THIỆU VỀ PHẦN MỀM MÃ NGUỒN MỞ Th.SNguyễnThị Mai Trang Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 2 NỘI DUNG l Phầnmềmvàvấnđề bảnquyềnphầnmềm l Phongtràophầnmềmtựdo l Phầnmềmmãnguồnmở Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 3 Sở hữuphầnmềm lMộtphầnmềmthuộcvềmộtchủ sở hữu l Chủ sở hữucótoànquyền đốivớiphầnmềmvà quyết địnhmứcđộ sử dụngvàkhaitháctrênphần mềmthuộcquyềnsởhữu l Khimuốnsửdụngmộtphầnmềm, ngườisửdụng phảicómộtgiấyphépsửdụng(license) củaphần mềm đó Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 4 Giấyphépsửdụngphầnmềm lLàmộtbảnhợpđồngchophépngườisửdụng khaithácphiênbảnphầnmềm, qui địnhvềnhững khả năngcóthể sử dụng đốivớiphầnmềm l Cáctiêuchíphânloạiphầnmềmdựatrêngiấy phép – Khả năngphânphốilại(Distribution Possibility) – Truycậpvàomãnguồn(Accessbilityto source code) – Phísửdụng(Free) 2 Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 5 Tiêuchíphânloạiphầnmềm lKhả năngphânphốilại – Quyền đượcphépsaochépvàphânphốilạiphiênbản phầnmềmmàbạnđangcótrongtay(đãcógiấyphép sử dụng) hay không? l Truycậpvàomãnguồn – Chophépxemmãnguồn, sử dụng, sửamãnguồnphần mềm l Phísửdụng – Cóphảitrả tiềnchochủ sở hữuphầnmềmhay không? Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 6 Phầnmềmthươngmại l Bảnquyềncủaphầnmềmthươngmạichỉ chophépngười sử dụngphầnmềmtheonhữngràngbuộcghitrêngiấy phép l Bảnquyềnloạinàyrấtbịhạnchế l Trongtrườnghợpphầnmềmcólỗihay cácchứcnăng hoạt độngkhôngtốt – Chờ chủ sở hữusửalỗi – Cácnhàsảnxuấtphầnmềmkhôngnhiệttìnhsửalỗihoặcthực hiệntrongthờigianrấtlâu – Ngườisửdụngcóthể phảitrả thêmphícậpnhật – Ngườisửdụngkhôngcómộtphươngtiệngì để thúc đẩytiếntrình sửa đổivàcậpnhậtcácphầnmềmthươngmại Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 7 Phầnmềmmiễnphí/ trả mộtphần l Phầnmềmmiễnphí(Freeware) vàphầnmềmtrả mộtphần(Shareware) khônglàphầnmềmmã nguồnmở – Vẫncóchủ sở hữu – Đượcphânphốimộtcáchtựdo l Phầnmềmtrả mộtphần: saumộtthờigian đã định, ngườisửdụngphảitrả thêmtiền để sử dụng tiếp Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 8 Phầnmềmmãnguồnmở lPhầnmềmmãnguồnmởphảihộiđủ cácyếutố sau – Đượcphânphối đếnngườisửdụngcùngvớimãnguồn cóthểđượcsửađổi – Nócóthểđượcphânphốilạimàkhôngbịmộtràng buộcnàokhác – Cóthể phânphốicảnhữngthay đổitrênmãnguồngốc 3 Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 9 Mộtsốloạiphầnmềmthôngdụng ĐôikhiCóĐượcphépPhầnmềmmãnguồn mở (Open Source Software) KhôngKhôngĐôikhiPhầnmềmtrả một phần(Shareware) CóKhôngĐôikhiPhầnmềmmiễnphí (Freeware) KhôngKhôngKhôngPhầnmềmthương mại(Commercial Software) MiễnphíTruycậpvào mãnguồn Khả năng phânphốilại Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 10 NỘI DUNG l Phầnmềmvàvấnđề bảnquyềnphầnmềm l Phongtràophầnmềmtựdo l Phầnmềmmãnguồnmở Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 11 Phongtràophầnmềmtựdo l Nhằmtạoranhữngphầnmềmtựdo (Free Software) làtạoranhữngphầnmềmmàngườisử dụngcóthể tự do chiasẻ, nghiêncứuvàsửađổi chúng l ĐượckhởixướngbởiRichard M. Stallman vào năm1983 khiôngbắtđầudựánGNU – Viếttắtcủa“GNU is NOT UNIX” – Nhằmthaythế hệđiềuhànhUNIX vớitínhnăngtựdo l Thànhlậpquỹ phầnmềmtựdo (FSF-Free Software Foundation) năm1985 Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 12 4 Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 13 Địnhnghĩaphầnmềmtựdo l Phầnmềmtựdo đề cập đếnsựtựdo, không đề cập đếnvấnđề chi phí/giácả l Sựtựdo bao gồm4 yếutố – Tựdo thựcthi chươngtrìnhchobấtkỳmụcđíchgì – Tự do nghiêncứucáchthựcthi củachươngtrìnhvà sửa đổichúngchomụcđíchcủabạn. Truycậpvàomã nguồncủachươngtrìnhlàtiền đề – Tự do phânphốiphầnmềmchongườikhác – Tự do cảitiếnchươngtrìnhvàphânphốicảitiếncủa bạnchocộng đồng Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 14 KháiniệmCopyleft l Copyright nhằm để bảovệquyềntácgiả l Copyleftlàmộtphươngpháptổngquátnhằmlàm chomộtchươngtrìnhtựdo vàyêucầutấtcả nhữngphiênbảnsửađổihay mở rộngcủa chươngtrìnhcũngphảitựdo l Giấyphép“GNU General Public License” – Viếttắt“GNU GPL” – Cụ thể hóakháiniệmCopyleft – DùngchophầnlớncácsảnphẩmcủadựánGNU Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 15 LịchsửgiấyphépcủaGNU l Version 1-GPL v1-1989 l Version 2-GPL v2-1991 l Version 2-LGPL v2 (Library General Public License) -1991 l Version 2.1-LGPL v2.1 (Lesser General Public License) -1999 l Version 3-GPL v3-2007 Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 16 GNU LGPL V2 l Cóthể bánmãthựcthi tạoratừphiênbảnsửađổi – Tuynhiênmãnguồnphảicôngbố l Mãnguồncủasảnphẩmvàtấtcảcácsửađổisau đóphảitồntạidướidạngphầnmềmtựdo l Tấtcảcácchươngtrìnhcósửdụngmãnguồn GPL phảipháthànhdướigiấyphépGPL – Liênkếtđộnghay tĩnh đếnmãnguồnhoặcthư việnGPL – Sao chépmộtsốdòngcủamãnguồnGPL l http://www.gnu.org/licenses/old-licenses/gpl- 2.0.html 5 Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 17 GNU LGPL v2.1 l Đượctạora để chophépliênkếtđộngmãnguồnkhông pháthànhdướidạngGPL hoặcLGPL vàomãnguồnLGPL l Dànxếpviệcsửdụngcácthư việntựdo vàomụcđích thươngmại, vídụthư việnGNU C l Hầuhếtcác điềukhoảnvà điềukiệntươngtựGPL l Nếubạnthay đổivàphânphốimộtthư việnLGPL – Thư việnvànhữngthay đổiphải đượccôngbố(mãthựcthi vàmã nguồncùngvớichúthíchvềnhữngsửađổi) – Bằngsángchếđượcgắnvớisựphânphốinhữngsửađổi l http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 18 NỘI DUNG l Phầnmềmvàvấnđề bảnquyềnphầnmềm l Phongtràophầnmềmtựdo l l Ph Ph ầ ầ n n m m ề ề m m mã mã ngu ngu ồ ồ n n m m ở ở Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 19 SángkiếnmãnguồnmởOSI l OSI (Open Source Initiative–www.opensource.org) l Làtổchứcphi lợinhuận đượcthànhlậpnăm1998 bởiEric Raymond and Bruce Perens l Thaythế kháiniệmPhầnmềmtựdo (Free Software) bằngkháiniệmPhầnmềmmãnguồn mở (Open Source Software) để tránhsựhiểu nhầm: – Ý nghĩatựdo vớimiễnphícủatừFree tiếngAnh – Phầnmềmtựdo làkhôngthươngmại Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 20 6 Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 21 Phầnmềmmãnguồnmở lLàphầnmềmdướidạngmãnguồnmànóthường đượctạorabởimộtcộng đồng ảo, cộngtáctrên Internet vàthường đượctảivềmiễnphítừInternet hoặc đượcphânphốidướidạngcác đĩaCD-ROM vớimộtgiákhông đángkể l Tácgiả giữ bảnquyền(copyright) đốivớimã nguồnvàphânphốimãnguồndướimộtgiấyphép địnhnghĩanhữnggìbạnđược(hoặckhông được) làm đốivớimãnguồn Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 22 ÍchlợicủaPhầnmềmmãnguồnmở l PMMNM đượcpháttriểnbởimộtcộng đồngnhiềungười nhờđócóthể tìmracáclỗimộtcáchdễdàng – Là điểmmạnhnhấtcủaPMMNM – Mỗingười, vớikhả năngcóhạncủamìnhcóthể xemxétvàcảitiến cáccôngviệc đượcthựchiệnbởinhữngngườibạnkhác – Mỗithànhviênchỉ tậptrungvàophầnthuộclĩnhvựcchuyênsâu củamình – 500 lậptrìnhviênlàmviệcvớithờigiankhácnhau, tậptrungvào lĩnhvựcchuyênsâucủamìnhthìsẽtốthơn50 lậptrìnhviênlàm việctoànthờigian l CáchphânphốicủaPMMNM giúpnhiềungườicó điều kiệntiếpcậnvớichúnghơn. Nhấtlà đốivớicácnước đang pháttriển, nơimàgiáphầnmềmdànhchophầnbảotrì, bảohànhluônlàgánhnặng Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 23 ĐinhnghĩaPMMNM củaOSI l Mãnguồnmởkhôngchỉ làtruycậpvàomãnguồn l OSI đưara10 tiêuchímàmộtgiấyphépcầnđạt được để trở thànhmộtgiấyphépmãnguồnmở (Open Source License) l 1. Tự do phânphốilại(freeRedistribution) – Bảnquyềnsẽkhônghạnchế bấtcứaibánhoặccho phầnmềm, không đòihỏitiềnbảnquyềnhay mộtchi phí nàochothươngvụnày Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 24 ĐinhnghĩaPMMNM củaOSI (tt) l 2. Mãnguồn(Source code) – Chươngtrìnhphải đượcphânphốicùngvớimãnguồn đượccôngbốbằngnhữngphươngtiệncôngcộngmà ngườikháccóthể lấy đượcmãnguồnvớimộtchi phí hợplýnhất l 3. Sảnphẩmkếthừa(Derived Works) – Giấyphépphảicôngnhậnnhữngsửađổivànhữngsản phẩmkếthừa, chophépchúng đượcphânphốivới cùngnhững điềukhoảnnhư giấyphépcủaphầnmềm ban đầu 7 Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 25 ĐinhnghĩaPMMNM củaOSI (tt) l 4. Tínhtoànvẹncủamãnguồncủatácgiả (Integrity of The Author’s Source code) – Giấyphépcóthể ngăncảnviệcphânphốimãnguồn dướidạngbịsửađổi, chỉ khigiấyphépchấpnhậnsự phânphốicáctậptin válỗi(patch file) vớimãnguồnvì mục đíchsửađổichươngtrìnhtạithời điểmxâydựng (built time) chươngtrình. Giấyphépphảichophépmột cáchtườngminh việcphânphốiphầnmềmtạoratừmã nguồnbịsửađổi. Giấyphépcóthể yêucầunhữngsản phẩmkếthừaphảimangmộtcáitênkháchoặcsốphiên bảnkhácso vớiphầnmềmgốc Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 26 ĐinhnghĩaPMMNM củaOSI (tt) l 5. Khôngphânbiệt đốixửgiữacáccánhânvàcác nhóm(No Discrimination Against Persons or Groups) l 6. Khôngphânbiệt đốixửvớimụcđíchsửdụng (No Discrimination Against Fields of Endeavor) l 7. Phânphốigiấyphép(Distribution of license) – Nhữngquyền đượckèmvớichươngtrìnhphải đượcáp dụngvớitấtcảnhữngngườimàsau đóchươngtrình đượcphânphốilạimàkhôngcầnthiếtphảithựcthi thêmnhữnggiấyphépphụ củanhữngthànhphầnnày Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 27 ĐinhnghĩaPMMNM củaOSI (tt) l 8. Giấyphépkhông đượcdànhriêngchomộtsản phẩm(License Must Not Be Specific to a Product) – Nhữngquyền đượckèmtheochươngtrìnhthìkhôngbị phụ thuộcvàoviệcchươngtrìnhlàthànhphầncủamột bảnphânphốiphầnmềmcụthể. Nếuphầnmềmđược rúttríchtừbảnphânphốivà đượcsửdụnghoặcphân phốilạivớinhững điềukhoảncủagiấyphépcủa chươngtrìnhthìtấtcảcácbênmàchươngtrình được phânphối đếncũngnêncó đượccácquyềnlợingang bằngnhư nhữngquyềnlợiđược đưaratheobảnphân phốiphầnmềmgốc Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 28 ĐinhnghĩaPMMNM củaOSI (tt) l 9. Giấyphépkhông đượccảntrở phầnmềmkhác (License Must Not Restrict Other Software) – Giấyphépkhông được đặtnhữnghạnchế lênnhững phầnmềmkháccùng đượcphânphốivớiphầnmềm củagiấyphépnày. Vídụ, giấyphépkhông đượckhăng khăngrằngtấtcảcácphầnmềmkhác đượcphânphối trêncùngmộtphươngtiệnthìphảilàphầnmềmmã nguồnmở 8 Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 29 ĐinhnghĩaPMMNM củaOSI (tt) l 10. Giấyphépphảitrunglậpvềmặtcôngnghệ (License Must Be Technology-Neutral) – Khôngcósựdựtrùnàocủagiấyphépdànhchomột côngnghệ riênghay mộtkiểugiaodiệnnào đó l OSI duytrìdanhsáchcácgiấyphép đạttiêuchuẩn PMMNM l Black Duck Software cậpnhậtthườngxuyên20 giấyphépmãnguồnmởđượcdùngnhiềunhất . GiớithiệuvềPhầnmềmmãnguồnmở 10 NỘI DUNG l Phầnmềmvàvấnđề bảnquyềnphầnmềm l Phongtràophầnmềmtựdo l Phầnmềmmãnguồnmở Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 11 Phongtràophầnmềmtựdo l. Software Foundation) năm1985 Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 12 4 Chương 1: GiớithiệuvềPhầnmềmmãnguồnmở 13 Địnhnghĩaphầnmềmtựdo l Phầnmềmtựdo đề cập đếnsựtựdo,

Ngày đăng: 23/03/2014, 09:21

Từ khóa liên quan

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

Tài liệu liên quan