Tài liệu Đề cương Hệ điều hành mã nguồn mở: Hệ điều hành mã nguồn mở
Trang 1
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Ộ
Hệ điều hành mã nguồn mở
Trang 2
Hệ điều hành mã nguồn mở
Trang 3
Mục lục
1 Tổng quan về hệ điều hành mã nguồn mở .................................................................. 10
1.1 Những nội dung chính trong học phần................................................................. 10
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 Quản trị tài nguyên người dùng trên Linux ................................................... 13
1.1.3 Phát triển ứng dụng trên hệ điều hành Linux................................................. 13
1.1.4 Quản lý dịch vụ và bảo mật .......................................................................... 14
1.1.5 Cấu hình dịch vụ mạng căn bản trên Linux ................................................... 14
1.1.6...
145 trang |
Chia sẻ: putihuynh11 | Lượt xem: 655 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Đề cương Hệ điều hành mã nguồn mở, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Hệ điều hành mã nguồn mở
Trang 1
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Ộ
Hệ điều hành mã nguồn mở
Trang 2
Hệ điều hành mã nguồn mở
Trang 3
Mục lục
1 Tổng quan về hệ điều hành mã nguồn mở .................................................................. 10
1.1 Những nội dung chính trong học phần................................................................. 10
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 Quản trị tài nguyên người dùng trên Linux ................................................... 13
1.1.3 Phát triển ứng dụng trên hệ điều hành Linux................................................. 13
1.1.4 Quản lý dịch vụ và bảo mật .......................................................................... 14
1.1.5 Cấu hình dịch vụ mạng căn bản trên Linux ................................................... 14
1.1.6 Cài đặt cấu hình DHCP và DNS trên Linux .................................................. 14
1.1.7 Dịch vụ chia sẻ dữ liệu trên Linux ................................................................ 16
1.1.8 Dịch vụ quản lý tài nguyên tập chung trên Linux .......................................... 16
1.1.9 Cài đặt cấu hình webserver trên Linux .......................................................... 16
1.2 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
2 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 Cấu hình cơ bản trước khi cài đặt Linux .............................................................. 22
2.1.1 Giới thiệu trình tự cài đặt hệ điều hành ......................................................... 22
2.1.2 Quản trị các phân vùng chính trên Linux ...................................................... 23
2.1.3 Sự phân mảnh của hệ thống file .................................................................... 23
2.2 Linux kernel ....................................................................................................... 25
2.2.1 Giới thiệu ..................................................................................................... 25
2.2.2 Kernel modules ............................................................................................ 26
2.2.3 Các chức năng của kernel ............................................................................. 27
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
Hệ điều hành mã nguồn mở
Trang 4
3 Quản trị tài nguyên của người dùng trên Linux .......................................................... 30
3.1 Quản trị hệ thống tập tin ..................................................................................... 30
3.1.1 Cấu trúc và trật tự của hệ thống tập tin ......................................................... 30
3.1.2 Các quyền trên tập tin và thư mục ................................................................ 32
3.1.3 Các thư mục chính trên hệ điều hành Linux.................................................. 34
3.2 Các kỹ năng thao tác với tập tin .......................................................................... 35
3.3 Các kỹ năng tìm kiếm ......................................................................................... 37
3.4 Quản trị người dùng và nhóm ............................................................................. 38
3.4.1 Giới thiệu về tài khoản trong linux ............................................................... 38
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 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
4 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 Tổng quan về lập trình Shell script ............................................................... 43
4.1.2 Một số ứng dụng trong lập trình Shell .......................................................... 43
4.2 Kỹ thuật lập trình C và C++ trên Linux ............................................................... 44
4.2.1 Tổng quan về lập trình C và C++ trên Linux ................................................ 44
4.2.2 Các trình biên dịch và thực thi ..................................................................... 45
4.3 Lập trình winform trên Linux ............................................................................. 45
4.3.1 Giới thiệu về lập trình Java .......................................................................... 45
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
5 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 Quản lý dịch vụ (service) ............................................................................. 53
5.3.2 Duyệt web và download dữ liệu trên hệ thống server .................................... 53
5.3.3 Quản lý hệ thống soạn thảo trên Server ........................................................ 54
Hệ điều hành mã nguồn mở
Trang 5
5.3.4 Lập lịch cho hệ thống ................................................................................... 55
6 Cấu hình dịch vụ mạng căn bản trên Linux ................................................................ 56
6.1 Cấu hình dịch vụ đồng bộ thời gian NTP............................................................. 56
6.2 Truy cập từ xa..................................................................................................... 56
6.2.1 Xinetd. ......................................................................................................... 56
6.2.2 Tập tin /etc/services. .................................................................................... 57
6.2.3 Khởi động xinetd. ........................................................................................ 58
6.3 Telnet server. ...................................................................................................... 58
6.3.1 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
6.4 SSH server (secure shell). ................................................................................... 60
6.4.1 Cài đặt ssh server trên server linux. .............................................................. 60
6.4.2 Các phương pháp khai thác SSH .................................................................. 60
7 Cài đặt và cấu hình dhcp server và dns server trên linux............................................. 63
7.1 Cài đặt và cấu hình dịch vụ dns (domain name system). ...................................... 63
7.1.1 Giới thiệu. .................................................................................................... 63
7.1.2 Cơ chế phân giải tên. .................................................................................... 63
7.1.3 Phân loại domain name server. ..................................................................... 65
7.1.4 Cài đặt bind bằng dòng lệnh. ........................................................................ 66
7.2 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
7.2.6 Cấu hình linux client sử dụng dhcp............................................................... 74
7.2.7 Cấu hình windows client sử dụng dhcp. ........................................................ 75
8 Dịch vụ chia sẻ dữ liệu .............................................................................................. 77
8.1 Cài đặt và cấu hình dịch vụ nfs (network file system). ......................................... 77
8.1.1 Giới thiệu. .................................................................................................... 77
8.1.2 Cài đặt dịch vụ nfs. ...................................................................................... 77
8.1.3 Cấu hình dịch vụ nfs. ................................................................................... 77
Hệ điều hành mã nguồn mở
Trang 6
8.2 Cài đặt, cấu hình dịch vụ ftp server (file tranfer protocol).................................... 80
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 Dịch vụ quản lý tài nguyên tập chung ........................................................................ 88
9.1 Cài đặt và cấu hình dịch vụ samba. ..................................................................... 88
9.1.1 Giới thiệu. ................................................................................................... 88
9.1.2 Cài đặt. ........................................................................................................ 89
9.1.3 Cấu hình. ..................................................................................................... 89
9.1.4 Quản trị tài khoản samba.............................................................................. 93
9.2 Sử dụng dịch vụ smb. ......................................................................................... 94
9.3 Cài đặt và cấu hình dịch vụ samba-swat. ............................................................. 95
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 Đổi port truy cập mặc định cho samba-swat. .............................................. 100
9.4 Cài đặt và triển khai hệ thống Domain sử dụng Samba ...................................... 100
10 Cài đặt và cấu hình dịch vụ webserver ................................................................... 103
10.1 Cài đặt và cấu hình dịch vụ dịch vụ wed server. .............................................. 104
10.1.1 Giới thiệu................................................................................................. 104
10.1.2 Cài đặt. .................................................................................................... 104
10.1.3 Cấu hình. ................................................................................................. 104
10.2 Cài đặt và cấu hình mysql và php. ................................................................... 111
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
Hệ điều hành mã nguồn mở
Trang 7
10.3.3 Cấu hình hệ thống bảo mật SSL ............................................................... 113
10.4 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
10.5 Cấu hình hệ thống Blog mã nguồn mở WordPress ........................................... 115
PHẦN THẢO LUẬN ............................................................................................ 116
11 Thảo luận 1: Khai thác ứng dụng trên hệ điều hành Linux ...................................... 116
12 Thảo luận 2: các phương pháp phân quyền và quản lý tài nguyên người dùng ........ 117
13 Thảo luận 3: các dịch vụ mạng cần thiết để triển khai mạng LAN theo mô hình doanh
nghiệp 118
14 Thảo luận 4: về các dịch vụ mạng nâng cao trong linux ......................................... 118
15 Thảo luận 5: Tổng hợp các phương pháp lựa chọn ứng dụng trên Linux ................. 119
PHẦN BÀI TẬP THỰC HÀNH ............................................................................ 121
16 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
24 Thực hành 9: triển khai hệ thống Samba trong mạng LAN ..................................... 136
25 Thực hành 10: cài đặt và cấu hình webserver ......................................................... 137
26 Thực hành 11: Cấu hình hệ thống server Linux (5 tiết) ........................................... 139
Hệ điều hành mã nguồn mở
Trang 8
DANH MỤC HÌNH ẢNH
Hình 1.2: Hệ điều hành Mint ......................................................................................................................19
Hình 1.3: Hệ điều hành Ubuntu ..................................................................................................................19
Hình 1.4: Hệ điều hành Ubuntu ..................................................................................................................20
Hình 15: Hệ điều hành Ubuntu ...................................................................................................................20
Hình 1.6: Hệ điều hành Ubuntu ..................................................................................................................20
Hình 1.7: Hệ điều hành Ubuntu ..................................................................................................................20
Hình 1.8: Giao diện đăng nhập Ubuntu 12.04..............................................................................................21
Hình 2.1: Giao diện công cụ văn phòng ......................................................................................................28
Hình 5.1: Quyền trên tập tin và thư mục. ....................................................................................................32
Hình 5.2: Quyền trên tập tin ẩn. ..................................................................................................................32
Hình 5.3: Cấu trúc mode của dòng lệnh Chmod. .........................................................................................33
Hình 5.4: Các giá trị Octal tương ứng với các quyền. ..................................................................................34
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
Hình 19.1: Quá trình cài đặt dịch vụ samba. ................................................................................................89
Hình 19.2: Kiểm tra dịch vụ đã được cài đặt trên hệ thống. .........................................................................89
Hình 19.3: Đăng nhập samba swat với user root. .........................................................................................96
Hình 19.4: Giao diện chính của swat. ..........................................................................................................97
Hình 19.5: Phần global. ..............................................................................................................................97
Hình 19.6: Phần share. ...............................................................................................................................98
Hình 19.8: Tạo user cho samba. ..................................................................................................................99
Hình 21.1: Kiểm tra hoạt động của apache. ............................................................................................... 105
Hình 21.2: Kiểm tra số phiên bản. ............................................................................................................ 110
Hệ điều hành mã nguồn mở
Trang 9
Hình 21.3: Truy cập vào Mysql. ............................................................................................................... 110
Hình 21.4: Gọi trang default.php. ............................................................................................................. 111
Hình 21.5: Test hệ thống PHP .................................................................................................................. 112
Hình 21.6: Test thử hệ thống virtual hosting ............................................................................................. 113
Hệ điều hành mã nguồn mở
Trang 10
Bài 1. Tổng quan về hệ điều hành mã nguồn mở
1.1 Những nội dung chính trong học phần
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
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
web. Bạn có thể chọn FireFox làm trình duyệt chính vì nó được dùng nhiều và khá an toàn.
Trong bộ cài đi kèm rất nhiều phần mềm nghe nhạc và xem phim nhưng tất cả đều không hỗ trợ
nghe mp3 và một số định dạng phim thường gặp. Fedora Core chỉ bao gồm các phần mềm mã
nguồn mở, không có các phần mềm miễn phí nhưng không có mã nguồn hoặc bị ràng buộc một số
điều kiện bản quyền. Với tư cách là người sử dụng, bạn có thể tìm trình nghe nhạc mp3 và xem các
định dạng phim phổ biến là Realplayer và VLC.
Về phần mềm chat, trên Linux có Gain, một chương trình mã mở chạy trên nhiều giao thức
phổ biến hiện nay như Yahoo, ICQ, MSN ... và có thể chat nhiều nick trên cùng giao thức hay trên
các giao thức khác nhau. Giao diện chương trình đẹp, dễ sử dụng, khá nhiều tính năng tiện dụng.
Hệ điều hành mã nguồn mở
Trang 11
Nhược điểm của Gain là chưa cho phép chat voice hay webcam. Hiện Yahoo và Skype cũng có
phiên bản cho Linux nhưng so với phiên bản trên Windows thì còn thiếu nhiều chức năng.
Về phần mềm nén và giải nén, trên Linux cũng có một chương trình cho phép nén và giải
nén các định dạng .zip, .tar ...với giao diện đồ họa dễ dùng. Nhưng trình giải nén của Linux không
giải nén được file .rar. Hiện có bản Winrar cho Linux nhưng làm việc ở chế độ command, khó sử
dụng và bất tiện. Bạn có thể tìm hiểu để biến nó thành một dạng như plugin cho trình giải nén của
Linux và có thể dễ dàng nén/giải nén/xem nội dung file .rar thông qua giao diện đồ họa và chuột.
Phần mềm soạn thảo văn bản, bảng tính và trình chiếu trên Linux có OpenOffice, tương đương với
OfficeXP của Microsoft nhưng chưa bằng được Office 2003 ở một số tính năng nhưng cũng có một
số chức năng mạnh như VBScript và Javascript cho phép lập trình. Các file .doc, .xsl, .ppt được
soạn bằng Office 2003 và font Arial và .VNTime có thể xem và chỉnh sửa tốt nhưng gặp phải vấn
đề về font chữ. Linux sử dụng True Type Font và có sẵn một số font Unicode nhưng tên font khác
với Windows khiến các file thử nghiệm không hiển thị đúng. Vấn đề được giải quyết đơn giản bằng
việc copy các file font trên Windows vào thư mục font của Linux. Nhưng OpenOffice Writer
(tương đương với Word) vẫn gặp phải lỗi chữ "ư" với font TCVN3, các file .xsl và .ppt thì không
bị lỗi này.
Phần mềm gõ tiếng Việt: Trên Linux có một số phần mềm cho phép gõ tiếng Việt như x-
Unikey và một số phần mềm khác. X-Unikey khi sử dụng gặp phải rất nhiều lỗi, có lúc không gõ
đượ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
Hệ điều hành mã nguồn mở
Trang 12
Một số ứng dụng phục vụ cho nhu cầu trao đổi thông tin trên internet như: firefox, chrome
hỗ trợ duyệt web và thao tác với các thành phần như ftp, ngoài ra chrome còn hỗ trợ các dữ liệu
trên Android.
Các phần mềm hỗ trợ trao đổi thông tin message như Pidgin, imo, skype, kopate, apathy
giúp trao đổi thông tin trên internet hỗ trợ rất nhiều giao thức cho người dùng.
Công cụ hỗ trợ quản lý dữ liệu vào ra mạng internet là wireshark cho phép quản lý các
thông tin dữ liệu vào ra hệ thống, thông qua đó người dùng có thể quản lý được các điểm note gây
ra sự cố về mạng.
C, Ứng dụng cho người phát triển ứng dụng
Các ứng dụng phát triển phần mềm trên Linux cho phép xây dựng phần mềm tương đối
nhanh và hiệu quả như:
- Netbean: là bộ công cụ mã nguồn mở được phát triển bởi oracle cho phép phát triển các
ứng dụng trên nhiều nền tảng như C, C++, Java, và phát triển các website trên JSP, PHP
Là bộ công cụ cho phép thao tác trên hệ thống giao diện kéo thả hỗ trợ viết code rất thuận
tiện cho người dùng.
- qt4: là bộ công cụ chuyên dành cho người phát triển C, C++ và ứng dụng trong các thiết bị
ngoại vi: Mobile, smartphone, android, IOS và các thiết bị vi mạch điện tử. Hệ thống
cho phép thao tác trên giao diện đồ họa dễ xử lý và hỗ trợ code rất chuyên nghiệp.
- java: Là nền tảng phát triển ứng dụng trên Java và cho phép cài đặt các ứng dụng phát triển
hệ thống như netbean, eclipse
- 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
Hệ điều hành mã nguồn mở
Trang 13
1.1.2 Quản trị tài nguyên người dùng trên Linux
Thực tế việc quản trị tài nguyên người dùng xuất phát từ nhu cầu quản lý các file, thiết bị
trên Linux. Các dữ liệu này được cấp phát cho từng đối tượng sử dụng với những quyền hạn nhất
định phục vụ quá trình thao tác của người dùng đó. Thông thường với mỗi một tài nguyên trên
Linux sẽ được quy định một người dùng sở hữu là Owner, và nhóm sở hữu là workgroup. Việc
phân định quyền thao tác giữa những đối tựng trên với tài nguyên file thư mục thì được gọi là quản
trị tài nguyên trên Linux.
Thông thường việc quản trị tài nguyên bao gồm các thành phần sau:
- Xác định loại tài nguyên, mức độ quan trọng của tài nguyên
- Xác định chủ sở hữu và những người được quyền tác động đến tài nguyên
- Sử dụng cơ chế phân quyền người dùng đối với tài nguyên thông qua lệnh Chmod
- Chuyển quyền sở hữu tài nguyên thông qua lệnh chowner.
Ngoài ra nếu muốn nhóm sử dụng tài nguyên chung nào đó thì cần phải có cơ chế chia sẻ
tài nguyên cho phép nhiều người sử dụng chung tài nguyên mà không cần phải thao tác trực tiếp
trên máy tính nội tại.
1.1.3 Phát triển ứng dụng trên hệ điều hành Linux
Trong bài học này chủ yếu sinh viên được làm quen với những ngôn ngữ lập trình trên
Linux cũng như những thư viện lập trình trên Linux. Thông qua việc tiếp cận này người học sẽ
từng bước làm quen với lập trình phát triển các hệ thống trên Linux.
- Lập trình shell script: Lập trình tác động vào hệ thống máy chủ cho phép thay đổi các
thông tin, tác động cài đặt, chỉnh sửa phần mềm bao gồm cả các phần mềm thông dụng như một số
phần mềm cài đặt tự động, phần mềm backup tự động hệ thống dữ liệu. Sinh viên tiếp cận với
nhiều hình thức bảo vệ dữ liệu.
- Lập trình C, C++: Sinh viên sẽ tiếp cận với việc lập trình trên các thư viện của linux đặc
biệt là thư viện tác động đến các hàm hệ thống. Việc lập trình trên Linux có nhiều sự khác biệt so
với lập trình trên hệ thống thư viện của windows. Nhiều hàm phép tính bị giới hạn do tính bảo mật,
nhiều thành phần dữ liệu bị giới hạn phạm vi thực hiện. Cách khai báo các hàm thư viện cũng hoàn
toàn khác so với windows. Với đặc thù sử dụng để lập trình điều khiển các thiết bị ngoại vi Linux
hỗ trợ rất nhiều hàm nhập xuất dữ liệu ra các cổng.
- 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 đó
Hệ điều hành mã nguồn mở
Trang 14
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
điện toán đám mây từ đó giảm thiểu nguy cơ về việc mất, hỏng dữ liệu nhưng khi lưu trữ dữ liệu
trực tuyến cũng đem đến nhiều bất cập. Ở Việt Nam hệ thống cơ sở hạ tầng phục vụ internet còn
hạn chế. Dịch vụ bảo mật còn chưa tốt vì vậy mặc dù hỗ trợ internet rất mạnh song Linux ở Việt
Nam tạm thời không được sử dụng rộng dãi vì phần mềm còn hạn chế và hạ tầng cơ sở cũng như
con người còn chưa thực sự phát sinh nhu cầu.
Cấu hình mạng căn bản trên Linux quy tụ nhiều ứng dụng internet như cloud computing.
Dịch vụ truy xuất dữ liệu từ xa, dịch vụ mạng, dịch vụ chia sẻ đữ liệu, dịch vụ điều khiển từ xa
1.1.6 Cài đặt cấu hình DHCP và DNS trên Linux
DHCP là viết tắt của Dynamic Host Configuration Protocol:
Giao thức Cấu hình Host Động DHCP được thiết kế làm giảm thời gian chỉnh cấu hình cho
mạng TCP/IP bằng cách tự động gán các địa chỉ IP cho khách hàng khi họ vào mạng.
DHCP tập trung việc quản lý địa chỉ IP ở các máy tính trung tâm chạy chương trình
DHCP. Mặc dù có thể gán địa chỉ IP vĩnh viễn cho bất cứ máy tính nào trên mạng, DHCP cho phép
Hệ điều hành mã nguồn mở
Trang 15
gán tự động. Để khách có thể nhận địa chỉ IP từ máy chủ DHCP, bạn khai báo cấu hình để khách
“nhận địa chỉ tự động từ một máy chủ”. Tùy chọn nầy xuất hiện trong vùng khai báo cấu hình
TCP/IP của đa số hệ điều hành. Một khi tùy chọn nầy được thiết lập, khách có thể “thuê” một địa
chỉ IP từ máy chủ DHCP bất cứ lúc nào. Phải có ít nhất một máy chủ DHCP trên mạng. Sau khi cài
đặt DHCP, bạn tạo một phạm vi DHCP (scope), là vùng chứa các địa chỉ IP trên máy chủ, và máy
chủ cung cấp địa chỉ IP trong vùng nầy.
DHCP là một thuận lới rất lớn đối với người điều hành mạng. Nó làm yên tâm về các vấn
đề cố hữu phát sinh khi phải khai báo cấu hình thủ công. Hãy xem bảng so sánh dưới đây để biết
DHCP làm nhẹ bớt công việc như thế nào:
DNS
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
Hệ điều hành mã nguồn mở
Trang 16
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
khách để truyền tải dữ liệu) , trình chủ phải trước tiên đóng kết vào cổng 20, trước khi liên lạc và
kết nối với trình khách. Trong chế độ bị động, hạn chế này được giải tỏa, và việc đóng kết trước là
một việc không cần phải làm.
1.1.8 Dịch vụ quản lý tài nguyên tập chung trên Linux
Giống như các dịch vụ thư mục khác, chẳng hạn như Novell Directory Services (NDS),
samba là một hệ thống chuẩn và tập trung, dùng để tự động hóa việc quản lý mạng dữ liệu người
dùng, bảo mật và các nguồn tài nguyên được phân phối, cho phép tương tác với các thư mục khác.
Thêm vào đó, samba được thiết kế đặc biệt cho các môi trường kết nối mạng được phân bổ theo
một kiểu nào đó.
Với người dùng hoặc quản trị viên, samba cung cấp một khung nhìn mang tính cấu trúc để
từ đó dễ dàng truy cập và quản lý tất cả các tài nguyên trong mạng.
1.1.9 Cài đặt cấu hình webserver trên Linux
Máy Web Server là máy chủ có dung lượng lớn, tốc độ cao, được dùng để lưu trữ thông tin
như một ngân hàng dữ liệu, chứa những website đã được thiết kế cùng với những thông tin liên
quan khác. (các mã Script, các chương trình, và các file Multimedia)
Hệ điều hành mã nguồn mở
Trang 17
Web Server có khả năng gửi đến máy khách những trang Web thông qua môi trường
Internet (hoặc Intranet) qua giao thức HTTP - giao thức được thiết kế để gửi các file đến trình
duyệt Web (Web Browser), và các giao thức khác.
Tất cả các Web Server đều có một địa chỉ IP (IP Address) hoặc cũng có thể có một Domain
Name. Giả sử khi bạn đánh vào thanh Address trên trình duyệt của bạn một dòng
sau đó gõ phím Enter bạn sẽ gửi một yêu cầu đến một Server có Domain
Name là www.abc.com. Server này sẽ tìm trang Web có tên là index.htm rồi gửi nó đến trình duyệt
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.
Năm 1991 Linus Torvalds, 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 80386.
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ề dự định của mình về Linux.
Ngày 1/1992, Linus cho ra version 0.12 với shell và C compiler. Linus không cần Minix
nữa để recompile HDH của mình. Linus đặt tên HDH của mình là Linux. Năm 1994, phiên bản
chính thức 1.0 được phát hành.
Hệ điều hành mã nguồn mở
Trang 18
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 2013, phiên bản mới nhất của Linux kernel là 3.10, có khả năng điều khiển các
máy đa bộ vi xử lý (hiện tại Linux hỗ trợ máy tính có tối đa 16 CPUs và các máy tính có xử lý đa
lõi) và rất nhiều các tính năng khác.
1.2.2 Sự phát triển của Linux và các công nghệ liên quan
Một trong những mục tiêu chính của hệ điều hành là giúp cho người sử dụng độc lập với
thiết bị. Trong Linux, các thiết bị phần cứng đều được xem như là các tập tin thông thường: chúng
có thể được mở, đóng, đọc, ghi, và sử dụng cùng những lời gọi hệ thống để thao tác. Mọi thiết bị
trong hệ thống đều được biểu diễn bởi các tập tin thiết bị, ví dụ đĩa IDE đầu tiên của hệ thống được
biểu diễn bởi /dev/had các đĩa Santa được biểu diễn bởi /dev/sda còn các ổ CD được biểu diễn là
/dev/scd.
Linux ánh xạ tập tin thiết bị vào các lời gọi hệ thống. Linux hỗ trợ ba loại thiết bị là: ký tự,
khối và mạng. Có nhiều chương trình điều khiển thiết bị khác nhau trong kernel của Linux nhưng
chúng cùng chia xẻ những thuộc tính chung:
Mã nguồn của kernel: chương trình điều khiển thiết bị là một phần của kernel và cũng như
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ử
Hệ điều hành mã nguồn mở
Trang 19
dụng các thiết bị mạng. Các thiết bị sử dụng các cơ chế hỗ trợ mạng chuẩn để chuyển dữ liệu nhận
được cho lớp phương thức thích hợp. Tất cả các gói dữ liệu chuyển và nhận được biểu diễn bởi cấu
trúc sk_buff, đây là một cấu trúc linh động cho phép các tiêu đề (header) phương thức mạng có thể
dễ dàng thêm vào hoặc loại bỏ.
Cấu trúc device lưu những thông tin về thiết bị mạng: tên, thông tin về đường truyền, cờ
trạng thái giao tiếp (mô tả các thuộc tính và khả năng của các thiết bị mạng), thông tin về phương
thức, hàng đợi gói tin (đây là hàng đợi của các gói sk_buff chờ chuyển dữ liệu trên thiết bị mạng
đó), các hàm hỗ trợ (mỗi thiết bị cung cấp một tập hợp các thủ tục chuẩn được gọi bởi lớp phương
thức).
1.2.3 Các bản phát hành của linux
Linux được phát hành bởi nhiều tổ chức khác nhau, mỗi tổ chức như thể đều có một
chương trình kèm theo nhóm tập tin nòng cốt của Linux. Mỗi bản phát hành Linux đều dựa trên
một phiên bản chính nào đó. Ví dụ như Red Hat 9.2 dựa vào kernel 2.6.4. Với Red Hat, các Kernel
Linux được chứa trong hệ thống Red Hat Package Management và được cài đặt như là một phần
của hệ thống này. Open Linux của Caldera cũng như thế vì căn cứ trên bản phát hành Red Hat. Bản
phát hành HOWTO cũng cung cấp một danh sách chi tiết của các bản Linux.
Linux Mint
Hình 1.2: Hệ điều hành Mint
Linux Mint 14 phát hành vào tháng mười hai,
tên mã là 'Nadia' được đóng gói với một loạt các cải
tiến từ các phiên bản trước đây. Rất nhiều phần mềm
hữu ích được cài đặt sẵn, bao gồm phần mềm hỗ trợ
các trình điều khiển thiết bị khác nhau. Linux Mint khá
thân thiện với người dùng, hiệu quả sử dụng cao, trong
khi tại cùng một thời điểm đó, nó trở thành sự yêu
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
Hình 1.3: Hệ điều hành Ubuntu
Phát hành mới nhất: Ubuntu 13.10
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.
Hệ điều hành mã nguồn mở
Trang 20
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à
thường được cấu hình cho các máy chủ. Những người
sáng lập và phát triển hệ điều hànhMageia luôn mong
muốn cung cấp miễn phí cho nhu cầu của tất cả người
sử dụng.
Fedora
Hình 15: Hệ điều hành Ubuntu
Phiên bản mới nhất: Fedora 19
Fedora là một trong những hệ điều hành Linux
với lượng người dùng khổng lồ và có nhiều diễn đàn
hỗ trợ. Tính năng linh hoạt làm cho nó trở thành một
trong những sự lựa chọn tốt nhất. Fedora thích hợp cho
các doanh nghiệp.
OpenSUSE
Hình 1.6: Hệ điều hành Ubuntu
Phiên bản mới nhất: openSUSE 12.3
openSUSE là cộng đồng mã nguồn mở được
tài trợ bởi Novell. Nhóm openSUSE có hai mục tiêu:
làm cho openSUSE Linux dễ dàng sử dụng cho bất cứ
người sử dụng nào và đơn giản hóa việc phát triển
cũng như đóng gói mã nguồn của openSUSE Linux để
làm cho nó thân thiện với lập trình viên. Bản phân phối
Linux này có số lượng các phần mềm và các công cụ
phong phú để bạn có thể dễ dàng sử dụng như:
SpiderOak lưu trữ đám mây, Mozilla Firefox để duyệt
web và mã nguồn mở email client Thunderbird.
Debian
Hình 1.7: Hệ điều hành Ubuntu
Phiên bản mới nhất: Debian 6
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í.
Hệ điều hành mã nguồn mở
Trang 21
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.
Có vài sự thay đổi, chẳng hạn như
Rhythmbox bị Banshee thay thế nay đã quay trở lại.
Người dùng được trang bị các phiên bản mới nhất của
LibreOffice, trình duyệt Firefox, trình thư điện tử
Thunderbird... VLC phiên bản 2.0 vừa ra mắt gần đây
cũng được tích hợp trong Ubuntu 12.04.
Hình 1.9:Một vài hình ảnh của phiên bản 12.04 LTS
1.2.5 CentOS 6.0 server
Hệ điều hành CentOS là một trong số những hệ điều hành máy chủ được sử dụng trong hầu
hết các doanh nghiệp hiện nay. CentOS viết tắt từ cụm từ (Community Enterprise Operating
System) là một hệ điều hành mã nguồn mở được phát triển dựa trên nhân của Red Hat Enterprise
Linux, có thể tương thích hoàn toàn với các phần mềm chạy trên Red Hat.
Các tính năng của CentOS không thua gì phiên bản Red Hat Enterprise nhưng lại hoàn toàn
miễn phí, đó là lý do các nhà cung cấp Hosting, các quản trị mạng đều hay sử dụng CentOS là hệ
điều hành chính để cung cấp cho khách hàng, bởi các tính năng ổn định và mạnh mẽ của CentOS
mang lại.
Khi sử dụng CentOS để quản trị mạng các Bạn nên chọn phiên bản 5.5 trở lên bởi vì tính
tương thích cao, dễ cấu hình, hỗ trợ cài đặt online tốt.
Hình 1.8: Giao diện đăng nhập
Ubuntu 12.04
Hệ điều hành mã nguồn mở
Trang 22
Bài 2. Cơ bản về hệ điều hành và các ứng dụng trên hệ điều hành linux
2.1 Cấu hình cơ bản trƣớc khi cài đặt Linux
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
bạn chọn tiếng Việt, sau khi đã cài xong, bạn sẽ vẫn chọn được giao diện người dùng bằng tiếng
anh, nếu bạn thích.
Bƣớc 2: Chọn mũi giờ địa phƣơng
Nếu bạn đã chọn ngôn ngữ là tiếng Việt, tiến trình cài đặt sẽ chọn mũi giờ của Việt Nam,
đại diện là TP Hồ Chí Minh. Nếu bạn thấy giờ của hệ thống không chính xác, bạn sẽ có cơ hội đổi
giờ sau khi đã cài đặt xong. Nếu bạn không đang sống ở Việt Nam, bạn có thể chọn mũi giờ địa
phương thích hợp trên bản đồ.
Bƣớc 3: Chọn bàn phím
Đối với lựa chọn ngôn ngữ là tiếng Việt, lựa chọn sơ đồ bàn phím theo kiểu Hoa Kỳ (USA)
là hợp lý bởi vì đây là loại bàn phím phổ biến nhất ở Việt Nam. Tuy nhiên nếu bạn đang dùng một
bàn phím loại khác, bạn có thể chọn bàn phím đó bằng cách nhấn vào “Lựa chọn riêng của bạn” và
tìm bàn phím thích hợp trong danh sách. Bạn cũng có thể gõ vài phím vào vùng thông tin cho hệ
thống tự động xác định loại bàn phím mà bạn đang dùng là loại bàn phím gì.
Bƣớc 4: Phân vùng ổ cứng
Hệ điều hành mã nguồn mở
Trang 23
Bạn phải giành tối thiểu 02 phân vùng trống để cài GNU/Linux: một phân vùng dành cho
hệ thống tập tin root “/” và một phân vùng để tạo ra một bộ nhớ đệm (swap area) cho hệ thống trên
ổ đĩa cứng. Tùy theo tình trạng sử dụng ổ cứng, trình cài đặt sẽ đề xuất nhiều giải pháp phân vùng
ổ đĩa cứng để cài hệ thống.
Bƣớc 5: Thiết lập tài khoản ngƣời dùng:
Bạn sử dụng màn hình hỗ trợ để thiết lập các thông tin liên quan đến người dùng hệ thống
bao gồm: Username, password, hình minh họa, họ tên người dùng, tên máy tính
Bƣớc 6: Tiến hành cài đặt Ubuntu
Sau khi bạn đã lựa chọn xong hết các thông tin trong hệ thống bạn tiến hành cài đặt cho hệ
điều hành lên ổ cứng.
Chú ý rằng trong quá trình cài đặt bạn phải cẩn thận trong vấn đề chia ổ cứng. Nếu trên
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ế.
Nguyên nhân cụ thể như sau: một ổ đĩa cứng có nhiều sector trên nó, mỗi sector có thể
chứa nhiều mẩu dữ liệu. Những file, đặc biệt là những file lớn phải được lưu qua nhiều sector khác
nhau. Người dùng lưu nhiều loại file khác nhau trong ổ đĩa hệ thống. Mỗi một file trong đó sẽ được
Hệ điều hành mã nguồn mở
Trang 24
lưu trên một cụm sector liên tiếp. Sau đó, người dùng sửa đổi file lưu ban đầu, làm tăng kích thước
file. Hệ thống file sẽ cố gắng lưu những phần mới của file gần những phần ban đầu. Không may là,
nếu không đủ không gian liền kề, file phải được chia thành nhiều mẩu. Khi ổ đĩa cứng đọc file, đầu
dò phải bỏ qua khoảng giữa những vị trí vật lý khác nhau trên ổ cứng để đọc từng đoạn sector một.
Việc này làm chậm tốc độ đọc.
Chống phân mảnh là một xử lý tập trung để chuyển các bit của file xung quanh để giảm
phân mảnh, đảm bảo mỗi file được lưu liền mạch trên ổ đĩa.
Tuy nhiên, với những ổ đĩa trạng thái rắn thì lại khác. Những ổ này không có bộ phận cơ
học chuyển động và không nên thực hiện chống phân mảnh. Chống phân mảnh một ổ SSD thực tế
sẽ làm giảm tuổi thọ ổ. Và ở những phiên bản mới nhất của Windows, bạn không thực sự cần phải
lo lắng về chống phân mảnh hệ thống file. Windows sẽ tự động làm việc này.
Hệ thống file trong Windows hoạt động như thế nào?
Định dạng FAT cũ của Microsoft không cố sắp xếp file một cách thông minh. Định dạng
này xuất hiện mặc định lần cuối trên Windows 98 và ME, mặc dù nó vẫn còn sử dụng trên các ổ
USB hiện nay. Khi lưu một file vào hệ thống file kiểu FAT, máy sẽ lưu càng gần điểm bắt đầu của
đĩa nhất có thể. Khi lưu file thứ hai, nó lưu file ngay sau file đầu tiên và cứ như vậy. Khi những file
ban đầu tăng kích thước, chúng sẽ luôn bị phân mảnh. Không có không gian trống nào xung quanh
để chúng mở rộng ra.
Định dạng NTFS mới hơn của Microsoft xuất hiện trong Windows XP và 2000 thì thông
minh hơn một chút. Nó cấp nhiều không gian trống “đệm” xung quanh các file trên ổ, mặc dù vậy,
những hệ thống file NTFS vẫn trở nên phân mảnh theo thời gian.
Do phương thức hoạt động như vậy nên hệ thống file của Windows cần được chống phân
mảnh để đạt hiệu năng cao nhất. Microsoft đã xoa dịu vấn đề này bằng cách chạy chương trình
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.
Hệ điều hành mã nguồn mở
Trang 25
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à:
Quản lý bộ nhớ.
Quản lý hệ thống file.
Xử lý các lỗi và ngắt.
Thực hiện các dịch vụ I/O.
Cấp phát tài nguyên hệ thống cho các người dùng
2.2.1 Giới thiệu
Về bản chất, có nhiều cách để xây dựng cấu trúc và biên dịch 1 bộ kernel nhất định từ đầu.
Nhìn chung, với hầu hết các kernel hiện nay, chúng ta có thể chia ra làm 3 loại: monolithic,
microkernel, và hybrid. Linux sử dụng kernel monolithic trong khi OS X (XNU) và Windows 7 sử
dụng kernel hybrid.
Microkernel: Microkernel có đầy đủ các tính năng cần thiết để quản lý bộ vi xử lý, bộ nhớ
và IPC. Có rất nhiều thứ khác trong máy tính có thể được nhìn thấy, tiếp xúc và quản lý trong chế
độ người dùng. Microkernel có tính linh hoạt khá cao, vì vậy bạn không phải lo lắng khi thay đổi 1
thiết bị nào đó, ví dụ như card màn hình, ổ cứng lưu trữ... hoặc thậm chí là cả hệ điều hành.
Microkernel với những thông số liên quan footprint rất nhỏ, tương tự với bộ nhớ và dung lượng lưu
trữ, chúng còn có tính bảo mật khá cao vì chỉ định rõ ràng những tiến trình nào hoạt động trong chế
độ user mode, mà không được cấp quyền như trong chế độ giám sát - supervisor mode.
Ƣu điểm:
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
với microkernel, không chỉ tham gia quản lý bộ vi xử lý, bộ nhớ, IRC, chúng còn can thiệp vào
trình điều khiển driver, tính năng điều phối file hệ thống, các giao tiếp qua lại giữa server...
Monolithic tốt hơn khi truy cập tới phần cứng và đa tác vụ, bởi vì nếu 1 chương trình muốn thu
thập thông tin từ bộ nhớ và các tiến trình khác, chúng cần có quyền truy cập trực tiếp và không
phải chờ đợi các tác vụ khác kết thúc. Nhưng đồng thời, chúng cũng là nguyên nhân gây ra sự bất
ổn vì nhiều chương trình chạy trong chế độ supervisor mode hơn, chỉ cần 1 sự cố nhỏ cũng khiến
cho cả hệ thống mất ổn định.
Ưu điểm:
Hệ điều hành mã nguồn mở
Trang 26
Truy cập trực tiếp đến các phần cứng
Dễ dàng xử lý các tín hiệu và liên lạc giữa nhiều thành phần với nhau
Nếu được hỗ trợ đầy đủ, hệ thống phần cứng sẽ không cần cài đặt thêm driver cũng như
phần mềm khác
Quá trình xử lý và tương tác nhanh hơn vì không cần phải chờ đợi
Nhược điểm:
Tiêu tốn nhiều footprint cài đặt và lưu trữ
Tính bảo mật kém hơn vì tất cả đều hoạt động trong chế độ giám sát - supervisor mode
Hybrid Kernel: Khác với 2 loại kernel trên, Hybrid có khả năng chọn lựa và quyết định
những ứng dụng nào được phép chạy trong chế độ user hoặc supervisor. Thông thường, những thứ
như driver và file hệ thống I/O sẽ hoạt động trong chế độ user mode trong khi IPC và các gói tín
hiệu từ server được giữ lại trong chế độ supervisor. Tính năng này thực sự rất có ích vì chúng đảm
bảo tính hiệu quả của hệ thống, phân phối và điều chỉnh công việc phù hợp, dễ quản lý.
Ưu điểm:
Các nhà phát triển có thể chọn và phân loại những ứng dụng nào sẽ chạy trong chế độ thích
hợp
Sử dụng ít footprint hơn so với monolithic kernel
Có tính linh hoạt và cơ động cao nhất
Nhược điểm:
Có thể bị bỏ lại trong quá trình gây treo hệ thống tương tự như với microkernel
Các trình điều khiển thiết bị phải được quản lý bởi người dùng
Vậy những file Linux Kernel này ở đâu?
Các file kernel này, trong Ubuntu chúng được lưu trữ tại thư mục /boot và đặt tên theo
vmlinuz-version. Khi bộ nhớ ảo bắt đầu được phát triển để thực hiện các tác vụ đa luồng, tiền tố
vm sẽ được đặt vào đầu các file kernel để phân biệt khả năng hỗ trợ công nghệ ảo hóa. Kể từ đó,
Linux kernel được gọi là vmlinux, nhưng hệ thống kernel này đã phát triển với tốc độ quá nhanh,
lớn hơn so với dung lượng bộ nhớ boot chuẩn của hệ điều hành, vì vậy những file kernel này đã
được nén theo chuẩn zlib – và ký tự z được thêm vào là do như vậy. Ngoài ra còn 1 số định dạng
nén thường gặp khác là LZMA hoặc BZIP2, nhưng chúng vẫn được gọi chung là zImage.
Các phiên bản được sắp xếp thứ tự theo định dạng A.B.C.D, trong đó A.B thường là 2.6, C
đại diện cho phiên bản, và D là ký hiệu các bản vá lỗi hoặc patch:
2.2.2 Kernel modules
Trong những năm đầu của Linux, kernel Linux là một monolithic kernel. Monolithic kernel
là tất cả các dịch vụ của Kernel được biên dịch hết vào trong nó và không có drivers ngoài nào
được gọi. Với monolithic kernel, kernel phải được biên dịch lại mỗi khi có một thiết bị mới được
gắn vào hệ thống. Khi sự hỗ trợ phần cứng của Linux tăng lên thì kích thước của Kernel tăng lên và
cho thấy sự bất tiện của nó. thế là modular Linux kernel ra đời.
Modular Linux kernel bao gồm một kernel tối tiểu và một tập các modules có thể được
thêm vào khi kernel đang chạy để hỗ trợ các thiết bị và dịch vụ mới.
Hệ điều hành mã nguồn mở
Trang 27
2.2.3 Các chức năng của kernel
Quản lý bộ nhớ: Quản lý các bộ nhớ trong và bộ nhớ ngoài trên máy tính
Quản lý hệ thống file: Các dữ liệu trên máy tính được kiểm soát thông qua các hoạt động
đọc ghi và kernel là hệ thống kiểm soát hoàn toàn các thông tin này.
Xử lý các lỗi và ngắt.
Thực hiện các dịch vụ I/O.
Cấp phát tài nguyên hệ thống cho các người dung.
GNU-GPL project (GNU General Public License)
2.3 Gnu-gpl project (gnu general public license)
2.3.1 Gnu-gpl là gì?
GNU General Public License là một hình thức bản quyền cho phép đảm bảo việc trao đổi
tự do các phần mềm, đảm bảo các phần mềm là miễn phí đối với tất cả các người sử dụng.
General Public License áp dụng cho hầu hết các sản phẩm của Free Software Foundation's.
Bạn có thể áp dụng GNU GPL cho phần mềm của bạn.
Giấy phép phần mềm mã nguồn mở (Open Source) cho phép người dùng đọc, truy cập,
thay đổi, làm lại mã nguồn của một sản phẩm phần mềm (OSI – Open Source Initiative). Các giấy
phép phần mềm được OSI phê chuẩn và quản lý tại
Open Source mang ý nghĩa “tự do” nhiều hơn là “miễn phí”. Mỗi loại giấy phép có những
điều khoản quy định riêng. Ví dụ: BSD Licensing chỉ dài 1 trang với 3 điều khoản cần phải tuân
thủ nhưng trong khi đó thì Mozilla Public License 1.1 dài đến 12 trang đề cập mọi thứ từ việc định
nghĩa thuật ngữ đến cách thức áp dụng giấy phép cho chính phủ.
Một trong những điều khoản quan trọng trong OS Licensing là: Nếu ta thay đổi mã nguồn
thì phải lập lại tài liệu về các thay đổi và đính kèm mã nguồn theo phần mềm. Không được thông
báo bản quyền của mình (copyright) mặc dù đã thay đổi mã nguồn của chương trình.
Người ta còn nói GNU GPL là “Copyleft” để thay cho khái niệm “Copyright”.
2.3.2 Nội dung chính của GNU
Tác giả vẫn giữ bản quyền phần mềm của mình bạn có thể copy và phân phối chương trình
dưới bất cứ hình thức nào và giá tùy ý. Bạn có thể thay đổi một phần của chương trình và phân
phối thay đổi của mình cùng toàn bộ chương trình ccho người khác với điều kiện nói rõ phần mình
thay đổi.
Nếu phần bạn thay đổi không thể tách rời tòan bộ chương trình thì GNU GPL sẽ mở rộng
sang toàn bộ chương trình, kể cả phần bạn viết.
Bạn không được thông báo bản quyền của bạn (copyright) mặc dù bạn đã thay đổi mã
nguồn của chương trình. Bạn phải đảm bảo cung cấp mã nguồn khi bạn bán một sản phẩm theo
GNU GPL để cho người khác có thể sử dụng và/hoặc bán tiếp sản phẩm.
Open Source:
Một sản phẩm là Open Source phải thỏa mãn các điều kiện:
Free Redistribution: có thể phân phối tới bất cứ đội tượng nào.
Hệ điều hành mã nguồn mở
Trang 28
Source Code: Luôn kèm theo source code.
Integrity of The Author‟s Source Code: Có thể có hạn chế chỉ cho phép thay đổi mã nguồnt
hông qua các patch (chứ không được tự ý thay đổi), hoặc nếu thay đổi phải đổi qua tên
khác. Đây là điểm khác với GNU GPL.
No Discrimination Against Fields of Endeavor: Không được phân biệt đối xử với cá nhân
hay nhóm người nào trong quá trình phân phối phần mềm mã nguồn mở.
Distribution of License: quyền đối với phần mềm được tiếp tục chuyển đến những người
nhận phần mềm.
License Must Not Be Specific to a Product: Các quyền đối với phần mềm được tiếp tục
thực hiện không phụ thuộc vào các phân phối (distribution) chứa phần mềm.
License Must Not Restrict Other Software: Các sản phẩm khác đi cùng Open Source không
nhất thiết phải tuân theo yêu cầu của Open Source.
License Must Be Technology-Neutral: License không được bắt buộc gắn kết với bất kỳ
công nghệ hay kiểu kết nối nào.
Chú ý:
Bruce Perens Đã viết các quy định trên cho "The Debian Free Software Guidelines". Sau
đó ông đã bỏ đi các phần đặc trưng cho Debian-specific và xây dựng thành "Open Source
Definition.“
Open Source và GNU GPL thường kết hợp với nhau: Ethereal is Open Source software
released under the GNU General Public Licens.
2.4 Cài đặt và sử dụng các ứng dụng văn phòng
Các thành phần:
Công cụ soạn thảo – Writer
Công cụ bảng tính – Calc
Công cụ tạo thuyết trình – Impress
Công cụ tạo biểu đồ, minh họa – Draw
Quản lý cơ sở dữ liệu – Base
Công cụ vẽ biểu thức toán học – Math
- Trang Web:
Hình 2.1: Giao diện công cụ văn phòng
2.5 Cài đặt các công cụ hỗ trợ ngƣời dùng truy xuất internet
Firefox: có rất nhiều phần mềm mở rộng.
Chrome: nhẹ, tốc độ lướt web nhanh.
Multiget: quản lý và tăng tốc tải xuống với khả năng xử lý đa luồng, khôi phục lại phiên
tải xuống bị tạm dừng,
Hệ điều hành mã nguồn mở
Trang 29
FileZilla: hỗ trợ các giao thức FTP, FTPS (FTP over SSL/TLS) và SFTP (SSH File
Transfer Protocol), hỗ trợ tải tập tin siêu lớn.
Transmission: phần mềm tải torrent gọn nhẹ.
2.6 Cài đặt và sử dụng các công cụ hỗ trợ phát triển hệ thống
Geany: IDE nhỏ gọn, chạy nhanh, hỗ trợ Syntax highlighting nhiều ngôn ngữ lập
trình, Code navigation, quản lý dự án đơn giản, nhiều plug-in.
IntelliJ IDEA CE: thông minh và mạnh mẽ, hỗ trợ JAVA và một số ngôn ngữ khác, nhiều
tính năng hữu ích và chạy nhanh. Hỗ trợ lập trình cho Android.
NetBeans: khá mạnh, hỗ trợ JAVA, PHP, C/C++,
Eclipse: hỗ trợ nhiều ngôn ngữ lập trình, chậm.
Hệ điều hành mã nguồn mở
Trang 30
Bài 3. Quản trị tài nguyên của ngƣời dùng trên Linux
3.1 Quản trị hệ thống tập tin
Mỗi hệ điều hành có cách tổ chức lưu trữ dữ liệu riêng. Ở mức vật lý, đĩa được định dạng
từ các thành phần sector, track, cylinder. Ở mức logic, mỗi hệ thống sử dụng cấu trúc riêng, có thể
dùng chỉ mục hay phân cấp để có thể xác định được dữ liệu từ mức logic tới mức vật lý. Cách tổ
chức như vậy gọi là hệ thống tập tin (file system).
3.1.1 Cấu trúc và trật tự của hệ thống tập tin
Hệ thống tập tin là một phần cơ bản của hệ điều hành Linux.
Một hệ thống tập tin là thiết bị mà nó đã được định dạng để lưu trữ tập tin và thư mục.
Hệ thống tập tin Linux bao gồm: đĩa mềm, CD-ROM, những partition của đĩa cứng. Những
hệ thống tập tin thường được tạo trong quá trình cài đặt hệ điều hành. Nhưng bạn cũng có thể thay
đổi cấu trúc hệ thống tập tin khi thêm thiết bị hay chỉnh sửa những partition đã tồn tại. Như vậy,
việc biết và hiểu cấu trúc hệ thống tập tin trong Linux thật là quan trọng.
Linux hỗ trợ rất nhiều loại hệ thống tập tin như: ext2, ext3, MS-DOS, proc. Hệ thống tập
tin cơ bản của Linux là ext2 và ext3 hiện tại là ext4. Hệ thống tập tin này cho phép đặt tên tập tin
tối đa 256 ký tự và kích thước tối đa là 4 terabytes. MS-DOS dùng để truy cập trực tiếp những tập
tin MS-DOS. Bên cạnh đó, Linux còn hỗ trợ vfat cho phép đặt tên tập tin dài đối với những tập tin
MS-DOS và những partition FAT32. Proc là một hệ thống tập tin ảo (/proc) nghĩa là không dành
dung lượng đĩa phân phối cho nó. Ngoài ra còn có những hệ thống tập tin khác như iso9660,
UMSDOS, Network File System (NFS).
Các thành phần của hệ thống tập tin:
Super Block: là một cấu trúc được tạo tại vị trí bắt đầu hệ thống tập tin. Nó lưu trữ thông
tin về hệ thống tập tin như: Thông tin về block-size, free block, thời gian gắn kết(mount) cuối cùng
của tập tin
Inode (256 byte): Lưu những thông tin về những tập tin và thư mục được tạo ra trong hệ
thống tập tin. Nhưng chúng không lưu tên tập tin và thư mục thực sự. Mỗi tập tin tạo ra sẽ được
phân bổ một inode lưu thông tin sau:
Loại tập tin và quyền hạn truy cập tập tin
Người sở hữu tập tin.
Kích thước của tập tin và số hard link đến tập tin.
Ngày và thời gian chỉnh sửa tập tin lần cuối cùng.
Vị trí lưu nội dung tập tin trong hệ thống tập tin.
Storageblock: Là vùng lưu dữ liệu thực sự của tập tin và thư mục. Nó chia thành những
Data Block. Dữ liệu lưu trữ vào đĩa trong các data block. Mỗi block thường chứa 1024 byte. Ngay
khi tập tin chỉ có 1 ký tự thì cũng phải cấp phát 1 block để lưu nó. Không có ký tự kết thúc tập tin.
Data Block của tập tin thông thường lưu inode của tập tin và nội dung của tập tin Data Block của
thư mục lưu danh sách những entry bao gồm inode number, tên của tập tin và những thư mục con.
Loại tập tin.
Trong linux tập tin dùng cho việc lưu trữ dữ liệu. Nó bao gồm cả thư mục và các thiết bị
lưu trữ.
Hệ điều hành mã nguồn mở
Trang 31
Một tập tin dữ liệu, hay một thư mục đều được xem là tập tin. Khái niệm tập tin còn mở
rộng dùng cho các thiết bị như máy in, đĩa cứng ngay cả bộ nhớ chính cũng được coi như là một
tập tin,các tập tin trong linux được chia ra làm 3 loại chính:
Tập tin dữ liệu: Đây là tập tin theo định nghĩa truyền thống, nó là dữ liệu lưu trữ trên các
thiết bị lưu trữ như đĩa cứng, CD-ROM Bạn có thể đưa bất cứ dữ liệu nào vào tập tin này như
đoạn source chương trình, tập tin văn bản hay tập tin thực thi dạng mã máy, các lệnh của Linux
cũng như tất cả các tập tin được tạo ra bởi người dùng.
Tập tin thƣ mục: Thư mục không chứa dữ liệu, mà chỉ chứa các thông tin của những tập
tin và thư mục con trong nó. Thư mục chứa hai trường của một tập tin là tên tập tin và inode
number.
Liên kết tập tin: Link một liên kết, hiểu theo cách đơn giản nhất, là tạo ra một tên tập tin
thứ hai cho một tập tin. Ví dụ, bạn có một tập tin /usr/lib/testfile và muốn có một tập tin giống như
vậy trong thư mục /usr/tim, bạn không cần phải copy nó mà chỉ cần tạo một liên kết với lệnh sau:
Code:
#ln /usr/bill/testfile /usr/tim/testfile
Cú pháp của lệnh ln:
$ln
Lý do cơ bản của việc tạo liên kết là nhân tập tin lên nhiều lần. Trong ví dụ trên, cả hai tập
tin chính là một. Do đó, nếu có bất kỳ sự thay đổi nào trên một tập tin sẽ ảnh hưởng ngay đến tập
tin còn lại.
Hard Link: là một liên kết trong cùng hệ thống tập tin với hai inode entry tương ứng trỏ
đến cùng một nội dung vật lý (cùng inode number vì chúng trỏ đến cùng dữ liệu). Nếu bạn muốn
thấy điều này, dùng lệnh sau:
Code:
$ ls -i testfile
14253 testfile
Sau đó tạo một liên kết có một tên khác và hiển thị thông tin của inode entry.
Code:
$ ln testfile test2
$ ls -i testfile test2
14253 testfile 14253 test2
Cả hai tập tin đều có inode number giống nhau
Symbolic Link: Là một liên kết khác mà không sử dụng inode entry cho việc liên kết. Bạn
sử dụng liên kết này khi muốn tạo ra những driver thiết bị, như /dev/modem thay cho /dev/cua1.
Tùy chọn– của lệnh ln cho phép tạo ra một symbolic link.
Code:
$ ls -i bigfile
6253 bigfile
$ ln -s bigfile anotherfile
$ ls -i bigfile anotherfile
6253 bigfile 8358 anotherfile
Như bạn thấy, nội dung inode number của các tập tin khác nhau. Liệt kê một thư mục sẽ
thấy symbolic link:
Hệ điều hành mã nguồn mở
Trang 32
Code:
lrwxrwxrwx 1 root root 6 Sep 16:35 anotherfile -> bigfile
-rw-rw-r-- 1 root root 2 Sep 17:23 bigfile
Lưu ý: khi xóa tập tin gốc, nội dung của tập tin hard link không bị ảnh hưởng nhưng nội
dung tập tin symbolic link không xem được..
3.1.2 Các quyền trên tập tin và thư mục
Để xem các quyền hiện có trên tập tin và thư mục,sử dụng lệnh ls –l.
Hình 5.1: Quyền trên tập tin và thư mục.
Hình 5.2: Quyền trên tập tin ẩn.
File type.
d: Thư mục
l: Là tập tin liên kết đến một thư mục hay tập tin nào đó.
-: Tập tin bình thường.
Các nhóm quyền.
User
(owner)
Người tạo ra tập tin.
Group Nhóm của tập tin, thư mục.
Others Những người khác.
Thay đổi quyền.
Hệ điều hành mã nguồn mở
Trang 33
Chúng ta có thể hiệu chỉnh các quyền trên tập tin hay thư mục bằng dòng lệnh chmod.
Cú pháp: chmod mode filename
Hình 5.3: Cấu trúc mode của dòng lệnh Chmod.
Các loại quyền.
r: Quyền đọc
w: Quyền ghi
x: Quyền thực thi
-: Cấm quyền
Các phép toán trên dòng lệnh.
=: Gán quyền
+: Thêm quyền
-: Bớt quyèn
Các nhóm quyền.
u: Người tạo ra tập tin.
g: Nhóm của tập tin thư mục.
o: Những người khác.
a: Tất cả những trường hợp trên.
Hệ điều hành mã nguồn mở
Trang 34
Mỗi quyền có một giá trị octal, chúng ta có thể dùng số octal này để gán quyền vào tập tin
hay thư mục.
Hình 5.4: Các giá trị Octal tương ứng với các quyền.
Hình 5.5: Các giá trị Octal thường dùng.
Cú pháp:
chmod octal_mode filename
3.1.3 Các thư mục chính trên hệ điều hành Linux
/ root: Đúng với tên gọi của mình: nút gốc (root) đây là nơi bắt đầu của tất cả các file và
thư mục. Chỉ có root user mới có quyền ghi trong thư mục này. Chú ý rằng /root là thư mục home
của root user chứ không phải là /.
/bin – Chương trình của người dùng: Thư mục này chứa các chương trình thực thi. Các
chương trình chung của Linux được sử dụng bởi tất cả người dùng được lưu ở đây. Ví dụ như: ps,
ls, ping
/sbin – Chương trình hệ thống: Cũng giống như /bin, /sbinn cũng chứa các chương trình
thực thi, nhưng chúng là những chương trình của admin, dành cho việc bảo trì hệ thống. Ví dụ như:
reboot, fdisk, iptables
/etc – Các file cấu hình: Thư mục này chứa các file cấu hình của các chương trình, đồng
thời nó còn chứa các shell script dùng để khởi động hoặc tắt các chương trình khác. Ví dụ:
/etc/resolv.conf, /etc/logrolate.conf
Hệ điều hành mã nguồn mở
Trang 35
/dev – Các file thiết bị: Các phân vùng ổ cứng, thiết bị ngoại vi như USB, ổ đĩa cắm ngoài,
hay bất cứ thiết bị nào gắn kèm vào hệ thống đều được lưu ở đây. Ví dụ: /dev/sdb1 là tên của USB
bạn vừa cắm vào máy, để mở được USB này bạn cần sử dụng lệnh mount với quyền root: # mount
/dev/sdb1 /tmp
/tmp – Các file tạm: Thư mục này chứa các file tạm thời được tạo bởi hệ thống và các
người dùng. Các file lưu trong thư mục này sẽ bị xóa khi hệ thống khởi động lại.
/proc – Thông tin về các tiến trình: Thông tin về các tiến trình đang chạy sẽ được lưu
trong /proc dưới dạng một hệ thống file thư mục mô phỏng. Ví dụ thư mục con /proc/{pid} chứa
các thông tin về tiến trình có ID là pid (pid ~ process ID). Ngoài ra đây cũng là nơi lưu thông tin về
về các tài nguyên đang sử dụng của hệ thống như: /proc/version, /proc/uptime
/var – File về biến của chương trình: Thông tin về các biến của hệ thống được lưu trong
thư mục này. Như thông tin về log file: /var/log, các gói và cơ sở dữ liệu /var/lib
/usr – Chương trình của người dùng: Chứa các thư viện, file thực thi, tài liệu hướng dẫn
và mã nguồn cho chương trình chạy ở level 2 của hệ thống. Trong đó
/usr/bin chứa các file thực thi của người dùng như: at, awk, cc, less Nếu bạn không tìm
thấy chúng trong /bin hãy tìm trong /usr/bin
/usr/sbin chứa các file thực thi của hệ thống dưới quyền của admin như: atd, cron, sshd
Nếu bạn không tìm thấy chúng trong /sbin thì hãy tìm trong thư mục này.
/usr/lib chứa các thư viện cho các chương trình trong /usr/bin và /usr/sbin
/usr/local chứa các chương tình của người dùng được cài từ mã nguồn. Ví dụ như bạn cài
apache từ mã nguồn, nó sẽ được lưu dưới /usr/local/apache2
/home – Thư mục người của dùng: Thư mục này chứa tất cả các file cá nhân của từng
người dùng. Ví dụ: /home/john, /home/marie
/boot – Các file khởi động: Tất cả các file yêu cầu khi khởi động như initrd, vmlinux. grub
được lưu tại đây. Ví dụ vmlixuz-2.6.32-24-generic
/lib – Thư viện hệ thống: Chứa cá thư viện hỗ trợ cho các file thực thi trong /bin và /sbin.
Các thư viện này thường có tên bắt đầu bằng ld* hoặc lib*.so.*. Ví dụ như ld-2.11.1.so hay
libncurses.so.5.7
/opt – Các ứng dụng phụ tùy chọn: Tên thư mục này nghĩa là optional (tùy chọn), nó chứa
các ứng dụng thêm vào từ các nhà cung cấp độc lập khác. Các ứng dụng này có thể được cài ở /opt
hoặc một thư mục con của /opt
/mnt – Thư mục để mount: Đây là thư mục tạm để mount các file hệ thống. Ví dụ như #
mount /dev/sda2 /mnt
/media – Các thiết bị gắn có thể gỡ bỏ: Thư mục tạm này chứa các thiết bị như CdRom
/media/cdrom. floppy /media/floopy hay các phân vùng đĩa cứng /media/Data (hiểu như là ổ
D:/Data trong Windows)
/srv – Dữ liệu của các dịch vụ khác: Chứa dữ liệu liên quan đến các dịch vụ máy chủ như
/srv/svs, chứa các dữ liệu liên quan đến CVS.
3.2 Các kỹ năng thao tác với tập tin
Lựa chọn, thay đổi thƣc mục thao tác
Hệ điều hành mã nguồn mở
Trang 36
Cú pháp: cd {đường dẫn đến thư mục}
cd /home đến thư mục '/ home'
cd.. quay ngược lại 1 bậc
cd../.. quay ngược lại 2 bậc
cd đến thư mục home
cd ~user1 đến thư mục home
cd - trở lại thư mục trước đây
Hiển thị thƣc mục tạm thời
Cú pháp: pwd
Lệnh liệt kê
Cú pháp: ls [thư mục cần liệt kê tài nguyên, nếu để chống thì là thư mục hiện tại]
ls hiển thị tập tin và thư mục
ls -F hiển thị tập tin trong thư mục
ls -l hiển thị chi tiết tập tin và thư mục
ls -a hiển thị tập tin ẩn
ls *[0-9]* hiển thị tập tin và thư mục có chứa số
Hiển thị tập tin và thƣ mục theo cấu trúc cây
Cú pháp: tree hoặc lstree
tree hiển thị tập tin và thư mục theo cấu trúc cây
lstree hiển thị tập tin và thư mục theo cấu trúc cây
Tạo thƣ mục
Cú pháp: mkdir {tên thư mục tạo ra}
mkdir dir1 tạo 1 thư mục có tên 'dir1'
mkdir dir1 dir2 tạo cùng lúc 2 thư mục
mkdir -p /tmp/dir1/dir2 tạo ra 1 cây thư mục
xóa tài nguyên
Cú pháp: rm –option {tên tài nguyên cần xóa}
rm -f file1 xóa tập tin có tên 'file1'
rmdir dir1 xóa thư mục có tên 'dir1'
rm -rf dir1 xóa thư mục 'dir1' và tất cả các tập tin trong thư mục đó
rm -rf dir1 dir2 xóa cùng lúc 2 thư thư mục và tất cả các tập tin trong hai thư mục đó
Di chuyển tài nguyên, đổi tên
Cú pháp: mv {nguồn} {đích}
mv dir1 new_dir đổi tên/ di chuyển 1 tập tin hoặc thư mục
Hệ điều hành mã nguồn mở
Trang 37
Copy tài nguyên
Cú pháp: cp {nguồn} {đích}
cp file1 file2 sao chép 1 tập tin
cp dir/*. sao chép tất cả các tập tin trong thư mục
cp -a /tmp/dir1. sao chép thư mục đang làm việc
cp -a dir1 dir2 sao chép một thư mục
Tạo link liên kết
Cú pháp: ln –option {nguồn} {đích}
ln -s file1 lnk1 tạo một đường dẫn đến 1 tập tin hoặc thư mục
ln file1 lnk1 tạo 1 đường dẫn vật lý đến 1 tập tin hoặc thư mục
Tạo file dữ liệu và thay đổi thông tin
Cú pháp: touch –option {tên file}
touch -t 0712250000 file1 thay đổi thời gian tạo file hoặc thư mục- (YYMMDDhhmm)
3.3 Các kỹ năng tìm kiếm
Câu lệnh Find
Câu lệnh Find cho phép người dùng tìm file nếu biết gần đúng tên file. Đây là dạng câu
lệnh đơn giản nhất tìm kiếm file trong thư mục hiện tại mà khớp với tiêu chí nhất định. Người dùng
có thể tìm kiếm file theo tên, chủ sở hữu, nhóm, loại file, theo quyền, ngày tháng năm và theo
nhiều tiêu chí khác.
Gõ câu lệnh sau để liệt kê tất cả các file tìm được trong thư mục hiện tại: find.
Dấu chấm chỉ thị thư mục hiện tại.
Hình 5.6: Kết quả tìm kiếm
Để tìm những file khớp với một mẫu đặc biệt, sử dụng tham số “-name”. Người dùng có
thể sử dụng siêu ký tự (như “*”) nhưng phải đặt ký hiệu thoát “\” trước mỗi siêu ký tự.
Ví dụ như, nếu ta muốn tìm tất cả các file mà bắt đầu với “pro” trong thư mục Documents,
sử dụng câu lệnh cd Documents/ để chuyển tới thư mục Documents, sau đó gõ câu lệnh sau:
find. –name pro\*
Hệ điều hành mã nguồn mở
Trang 38
Tất cả những file bắt đầu với “pro” trong thư mục sẽ được liệt kê ra. Nếu không có file nào
phù hợp tiêu chí, sẽ không có kết quả nào hiển thị.
Câu lệnh find có nhiều tùy chọn để lọc tìm kiếm. Để tìm hiểu rõ hơn, gõ “man find” trong
cửa sổ Terminal và nhấn Enter.
Sử dụng câu lệnh locate
Câu lệnh locate nhanh hơn câu lệnh find vì nó sử dụng cơ sở dữ liệu được xây dựng trước
đó trong khi lệnh find lại tìm kiếm trong hệ thống theo thời gian thực, từ tất cả các thư mục và file.
Câu lệnh locate trả về một danh sách tất cả tên đường dẫn chứa nhóm các ký tự đặc biệt.
Cơ sở dữ liệu được cập nhật định kỳ từ cron, nhưng người dùng cũng có thể tự cập nhật bất
cứ lúc nào vì vậy có thể nhận được kết quả ngay. Để làm điều này, gõ câu lệnh sau:
sudo updatedb
Nhập mật khẩu.
Dạng gốc của câu lệnh locate tìm ra tất cả các file trong hệ thống file, bắt đầu từ thư mục
gốc mà chứa toàn bộ hay bất cứ phần nào của tiêu chí tìm kiếm.
locate mydata
Ví dụ như, câu lệnh sau đã tìm thấy 2 file chứa “mydata” và 1 file chứa “data”.
Lệnh mlocate
Lệnh mlocate là một biến thể của locate. Kết quả tìm kiếm chỉ gồm những file mà người
dùng hiện tại đã truy cập tới. Khi bạn cập nhật cơ sở dữ liệu mlocate, nó duy trì thông tin tem thời
gian trong cơ sở dữ liệu. Việc này cho phép mlocate biết được nếu các nội dung trong một thư mục
bị thay đổi mà không cần đọc lại nội dung và cập nhật vào cơ sở dữ liệu nhanh hơn mà ít phụ thuộc
vào ổ cứng.
Khi cài đặt mlocate, file nhị phân /usr/bin/locate thay đổi và trỏ tới mlocate. Để cài đặt
mlocate khi câu lệnh không có trong bản phân phối Linux, gõ câu lệnh sau:
sudo apt-get install mlocate
Lệnh mlocate không sử dụng cùng file cơ sở dữ liệu với câu lệnh locate chuẩn. Do vậy,
người dùng có thể tạo cơ sở dữ liệu một cách thủ công bằng cách gõ câu lệnh sau:
sudo /etc/cron.daily/mlocate
3.4 Quản trị ngƣời dùng và nhóm
3.4.1 Giới thiệu về tài khoản trong linux
Cũng giống như Windows Linux cũng có các loại tài khoản khác nhau, xét về mặt tổng thể
thì có 2 loại chính tài khoản người dùng và tài khoản quản trị hay còn gọi là root.
Root là tài khoản quản trị có ảnh hưởng rất lớn đối với an toàn của hệ thống, tài khoản root
có các các quyền như: tạo tài khoản người dùng, cài đặt phần mềm, thêm, xóa, sửa đổi các tài
khoản Khi đăng nhập với tài khoản root thì tại giao diện terminal thường có kí hiệu:”#”.
Các thông tin, dữ liệu về tài khoản người dùng khác thường được lưu trữ trong thư mục
home.
3.4.2 Thêm, xóa, sửa tài khoản người dùng
Tạo một tài khoản ngƣời dùng mới
Hệ điều hành mã nguồn mở
Trang 39
Để tạo một tài khoản người dùng mới vào hệ thống, chúng ta sử dụng câu lệnh useradd.
Cú pháp:
useradd [options]
Lệnh useradd sẽ tự động tạo các file của người dùng trên hệ thống, tạo thư mục home của
người dùng và một số thông tin cấu hình khác phụ thuộc vào các option sử dụng. Khi một tài khoản
người dùng mới được tạo ra, một tài khoản nhóm người dùng cùng tên với người dùng cũng sẽ tự
động được tạo ra trên hệ thống.
Một số option với lệnh useradd:
d /home_directory: Tạo thư mục home cho người dùng. Chúng ta thường tạo thư mục
home trùng với tên của người dùng và thường đặt là thư mục /home/.
e date: Xác định ngày mà tài khoản người dùng sẽ bị vô hiệu hóa trên hệ thống. Định dạng
của ngày được đặt như sau YYYY-MM-DD (Năm-Tháng-Ngày).
g group: Xác định tài khoản người dùng thuộc nhóm người dùng nào trên hệ thống.
G groups: Xác định tài khoản người dùng thuộc những nhóm người dùng nào trên hệ thống
(một người dùng có thể thuộc nhiều nhóm khác nhau).
s shell: Xác định shell mặc định của người dùng khi đặng nhập vào hệ thống.
u uid: Xác định số user id của người dùng.
Ví dụ: Tạo tài khoản người dùng có tên ipmac, thư mục home là /home/ipmac, thuộc nhóm
người dùng ipmac và có số user id là 722 sử dụng câu lệnh sau:
# useradd ipmac -d /home/ipmac -g ipmac -u 722
Xóa một tài khoản ngƣời dùng
Để xóa một tài khoản người dùng chúng ta sử dụng câu lệnh:
userdel [options]
Lệnh này sẽ xóa tài khoản người dùng trong 2 file /etc/passwd và /etc/shadow. Người dùng
không thể đăng nhập vào hệ thống khi tài khoản của người dùng đã bị xóa. Chúng ta sử dụng thêm
option -r để xóa thư mục home của người dùng và các file có trong thư mục home.
Ví dụ: Để xóa tài khoản người dùng ipmac và thư mục home của người dùng ipmac trên hệ
thống, chúng ta sử dụng câu lệnh sau:
# userdel -r ipmac
Chỉnh sửa một tài khoản ngƣời dùng
Sau khi tạo một tài khoản người dùng, để chỉnh sửa một số thông tin của tài khoản người
dùng chúng ta sử dụng câu lệnh usermod. Câu lệnh usermod cho phép chúng ta chỉnh sửa một tài
khoản người dùng với các tiêu chí sau: thay đổi thư mục home của người dùng, thay đổi thời gian
hết hạn của tài khoản, thay đổi nhóm của người dùng, thay đổi tên đăng nhập, thay đổi login shell
Các option dùng với usermod giống với các option sử dụng với lệnh useradd.
Cú pháp:
usermod [options]
Hệ điều hành mã nguồn mở
Trang 40
3.4.3 Thêm, sửa, xóa một tài khoản nhóm
Tạo một nhóm ngƣời dùng mới
Để tạo một nhóm người dùng mới chúng ta sử dụng câu lệnh groupadd với các option tùy
chọn.
Cú pháp:
# groupadd [options]
Các option:
g gid: Đặt số group id cho nhóm người dùng.
f: Bắt câu lệnh chạy mà không thông báo lỗi nếu đã có một nhóm trên hệ thống trùng với
tên nhóm định tạo.
Và một số option khác.
Ví dụ: Tạo một nhóm có tên ipmac với số group id của nhóm là 721
# groupadd -g 721 ipmac
Xóa một nhóm ngƣời dùng
Để xóa một nhóm chúng ta sử dụng câu lệnh groupdel. Chức năng của lệnh groupdel giống
với lệnh userdel sẽ xóa toàn bộ thông tin của nhóm khỏi hệ thống (thông tin trong file /etc/group).
Trước khi xóa một nhóm khỏi hệ thống chúng ta cần đảm bảo rằng không có người dùng nào đang
yêu cầu truy cập đến nhóm đó.
Cú pháp:
# groupdel
Chỉnh sửa một nhóm ngƣời dùng
Để chỉnh sửa một nhóm chúng ta sử dụng câu lệnh groupmod. Chức năng của lệnh
groupmod giống chức năng của lệnh usermod.
Cú pháp:
# groupmod [options]
Ví dụ: Thay đổi số group id của nhóm có tên ipmac
# groupmod ipmac -g 400
3.5 Phân quyền thao tác với tài nguyên hệ thống
3.5.1 Cách thức quản lý và bảo mật tài nguyên trên Linux
Mã hóa phân vùng ổ cứng
Phiên bản đĩa cài đặt thay thế của Ubuntu cung cấp thêm cho người dùng 1 sự lựa chọn
nữa để mã hóa phân vùng cài đặt Ubuntu, do vậy các bạn chỉ cần tải file ISO về máy, ghi ra đĩa
CD/DVD hoặc tạo USB boot và tiến hành cài đặt Ubuntu sau đó.
Với quy trình cài đặt khá giống với với Ubuntu nguyên bản, bước đầu người sử dụng sẽ
phải chọn ngôn ngữ hiển thị, kiểu bàn phím, hệ thống network, và bước quan trọng nhất đương
nhiên là phân vùng cài đặt với lựa chọn Guided – use entire disk and set up encrypted LVM để áp
dụng trên toàn bộ ổ cứng:
Khởi tạo khóa mật khẩu sử dụng để mã hóa ổ cứng khi đăng nhập vào Ubuntu:
Hệ điều hành mã nguồn mở
Trang 41
Hình 5.7: Mã hóa phân vùng ổ cứng
Lựa chọn có muốn mã hóa thư mục gốc – home hay không, chỉ trong trường hợp chúng ta
thay thế thư mục này bên ngoài phân vùng cài đặt Ubuntu:
Hình 5.8: Mã hóa phân vùng ổ cứng
Như vậy là chúng ta đã hoàn tất các bước cơ bản, các bạn chỉ cần thực hiện các bước tiếp
theo để hoàn tất quá trình này.
Mã hóa thƣ mục
eCryptfs là 1 hệ thống mã hóa file dựa trên chuẩn PGP được tạo ra bởi Philip Zimmerman
vào năm 1991. Điểm độc đáo của eCryptfs so với các công cụ mã hóa khác, như TrueCrypt, là
không cần xác định trước dung lượng phân vùng hoặc ổ cứng chúng ta cần áp dụng. Để cài đặt
eCryptfs, bạn hãy sử dụng lệnh sau:
sudo aptitude install ecryptfs-utils
eCryptfs sẽ tạo ra 1 thư mục private trên ổ cứng nơi chương trình h
Các file đính kèm theo tài liệu này:
- 01200027_0456_1983566.pdf