Hệ điều hành mã nguồn mở
TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT HƢNG YÊN
KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ CƢƠNG: HỆ ĐIỀU HÀNH MÃ NGUỒN MỞ
TÀI LIỆU LƯU HÀNH NỘI BỘ
Trang 1
Hệ điều hành mã nguồn mở
Trang 2
Hệ điều hành mã nguồn mở
Mục lục
1
Tổng quan về hệ điều hành mã nguồn mở .................................................................. 10
1.1
1.1.1
Cơ bản về hệ điều hành và các ứng dụng trên hệ điều hành Linux ................. 10
1.1.2
1.2
2
Những nội dung chính trong học phần................................................................. 10
Giới thiệu về linux .............................................................................................. 17
1.2.1
Lịch sử phát triển của linux và giới thiệu các phiên bản linux ....................... 17
1.2.2
Sự phát triển của Linux và các công nghệ liên quan ...................................... 18
1.2.3
Các bản phát hành của linux ......................................................................... 19
1.2.4
Ubuntu Desktop 12.04 ................................................................................. 21
1.2.5
CentOS 6.0 server ........................................................................................ 21
Cơ bản về hệ điều hành và các ứng dụng trên hệ điều hành linux ............................... 22
2.1
2.3
Gnu-gpl project (gnu general public license) ....................................................... 27
2.3.1
Gnu-gpl là gì? .............................................................................................. 27
2.3.2
Nội dung chính của GNU ............................................................................. 27
2.4
Cài đặt và sử dụng các ứng dụng văn phòng ........................................................ 28
2.5
Cài đặt các công cụ hỗ trợ người dùng truy xuất internet ..................................... 28
2.6
Cài đặt và sử dụng các công cụ hỗ trợ phát triển hệ thống ................................... 29
Trang 3
Hệ điều hành mã nguồn mở
3
3.4.2
Thêm, xóa, sửa tài khoản người dùng ........................................................... 38
3.4.3
Thêm, sửa, xóa một tài khoản nhóm ............................................................. 40
3.5
4
Phân quyền thao tác với tài nguyên hệ thống....................................................... 40
3.5.1
Cách thức quản lý và bảo mật tài nguyên trên Linux .................................... 40
3.5.2
Các phương pháp phân quyền người dùng đối với tài nguyên hệ thống ......... 42
Phát triển ứng dụng trên môi trường Linux ................................................................ 43
4.1
Lập trình điều khiển trên hệ thống shell script ..................................................... 43
4.1.1
4.3.2
Các hướng phát triển cho lập trình ứng dụng trên Linux ............................... 46
4.3.3
Công cụ hỗ trợ phát triển ứng dụng .............................................................. 47
Quản lý dịch vụ và bảo mật ....................................................................................... 49
5.1
Cập nhật phần mềm trên Linux ........................................................................... 49
5.2
Quản lý Firewall và SELinux.............................................................................. 49
5.2.1
Quản lý firewall trên Linux. ......................................................................... 49
5.2.2
Quản lý hệ thống SELinux ........................................................................... 51
5.3
Quản lý các tác vụ khác trên Linux ..................................................................... 53
5.3.1
6.2.2
Tập tin /etc/services. .................................................................................... 57
6.2.3
Khởi động xinetd. ........................................................................................ 58
6.3
Khái niệm telnet. .......................................................................................... 58
6.3.2
Cài đặt. ........................................................................................................ 58
6.3.3
Cấu hình. ..................................................................................................... 58
6.3.4
Bảo mật telnet. ............................................................................................. 59
SSH server (secure shell). ................................................................................... 60
6.4.1
Cài đặt ssh server trên server linux. .............................................................. 60
6.3.1
6.4
7
Lập lịch cho hệ thống ................................................................................... 55
Cài đặt và cấu hình dịch vụ dhcp server. ............................................................. 72
7.2.1
Giới thiệu. .................................................................................................... 72
7.2.2
Nguyên tắc hoạt động................................................................................... 73
7.2.3
Cài đặt. ........................................................................................................ 73
7.2.4
Tìm hiểu tập tin cấu hình dhcp.conf.............................................................. 73
7.2.5
Kích hoạt. .................................................................................................... 74
9
8.2.1
Giới thiệu. ................................................................................................... 80
8.2.2
Cài đặt. ........................................................................................................ 84
8.2.3
Cấu hình. ..................................................................................................... 84
8.2.4
User của server vsftpd. ................................................................................. 85
8.2.5
Một số option quan trọng. ............................................................................ 85
8.2.6
Kích hoạt dịch vụ. ........................................................................................ 86
8.2.7
Kết nối tới ftp server. ................................................................................... 86
9.3.1
Giới thiệu. ................................................................................................... 95
9.3.2
Cài đặt samba-swat. ..................................................................................... 95
9.3.3
Tập tin cấu hình samba-swat. ....................................................................... 96
9.3.4
Khởi tạo swat và cấu hình samba cơ bản. ..................................................... 96
9.3.5
Cấu hình chia sẻ trên samba-swat. ................................................................ 98
9.3.6
Tạo các tài khoản trên samba-swat. .............................................................. 99
9.3.7
Xem tập tin cấu hình smb........................................................................... 100
9.3.8
10.3
Cấu hình một số hệ thống cơ bản với webserver.............................................. 112
10.3.1
Hệ thông Userdir ..................................................................................... 112
10.3.2
Cấu hình Virtual hosting .......................................................................... 113
Trang 6
Hệ điều hành mã nguồn mở
10.3.3
10.4
Cấu hình hệ thống bảo mật SSL ............................................................... 113
Cấu hình hệ thống webmail ............................................................................. 114
10.4.1
Cấu hình squirrelmail ............................................................................... 114
10.4.2
Cấu hình hệ thống roundcube ................................................................... 114
Thực hành 1: Cài đặt hệ điều hành linux ................................................................ 121
17
Thực hành 2: Thao tác tài nguyên trên hệ điều hành Linux ..................................... 124
18
Thực hành 3: Lập trình Shell trên Linux ............................................................... 126
19
Thực hành 4: Phát triển ứng dụng trên Linux ......................................................... 127
20
Thực hành 5: Bảo mật hệ thống mạng Linux .......................................................... 129
21
Thực hành 6: Cài đặt và quản lý dịch vụ mạng trên Linux ...................................... 130
22
Thực hành 7: Cài đặt và cấu hình DHCP và DNS trên Linux.................................. 131
23
Thực hành 8: Triển khai dịch vụ chia sẻ dữ liệu và cài đặt dns server, dhcp ............ 132
Hình 5.5: Các giá trị Octal thường dùng......................................................................................................34
Hình 5.6: Kết quả tìm kiếm ........................................................................................................................37
Hình 5.7: Mã hóa phân vùng ổ cứng ...........................................................................................................41
Hình 5.8: Mã hóa phân vùng ổ cứng ...........................................................................................................41
Hình 5.9: Mã hóa thư mục ..........................................................................................................................41
Hình 5.10: Dữ liệu mã hóa .........................................................................................................................42
Hình 5.11: Thay đổi Group. ........................................................................................................................42
Hình 7.1: Sử dụng Geany để lập trình C......................................................................................................45
Hình 10.1. Security policy and enforcement are independent using SELinux. ..............................................52
Hình 10.2. Layered Linux security process .................................................................................................53
Hình 10.3: Duyệt web bằng w3m................................................................................................................54
Hình 10.4: Duyệt web bằng w3m................................................................................................................54
Hình10.5: Duyệt web bằng w3m ................................................................................................................54
Hình 12.1: Phần mềm putty ........................................................................................................................60
Hình 12.2: Thẻ Windows............................................................................................................................61
Hình 12.3: Thẻ Proxy. ................................................................................................................................61
Hình 12.4: Đăng nhập từ xa. .......................................................................................................................62
Hình 14.1: Mô hình phân cấp DNS. ............................................................................................................63
Hình 14.2: Mô hình hoạt động của DNS. ....................................................................................................63
Hình 14.3: Cơ chế phân giải địa chỉ IP. .......................................................................................................64
Hình 14.4: Phân giải IP thành tên máy tính. ................................................................................................65
Hình 2.16: Cấu hình Linux client sử dụng DHCP. .......................................................................................75
Hình 14.5: Phương thức kết nối. .................................................................................................................75
Hình 14.6: Cấu hình địa chỉ Ip động. ..........................................................................................................76
Hình 16.1: Liệt kê danh sách các portmap. ..................................................................................................79
Hình 16.2: Sơ đồ kết nối Active. .................................................................................................................81
Hình 16.3: Sơ đồ kết nối Passive. ...............................................................................................................82
Hình 16.4: kết nối FTP server bằng trình duyệt IE.......................................................................................87
Hình 16.5: nhập thông tin tài khoản. ...........................................................................................................87
Hình 16.6: Sau khi login thành công. ..........................................................................................................87
1.1.1.1. Cài đặt Linux.
Khi bắt đầu tìm hiểu Linux, không ít người phải bối rối vì có quá nhiều phiên bản Linux
của các tổ chức phân phối khác nhau (đến hơn 400 bản). Người dùng nên đọc các bài viết so sánh,
nhận xét để quyết định chọn bộ cài nào. Ví dụ, bạn có thể dựa trên một số tiêu chí như: mức độ
chuyên dụng (dùng cho mục đích chung cả server và client), số máy cài được (x86, x86_64 ...), số
người sử dụng và phát triển, số phần mềm hỗ trợ trực tiếp (có bộ cài trực tiếp không cần biên soạn
mã nguồn), thông tin trợ giúp, khả năng cập nhật và mức độ miễn phí. Nhưng dù dùng phiên bản
nào thì bạn cũng có thể tự tùy biến và chạy phần mềm trên các phiên bản khác. Nếu là lần đầu, tốt
nhất bạn nên chọn phiên bản nào dễ dùng nhất, ví dụ như Fedora Core.
Bạn có thể cài phiên bản SuSE, Fedora Core 5 hay Fedora Core 6... Về cơ bản, giao diện
hướng dẫn cài đặt rất thân thiện, có thể so sánh tương đương với Windows XP. Các bước chọn
đường dẫn, partition, format có thể gây bối rối một chút vì bạn đã quen với các định dạng và cách
tổ chức thư mục của Windows. Nhưng mọi thứ đều dễ dàng vượt qua sau một lúc mày mò.
Khi việc cài đặt kết thúc, khởi động lại máy tính có thể bạn chỉ thấy một màn hình đen sì. Đó là do
lỗi bản cài Linux không nhận dạng đúng độ phân giải và tần số quét của màn hình và phải chuyển
sang chế độ khởi động dạng text mode để chỉnh sửa lại file cấu hình bằng tay.
Khi chọn trình quản lý desktop GNOME, bạn sẽ thấy Linux không khác gì Windows XP
nếu so sánh về giao diện đồ hoạ, các icon, menu, cửa sổ...Khả năng tùy biến giao diện rất tốt vì bạn
có thể tự do lựa chọn số thanh taskbar cũng như các kiểu shortcut đặt trên nó, các hiệu ứng trong
suốt... Đồng thời, người dùng có thể chuyển qua lại giữa nhiều màn hình desktop trong một phiên
làm việc. Tính năng này rất tiện khi số cửa sổ mở ra quá nhiều khiến thanh taskbar không còn chỗ
chứa.
1.1.1.2. Các ứng dụng trong Linux
Bản Linux Ubuntu 12.04 có các phần mềm cơ bản tương đương với Windows XP từ trình
quản lý file, cửa sổ command, trình duyệt web, trình quản lý e-mail, Calendar, Project... đến các
tiện ích nhỏ như Calculator, Character Map, Paint, Notepad, Remote Desktop...
Trong đó, nổi bật là trình soạn thảo text cơ bản đi kèm là Gedit, như Notepad của Windows
XP nhưng nhiều tính năng hơn và có thể tương đương với Notepad++. Về trình duyệt web, khác
với Windows XP, trong bộ cài Linux có rất nhiều trình duyệt web đi kèm, thậm chí có cả trình
duyệt ở chế độ text mode tiện lợi trong trường hợp cần debug (gỡ lỗi) ở chế độ text mà vẫn cần vào
được tiếng Việt, có lúc còn làm hệ thống không thể input được ký tự nào. Bạn có thể tìm hiểu
Scim-m17n, chương trình mã mở cho phép gõ tất cả các ngôn ngữ trên thế giới, mỗi phương thức
gõ cần một file cấu hình. Người dùng thường quen gõ tiếng Việt theo kiểu TELEX nhưng file cấu
hình để gõ TELEX cho Scim chỉ có thể bỏ dấu ngay sau nguyên âm và nếu gõ sai dấu thì không thể
gõ lại dấu khác mà phải xóa đi gõ lại. Scim có thể gõ tốt trên nhiều chương trình như Gedit,
OpenOffice, Firefox và bạn có thể tìm hiểu để soạn lại file cấu hình cho phù hợp, cho phép bỏ dấu
ở bất cứ đâu của từ và có thể chuyển sang dấu khác mà không cần gõ lại từ.
Ngoài ra, có một số phần mềm giả lập môi trường Windows trên Linux để cho phép cài các
phần mềm Windows trên Linux. Ví dụ CrossOver, một phần mềm giả lập dựa trên phần mềm mã
mở Wine. Người dùng sẽ cài được Flashget (trình hỗ trợ download trên Windows) và DUMeter
(trình đo lưu lượng mạng trên Windows) nhưng có thể không cài được Winrar, GifMovieGear...
A, Ứng dụng văn phòng
Để có thể sử dụng Linux cho những công việc hàng ngày chúng ta cần có những công cụ
(phần mềm sử lý cho việc nhập liệu văn bản phục vụ cho hiển thị in ấn dữ liệu) phục vụ cho mục
đích văn phòng cho các mục đích: bộ công cụ văn bản word, công cụ bảng tính excel, công cụ trình
chiếu power point… Ở đây ta có thể sử dụng bộ công cụ LibreOffice. Bộ công cụ này cho phép
thao tác với những tệp văn bản tương đương với phần mềm Microsoft Office 2003. Ngoài ra
LibreOffice còn hỗ trợ đọc rất nhiều file mở rộng khác như các file của Office 2007-2010.
Không chỉ có LibreOffice có thể hỗ trợ tin văn phòng, chúng ta còn một số ứng dụng khác
như OpenOffice là bộ công cụ truyền thống của Linux trong sử lý tin văn phòng. Các công cụ khác
bao gồm AbiWord, công cụ online có google doc, Live microst, zoho…
Ngoài ra các công cụ khác cần cho mục đích văn phòng như công cụ hiển thị file PDF,
công cụ đồ họa, vẽ, chỉnh sửa hình ảnh. Chúng ta có các phần mềm tương ứng như Acrobat reader,
Gimp, showell, Paint…
B, Ứng dụng internet
Trang 11
Hệ điều hành mã nguồn mở
oracle develop: Là bộ công cụ phát triển phần mềm java trên hệ quản trị CSDL của hãng
bao gồm MySQL và Oracle. Nhìn chung đây là bộ công cụ có khối lượng lớn hỗ trợ nhiều
tool có sãn và tuy nhiên tốc độ thực thi chậm.
-
…
Với những hệ quản trị cơ sở được hỗ trợ như: Mysql, oracle, pregestSQL… cho phép
người dùng xây dựng các ứng dụng lớn trên nền tảng java, C, C++ và các ngôn ngữ lập trình khác.
Ngoài ra Linux còn rất hữu dụng với những ứng dụng mã nguồn mở như Joomla, dupal,
nuke, worldpress… Cho phép phát triển các website với tốc độ nhanh đem lại lợi ích về kinh tế.
D, Bộ ứng dụng giải trí đa phương tiện
Linux hỗ trợ một số công cụ cho phép nghe nhiều định dạng âm thanh, video như Mplayer,
VLC, KMP và các định dạng flash như Flashplayer…
Linux còn hỗ trợ các trình ghi đĩa CD như basose, K3P, Create DVD…
E, Các ứng dụng hỗ trợ quản trị hệ thống.
Thông thường hệ thống Linux dành cho công việc văn phòng đã hỗ trợ đầy đủ các giao
diện hệ thống cho việc quản trị. Chính vì vậy các ứng dụng hỗ trợ hệ thống ở đây được nhắc đên ở
đây như các ứng dụng hỗ trợ người quản trị trong việc điều chỉnh cũng như quản lý các phần mềm.
Một số công cụ chuyên dụng được dùng như: webamin, web usermin, direct min… Các công cụ
đều hỗ trợ điều khiển server từ xa thông qua giao diện web. Ngoài ra còn một số phần mềm bản
quyền như Cpanel, WHM…
Trang 12
Hệ điều hành mã nguồn mở
- Lập trình Java: là thế mạnh của Linux với những công cụ hỗ trợ và thư viện nguồn mở rất
nhiều. Lập trình java trên linux không bị giới hạn về bộ thư viện cũng như khả năng lập trình đồ
hoạ trên hệ thống.
Người dùng có thể cài được môi trường Java và phần mềm soạn mã Java (IntelliJ), server
JBoss, Tomcat trên Linux không khó khăn gì vì J2SDK và các phần mềm soạn Java thường có
phiên bản hỗ trợ cho nhiều hệ điều hành. Ngoài ra là Oracle 10g với một ít "mẹo" và MySQL.
Còn với .NET, trên Linux có Mono Framework, một khung thay thế .NET Framework của
Microsoft. Mục tiêu của Mono là thi hành tất cả các hàm và lớp của .NET Framework do đó các
chương trình viết bằng Visual Studio .NET của Microsoft, sau khi biên dịch sang file .exe có thể
chuyển sang Linux và chạy thông qua Mono, các file ASP.NET cũng có thể chạy được trên Linux
thông qua Mono. Mục tiêu là vậy nhưng hiện tại Mono chưa thi hành được đầy đủ .NET
Framework nên một số chương trình viết bằng Visual Studio vẫn không thể chạy trên mono. Do đó
Trang 13
Hệ điều hành mã nguồn mở
nếu phải làm dự án liên quan đến .NET thì bạn vẫn phải chuyển sang dùng Windows và Visual
Studio 2005.
1.1.4 Quản lý dịch vụ và bảo mật
Hiện tại có rất ít phần mềm diệt virus cho Linux vì mã độc tấn công Linux chưa phổ biến.
Nhìn chung, cả Linux và Windows đều không thể hoàn toàn chống lại các tấn công về bảo mật
cũng như virus nhưng hiện tại các tấn công nhằm vào Linux còn rất ít, không đáng kể nên người
dùng Linux hầu như không cần lo lắng nhiều đến vấn đề bảo mật cũng như virus, ít ra cũng không
"dính" mấy virus Yahoo Messenger một cách ngớ ngẩn.
1.1.5 Cấu hình dịch vụ mạng căn bản trên Linux
Một hệ điều hành hiện đại là hệ điều hành cho phép chúng ta có thể làm việc thường trực
online trên internet. Công nghệ của tương lai cho phép mọi người lưu trữ dữ liệu trên các hệ thống
DNS viết tắt từ Domain Name System (tạm dịch Hệ thống tên miền) là Hệ thống phân
giải tên được phát minh vào năm 1984 cho Internet và là một trong số các chuẩn công nghiệp của
các cổng bao gồm cả TCP/IP. DNS là chìa khóa chủ chốt của nhiều dịch vụ mạng như duyệt
Internet, mail server, web server...Có thể nói không có DNS, Internet sẽ mau chóng lụi tàn để bạn
có thể hình dung về mức độ quan trọng của DNS.
Các tài nguyên mạng được định danh bằng những địa chỉ IP dạng như 10.0.0.10 làm ví dụ.
Mỗi máy tính khi kết nối vào mạng Internet cũng được gán cho 1 địa chỉ IP riêng biệt không trùng
lẫn với bất kỳ máy tính nào khác trên thế giới. Tương tự vậy với website cũng có các địa chỉ IP
riêng biệt. Tuy nhiên, bạn đâu thể nhớ rõ con số 123.30.128.10 sẽ dẫn đến website trường
ĐHSPKT Hưng Yên Online thay vì gõ www.utehy.edu.vn. Đây là lúc DNS "trổ tài chuyển đổi"
(ánh xạ) các con số địa chỉ IP khô khan thành những ký tự ABC thân thiện hơn. Nhờ DNS nên bạn
không cần phải nhớ địa chỉ IP để vào website Tuổi Trẻ Online mà chỉ cần nhớ www.utehy.edu.vn.
Nói cách khác, DNS cũng giống như một danh bạ điện thoại cho Internet. Nếu bạn biết tên
của một người nhưng không biết số điện thoại hay ngược lại, bạn có thể tham khảo trong sổ danh
bạ dễ dàng.
Duyệt web nhanh hơn với Google Public DNS
Trang 15
Hệ điều hành mã nguồn mở
DNS khi triển khai sẽ sử dụng 2 thành phần: máy chủ DNS (DNS server) và máy trạm
DNS (DNS client). Cả 2 thành phần này hoạt động như là ứng dụng dịch vụ nền trên hệ thống.
1.1.7 Dịch vụ chia sẻ dữ liệu trên Linux
FTP thường chạy trên hai cổng, 20 và 21, và chỉ chạy riêng trên nền của TCP. Trình chủ
FTP lắng nghe các yêu cầu dịch vụ từ những kết nối vào máy của các trình khách FTP, trên cổng
21. Đường kết nối trên cổng 21 này tạo nên một dòng truyền điều khiển, cho phép các dòng lệnh
được chuyển qua trình chủ FTP. Để truyền tải tập tin qua lại giữa hai máy, chúng ta cần phải có
một kết nối khác. Tùy thuộc vào chế độ truyền tải được sử dụng, trình khách (ở chế độ năng động active mode) hoặc trình chủ (ở chế độ bị động -passive mode) đều có thể lắng nghe yêu cầu kết nối
đến từ đầu kia của mình. Trong trường hợp kết nối ở chế độ năng động, (trình chủ kết nối với trình
của bạn.
Bất kỳ một máy tính nào cũng có thể trở thành một Web Server bởi việc cài đặt lên nó một
chương trình phần mềm Server Software và sau đó kết nối vào Internet.
Khi máy tính của bạn kết nối đến một Web Server và gửi đến yêu cầu truy cập các thông
tin từ một trang Web nào đó, Web Server Software sẽ nhận yêu cầu và gửi lại cho bạn những thông
tin mà bạn mong muốn.
Giống như những phần mềm khác mà bạn đã từng cài đặt trên máy tính của mình, Web
Server Software cũng chỉ là một ứng dụng phần mềm. Nó được cài đặt, và chạy trên máy tính dùng
làm Web Server, nhờ có chương trình này mà người sử dụng có thể truy cập đến các thông tin của
trang Web từ một máy tính khác ở trên mạng (Internet, Intranet).
Web Server Software còn có thể được tích hợp với CSDL (Database), hay điều khiển việc
kết nối vào CSDL để có thể truy cập và kết xuất thông tin từ CSDL lên các trang Web và truyền tải
chúng đến người dùng.
Server phải hoạt động liên tục 24/24 giờ, 7 ngày một tuần và 365 ngày một năm, để phục
vụ cho việc cung cấp thông tin trực tuyến. Vị trí đặt server đóng vai trò quan trọng trong chất lượng
và tốc độ lưu chuyển thông tin từ server và máy tính truy cập.
1.2
Giới thiệu về linux
1.2.1 Lịch sử phát triển của linux và giới thiệu các phiên bản linux
Linux là một HDH 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 trở lên, hay các bộ vi xử lý trung tâm tương thích AMD,
Cyrix. Linux ngày nay còn có thể chạy trên các máy Macintosh hoặc SUN Sparc. Linux thỏa mãn
chuẩn POSIX.1.
Linux được viết lại toàn bộ từ con số không, 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 Unix. 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 nếu một người nắm được Linux, thì sẽ nắm được UNIX.
Nên chú ý rằng giữa các phiên bản Unix sự khác nhau cũng không kém gì giữa Unix và Linux.
những đoạn mã nguồn khác nếu nó bị lỗi nó có thể đe dọa nghiêm trọng đến hệ thống. Chương
trình điều khiển thiết bị cung cấp một giao tiếp chuẩn với kernel của Linux. Chúng sử dụng những
dịch vụ chuẩn từ kernel này.
Hầu hết các chương trình điều khiển thiết bị của Linux được nạp như những đơn thể của
kernel khi có yêu cầu và được gỡ ra khi đó nó không còn được sử dụng nữa. Khi khởi động hệ
thống mỗi chương trình điều khiển thiết bị được khởi tạo và nó sẽ tìm thiết bị phần cứng mà nó sẽ
điều khiển. Linux sử dụng cơ chế DMA và sử dụng một vector cấu trúc dma_chan để quản lý các
kênh DMA (mỗi kênh có một vector).
Mỗi lớp điều khiển thiết bị: ký tự, khối, mạng cung cấp những cơ chế giao tiếp chung với
kernel. Khi một thiết bị được khởi tạo, thanh ghi điều khiển thiết bị bên trong kernel của Linux
được thêm một entry trong vector chrdevs của cấu trúc devive_struct. Một định danh (id) được xác
định cho vector này và là cố định. Mỗi entry trong vector chrdevs, một device_struct gồm hai phần
tử: một con trỏ đến tên của thanh ghi điều khiển thiết bị và một con trỏ tới khối của tập tin thao tác.
Khối của tập tin thao tác này là địa chỉ của những thủ tục trong chương trình điều khiển thiết bị mà
chúng kiểm soát những thao tác như mở, đóng, đọc, ghi. Nội dung của /proc/devices cho các thiết
bị ký tự được lấy từ vector chrdevs.
Các thiết bị khối được truy xuất như những tập tin. Linux quản lý các thanh ghi thiết bị
khối bằng vector blkdevs, và tương tự như vector chrdevs mỗi entry của nó là các cấu trúc
device_struct nhưng có hai loại thiết bị khối: SCSI và IDE. Mỗi chương trình điều khiển thiết bị
khối phải cung cấp một giao tiếp với vùng đệm cũng như những thao tác tập tin thông thường. Cấu
trúc blk_dev_struct bao gồm địa chỉ của các thủ tục được yêu cầu và một con trỏ đến những cấu
trúc dữ liệu cần thiết, mỗi cấu trúc này sẽ đại diện cho một yêu cầu từ vùng đệm cho những điều
khiển đọc hoặc ghi một khối dữ liệu.
Trong Linux, mỗi thiết bị mạng là một thực thể có thể nhận hoặc gửi gói dữ liệu. Mỗi thiết
bị mạng được biểu diễn bằng một cấu trúc device. Các chương trình điều khiển thiết bị mạng sẽ ghi
nhận những thiết bị mà chúng sẽ điều khiển trong quá trình khởi tạo mạng lúc khởi động hệ thống.
Cấu trúc device chứa những thông tin về các thiết bị và địa chỉ của các hàm hỗ trợ những phương
thức và dịch vụ mạng khác nhau. Những hàm này chủ yếu tập trung vào việc chuyển dữ liệu sử
Trang 18
thích của các chuyên viên máy tính Linux có đầy kinh
nghiệm. Mint đã được tùy chỉnh màn hình desktop và
các menu, và nó có giao diện web.
Ubuntu
Phát hành mới nhất: Ubuntu 13.10
Hình 1.3: Hệ điều hành Ubuntu
Ubuntu là bản phân phối Linux, vào thời điểm
hiện tại nó đã chạm mốc 20 triệu người sử dụng trong
tám năm kể từ khi được biết đến. Nếu bạn là một người
mới sử dụng hệ điều hành mã nguồn mở Linux,
Ubuntu là hệ điều hành Linux hoàn hảo cho bạn để bắt
đầu tập làm quen. Nó cũng là một trong những đối thủ
hàng đầu như là một sự thay thế Windows.
Trang 19
Hệ điều hành mã nguồn mở
Mageia
Hình 1.4: Hệ điều hành Ubuntu
Hê điều hành Linux này đã chứng kiến sự tăng
trưởng mạnh mẽ kể từ năm ngoái. Nó là một phần của
Mandriva, khá là phổ biến. Nó có hầu hết các tính năng
phong phú của Linux với khả năng cơ bản, nhưng chưa
mạnh. Nó có thể chạy được trên bất kỳ máy tính nào và
Debian
Phiên bản mới nhất: Debian 6
Hình 1.7: Hệ điều hành Ubuntu
Hệ điều hành Debian được xây dựng với cam
kết hướng tới một tầm nhìn hệ thống điều hành miễn
phí và mã nguồn mở. Debian là nhân của Linux và đi
kèm với hơn 20.000 gói phần mềm ứng dụng được cài
đặt sẵn chỉ việc tải xuống, tất cả đều miễn phí. Bạn có
thể thực hiện các công việc như chỉnh sửa tài liệu, chơi
trò chơi, viết mã và nhiều hơn nữa với các công cụ
được cung cấp hoàn toàn miễn phí.
Trang 20
Hệ điều hành mã nguồn mở
1.2.4 Ubuntu Desktop 12.04
Phiên bản hỗ trợ lâu dài (LTS) mới nhất của hệ điều hành Ubuntu đã chính thức ra mắt
hôm 26/4/2012. Phiên bản 12.04 LTS với tên mã Precise Pangolin sẽ được hỗ trợ đến năm 2017.
Chữ P trong tên mã của Ubuntu 12.04 còn có
nghĩa là Performance (hiệu năng). Ubuntu 12.04 có
tốc độ nhanh nhất từ trước đến nay. Ngoài ra, Unity 5
mang lại trải nghiệm khác hẳn, các tính năng đều
được hoàn thiện tỉ mỉ trong bản chính thức này.
Hình 1.8: Giao diện đăng nhập
Ubuntu 12.04
2.1
2.1.1 Giới thiệu trình tự cài đặt hệ điều hành
Chuẩn bị
Chuẩn bị các thiết bị cần thiết cho việc cài đặt Linux bao gồm:
Nguồn cài đặt: Một LiveCD (DVD) chứa bộ cài Linux hoặc một USB khởi động chứa bộ
cài Linux. Công việc tạo USB chứa bộ cài Linux thường khá đơn giản dựa trên một file ISO với
phần mềm UnetBootin (Trên bản thân các hệ điều hành Linux đều chưa ứng dụng cho phép tạo bộ
cài trên USB).
Một bộ máy tính Pentium III với 256 MB RAM trở lên, có gắn một ổ đọc CD là đủ để sử
dụng đĩa Live CD Ubuntu. Bộ nhớ RAM càng lớn thì càng tốt do môi trường làm việc đồ họa
GNOME khá tốn về bộ nhớ. Máy tính không cần thiết phải gắn một ổ đĩa cứng. Tuy nhiên, nếu sau
này muốn cài hệ điều hành Ubuntu vào đĩa cứng, thì cần một ổ cứng với 5-10 GB trống. Mainboard
của máy tính phải hỗ trợ việc khởi động máy tính từ ổ đọc đĩa CD, đó là trường hợp của hầu như
tất cả các mainboard máy tình từ năm 2000 trở lại đây.
Khởi động Live CD
Để khởi động từ thiết bị đĩa CD hoặc USB thông thường ta sử dụng 1 trong 2 cách:
Thay đổi thông tin khởi động trong BiOS
Sử dụng phím tắt khởi động trong quá trình bặt máy tính
Cài đặt hệ thống vào đĩa cứng
Việc cài đặt hệ điều hành lên ổ cứng sẽ giúp cho hệ thống chạy có tốc độ cao hơn cải thiện
được hiệu năng sử dụng máy tính so với việc chạy hệ điều hành trên CDRom hoặc trên USB.
Bƣớc 1: Chọn ngôn ngữ
Hộp thoại thứ nhất cho phép bạn chọn được ngôn ngữ giao diện đồ họa của hệ thống. Nếu
máy tính của bạn đang tồn tại dữ liệu và một trong nhưng thao tác chia sai ổ cứng sẽ làm cho dữ
liệu trên máy tính của bạn bị xóa.
2.1.2 Quản trị các phân vùng chính trên Linux
Hệ thống Linux cần thiết ít nhất một phân vùng riêng. Phân vùng đó có thể chứa toàn bộ hệ
điều hành, tất cả các ứng dụng và tập tin cá nhân. Vùng nhớ “chuyển đổi” (swap area) là chứa hỗn
hợp cho hệ điều hành, cho phép hệ thống sử dụng bộ nhớ trên đĩa là “bộ nhớ ảo”. Bằng cách để chỗ
trao đổi trên phân vùng riêng.
Phần lớn người cũng lựa chọn cho hệ thống GNU/Linux có hơn số phân vùng tối thiểu. Có
hai lý do bạn có thể muốn chia hệ thống tập tin ra nhiều phân vùng nhỏ hơn. Lý do thứ nhất là sự
an toàn. Nếu cái gì xảy ra để hỏng hệ thống tập tin, thường chỉ một phân vùng riêng bị hại. Vì vậy
bạn cần phải phục hồi chỉ một phần của hệ thống. Bạn nên tạo tối thiểu một phân vùng riêng
thường được gọi như là “phân vùng gốc” (root partition), mà chứa những thành phần chủ yếu nhất
của hệ thống. Nếu phân vùng khác nào bị hỏng, bạn vẫn còn có khả năng khởi động vào
GNU/Linux trên phân vùng riêng này, để sửa chữa hệ thống. Phân vùng gốc này có thể tránh
trường hợp mà bạn cần phải cài đặt lại toàn bộ hệ thống.
Lý do thứ hai thường là quan trọng hơn trong trường hợp kinh doanh, nhưng nó thật sự phụ
thuộc vào cách sử dụng máy tính. Chẳng hạn máy phục vụ thư tín tràn ngập bởi thư rác có thể
chiếm dễ dàng toàn bộ phân vùng. Nếu bạn đã cấu hình vùng thư tín /var/mail là phân vùng riêng
trên máy phục vụ thư tín, phần lớn của hệ thống còn lại hoạt động được thậm chí nếu nó bị rác tràn.
Mặt không thuận lợi thật duy nhất khi sử dụng phân vùng thêm là thường khó biết trước
các nhu cầu của mình. Nếu bạn cấu hình phân vùng quá nhỏ, bạn sẽ phải hoặc cài đặt lại hệ thống,
hoặc cũng luôn chuyển các thứ ra để tạo chỗ trống trong phân vùng thấp nhỏ đó. Mặt khác, nếu bạn
cấu hình phân vùng quá lớn, bạn sẽ hoài phí sức chứa có thể được tận dụng trên vùng khác. Hiện
thời sức chứa trên đĩa là rẻ, nhưng ta không nên dùng lãng phí.
2.1.3 Sự phân mảnh của hệ thống file
Nhiều người dùng Windows, kể cả những người không có nhiều kinh nghiệm thì đều cho
rằng: chống phân mảnh định kỳ cho hệ thống file sẽ tăng tốc độ máy tính của mình. Cái mọi người
không biết là tại sao lại thế.
chống phân mảnh trên chế độ nền ở những bản Windows mới nhất.
Hệ thống file trong Linux hoạt động như thế nào?
Các hệ thống file ext2, ext3 và ext4 của Linux đặc biệt là ext4 được sử dụng cho Ubuntu
và hầu hết các bản phân phối Linux khác, cấp phát file một cách thông minh hơn. Thay vì để nhiều
file gần nhau trên ổ đĩa cứng, những hệ thống file Linux rải nhiều file khác nhau trên toàn bộ đĩa
cứng, để lại một lượng lớn không gian trống ở giữa chúng. Khi một file được chỉnh sửa và cần mở
rộng thì thường có nhiều không gian trống xung quanh cho file. Nếu hiện tượng phân mảnh xảy ra,
hệ thống file sẽ cố gắng di dời những file xung quanh để làm giảm phân mảnh tự động mà không
cần tiện ích chống phân mảnh.
Do cách hoạt động như vậy, hiện tượng phân mảnh sẽ xuất hiện nếu hệ thống file đầy. Nếu
đầy 95% (hoặc thậm chí là 80%), người dùng sẽ gặp hiện tượng phân mảnh. Tuy nhiên, hệ thống
file được thiết kế để tránh phân mảnh một cách tự nhiên.
Nếu gặp vấn đề với phân mảnh trên Linux, bạn có thể cần một ổ đĩa cứng lớn hơn. Nếu
thực sự cần chống phân mảnh hệ thống file, cách đơn giản và đáng tin cậy nhất là: Copy toàn bộ
file khỏi phân vùng, dọn dẹp phân vùng, sau đó copy file lại phân vùng. Hệ thống file sẽ cấp phát
file một cách thông minh khi copy chúng lại đĩa cứng. Đó cũng là lý do tại sao bạn copy dữ liệu
trên Linux thường có tốc độ khá chậm so với windows.
Trang 24
Hệ điều hành mã nguồn mở
2.2
Linux kernel
Linux kernel cung cấp một giao diện giữa các ứng dụng người dùng, hệ thống phần cứng
và tài nguyên. Một vài chức năng của Linux là:
Tính linh hoạt cao
Bảo mật
Sử dụng ít footprint cài đặt và lưu trữ
Nhƣợc điểm:
Phần cứng đôi khi “khó hiểu” hơn thông qua hệ thống driver
Phần cứng hoạt động dưới mức hiệu suất thông thường vì các trình điều khiển ở trong chế
độ user mode
Các tiến trình phải chờ đợi để được nhận thông tin
Các tiến trình không thể truy cập tới những ứng dụng khác mà không phải chờ đợi
Monolithic Kernel: Với Monolithic thì khác, chúng có chức năng bao quát rộng hơn so