ÀI 1 - MỞ ĐẦU VỀ PHẦN MỀM MÃ NGUỒN MỞ MỤC TIÊU BÀI HỌC Học xong bài này Anh/ Chị sẽ: · Biết được khái niệm phần mềm tự do, phần mềm mã nguồn mở và phần mềm tự do mã nguồn mở; · Phân biệt được các khái niệm phần mềm · Nắm được một vài nét về lịch sử ra đời của phần mềm tự do · Nắm được ưu nhược điểm của phần mềm tự do và tầm quan trọng của nó · Biết được một số các điển hình của mã nguồn mở
Trang 1BÀI 1 - MỞ ĐẦU VỀ PHẦN MỀM MÃ NGUỒN MỞ MỤC TIÊU BÀI HỌC
Học xong bài này Anh/ Chị sẽ:
Biết được khái niệm phần mềm tự do, phần mềm mã nguồn mở và phần mềm tự
do mã nguồn mở;
Phân biệt được các khái niệm phần mềm
Nắm được một vài nét về lịch sử ra đời của phần mềm tự do
Nắm được ưu nhược điểm của phần mềm tự do và tầm quan trọng của nó
Biết được một số các điển hình của mã nguồn mở
NỘI DUNG BÀI HỌC
Nội dung bài học này trình bày những khía cạnh đặc thù của phần mềm nguồn mở, tập trung chủ yếu vào việc giải thích nền tảng cơ bản cho những người mới làm quen với phần mềm nguồn mở bao gồm
Giới thiệu phần mềm tự do và phần mềm mã nguồn mở;
Nhắc lại khái niệm một số loại phần mềm
Trình bày một vài nét về lịch sử ra đời của phần mềm tự do
Đưa ra một số ưu và nhược điểm của phần mềm tự do và nhấn mạnh tới tầm quan trọng của nó
Cuối cùng là trình bày một số điển hình mã nguồn mở
Trang 2so it does your computing as you wish - freedom 1)
Quyền tự do phân phối lại chương trình (The freedom to redistribute copies so you can help your neighbor - freedom 2)
Quyền tự do phát hành các phiên bản sửa đổi của bạn cho người khác (The freedom to distribute copies of your modified versions to others - freedom 3) Bằng cách này, bạn có thể cung cấp cho toàn bộ cộng đồng có cơ hội được hưởng lợi từ những thay đổi của bạn
Truy cập vào mã nguồn là điều kiện tiên quyết cho quyền tự do 1 và 3
Như vậy, phần mềm tự do có nghĩa là người dùng máy tính có quyền tự do hợp tác với những người mà họ lựa chọn, và kiểm soát các phần mềm mà họ sử dụng Tổ chức
Trang 3phần mềm tự do đã nhấn mạnh: “free” ở đây được hiểu theo nghĩa như trong tự do ngôn luận chứ không phải theo nghĩa như trong bia miễn phí (“free as in free speech, not as in free beer)
Cơ chế mà đảm bảo cho những quyền tự do này, theo pháp luật hiện hành, là sự phân phối theo một giấy phép đặc biệt Thông qua giấy phép này, tác giả trao các quyền cho người nhận chương trình có thể thực hiện các quyền tự do Ngoài ra, tác giả cũng có thể bổ sung thêm bất kỳ sự hạn chế nào mà tác giả mong muốn áp dụng, chẳng hạn như trong trường hợp muốn phân phối lại chương trình thì phải đính kèm thông báo công nhận tác giả ban đầu Để giấy phép được xem là tự do, những hạn chế này phải không làm mất tác dụng của các quyền tự do đã được nêu trong định nghĩa phần mềm tự do
Khái niệm phần mềm nguồn mở (open-source software) được khởi xướng bởi Eric Raymond và Tổ chức sáng kiến nguồn mở (Open Source Initiative - OSI) vào năm 1998 tương đương với khái niệm phần mềm tự do
Hình 1.2 Eric Raymond
Trang 42 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
Trang 54 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
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
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
Trang 610 License Must Be Technology-Neutral
No provision of the license may be predicated on any individual technology or style
of interface
Về mặt triết học, khái niệm phần mềm nguồn mở là rất khác với khái niệm phần mềm tự do, vì nó nhấn mạnh tới sự sẵn có của mã nguồn, chứ không nhấn mạnh sự tự do, nhưng về mặt thực tế thì lại giống hệt nhau Về mặt chính trị, khái niệm phần mềm nguồn
mở lại nhấn mạnh khía cạnh kỹ thuật, nó đưa ra những lợi ích về kỹ thuật như các mô hình phát triển và kinh doanh được cải thiện, an ninh tốt hơn…
Phần mềm tự do nguồn mở (Free and open-source software - FOSS) là sự kết hợp của phần mềm tự do và phần mềm nguồn mở
1.2 MỘT SỐ LOẠI PHẦN MỀM
Hình 1.4 Sơ đồ phân loại phần mềm
Trang 7Phần mềm tự do (Free software) là phần mềm cho phép cho bất cứ ai sử dụng, sao
chép, phân phối phần mềm hoặc đúng nguyên bản hoặc với những thay đổi, hoặc là miễn phí hoặc có thu phí
Phần mềm nguồn mở (open source software): phần mềm nguồn mở và phần mềm tự
do không phải là cùng một loại phần mềm Phần mềm nguồn mở chấp nhận một số giấy phép mà được xem là quá hạn chế, trong khi đó, có một số giấy phép phần mềm tự do lại không được chấp nhận Tuy nhiên, số lượng đó không nhiều, hầu hết các phần mềm tự do
là phần mềm nguồn mở và ngược lại, hầu hết các phần mềm nguồn mở là phần mềm tự do
Phần mềm miền công cộng (Public domain software) là phần mềm không có bản
quyền Ở đây, tác giả không thừa nhận tất cả các quyền của mình vì lợi ích cộng đồng và điều này cần phải được tuyên bố chắc chắn trong chương trình, vì nếu không, chương trình
sẽ bị cho là sở hữu độc quyền Nếu mã nguồn được cung cấp thì đây chính là một trường hợp đặc biệt của phần mềm tự do, tức là có thể có một số bản sao hoặc phiên bản sửa đổi không được tự do
Phần mềm copyleft (Copylefted software) là phần mềm tự do có điều khoản phân
phối đảm bảo rằng tất cả các bản sao của tất cả các phiên bản đều phải là tự do
Phần mềm phi tự do (Nonfree software) là bất kỳ những phần mềm nào mà không
tự do Việc sử dụng, phân phối lại hoặc sửa đổi đều bị cấm, hoặc đòi hỏi phải xin phép, hoặc bị hạn chế đến mức không thể sử dụng, phân phối lại hoặc sửa đổi một cách tự do
Phần mềm độc quyền (Proprietary software) là một tên gọi khác của phần mềm phi
tự do
Phần mềm miễn phí (Freeware) là phần mềm mà người sử dụng không phải trả bất
kỳ chi phí nào, không hạn chế thời gian sử dụng, có thể tải tự do về dùng từ Internet, có thể sao chép và sử dụng phần mềm đó Tuy nhiên, phần mềm miễn phí thường có nhiều hạn chế về quyền sử dụng Chẳng hạn như chúng thường chỉ được phân phối dưới dạng nhị phân, không được cung cấp mã nguồn hoặc cấm quyền phân phối… Phần mềm miễn phí
Trang 8thường được sử dụng để quảng bá cho các phần mềm (thường với các chức năng hoàn chỉnh hơn) hoặc dịch vụ khác
Phần mềm chia sẻ/ Phần mềm dùng thử (Shareware/ Trialware/ Demoware) là một
loại phần mềm độc quyền, nó cung cấp cho người sử dụng một số tính năng cơ bản hạn chế
và kèm theo một giấy phép trong đó hạn chế bất kỳ lợi ích thương mại, sử dụng, khai thác phần mềm Ngoài ra, nó còn có thể đem lại sự bất tiện cho người dùng trong quá trình sử dụng phần mềm, do xuất hiện một hộp thoại lúc khởi động hoặc trong quá trình sử dụng, nhắc nhở người sử dụng để mua nó, "hộp thoại dai dẳng" Phần mềm chia sẻ thường được cung cấp như là một tải về từ một trang web Internet hoặc như một đĩa nhỏ gọn đi kèm với một tạp chí Mục đích đằng sau của phần mềm chia sẻ là cung cấp cho người dùng tiềm năng cơ hội để thử chương trình với các tính năng cơ bản trong một thời gian hạn chế và đánh giá tính hữu dụng của nó trước khi mua một giấy phép cho các phiên bản đầy đủ của phần mềm Sau khi hết thời gian dùng thử, chương trình có thể ngừng chạy cho đến khi có giấy phép được mua, hoặc chạy với những tính năng hạn chế, hay không có khả năng lưu lại công việc
Trái ngược với phần mềm miễn phí, phần mềm thương mại (Comercial software) là
phần mềm được phát triển bởi một doanh nghiệp với mục đích để bán hoặc phục vụ mục đích thương mại Phần mềm thương mại có thể là phần mềm độc quyền hoặc phần mềm tự do
1.3 MỘT VÀI NÉT VỀ LỊCH SỬ RA ĐỜI
Dù tất cả lịch sử có liên quan tới IT là vắn tắt cần thiết, thì lịch sử của phần mềm tự
do vẫn là dài nhất Trên thực tế, chúng ta có thể nói rằng lúc ban đầu hầu hết tất cả phần mềm được phát triển đã thỏa mãn định nghĩa của phần mềm tự do, ngay cả khi khái niệm này vẫn còn chưa tồn tại Phần mềm tự do như một khái niệm đã không xuất hiện cho tới đầu những năm 1980 Tuy nhiên, lịch sử của nó có thể được dõi ngược lại các năm trước
Trong những năm 60, toàn cảnh IT đã bị áp đảo bởi các máy tính lớn, chủ yếu được cài đặt trong các công ty và cơ quan chính phủ và IBM từng là nhà sản xuất hàng đầu Trong thời kỳ này, khi mua một máy tính (phần cứng), thì đ ư ợ c k h u yế n m ạ i phần mềm Hơn nữa, phần mềm thường được phân phối cùng với mã nguồn của nó, và nói
Trang 9chung, không có bất kỳ hạn chế thực tế nào Một hệ điều hành máy tính lớn IBM, chương trình kiểm soát hàng không (ACP), từ năm 1967 cũng được phát hành cùng với mã nguồn bao gồm Các tổ chức của người sử dụng và nhà cung cấp, chẳng hạn như SHARE của IBM 701, hay DECUS của Tổng công ty Thiết bị kỹ thuật số (DEC), được thành lập để tạo điều kiện cho việc trao đổi của phần mềm Vì vậy, trong thời kỳ này, phần mềm đã được tự
do, không phải vì bất kỳ nỗ lực phối hợp của người sử dụng phần mềm hoặc các nhà phát triển, mà là vì sự cần thiết và một nền văn hóa khác biệt, cũng như khả năng tương thích của phần mềm
Cuối những năm 1960, hình ảnh thay đổi: các hệ điều hành và trình biên dịch ngôn ngữ lập trình phát triển, chi phí sản xuất phần mềm đã tăng đáng kể Một ngành công nghiệp phần mềm phát triển cạnh tranh với sản phẩm của các nhà sản xuất phần cứng đóng gói phần mềm (giá thành sản phẩm đóng gói được tính vào chi phí phần cứng) Ngày 30/09/1969, IBM đã công bố rằng từ năm 1970, hãng có thể bán một phần phần mềm của hãng một cách riêng rẽ
Phần mềm nguồn mở đầu tiên được công bố năm 1977 là hệ điều hành Unix BSD
có thu phí tượng trưng
Năm 1983, Richard Stallman, thành viên lâu năm của cộng đồng hacker tại Phòng thí nghiệm trí tuệ nhân tạo của MIT, đã rời bỏ công việc của ông để bắt đầu làm việc về dự
án GNU Ý tưởng của ông khi ông rời bỏ MIT là để xây dựng một hệ điều hành hoàn chỉnh, để sử dụng chung, mà hoàn toàn tự do Hệ thống này được gọi là GNU (“GNU không phải là Unix”, một từ viết tắt đệ qui) được bắt đầu vào tháng 1/ 1984 Richard Stallman cũng đã sáng lập ra Tổ chức phần mềm tự do (Free Software Foundation – FSF) vào tháng 10/ 1985
Năm 1991, Các hạt nhân Linux được phát hành dưới dạng mã nguồn tự do thay đổi được, do Linus Torvalds (một sinh viên Phần Lan 21 tuổi) đưa ra Giấy phép đầu tiên không phải là một giấy phép phần mềm tự do Tuy nhiên, với phiên bản 0.12 vào tháng 2/
Trang 10mềm tự do thông dụng Cũng giống như Unix, hạt nhân Linux thu hút sự chú ý của các lập trình viên tình nguyện
Năm 1998, Tổ chức Sáng kiến mã nguồn mở (Open Source Initiative - OSI) được thành lập, nó quyết định áp dụng khái niệm phần mềm nguồn mở như một thương hiệu để giới thiệu phần mềm tự do bước vào thế giới kinh doanh Quyết định này đã làm bùng lên một trong những cuộc tranh luận gay gắt nhất trong thế giới phần mềm tự do (mà nó vẫn tiếp tục cho tới ngày nay), khi mà tổ chức phần mềm tự do và những người khác đã cho rằng nó phù hợp hơn nhiều để nói về phần mềm tự do
Trong bản thân thế giới phần mềm tự do, bất chấp những cuộc tranh cãi mà thỉnh thoảng khuấy động cộng đồng, thì sự tăng trưởng của nó là khổng lồ Mỗi ngày có thêm nhiều các lập trình viên, các dự án phần mềm tự do tích cực hơn, nhiều người sử dụng hơn, … Càng ngày, phần mềm tự do đang dần chuyển khỏi những con đường phụ và trở thành một lực lượng sẽ phải được tính tới
1.4 THỰC TRẠNG SỬ DỤNG MÃ NGUỒN MỞ TRÊN THẾ GIỚI
Quốc hội Pháp đang bắt đầu một cuộc cách mạng của riêng mình: chuyển từ Windows sang phần mềm nguồn mở) từ tháng 6/2007
Ba công ty Brazin đang tiến hành khai triển các máy tính chạy Linux cho chương trình “Máy tính dành cho mọi người” của chính phủ Brazin Dự kiến hàng tháng sẽ giao 10,000 máy (13-2-2007)
Tại triển lãm Giải pháp Linux Paris 30-1-2007, Hãng chế tạo ôtô lớn thứ 2 châu Âu Peugeot Citroen đã ký với công ty phần mềm Novell hợp đồng khai triển 20,000 bộ Novell Linux cho máy tính cá nhân và 2,500 bộ Linux Enterprise dành cho máy chủ
Hãng tin Bloomberg báo cáo rằng Linux đã chính thức thắng trên 14,000 máy tính của chính quyền bang Munich, Ðức sau một quá trình xem xét dài trong đó Microsoft đã giảm giá và đích thân Tổng Giám đốc Microsoft Steve Balmer đi vận động (14-6-2004)
Trang 11 HSBC, một ngân hàng lớn của Anh có 125 triệu khách hàng toàn cầu, 9,500 văn phòng với 284,000 nhân viên tại 76 nước, đã quyết định chuẩn hóa hệ thống Linux theo một
hệ Linux (ngoài hạ tầng Windows, HSBC có khoảng vài nghìn máy chủ Linux)
Hà lan thống nhất dùng MNM : chính phủ Hà lan đã đặt ra thời hạn cuối cùng là tháng 4/2008, tất cả các cơ quan chính phủ phải bắt đầu sử dụng phần mềm nguồn
mở Những đơn vị nào dùng phần mềm bản quyền phải có luận chứng trình duyệt
1.5 THỰC TRẠNG SỬ DỤNG MÃ NGUỒN MỞ TẠI VIỆT NAM
Ngày 2/3/2004 Thủ tướng Chính phủ ban hành Quyết định số 235/2004/QĐ-TTg phê duyệt Dự án tổng thể “Ứng dụng và phát triển phần mềm nguồn mở ở Việt Nam giai đoạn 2004- 2008″
QUYẾT ĐỊNH của Thủ tướng Chính phủ số 169/2006/QĐ-TTg ngày 17 tháng 7 năm 2006 “Quy định về việc đầu tư, mua sắm các sản phẩm công nghệ thông tin của các cơ quan, tổ chức sử dụng nguồn vốn ngân sách nhà nước” nêu rõ “ Ưu tiên đầu tư, mua sắm sử dụng các sản phẩm phần mềm mã nguồn mở ”
Từ năm 2008, hơn 20 000 máy tính của các cơ quan Đảng sẽ chuyển sang dùng, hệ điều hành máy chủ và máy trạm là Linux, bộ phần mềm văn phòng mã nguồn mở OpenOffice
Năm 2010, Đến lượt ngành giáo dục bỏ Microsoft Office
1.6 ƯU VÀ NHƯỢC ĐIỂM
1.6.1 Ưu điểm
Lợi ích phần mềm nguồn mở thể hiện rõ nhất ở tính kinh tế, sử dụng phần mềm nguồn mở tiết kiệm được nguồn tiền khổng lồ Nguồn tiền tiết kiệm này sẽ giúp các nước đang phát triển hạn chế được hiện tượng chảy máu chất xám, khi mà các sinh viên được đào tạo về khoa học máy tính và phần mềm không còn đi tìm những công việc phù hợp với khả năng của họ tại các nước khác mà có thể làm việc tại đất nước mình
Trong lĩnh vực giáo dục đào tạo, phần mềm nguồn mở là nền tảng cho việc giáo dục
về khoa học máy tính Nếu dạy học về phần mềm sở hữu độc quyền, thì người học sẽ biết
Trang 12cách sử dụng phần mềm đó Nhưng nếu dạy và học về phần mềm nguồn mở thì người học không những biết cách sử dụng phần mềm nguồn mở mà còn biết thêm thông tin hoạt động của phần mềm đó như thế nào
Tuy nhiên, người ta lựa chọn phần mềm không chỉ dựa vào tính kinh phí phần mềm
đó mà còn dựa vào độ chất lượng và ứng dụng của nó Xét về phần mềm nguồn mở nó có các đặc điểm sau đây: tính an toàn, tính ổn định và đáng tinh cậy, giảm lệ thuộc vào xuất khẩu, vấn đề vi phạm bản quyền, quyền sở hữu trí tuệ và tính tuân thủ WTO, bản địa hóa, các chuẩn mở và sự không lệ thuộc vào nhà cung cấp, phát triển năng lực ngành công nghiệp địa phương
Ở phần mềm nguồn mở hầu như không có virus gây hại cho máy tính Đây cũng là vấn đề khiến mã nguồn mở ngày được quan tâm hơn so với phần mềm sử dụng mã đóng như Window Chẳng hạn như khi mua máy cài bản quyền Window thì phải mua thêm phần mềm diệt virus, như vậy người dùng lại tiếp tục tốn tiền mua thêm bản quyền phần mềm này
Những ưu điểm phần mềm nguồn mở nói trên thể hiện cụ thể như sau
Tính an toàn
Mã nguồn được phổ biến rộng rãi: việc mã nguồn được phổ biến rộng rãi giúp
người lập trình và người sử dụng dễ phát hiện, khắc phục các lỗ hỏng an toàn trước khi chúng bị lợi dụng Đa phần các lỗi hệ thống của phần mềm nguồn mở được phát hiện trong quá trình rà soát định kỳ và được sửa trước khi gây ra bất kỳ thiệt hại nào Các hệ thống phần mềm nguồn mở thường có quy trình rà soát chủ động chứ không phải rà soát đối phó
Ưu tiên về tính an toàn đặt trên tiêu chí tiện dụng: có thể nói phần mềm nguồn mở
được dùng để điều hành một phần lớn mạng internet và do đó nó nhấn mạnh nhiều đến tính bền vững, chức năng vận hành thay vì tính dễ sử dụng Trước khi thêm bất cứ tính năng nào vào một ứng dụng phần mềm nguồn mở, bao giờ người ta cũng cân nhắc đến khía cạnh an toàn, và tính năng đó sẽ chỉ được đưa vào nếu không làm yếu đi tính an toàn của hệ thống
Các hệ thống phần mềm nguồn mở chủ yếu dựa trên mô hình của Unix: nhiều người
sử dụng, thuận tiện cho kết nối mạng Do đó, chúng được thiết kế với một cấu trúc an toàn,
Trang 13bảo mật cao Điều này là đặc biệt quan trọng khi có nhiều người cùng chia sẻ quyền sử dụng một máy chủ cấu hình mạnh Nếu hệ thống có độ an toàn thấp, một người sử dụng bất kỳ có thể đột nhập vào máy chủ, đánh cắp dữ liệu cá nhân của người khác, hoặc làm cho mọi người không tiếp cận được với các dịch vụ do hệ thống cung cấp Kết quả của mô hình thiết kế này là có rất ít vụ tấn công được thực hiện thành công với các phần mềm nguồn mở
Nói tóm lại, một câu hỏi đặt ra là: một gói phần mềm được tạo ra bởi một vài nhà thiết kế, hay một gói phần mềm do hàng nghìn nhà thiết kế sáng tạo nên thì người sử dụng
sẽ chọn lựa như thế nào? Do phần mềm mã nguồn mở được sáng tạo bởi vô số các nhà thiết kế và người sử dụng nên độ bảo mật của chúng sẽ được cải thiện, cũng như chúng cũng sẽ được mang thêm nhiều tính năng mới và những cải tiến mới nên phần mềm mã mở
sẽ dễ chú ý sử dụng hơn
Các phần mềm nguồn mở thường ổn định và đáng tin cậy đó là kết luận từ những cuộc phân tích, đánh giá và so sánh với các phần mềm nguồn đóng khác Ví dụ như, một cuộc thử nghiệm theo phương pháp chọn ngẫu nhiên được tiến hành vào năm 1995, tập trung thử nghiệm 7 hệ điều hành thương mại và GNU/Linux Người ta nạp vào các hệ điều hành này những tính năng ngẫu nhiên theo một trình tự lộn xộn, bắt chước hành động của những người sử dụng kém hiểu biết Kết quả là các hệ điều hành thương mại có tỷ lệ xung đột hệ thống trung bình là 23% trong khi Linux chỉ bị lỗi vận hành trong 9% số lần thử nghiệm Các tiện ích của GNU (phần mềm do FSF xây dựng trong khuôn khổ dự án GNU)
bị lỗi vận hành có 6% số lần thử nghiệm Nhiều năm sau, một nghiên cứu tiếp nối còn cho thấy tất cả những lỗi gặp trong cuộc thử nghiệm nói trên đều đã được khắc phục với hệ điều hành FOSS trong khi với các phần mềm đóng thì vẫn hầu như chưa được đụng đến
Một trong những động cơ quan trọng khiến các quốc gia đang phát triển nhiệt tình hưởng ứng phần mềm nguồn mở chính là chi phí khổng lồ của giấy phép sử dụng các phần
Trang 14mềm đóng Do hầu như toàn bộ phần mềm của các nước đang phát triển đều được nhập khẩu, tiền mua những phần mềm này sẽ làm tiêu hao quỹ dự trữ ngoại tệ hết sức quý báu
mà lẽ ra có thể được sử dụng hiệu quả hơn cho những mục tiêu phát triển khác Công trình phần mềm nguồn mở tự do: nghiên cứu và khảo sát còn cho biết mô hình phần mềm nguồn
mở thiên nhiều hơn về dịch vụ công, do đó chi phí cho phần mềm cũng là để phục vụ những hoạt động của cơ quan Chính phủ chứ không phải cho mục đích lợi nhuận của các công ty đa quốc gia Điều này có ảnh hưởng tích cực đến tạo công ăn việc làm cho xã hội,
mở rộng năng lực đầu tư nội địa, và tăng thu cho ngân sách địa phương…
Nạn sao chép phần mềm là vấn đề mà hầu như quốc gia nào trên thế giới cũng gặp phải Tổ chức Business Software Alliance ước tính riêng trong năm 2002, tệ nạn này làm nước Mỹ thiệt hại mất 13,08 tỷ đôla Ngay với các quốc gia phát triển, nơi mà trên lý thuyết giá phần mềm còn vừa túi tiền người dân, tỷ lệ sao chép phần mềm vẫn ở mức rất cao (24% ở Mỹ và 35% ở Châu Âu) Tại các quốc gia đang phát triển, nơi mà mức thu nhập thấp khiến cho phần mềm trở thành một thứ hàng xa xỉ, thì tỷ lệ sao chép có thể đạt tới 90% Nạn sao chép phần mềm và hệ thống luật pháp lỏng lẻo sẽ gây thiệt hại cho một quốc gia trên nhiều phương diện Quốc gia nào yếu trong việc thực thi bảo vệ quyền sở hữu trí tuệ sẽ kém hấp dẫn với các nhà đầu tư nước ngoài Quyền gia nhập WTO và khả năng tiếp cận những lợi ích mà tổ chức này mang lại bị ảnh hưởng khá nhiều bởi mức độ bảo vệ quyền sở hữu trí tuệ mà một quốc gia đạt được Nạn sao chép phần mềm còn gây hại cho nền công nghiệp phần mềm nội địa, do các nhà lập trình địa phương giờ đây chẳng còn mấy động cơ để xây dựng những phần mềm bản địa
“Bản địa hoá là thích ứng một sản phẩm, làm cho nó phù hợp về mặt ngôn ngữ và văn hoá với thị trường mục tiêu (quốc gia hoặc địa phương), nơi sản phẩm được tiêu thụ và sử dụng” Bản địa hoá là một trong những lĩnh vực nơi phần mềm nguồn mở tỏ rõ ưu thế của mình Người sử dụng phần mềm nguồn mở có thể tự do sửa đổi để phần mềm trở nên thích
Trang 15ứng với những nhu cầu riêng biệt của một khu vực văn hoá đặc thù, bất kể quy mô kinh tế của khu vực đó Chỉ cần một nhóm nhỏ những người có đủ trình độ kỹ thuật là đã có thể tạo
ra một phiên bản nội địa ở mức độ thấp cho bất kỳ phần mềm nguồn mở nào Còn việc xây dựng một hệ điều hành đã bản địa hóa hoàn chỉnh, mặc dù không đơn giản, nhưng ít ra cũng
là khả thi Việc Microsoft năm 1998 quyết định không xây dựng phiên bản Window 98 cho Iceland có thể đã gây nên những tác hại khó lường nếu như không có giải pháp thay thế của phần mềm nguồn mở (Windows 98 là cải tiến của phiên bản trước, nó khá giống Windows
95 Một số cải tiến hữu ích như hỗ trợ USB, chia sẻ kết nối Internet)
Các chuẩn mở và việc không phải lệ thuộc vào nhà cung cấp
Sẵn có mã nguồn: với mã nguồn được phổ biến công khai, người ta lúc nào cũng có
thể tái thiết kế và tích hợp lại bộ chuẩn của một ứng dụng Mọi khả năng tuỳ biến đều đã thể hiện rõ trong mã nguồn, khiến cho không ai có thể giấu một chuẩn riêng trong một hệ thống phần mềm nguồn mở Đối với phần mềm đóng thì việc tái thiết kế sẽ khó hơn Một
số mã còn được viết ra để đánh lạc hướng người dùng
Chủ động tương thích chuẩn: khi đã có những chuẩn được thừa nhận rộng rãi, ví dụ
như HyperText Markup Language (HTML) bộ chuẩn quy định cách thức hiển thị các trang web, thì các dự án phần mềm nguồn mở luôn chủ động bám sát những chuẩn này Khi sử dụng các hệ thống phần mềm nguồn mở để thoát khỏi việc lệ thuộc vào nhà cung cấp
Ví dụ: các doanh nghiệp có thể biến đổi một phần của gói phần mềm mã nguồn mở
để biến chúng phù hợp với những nhu cầu của mình Nhờ vào tính mở của các mã nguồn
mà người sử dụng chỉ cần thay đổi mã nguồn để đạt được tính năng như ý muốn Họ không thể làm được điều đó với các phần mềm có bản quyền
1.6.2 Nhược điểm
Bên cạnh nhiều ưu điểm, phần mềm tự do cũng có những nhược điểm Nhược điểm
dễ thấy nhất là về tài chính, vì như chúng ta đã thấy là không thể kiếm nhiều tiền từ sự phân phối nó, mà có thể và có xu hướng sẽ được làm bởi ai đó khác chứ không phải tác giả Ngoài ra, phần mềm tự do cũng có những nhược điểm khác, cụ thể như:
Trang 16 Tính đa dạng và phức tạp
Cộng đồng phần mềm tự do đã phát triển nhiều ứng dụng đa dạng với những chức năng tương tự nhau Điều này gây khó khăn cho những người mới sử dụng trong việc chọn lựa Cơ cấu chọn lựa đã được thiết lập như nhà sản xuất, giá cả, thị phần hoặc hỗ trợ chỉ cung cấp một sự giúp đỡ có hạn Vấn đề thực sự là một khi gia tăng tính đa dạng sẽ dẫn đến sự phức tạp trong khi với xã hội ngày nay, người ta luôn mong muốn sự đơn giản
Sự dư thừa
Sự chia nhánh mã nguồn có thể dẫn đến sự lãng phí trong quá trình phát triển nó Nếu các nguồn phát triển được kết hợp và tổ chức lại một cách tốt hơn thì hiệu suất sẽ được nâng cao
Sự bất tiện
Phần mềm tự do thường chỉ tập trung vào các mã của nó mà ít chú ý đến thiết kế giao diện và phát triển các tiện ích Trong Microsoft World, hầu hết các phát triển trong vài năm gần đây đều thuộc lĩnh vực tiện ích và phát triển giao diện người dùng Thêm vào những mâu thuẫn trên, người ta phải xem xét việc dùng một sản phẩm độc quyền chẳng hạn như của Microsoft vốn rất nổi tiếng với việc chuyển sang dùng phần mềm tự do phải học cách sử dụng các ứng dụng mới
Thiếu các ứng dụng kinh doanh đặc thù
Mặc dù có rất nhiều dự án phần mềm tự do đang được tiến hành, vẫn còn nhiều lĩnh vực hoạt động chưa có được một sản phẩm phần mềm hoàn thiện, đặc biệt là trong kinh doanh Gần đây, sự ra đời của một số phần mềm quản lý nguồn lực doanh nghiệp (Enterprise Resource Planning) của SAP đã giúp đáp ứng phần nào nhu cầu của thị trường cao cấp, nhưng thị trường dành cho các doanh nghiệp vừa và nhỏ thì hầu như vẫn bị bỏ trống Những phần mềm kế toán cơ bản, tiện lợi cho người dùng như Quickbooks, Peachtree hay Great Plains cho đến nay vẫn chưa có các phiên bản phần mềm nguồn mở tương đương
Trang 17SAP được đánh giá là một trong bốn công ty phần mềm lớn nhất thế giới, sau Microsoft, IBM, và Peopleoft PeopleSoft là nhà cung cấp phần mềm đứng hàng thứ 2 thế giới, sau hãng SAP của Đức, trong lĩnh vực phần mềm quản lý tài chính, nhân lực và kế toán
Các phần mềm tự do, nhất là khi cài trên máy để bàn, thường không hoàn toàn tương thích với phần mềm đóng Với những tổ chức đã đầu tư nhiều cho việc thiết lập các định dạng lưu trữ dữ liệu và ứng dụng phần mềm đóng, việc cố gắng tích hợp những giải pháp phần mềm nguồn mở có thể sẽ rất tốn kém Thay đổi các chuẩn đóng đã được xây dựng với mục đích ngăn chặn tích hợp những giải pháp thay thế sẽ chỉ càng làm trầm trọng thêm vấn đề
Nhược điểm khi đưa phần mềm nguồn mở thay thế phần mềm nguồn đóng Nhược điểm thứ nhất là do gặp sự kháng cự của người dùng, do không muốn thay đổi thói quen, phải học thêm một cái mới Nhược điểm thứ hai: các công ty, cán bộ kỹ thuật chuyên về phần mềm nguồn mở ở Việt Nam hiện nay còn quá ít
1.7 MÔ HÌNH KINH DOANH
Trong mục này, chúng ta sẽ xem xét các mô hình kinh doanh chính được đưa vào thực tế của các công ty có liên quan trực tiếp tới phần mềm tự do
Phần mềm tự do được phát triển theo nhiều cách khác nhau và việc sử dụng các cơ chế để giành vốn là hết sức khác nhau theo từng trường hợp Mỗi dự án tự do có cách riêng của bản thân nó trong việc cấp vốn, từ dự án cấu tạo hoàn toàn từ những lập trình viên tự nguyện và chỉ sử dụng vốn nhượng lại, cho tới dự án triển khai bởi một công ty mà nó báo giá 100% giá thành của dự án cho một tổ chức có quan tâm trong sự phát triển tương ứng đó
Trong một số trường hợp, các dự án có vốn từ bên ngoài, nó có thể được coi như một dạng tài trợ Cơ quan cấp vốn có thể một cách trực tiếp là chính phủ (địa phương, vùng, quốc gia hoặc ngay cả là siêu quốc gia) hoặc một cơ quan nhà nước (ví dụ, một quỹ) Trong những trường hợp này, việc cấp vốn có xu hướng sẽ tương tự như cho các dự án
Trang 18nghiên cứu và phát triển và trên thực tế nó là chung cho việc cấp vốn tới từ các cơ quan nhà nước mà họ khuyến khích nghiên cứu và phát triển
Ngoài ra còn có một số mô hình kinh doanh khác như:
Công ty khuyến khích khách hàng sử dụng một sản phẩm phần mềm tự do (mà
nó đã phát triển hoặc nó tham gia tích cực vào trong đó) và bán các dịch vụ như
là tư vấn, bảo hành, đào tạo hướng dẫn sử dụng hoặc sự phát triển dựa trên sản phẩm, sự sửa đổi, áp dụng, cài đặt và tích hợp với các sản phẩm khác
Việc kinh doanh chính của công ty là bán phần cứng và phần mềm tự do được coi như một sự bổ sung mà có thể giúp công ty giành được một ưu thế cạnh tranh
Công ty phát triển một sản phẩm phần mềm tự do và bán các sản phẩm liên quan tới phần mềm tự do như là sách, các thiết bị máy tính, …
Công ty phát triển một sản phẩm phần mềm tự do, khuyến khích mọi người sử dụng một cách miễn phí và thu lợi nhuận từ các quảng cáo trên sản phẩm
1.8 MỘT SỐ ĐIỂN HÌNH MÃ NGUỒN MỞ
• Linux, nhân của hệ điều hành tự do nổi tiếng nhất ngày nay
• Open Offices một bộ phầm mềm văn phòng tự do đa nền tảng
• máy chủ Apache, một trong những khía cạnh chính trong các hệ thống tự do, apache dẫn đầu trong thị trường máy chủ WWW
• Mozilla, một trong những máy trạm WWW mà chúng ta có thể tin cậy dựa vào trong thế giới PMTD Dự án Mozilla gồm một tập hợp các ứng dụng tích hợp cho Internet, tự do và đa nền tảng, các sản phẩm đáng chú ý nhất là trình duyệt web Firefox và trình thư điện tử và tin cho máy trạm Thunderbird
• Môi trường phát triển phần mềm đa ngôn ngữ Eclipse
Trang 19TỔNG KẾT
Sau bài học này anh chị đã nắm được:
• Khái niệm phần mềm tự do, phần mềm mã nguồn mở, phần mềm tự do nguồn mở;
• Phân biệt được một số loại phần mềm;
• Đôi nét về lịch sử phần mềm tự do;
• Thực trạng sử dụng phần mềm tự do trên thế giới và ở Việt Nam;
• Ưu nhược điểm của phần mềm tự do;
• Các hình thức kinh doanh phần mềm tự do;
• Một số phần mềm tự do điển hình
Chúc Anh/Chị học tập tốt!
Trang 20BÀI 2 - GIẤY PHÉP MÃ NGUỒN MỞ MỤC TIÊU BÀI HỌC
Học xong bài này Anh/ Chị sẽ:
Biết được khái niệm giấy phép phần mềm tự do, tính pháp lý và quy trình thông qua một giấy phép phần mềm mã nguồn mở;
Phân loại được giấy phép mã nguồn mở;
Biết cách sử dụng giấy phép mã nguồn mở;
Nắm được nội dung cơ bản của một số giấy phép mã nguồn mở thông dụng
2.1 GIỚI THIỆU
Về phương diện pháp lý mà nói, thì tình trạng của các phần mềm tự do nguồn mở và phần mềm sở hữu độc quyền là không khác nhau Cả hai đều được phân phối theo một giấy phép Sự khác biệt nằm ở những gì giấy phép này cho phép Trong khi giấy phép của phần mềm sở hữu độc quyền (EULA) thường có nội dung để cấm đoán người sử dụng, thì các giấy phép của phần mềm tự do nguồn mở lại thường làm điều ngược lại
Như vậy, giấy phép được định nghĩa là tập hợp các quy tắc, quy định đòi hỏi người dùng phải tuân theo khi sử dụng sản phẩm
Lưu ý rằng, giấy phép mã nguồn mở chỉ áp dụng cho các sản phẩm mã nguồn mở Giấy phép hầu hết sử dụng tiếng Anh, mọi bản dịch chỉ có giá trị tham khảo, không
có giá trị pháp lý Có hơn 70 loại giấy phép phần mềm tự do nguồn mở và chúng đều phải tuân thủ định nghĩa hoặc của phần mềm tự do từ Tổ chức phần mềm tự do - FSF, hoặc của phần mềm nguồn mở từ Tổ chức sang kiến nguồn mở - OSI Danh sách được công bố tại website http://www.opensource.org/licenses/ Giấy phép thông dụng nhất là GNU GPL (General Public Licenses) http://www.gnu.org/copyleft/gpl.html
Trang 212.2 PHÂN LOẠI GIẤY PHÉP PHẦN MỀM TỰ DO NGUỒN MỞ
Có thể phân chia các giấy phép của phần mềm tự do thành hai họ lớn Họ đầu bao gồm các giấy phép mà không đặt ra những điều kiện đặc biệt lên việc phân phối lại
lần 2 và được gọi là các giấy phép dễ dãi Họ thứ hai là các giấy phép mạnh (hoặc các
giấy phép copyleft), bao gồm những giấy phép mà chúng ở dạng của GNU GPL, áp đặt những điều kiện trong trường hợp muốn phân phối lại phần mềm, có mục đích để đảm bảo tuân thủ với những điều kiện của giấy phép sau lần phân phối lại lần đầu
2.2.1 Các giấy phép dễ dãi
Các giấy phép dễ dãi còn được gọi là các giấy phép hào phóng hoặc tối thiểu; hầu như không áp đặt bất kỳ điều kiện nào lên người nhận phần mềm, cho phép sử dụng, phân phối lại và sửa đổi Từ tiếp cận này, có thể nói rằng bản chất của các giấy phép này là đảm bảo sự tự do cho tới lập trình viên Khi phân phối lại phần mềm, lập trình viên có thể được phép phân phối lại phần mềm ở dạng mã nguồn hoặc mã nhị phân như phần mềm sở hữu độc quyền
Trong số những giấy phép này, thì giấy phép BSD là một điển hình BSD cho quyền thay đổi tùy ý phần mềm và tích hợp vào các phần mềm khác mà không có hạn chế nào Thường các giấy phép BSD được trao cho những dự án thí điểm, dự án làm chuẩn có kinh phí từ Chính phủ Mỹ
Các giấy phép dễ dãi khá phổ biến, và có những đặc tính tương tự như đối với BSD, chẳng hạn như: X Window (X11), Apache, Zope Public License
Giấy phép X Window, phiên bản 11 (X11) Đây là giấy phép được sử dụng để phân phối hệ thống X Window, một hệ thống cửa sổ dùng để hiển thị đồ họa bitmap, nó cung ứng một bộ các công cụ và giao thức cho phép người dùng xây dựng các giao diện đồ họa (GUI) trong hệ điều hành Unix, tựa Unix Giấy phép X11 tương tự như giấy phép BSD, nó cho phép phân phối lại, sử dụng và sửa đổi mà thực tế không có bất kỳ hạn chế nào
Trang 22Giấy phép Zope Public License được sử dụng cho sự phân phối Zope (một máy chủ ứng dụng) và các sản phẩm liên quan khác Nó tương tự như BSD, với tính năng kỳ lạ rằng
nó chỉ cốt để cấm sử dụng các thương hiệu được đăng ký bởi tập đoàn Zope
Giấy phép Apache: Đây là giấy phép mà theo đó hầu hết các chương trình được sản xuất bởi dự án Apache được phân phối Nó cũng tương tự như giấy phép BSD
2.2.2 Các giấy phép mạnh
Các giấy phép mạnh còn được gọi là các giấy phép copyleft Các giấy phép này thay
vì việc giới hạn các quyền của người sử dụng, nó đảm bảo cho họ Vì lý do này, hành vi này được gọi là copyleft (một cách chơi chữ thay thế cho copyright) Ai đó có khiếu hài hước đã còn nghĩ ra khẩu hiệu “copyleft, mọi quyền được nghịch đảo”
Bản chất của các giấy phép loại này là mang tự do cho tới người sử dụng Bất kỳ ai đóng góp thêm mã nguồn vào cho chương trình thì các mã nguồn đó cũng sẽ mang giấy phép gốc ban đầu khi phân phối phần mềm phái sinh đó
Triết lý: PM có tác giả, không có chủ sở hữu
Dưới đây là một số giấy phép copyleft điển hình:
Giấy phép Công cộng GNU GPL, cho tới nay là giấy phép phổ biến và nổi tiếng nhất trong thế giới của phần mềm tự do Nó đã được tạo ra bởi Tổ chức phần mềm tự do - FSF, và ban đầu đã được thiết kế để trở thành giấy phép cho tất cả các phần mềm được tạo
ra bởi FSF Tuy nhiên, việc sử dụng nó đã mở rộng xa hơn trở thành giấy phép được sử dụng nhiều nhất (hơn 70% các dự án đã công bố trên Freshmeat được cấp phép theo GPL), ngay cả bởi các dự án hàng đầu trong thế giới của phần mềm tự do, như nhân Linux
Giấy phép GNU LGPL là một giấy phép khác của FSF Ban đầu được thiết kế để sử dụng nó với các thư viện (chữ L, ban đầu có nghĩa là thư viện – library), gần đây nó đã được sửa để được coi là cô em nhỏ - little sister (lesser) của GPL
Các giấy phép mạnh khác đáng để lưu ý gồm: Giấy phép con mèo ngủ Sleepycat, Affero General Public Licence (AGPL), IBM Public Licence; Mozilla Public Licence
Trang 232.3 TÍNH PHÁP LÝ CỦA GIẤY PHÉP MÃ NGUỒN MỞ
Giấy phép mã nguồn mở xác nhận về bản quyền của tác giả gốc đối với phần mềm, tuy nhiên được đưa thêm các điều khoản để các hành vi phân phối, sửa đổi, sao chép… các phần mềm này trở thành hợp pháp
Người lập giấy phép mã nguồn mở
Giấy phép mã nguồn mở do một số công ty, tổ chức lập ra để quy định trách nhiệm của người sử dụng đối với một phần mềm/mã nguồn mở dựa trên định nghĩa về mã nguồn
mở (OSD – Open Source Definition) do Tổ chức sáng kiến mã nguồn mở (OSI - Open Source Initiative) đưa ra
Quy trình thông qua một giấy phép mã nguồn mở tại OSI
- Cộng đồng thẩm định giấy phép sẽ thảo luận ít nhất 30 ngày
- Các ý kiến từ cộng đồng sẽ được tổng kết và đưa lên ban giám đốc OSI
- Ban giám đốc OSI sẽ đưa ra quyết định cuối cùng, hoặc yêu cầu các thông tin
bổ sung, trong lần họp định kì tháng sau
- Cộng đồng thẩm định sẽ được thông báo về quyết định của ban giám đốc OSI
- Nếu giấy phép đó được chấp nhận, nó sẽ được đưa lên website của OSI
Cách sử dụng giấy phép mã nguồn mở
- Điền thông tin cần thiết vào trong bản mẫu của giấy phép;
- Đính kèm giấy phép vào trong phần mềm
2.4 MỘT SỐ GIẤY PHÉP MÃ NGUỒN MỞ THÔNG DỤNG
2.4.1 Giấy phép GNU GPL
Trang 24Giấy phép GNU GPL là giấy phép phần mềm tự do phổ biến nhất, ban đầu được thiết kế bởi Richard Stallman
Phiên bản 1 phát hành 25/ 2/ 1989
Phiên bản 2 năm 1991
Phiên bản 3, phiên bản hiện tại, được phát hành năm 2007
Nội dung chính của giấy phép mã nguồn mở GNU GPL:
Quyền lợi:
- Quyền được sao chép và phân phối chương trình
- Quyền được yêu cầu trả phí cho việc phân phối đó
- Quyền được thay đổi để sử dụng cho mục đích cá nhân
- Quyền được phân phối bản đã được thay đổi đó
Nghĩa vụ:
- Khi sao chép hoặc phân phối chương trình, phải đính kèm các thông báo về bản quyền gốc và không nhận bảo hành (trừ khi nếu có văn bản quy định thêm về việc bảo hành)
- Khi phân phối bản đã được thay đổi
bởi bản thân, phải chú thích rõ đó là
bản đã được thay đổi, các thành phần
được thay đổi, và áp dụng giấy phép
GNU cho bản đã thay đổi đó
- Khi phát hành mã nguồn phải công khai mã nguồn chương trình đó
Xử lý vi phạm:
Người vi phạm giấy phép sẽ bị tước quyền sử dụng giấy phép GNU Tuy nhiên, nếu
B thừa hưởng giấy phép từ A, A vi phạm mà B không vi phạm thì B vẫn được giữ giấy phép GNU
Trang 25 Đặc điểm của giấy phép GNU GPL
Giấy phép GPL cho phép phân phối lại ở dạng nhị phân và dạng mã nguồn, dù trong trường hợp sự phân phối lại bằng mã nhị phân thì sự truy cập tới mã nguồn cũng là bắt buộc Nó còn cho phép những sửa đổi được thực hiện mà không có bất kỳ hạn chế nào Tuy nhiên, điều này chỉ có thể để phân phối lại mã nguồn được cấp phép theo GPL tích hợp được với mã nguồn khác (ví dụ, việc liên kết mã nguồn) nếu nó có một giấy phép
tương thích Điều này từng được gọi là hiệu ứng virus
Tác giả gốc giữ bản quyền và cho phép người dùng các quyền hợp pháp, chẳng hạn như: ng dùng có quyền sử dụng, sao chép, chỉnh sửa, phân phối, cung cấp các dịch vụ có thể miễn phí hoặc thu phí
Một số phần mềm sử dụng giấy phép GNU GPL
Ubuntu là một hệ điều hành máy tính dựa trên Debian GNU/Linux, một bản phân
phối Linux thông dụng Mục đích của Ubuntu bao gồm việc cung cấp một hệ điều hành ổn định, cập nhật cho người dùng bình thường, và tập trung vào sự tiện dụng và dễ dàng cài đặt Ubuntu đã được đánh giá xếp hạng là bản phân phối Linux thông dụng nhất cho máy tính để bàn
Wordpress được biết đến như một phần mềm quản trị nội dung miễn phí nhưng tốt, dễ
sử dụng và phổ biến nhất thế giới Wordpress lviết bằng ngôn ngữ lập trình PHP và sử dụng cơ
sở dữ liệu MySQL, thường được sử dụng cho việc lập các trang web cá nhân, viết blog
Joomla! là một hệ quản trị nội dung mã nguồn mở Joomla! được viết bằng ngôn
ngữ PHP và kết nối tới cơ sở dữ liệu MySQL, cho phép người sử dụng có thể dễ dàng xuất bản các nội dung của họ lên Internet, từ những website cá nhân cho tới những hệ thống website doanh nghiệp có tính phức tạp cao, cung cấp nhiều dịch vụ và ứng dụng Joomla!
có thể dễ dàng cài đặt, dễ dàng quản lý và có độ tin cậy cao
GIMP là một chương trình để tạo ra và xử lý các đồ họa mảng, nhưng cũng có hỗ
trợ cho đồ họa véc tơ
Trang 262.4.2 Giấy phép BSD
Giấy phép BSD (Berkeley Software Distribution Lisence),
phiên bản đầu tiên được thiết kế bởi đại học California tại
Berkeley năm 1980, ban đầu dùng trong dự án BSD (Berkeley
Source Distribution)
Nội dung chính của giấy phép BSD
Giấy phép BSD cho phép sao chép, chỉnh sửa, phân phối lại sản phẩm đã được chỉnh sửa hoặc không, chỉ khi:
- Giữ nguyên thông báo bản quyền của sản phẩm
- Phải kèm theo 2 thông báo: Danh sách các điều kiện và từ chối trách nhiệm
- Không được sử dụng tên dự án hay tên nhà phân phối vào mục đích quảng bá bản thân nếu không được cho phép
Đặc điểm của giấy phép BSD
Giấy phép BSD cho phép các nhà phát triển phần mềm có thể thương mại hóa một cách thực sự các sản phẩm phần mềm có sử dụng mã nguồn mở dùng giấy phép BSD, tức kiếm tiền dựa trên mã nguồn của chương trình (chủ yếu là mã nguồn do họ viết thêm và giữ lại mã nguồn đã được sửa đổi đó cho bản thân mà không công bố) thay vì chỉ có thể kiếm tiền từ các hoạt động không trực tiếp gắn với phần mềm như bảo hành, phát hành, đào tạo hướng dẫn sử dụng …
Ngoài ra, giấy phép BSD còn cho phép các nhà phát triển khác sửa nội dung giấy phép, hoặc sử dụng một giấy phép khác đi kèm với sản phẩm đã được chỉnh sửa
Một số phần mềm sử dụng giấy phép BSD:
FreeBSD là một hệ điều hành mà nó có thể được sử dụng mà không có bất kỳ ràng buộc nào Người sử dụng có sự tự do để làm bất kỳ thứ gì mà họ thích với phần mềm, hoặc bằng việc sửa đổi nó theo những mong muốn của họ hoặc bằng việc phân phối lại nó theo
Trang 27một dạng mở hoặc ngay cả theo một dạng đóng, theo những điều khoản mà họ muốn, có hoặc không có những sửa đổi
Hotmail là một dịch vụ webmail miễn phí phổ biến của Microsoft, giống như Yahoo! Mail, Google Mail
Nội dung chính của giấy phép MIT:
- Các quyền lợi của người sử dụng giấy phép vẫn
tương tự như ở giấy phép GNU Tuy nhiên, MIT loại
bỏ thuộc tính virus khỏi giấy phép
- Giấy phép MIT không bắt buộc phải công khai mã
Trang 28- X window system là một hệ thống phần mềm máy tính và các giao thức mạng nhằm cung cấp cơ sở cho các giao diện người dùng đồ họa (GUI) và khả năng thiết bị đầu vào phong phú cho máy tính nối mạng
2.4.4 Giấy phép Apache
Giấy phép Apache là giấy phép mã nguồn mở được soạn ra bởi tổ chức phần mềm Apache (ASF – Apache Software Foundation) Tất cả phần mềm do ASF phát hành đều mang giấy phép Apache Những dự án không thuộc ASF nhưng vẫn mang giấy phép Apache
Giấy phép Apache 2.0 tương thích với phiên bản Giấy phép GNU 3.0 (phiên bản mới nhất của apache là 2.0)
Nội dung chính của giấy phép Apache
- Cho phép người dùng tự do sử dụng phần mềm với bất kỳ mục đích nào, tự do phân phối, tự do sửa đổi, tự do phân phối bản
sửa đổi của mình (đoạn 3 của giấy phép)
- Không yêu cầu bản sửa đổi của phần
mềm phải được phân phối dưới cùng
giấy phép với bản gốc, hay được phân
phối dưới dạng nguồn mở
- Trong mỗi tệp tin đã được cấp phép, thông tin về bản quyền và bằng sáng chế trong bản phân phối lại phải được giữ nguyên như bản gốc, và ở mỗi tệp tin đã được chỉnh sửa phải ghi chú là đã được chỉnh sửa khi nào
- Giấy phép Apache không yêu cầu trích dẫn toàn bộ giấy phép vào sản phẩm hay tệp tin đính kèm bản phân phối, mà chỉ cần thêm phần thông báo có chứa đường link tới website chứa giấy phép :
Copyright [yyyy] [name of copyright owner]Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the
Trang 29License.You may obtain a copy of the License 2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS
athttp://www.apache.org/licenses/LICENSE-OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License
Các phần mềm sử dụng giấy phép Apache
Apache server là một phần mềm websever phổ biến
XAMPP là phần mềm tạo server để chạy trên máy tính của bạn gọi là localhost Khi bạn cài xong xampp thì máy tính của bạn có môi trường là một server web giống như trên hosting
Apache Axis2 là một công cụ chính cho các dịch vụ Web, không chỉ cung cấp khả năng để thêm giao diện dịch vụ Web cho các ứng dụng Web, nhưng cũng có thể hoạt động như một ứng dụng máy chủ độc lập
2.5 SO SÁNH MỘT SỐ GIẤY PHÉP MÃ NGUỒN MỞ
Chúc Anh/ Chị học tập tốt!
Trang 30BÀI 3 - MỘT SỐ PHẦN MỀM SỬ DỤNG MÃ NGUỒN MỞ MỤC TIÊU BÀI HỌC
Học xong bài này Anh/ Chị sẽ biết được một số phần mềm mã nguồn mở phổ biến
3.1 OPENOFFICE
OpenOffice là một giải pháp thay thế cho Microsoft Office, với các ứng dụng chính gồm:
- Writer (soạn thảo văn bản),
- Calc (bảng tính, tương tự Excel),
- Impress (tương tự PowerPoint),
- Draw (vẽ vector),
- Math (soạn thảo các công thức
toán học, tương tự MS Equation Editor)
Ưu điểm: Với mục đích sử dụng cá nhân hoặc gia đình, OpenOffice cung cấp cho bạn đầy đủ phương tiện để viết thư, soạn tài liệu, vẽ biểu đồ, tạo slideshow
và thiết kế những website đơn giản Có giao diện và hoạt động tương đối giống Microsoft Office và vì phần mềm này miễn phí
Nhược điểm: Microsoft Office có cả Outlook, phần mềm email rất cần thiết đối với các doanh nhân, trong khi OpenOffice không có thay thế nào cho Outlook Ngoài ra phần mềm này cũng thiếu một số chức năng thiết kế cao cấp so với Word 2007
Trang 313.2 MEDIAPORTAL
MediaPortal thay thế cho Microsoft Windows Media Center
MediaPortal cung cấp chức năng ghi lại video PVR, cũng
như quản lý video, hình ảnh, nhạc và nghe radio Có rất nhiều
plugin cho MediaPortal để mở rộng những tính năng, ngoài ra giao
diện của chương trình cũng có thể thay đổi với nhiều skin miễn phí
rất đẹp và chuyên nghiệp
3.3 VLC MEDIA PLAYER
VLC media player thay thế cho Windows Media Player
Ưu điểm:
- Rất dễ sử dụng, ngay cả đối với những người không thành thạo vi tính
- VLC là một chương trình chơi media có tính
năng rất tuyệt vời, không những chơi được hầu
hết các định dạng media, mà còn xem được
những file từ Web và xem DVD Hơn nữa,
VLC sẽ là công cụ tuyệt vời đối với những
người thường xuyên download những file
video lớn, vì VLC có thể chạy những file chưa hoàn chỉnh hay bị hỏng một phần
- VLC có thể chạy trên hệ điều hành Windows, Mac OS X, Linux hay BeOS
- Có rất nhiều skin giúp cho giao diện trở nên đẹp hơn
Trang 32Nhược điểm:
- Không thể chép thư viện media trực tiếp sang máy nghe nhạc mp3
- Không có chức năng radio
3.4 7-ZIP
7-Zip thay thế cho WinZip
7-Zip là phần mềm không chỉ hoạt động với
những định dạng nén của nó, mà còn sử dụng được với
định dạng phổ biến zip, nhờ đó là một lựa chọn lý
tưởng cho cả mục đích gia đình hay công việc Nó cũng
có thể unzip một số định dạng phổ biến khác như RAR,
CAB và ISO 7-Zip có thể được tích hợp và Windows
Shell để dễ dàng sử dụng khi click chuột phải
Ưu điểm: Nén (zip) và bung nén (unzip) giống như WinZip và có khả năng mã hóa
những file nén cần bảo mật
Nhược điểm: Không có một số tính năng cao cấp của WinZip như nén thông minh,
lên lịch backup, tự động cập nhật file nén
- Thanh địa chỉ Awe some Bar: Bạn có thể dễ dàng truy
cập vào những trang web ưa thích của mình ngay cả khi bạn không còn nhớ URL nữa, chỉ cần nhập từ khóa vào thanh địa chỉ và chức năng tự hoàn thiện sẽ
Trang 33bao gồm những nội dung phù hợp từ lịch sử trình duyệt, những trang đã được bookmark hay những tab đã mở trước đó
- TraceMonkey Javascript Engine: sử dụng
phương pháp TraceMonkey nhằm tăng tốc độ
xử lý các đoạn mã Javascript
- Dễ dàng tạo Book Mark
- Tính tùy biến cao
- Hỗ trợ hệ thống chống Phishing - loại hình lừa
đảo lấy cắp thông tin qua một trang web giả danh
- Dễ dàng phục hồi lại phiên làm việc trước
- Duyệt web trong chế độ bảo mật
- Tùy biến các tab dễ dàng
3.6 PIDGIN
Pidgin là ứng dụng chat IM thay thế cho Yahoo Messenger, AIM, Windows Live Messenger Nó có khả năng kết nối với nhiều mạng chat cùng một lúc Người dùng chỉ cần Pidgin để tán gẫu với tất cả tài khoản AIM, IRC, Yahoo, Google Talk, MSN, QQ, ICQ, SILC, Jabber Một chương trình IM tất cả trong một, chạy trên tất cả các hệ điều hành phổ biến
3.7 MOZILLA THUNDERBIRD
Mozilla Thunderbird là ứng dụng email miễn phí, giúp
bạn truy cập vào email nhanh hơn, và sử dụng dễ dàng hơn
Thunderbird có khả năng quản lý nhiều account từ một giao
diện duy nhất, được thiết kế để ngăn chặn virus và ngăn chặn
thư rác Thunderbird bao gồm: duyệt mail theo tab, công cụ
tìm kiếm mới, tạo mục lục, xác lập các nguyên tắc để xếp thư vào các thư mục, tạo mã màu cho các e-mail để tiện phân loại…, cài đặt đơn giản và bộ lọc thư rác thông minh
Trang 34- Bộ lọc thư rác sử dụng các số liệu Bayesian quét thư rác tự động trong Mozilla Thunderbird
- Các chế độ xem thư, thêm thẻ thông tin và các bộ lọc linh hoạt cho phép bạn tổ chức và thêm thứ tự ưu tiên cho các email dễ dàng
- Các kết quả tìm kiếm có thể được lưu ra các thư mục ảo, các email liên quan sẽ
tự động được hiển thị trong thư mục tương ứng trong
thuật lừa đảo thường dùng
- Hỗ trợ S/MIME cho phép bạn mã hóa và kí (điện tử)
các email trong Mozilla Thunderbird (với plugin
OpenPGP)
- Bạn có thể chạy Mozilla Thunderbird từ các thiết bị lưu trữ di động và USB
- Nhiều phần mở rộng cho phép Mozilla Thunderbird mở rộng thêm nhiều tính năng mới hay cải thiện các tính năng sẵn có
- Mozilla Thunderbird hỗ trợ Windows 98/ME/NT/2000/XP/Vista, Mac OS và Linux
3.8 WINE
Wine là viết tắt của "Wine is not emulator" - Wine không phải là giả lập - là ứng dụng tạo ra lớp tương thích để sử dụng các ứng dụng Windows trên nền các hệ điều hành như Linux, Mac OSX và BSD
Trang 35Wine khác hẳn với các chương trình giả lập, ứng dụng này dịch các Windows API
thành thông điệp mà các hệ điều hành trên có thể hiểu được Chính vì vậy, nó loại bỏ độ
chậm trễ và tăng tốc độ các ứng dụng Windows khi chạy trên một nền hệ điều hành khác
3.9 GIMP
GIMP viết tắt của GNU Image Manipulation Program
GIMP là phần mềm miễn phí xuất sắc nhất trong lĩnh vực biên tập ảnh :
- Không hỗ trợ cho hệ thống khớp màu
Trang 36Ưu điểm:
- Đơn giản trong sử dụng và cập nhật thông tin
- Miễn phí và có cộng đồng mạnh
- Ổn định và bảo mật
- Dễ dàng SEO (Search Engine Optimization)
- Modul hóa, dễ thêm chức năng mới
3.11 CAKE PHP
Cake PHP là một framework miễn phí mã nguồn mở, dùng
để tạo ra các ứng dụng web (Web application) bằng ngôn ngữ
PHP Hiện tại, Cake PHP được ưu chuộng bởi giới lập trình web
Cake PHP sử dụng giấy phép MIT, tạo sự thông thoáng cho người sử dụng khi hầu như không phải quan tâm về mặt luật pháp
Tương thích với PHP version 4,5
Trao đổi dữ liệu với cơ sở dữ liệu dễ dàng
Tự động sinh code (code generation)
Trang 37Joomla! được sử dụng ở khắp mọi nơi trên thế giới, từ những website cá nhân cho tới những hệ thống website doanh nghiệp có tính phức tạp cao, cung cấp nhiều dịch vụ và ứng dụng Joomla! có thể dễ dàng cài đặt, dễ dàng quản lý và có độ tin cậy cao
Joomla! có các đặc tính cơ bản là: bộ đệm trang (page caching) để tăng tốc độ hiển thị, lập chỉ mục, đọc tin RSS (RSS feeds), trang dùng để in, bản tin nhanh, blog, diễn đàn,
bình chọn, lịch biểu, tìm kiếm trong site và hỗ trợ đa ngôn ngữ
3.13 Wordpress
WordPress được biết đến như một CMS miễn phí nhưng tốt, dễ sử dụng và phổ biến nhất trên thế giới Các so sánhđều cho thấy người dùng sử dụng CMS này cho việc lập các trang web cá nhân đến các trang báo điện tử đồ sộ nhất như CNN, Dow John, Wall Street Journal sử dụng WordPress
WordPress viết bằng ngôn ngữ lập trình PHP và sử dụng hệ quản trị CSDL MySQL Các tính năng nổi bật của Wordpress:
- Hệ thống Plugin phong phú và không ngừng cập nhật
- Có thể viết Plugin hoặc tích hợp
code vào Wordpress
- Được phát triển bằng nhiều ngôn
ngữ (hỗ trợ tiếng việt)
- Cập nhật phiên bản liên tục, cộng đồng hỗ trợ lớn
- Có hệ thống Theme đồ sộ, nhiều theme chuyên nghiệp có khả năng SEO tốt
- Việc quản lý blog, quản lý các bài viết rất thuận tiện giống như các phần mềm thiết kế website chuyên nghiệp
- Thể hiện các tệp PDF, DOC, Powerpoint ngay trên nội dung bài viết
- Đặc biệt tích hợp sẵn Latex giúp người sử dụng có thể viết công thức toán học ngay trên blog
Trang 38- Được áp dụng để xây dựng website tin tức và Blog
3.14 ECLIPSE
Website: http://www.eclipse.org
Bắt đầu dự án: 2011
Nền tảng Eclipse được cấu tạo từ một IDE (môi trường phát triển tích hợp) mở, tức
là một chương trình được cấu tạo từ một tập hợp các công cụ hữu ích cho một lập trình viên Các yếu tố cơ bản của một IDE bao gồm một trình soạn thảo mã nguồn, một trình biên dịch và một trình gỡ lỗi (debugger) Eclipse là một IDE trong Java và cung cấp hàng loạt các công cụ phát triển phần mềm
Nó cũng hỗ trợ các ngôn ngữ lập trình khác, như C/C++, Cobol, Fortran, PHP hoặc Python Các trình cài cắm (plug-in) có thể được bổ sung vào nền tảng cơ bản của Eclipse
để gia tăng chức năng
Eclipse là sẵn sàng cho các hệ điều hành
Windows, Linux, Solaris, AIX, HP-UX và Mac
4/1996 Apache trở thành HĐH máy chủ thông dụng nhất
9/2009, Apache phục vụ khoảng 54.48% websites trên thế giới
So sánh giữ Apache và IIS
Trang 39Chúc Anh/ Chị học tập tốt!
Trang 40BÀI 4 - LINUX KERNEL MỤC TIÊU BÀI HỌC
Học xong bài này Anh/ Chị sẽ:
- Biết được khái niệm, chức năng, nhiệm vụ của nhân Linux
- Biết được lịch sử sơ lược phiên bản nhân Linux
- Nắm được kiến trúc hệ điều hành nhân Linux
- Nắm được chức năng nhiệm vụ của từng hệ thống con chính của nhân
4.1 GIỚI THIỆU LINUX
Linux là nhân của hệ điều hành, tương tác trực tiếp với phần cứng và cung cấp các dịch vụ cho chương trình người sử dụng (User Program)
Nhiều các ứng dụng khác bổ xung kết hợp với nhân Linux làm thành một hệ điều hành sử dụng được, các ứng dụng đó phần lớn là phần mềm GNU Chính vì vậy, hệ điều hành này được gọi là GNU/Linux
4.2 LỊCH SỬ PHIÊN BẢN NHÂN LINUX
Tháng 07/1991 Linus Tovalds (một sinh viên Phần Lan 21 tuổi) đã đưa ra thông điệp đầu tiên nhắc tới dự án của anh ta để xây dựng một hệ điều hành tự do tương tự như Minix
Vào tháng 09 anh ta đã đưa ra phiên bản đầu tiên nhất (0.01), và sau mỗi ít tuần các phiên bản mới đã xuất hiện
Tháng 12/1991, Linus Tovalds đưa ra phiên bản 0.11, sử dụng giấy phép GNU GPL Phiên bản này có 10239 dòng lệnh
Vào tháng 03/1994, phiên bản 1.0 đã xuất hiện, lần đầu tiên một phiên bản được gọi
là ổn định Phiên bản này có 176250 dòng lệnh
Tháng 6/1996, phiên bản 2.0 ra đời, có 310950 dòng lệnh
Tháng 12/2003, phiên bản 2.6.0 xuất hiện với gần 6 triệu dòng lệnh