Giáo trình Phát triển ứng dụng mã nguồn mở - Trường Đại học Hàng Hải

BỘ GIAO THÔNG VẬN TẢI  
TRƢỜNG ĐẠI HỌC HÀNG HẢI  
BỘ MÔN: KỸ THUẬT MÁY TÍNH  
KHOA: CÔNG NGHỆ THÔNG TIN  
BÀI GIẢNG  
PHÁT TRIỂN ỨNG DỤNG  
MÃ NGUỒN MỞ  
TÊN HỌC PHẦN  
: PHÁT TRIỂN ỨNG DỤNG  
MÃ NGUỒN MỞ  
MÃ HỌC PHẦN  
: 17314  
TRÌNH ĐỘ ĐÀO TẠO  
: ĐẠI HỌC CHÍNH QUY  
DÙNG CHO SV NGÀNH : CÔNG NGHỆ THÔNG TIN  
HẢI PHÒNG - 2010  
MỤC LỤC  
- 1 -  
YÊU CẦU VÀ NỘI DUNG CHI TIẾT  
Tên học phần: Phát triển ứng dụng mã nguồn mở  
Loại học phần: 4  
Khoa phụ trách: CNTT  
Tổng số TC: 3  
Bộ môn phụ trách giảng dạy: Kỹ thuật máy tính  
Mã học phần: 17314  
TS tiết Lý thuyết Thực hành/Xemina Tự học Bài tập lớn  
Đồ án môn học  
45  
30  
15  
0
x
0
Điều kiện tiên quyết:  
Sinh viên phải học xong các học phần sau mới được đăng ký học phần này:  
Kỹ thuật lập trình, Hệ điều hành mã nguồn mở, Lập trình mạng  
Mục tiêu của học phần:  
- Phân biệt được phần mềm mã nguồn mở  
- Xu hướng phát triển phần mềm mã nguồn mở  
- Phát triển xây dựng phần mềm mã nguồn mở  
Nội dung chủ yếu  
- Giới thiệu phần mềm mã nguồn mở  
- Vai trò Linux trong phần mềm mã nguồn mở  
- Giới thiệu phần mềm mã nguồn mở  
Nội dung chi tiết của học phần:  
PHÂN PHỐI SỐ TIẾT  
TÊN CHƢƠNG MỤC  
Chƣơng 1: Giới thiệu phần mềm mã nguồn mở  
1.1. Lịch sử phát triển  
TS  
4
LT  
4
BT  
TH KT  
1
1.2. Phương pháp xây dựng phần mềm mã nguồn mở  
1.3. Vai trò phần mềm mã nguồn mở  
1.4. Những thành công phần mềm mã nguồn mở  
Chƣơng 2. Linux trong phần mềm mã nguồn mở  
2.1. Tổng quan về linux  
1
1
1
6
3
3
1
2.2. Vai trò Linux trong phần mềm mã nguồn mở  
Chƣơng 3. Phần mềm trên máy chủ và để bàn  
3.1. Hệ điều hành Fedora Core  
2
11  
6
4
1
1
3.2. Giao diện đồ họa GNOME  
1
3.3. Bộ công cụ Firefox/Thunderbird/Open Office  
3.4. Máy chủ Web Apache/Tomcat  
3.5. Máy chủ DNS  
1
1
1
3.6. Máy chủ cơ sở dữ liệu MySQL  
Chƣơng 4. Các phần mềm mã nguồn khác  
4.1. Diễn đàn mvnForum  
1
39  
15  
3
15  
8
1
4.2. Hệ quản trị nội dung Joomla  
3
4
- 3 -  
PHÂN PHỐI SỐ TIẾT  
TÊN CHƢƠNG MỤC  
4.3. Bán hàng trực tuyến osCommerce  
4.4. SquirrelMail  
TS  
LT  
3
BT  
TH KT  
3
4
4.5. Quản lý lớp học trực tuyến - Moodle  
3
Nhiệm vụ của sinh viên :  
Tham dự các buổi thuyết trình của giáo viên, tự học, tự làm bài tập do giáo viên giao,  
tham dự các buổi thực hành, các bài kiểm tra định kỳ và cuối kỳ, Hoàn thành bài tập lớn theo  
yêu cầu.  
Tài liệu học tập :  
- Kenneth Wong Free Open/Source Software – Nhà xuất bản UNDP-APDIP,2004  
- The IDA Open Source Migration Guidelines – Nhà xuất bản Netproject Ltd,2003  
- Tài liệu về mã nguồn mở Joomla 1.5. Tham khảo tại địa chỉ www.joomla.org  
- Tài liệu về mã nguồn mở Moodle. Tham khảo tại địa chỉ www.moodle.org  
- Andrew Hudson và Paul Hudson – Fedora 7 UNLEASHED, 2007  
- Forouzan – TCP/IP Protocol Suite – Nhà xuất bản McGraw Hill, 2005  
Hình thức và tiêu chuẩn đánh giá sinh viên:  
- Đánh giá dựa trên tình hình tham dự buổi học trên lớp, các buổi thực hành, điểm kiểm  
tra thường xuyên và điểm kết thúc học phần.  
- Hình thức thi cuối kỳ : thi viểt.  
Thang điểm: Thang điểm chữ A, B, C, D, F  
Điểm đánh giá học phần Z = 0.3X + 0.7Y.  
Bài giảng này là tài liệu chính thức và thống nhất của Bộ môn Kỹ thuật máy tính, Khoa  
Công nghệ Thông tin và được dùng để giảng dạy cho sinh viên.  
Ngày phê duyệt: 15 / 6 / 2010  
Trƣởng Bộ môn: ThS. Ngô Quốc Vinh  
- 4 -  
Chƣơng 1: GIỚI THIỆU VỀ PHẦN MỀM MÃ NGUỒN MỞ  
1.1. Lịch sử phát triển  
Theo Dabid Wheeler , một cách ngắn gọn, chương trình phần mềm nguồn mở là những  
chương trình mà quy trình cấp phép sẽ cho người dùng quyền tự do chạy chương trình theo  
bất kỳ mục đích nào, quyền nghiên cứu và sửa đổi chương trình, quyền sao chép và tái phát  
hành phần mềm gốc hoặc phần mềm đã sửa đổi "mà không phải trả tiền bản quyền cho những  
người lập trình trước‖  
Phần mềm nguồn mở/tự do (gọi tắt là FOSS) đã trở thành một hiện tượng toàn cầu, đi từ  
vị trí tương đối mờ nhạt lên thành một trào lưu thời thượng trong vòng có vài năm. Tuy nhiên,  
vẫn chưa có nhiều người hiểu một cách thấu đáo những yếu tố gì thật sự tạo nên FOSS và sự  
bùng nổ của khái niệm này.  
Có hai tư tưởng chủ đạo chi phối thế giới phần mềm nguồn mở: tư tưởng của Tổ chức  
Phần mềm tự do (FSF) và tư tưởng của Chương trình Sáng kiến Nguồn mở (OSI). Chúng ta  
hãy bắt đầu từ thuyết của FSF, vì học thuyết này ra đời sớm hơn và có vị trí tiên phong trong  
trào lưu phần mềm nguồn mở.  
Theo thuyết của FSF, phần mềm miễn phí nhằm mục đích bảo vệ bốn quyền tự do của  
người dùng:  
. Quyền tự do chạy một chương trình với bất kỳ mục đích nào  
. Quyền tự do nghiên cứu cách thức vận hành của một chương trình và thích ứng nó  
cho phù hợp với nhu cầu của mình. Khả năng tiếp cận mã nguồn là điều kiện tiên  
quyết cho việc này  
. Quyền tự do phân phát các phiên bản của phần mềm để giúp đỡ những người xung  
quanh  
. Quyền tự do thêm mới các chức năng cho một chương trình và công bố những tính  
năngmới đó đến công chúng để toàn cộng đồng được hưởng lợi. Khả năng tiếp cận  
mã nguồn là điều kiện tiên quyết cho việc này.  
Trung tâm của tư tưởng FSF là quyền tự do hợp tác. Vì phần mềm phi tự do (free ở đây  
nghĩa là freedom chứ không phải vấn đề giá cả) hạn chế quyền tự do hợp tác, FSF coi phần  
mềm phi tự do là phi đạo đức. FSF còn phản đối việc cấp bằng sáng chế phần mềm và những  
hạn chế khác theo luật bản quyền hiện hành. Tất cả những điều này đều hạn chế bốn quyền tự  
do của người dùng như đa nêu ở trên.  
Ý tưởng chủ đạo đằng sau phần mềm nguồn mở của OSI rất đơn giản: khi người lập  
trình có thể đọc, lưu hành, và sửa đổi mã nguồn của một phần mềm, thì phần mềm đó ngày  
càng phát triển. Người ta đọc, điều chỉnh, sửa lỗi. Và quá trình này có thể diễn ra với một tốc  
độ mà nếu bạn đa quen với quy trình chậm chạp của việc phát triển phần mềm theo phương  
thức truyền thống, thì sẽ lấy làm kinh ngạc.  
OSI đặt làm trọng giá trị kỹ thuật của việc tạo những phần mềm mạnh, có độ tin cậy  
cao, và phù hợp với giới kinh doanh hơn FSF. Chương trình này ít quan tâm tới những giá trị  
đạo đức của phần mềm nguồn mở và chú ý nhiều hơn vào những ích lợi thực tiễn của phương  
pháp xây dựng và quảng bá FOSS.  
Mặc dù tư tưởng nền tảng của hai trào lưu này tương đối khác nhau, cả FSF và OSI đều  
chia sẻ cùng một không gian hoạt động và hợp tác với nhau trên những vấn đề thực tiễn như  
xây dựng phần mềm, đấu tranh chống các phần mềm đóng và việc cấp bằng sáng chế phần  
mềm, v.v... Nói như Richard Stallman, thì Trào lưu phần mềm tự do và Trào lưu phần mềm  
nguồn mở là hai đảng chính trị của cùng một cộng đồng dân cư.  
Trào lưu phần mềm nguồn mở có nguồn gốc xa xưa từ những ngày khởi thuỷ nền công  
nghiệp máy tính, cho dù lúc đó nó còn chưa được định nghĩa một cách chính thống. Chỉ cho  
- 5 -  
   
đến cuối thập kỷ 70 đầu 80 thì tập quán chia sẻ phần mềm mới trở nên xung khắc với bản  
quyền phần mềm. Một trong những tiếng nói đầu tiên cất lên ủng hộ phần mềm đóng là bức  
thư nổi tiếng của William H. Gates III – ―Thư ngỏ gửi những người mê máy tính‖. Trong  
thông điệp này, đề ngày 3 tháng 2 năm 1976, ông kịch liệt đả kích tập quán chia sẻ phần mềm  
bấy giờ rất thịnh hành:  
"Sao lại thế này nhỉ? Đa phần các bạn – những người mê máy tính – hẳn phải ý thức  
được rằng các bạn đang đánh cắp phần mềm của người khác làm của mình. Phần cứng thì  
phải mua, nhưng phần mềm là một thứ có thể chia sẻ. Ai quan tâm liệu những người bỏ công  
sức ra làm phần mềm có được trả công hay không?"  
Phần mềm đóng thu được sự ủng hộ theo thời gian. Tại phòng thí nghiệm Trí tuệ Nhân  
tạo của MIT đầu những năm 80, một công ty có tên Symbolics đã được thành lập và lấy một  
mã nguồn lúc bấy giờ đang lưu hành tự do (ngôn ngữ lập trình LISP) để biến thành sở hữu  
riêng. Trong quá trình hoạt động của mình, công ty này quét sạch tập quán chia sẻ phần mềm  
khỏi các phòng thí nghiệm MIT. Tuy nhiên, công cuộc phá huỷ này rốt cuộc đưa đến sự ra đời  
của tổ chức Phần mềm tự do và nền văn hoá Phần mềm nguồn mở ngày nay.  
Richard Stallman, một trong các nhân viên phòng thí nghiệm MIT hồi đó, ngỡ ngàng và  
phẫn nộ trước những chuyển biến đang diễn ra. Sự chuyển biến đó đã cố định cách nhìn của  
ông với phần mềm đóng và khắc nên quyết tâm kiến tạo một hệ điều hành tự do. Dự án GNU  
(viết tắt của ―Not Unix‖ – không phải là Unix) ra đời vào tháng Giêng năm 1984 và trong suốt  
thập kỷ tiếp theo đã tạo ra những công cụ đa dạng tập hợp nên một phần quan trọng của hệ  
điều hành. Tổ chức phần mềm tự do ra đời một năm sau đó nhằm khuyếch trương các phần  
mềm tự do và dự án GNU. Tuy vậy, cho đến năm 1991, dự án GNU vẫn chưa đưa ra được  
một hệ thống phần mềm hoàn toàn tự do vì một yếu tố cơ bản vẫn còn vắng bóng: lõi hệ  
thống (the kernel).  
Lõi (hay Nhân - Kernel) là trái tim của mọi hệ điều hành. Vào năm 1991, Linus  
Torvalds, khi đó còn đang học năm thứ hai của chương trình sau đại học tại trường ĐH  
Helsinki, đã viết và phổ biến một lõi dạng Unix. Theo đúng phương thức của quy trình phát  
triển phần mềm nguồn mở, nó được lưu hành rộng rãi, được cải tiến và nhanh chóng thích  
ứng để trở thành cốt lõi của hệ điều hành GNU/Linux.  
Thời đó, còn có những dự án phần mềm nguồn mở khác cũng đang tiến hành, bao gồm  
cả hệ điều hành BIND, Perl và BSD. Tất cả những dự án này cuối cùng đều được sáp nhập  
hoặc tích hợp lại với nhau.  
Hệ điều hành GNU/Linux tiếp tục phát triển một cách ổn định cả về năng lực và đặc  
tính kỹ thuật. Năm 1997, đột nhiên Linux nổi lên thành trung tâm chú ý của giới truyền thông  
do Tập đoàn Dữ liệu Quốc tế (IDC) phát hiện ra rằng GNU/Linux đã chiếm tới 25% thị  
trường máy chủ và vẫn tiếp tục tăng trưởng với tốc độ bình quân hàng năm là 25%.  
Năm 1998, đáp lại việc Netscape công bố mã Netscape Navigator như một mã nguồn  
mở tự do, một nhóm các nhà lập trình phần mềm nguồn mở đã họp nhau lại và cho ra đời  
thuật ngữ ―Nguồn mở‖. Việc này dẫn đến sự hình thành Sáng kiến Nguồn mở (OSI) và Định  
nghĩa Nguồn mở. Mục đích chính của chương trình này là khiến cho giới kinh doanh quốc tế  
phải chú ý tới quy trình phát triển phần mềm nguồn mở tự do và lái trào lưu phần mềm nguồn  
mở xa dần khỏi xu hướng ―đối đầu‖ từ trước đến nay.  
Năm 1999, màn trình làng thành công vang dội của sản phẩm GNU/Linux Red Hat đưa  
đến cho phần mềm này 4.8 tỷ đôla vốn huy động từ thị trường. Những phần mềm khác ra mắt  
công chúng cùng năm đó là VA Linux (huy động được 7 tỷ đôla), Cobait Networks (đem lại  
3.1 tỷ đôla từ thị trường vốn) và Andover.net (huy động được 712 triệu đô). Là sản phẩm  
chính của phong trào Phần mềm nguồn mở, việc GNU/Linux thành công chứng tỏ rằng phần  
mềm nguồn mở đã thực sự khẳng định được vị trí của mình.  
- 6 -  
1.2. Phƣơng pháp xây dựng phần mềm mã nguồn mở  
Mô hình xây dựng phần mềm nguồn mở là một mô hình độc đáo và nó được hiện thực  
hoá chỉ với sự ra đời của Internet và sự bùng nổ thông tin do Internet mang lại. Phép so sánh  
việc xây nhà và buôn bán ở chợ thường được dùng để đối lập mô hình phát triển phần mềm  
nguồn mở với các phương thức làm phần mềm truyền thống.  
Quy trình làm phần mềm truyền thống được so sánh với cách thức chúng ta xây nhà.  
Từng nhóm nhỏ thợ thủ công có tay nghề cao sẽ lập thiết kế chi tiết và tiến hành xây dựng  
theo từng công đoạn riêng lẻ. Chừng nào xây xong, ngôi nhà sẽ là một tổng thể hoàn chỉnh và  
thường ít khi được sửa đổi thêm thắt. Phần mềm máy tính trước đây cũng được xây dựng theo  
cách thức tương tự. Các nhóm lập trình làm việc riêng rẽ, theo sự quản lý và kế hoạch chi tiết,  
cho đến khi sản phẩm được hoàn thành và chương trình phần mềm công bố với thế giới. Một  
khi đã phát hành, phần mềm được coi là hoàn chỉnh và chẳng có mấy công sức bỏ ra để chỉnh  
sửa nó về sau.  
Ngược lại, việc phát triển phần mềm nguồn mở được ví với việc phát triển của buôn bán  
ngoài chợ, mở rộng một cách tự phát. Những người bán hàng đầu tiên đến, cắm cột xây cửa  
hàng, và bắt đầu kinh doanh. Những nhà buôn khác tiếp tục đến và dựng sạp hàng riêng của  
mình, cứ thế chợ phát triển theo một phương thức thoạt trông rất lộn xộn. Các nhà buôn chỉ  
quan tâm chủ yếu đến việc dựng lên một kết cấu tối thiểu để có thể bắt đầu bán hàng. Những  
thêm thắt sẽ được bổ sung về sau khi hoàn cảnh đòi hỏi. Cũng tương tự như thế, việc xây  
dựng phần mềm nguồn mở khởi đầu một cách rất phi cấu trúc. Những người lập trình đầu tiên  
chỉ đưa ra với công chúng một số mã chức năng tối thiểu, rồi chỉnh sửa dần trên cơ sở các ý  
kiến phản hồi. Rồi có thể có thêm những nhà lập trình khác tới, thay đổi hoặc xây thêm trên  
cơ sở những mã nguồn có sẵn. Cứ thế theo thời gian, cả một hệ điều hành hay bộ ứng dụng sẽ  
định hình và không ngừng phát triển.  
Phương thức xây dựng phần mềm mã nguồn mở trên đã chứng tỏ tính ưu việt của mình  
trên một số khía cạnh sau:  
Giảm sự trùng lặp nguồn lực  
Bằng cách công bố sớm phần mềm và trao cho người sử dụng quyền chỉnh sửa cũng  
như lưu hành mã nguồn, các nhà lập trình FOSS sẽ được sử dụng kết quả làm việc của đồng  
sự. Tính kinh tế của quy mô trở nên rất lớn. Thay vì việc năm nhà lập trình ở mỗi trong số 10  
công ty cùng viết một ứng dụng mạng, triển vọng là sẽ kết hợp được công sức của cả 50  
người. Việc giảm sự trùng lặp trong phân bổ nguồn lực cho phép quá trình xây dựng một phần  
mềm đạt tới quy mô đại chúng chưa từng có trong lịch sử, liên kết hàng ngàn nhà lập trình  
trên toàn thế giới.  
Tiếp thu kế thừa  
Với việc có sẵn mã nguồn để xây tiếp lên trên, thời gian xây sẽ giảm đi đáng kể. Nhiều  
dự án phần mềm nguồn mở dựa trên các phần mềm là kết quả của những dự án khác để cung  
cấp những chức năng cần thiết. Ví dụ, thay vì viết mã bảo mật riêng cho mình, dự án máy chủ  
Apache đã sử dụng lại chương trình của dự án OpenSSL, do đó mà tiết kiệm được hàng ngàn  
giờ viết mã hoá và thử nghiệm. Ngay cả trong trường hợp mã nguồn không thể tích hợp trực  
tiếp, thì việc có sẵn các mã nguồn tự do cũng cho phép nhà lập trình nghiên cứu cách thức  
những dự án khác giải quyết một vấn đề phát sinh tương tự.  
Quản lý chất lượng tốt hơn  
Nếu có đủ một lực lượng những nhà lập trình giỏi tham gia sử dụng và kiểm tra mã  
nguồn, thì các lỗi chương trình sẽ được phát hiện và sửa nhanh hơn. Các ứng dụng đóng cũng  
nhận báo lỗi, nhưng do người sử dụng không có quyền tiếp cận mã nguồn, họ chỉ có thể báo  
các triệu chứng lỗi chứ không thể chỉ ra nguồn gốc. Các nhà lập trình phần mềm nguồn mở đa  
kết luận rằng khi người sử dụng có quyền tiếp cận mã nguồn thì họ không những thông báo  
các trục trặc mà còn chỉ ra đích xác nguyên do, và trong một số trường hợp, cung cấp luôn  
giải pháp. Điều này giúp giảm đáng kể thời gian lập trình và kiểm tra chất lượng.  
- 7 -  
 
Giảm chi phí duy trì  
Việc duy trì mọi phần mềm đều đòi hỏi một chi phí bằng hoặc lớn hơn chi phí lập trình  
ban đầu. Khi một tổ chức tự bỏ tiền ra nuôi phần mềm, việc này có thể trở nên gánh nặng chi  
phícực lớn. Tuy nhiên, với mô hình phát triển phần mềm nguồn mở, phí duy trì sẽ được san  
đều ra cho hàng ngàn người sử dụng tiềm năng, làm giảm chi phí của từng tổ chức riêng lẻ.  
Tương tự, việc nâng cấp sẽ được thực hiện bởi một tổ chức/cá nhân có chuyên môn sâu nhất  
về vấn đề này, dẫn tới việc sử dụng hiệu quả hơn nguồn lực.  
1.3. Vai trò của phần mềm mã nguồn mở  
1.3.1. Phần mềm nguồn mở có thực sự miễn phí ?  
Một trong những quan niệm phổ biến về phần mềm nguồn mở tự do là các phần mềm  
này luôn luôn miễn phí. Ở một mức độ nào đó, điều này đúng. Không ứng dụng FOSS nào,  
nếu thật sự là phần mềm nguồn mở, lấy phí đăng ký của người sử dụng. Đa số các phiên bản  
FOSS (Red Hat, SuSE, Debian, v.v..) có thể tải từ Internet về mà không mất xu phí nào. Xét  
trên phương diện phí đăng ký, các ứng dụng FOSS hầu như luôn rẻ hơn phần mềm có bản  
quyền.  
Tuy nhiên, phí đăng ký không phải là chí phí duy nhất phát sinh với phần mềm hay cơ  
sở hạ tầng máy tính. Còn phải cân nhắc tới các chi phí nhân sự, yêu cầu về phần cứng, chi phí  
cơ hội, và phí đào tạo. Thường được biết đến dưới khái niệm Tổng chi phí sở hữu (TCO),  
những chi phí này mới thật sự là thước đo cho tính kinh tế của việc sử dụng phần mềm nguồn  
mở.  
1.3.2. Tính kinh tế của Phần mềm nguồn mở  
Gần đây có nhiều công bố về những khoản tiết kiệm khổng lồ mà Phần mềm nguồn mở  
mang lại, đáng chú ý nhất là báo cáo từ các tập đoàn lớn đa chuyển đổi hệ thống nội bộ sang  
nền GNU/Linux. Intel tuyên bố đa tiết kiệm được 200 triệu đôla do chuyển từ Unix sang  
Linux, còn Amazon thì cho biết tiết kiệm được 17 triệu đôla từ việc cài đặt Linux cho các  
máy chủ của mình. Những tổ chức tài chính lớn như Credit Suisse First Boston, Morgan  
Stanley, Goldman Sachs và Charles Schwab đang tiến hành chuyển một phần đáng kể hệ  
thống thông tin của họ sang sử dụng phần mềm nguồn mở hòng tận dụng tối đa những khoản  
tiết kiệm này.  
Có một vài nghiên cứu dựa trên cơ sở phân tích Tổng chi phí sở hữu (TCO) để so sánh  
tổng chi phí triển khai một hệ thống phần mềm nguồn mở với hệ thống phần mềm có bản  
quyền. Những nghiên cứu như vậy sẽ phân tích nhiều yếu tố chi phí khác ngoài phí đăng ký  
sử dụng, bao gồm cả phí duy trì - đào tạo và chi phí cơ hội trong trường hợp xảy ra sự cố. Một  
số phân tích đa đưa ra những kết luận rất khả quan về FOSS:  
- Nghiên cứu về TCO do Tập đoàn Robert Frances tiến hành cho thấy GNU/Linux chỉ  
tốn bằng 40% Microsoft Window và bằng 14% chi phí bỏ ra nếu dùng hệ điều hành Solaris  
của Sun Microsystem.  
- NetProject kết luận rằng tổng chi phí sở hữu GNU/Linux bằng 35% tổng chi phí sở  
hữu Microsoft Window. Thú vị hơn nữa là những khoản tiết kiệm này có nguồn gốc không  
chỉ từ phí đăng ký sử dụng, mà còn liên quan đến nhiều khoản mục khác, bao gồm cả việc  
tinh giảm nhân viên và cập nhật phần mềm do việc sử dụng GNU/Linux đem lại.  
- Gartner cho biết sử dụng GNU/Linux trong một cấu hình ―tĩnh‖ sẽ đưa đến kết quả là  
tiết kiệm được khoảng 15% tổng chi phí sở hữu so với sử dụng Window XP.  
Merrill Lynch, một công ty tài chính tầm cỡ trên thế giới, gần đây cho biết sử dụng  
GNU/Linux có thể làm giảm đáng kể chi phí liên quan. Đáng lưu ý nhất trong nghiên cứu  
TCO của công ty này là kết luận ―tiết kiệm lớn nhất do Linux đem lại không phải từ phí đăng  
ký sử dụng, mà từ chi phí phần cứng và nhân lực‖.  
- 8 -  
     
1.3.3. Sử dụng Phần mềm nguồn mở đem lại những ích lợi gì?  
Bên cạnh yếu tố chi phí thấp, còn nhiều lý do khác khiến các tổ chức nhà nước và tư  
nhân ngày càng ứng dụng Phần mềm nguồn mở một cách sâu rộng. Những lý do này bao  
gồm:  
. Tính an toàn  
. Tính ổn định/đáng tin cậy  
. Các chuẩn mở và việc không phải lệ thuộc nhà cung cấp  
. Giảm phụ thuộc vào nhập khẩu  
. Phát triển năng lực của ngành công nghiệp phần mềm địa phương  
. Vấn đề vi phạm bản quyền, quyền sở hữu trí tuệ, và tính tuân thủ WTO  
. Nội địa hoá  
Với các chính phủ thì bốn điểm cuối cùng đặc biệt quan trọng vì chúng phù hợp với  
những tiêu chí hoạt động riêng của khu vực nhà nước. Các công ty và người sử dụng cuối  
cùng thường không phải bận tâm đến những vấn đề này.  
1.3.4. Những hạn chế của phần mềm mã nguồn mở  
Mặc dù có rất nhiều ích lợi như đa nêu trên, phần mềm nguồn mở không phải là giải  
pháp phù hợp cho mọi tình huống. Vẫn còn những khía cạnh mà phần mềm nguồn mở cần  
phải tiếp tục cải tiến.  
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 nguồn mở đ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 của doanh nghiệp  
(Enterprise Resource Planning) như SAP hay Peoplesoft đa 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.  
Phát sinh vấn đề như vậy một phần là do thiếu những người vừa giỏi về kỹ thuật vừa  
thạo về kinh doanh. Đa số các phần mềm nguồn mở hiện hành được tạo ra bởi những người  
có chuyên môn về mặt kỹ thuật, bức xúc khi gặp phải vấn đề nào đó trong quá trình phát triển  
phần mềm, phải tìm cách khắc phục bằng một giải pháp mới. Những giải pháp như thế thường  
mang nặng tính kỹ thuật, chằng hạn như server mạng, ngôn ngữ/môi trường lập trình và các  
tiện ích phục vụ kết nối mạng. Hiếm khi một kỹ thuật viên lập trình, nói ví dụ, gặp phải những  
vấn đề về kế toán và lại có đủ kiến thức kinh doanh để tạo ra được giải pháp kỹ thuật cho vấn  
đề.  
Tính tương hỗ với các hệ thống phần mềm đóng  
Các phần mềm nguồn mở, 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  
đề. Đến lúc nào đó, khi các công ty đã chuyển từ hệ thống chuẩn đóng sang chuẩn mở, thì vấn  
đề này sẽ dần dần được khắc phục.  
Trình bày và “đánh bóng” ứng dụng  
Phần mềm nguồn mở thường thiếu mất tính tiện dụng vốn là đặc trưng của những phần  
mềm thương mại. Các nhà lập trình phần mềm nguồn mở xưa nay vốn chỉ quan tâm chủ yếu  
đến tính năng hoạt động của phần mềm. Tạo ra một chương trình hoạt động ổn định và có  
hiệu quả là ưu tiên quan trọng hơn nhiều so với tính dễ sử dụng.  
- 9 -  
   
Ngoài việc thiếu vắng một hệ thống tư liệu bổ trợ có chất lượng cao, giao diện đồ họa  
với người sử dụng (GUI – Graphical User Interface) của các phần mềm nguồn mở cũng có  
vấn đề. Vì giao diện đồ hoạ trong đa phần các hệ thống phần mềm nguồn mở không phải là  
một nhân tố riêng lẻ mà là tập hợp kết quả từ nhiều dự án khác nhau, các yếu tố của giao diện  
thường hoạt động theo trình tự rất khác nhau. Chỉ riêng lệnh ―lưu dữ liệu‖ của chương trình  
này cũng đã khác chương trình kia, và đây là điểm khác biệt so với các hệ điều hành nguồn  
đóng như Mac OS X hay Microsoft Windows. Việc cắt dán dữ liệu giữa các chương trình  
khác nhau trong môi trường hệ điều hành nguồn mở sẽ bị thiếu đi tính nhất quán, hoặc thậm  
chí không thể thực hiện. Mặc dù khá nhiều công sức đang được bỏ ra để thống nhất giao diện  
cho các chức năng cấu thành, hệ điều hành phần mềm nguồn mở có thể sẽ vẫn ở tình trạng  
thiếu đồng bộ trong một thời gian nữa.  
1.4. Những dự án phần mềm mã nguồn mở tiêu biểu  
Mặc dù phần mềm nguồn mở có vẻ là một khái niệm tương đối mới, trên thực tế nó đã  
tồn tại từ rất lâu trước khi Internet ra đời và chứng tỏ được vai trò then chốt của mình trong  
một số ứng dụng có ý nghĩa quyết định hoặc mang tính đặc thù. Trong nhiều trường hợp,  
phần mềm nguồn mở đã góp phần hiện thực hoá ý tưởng mạng toàn cầu Internet. Sau đây chỉ  
là vài ví dụ nhỏ về những dự án FOSS thành công.  
1.4.1. BIND (Máy chủ DNS)  
Những địa chỉ Internet như yahoo.com hay microsoft.com sẽ không thể hoạt động nếu  
như không có các Máy chủ tên miền (DNS). Những máy chủ này sẽ có chức năng chuyển đổi  
những cái tên đơn giản gần gũi với con người thành các định dạng số mà máy tính có thể nhận  
dạng, hoặc ngược lại. Nếu không có những máy chủ này, người sử dụng sẽ phải thuộc lòng  
các địa chỉ dạng như 202.187.94.12 để có thể tìm được một website.  
Máy chủ Miền tên Internet Berkeley (BIND) điều khiển tới 95% tổng số máy chủ DNS  
trên thế giới, bao gồm hầu hết các máy chủ DNS gốc – những máy chủ nắm giữ hồ sơ gốc của  
toàn bộ các tên miền trên Internet. BIND là một chương trình phần mềm nguồn mở đăng ký  
theo giấy phép dạng BSD do Tập đoàn Phần mềm Internet cấp.  
1.4.2. Apache  
Chịu trách nhiêm nhận và thực hiện các yêu cầu do chức năng trình duyệt mạng gửi  
đến, máy chủ Apache là một trong những nền tảng của hệ thống Mạng Toàn Cầu (www) như  
ta biết đến ngày nay. Apache đa vươn lên vị trí số một về máy chủ mạng kể từ năm 1996 và  
hiện đang nắm giữ 62,53% thị trường máy chủ mạng toàn cầu, gấp hơn hai lần thị phần của  
đối thủ cạnh tranh sát nhất là máy chủ IIS của Microsoft.’  
Tất nhiên, những số liệu thống kê ở trên luôn thay đổi hàng tháng. Số liệu cập nhật nhất  
có thể tìm trên trang web ―Khảo sát Máy chủ mạng‖ do Netcraft vận hành, tại địa chỉ  
1.4.3. Máy chủ email  
Mạng Internet như ta biết đến ngày nay sẽ không thể tồn tại nếu không có email, và một  
lần nữa, Phần mềm nguồn mở lại đóng vai trò chủ đạo trong lĩnh vực này. Chức năng của một  
máy chủ email (đôi khi còn gọi là điểm kết nối vận chuyển mail – MTA) là chuyển phát thư  
điện tử của người gửi đến đích định sẵn. Những tính năng phức tạp hơn, như gửi nối tiếp  
(forwarding) và gửi đổi chiều (redirection), chặn thư quảng cáo, hay truy ngược địa chỉ, v.v..  
khiến máy chủ email trở thành những hệ thống khá tinh vi. Nạn thư quảng cáo (hay còn gọi là  
thư rác) tràn lan hiện nay đang khiến cho tính an toàn hệ thống trở thành vấn đề cốt lõi đối với  
nhiều máy chủ, vì những kẻ đủ khả năng dội bom đến hộp thư của hàng loạt người thì cũng sẽ  
có thể tấn công một máy chủ email và vô hiệu hoá nó đối với những người sử dụng chính  
đáng  
Kết quả khảo sát do D.J. Bernstein tiến hành năm 2001 cho thấy Unix Sendmail hiện  
đang nắm giữ thị phần lớn nhất: 42% toàn bộ các máy chủ email trên thế giới. Như vậy và tỷ  
- 10 -  
       
lệ chiếm lĩnh của ứng dụng nguồn mở này còn lớn hơn cả thị phần cộng gộp của hai đối thủ  
liền sau là Microsoft Exchange với 18% thị trường và Unix qmail với 17% thị trường. Lưu ý  
rằng qmail là một dạng máy chủ email dựa trên nền Unix nhưng không phải là phần mềm  
nguồn mở do các điều kiện cấp phép sử dụng quá hạn chế.  
1.4.4. Open SSH (Công cụ quản trị mạng an toàn)  
Khi người dùng kết nối với một máy chủ ở rất xa thì việc lưu thông trên mạng Internet  
có thể phải qua nhiều khâu trung gian kết nối, khiến cho an toàn thông tin trở thành một vấn  
đề nổi cộm. Công nghệ Vỏ An toàn (SSH) cho phép người quản trị hệ thống kiểm soát được  
các máy chủ từ xa, an tâm khi biết rằng những thông tin họ gửi đi gần như sẽ không thể bị rút  
tỉa hoặc làm lạc hướng.  
OpenSSH, một chương trình nguồn mở sử dụng công nghệ SSH, đa tăng mức chiếm  
lĩnh thị trường từ vỏn vẹn 5% trong năm 2000 lên 66,8% vào tháng 4 năm 2002. OpenSSH ra  
đời lúc đó là kết quả của việc SSH thay đổi quy chế cấp phép theo hướng chặt chẽ hơn.  
1.4.5. Open Office (Bộ tính năng ứng dụng văn phòng)  
Trong khi sản phẩm phần mềm nguồn mở từ lâu đa tỏ rõ ưu thế trong các ứng dụng máy  
chủ, thì các giải phần phần mềm nguồn mở dùng cho máy con lại tương đối mới. Open  
Office, được xây dựng dựa theo mã nguồn của phần mềm Staroffice - vốn là một phần mềm  
bản quyền, có gần đủ các tính năng tương đương với bộ Microsoft Office. Chương trình này  
bao gồm một bộ xử lý văn bản hoàn chỉnh, hệ thống bảng biểu và phần mềm làm  
presentation.  
Một trong những ưu điểm khiến nhiều người quyết định chuyển từ môi trường Window  
sang Open Office là chương trình này có thể đọc hầu hết các văn bản soạn thảo trên nền  
Window mà không bị khúc mắc gì. Điều này giúp cho quy trình chuyển đổi được thực hiện  
tương đối dễ dàng và Open Office gần đây đã được triển khai trong nhiều dự án quy mô lớn  
thay Window bằng Linux. Mặc dù thị phần mà Open Office nắm giữ hiện chưa cao, người ta  
tiên đoán tỷ lệ sử dụng sẽ tăng mạnh theo thời gian khi mà ngày càng nhiều tổ chức nhận ra  
lợi thế của phần mềm đầy đủ tính năng nhưng chi phí thấp này.  
Câu hỏi ôn tập cuối chƣơng  
Câu 1. Trình bày các phương pháp xây dựng phần mềm mã nguồn mở. Nêu ưu điểm và  
nhược điểm của mỗi phương pháp.  
Câu 2. Người dùng có những quyền tự do gì đối với phần mềm mã nguồn mở. Phân tích  
một trong những quyền tự do đó.  
Câu 3. Hãy trình bày những hiểu biết về hệ điều hành GNU/Linux  
Câu 4. Nêu những ưu điểm của phương pháp phát triển phần mềm mã nguồn mở so với  
phương pháp truyền thống  
Câu 5. Nêu các vai trò của phần mềm mã nguồn mở  
Câu 6. Phân tích những lợi ích của phần mềm mã nguồn mở.  
Câu 7. Phân tích hai hạn chế lớn nhất của phần mềm mã nguồn mở.  
Câu 8. Trình bày về một dự án phát triển phần mềm mã nguồn mở mà bạn đã tham gia  
hoặc tìm hiểu.  
- 11 -  
   
Chƣơng 2: LINUX TRONG PHẦN MỀM MÃ NGUỒN MỞ  
2.1. Tổng quan về Linux  
2.1.1 Giới thiệu  
Linux là hệ điều hành dạng UNIX ( Unix-like Operating System) chạy trên máy PC với  
bộ điều khiển trung tâm (CPU) Intel 80386 hoặc các thế hệ sau đó, hay các bộ vi xử lý trung  
tâm tương thích như AMD, Cyrix. Linux ngàyy nay còn có thể chạy trên các máy Macsintosh  
hoặc Sun Sparc. linux thoả mãn chuẩn POSIX.1.  
Linux được viết lại toàn bộ, tức là không sử dụng một dòng lệnh nào của Unix, để tránh  
vấn đề bản quyền của Linux, tuy nhiên hoạt động của Linux hoàn toàn dựa trên nguyên tắc  
của hệ điều hành Unix. Vì vậy một người nắm được Linux thì sẽ nắm được Unix. Nên chú ý  
rằng giữa các Unix sự khác nhau cũng không kém gì Unix và Linux.  
Năm 1991 Linus Tovalds, sinh viên của đại học tổng hợp Helsinki (Phần Lan), bắt đầu  
xem xét Minix, một phiên bản của Unix, làm ra với mục đích nghiên cứu cách tạo ra một hệ  
điều hành Unix chạy trên máy PC với bộ vi xử lý intel 80368.  
Ngày 25/8/1991, Linus cho ra version 0.01 và thông báo trên comp.os.minix của  
Internet về chương trình của mình. Ngày 1/1992, Linus cho ra version 0.12 với Shell và C  
compilre. Linus không cần Minix nữa để biên dịch lại hệ điều hành của mình. Linus đặt tên hệ  
điều hành của mình là Linux. Vào năm 1994 phiên bản chính thức 1.0 được phát hành. Quá  
trình phát triển của Linux được tăng tốc bởi sự giúp đỡ của chương trình GNU (GNU’s Not  
unix) đó là chương trình phát triển các Unix có khả năng chạy trên nhiều platform. Đến hôm  
nay, cuối 2001 phiên bản mới nhất của Linux kernel là 2.4.2-2, có khả năng điều khiển các  
máy đa bộ vi xử lý và rất nhiều các tính năng khác. Nó hỗ trợ:  
. Xử lý văn bản:WYSWYG (What you see what you get ).  
. Ngôn ngữ lập trình: Linux cung cấp một môi trường lập trình đầy đủ bao gồm các  
thư viện chuẩn, các công cụ lập trình, trình biên dịch debuggers  
X-windows là giao diện người dùng đồ hoạ chuẩn với nhiều ứng dụng (nhiều của sổ  
terminal, trên cùng một màn hình với mỗi phiên làm việc riêng ).  
. Mạng và truyền thông: Linux hổ trợ giao thức TCP/IP, cùng nhiều driver cho các  
card mạng phổ biến, ngoài ra nó còn hổ trợ SLIP, PPP để kết nối Internet qua  
Modem, NFS, FTP, sendmailm. Ngoài ra, còn hổ trợ kết nối chia sẽ file với  
windowns thông qua Samba và kết nối với máy chạy Macintosh với các giao thức  
Apple Talk và Local Talk, cả giao thức IPX và Novell.  
. Và các ứng dụng khác:Cơ sở dữ liệu quan hệ như Postgres. MySQL, ingress  
Mbase… Các ứng +dụng tinh toán khoa học: FEELT, Gnuplet, Octave (gần giống  
như Matlab),xspred (bảng tính),.. Các chươnbg trình hổ trợ Media như Cdplaper,…  
2.1.2. Kiến Trúc của Hệ Điều Hành Linux  
Nhân (Kernel)  
Là trung tâm điều khiển của hệ điều hành Linux chứa các mã nguồn điều khiển hoạt  
động toàn bộ của hệ thống. Hạt nhân được phát triển không ngừng, thường có hai phiên bản  
mới nhất, một bản để phát triển và một bản ổn định. Kernel thiết kế theo dạng module, do vậy  
kích thước thật sự của Kernel rất nhỏ. Chúng chỉ tải được những bộ phận cần thiết lên bộ nhớ,  
các bộ phận khác sẽ được tải lên nếu có yêu cầu sử dụng. Do đó không sử dụng lãng phí bộ  
nhớ.  
Kernel Linux có thể truy xuất tới toàn bộ tính năng phần cứng của máy tính. Ngoài ra,  
do yêu cầu của các chương trình cần nhiều bộ nhớ, trong khi hệ thống có ít bộ nhớ, hệ điều  
hành sử dụng không gian hoán đổi đĩa (Swap pace) để lưu trữ các dữ liệu xử lý của chương  
trình. bên cạnh đó Linux còn hổ trợ các đặc tính sau:  
Shell  
- 12 -  
       
Shell cung cấp các tập lệnh cho người dùng thao tác với kernel để thực hiện công việc.  
Shell đọc các lệnh từ người dùng và xử lý. Ngoài ra Shell còn cung cấp các đặc tính như:  
chuyển hướng xuất nhập, ngôn ngữ lệnh để tạo các file lệnh tương tự như file.bat trong đó.  
Có nhiều loại Shell được dùng trong Linux. Điểm quan trọng để phân biệt các shell với  
nhau là bộ lệnh của mỗi shell. Ví dụ C shell sử dụng các lệnh tương tự như ngôn ngữ C,  
Bourne shell thì dùng ngôn ngữ lệnh khác. Shell sử dụng chính trong Linux là GNU Bourne  
Again Shell. Shell này là shell phát triển từ Bourne shell. Là shell sử dụng chính trong hệ  
thống Unix, với nhiều tính năng như: điều khiển các tiến trình, các lệnh history, tên file dài …  
Các tiện ích  
Được sử dụng thường xuyên. Dùng cho nhiều thứ như: thao tác file, đĩa, nén, sao lưu  
file …Tiện ích trong Linux có thể là các lệnh thao tác hay các chương trình giao diện đồ hoạ.  
Hầu hết là sản phẩm của GNU. Linux có nhiều tiện ích như: trình biên dịch, trình gỡ lỗi soạn  
văn bản… Tiện ích có thể được người dùng hay hệ thống.  
Chương trình ứng dụng: Khác với tiện ích, các chương trình word, hệ quản trị cơ sở dữ  
liệu.. là các chương trình ứng dụng có độ phức tạp lớn và do các nhà sản xuất viết ra.  
2.1.3. So sánh Dos/Windows và Linux  
Giống nhau  
. Chế độ hiển thị: Dos và Linux Console có chế độ hiển thị là ký tự.Windows và X-  
Windows có chế độ đồ hoạ.  
. Lưu trữ dữ liệu theo thư mục cấu trúc cây: thư mục có thể chứa file hoặc các thư  
mục con khác. Cả hai đều có khả năng xử lý các thao tác như liệt kê, tìm kiếm, tạo,  
xoá, đổi tên, di chuyển file và thư mục.  
. Khởi động chương trình bằng dòng lệnh hoặc kích chuột vào biểu tượng.  
Trong môi trường đồ hoạ: có khả năg phóng to, thu nhỏ, di chuyển và đóng của sổ.  
Tạo các thành phần giao diện đồ hoạ thân thiện như nút nhấn, menu…  
Khác nhau  
. Linux phân biệt chữ hoa và chữ thường.  
. Linux thường không đưa ra các thông báo lỗi: trong Unix và đối với một số shell  
diễn dịch lệnh của Linux, sau khi thực hiện xong lệnh, trình biên dịch thường trở  
về ngay dấu nhắc lệnh và không đưa ra thông báo gì.  
. Dấu phân cách đường dẫn và thư mục: Linux sử dụng dấu / trong khi Dos sử dụng  
\ .Linux sử dụng dấu – hoặc – làm dấu chuyển tham số trên dòng lệnh, trong khi  
Dos sử dụng khoá chuyển /.  
. Đường dẫn tìm kiếm: với hầu hết các lệnh, Dos thường tìm thông tin về đường dẫn  
của file trong biến môi trường PATH hoặc trong thư mục hiện hành. Linux thì chỉ  
tìm trong biến môi trường PATH.  
. Chương trình thực thi: với Dos/ Windows thường sử dụng tên mở rộng của file  
như .exe, .com, .bat để nhận dạng chương trình thực thi trong khi Linux thì không.  
Mọi file trong Linux đều được xem là chương trình thực thi trong khi Linux thi  
không. Mọi file trong Linux đều được xem là chương trình thực thi nếu có thuộc  
tính x (execute) cho file.  
2.2. Vai trò của Linux trong phần mềm mã nguồn mở  
2.2.1. Vai trò  
Linux là một hệ điều hành mã nguồn mở và miễn phí. Bất cứ ai cũng có thể sao chép,  
tuyên truyền, phân tán, viết lại và phát triển hệ điều hành này. Cộng với khả năng liên kết  
mạng rộng khắp toàn cầu như hiện nay, bất kỳ ai cũng có thể tiếp cận, nghiên cứu, tìm hiểu hệ  
điều hành Linux. Linux được dựa trên nền tảng cơ bản là PC (Intel 80386) và do đó, Linux là  
- 13 -  
     
hệ điều hành PC chính gốc. Linux đã nhanh chóng phát triển trên thế giới PC, dành cho mọi  
người, mọi nhà, không phân biệt lứa tuổi, trình độ, đẳng cấp. Ngày nay một sinh viên cũng có  
thể tự tạo cho mình một hệ điều hành riêng. Lunux có thể gọi là PC Unix, một hệ điều hành  
chuyên cho PC. Đặc điểm cơ bản này có lẽ là một trong những nguyên nhân chính dẫn đến sự  
bùng nổ của Linux như hiện nay.  
Bên cạnh đó Linux còn hơn cả một chương trình miễn phí, nó là một phần mềm với mã  
nguồn mở. Điều này có nghĩa là bạn không những có trong tay một hệ điều hành mà bạn còn  
có thể tùy biến mã nguồn cho phù hợp với người dùng của bạn. Bạn có thể sử dụng Linux vào  
bất kỳ một lĩnh vực nào của cuộc sống. Linux không chỉ là nơi để các bạn cài đặt, sử dụng các  
phần mềm mã nguồn mở mà còn là môi trường để phát triển, tối ưu các phần mềm này.  
2.2.2. Các lĩnh vực ứng dụng của Linux  
Lĩnh vực kinh doanh  
Với ưu thế chi phí rẻ, độ ổn định và khả năng bảo mật cao, Linux đang dần chiếm ưu  
thế trên thị trường. Ngày càng có nhiều tổ chức thương mại chọn dùng Linux đồng bộ thay vì  
tải và phát triển nó một cách riêng lẻ. Hệ điều hành này đã được coi là một giải pháp doanh  
nghiệp và nhiều tập đoàn lớn như Computer Associates, HP, IBM và Dell đều hỗ trợ triển  
khai Linux. Do bộ mặt của Linux hoàn toàn phù hợp với mục đích sử dụng cấp doanh nghiệp  
và Linux là một hệ điều hành an ninh tốt vì nó không bị nhiều nguy cơ tấn công như những  
sản phẩm khác. Lõi Linux 2.6 là một bước tiến lớn về tính an ninh và độ tin cậy. Nhiều tập  
đoàn lớn đã công bố những khoản tiết kiệm khổng lồ mà phần mềm mã nguồn mở đem lại.  
Đáng chú ý như Intel giảm được 200tr USD do chuyển từ Unix sang Linux, Amazon giảm  
17tr USD nhờ cài đặt cho các máy chủ của mình. Các tổ chức tài chính lớn như Credit Suisse,  
First Boston, Morgan Stanlay, Goldman Sachs cũng đang tiến hành chuyển một phần hệ  
thống thông tin của hãng sang sử dụng phần mềm mã nguồn mở nhằm tận dụng tối đa những  
khoản tiết kiệm trên.  
Lĩnh vực an ninh, kinh tế, quốc phòng  
Ngày nay việc sử dụng máy tính để vận hành một quốc gia không còn xa lạ với chúng ta  
nữa, phần mềm máy tính trở thành vấn đề sống còn để chỉ đạo đất nước. Khi phần mềm được  
nhập khẩu và không có cách nào biết được có những gì trong các phần mềm đó mà lại đang  
được sử dụng cho tàu, thuyền, máy bay ... thì chúng ta có thể gặp những rủi ro cao. Khi không  
thể cập nhật những bản vá lỗi hay chương trình do một yếu tố nào đó như quốc gia xuất khẩu  
bị cấm vận thì sẽ là một thảm họa.  
Các lợi ích về An ninh, quốc phòng của việc sử dụng một phần mềm riêng cho một  
quốc gia có lẽ không cần phải bàn thêm, nhưng lợi ích to lớn khi đưa một phần mềm miễn phí  
vào cho đất nước thì không phải ai cũng nhận thức hết được. Điều nguy hiểm nhất hiện nay là  
chúng ta đã quá quen thuộc với việc sử dụng những phần mềm có bản quyền nhưng với giá  
bằng số không. Cái giá mà đất nước phải trả cho thói quen này là vô cùng to lớn. Đến một  
ngày nào đó chúng ta sẽ bị truy thu những gì chúng ta đã sử dụng và sẽ phải trả tiền cho mỗi  
phần mềm mà ta sẽ sử dụng. Số tiền mà ta sẽ phải trả đó sẽ lớn đến chừng nào, và Linux là lối  
thoát cho chúng ta.  
Lĩnh vực học tập của sinh viên  
Thực tế việc nghiên cứu và tìm hiểu phần mềm mã nguồn mở nói chung và hệ điều hành  
Linux nói riêng đem lại cho sinh viên rất nhiều lợi ích. Bỏ qua những lợi ích về kinh tế, việc  
tìm hiểu đem lại cho chúng ta một hiểu biết rộng hơn về tin học. Sinh viên không chỉ bó buộc  
trong window và những phần mềm chạy cùng với windows. Ví dụ học Linux cho chúng ta  
hiểu thế nào là Cấu trúc file, trong Linux không dùng hệ thống định vị file FAT như windows  
mà dùng hệ thống ext2, từ đó ta hiểu thêm về cách tổ chức thông tin trên đĩa. Từ chỗ có một  
cái nhìn rộng hơn, bạn sẽ hiểu sâu hơn và ngay cả việc phát triển các ứng dụng trên window  
cũng sẽ có hiệu quả hơn.  
- 14 -  
 
Linux và các phần mềm mã nguồn mở cung cấp cho ta mã nguồn của chương trình. Rất  
nhiều trong số các chương trình này được viết bởi những lập trình viên giàu kinh nghiệm và  
đã được cộng đồng mã nguồn mở trên thế giới kiểm thử, do đó đây là những tinh túy để sinh  
viên có thể tham khảo học tập. Hơn thế nữa những mã nguồn này đều có sẵn, được cập nhật  
thường xuyên và không hề có ―bí quyết công nghệ‖ trong đó. Những thắc mắc của sinh viên  
cũng có thể được giải đáp một cách nhanh chóng qua những diễn đàn mã nguồn mở, do đó  
học tập về mã nguồn mở là một cách nâng cao kiến thức tốt nhất của sinh viên.  
Câu hỏi cuối chƣơng  
1. Trình bày kiến trúc của hệ điều hành Linux.  
2. Trình bày những ưu điểm của Linux so với Dos/Windows.  
3. Trình bày những nhược điểm của Linux so với Dos/Windows.  
4. Trình bày những hiểu biết về vai trò của Linux với phần mềm mã nguồn mở.  
5. Nêu và phân tích các lĩnh vực ứng dụng của Linux.  
- 15 -  
Chƣơng 3: PHẦN MỀM TRÊN MÁY CHỦ VÀ ĐỀ BÀN  
3.1. Hệ điều hành Fedora Core  
3.1.1. Giới thiệu  
Fedora Core là một Bản phân phối Linux dựa trên RPM Package Manager, được phát  
triển dựa trên cộng đồng theo "Dự án Fedora (Fedora Project) và được bảo trợ bởi Red Hat.  
Dự án Fedora nhắm tới mục đích tạo ra một hệ điều hành mã nguồn mở hoàn chỉnh để sử  
dụng cho các mục đích tổng quát. Fedora được thiết kế để có thể dễ dàng cài đặt với chương  
trình cài đặt mang giao diện đồ họa. Các gói phần mềm bổ sung có thể tải xuống và cài đặt  
một cách dễ dàng với công cụ yum. Các phiên bản mới hơn của Fedora có thể được phát hành  
mỗi 6 hoặc 8 tháng. Tên gọi Fedora Core là nhằm mục đích phân biệt giữa gói phần mềm  
chính của Fedora với các gói phần mềm phụ trội, bổ sung cho Fedora. Hỗ trợ kỹ thuật của  
Fedora đa số là đến từ cộng đồng (mặc dù Red Hat có hổ trợ kỹ thuật cho Fedora nhưng  
không chính thức). Fedora còn được gọi là Fedora Linux, nhưng đây không phải là tên gọi  
chính thức của nó.  
Các đặc điểm của Fedora:  
. Fedora Core sử dụng GNOME như là môi trường đồ hoạ mặc định. Bên cạnh đó  
người dùng cũng có thể lựa chọn các môi trường làm việc khác như KDE, XFCE,  
hay đơn giản hơn nữa với các trình quản lý cửa sổ như icewm, fluxbox,...  
. Một số công cụ quản trị của Fedora Core được viết bằng Python - một ngôn ngữ  
kịch bản hướng đối tượng. Ví dụ điển hình là công cụ yum, dùng để quản lý và cài  
đặt các gói phần mềm theo định dạng RPM.  
Các phiên bản hiện có:  
. Fedora Core 6 (FC6, tên phát hành là Zod), được phát hành vào ngày 24 tháng 10  
và nhân Linux (Linux kernel) phiên bản 2.6.18. Phiên bản mới này có cải thiện về  
giao diện (font DejaVu mới, "puplet" - một biểu tượng thông báo update ở góc  
màn hình ...); các chương trình ứng dụng được áp dụng DT_GNU_HASH; trình  
cài đặt Anaconda cho phép tải xuống các gói phần mềm không có sẵn trong bộ cài  
bằng cách thêm vào các kho YUM khác nhau, hỗ trợ IPv6; nhân 2.6.18 dùng  
chung cho các bộ xử lí SMP và UP.  
. Fedora Core 5 (FC5, tên phát hành là Bordeaux), được phát hành vào ngày 20  
GCC 4.1 và nhân Linux (Linux kernel) phiên bản 2.6.16  
. Fedora Core 4 (FC4, tên phát hành là Stentz), được phát hành vào ngày 13 tháng 6  
năm 2005. Phiên bản này hỗ trợ các loại vi xử lý i386, AMD64 và PowerPC.  
Phiên bản này tích hợp GNOME 2.10, KDE 3.4, GCC 4.0 và nhân Linux (Linux  
. Fedora Core 3 (FC3, tên phát hành là Heidelberg), được phát hành vào ngày 8  
tháng 11 năm 2004. Phiên bản này hỗ trợ các loại vi xử lý i386 và AMD64. Phiên  
bản này tích hợp GNOME 2.8, KDE 3.3.0, X.Org Server 6.8.1 và nhân Linux  
. Fedora Core 2 (FC2, tên phát hành là Tettnang), được phát hành và ngày 18 tháng  
5 năm 2004. Phiên bản này tích hợp GNOME 2.6, KDE 3.2.1, SELinux và nhân  
Linux (Linux kernel) 2.6 Đây là phiên bản đầu tiên sử dụng X.Org Server thay thế  
cho XFree86. Phiên bản này đã bị phàn nàn khá nhiều vì các sự cố khi chạy song  
. Fedora Core 1 (FC1, tên mã là Cambridge, tên phát hành là Yarrow), được phát  
hành vào ngày 6 tháng 11 năm 2003. Phiên bản này được phát triển từ Red Hat  
- 16 -  
     
Linux 9 và được tích hợp hệ thống cập nhật tự động Yum cùng với các hỗ trợ cho  
máy vi tính xách tay. Một phiên bản dành cho AMD64 đã xuất hiện vào tháng 3  
3.1.2. Cài đặt  
Fedora Core 6 đang là hệ điều hành mã nguồn mở có số lượng người dùng rất lớn. Cập  
nhật kernel, KDE, GNOME mới, chế độ bảo mật được tăng cường mạnh mẽ và hơn hết là  
giao diện đồ họa người dùng đã rất thân thiện. Fedora Core được Red Hat phát triển và cung  
cấp miễn phí như là một phiên bản thử nghiệm cho các đặc tính và công nghệ mới của hệ điều  
hành nguồn mở trước khi cải tiến và tích hợp vào Red Hat Enterprise Linux . Fedora Core đã  
hỗ trợ cài đặt từng bước với giao diện đồ họa như cài đặt HĐH Windows. Tuy nhiên, trong  
bài viết này sẽ hướng dẫn các bước tiến hành cài đặt Fedora Core 6 đối với các hệ thống  
không hỗ trợ giao diện đồ họa cài đặt:  
Cho đĩa DVD Fedora Core 6 vào ổ DVD-Rom và boot từ nó. Bạn sẽ thấy phần hiển thị  
giới thiệu Fedora Core 6 và một vài tùy chọn. Gõ ―linux text‖ và nhấn Enter, bạn sẽ thấy rất  
nhiều text được hiển thị nhưng đừng lo lắng vì nó cũng bình thường khi bạn cài đặt một hệ  
điều hành nào đó. Kế tiếp, bạn sẽ nhận được một bảng thông báo đã tìm thấy một CD và nếu  
bạn không muốn thử nghiệm nó, chỉ cần chọn tùy chọn SKIP (Bước này nhằm kiểm tra đĩa  
cài đặt để tránh lỗi trong khi cài đặt) rồi chuẩn bị bước vào giai đoạn cài đặt ở chế độ text.  
Sau giao diện chào mừng, bạn sẽ phải chọn ngôn ngữ mặc định cho hệ điều hành, mặc  
định là English. Nhấn OK. Yêu cầu kế này buộc bạn chọn lựa dạng bàn phím (mặc định là  
U.S English). Giao diện kế tiếp là về partition của ổ đĩa cứng. Tốt nhất là bạn nên cài đặt  
Fedora Core trên một ổ cứng mới và chưa có dữ liệu rồi chọn tùy chọn đầu tiên ―Remove all  
partitions on selected drives and creat default layout‖ rồi nhấn OK. Trước khi chuyển qua  
giao diện cài đặt kế tiếp, một bảng thông báo sẽ xuất hiện với nội dung ―Tất cả dữ liệu trên ổ  
cứng sẽ được xóa‖ (All data on that drive will be destroyed). Nếu đồng ý, ta chọn YES và khi  
được hỏi ―Review and modify partitioning layout‖, ta chọn NO.  
- 17 -  
 
Giao diện kế tiếp sẽ đưa ra các tùy chọn về mạng. Nếu bạn có sử dụng DHCP, IPv4  
hoặc IPv6 thì đánh dấu chọn bên trước nó bằng phím Spacebar. Nếu không, có thể điền thủ  
công ở bên dưới qua IP và Netmask. Phần chọn lựa thiết lập mạng này bạn có thể thiết lập lại  
sau khi cài đặt.  
Phần kế đến là phần chọn lựa múi giờ (time zone) và nhập mật khẩu của người quản trị  
hệ thống cao nhất (Root Administrator). Lưu ý là bạn bắt buộc phải ghi nhớ mật khẩu này cẩn  
thận.  
Ở phần Package Selection, ta chọn ―Customize software selection‖ để có thể chọn lựa  
các gói phần mềm cần cài đặt theo mục đích sử dụng. Những phần quan trọng mà bạn nên  
chọn là: Administration Tools, Development Libraries, Development Tools, Editors, GNOME  
Desktop Environment, GNOME Software Development, Graphical Internet, Graphics, KDE  
(K Desktop Environment), KDE Software Development, Legacy Software Development,  
Office/Productivity, Sound and Video, System Tools, Text-based internet, X Software  
Development và X Window System.  
Giờ đây, mọi thứ gần như đã hoàn tất, bạn chỉ còn việc ngồi chờ hệ thống tự động định  
dạng partition, cài đặt phần mềm. Khi hoàn tất, bạn sẽ bắt gặp một bảng thông báo cài đặt  
Fedora Core hoàn tất. Bỏ DVD ra khỏi ổ DVD-Rom rồi khởi động lại hệ thống. Cuối cùng là  
chào mừng bạn đến với thế giới mã nguồn mở và có thể tham khảo phiên bản Fedora Core  
7 Test 3 đang được Red Hat phát hành thử nghiệm  
3.2. Giao diện đồ họa GNOME  
Vào năm 1996, dự án KDE chính thức bắt đầu. KDE là một dự án mã nguồn mở và tự  
do ngay từ khi khởi đầu, nhưng các thành viên của dự án GNU quan tâm tới tính độc lập của  
KDE về vấn đề phi GPL. Tháng 8 năm 1997, 2 dự án đuợc khởi động để phản ứng lại vấn đề  
- 18 -  
 
trên: Harmony toolkit (sự thay thế tự do thay cho các thư viện Qt) và Gnome (một môi truờng  
làm việc (desktop) không sử dụng Qt, nhưng xây dựng trên các phần mềm đuợc cấp phép bởi  
GPL và LGPL). Hai nguời lãnh đạo đầu tiên của dự án là Miguel de Icaza và Federico Mena.  
GTK+ đuợc sử dụng làm nền cho môi truờng Gnome thay thế cho bộ công cụ Qt (Qt toolkit).  
GTK+ sử dụng giấy phép LGPL (một chứng chỉ phần mềm tự do cho phép GPL liên kết với  
nó). Cá thư viện của Gnome đuợc giấy phép LGPL xác nhận cũng như các ứng dụng của nó  
đuợc GPL xác nhận[4]. Năm 1998, Qt trở thành GPL. Trong khi Qt được đồng cấp phép bởi  
QPL và GPL với ngoại lệ từ một giấy phép đặc biệt khác là Apache, một sự tự do cho việc  
liên kết bất cứ phần mềm bản quyền nào với GTK+ làm cho nó khác biệt với Qt. Với giấy  
phép của GPL cấp cho Qt, dự án Harmony dừng hoạt động hồi cuối năm 2000 khi KDE  
không phụ thuộc vào các phần mềm phi GPL nhiều nữa. Nguợc lại, Gnome vẫn phát triển cho  
đến hiện nay. Tháng 3 năm 2009, sau khi quyền sở hữu Qt của công ty Troll Tech đuợc bán  
cho Nokia, Qt4.5 đã đuợc phát hành với giấy phép LGPL. Trình quản lý tập tin Nautilus được  
phát triển bởi công ty Eazel (trụ sở đặt tại California – Hoa Kỳ) từ năm 1999 đến 2001.De  
Icaza và Nat Friedman đã lập ra Helix Code (sau này là công tXimian) năm 1999 tại  
Massachusetts. Công ty tiếp tục phát triển Gnome và các ứng dụng của nó, cho đến năm 2003  
thì đuợc mua lại bởi công ty Novell.  
GNOME (viết tắt của tiếng Anh GNU Network Object Model Environment, "Môi  
trường Mô hình Đối tượng Mạng lưới GNU") là bộ phần mềm cung cấp môi trường màn hình  
nền dễ dùng cho hệ điều hành Linux cũng như cho các hệ điều hành khác. Gói trong phần  
'gnome' thuộc về môi trường GNOME hoặc hợp nhất chặt chẽ với nó. Nó là một dự án tin học  
có hai mục đích: xây dựng môi trường làm việc GNOME trực giác, hấp dẫn đối với người  
dùng và môi trường phát triển ứng dụng GNOME.  
Dự án mở GNOME cung cấp 2 phần: Môi trường desktop GNOME, rất hấp dẫn và  
cuốn hút người dùng cuối (end-user), và môi trường phát triển GNOME, là môi trường tổng  
quan rộng lớn dùng cho phát triển các ứng dụng tích hợp vào môi trường desktop.  
Môi trường làm việc GNOME cũng giống như KDE, là một dự án tin học mã nguồn  
mở, tự do, và dễ sử dụng. Hơn nữa, GNOME được nhiều công ty lớn như: HP, Mandriva,  
GNOME được lập trình bởi C. Trong phiên bản mới (2.28), GNOME ra mắt GNOME  
bluetooth giúp người dùng quản lí các thiết bị không dây này. Ngoài ra còn có nhiều cải tiến ở  
các trình ứng dụng: Time tracker (theo dõi thời gian hoạt động của các trình ứng dụng trên  
máy), Empathy (chat), Media player, Cheese (ghi hình qua webcam). Trình duyệt web  
Theo website của Gnome: Dự án Gnome nhằm cung cấp cho nguời dùng 2 thứ: Một  
môi truờng làm việc Gnome trực quan và hấp dẫn với niêuguời sử dụng, và nền tảng phát  
triển Gnme, một khuôn khổ rộng lớn cho việc xây dựng các ứng dụng để tích hợp vào các  
máy tính để bàn. Dự án Gnome nhấn mạnh sự đơn giản, tiện dụng và nguyên tắc chỉ làm việc.  
Các mục đích khác của dự án: Tự do: tạo ra một môi truờng desktop có mã nguồn đầy đủ  
thích hợp cho việc sử dụng lại các mã nguồn đó theo giấy phép mã nguồn mở. Thân thiện:  
Đảm bảo cho tất cả mọi nguời có khả năng sử dụng một môi truờng làm việc thân thiện, hiệu  
quả, từ những kỹ thuật viên, lập trình viên chuyên nghiệp cho tới những nguời có khuyết tật  
về thể chất. Quốc tế hóa và nội địa hóa: tích hợp vào trong desktop thật nhiều ngôn ngữ. Hiện  
tại Gnome đã chuyển ngữ sang đuợc 161 ngôn ngữ. Phát triển thân thiện: đảm bảo cho việc  
viết và phát triển các ứng dụng tích hợp với máy tính một cách dễ dàng, và chấp thuận cho  
các lập trình viên đuợc tự do lựa chọn ngôn ngữ lập trình. Tổ chức: Phát hành theo định kỳ và  
một cộng đồng có tính tổ chức và kỷ luật cao. Hỗ trợ: đảm bảo đuợc sự ủng hộ từ các tổ chức  
khác ngoài cộng đồng Gnome.  
- 19 -  
Tải về để xem bản đầy đủ
pdf 68 trang Thùy Anh 18280 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Phát triển ứng dụng mã nguồn mở - Trường Đại học Hàng Hải", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_phat_trien_ung_dung_ma_nguon_mo_truong_dai_hoc_ha.pdf