Tự học và sử dụng Linux - Phan Vĩnh Thịnh
Hướng dẫn sử dụng cho người dùng mới và rất mới về Linux. Tác giả Phan Vĩnh Thịnh cập nhật năm 2007.Hệ điều hành đó là một bộ các chương trình hỗ trợ việc điều khiển phần cứng của máy tính, tổ chức và làm việc với các tập tin, và đồng thời thực thi sự giao tiếp với người dùng,...
T h c s d ng Linux
Phan Vĩnh Th nh
Phiên b n: 0.9.6
Ngày 14 tháng 2 năm 2007
Dành cho ngư i dùng m i và r t m i...
M cl c
L im đ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 HĐH Linux: l ch s và các b n phân ph i 3
1.1 Th nào là HĐH nói chung và Linux nói riêng . . . . . . . . . . . . 3
1.1.1 Các h đi u hành d ng UNIX . . . . . . . . . . . . . . . . . . 3
1.1.2 M t chút v l ch s . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3 Đ c đi m chính c a HĐH Linux . . . . . . . . . . . . . . . . 7
1.2 B n phân ph i Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Yêu c u đ i v i máy tính . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 L y Linux đâu? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2 Cài đ t h đi u hành Linux 14
2.1 Chu n b cài đ t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Phòng xa và nh ng l i khuyên . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Phân vùng trên đĩa và quá trình kh i đ ng . . . . . . . . . . . . . . 17
2.3.1 Th nào là c u trúc “hình h c c a đĩa” . . . . . . . . . . . . . 17
2.3.2 Phân vùng và b ng phân vùng c a đĩa . . . . . . . . . . . . . 18
2.3.3 Quá trình kh i đ ng các HĐH c a công ty Microsoft . . . . . 20
2.3.4 V n đ v i các đĩa l n . . . . . . . . . . . . . . . . . . . . . . . 22
2.4 L a ch n trình kh i đ ng . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.1 Trình kh i đ ng GRUB . . . . . . . . . . . . . . . . . . . . . . 23
2.4.2 Trình kh i đ ng LILO . . . . . . . . . . . . . . . . . . . . . . 24
2.4.3 Các trình kh i đ ng khác . . . . . . . . . . . . . . . . . . . . . 26
2.4.4 Các phương án kh i đ ng . . . . . . . . . . . . . . . . . . . . 27
2.5 Chu n b các phân vùng trên đĩa . . . . . . . . . . . . . . . . . . . . 27
2.5.1 L i khuyên khi t o phân vùng . . . . . . . . . . . . . . . . . . 27
2.5.2 Chương trình đ phân chia đĩa . . . . . . . . . . . . . . . . 30
2.6 Windows NT và Linux: kh i đ ng qua NT OS Loader . . . . . . . . 31
2.7 S d ng trình kh i đ ng GRUB . . . . . . . . . . . . . . . . . . . . . 34
2.7.1 Cài đ t GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.7.2 C u hình GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.8 S d ng trình kh i đ ng LILO . . . . . . . . . . . . . . . . . . . . . 36
2.8.1 Cài đ t và c u hình LILO . . . . . . . . . . . . . . . . . . . . 36
2.8.2 Cài đ t các h đi u hành khác sau Linux . . . . . . . . . . . 39
2.8.3 Chuy n thư m c /boot lên phân vùng DOS . . . . . . . . . . 39
2.9 Kh i đ ng Linux t MS-DOS b ng loadlin.exe . . . . . . . . . . . . 40
iv M CL C
3 Kh i đ ng Linux l n đ u 43
3.1 Kh i đ ng HĐH Linux . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Đăng nh p vào h th ng . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3 Console, terminal o và shell . . . . . . . . . . . . . . . . . . . . . . 46
3.4 So n th o dòng l nh. L ch s l nh . . . . . . . . . . . . . . . . . . . 49
3.5 Ng ng làm vi c v i Linux . . . . . . . . . . . . . . . . . . . . . . . . 51
3.6 Tr giúp khi dùng Linux . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.6.1 Các ngu n thông tin tr giúp . . . . . . . . . . . . . . . . . . 53
3.6.2 Các trang tr giúp man . . . . . . . . . . . . . . . . . . . . . . 54
3.6.3 Câu l nh info . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.6.4 Câu l nh help . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.6.5 Tài li u b n phân ph i và ng d ng . . . . . . . . . . . . . . 56
3.6.6 Câu l nh xman . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.6.7 Câu l nh helptool . . . . . . . . . . . . . . . . . . . . . . . . 57
3.6.8 Sách và Internet . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4 Làm quen v i h th ng t p tin ext3fs 60
4.1 T p tin và tên c a chúng . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.2 Thư m c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3 Công d ng c a các thư m c chính . . . . . . . . . . . . . . . . . . . . 65
4.4 D ng t p tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.1 Các t p tin thi t b . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.2 Các ng có tên (pipes) . . . . . . . . . . . . . . . . . . . . . . . 72
4.4.3 Các socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.4.4 Liên k t m m . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.5 Quy n truy c p đ n t p tin và thư m c . . . . . . . . . . . . . . . . . 73
4.6 Các câu l nh cơ b n đ làm vi c v i t p tin và thư m c . . . . . . . 79
4.6.1 Câu l nh chown và chgrp . . . . . . . . . . . . . . . . . . . . 80
4.6.2 Câu l nh mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.6.3 Câu l nh cat . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.6.4 Câu l nh cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.6.5 Câu l nh mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.6.6 Câu l nh rm và rmdir . . . . . . . . . . . . . . . . . . . . . . 82
4.6.7 Câu l nh more và less . . . . . . . . . . . . . . . . . . . . . 83
4.6.8 Câu l nh tìm ki m find và m u tên t p tin . . . . . . . . . . 83
4.6.9 Câu l nh split . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.6.10 So sánh các t p tin và l nh patch . . . . . . . . . . . . . . . 87
4.7 Các câu l nh lưu tr và nén t p tin . . . . . . . . . . . . . . . . . . . 88
4.7.1 Chương trình tar . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.7.2 Chương trình gzip . . . . . . . . . . . . . . . . . . . . . . . . 91
4.7.3 Chương trình bzip2 . . . . . . . . . . . . . . . . . . . . . . . 92
4.7.4 S d ng k t h p tar v i gzip và bzip2 . . . . . . . . . . . . 93
4.8 T o và g n các h th ng t p tin . . . . . . . . . . . . . . . . . . . . . 95
M CL C v
5 Bash 101
5.1 H v là gì? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.2 Các ký t đ c bi t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.3 Th c thi các câu l nh . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.3.1 Thao tác ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.3.2 Thao tác & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.3.3 Thao tác && và || . . . . . . . . . . . . . . . . . . . . . . . . 104
5.4 Đ u vào/đ u ra tiêu chu n . . . . . . . . . . . . . . . . . . . . . . . . 104
5.4.1 Dòng d li u vào – ra . . . . . . . . . . . . . . . . . . . . . . . 104
5.4.2 L nh echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.4.3 L nh cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.5 Chuy n hư ng đ u vào/đ u ra, đư ng ng và b l c . . . . . . . . . . 106
5.5.1 S d ng >, < và >> . . . . . . . . . . . . . . . . . . . . . . . . 106
5.5.2 S d ng | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.5.3 B l c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.6 Tham bi n và các bi n s . Môi trư ng c a h v . . . . . . . . . . . . 109
5.6.1 Các d ng tham bi n khác nhau . . . . . . . . . . . . . . . . . 110
5.6.2 D u nh c c a h v . . . . . . . . . . . . . . . . . . . . . . . . 112
5.6.3 Bi n môi trư ng PATH . . . . . . . . . . . . . . . . . . . . . . . 113
5.6.4 Bi n môi trư ng IFS . . . . . . . . . . . . . . . . . . . . . . . 113
5.6.5 Thư m c hi n th i và thư m c cá nhân . . . . . . . . . . . . 114
5.6.6 Câu l nh export . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.7 Khai tri n bi u th c . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.7.1 Khai tri n d u ngo c . . . . . . . . . . . . . . . . . . . . . . . 115
5.7.2 Thay th d u ngã (Tilde Expansion) . . . . . . . . . . . . . . 115
5.7.3 Phép th các tham bi n và bi n s . . . . . . . . . . . . . . . 116
5.7.4 Phép th các câu l nh . . . . . . . . . . . . . . . . . . . . . . . 116
5.7.5 Phép th s h c (Arithmetic Expansion) . . . . . . . . . . . . 116
5.7.6 Phân chia t (word splitting) . . . . . . . . . . . . . . . . . . 117
5.7.7 Khai tri n các m u tên thư m c và t p tin . . . . . . . . . . 117
5.7.8 Xóa các ký t đ c bi t . . . . . . . . . . . . . . . . . . . . . . . 118
5.8 Shell — m t ngôn ng l p trình . . . . . . . . . . . . . . . . . . . . . 118
5.8.1 Toán t if và test (ho c [ ]) . . . . . . . . . . . . . . . . . . 118
5.8.2 Toán t test và đi u ki n c a bi u th c . . . . . . . . . . . . 119
5.8.3 Toán t case . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.8.4 Toán t select . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.8.5 Toán t for . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.8.6 Toán t while và until . . . . . . . . . . . . . . . . . . . . . 124
5.8.7 Các hàm s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.8.8 Tham s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.8.9 Bi n n i b (local) . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.9 Script c a h v và l nh source . . . . . . . . . . . . . . . . . . . . . 126
5.10 Câu l nh sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
vi M CL C
6 S d ng Midnight Commander 128
6.1 Cài đ t chương trình Midnight Commander . . . . . . . . . . . . . . 128
6.2 V ngoài c a màn hình Midnight Commander . . . . . . . . . . . . 129
6.3 Tr giúp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.4 S d ng chu t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.5 Đi u khi n các b ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
6.5.1 D ng danh sách t p tin . . . . . . . . . . . . . . . . . . . . . . 133
6.5.2 Nh ng ch đ hi n th khác . . . . . . . . . . . . . . . . . . . 136
6.5.3 Các t h p phím đi u khi n b ng . . . . . . . . . . . . . . . . 137
6.6 Các phím ch c năng và th c đơn T p tin . . . . . . . . . . . . . . . . 139
6.7 M u t p tin khi sao chép ho c đ i tên . . . . . . . . . . . . . . . . . 141
6.8 Thông báo khi sao chép và di chuy n t p tin . . . . . . . . . . . . . . 143
6.9 Dòng l nh c a h v . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.10 Trình đơn Câu l nh . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.11 C u hình Midnight Commander . . . . . . . . . . . . . . . . . . . . . 153
6.12 K t n i t i máy xa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
6.12.1 K t n i FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
6.12.2 K t n i Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
7 Giao di n đ ho 162
7.1 X.Org . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
7.2 M t chút v h th ng hình nh c a máy tính . . . . . . . . . . . . . 167
7.3 C u hình chương trình ch X . . . . . . . . . . . . . . . . . . . . . . 169
7.3.1 Thu th p thông tin c n thi t . . . . . . . . . . . . . . . . . . . 170
7.3.2 C u trúc c a t p tin c u hình X . . . . . . . . . . . . . . . . . 171
7.3.3 Th c u hình /etc/X11/xorg.conf . . . . . . . . . . . . . . . . . 178
7.4 Kh i đ ng h th ng X Window . . . . . . . . . . . . . . . . . . . . . . 182
7.4.1 L a ch n trình qu n lý c a s . . . . . . . . . . . . . . . . . . 185
7.4.2 Môi trư ng làm vi c KDE và GNOME . . . . . . . . . . . . . 187
7.4.3 Môi trư ng làm vi c Xfce . . . . . . . . . . . . . . . . . . . . . 188
7.4.4 S d ng trình qu n lý màn hình . . . . . . . . . . . . . . . . 188
8 Làm vi c trong môi trư ng KDE 190
8.1 B t đ u làm vi c v i KDE . . . . . . . . . . . . . . . . . . . . . . . . 190
8.1.1 Đăng nh p vào KDE . . . . . . . . . . . . . . . . . . . . . . . 190
8.1.2 V ngoài c a KDE . . . . . . . . . . . . . . . . . . . . . . . . . 191
8.1.3 Trình đơn KMenu . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.1.4 Trung tâm đi u khi n KDE . . . . . . . . . . . . . . . . . . . 195
8.1.5 Thay đ i v ngoài . . . . . . . . . . . . . . . . . . . . . . . . . 198
8.1.6 Đi u khi n phiên làm vi c . . . . . . . . . . . . . . . . . . . . 201
Danh sách hình v
3.1 Màn hình kh i đ ng c a GRUB . . . . . . . . . . . . . . . . . . . . . 43
6.1 Midnight Commander ti ng Vi t . . . . . . . . . . . . . . . . . . . . 129
6.2 Màn hình Midnight Commander . . . . . . . . . . . . . . . . . . . . 130
6.3 H p tho i ch n đ nh d ng hi n th . . . . . . . . . . . . . . . . . . . 133
6.4 H p tho i s p x p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.5 Ch đ thông tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.6 Ch đ cây thư m c . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
6.7 Ch đ xem nhanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.8 H p tho i đ i tên t p tin . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.9 C as h il i. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.10 C a s yêu c u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.11 Dòng nh p vào đ a ch IP c a máy ch FTP . . . . . . . . . . . . . . 147
6.12 B t đ u tìm ki m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
6.13 Đang tìm ki m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
6.14 Tìm ki m t t c các liên k t m m . . . . . . . . . . . . . . . . . . . . 151
6.15 H p tho i danh sách thư m c thư ng dùng . . . . . . . . . . . . . . 152
6.16 Đi u khi n công vi c n n sau . . . . . . . . . . . . . . . . . . . . . . 153
6.17 C u hình Midnight Commander . . . . . . . . . . . . . . . . . . . . . 154
6.18 Thay đ i v ngoài c a Midnight Commander . . . . . . . . . . . . . 156
6.19 Thay đ i bit hi n th c a Midnight Commander . . . . . . . . . . . . 157
6.20 Thi t l p các h p tho i h i l i ngư i dùng . . . . . . . . . . . . . . . 158
6.21 Th và c u hình các phím . . . . . . . . . . . . . . . . . . . . . . . . 158
6.22 Thi t l p h th ng t p tin o . . . . . . . . . . . . . . . . . . . . . . . 159
7.1 H th ng đ ho X Window . . . . . . . . . . . . . . . . . . . . . . . . 164
7.2 C u hình X.org qua xorgcfg . . . . . . . . . . . . . . . . . . . . . . 172
7.3 Chương trình xvidtune . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.4 Chương trình xvidtune “không ch u” ch nh hình nh . . . . . . . . 181
7.5 Môi trư ng làm vi c Xfce . . . . . . . . . . . . . . . . . . . . . . . . . 189
8.1 Màn hình đăng nh p KDM . . . . . . . . . . . . . . . . . . . . . . . . 191
8.2 V ngoài c a KDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
8.3 H p tho i ch y chương trình . . . . . . . . . . . . . . . . . . . . . . . 193
8.4 Tr giúp có ích tooltips . . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.5 Trình đơn chính c a KDE . . . . . . . . . . . . . . . . . . . . . . . . 195
8.6 Tìm ki m trong trình đơn chính c a KDE . . . . . . . . . . . . . . . 196
8.7 Trình Thi t l p cá nhân c a KDE . . . . . . . . . . . . . . . . . . . . 197
viii DANH SÁCH HÌNH V
8.8 Cài đ t phông ch m i . . . . . . . . . . . . . . . . . . . . . . . . . . 198
8.9 Ch n phông ch dùng cho text, trình đơn, . . . . . . . . . . . . . . . . 198
8.10 Ch n phông ch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
8.11 C nh báo khi có thay đ i chưa áp d ng . . . . . . . . . . . . . . . . . 199
8.12 Trình đơn c a thanh panel . . . . . . . . . . . . . . . . . . . . . . . . 200
8.13 Trình đơn b i c nh c a nút . . . . . . . . . . . . . . . . . . . . . . . 200
8.14 C u hình các thanh panel . . . . . . . . . . . . . . . . . . . . . . . . 201
8.15 Thay đ i màn hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
8.16 So n th o trình đơn chính . . . . . . . . . . . . . . . . . . . . . . . . 202
Danh sách b ng
1.1 Yêu c u đ i v i ph n c ng . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1 C u trúc c a sector kh i đ ng chính . . . . . . . . . . . . . . . . . . 20
2.2 Nhu c u s d ng không gian đĩa c a HĐH . . . . . . . . . . . . . . 28
3.1 Nh ng câu l nh đơn gi n c a Linux . . . . . . . . . . . . . . . . . . 46
3.2 Nh ng phím so n th o dòng l nh . . . . . . . . . . . . . . . . . . . . 50
3.3 T h p phím đi u khi n l ch s l nh . . . . . . . . . . . . . . . . . . 52
3.4 Các ph n chính c a tr giúp man . . . . . . . . . . . . . . . . . . . . 54
3.5 Phím s d ng đ xem trang man . . . . . . . . . . . . . . . . . . . . . 55
4.1 C u trúc thư m c c a Linux . . . . . . . . . . . . . . . . . . . . . . . 66
4.2 Nh ng t p tin thi t b chính . . . . . . . . . . . . . . . . . . . . . . . 71
4.3 Nh ng tùy ch n chính c a l nh cp . . . . . . . . . . . . . . . . . . . 81
4.4 Tiêu chí tìm ki m c a câu l nh find. . . . . . . . . . . . . . . . . . . 85
4.5 Nh ng tùy ch n chính c a tar . . . . . . . . . . . . . . . . . . . . . 89
4.6 Nh ng tùy ch n chính c a chương trình gzip . . . . . . . . . . . . 92
4.7 Nh ng tùy ch n chính c a chương trình bzip2 . . . . . . . . . . . . 94
4.8 Nh ng tùy ch n chính c a câu l nh mount . . . . . . . . . . . . . . 99
5.1 Các câu l nh b l c . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.2 Thay th các tham bi n đ c bi t . . . . . . . . . . . . . . . . . . . . . 111
5.3 Ký t xác đ nh d ng d u nh c . . . . . . . . . . . . . . . . . . . . . . 112
5.4 Các ký t t o m u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.1 Các t h p phím di chuy n dùng chung . . . . . . . . . . . . . . . . . 131
6.2 Di chuy n trong trình xem t p tin . . . . . . . . . . . . . . . . . . . . 131
6.3 Di chuy n khi xem tr giúp . . . . . . . . . . . . . . . . . . . . . . . 132
6.4 Các phím ch c năng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.5 Các l nh đi u khi n dòng nh p vào . . . . . . . . . . . . . . . . . . . 148
L im đ u
Trong tác ph m n i ti ng th gi i c a nhà văn Nga Lev Tolstoi “Chi n tranh và
hoà bình” có đưa ra m t ví d đ minh ho cho suy nghĩ c a tác gi v vai trò c a
nh ng ngư i có ti ng (c th là Napoleon và Alecxandr đ nh t) và qu n chúng
trong l ch s nói chung cũng như trong chi n tranh châu Âu nh ng năm đ u
th k XIX. Nhân v t chính trong ví d minh ho này là con ong. Đ i v i c u bé
v a b ong c n thì m c đích c a con ong ch c n ngư i. Đ i v i m t nhà thơ
thì m c đích c a con ong là thu vào mình hương v c a nh ng bông hoa. Đ i v i
ngư i nuôi ong thì m c đích ong là thu th p m t ong. Ngư i nuôi ong có cái nhìn
sâu hơn thì cho r ng ong thu th p b i ph n hoa đ nuôi ong con và t o ong chúa,
như v y m c đích c a nó là duy trì nòi gi ng. Nhà sinh h c khi quan sát th y
ong th ph n cho hoa thì quy t đ nh đây chính là m c đích c a loài ong. Ngư i
khác quan sát quá trình di cư c a th c v t thì cho r ng ong tham gia vào quá
trình này và là m c đích c a nó. T t nhiên m c đích cu i cùng c a ong không
ph i là nh ng cái trên n m riêng bi t mà là t t c chúng c ng l i, và còn c ng
thêm nh ng gì mà t m th i b óc quan sát h n ch c a con ngư i còn chưa tìm
ra.
Microsoft nhìn th y Linux kh năng c nh tranh l n và nhi u khi coi Linux
là k thù c a mình. Nhi u t ch c chính ph cũng như phi chính ph nhìn th y
Linux m t h đi u hành nhi u h a h n và h tr cho Linux. Nh ng nư c còn
nghèo tìm th y Linux m t cách gi i quy t cho v n đ kinh t . M t s công ty
đã th y đư c Linux m t ngu n l i l n và phát tri n công vi c kinh doanh c a
mình t h đi u hành này. Đ i v i Linus Torvalds, Linux là ni m đam mê và
“Just for fun”. Các nhà l p trình nhân (kernel) tìm th y Linux s quy n rũ và
công vi c phát tri n c a h . Ngư i dùng thì th y Linux m t h th ng m nh,
thu n ti n, có th đi u ch nh theo ý mu n c a mình v.v. . .
Linux là h đi u hành phát tri n m nh. Nh ng năm đ u th p k th chín
c a th k XX Linux m i ch là đ a con tinh th n chưa bi t nói c a Torvalds.
Ch trong vài năm g n đây đã có nhi u b n phân ph i Linux chi m lĩnh đư c môi
trư ng máy ch cũng như máy đ bàn c a ngư i dùng. Trên th trư ng máy ch
hi n th i ch có m t vài tên tu i đáng chú ý. Linux cho máy đ bàn có ph n đa
d ng hơn. M i b n phân ph i thích h p cho m t nhóm ngư i dùng c th nào đó
t ngư i dùng m i đ n ngư i dùng “cao c p” (advanced) hay nói đúng hơn là m i
ngư i dùng có quy n l a ch n cho mình m t b n phân ph i thích h p và chuy n
sang s d ng b n khác khi nào mong mu n. L ch s hình thành và phát tri n
Linux chúng ta s th y ngay chương đ u tiên c a cu n sách này.
Linux ngay t ban đ u đã đư c xây d ng d a trên c ng đ ng (ti ng Anh
“community”), d a trên s c ng tác. C ng đ ng Linux không ch cung c p cho
ngư i dùng máy tính m t h đi u hành thân thi n, d s d ng mà còn luôn luôn
s n sàng giúp đ ngư i dùng m i, luôn mong mu n có thêm máy tính ch y dư i
Linux. V i k t n i m ng Internet, b n s luôn tìm th y câu tr l i cho v n đ c a
mình t s lư ng l n các di n đàn, nhóm thư, nhóm tin t c, các trang web cung
c p tin t c, bài báo, sách v Linux. . . Tuy nhiên n u b n m i b t đ u h c Linux
thì hãy tìm cho mình m t cu n sách gi i thi u ng n g n v h đi u hành này.
M t cu n sách tham kh o c m tay là không th thi u trong th i gian đ u tìm
hi u Linux. Hãy xem xét giá và n i dung cu n sách trư c khi mua. N u không
có kh năng tìm đư c sách thích h p ho c b n thích cu n sách “T h c s d ng
Linux” này thì có th in nó ra đ ti n đ c.
Tôi b t đ u h c Linux khi có trong tay 3 đĩa CD RedHat 7.0 kho ng 4 năm
trư c đây. Và bây gi Linux (c th là OpenSUSE Linux) là h th ng duy nh t
làm vi c trên máy tính c a tôi. Không ph i là tôi không mu n s d ng và ghét
b h đi u hành Windows mà đơn gi n là tôi đã quen làm vi c trong môi trư ng
KDE và Xfce, đôi khi trong console (dòng l nh không có đ ho ). Và hơn n a
m i công vi c c n đ n máy tính c a tôi có th gi i quy t nhanh g n b ng nh ng
chương trình đi kèm v i Linux. Nghe nh c b ng Amarok, qu n lý hình k thu t
s và l y chúng ra t máy hình b ng digiKam, so n th o tài li u, c th là lu n
văn t t nghi p và cu n sách này, trong chương trình Kile và biên d ch mã L TEX
A
qua nh ng chương trình có trong gói teTeX, nh ng tài li u khác có th so n th o
trong Openoffice.org, v i ngư i dùng không chuyên thì kh năng ch nh s a nh
c a The GIMP còn trên c đ , kh năng v đ ho vector c a Inkscape còn đ cho
c nh ng nhà thi t k chuyên. Tôi không ph i là m t nhà qu n lý m ng hay l p
trình chuyên nghi p và nói chung không ph i ngư i h c theo chuyên ngành công
ngh thông tin. Ngành chính c a tôi là Hoá h c, do đó xin đ ng mong đ i nh ng
ki n th c cao siêu trong sách này. Như trang th hai c a sách có ghi “Dành cho
ngư i dùng m i và r t m i. . . ”.
Như v y, cu n sách “T h c s d ng Linux” đư c t o ra v i hy v ng s giúp
ngư i dùng m i làm quen v i h đi u hành tuy t v i có tên Linux và hình tư ng
trưng là chú chim cánh c t (penguin) xinh đ p. Nh ng thông tin b n đ c tìm th y
trong cu n sách này có th áp d ng cho h u h t h t các b n phân ph i l n, tuy
nhiên m t s ph n đ c bi t ví d ph n nói v cài đ t chương trình t các gói rpm
ch áp d ng t t cho các b n phân ph i “dòng RedHat”, đó là Fedora, Mandriva,
OpenSUSE, v.v. . . Thông thư ng ngư i dùng m i b t đ u gia nh p vào th gi i
Linux b ng nh ng b n phân ph i này. Happy Using Linux!
Công c đ t o ra cu n sách b n đang đ c là h th ng s p ch L TEX. B n có
A
th tìm b n phân ph i teTeX ho c m t b n phân ph i khác c a h th ng này
trên h u h t các b đĩa cài đ t h đi u hành Linux.
Sách này đư c phân ph i mi n phí theo b n quy n Creative Commons Public
License 2.5 (http://creativecommons.org/licenses/by/2.5/). Cũng như
nh ng s n ph m khác c a c ng đ ng OSS, cu n sách này đư c t o ra, s a đ i,
thêm và b t trong th i gian r nh r i c a tôi, do đó đôi khi nó s đư c c p nh t
thư ng xuyên, và có khi không đư c c p nh t c năm. M i đ ngh s a đ i, thông
báo l i chính t , l i ki n th c cũng như đ ngh giúp đ (luôn luôn hoan nghêng)
xin g i cho Phan Vĩnh Th nh theo đ a ch [email protected].
Xin c m ơn Kostromin A.V. (http://linux-ve.chat.ru) đã vi t ra m t
cu n sách s d ng Linux hay làm tài li u tham kh o chính cho cu n sách này,
bác Nguy n Đ i Quý ([email protected]) và anh Nguy n Đ ng Hoàng Tuân
([email protected]) đã giúp đ tôi trong khi so n cu n sách này.
Released under Creative Commons Public License 2.5
(http://creativecommons.org/licenses/by/2.5/)
Chương 1
HĐH Linux: l ch s và các b n
phân ph i
“Just for fun” – Linus Torvalds.
L ch s luôn là đi m kh i đ u khi nghiên c u m t ngành khoa h c nào đó. Không có ngo i l đ i
v i Toán h c, V t lý, môn chuyên ngành c a tôi – Hoá h c và t t nhiên c HĐH Linux. Trong chương
đ u tiên c a cu n sách “T h c s d ng Linux” này chúng ta s tr l i ng n g n cho câu h i “Linux
là gì?”. Đ ng th i nói đôi dòng v nh ng đi m đ c bi t c a Linux, yêu c u c a Linux đ i v i ph n
c ng, khái ni m b n phân ph i Linux, và cách có đư c nh ng b n phân ph i này. Hơn th n a b n
đ c s hi u ít nhi u v OpenSource, GNU và FSF.
1.1 Th nào là HĐH nói chung và Linux nói riêng
1.1.1 Các h đi u hành d ng UNIX
H đi u hành (HĐH) đó là m t b các chương trình h tr vi c đi u khi n ph n
c ng c a máy tính, t ch c làm vi c v i các t p tin (trong đó có ch y và đi u
khi n vi c th c hi n c a các chương trình), và đ ng th i th c thi s giao ti p v i
ngư i dùng, t c là d ch các câu l nh c a ngư i dùng và hi n th k t qu làm vi c
c a nh ng l nh này.
Không có h đi u hành thì máy tính không th c hi n đư c ch c năng c a
mình. Trong trư ng h p đó máy tính ch là m t t p h p các thi t b đi n t
không làm vi c, không hi u là đ làm gì.
Đ n th i đi m hi n nay thì các h đi u hành n i ti ng nh t cho máy tính là
Microsoft Windows (C) và UNIX. Windows b t ngu n t h đi u hành MS-DOS
trư c đây làm vi c trên các máy tính c a hãng IBM. H đi u hành UNIX do
nhóm các nhà phát tri n Bell Labs vi t ra vào năm 1969 dư i s đi u khi n c a
Dennis Ritchie, Ken Thompson và Brian Kernighan. Nhưng bây gi khi nói đ n
h đi u hành UNIX thư ng có ý không nói c th m t h đi u hành c th nào
mà là m t nhóm các h đi u hành dòng UNIX (UNIX-liked OS). Chính b n thân
t UNIX (vi t hoa t t c các ch cái) tr thành nhãn hi u thương m i c a t ng
công ty AT&T.1
1
Ngư i m “không ng i ng n” đăng ký nhãn hi u thương m i b t kỳ th gì, k c Yoga mà
b t ngu n t nĐ .
4 HĐH Linux: l ch s và các b n phân ph i
Vào cu i nh ng năm 70 c a th k trư c (th k XX) các nhà phát tri n c a
trư ng đ i h c California Berkeley đã thêm vào mã ngu n c a UNIX r t nhi u
s c i ti n trong đó có h tr giao th c2 TCP/IP (giao th c m ng chính hi n nay).
S n ph m này n i ti ng dư i tên BSD ("Berkeley Systems Distribution"). Đi u
đ c bi t ch b n quy n c a s n ph m cho phép ngư i khác phát tri n và c i ti n
và chuy n k t qu thu đư c đ n ngư i th ba (cùng v i mã ngu n ho c không)
v i đi u ki n là ph i ch ra ph n nào c a mã đư c phát tri n Berkeley.
H đi u hành dòng UNIX, trong đó có BSD, lúc đ u đư c phát tri n đ làm
vi c v i các máy tính nhi u ngư i dùng – các mainframe. Nhưng d n d n c u
hình trang thi t b c a máy tính cá nhân cũng m nh lên và hi n nay có kh
năng cao hơn so v i nh ng mainframe c a nh ng năm 70 th k trư c. Và và
đ u nh ng năm 90 m t sinh viên c a trư ng đ i h c Helsinki (Ph n Lan), Linus
Torvalds, đã b t đ u phát tri n m t HĐH ki u UNIX cho các máy tính cá nhân
tương thích v i IBM (IBM-compatible PC).
1.1.2 M t chút v l ch s
HĐH Linux v a k ni m sinh nh t l n th 15 c a mình. Đây là b c thư mà
Linus g i vào nhóm tin t c comp.os.minix ngày 25 tháng 8 năm 1991 (đư c coi
là ngày sinh nh t c a HĐH này):
From: [email protected] (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Message-ID:
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki
Hello everybody out there using minix -
I’m doing a (free) operating system (just a hobby, won’t be big and
professional like gnu) for 386(486) AT clones. This has been brewing
since april, and is starting to get ready. I’d like any feedback on things
people like/dislike in minix, as my OS resembles it somewhat (same
physical layout of the file-system (due to practical reasons) among
other things).
I’ve currently ported bash(1.08) and gcc(1.40), and things seem to
work. This implies that I’ll get something practical within a few
months, and I’d like to know what features most people would want.
Any suggestions are welcome, but I won’t promise I’ll implement
them :-)
Linus ([email protected])
PS. Yes — it’s free of any minix code, and it has a multi-threaded fs.
It is NOT portable (uses 386 task switching etc), and it probably
never will support anything other than AT-harddisks, as that’s all
I have :-(.
Trong thư này Linus cho bi t anh đang phát tri n m t h đi u hành t do cho
các máy tính đ i 386 (486) và yêu c u nh ng ai quan tâm cho bi t nh ng thành
ph n nào c a h th ng cho ngư i dùng c n ph i có đ u tiên. Nh ng ngư i dùng
trong nhóm tin t c này đã làm vi c dư i h đi u hành Minux do giáo sư Andy
2
protocol
1.1 Th nào là HĐH nói chung và Linux nói riêng 5
Tanenbaum vi t ra đ làm công c h c t p cho các sinh viên l p trình. Minux
làm vi c trên các máy tính v i b x lý 286 và đư c Linus dùng làm mô hình cho
HĐH m i.
T p tin phiên b n đ u tiên c a Linux (phiên b n 0.01) đư c công b trên
Internet ngày 17 tháng 09 năm 1991. Linus Torvalds vi t: “As I already men-
tioned, 0.01 didn’t actually come with any binaries: it was just source code for
people interested in what linux looked like. Note the lack of announcement for
0.01: I wasn’t too proud of it, so I think I only sent a note to everybody who had
shown interest.” (“Như tôi đã nói trư c đây, 0.01 không đi kèm theo binary nào:
nó ch là mã ngu n cho nh ng ai mu n bi t linux trông ra sao. Chú ý r ng không
có thông báo cho b n 0.01: tôi không t hào l m v nó, vì th ch g i thông báo
đ n t t c nh ng ai mu n th hi n s quan tâm.”)3
Sau đó ngày 05 tháng 10 năm 1991 phiên b n 0.02 ra đ i. Đây là phiên b n
đã có th làm vi c trên máy. N u b n đ c quan tâm đ n l ch s c a HĐH này thì
hãy đ c trang web sau: http://www.li.org/linuxhistory.php. đó b n s
nh n đư c thông tin chi ti t v l ch s xu t hi n và phát tri n Linux.
Linus Torvalds không đăng ký b ng sáng ch cũng như không gi i h n vi c
phân ph i HĐH m i này. Ngay t đ u Linux đã đư c phân ph i theo đi u ki n
c a b n quy n General Public License (GPL)4 thư ng dùng cho các ph n m m
ng d ng Open Source và d án GNU. Theo ti ng lóng c a Linux thì b n quy n
này đôi khi đư c g i là Copyleft. V b n quy n này, Open Source và d án GNU
c n ph i nói đ n m t cách đ c bi t.
Vào năm 1984 nhà bác h c ngư i m Richard Stallman sáng l p ra T ch c
ph n m m t do (FSF, Free Software Foundation) có trang ch n m t i đ a ch
http://www.fsf.org. M c đích c a t ch c này là lo i tr t t c nh ng đi u
c m đoán và h n ch phân ph i, sao chép, s a đ i, nghiên c u chương trình ng
d ng. B i vì tính đ n th i đi m b t đ u xây d ng t ch c thì các công ty thương
m i gi r t c n th n các chương trình ng d ng c a mình, b o v nó b ng các
b ng sáng ch , các d u hi u b o v quy n tác gi , gi bí m t nghiêm ng t mã
ngu n c a chương trình vi t trên các ngôn ng b c cao (như C++). Stallman cho
r ng vi c này r t có h i đ i v i phát tri n chương trình ng d ng, d n đ n vi c
gi m ch t lư ng chương trình và s có m t c a r t nhi u l i không xác đ nh
đư c trong nh ng chương trình này. T i t nh t là làm ch m quá trình trao đ i
ý tư ng trong ngành l p trình, làm ch m quá trình t o ng d ng m i vì m i nhà
l p trình s ph i vi t l i t đ u m t ng d ng thay vì dùng đo n mã ngu n đã
có trong ng d ng khác.
Trong khuôn kh T ch c ph n m m t do đã b t đ u làm vi c d án GNU
(http://www.gnu.org) – d án t o chương trình ng dùng mi n phí. GNU là
3
R t thú v là sau khi Linus Torvalds phát tri n HĐH c a mình thì gi a anh và giáo sư Andy
Tanenbaum đã n ra m t cu c tranh cãi. N u b n đ c quan tâm thì có th tìm đ c nh ng thư mà
hai ngư i này g i cho nhau trong nhóm tin t c nói trên, ho c tìm đ c cu n “Linux: Just for fun”,
m t cu n sách nói v đ i tư c a Linus Torvalds đ n th i đi m anh làm cho Transmeta và vi c
phát tri n HĐH Linux.
4
Th t ra lúc đ u nhân Linux đư c phân ph i theo b n quy n mà FSF không không nh n là
t do vì nghiêm c m phân ph i thương m i. B n quy n này có th tìm th y trong nh ng phiên
b n đ u tiên c a nhân trên ftp.kernel.org, ví d ftp://ftp.kernel.org/pub/linux/kernel/Historic/old-
versions/RELNOTES-0.01. B n quy n đư c đ i sang GPL t phiên b n 0.12, hãy xem
RELNOTES-0.12 theo đ a ch trên.
6 HĐH Linux: l ch s và các b n phân ph i
t vi t t t c a GNU’s Not Unix, t c là nh ng gì thu c v d án GNU không ph i
là m t ph n c a Unix (vào th i gian đó th m chí t UNIX đã tr thành thương
hi u, do đó không còn t do). Trong “Manifesto GNU” (http://www.gnu.org/
gnu/manifesto.html) vào năm 1985 Stallman vi t r ng đ ng l c đ ông sáng
l p ra FSF và d án GNU đó là s khó ch u trong quy n s h u c a m t s ngư i
đ i v i chương trình ng d ng.
Nh ng gì do d án GNU phát tri n đ là t do, nhưng không có nghĩa là
chúng đư c phân ph i không có b n quy n và không đư c lu t pháp b o v .
Nh ng chương trình Open Source (Mã ngu n m ) đư c phân ph i theo đi u ki n
c a b n quy n General Public License (GPL). B n có th đ c b n quy n này
theo đ a ch http://www.gnu.org/copyleft/gpl.html. B n d ch ti ng Vi t
không chính th c n m t i http://vi.openoffice.org/gplv.html. N u như
nói m t cách th t ng n g n thì b n ch t c a GPL như sau. Chương trình ng
d ng phân ph i theo GPL đư c quy n phát tri n, s a đ i, chuy n ho c bán cho
ngư i khác không h n ch v i m t đi u ki n là k t qu thu đư c cũng ph i phân
ph i theo b n quy n copyleft. Đi u ki n cu i là quan tr ng và then ch t c a b n
quy n này. Nó b o đ m r ng k t qu lao đ ng c a các nhà phát tri n ph n m m
t do s luôn luôn m và không tr thành m t ph n c a s n ph m nào đó dùng
b n quy n bình thư ng (ý nói s n ph m đóng). Đi u ki n này cũng phân bi t
ph n m m t do v i ph n m m phân ph i mi n phí. Nói như các nhà sáng l p
ra FSF, thì b n quy n GPL “làm cho chương trình ng d ng t do và đ m b o là
chương trình này s t do”5 .
G n như t t c các chương trình ng d ng phân ph i theo đi u ki n GPL có
th coi là mi n phí đ i v i ngư i dùng (trong ph n l n các trư ng h p đ nh n
đư c nó b n ch ph i tr ti n đĩa CD, DVD ho c k t n i Internet). Đi u đó không
có nghĩa là các nhà l p trình không còn nh n đư c ph n thư ng (ti n) cho công
vi c c a mình. Ý tư ng chính c a Stallman là ch không ph i bán chương trình
ng d ng, mà bán chính s c lao đ ng c a nhà l p trình. đây c n ph i đưa ra
ví d đ b n đ c hi u rõ hơn: ngu n thu nh p có th là các s n ph m đi kèm ho c
d ch v cài đ t và c u hình cho nh ng máy tính m i ho c phát tri n cho nh ng
đi u ki n làm vi c m i, d y cách s d ng, v.v. . . M t ph n thư ng t t n a đó là
khi chương trình tr lên n i ti ng thì tác gi c a chương trình s có đi u ki n tìm
m t công vi c có lương cao. Các nhà phát tri n xvnkb (http://xvnkb.sf.net),
unikey (http://unikey.org) và pdfLaTeX (http://www.tug.org), là nh ng
ngư i hi u rõ nh t đi u này. Hãy vi t thư cho h đ h c h i kinh nghi m!
Trong khuôn kh c a ho t đ ng Open Source nói chung và d án GNU nói
riêng, đã phát tri n m t lư ng đáng k các chương trình ng d ng, n i ti ng
nh t trong s chúng đó là trình so n th o Emacs và trình biên d ch GCC (GNU
C Compliler) – trình biên d ch ngôn ng C t t nh t hi n nay. Vi c m mã ngu n
đ ng th i nâng cao r t nhi u ch t lư ng c a chương trình ng d ng: t t c nh ng
gì t t nh t, nh ng ý tư ng và cách gi i quy t m i đư c phân ph i r ng rãi ngay
l p t c, còn các l i s đư c nh n ra và s a nhanh chóng. đây chúng ta g p
l i cơ ch đào th i (hay t t hơn là ch n l c) t nhiên như trong thuy t sinh h c
c a Darwin. Cơ ch này b kìm nén trong th gi i chương trình ng d ng thương
5
B n đ c cũng nên bi t là s p t i s có phiên b n th 3 c a GPL (GPLv3). Cùng v i s ra đ i
c a phiên b n th 3 này đã n y ra r t nhi u tranh cãi xung quanh tính t do c a b n quy n.
Tham gia vào tranh cãi có c ngư i vi t ra nhân Linux đ u tiên – Linus Torvalds.
1.1 Th nào là HĐH nói chung và Linux nói riêng 7
m i.
Tuy nhiên bây gi xin quay l i v i l ch s c a Linux. C n nói r ng Linus
Torvalds ch phát tri n ph n nhân (kernel) c a h đi u hành. Nhân này “đ u”
đúng vào mi n “đ t lành”, vì trong d án GNU đã phát tri n s lư ng l n các
ti n ích khác nhau. Nhưng đ chuy n GNU thành m t HĐH hoàn ch nh thì ch
còn thi u nhân. D án GNU cũng đã b t đ u phát tri n nhân cho riêng mình
(đư c g i là Hurd), nhưng vì lý do nào đó đã b ch m l i. Vì th s xu t hi n c a
nhân Linux là r t đúng lúc. Nó đ ng nghĩa v i vi c ra đ i c a m t h đi u hành
m i t do phân ph i cùng v i mã ngu n m . Stallman t t nhiên đã đúng khi đòi
h i h đi u hành Linux ph i đư c g i là GNU/Linux. Nhưng đã thành l ngư i
dùng thư ng s d ng tên g i c a nhân làm tên g i c a h đi u hành, và chúng
ta cũng làm như v y trong cu n sách này.
1.1.3 Đ c đi m chính c a HĐH Linux
Do mã ngu n Linux phân ph i t do và mi n phí, nên ngay t đ u đã có r t
nhi u nhà l p trình tham gia vào quá trình phát tri n h th ng. Nh đó đ n th i
đi m hi n nay Linux là h đi u hành hi n đ i, b n v ng và phát tri n nhanh
nh t, h tr các công ngh m i g n như ngay l p t c. Linux có t t c các kh
năng, đ c trưng cho các h đi u hành đ y đ tính năng dòng UNIX. Xin đưa ra
đây danh sách ng n g n nh ng kh năng này.
1. Nhi u ti n trình th t s
T t c các ti n trình là đ c l p, không m t ti n trình nào đư c c n tr công
vi c c a ti n trình khác. Đ làm đư c đi u này nhân th c hi n ch đ phân
chia th i gian c a b x lý trung tâm, l n lư t chia cho m i ti n trình m t
kho ng th i gian th c hi n. Cách này hoàn toàn khác v i ch đ “nhi u ti n
trình đ y nha” đư c th c hi n trong Windows 95, khi m t ti n trình ph i
như ng b x lý cho các ti n trình khác (và có th làm ch m tr r t lâu vi c
th c hi n).
2. Truy c p nhi u ngư i dùng
Linux không ch là HĐH nhi u ti n trình, Linux h tr kh năng nhi u
ngư i dùng làm vi c cùng lúc. Khi này Linux có th cung c p t t c các tài
nguyên h th ng cho ngư i dùng làm vi c qua các terminal xa khác nhau.
3. Swap b nh lên đĩa
Swap b nh cho phép làm vi c v i Linux khi dung lư ng b nh có h n.
N i dung c a m t s ph n (trang) b nh đư c ghi lên vùng đĩa c ng xác
đ nh t trư c. Vùng đĩa c ng này đư c coi là b nh ph thêm vào. Vi c này
có làm gi m t c đ làm vi c, nhưng cho phép ch y các chương trình c n b
nh dung lư ng l n mà th c t không có trên máy tính.
4. T ch c b nh theo trang
H th ng b nh Linux đư c t ch c d ng các trang v i dung lư ng 4K.
N u b nh đ y, thì HĐH s tìm nh ng trang b nh đã lâu không đư c s
d ng đ chuy n chúng t b nh lên đĩa c ng. N u có trang nào đó trong
s nh ng trang này l i tr thành c n thi t, thì Linux s ph c h i chúng t
8 HĐH Linux: l ch s và các b n phân ph i
đĩa c ng (vào b nh ). M t s h th ng Unix cũ và m t s h th ng hi n đ i
(bao g m c Microsoft Windows) chuy n lên đĩa t t c n i dung c a b nh
thu c v nh ng ng d ng không làm vi c t i th i đi m hi n th i (t c là T T
C các trang b nh thu c v ng d ng s đư c lưu lên đĩa khi không đ b
nh ) và như v y kém hi u qu hơn.
5. N p môđun th c hi n “theo yêu c u”
Nhân Linux h tr vi c cung c p các trang b nh theo yêu c u, khi này
ch ph n mã c n thi t c a chương trình m i n m trong b nh , còn nh ng
ph n mã không s d ng t i th i đi m hi n t i thì n m l i trên đĩa.
6. Cùng s d ng chương trình
N u c n ch y m t lúc nhi u b n sao c a cùng m t ng d ng nào đó6 , thì
Linux ch n p vào b nh m t b n sao c a mã chương trình và t t c các
ti n trình gi ng nhau cùng s d ng m t mã này.
7. Thư vi n chung
Thư vi n – b các quá trình (thao tác) đư c chương trình dùng đ làm
vi c v i d li u. Có m t s thư vi n tiêu chu n đư c dùng cùng lúc cho vài
ti n trình. Trên các h th ng cũ nh ng thư vi n đó n m trong m i t p tin
chương trình, và th c hi n cùng lúc nh ng chương trình này d n đ n hao
h t b nh không đáng có. Trên các h th ng m i (bao g m Linux) có h tr
làm vi c v i các thư vi n đ ng (dynamic) và tĩnh (static) đư c chia ra, và
như v y cho phép gi m kích thư c b nh b ng d ng chi m.
8. B đ m đ ng c a đĩa
B đ m c a đĩa đó là m t ph n b nh c a h th ng dùng làm nơi lưu nh ng
d li u thư ng dùng c a đĩa, nh đó nâng cao r t nhi u t c đ truy c p t i
nh ng chương trình và ti n trình thư ng dùng. Ngư i dùng MS-DOS s
nh đ n chương trình SmartDrive, chương trình này d tr m t ph n b
nh có kích thư c xác đ nh đ làm b đ m cho đĩa. Linux s d ng h th ng
đ m linh đ ng hơn: b nh đư c d tr cho đ m đư c tăng lên khi b nh
không đư c s d ng, và s gi m xu ng khi h th ng hay ti n trình c n
nhi u b nh hơn.
9. 100% tương ng v i tiêu chu n POSIX 1003.1. H tr m t ph n các
kh năng c a System V và BSD
POSIX 1003.1 (Portable Operating System Interface – giao di n c a h
đi u hành lưu đ ng) đưa ra giao di n tiêu chu n cho các h th ng Unix, đó
là m t b các th t c ngôn ng C. Ngày nay giao di n này đư c t t c các
h đi u hành m i h tr . Microsoft Windows NT cũng h tr POSIX 1003.1.
Linux 100% tương ng v i tiêu chu n POSIX 1003.1. Thêm vào đó Linux
còn h tr các kh năng c a System V và BSD đ tăng tính tương thích.
10. System V IPC
Linux s d ng công ngh IPC (InterProcess Communication) đ trao đ i
thông tin gi a các ti n trình, đ s d ng tín hi u và b nh chung.
6
ho c m t ngư i dùng ch y vài ti n trình gi ng nhau, ho c nhi u ngư i dùng ch y cùng m t
chương trình
1.2 B n phân ph i Linux 9
11. Kh năng ch y chương trình c a HĐH khác
Trong l ch s Linux không ph i là h đi u hành đ u tiên. Ngư i ta đã
vi t ra hàng lo t các chương trình ng d ng, trong đó có c nh ng chương
trình có ích và không đ n n i t i, cho các HĐH đã phát tri n trư c Linux,
bao g m DOS, Windows, FreeBSD và OS/2. Đ ch y nh ng chương trình
như v y dư i Linux đã phát tri n các trình gi l p (emulator) cho DOS,
Windows 3.1, Windows 95 và Wine. Ngoài ra, còn có m t lo t các chương
trình t o máy o7 mã ngu n m cũng như s n ph m thương m i: qemu,
bochs, pearpc, vmware,. . . HĐH Linux còn có kh năng ch y chương trình
dành cho b x lý Intel c a các h th ng Unix khác, n u h th ng đáp ng
tiêu chu n iBCS2 (intel Binary Compatibility).
12. H tr các đ nh d ng h th ng t p tin khác nhau
Linux h tr m t s lư ng l n các đ nh d ng h th ng t p tin, bao g m các
h th ng t p tin DOS và OS/2, và c các h th ng t p tin m i, như reiserfs,
HFS,. . . . Trong khi đó h th ng t p tin chính c a Linux, đư c g i là Second
Extended File System (ext2fs) và Third Extended File System (ext3fs) cho
phép s d ng không gian đĩa m t cách có hi u qu .
13. Kh năng h tr m ng
Linux có th g n vào b t kỳ m ng n i b nào. H tr t t c các d ch v Unix,
bao g m Networked File System (NFS), k t n i t xa (telnet, rlogin, ssh),
làm vi c trong các m ng TCP/IP, truy c p dial-up qua các giao th c SLIP
và PPP,v.v. . . Đ ng th i có h tr dùng Linux là máy ch ho c máy khách
cho m ng khác, trong đó có chia s (dùng chung, sharing) các t p tin và in
t xa trong các m ng Macintosh, NetWare và Windows.
14. Làm vi c trên các ph n c ng khác nhau
M c dù đ u tiên HĐH Linux đư c phát tri n cho máy tính cá nhân (PC)
trên n n t ng Intel 386/486, bây gi nó có th làm vi c trên t t c các b
vi x lý Intel b t đ u t 386 và k t thúc là các h th ng nhi u b x lý
Pentium IV, bao g m c các b x lý 64bit. Đ ng th i Linux còn làm vi c
trên r t nhi u b x lý tương thích v i Intel c a các nhà s n xu t khác,
như AMD. Trong Internet còn có nh ng thông báo nói r ng trên các b x
lý Athlon và Duron c a AMD Linux còn làm vi c t t hơn so v i trên Intel.
Ngoài ra còn có phiên b n Linux cho các b x lý khác bao g m ARM, DEC
Alpha, SUN Sparc, M68000 (Atari và Amiga), MIPS, PowerPC và nh ng
b x lý khác8 . Xin đư c nói luôn là trong cu n sách này chúng ta ch xem
xét trư ng h p Linux cho các máy tính tương thích v i IBM.
1.2 B n phân ph i Linux
Trong b t kỳ h đi u hành nào cũng có th chia ra 4 ph n chính: nhân, c u
trúc (h th ng) t p tin, trình d ch l nh ngư i dùng và các ti n ích. Nhân đó là
7
cho phép s d ng nhi u h đi u hành trên m t máy
8
B n phân ph i Linux h tr nhi u b x lý nh t c n ph i k đ n Debian (http://www.
debian.org)
10 HĐH Linux: l ch s và các b n phân ph i
thành ph n chính, nòng c t c a HĐH, nó đi u khi n các thi t b ph n c ng và
đi u khi n vi c th c hi n chương trình. C u trúc t p tin (h th ng t p tin) – là
h th ng lưu t p tin trên các thi t b lưu. Trình d ch l nh hay h v (shell) – là
chương trình t ch c giao ti p gi a máy tính và ngư i dùng. Và cu i cùng các
ti n ích – đó đơn gi n là các chương trình riêng l , nói chung không khác so v i
nh ng chương trình bình thư ng khác mà ngư i dùng có th ch y, nhưng có ch c
năng chính là th c hi n các công vi c d ch v (service).
Như đã nói trên, n u chính xác thì t “Linux” ch có nghĩa là nhân. Vì th
khi nói v h đi u hành nói chính xác hơn s là “h đi u hành d a trên nhân
Linux”. Nhân c a HĐH Linux hi n th i đang đư c phát tri n dư i s lãnh đ o
c a Linus Torvalds và phân ph i m t cách t do (v i b n quy n GPL) gi ng như
m t s lư ng kh ng l các chương trình ng d ng và ti n ích khác. M t trong
nh ng k t qu c a vi c phân ph i t do chương trình ng d ng cho Linux đó là
có nhi u công ty cũng như nhóm các nhà phát tri n đ c l p đã phát hành ra các
b n Linux khác nhau đư c g i là “b n phân ph i Linux”.
B n phân ph i – đó là m t b các chương trình ng d ng bao g m t t c b n
ph n chính c a HĐH, t c là nhân, h th ng t p tin, h v shell và các ti n ích,
đ ng th i còn có thêm các chương trình cho công vi c hàng ngày c a ngư i dùng.
Thông thư ng t t c nh ng chương trình n m trong b n phân ph i Linux đ u
dùng b n quy n GPL. R t có th xu t hi n trong b n đ c ý nghĩ r ng b t kỳ ai
cũng có kh năng cho ra b n phân ph i Linux, hay nói đúng hơn là b t kỳ ngư i
nào không lư i sưu t p các chương trình t do. Và suy nghĩ đó có ph n nào đúng.
Tuy nhiên các nhà phát tri n c a m t b n phân ph i Linux c n t o ra ít nh t
m t chương trình cài đ t đ đưa HĐH lên máy tính tr ng không chưa có HĐH
nào. Ngoài ra, c n tìm cách gi i quy t s ph thu c và mâu thu n gi a các gói
(và gi a các phiên b n c a gói) chương trình. Và như chúng ta s th y sau đó
không ph i là bài toán đơn gi n.
Tuy v y, trên th gi i đang có hàng trăm (hàng nghìn?) b n phân ph i Linux
và m i ngày l i xu t hi n các b n m i. Có th tìm th y danh sách tương đ i
đ y đ cùng v i đ c đi m ng n g n c a m i b n phân ph i trên http://www.
linuxhq.com (còn có m t s b n phân ph i khác ti ng Anh). Ngoài ra, trên
trang đó cũng như nhi u trang web khác còn có liên k t đ n nh ng danh sách
b n phân ph i khác, vì th n u mu n có th tìm th y t t c nh ng gì có trên th
gi i (h u h t nh ng trang này dùng ti ng Anh và các b n phân ph i Vi t Nam ít
đư c nói đ n).
M t vài tác gi đã th phân lo i các b n phân ph i d a trên nh ng tiêu chí
khác nhau:
• c u trúc h th ng t p tin
• chương trình cài đ t
• phương ti n dùng đ cài đ t các gói chương trình
• thành ph n c a các ti n ích và chương trình ng d ng có trong b n phân
ph i.
M c dù h u h t các tác gi cho r ng s khác nhau gi a các b n phân ph i là
không cơ b n. Nhưng hi n nay có th chia ít nh t 3 nhóm b n phân ph i, mà đ i
di n c a m i nhóm là Red Hat, Slackware và Debian.