Professional Documents
Culture Documents
Chọn một Hệ điều hành
Chọn một Hệ điều hành
Chọn một Hệ điều hành
com
CHƯƠNG 1
Chọn một
Hệ điều hành
Thực tế là bạn đangđọc cuốn sách này có nghĩa là bạn muốn tìm hiểu
về hệ điều hành (OS) Linux. Để bắt đầu hành trình này, trước tiên bạn phải
hiểu HĐH là gì và loại HĐH Linux là gì. Do đó, chương này được dành cho
những vấn đề cơ bản này.
Trong chương này, chúng tôi mô tả HĐH là gì, cách người dùng tương tác với HĐH,
cách Linux so sánh với các HĐH khác mà bạn có thể quen thuộc và cách triển khai
Linux cụ thể khác nhau như thế nào. Hiểu những vấn đề này sẽ giúp bạn tìm ra
hướng đi khi tìm hiểu về Linux và chuyển đổi giữa các hệ thống dựa trên Linux và các
hệ thống khác.
MỘThệ điều hành, hay HĐH, cung cấp tất cả các tính năng cơ bản nhất của máy
tính, ít nhất là từ quan điểm phần mềm. Hệ điều hành cho phép bạn sử dụng các
thiết bị phần cứng của máy tính, xác định các tiêu chuẩn giao diện người dùng và
cung cấp các công cụ cơ bản giúp máy tính trở nên hữu ích. Cuối cùng, nhiều tính
năng trong số này bắt nguồn từ nhân của hệ điều hành, đó là
mô tả chi tiết hơn tiếp theo. Các tính năng khác của hệ điều hành là do các
chương trình bổ sung chạy trên nhân, như được mô tả sau trong chương này.
Chương 1 • Hệ thống bầu cử vận hành
Giao tiếp với các thiết bị phần cứng (bộ điều hợp mạng, ổ
cứng, v.v.)
Phân bổ bộ nhớ cho các chương trình riêng lẻ
Khi bạn sử dụng một chương trình (chẳng hạn như một trình duyệt web), nó sẽ dựa vào kernel để thực
hiện nhiều chức năng cơ bản của nó. Trình duyệt web chỉ có thể giao tiếp với thế giới bên ngoài bằng
cách sử dụng các chức năng mạng do kernel cung cấp. Nhân phân bổ bộ nhớ và thời gian CPU cho trình
duyệt web, nếu không có nó thì nó không thể chạy được. Trình duyệt web có thể dựa vào các plug-in để
hiển thị nội dung đa phương tiện; các chương trình như vậy được khởi chạy và tương tác với trình duyệt
web thông qua các dịch vụ nhân. Các nhận xét tương tự áp dụng cho bất kỳ chương trình nào bạn chạy
trên máy tính, mặc dù các chi tiết khác nhau giữa các hệ điều hành này với hệ điều hành khác và từ
chương trình này sang chương trình khác.
Tóm lại, kernel là “keo” phần mềm giữ máy tính lại với nhau. Không có hạt
nhân, một máy tính hiện đại có thể làm được rất ít.
TÔI Hạt nhân không thể hoán đổi cho nhau; nhân Linux khác với nhân Mac SX hoặc nhân
Windows. Mỗi nhân này sử dụng một thiết kế bên trong khác nhau và cung cấp các giao
Nhiều chương trình chạy trên
diện phần mềm khác nhau cho các chương trình sử dụng. Do đó, mỗi hệ điều hành được
nhiều nhân, nhưng
tạo nêninaries-các Linux sử dụng một hạt nhân gọi làLinux—thực ra, về mặt kỹ thuật, từ Linux dùng để chỉchỉ mộtđến hạt
tập tin rogram cho một
nhân. Các chương trình phi hạt nhân cung cấp các tính năng khác mà bạn có thể liên kết với Linux, hầu
bộ xử lý chung và nhân—
hết các tính năng này đều khả dụng trên các nền tảng khác, như được mô tả tiếp theo trong “Điều gì
cho mỗi hệ điều hành.
khác xác định một hệ điều hành”.
Một sinh viên tên là Linus Torvalds đã tạo ra nhân Linux vào năm 1991. Linux đã phát triển
đáng kể kể từ thời điểm đó. Ngày nay, nó chạy trên nhiều loại CPU và phần cứng khác. Cách
dễ nhất để tìm hiểu về Linux là sử dụng nó trên máy tính để bàn hoặc máy tính xách tay, vì
vậy đó là loại cấu hình được nhấn mạnh trong phần này
được rồi. Tuy nhiên, nhân Linux chạy trên mọi thứ, từ điện thoại di động
nhỏ đến siêu máy tính.
Hạt nhân là cốt lõi của bất kỳ hệ điều hành nào, nhưng nó là thành phần mà hầu hết người dùng
không thao tác trực tiếp. Thay vào đó, hầu hết người dùng tương tác với một số khác
Tôi dùng hệ điều hành gì?
các thành phần phần mềm, nhiều trong số đó được liên kết chặt chẽ với các hệ điều hành cụ thể.
Các chương trình như vậy bao gồm:
Vỏ dòng lệnhNhiều năm trước, người dùng tương tác với máy tính loại trừ
một cách hiệu quả bằng cách gõ các lệnh trong một chương trình (được gọi làvỏ bọcđã chấp nhận
các lệnh như vậy. Các lệnh sẽ đổi tên tệp, khởi chạy chương trình, v.v. Mặc dù nhiều người dùng
máy tính ngày nay không sử dụng trình bao chế độ văn bản, nhưng chúng vẫn quan trọng đối với
người dùng Linux trung cấp và cao cấp, vì vậy chúng tôi sẽ mô tả chúng chi tiết hơn trong Chương
6, “Làm quen với Dòng lệnh” và các chương tiếp theo dựa vào phụ thuộc rất nhiều vào khả năng sử
dụng shell chế độ văn bản của bạn. Nhiều trình bao có sẵn và trình bao nào có sẵn và phổ biến
khác nhau giữa các hệ điều hành này với hệ điều hành khác. Trong Linux, một shell được gọi là
Bourne Again Shell (trohoặc Bash) là phổ biến.
Giao diện người dùng đồ họaGiao diện người dùng đồ họa (GUI) là một cải tiến
trên trình bao chế độ văn bản, ít nhất là từ quan điểm của người dùng mới bắt đầu.
Thay vì gõ lệnh, GUI dựa trên các biểu tượng, menu và chuột
dầu mỡ. Cả Windows và Mac OS đều có GUI dành riêng cho hệ điều hành. Linux dựa Bạn có thể tìm kiếm
trên GUI được gọi là Hệ thống cửa sổ X, hay viết tắt là X. X là một GUI cơ bản, tương đương Linux
o Linux cũng sử dụngmôi trường máy tính để bànbộ chương trình, chẳng hạn như GNOME o phổ biến OS X hoặc
trọng cho các chương trình. Thư viện là tập hợp các chức năng lập trình có thể được sử dụng bởi phân biệt giữa
nhiều chương trình khác nhau. Ví dụ, trong Linux, hầu hết các chương trình đều dựa vào một thư Ss, chẳng hạn như chi tiết
viện có tên làibc.Các thư viện khác cung cấp các tính năng liên quan đến GUI hoặc giúp các về tài khoản người dùng,
kết với một số HĐH nhất định. Ngay cả khi một chương trình khả dụng trên nhiều HĐH, chương nhiên là đôi khi bởi nhân
và đôi khi bởi phần mềm
trình đó có thể có “cảm giác” khác nhau trên mỗi HĐH do GUI khác nhau và các tính năng dành
không phải nhân.
riêng cho HĐH khác.
Chương 1 • Hệ thống bầu cử vận hành
Trong quá khứ và thậm chí đôi khi ngày nay, các máy tính Linux khởi động ở chế độ văn
bản. Khi hệ thống đã khởi động hoàn toàn, màn hình sẽ hiển thị lời nhắc đăng nhập chế độ
văn bản đơn giản, có thể giống như sau:
Để thử chế độ văn bản Các chi tiết của lời nhắc đăng nhập như vậy thay đổi từ hệ thống này sang hệ
đăng nhập, trước tiên bạn
thống khác. Ví dụ này bao gồm một số thông tin:
phải cài đặt Linux trên máy
chạy nhảy. Sau đó, hệ thống sẽ nhắc bạn nhập mật khẩu, bạn cũng phải nhập mật khẩu này. Nếu
TÔI
bạn đã nhập tên người dùng và mật khẩu hợp lệ, máy tính có khả năng hiển thị thông báo đăng
TÔI nhập, theo sau là dấu nhắc trình bao:
Các chi tiết của dấu nhắc trình bao này thay đổi từ cài đặt này sang cài đặt khác, nhưng bạn có J
thể nhập các lệnh ở chế độ văn bản tại dấu nhắc trình bao. Chẳng hạn, bạn có thể gõ
Chương 13, “Tạo
là (viết tắt củadanh sáchđể xem danh sách các tệp trong thư mục hiện tại. Việc loại bỏ
sers và Nhóm,”
các nguyên âm và đôi khi cả phụ âm giúp rút ngắn các lệnh cơ bản nhất nhằm giảm ghi chép Linux
thiểu số lượng thao tác nhập cần thiết để thực hiện một lệnh. Điều này có tác dụng kế toán, bao gồm cả
đáng tiếc là làm cho nhiều lệnh khá tối nghĩa. tài khoản root, trong hơn
etail.
Một số lệnh không hiển thị thông tin, nhưng hầu hết tạo ra một số loại đầu ra. Ví
dụ, cáclslệnh tạo ra một danh sách các tập tin:
$ ls
106792c01.doc f0101.tif
Ví dụ này hiển thị hai tệp trong thư mục hiện tại:06792c01.docVà
f0101.tif.Bạn có thể sử dụng các lệnh bổ sung để thao tác với các tệp này, chẳng hạn như
Scpđể sao chép chúng hoặctôiđể loại bỏ (xóa) chúng. Chương 6 và
Chương 7 “Quản lý tệp”) mô tả một số lệnh thao tác tệp phổ biến.
Một số chương trình ở chế độ văn bản tiếp quản màn hình để cung cấp các bản
cập nhật liên tục hoặc cho phép bạn tương tác với dữ liệu một cách linh hoạt. Hình
1.1, hoặc ví dụ, cho thấynanosoạn thảo văn bản, được mô tả chi tiết hơn trong
Chương
mũi tên ke
HÌNH 1 . 1Một số chương trình ở chế độ văn bản chiếm toàn bộ màn hình.
Ngay cả khi bạn sử dụng đăng nhập đồ họa, bạn có thể sử dụng trình bao chế độ văn bản bên trong
cửa sổ, được gọi làthiết bị đầu cuốiCác GUI Linux phổ biến cung cấp khả năng khởi chạy chương trình
đầu cuối, cung cấp dấu nhắc trình bao và phương tiện để chạy các chương trình ở chế độ văn bản.
Chương 1 • Hệ thống bầu cử vận hành
HÌNH 1 . 2Màn hình đăng nhập đồ họa trên Linux tương tự như trên Windows hoặc OS X.
TÔI Không giống như Windows và OS X, Linux cung cấp một số môi trường máy tính để bàn.
Bạn sử dụng loại nào tùy thuộc vào loại Linux cụ thể mà bạn đang sử dụng, tùy chọn phần
Một số GUI Linux
mềm nào bạn đã chọn khi cài đặt và tùy chọn cá nhân của riêng bạn.
màn hình ogin không
Trình khởi chạy chương trình Bạn có thể khởi chạy các chương trình bằng cách chọn chúng từ
menu hoặc danh sách. Thông thường, một hoặc nhiều menu tồn tại dọc theo đầu,
cuối hoặc bên của màn hình. Trong Hình 1.3, bạn có thể nhấp vào biểu tượng tắc kè
openSUSE ở góc dưới cùng bên trái của màn hình để tạo menu xuất hiện trong hình
đó.
Trình quản lý tệp inux cung cấp trình quản lý tệp GUI tương tự như trong Windows
hoặc OS X. Một cửa sổ dành cho một trong số này được mở ở giữa Hình 1.3.
Điều khiển cửa sổBạn có thể di chuyển các cửa sổ bằng cách nhấp và kéo tiêu đề của chúng
Đăng xuất là quan trọng
ars, thay đổi kích thước của chúng bằng cách nhấp và kéo các cạnh của chúng, v.v.
kiến trong môi trường máy
Nhiều máy tính để bànHầu hết các môi trường máy tính để bàn Linux cho phép bạn duy trì hoạt tính công cộng. Nếu như
Tùy chọn đăng xuấtBạn có thể đăng xuất khỏi phiên Linux của mình, thao tác này cho phép bạn J
tắt máy tính hoặc cho phép người dùng khác đăng nhập.
Chương 1 • Hệ thống bầu cử vận hành
Khi tìm hiểu thêm về Linux, bạn sẽ khám phá ra rằng môi trường GUI của nó rất linh hoạt. Nếu
Bạn có thể cần phải cài đặt
bạn thấy rằng bạn không thích môi trường mặc định cho bản phân phối của mình, bạn có thể
môi trường máy tính để bàn xtra-
TÔI
Linux phù hợp ở đâu trong thế giới hệ điều hành?
Như được mô tả sau,
trong “Cái gì là
phần mềm nguồn bút, mớ hỗn độn về sự giống nhau giữa các hệ điều hành, với các nguyên nhân từ sự trùng hợp ngẫu
ut cũng sửa đổi nhiên của rom cho đến mã “mượn”. Cố gắng lập bản đồ những ảnh hưởng này có thể khó khăn.
và phân phối lại nó
Tuy nhiên, trong trường hợp của Linux và Unix, có thể phát biểu rộng rãi: inux được mô phỏng
chính chúng ta. Chương 3,
theo Unix.
“Điều tra
Nguyên tắc của Linux và Unix được tạo ra vào năm 1969 tại Bell Labs của AT&T. Lịch sử của Unix rất phức tạp
Triết học,” bao gồm và liên quan đến nhiềudĩa(nghĩa là chia mã thành hai hoặc nhiều dự án độc lập) và
triết học và pháp lý thậm chí viết lại mã hoàn toàn riêng biệt. Nhìn chung, các hệ thống Linux hiện đại là
các vấn đề liên quan đến mở
sản phẩm của các dự án nguồn mở sao chép các chương trình Unix hoặc của các dự án
phần mềm nguồn.
mã nguồn mở ban đầu cho Unix nói chung. Các dự án này bao gồm:
TÔI
anh ấy Hạt nhân Linux inus Torvalds đã tạo ra nhân Linux như một chuyên gia sở thích.
GNU là một ví dụ về từ dự án đâm vào năm 1991, nhưng nó nhanh chóng phát triển hơn thế nhiều. Nhân Linux
viết tắt ecursive— được thiết kế để tương thích với các nhân Unix khác, theo nghĩa là nó sử dụng cùng giao
một từ viết tắt của ai
diện phần mềm trong mã nguồn. Điều này làm cho việc sử dụng các chương trình nguồn
xpansion bao gồm
mở cho các phiên bản Unix khác với nhân Linux trở nên dễ dàng.
từ viết tắt của chính nó. Đây là
Các lựa chọn thay thế cho các công cụ GNU bao gồm các công cụ thương mại độc quyền và các công cụ nguồn mở
được phát triển cho các biến thể Unix Phân phối Phần mềm Berkeley (BSD). Các công cụ được sử dụng trên HĐH
giống Unix có thể ảnh hưởng đến “hương vị” tổng thể của nó, nhưng tất cả các bộ công cụ này đều giống nhau đủ
để mang lại cho bất kỳ loại Unix nào cảm giác giống nhau khi so sánh với HĐH không phải Unix.
Xorg-X11Hệ thống X Window là môi trường GUI cho hầu hết các hệ điều hành Unix. Hầu hết các bản
phân phối Linux ngày nay đều sử dụng biến thể Xorg-X11 của X. Cũng giống như các công cụ chế độ
văn bản cơ bản do dự án GNU cung cấp, việc lựa chọn máy chủ X có thể ảnh hưởng đến một số tính
năng của HĐH giống Unix, chẳng hạn như các loại phông chữ của nó. hỗ trợ.
Môi trường máy tính để bànGNOME, KDE, Unity, Xfce và các môi trường máy tính để bàn nguồn
J
mở phổ biến khác đã thay thế phần lớn các môi trường máy tính để bàn thương mại, ngay cả trên
Mac OS X, được mô tả ngắn gọn, là
các phiên bản thương mại của Unix. Vì vậy, bạn sẽ không tìm thấy sự khác biệt lớn-
một ứng dụng thương mại
sự khác biệt giữa Linux và Unix trong lĩnh vực này. hệ điều hành dựa trên nix
tránh cả X và
Chương trình máy chủTrong lịch sử, Unix và Linux đã phổ biến dưới dạng HĐH máy chủ—
môi trường esktop
các tổ chức sử dụng chúng để chạy máy chủ web, máy chủ email, máy chủ tệp, v.v. Linux hat chạy trên nó có lợi
chạy các chương trình máy chủ phổ biến giống như các phiên bản Unix thương mại và BSD cho GUI của Apple.
mã nguồn mở.
Chương trình năng suất người dùngTrong lĩnh vực này, cũng như trong các chương trình máy
chủ, Linux chạy phần mềm giống như các HĐH giống Unix khác. Trong một số trường hợp, Linux
chạy nhiều chương trình hơn hoặc chạy chúng tốt hơn. Điều này chủ yếu là do tính phổ biến của
Linux và vô số trình điều khiển phần cứng mà Linux cung cấp. Ví dụ: nếu một chương trình cần hỗ
trợ thẻ video nâng cao, thì có nhiều khả năng tìm thấy hỗ trợ đó trên Linux hơn là trên HĐH giống
Đã có tiện ích bổ sung ZFS
Unix ít phổ biến hơn.
cho Linux nhưng chưa
Nhìn chung, Linux có thể được coi là một thành viên của gia đình Unix-like Ss. Mặc được tích hợp đầy đủ
dù Linux về mặt kỹ thuậtkhôngmột hệ điều hành Unix, nó giống nhau đến mức sự vào hệ điều hành. Một hệ thống
phần cứng tốt hơn, ít nhất là trên phần cứng PC thông thường. Tuy nhiên, một số loại nó đang trở nên phổ biến
Unix cung cấp các tính năng cụ thể mà Linux thiếu. Chẳng hạn, Hệ thống tệp Zettabyte mong muốn Linux khác nhau
phân bổ.
(ZFS), có sẵn trên Solaris, FreeBSD và một số hệ điều hành khác, cung cấp các tính năng
hệ thống tệp nâng cao chưa được triển khai đầy đủ trong Linux. J
Mã số các loại
Các lập trình viên viết chương trình dưới dạng được gọi làmã nguồn. Mặc dù mã nguồn có vẻ
phức tạp đối với người mới bắt đầu, nhưng nó rất rõ ràng so với hình thức mà một chương
trình phải có để máy tính chạy nó—nghĩa là,mã nội tiếp. Một chương trình
bây giờ như mộttrình biên dịchdịch mã nguồn sang mã nhị phân. (Ngoài ra, một số
ngôn ngữ lập trình dựa trên mộtthông dịch viêngiúp chuyển đổi mã nguồn thành mã
nhị phân “nhanh chóng”, loại bỏ nhu cầu biên dịch mã nguồn.)
thuật ngữmã nguồn mởđề cập đến sự sẵn có của mã nguồn. Điều này thường được giữ lại
với công chúng trong trường hợp các chương trình và hệ điều hành phần mềm thương mại.
Ngược lại, một lập trình viên có quyền truy cập vào mã nguồn của chương trình thông qua
phần mềm nguồn mở có thể sửa lỗi, thêm tính năng và thay đổi cách thức hoạt động của
chương trình.
Bạn có thể mở cửa sổ OS X Terminal và gõ nhiều lệnh tương tự được mô tả trong cuốn
sách này để đạt được kết quả tương tự. Nếu không có lệnh được mô tả trong cuốn sách này,
bạn có thể cài đặt nó theo cách này hay cách khác. OS X đi kèm với một số chương trình máy
chủ Unix phổ biến, vì vậy bạn có thể định cấu hình để nó hoạt động giống như Linux hoặc
một hệ điều hành tương tự Unix khác như một máy tính máy chủ mạng.
TÔI Tuy nhiên, OS X khác với Linux ở giao diện người dùng. Giao diện người dùng OS X
được gọi làocoatừ góc độ lập trình, hoặcthủytừ quan điểm của người dùng. Nó bao
Máy chủ X trong X là etter
gồm các yếu tố tương đương với cả X và môi trường máy tính để bàn trong Linux. Vì
X, nhưng X trong OS X là
Apple cung cấp OS X cho các máy tính của riêng mình. Các điều khoản cấp phép của nó cấm cài
đặt trên phần cứng không phải của Apple và, bỏ qua các vấn đề về cấp phép, cài đặt OS X trên
phần cứng không phải của Apple là một công việc không cần thiết. Một biến thể của OS X, được
gọi là iOS, chạy trên các thiết bị iPad và iPhone của Apple và nó cũng không
ortable đến các thiết bị khác. Do đó, OS X phần lớn bị giới hạn trong phần cứng của Apple. Linux,
W here D oes L inux F itinthe OS Wo rld ? 1
y tương phản, chạy trên nhiều loại phần cứng, bao gồm hầu hết các PC. Bạn thậm chí
có thể cài đặt Linux trên máy tính Macintosh.
cấp phépLinux là một hệ điều hành nguồn mở, trong khi Windows là một hệ điều hành
thương mại độc quyền. Chương 2, “Hiểu về cấp phép phần mềm,” trình bày chi tiết hơn các
vấn đề về nguồn mở, nhưng bây giờ bạn nên biết rằng phần mềm nguồn mở cho phép bạn
kiểm soát máy tính của mình nhiều hơn so với phần mềm sở hữu độc quyền—ít nhất là trên
lý thuyết. Trong thực tế, bạn có thể cần rất nhiều kiến thức chuyên môn để tận dụng các lợi
ích của nguồn mở. Phần mềm độc quyền có thể thích hợp hơn nếu bạn làm việc cho một tổ
chức chỉ cảm thấy thoải mái với ý tưởng về phần mềm được bán theo cách truyền thống hơn.
(Tuy nhiên, một số biến thể Linux được bán theo cách tương tự, cùng với các hợp đồng dịch
vụ.)
chi phíNhiều loại Linux được cung cấp miễn phí và vì vậy chúng rất hấp dẫn nếu
bạn đang cố gắng cắt giảm chi phí. Mặt khác, chuyên môn cần thiết để cài đặt và
duy trì cài đặt Linux có thể sẽ lớn hơn và do đó đắt hơn so với chuyên môn cần
thiết để cài đặt và duy trì cài đặt Windows. Các nghiên cứu khác nhau về vấn đề
tổng chi phí sở hữu Linux so với Windows đã đi theo cả hai hướng, nhưng hầu hết
đều có xu hướng ủng hộ Linux.
Khả năng tương thích phần cứngHầu hết các thành phần phần cứng đều yêu cầu hỗ trợ HĐH,
thường ở dạng trình điều khiển. Hầu hết các nhà sản xuất phần cứng đều cung cấp Windows
river cho thiết bị của họ hoặc họ làm việc với Microsoft để đảm bảo rằng Windows bao gồm
các trình điều khiển phù hợp. Mặc dù một số nhà sản xuất cũng cung cấp trình điều khiển
Linux, nhưng phần lớn cộng đồng Linux nói chung phải cung cấp trình điều khiển cần thiết.
Điều này có nghĩa là trình điều khiển Linux có thể mất vài tuần hoặc thậm chí vài tháng để
xuất hiện sau khi thiết bị có sẵn. Mặt khác, các nhà phát triển Linux có xu hướng duy trì trình
điều khiển cho phần cứng cũ lâu hơn nhiều so với việc các nhà sản xuất tiếp tục hỗ trợ phần
cứng cũ của họ. Do đó, Linux hiện đại có thể chạy tốt hơn phiên bản Windows gần đây trên
phần cứng cũ. Linux cũng có xu hướng ít tốn tài nguyên hơn, vì vậy bạn có thể làm việc hiệu
quả trên phần cứng cũ hơn khi sử dụng Linux.
Tính khả dụng của phần mềm một số ứng dụng máy tính để bàn phổ biến, chẳng hạn như Microsoft
Office, có sẵn trên Windows nhưng không có trên Linux. Mặc dù các giải pháp thay thế Linux,
2 Chương 1 • Hệ thống bầu cử vận hành
chẳng hạn như Apache OpenOffice.org hoặc LibreOffice, đã có sẵn, chúng vẫn chưa được công
chúng quan tâm. Trong các lĩnh vực khác, tình hình được đảo ngược. Các chương trình máy chủ
phổ biến, chẳng hạn như máy chủ web Apache, được phát triển đầu tiên cho Linux hoặc Unix. Mặc
dù nhiều máy chủ như vậy có sẵn cho Windows nhưng chúng chạy hiệu quả hơn trên Linux. Nếu
bạn có một chương trình cụ thể mà bạn phải chạy, bạn có thể muốn nghiên cứu tính khả dụng và
tính thực tế của chương trình đó trên bất kỳ nền tảng nào mà bạn đang xem xét.
TÔI ser Giao diệnGiống như OS X, Windows sử dụng giao diện người dùng độc đáo của riêng mình. Thực tế này
góp phần vào tính di động giữa các hệ điều hành kém. (Tuy nhiên, các công cụ tồn tại để giúp thu hẹp khoảng
Microsoft đã thực hiện
cách; việc triển khai Hệ thống X Window cho Windows cũng có sẵn, cũng như các công cụ để chạy các chương
ajor thay đổi thành của nó
trình Windows trong Linux.) Một số người dùng thích giao diện người dùng Windows hơn bất kỳ môi trường máy
giao diện người dùng, bắt đầu
thứ i Windows 8. Giao diện người tính để bàn Linux nào, nhưng những người khác thích Linux hơn.
dùng được cập nhật, được gọi là môi trường esktop.
Metro, hoạt động trong
cách tương tự trên khả năng cấu hìnhLinux là hệ điều hành có cấu hình cao hơn nhiều so với Windows. Mặc dù cả
rất nhiều thứ từ thông minh- hai hệ điều hành đều cung cấp phương tiện để chạy các chương trình cụ thể khi khởi động, thay
hones để máy tính để bàn
đổi chủ đề giao diện người dùng, v.v., bản chất nguồn mở của Linux có nghĩa là bạn có thể điều
máy vi tính.
chỉnh bất kỳ chi tiết nào bạn muốn. Hơn nữa, bạn có thể chọn bất kỳ biến thể Linux nào mà bạn
muốn để bắt đầu thiết lập hệ thống khi bạn thấy phù hợp.
Bảo vệNhững người ủng hộ mỗi hệ điều hành cho rằng nó an toàn hơn hệ điều hành kia. Họ có
thể làm điều này vì họ tập trung vào các vấn đề bảo mật khác nhau. Nhiều mối đe dọa đối với
Windows đến từ vi-rút, phần lớn nhắm mục tiêu vào Windows và hệ điều hành của nó.
cơ sở người dùng được cài đặt rất lớn. Virus về cơ bản không phải là vấn đề đối với Linux; trong Linux, các mối
đe dọa bảo mật chủ yếu đến từ các vụ đột nhập liên quan đến máy chủ được định cấu hình sai hoặc người dùng
Trong hơn hai thập kỷ, Windows đã thống trị lĩnh vực máy tính để bàn. Ở cả omes và office,
người dùng đã trở nên quen thuộc với Windows và đã quen với các ứng dụng Windows phổ
biến, chẳng hạn như Microsoft Office. Mặc dù LinuxMỘTđược sử dụng trong những môi trường
như vậy, đó là một lựa chọn ít phổ biến hơn vì nhiều lý do khiến nó không quen thuộc, thực tế là
Windows được cài đặt sẵn trên hầu hết các PC và thiếu bất kỳ ứng dụng chỉ dành cho Linux hấp
dẫn nào đối với hầu hết người dùng.
Mặt khác, Unix nói chung và Linux nói riêng đã thống trị thị trường máy chủ.
Linux hỗ trợ các máy chủ web, máy chủ email, máy chủ tệp, v.v. tạo nên Internet
và nhiều doanh nghiệp dựa vào đó để cung cấp các dịch vụ mạng cục bộ. Vì vậy,
hầu hết mọi người sử dụng Linux hàng ngày ngay cả khi họ
không nhận ra nó.
Trong hầu hết các trường hợp, có thể sử dụng Linux hoặc Windows trên máy tính và để nó thực hiện
công việc chấp nhận được. Tuy nhiên, đôi khi, các nhu cầu cụ thể quyết định việc sử dụng hệ điều hành
này hay hệ điều hành khác. Bạn có thể cần phải chạy một chương trình kỳ lạ cụ thể, cho
Tôi nói phân phối D hat gì? 3
hoặc phần cứng của bạn có thể quá cũ đối với Windows hiện đại hoặc quá mới hoặc Linux. Trong các trường hợp khác, sự
quen thuộc của bạn hoặc người dùng của bạn với hệ điều hành này hoặc hệ điều hành kia có thể giúp ích cho việc sử
Một hạt nhân LinuxTất nhiên, nhân Linux là cốt lõi của bất kỳ hệ điều hành Linux nào.
Chúng tôi đã viết mục này làMộtNhân Linux vì nhân Linux không ngừng phát triển. Hai
bản phân phối có khả năng sử dụng các hạt nhân hơi khác nhau. Các nhà bảo trì phân
phối cũng cung cấpvákernel—nghĩa là chúng thực hiện những thay đổi nhỏ để sửa lỗi
hoặc thêm tính năng.
Công cụ Unix cốt lõiCác công cụ như bộ công cụ GNU, Hệ thống Cửa sổ X và các tiện ích được
sử dụng để quản lý đĩa rất quan trọng đối với hoạt động bình thường của hệ thống Linux. Hầu
hết các bản phân phối Linux bao gồm ít nhiều cùng một bộ công cụ như vậy, nhưng cũng giống
như nhân, chúng có thể khác nhau về phiên bản và bản vá lỗi.
Phần mềm bổ sungPhần mềm bổ sung, chẳng hạn như các chương trình máy chủ lớn, môi trường máy
tính để bàn và các công cụ năng suất, đi kèm với hầu hết các bản phân phối Linux. Như với phần mềm
Unix cốt lõi, hầu hết các bản phân phối Linux đều cung cấp các tùy chọn tương tự cho phần mềm đó. Tuy
nhiên, các bản phân phối đôi khi cung cấp “thương hiệu” của riêng chúng, đặc biệt là trong đồ họa môi
trường máy tính để bàn.
Tập lệnh khởi động phần lớn “tính cách” của một bản phân phối Linux đến từ
cách nó quản lý quá trình khởi động của nó. Linux sử dụng các tập lệnh và tiện ích để khởi
chạy hàng chục chương trình liên kết máy tính với mạng, đưa ra lời nhắc đăng nhập, v.v. Các
tập lệnh và tiện ích này khác nhau giữa các bản phân phối, nghĩa là chúng có các tính năng
khác nhau và có thể được định cấu hình theo các cách khác nhau.
14 Chương 1 • Hệ thống bầu cử vận hành
trình cài đặtĐể được sử dụng, phần mềm phải được cài đặt và hầu hết Linux
istributions cung cấp phần mềm cài đặt độc đáo để giúp bạn quản lý nhiệm vụ quan trọng này. Do đó,
hai bản phân phối có thể cài đặt theo những cách khác nhau, cung cấp cho bạn các tùy chọn khác nhau
cho các tính năng chính, chẳng hạn như bố cục ổ đĩa và tài khoản người dùng ban đầu
phản ứng.
TÔI Thông thường, các bản phân phối Linux có sẵn để tải xuống từ trang web của họ. Thông
thường, bạn có thể tải xuống tệp hình ảnh CD-R hoặc DVD mà sau đó bạn có thể ghi vào đĩa
UNetbootin
quang. Khi bạn khởi động đĩa kết quả, trình cài đặt sẽ chạy và bạn có thể cài đặt HĐH. Đôi
dụng cụ (ttp://
unetbootin khi, bạn có thể tải xuống một hình ảnh có thể được sao chép vào ổ flash USB nếu máy tính
. nguồn của bạn không có ổ đĩa quang. Ngoài ra còn có các phiên bản đám mây của nhiều bản phân
. mạng lưới) có thể sao phối Linux, cho phép bạn tải xuống một hệ thống Linux hoàn chỉnh để chạy trong máy ảo
chép các tệp từ tệp ảnh
riêng hoặc trên đám mây thương mại như dịch vụ đám mây của Amazon hoặc Google.
đĩa cài đặt Linux sang ổ
CÓ THỂ 1 . 1Tính năng của các bản phân phối Linux chính
Người quản lý
Phân bổ khả dụng định dạng gói Chu kỳ phát hành yêu cầu kỹ năng
chuyên gia
Người quản lý
Phân bổ khả dụng định dạng gói Chu kỳ phát hành yêu cầu kỹ năng
trung cấp
khoa học Cây BUỔI CHIỀU xấp xỉ làm trung gian cho
trung cấp
khả dụngHầu hết các bản phân phối Linux hoàn toàn là mã nguồn mở hoặc phần mềm miễn phí;
Tuy nhiên, một số bao gồm các thành phần độc quyền và chỉ để bán,
thường kèm theo hợp đồng hỗ trợ. Red Hat Enterprise Linux (RHEL) và SUSE
Enterprise Linux là hai ví dụ nổi bật nhất của kiểu phân phối này. Cả hai
ave anh em họ hoàn toàn miễn phí. Đối với RHEL, CentOS là một bản sao gần như bỏ qua các
thành phần độc quyền và Fedora là một phiên bản nguồn mở đóng vai trò là nơi thử nghiệm các
công nghệ mà cuối cùng có thể được đưa vào RHEL. Đối với SUSE Enterprise, openSUSE là một
giải pháp thay thế miễn phí.
J
định dạng góiHầu hết các bản phân phối Linux phân phối phần mềm tronggói, là tập hợp
của nhiều tệp trong một. Phần mềm đóng gói duy trì cơ sở dữ liệu cục bộ gồm các tệp đã cài Tarball cũng tương tự
tạo theo tiêu chuẩnartiện ích, được sử dụng để sao lưu máy tính và phân phối mã nguồn, mô tả cách tạo và sử
dụng tarball.
trong số những thứ khác. Các
16 Chương 1 • Hệ thống bầu cử vận hành
tarball mà Slackware sử dụng cho các gói chứa thông tin dành riêng cho Slackware
để giúp quản lý gói. Gentoo không bình thường vì hệ thống gói của nó là
liên quan đến việc biên dịch hầu hết các phần mềm từ mã nguồn. Điều này tốn nhiều thời gian, nhưng
nó cho phép các quản trị viên có kinh nghiệm điều chỉnh các tùy chọn biên dịch để tối ưu hóa
gói cho môi trường phần cứng và phần mềm của riêng họ.
Chu kỳ phát hànhChúng tôi sẽ sớm mô tả các chu kỳ phát hành chi tiết hơn trong phần “Tìm hiểu các chu kỳ
phát hành”. Theo nguyên tắc chung, các bản phân phối có chu kỳ phát hành ngắn nhằm mục đích
cung cấp phần mềm mới nhất có thể, trong khi những phần mềm có chu kỳ phát hành dài hơn cố
gắng cung cấp môi trường ổn định nhất có thể. Một số cố gắng để có nó theo cả hai cách; chẳng
hạn, Ubuntu phát hành các phiên bản hỗ trợ dài hạn (LTS) vào tháng 4 của các năm chẵn. Các bản
phát hành khác của nó nhằm mục đích cung cấp phần mềm mới nhất.
TÔI Yêu cầu kỹ năng quản trị viênCột cuối cùng trong Bảng 1.1 cung cấp ước tính cá
nhân của chúng tôi về mức độ kỹ năng cần thiết để quản lý phân phối. Như bạn có
Đừng sợ “trung
thể thấy, chúng tôi đã mô tả hầu hết các bản phân phối Linux yêu cầu kỹ năng quản
gian”
phân loại của hầu hết
trị “trung cấp”. Tuy nhiên, một số cung cấp ít công cụ quản trị GUI thân thiện với
phân bổ. Cái này người dùng hơn và do đó đòi hỏi nhiều kỹ năng hơn. Ubuntu nhằm mục đích đặc biệt
Mục đích của ook là dễ sử dụng và quản trị.
giúp bạn quản lý
tính năng thiết yếu của Hầu hết các bản phân phối Linux đều có sẵn cho ít nhất hai nền tảng—nghĩa là CPU có:x6
những phân phối như vậy. (còn được gọi là IA32, i386 và một số biến thể) vàx6-64 (còn được gọi là AMD64, EM64T, và
x64). Cho đến khoảng năm 2007,x6 máy tính được sử dụng nhiều nhất
về sự đa dạng, nhưng bây giờx6-64 máy tính đã trở thành tiêu chuẩn. Nếu bạn có nx6-64,
bạn có thể chạy mộtx6 hoặc mộtx6-64 trên đó, mặc dù cái sau cung cấp một cải tiến nhỏ về
tốc độ. Các nền tảng kỳ lạ hơn, chẳng hạn như ARM (dành cho máy tính bảng), PowerPC,
Alpha và SPARC, đều có sẵn. Các nền tảng như vậy hầu hết chỉ giới hạn ở các máy chủ và các
thiết bị chuyên dụng (được mô tả ngắn gọn).
Ngoài các bản phân phối PC phổ biến, còn có một số bản phân phối khác phục vụ các mục
đích chuyên biệt hơn. Một số trong số này chạy trên PC thông thường, nhưng một số khác chạy
trên phần cứng chuyên dụng của riêng chúng:
TÔI Android bất kỳ điện thoại di động nào ngày nay đều sử dụng HĐH dựa trên Linux được gọi làAndroid
Giao diện người dùng của nó tương tự như giao diện của các điện thoại thông minh khác, nhưng bên dưới là
Android được biết đến như một
nhân Linux và một số lượng đáng kể cơ sở hạ tầng Linux tương tự mà bạn sẽ tìm thấy trên PC. Tuy nhiên,
hệ điều hành điện thoại di động,
trên các thiết bị khác. Một số chúng chạy các ứng dụng chuyên biệt dành cho điện thoại di động.
máy tính bảng và sách điện tử
người đọc, ví dụ, Thiết Bị MạngNhiều bộ định tuyến băng thông rộng, máy chủ in và các thiết bị khác
không phải Android. các thiết bị mà bạn cắm vào mạng cục bộ để thực hiện các tác vụ chuyên biệt chạy Linux.
Đôi khi, bạn có thể thay thế hệ điều hành tiêu chuẩn bằng hệ điều hành tùy chỉnh nếu muốn
thêm các tính năng cho thiết bị. Cà chua (www.polarcloud.com/tomato)Và
Tôi nói phân phối D hat gì? 7
TiVo máy quay video kỹ thuật số (DVR) phổ biến của anh ấy sử dụng nhân Linux và
agic, hoặc một công cụ tương tự,
ngoài chúng là những máy tính dựa trên Linux. chính của bạn.
phép thuật chia taySự phân phối này, dựa trênhttp://partedmagic.com,là một bản phân J
phối Linux dành cho PC dành cho các hoạt động khôi phục khẩn cấp. Nó chạy từ một đĩa
CD-R duy nhất và bạn có thể sử dụng nó để truy cập ổ cứng Linux hoặc Windows
rive nếu cài đặt chính không khởi động được.
Android, thiết bị mạng dựa trên Linux và TiVo là những ví dụ vềnhững hệ thống nhúngsử dụng Linux.
Những thiết bị như vậy thường yêu cầu ít hoặc không yêu cầu người dùng thực hiện công việc quản trị, ít
nhất là không theo cách mà các tác vụ đó được mô tả trong cuốn sách này. Thay vào đó, các thiết bị này có
các cấu hình cơ bản cố định và các công cụ thiết lập có hướng dẫn để giúp người dùng chưa có kinh
nghiệm thiết lập các tùy chọn cơ bản quan trọng, chẳng hạn như cài đặt mạng và múi giờ.
Hai trong số các bản phân phối trong Bảng 1.1 (Arch và Gentoo) cócán phát hành chu kỳ.
Những bản phân phối như vậy không có số phiên bản theo nghĩa thông thường; thay vì,
số 8 Chương 1 • Hệ thống bầu cử vận hành
nâng cấp xảy ra một cách liên tục. Việc sử dụng một bản phân phối như vậy khiến bạn
không cần phải thực hiện nâng cấp đầy đủ, với tất cả những rắc rối kéo theo; tuy nhiên,
đôi khi bạn sẽ phải thực hiện nâng cấp gián đoạn một hệ thống con cụ thể, chẳng hạn như
nâng cấp lớn trong môi trường máy tính để bàn của bạn.
Trước khi phát hành phiên bản mới, hầu hết các bản phân phối đều cung cấp các phiên bản
phát hành trước.phần mềm anphalà cực kỳ mới và rất có khả năng chứa lỗi nghiêm trọng, trong
khiphần mềm thử nghiệmổn định hơn nhưng dù sao cũng có nhiều khả năng chứa lỗi hơn so với
phần mềm phát hành cuối cùng. Theo nguyên tắc chung, bạn nên tránh sử dụng phần mềm như
vậy trừ khi bạn muốn đóng góp vào nỗ lực phát triển bằng cách báo cáo lỗi hoặc trừ khi bạn rất
muốn có một tính năng mới.
Linux là một hệ điều hành mạnh mẽ mà bạn có thể sử dụng trên mọi thứ, từ điện thoại thông minh đến siêu máy tính.
Tại cốt lõi của Linux là nócông nhânquản lý phần cứng của máy tính. Được xây dựng bên trên các tiện ích khác nhau
(nhiều tiện ích từ dự án GNU) và các ứng dụng người dùng. Linux là một bản sao của HĐH Unix, nó chia sẻ nhiều chương
trình. Mac OS X là một hệ điều hành Unix khác, mặc dù là một hệ điều hành có giao diện người dùng độc đáo. Mặc dù
Windows chia sẻ nhiều tính năng với Unix, nhưng nó là một hệ điều hành hoàn toàn khác, vì vậy khả năng tương thích
Linux có nhiều loại, được gọi làphân phối, mỗi loại đều có “hương vị” riêng. Vì sự đa dạng này,
bạn có thể chọn phiên bản Linux phù hợp nhất với nhu cầu của mình, dựa trên tính dễ sử
dụng, chu kỳ phát hành và các tính năng độc đáo khác.
từ ứng dụng máy tính đến bộ ứng dụng văn phòng chính. Tìm kiếm tương đương tạiwww.linuxrsp.ru/ win-
lin-soft/table-enghoặcwww.linuxalt.com. Có bất cứ điều gì mà bạn không thể tìm thấy? Nếu vậy, hãy thử tìm
Đọc thêm về hai hoặc ba bản phân phối Linux bằng cách xem qua các trang web của họ. Cái mà
bạn sẽ chọn phân phối để chạy một máy chủ web lớn? Bản phân phối nào nghe có vẻ hấp
dẫn nhất đối với nhân viên văn phòng sử dụng xử lý văn bản và email?
MỘT.Android . CentOS
e.Fedora
. Điều nào sau đây là sự khác biệt đáng chú ý giữa Linux và Mac OS X?
MỘT.Linux có thể chạy các chương trình GNU phổ biến, trong khi OS X thì không thể.
b.GUI của Linux dựa trên Hệ thống cửa sổ X, trong khi OS X thì không.
. Linux không thể chạy trên phần cứng Apple Macintosh, trong khi OS X chỉ có thể chạy trên
. Linux chủ yếu dựa vào phần mềm BSD, trong khi OS X không sử dụng phần mềm BSD.
. Linux hỗ trợ các lệnh ở chế độ văn bản, nhưng OS X là HĐH chỉ có GUI.
. Đúng hay sai: CentOS là một bản phân phối Linux có chu kỳ phát hành dài.
. Lời nhắc đăng nhập ở chế độ văn bản Linux đọc (một từ).
. Một vấn đề bảo mật phổ biến với Windows về cơ bản không tồn tại trên Linux là
. Phần mềm phát hành trước có khả năng chứa lỗi được gọi là Và
10.Các bản phân phối Linux không có số phiên bản mà thay vào đó phát hành các bản nâng cấp một
cách liên tục được cho là có (n) chu kỳ phát hành.
CHƯƠNG 2
hiểu biết
Cấp phép phần mềm
Phần mềm là một loạisở hữu trí tuệ được điều chỉnh bởi luật bản quyền và, ở một số
quốc gia, luật bằng sáng chế. Theo nguyên tắc chung, điều này khiến việc sao chép phần
mềm là bất hợp pháp trừ khi bạn là tác giả của phần mềm. Tuy nhiên, phần mềm nguồn
mở dựa vào giấy phép, là những tài liệu thay đổi các điều khoản theo đó phần mềm
được phát hành. Như đã mô tả trong chương này, các giấy phép nguồn mở cấp các
quyền bổ sung cho người dùng phần mềm.
Nói chung, phần mềm nguồn mở mang ơn rất nhiều cho ba tổ chức: Tổ
chức Phần mềm Tự do (FSF), Sáng kiến Nguồn Mở (OSI) và Creative
Commons (CC). Mỗi tổ chức có một triết lý và vai trò riêng biệt trong thế
giới nguồn mở. Ngoài ra còn có nhiều giấy phép nguồn mở cụ thể, được
tóm tắt ở cuối chương này, cùng với các cách mà các doanh nghiệp có thể
sử dụng chúng.
Một bản sao của chương trình từ phương tiện cài đặt vào ổ cứng
r ổ cứng thể rắn
Một bản sao của chương trình từ ổ đĩa cứng hoặc ổ đĩa trạng thái rắn vào
bộ nhớ truy cập ngẫu nhiên của máy tính (RAM)
TÔI Một bản sao của RAM vào không gian trao đổi
Không gian hoán đổi là Một bản sao của RAM vào nhiều bộ đệm nhỏ hơn khác nhau trên bo mạch chủ
không gian đĩa đóng vai hoặc CPU được sử dụng để cải thiện hiệu suất
trò bổ sung cho RAM.
Ví dụ, nếu RAM Một hoặc nhiều bản sao lưu ổ đĩa cứng hoặc ổ đĩa thể rắn để bảo
đầy, hệ điều hành bắt đầu vệ chống lại lỗi đĩa
để sử dụng không gian trao đổi
Bản quyền là một ví dụ về sở hữu trí tuệ, nhưng còn nhiều ví dụ khác. một trong số đó làbằng
sáng chếBản quyền bảo vệ một tác phẩm sáng tạo duy nhất, có thể được coi là
n biểu hiện của một ý tưởng, nhưng một bằng sáng chế bảo vệđêchính nó. Bằng sáng chế thường áp dụng cho
các phát minh, chẳng hạn như câu tục ngữ “bẫy chuột tốt hơn”.
Tại Hoa Kỳ, bằng sáng chế phần mềm là hợp pháp. Mặc dù bạn không thể cấp bằng sáng chế cho toàn bộ
chương trình nhưng bạn có thể cấp bằng sáng chế cho các thuật toán mà chương trình đó sử dụng. Bằng sáng
chế như vậy là phổ biến và gây tranh cãi. Một số chương trình nguồn mở không sử dụng các định dạng tệp nhất
định vì các thuật toán cần thiết để sử dụng chúng đã được cấp bằng sáng chế và chủ sở hữu bằng sáng chế đã
đe dọa sẽ kiện những người dùng trái phép. Những người chỉ trích bằng sáng chế phần mềm cho rằng hầu hết
các bằng sáng chế như vậy đều tầm thường hoặc hiển nhiên—hai điều mà một phát minh đã được cấp bằng
sáng chế không được có. Các công ty đôi khi sử dụng bằng sáng chế phần mềm như một cách để ngăn chặn
công ty khác bán sản phẩm hoặc yêu cầu công ty bán sản phẩm thanh toán.
Ở nhiều quốc gia khác, thuật toán phần mềm không thể được cấp bằng sáng chế. Những nỗ lực đang được tiến
hành để thay đổi mối quan hệ giữa phần mềm và bằng sáng chế—cả hai đều nhằm tạo ra phần mềm
có thể được cấp bằng sáng chế ở những quốc gia không có và để hạn chế hoặc loại bỏ bằng sáng chế phần
mềm ở những quốc gia mà phần mềm hiện có thể được cấp bằng sáng chế.
nhãn hiệulà một loại tài sản trí tuệ khác. Đây là tên, logo và
định danh tương tự của một công ty hoặc sản phẩm cụ thể. Phần mềm và các công ty sản
xuất nó thường sử dụng nhãn hiệu, cũng như các công ty phần cứng. Một cá nhân ít tham
gia thực sự vào cộng đồng Linux đã đăng ký thương hiệu tên Linux vào năm 1994
và đã cố gắng tính tiền bản quyền cho cái tên đó. Sau một vụ kiện, nhãn hiệu
đã được chuyển giao cho Linux Mark Institute, hay LMI (
www.linuxfoundation.org/programs/legal/trademark.
Là người dùng cuối, bạn sẽ không cần phải xử lý các bằng sáng chế hoặc nhãn hiệu phần mềm. Các
vấn đề về bằng sáng chế và thương hiệu phần mềm diễn ra ở cấp công ty. Điều này trái ngược với
các vấn đề về bản quyền, có thể ảnh hưởng đến những cá nhân vi phạm luật bản quyền. Nếu như
Tuy nhiên, bạn làm việc cho một công ty phát hành phần mềm, luật về bằng sáng chế và thương hiệu có thể
ảnh hưởng đến bạn. Điều này đặc biệt đúng nếu phần mềm của bạn có khả năng vi phạm bằng sáng chế hoặc
Tòa án đã thường xuyên
nhãn hiệu phần mềm. Bạn nên tham khảo ý kiến luật sư nếu bạn tin rằng đây có thể là trường hợp.
tổ chức thi hành-
khả năng nhấp qua
tìm giấy phép tương tự,
Giấy phép phần mềm có thể sửa đổi các điều khoản bản quyền bằng cách làm cho
các điều khoản hạn chế hơn hoặc hạn chế hơn. Ví dụ, cácGiấy phép công cộng chung(
GPL), là giấy phép được nhân Linux sử dụng, cấp cho bạn quyền phân phối lại phần
mềm, bao gồm cả mã nguồn và các tệp nhị phân. Điều này thể hiện sự nới lỏng các
hạn chế do luật bản quyền cung cấp.
Theo nguyên tắc chung, giấy phép cho phần mềm sở hữu độc quyền đưa ra các hạn chế
đối với những gì đáng lẽ là quyền của bạn theo luật bản quyền, trong khi giấy phép nguồn
mở cấp cho bạn các quyền bổ sung. Tuy nhiên, có thể có ngoại lệ đối với quy tắc này; hoặc
ví dụ, mộtGiấy phép trang weblà giấy phép cho một chương trình độc quyền cấp cho một
tổ chức quyền tạo một số bản sao nhất định của chương trình—ví dụ: 100 bản sao của trình
xử lý văn bản cho tất cả các máy tính của công ty.
dự án GNU's Not Unix (GNU) được mô tả trong chương trước. FSF có một triết lý
nhất định, được mô tả tiếp theo, thể hiện trong GPL, là giấy phép phần mềm ưa
thích của FSF.
Thuật ngữ này nói chung FSF định nghĩa bốn quyền tự do phần mềm cụ thể:
phụ thuộc vào phần mềm
đó là miễn phí, Tự do sử dụng phần mềm cho bất kỳ mục đích nào
Tự do kiểm tra mã nguồn và sửa đổi nó khi bạn thấy phù hợp
ut không nhất thiết phải tự do như
Những quyền tự do này tương tự như các nguyên tắc được OSI tán thành, được mô tả
ngắn gọn. Tuy nhiên, có một số khác biệt quan trọng trong việc giải thích, cũng như sẽ sớm
được mô tả. FSF giải thích chi tiết về ý nghĩa của từng nguyên tắc của nó,
và tương tác của chúng, tạiwww.gnu.org/philosophy/free-sw.html.
Trong một thế giới lý tưởng, theo tiêu chuẩn của FSF, tất cả phần mềm sẽ được phân
phối tự do với mã nguồn và tất cả các quyền tự do vừa nêu. Một số Linux
Tìm kiếm nền tảng F ree S oftware miễn phí 5
các bản phân phối đáp ứng lý tưởng này trong sự cô lập, trong khi các bản phân phối khác bao
gồm phần mềm độc quyền. Đôi khi, phần mềm này là phần mềm miễn phí. Vào những thời điểm
khác, đó là một đoạn mã độc quyền cho phép nhà cung cấp hạn chế phân phối lại và tính tiền để
bán phần mềm. Vì phần mềm miễn phí không nhất thiết là miễn phí, nên việc bán nó không phải là
vấn đề theo quan điểm của FSF. Tuy nhiên, với các quyền tự do khác, giá của phần mềm miễn phí
có xu hướng về 0 khi nó được chuyển đi khắp nơi.
Mục đích của tất cả cuộc nói chuyện về quyền tự do này là trao quyền cho người dùng—không
chỉ các nhà phát triển r công ty. Nếu bạn có thể sửa đổi một chương trình mà khônghầu hết
những gì bạn muốn nó o làm để nó làmchính xácbạn muốn nó làm gì, thực tế đó là một lợi thế
lớn so với một chương trình độc quyền. Sau đó, nếu bạn có thể phân phối lại phiên bản chương
trình đã sửa đổi của mình, thì bạn có thể giúp đỡ những người khác (giả sử họ muốn có chức
năng tương tự). Do đó, triết lý của FSF, khi được áp dụng, có thể tạo ra lợi ích cho cộng đồng rộng
lớn hơn.
Triết lý của FSF và các giấy phép mà nó truyền cảm hứng thường được gọi là opyleft. Đây là cách
chơi chữ của từ bản quyền, phản ánh thực tế rằng các điều khoản về bản quyền được sử dụng để
đảm bảo các quyền tự do, ở một số khía cạnh, hoàn toàn trái ngược với những gì bản quyền
được tạo ra để làm—nghĩa là đảm bảo quyền tự do sao chép phần mềm của người dùng , chứ
không phải để hạn chế quyền đó.
cũ hơn 1 hiếm khi được sử dụng nữa.) Cả hai phiên bản của GPL đều áp dụng bốn các chương trình có thể sử dụng
quyền tự do của triết lý FSF cho phần mềm được cấp phép. Họ cũng đưa ra hàm ý cá nhân khác nhau
bây giờ sử dụng GPLv3 thay vì GPLv2. Tuy nhiên, một số chương trình đã không thay
đổi. Đáng chú ý trong số này là nhân Linux, vẫn sử dụng GPLv2. Đây là một lựa chọn
quan trọng vì điều đó có nghĩa là nhân Linux vẫn có thể được sử dụng ở trung tâm của
các thiết bị tương đối khép kín, chẳng hạn như TiVos và điện thoại dựa trên Android.
Nhiều thiết bị như vậy sử dụng các quy trình khởi động hạn chế để
ngăn các hạt nhân trái phép khởi động—một quá trình mà GPLv3 sẽ
cấm.
TÔI Một biến thể của GPL làGPL nhỏ hơn (LGPL). Các nhà phát triển thường sử
dụng GPL vớithư viện, là các tập hợp mã có thể được sử dụng bởi các chương
Từ viết tắt LGPL được sử dụng
trình khác. Chẳng hạn, trong Linux, các thư viện triển khai các tính năng tạo hộp
để mở rộng thành Thư viện
Một giấy phép liên quan khác làGiấy phép Tài liệu Miễn phí GNU (FDL), được thiết kế
để sử dụng trong tài liệu chứ không phải bởi các chương trình. GPL, được viết cho
phần mềm, không áp dụng hoàn hảo cho các tài liệu tĩnh, vì vậy FSF đã tạo GNU FDL
để lấp đầy khoảng trống. Một người dùng đáng chú ý của FDL là Wikipedia (
www.wikipedia.org).Tất cả nội dung của nó có sẵn theo các điều khoản
f GNU FDL.
cách là một tổ chức bảo trợ cho phần mềm nguồn mở nói chung. Triết lý của nó, được mô tả
chi tiết hơn trong thời gian ngắn, tương tự như triết lý của FSF nhưng khác ở một số chi tiết
quan trọng. Theo nguyên tắc chung, nhiều phần mềm đủ điều kiện là nguồn mở hơn là đủ
điều kiện là miễn phí (theo cách hiểu của FSF), nhưng chính xác thì cái gì
đủ điều kiện phụ thuộc vào định nghĩa nguồn mở và, theo một nghĩa chặt chẽ, vào
những gì OSI đã phê duyệt về mặt giấy phép của nó.
nhất định, bao gồm cả giới học thuật và giữa những người có sở thích. Các doanh nghiệp,
L ookingatthe O pen S source I nitiative 7
Tuy nhiên, họ đã chậm chấp nhận phần mềm miễn phí. Nhiều người chấp nhận nó đã làm như vậy một
cách miễn cưỡng hoặc thậm chí vô tình—các quản trị viên hệ thống, bị ép phải thực hiện
các công ty có ngân sách eo hẹp, sẽ âm thầm cài đặt Linux, Apache, Samba và các phần mềm
miễn phí khác như một cách để tránh phải mua các gói phần mềm thương mại đắt tiền.
giải pháp thay thế.
Những nỗ lực biện hộ của FSF đã (và đang) dựa trên một mệnh lệnh đạo đức mạnh mẽ—
phần mềm nên miễn phítheo quan điểm của FSF, với “miễn phí” được định nghĩa như mô
tả trước đó. Cách tiếp cận này hấp dẫn một số người, nhưng những người khác—đặc biệt là
các doanh nghiệp muốn kiếm tiền từ việc bán phần mềm—thấy kiểu biện hộ này tốt nhất là
kỳ lạ và tệ nhất là đe dọa.
Vì những lý do này, những người tạo ra OSI đã thiết kế tổ chức của họ như một cách vận động
cho phần mềm miễn phí. Bằng cách sử dụng một thuật ngữ mới—mã nguồn mở—và bằng cách
giảm nhẹ một số mệnh lệnh đạo đức của FSF, OSI nhằm mục đích thúc đẩy nguồn mở
oftware trong thế giới kinh doanh. Có thể thấy sự khác biệt về giọng điệu so với mệnh
lệnh đạo đức của FSF trong tuyên bố sứ mệnh trên trang web của OSI (www.open-
nguồn.org):
Nguồn mở là một phương pháp phát triển cho phần mềm khai thác sức mạnh của đánh giá
ngang hàng phân tán và tính minh bạch của quy trình. Lời hứa về chất lượng tốt hơn, độ tin
cậy cao hơn, tính linh hoạt hơn, chi phí thấp hơn của nguồn mở và chấm dứt sự khóa chặt
Sự khác biệt triết học lớn nhất giữa FSF và OSI được phản ánh trong yêu cầu của GPL
rằng các tác phẩm dẫn xuất cũng được phân phối theo GPL. OSI đã chứng nhận nhiều
giấy phép là nguồn mở, bao gồm cả GPL; tuy nhiên, nhiều giấy phép trong số này thiếu
các hạn chế tương tự. Trước đây, phần mềm được phát hành theo các giấy phép như
vậy đã tìm được đường vào các sản phẩm nguồn đóng. OSI không phản đối đường dẫn
như vậy, miễn là phần mềm được cấp phép theo cách cho phép nó. Mặt khác, FSF
nghiêm cấm rõ ràng việc chiếm đoạt như vậy cho các mục đích sử dụng độc quyền
trong GPL của nó.
Theo nguyên tắc chung, phần mềm tự do, theo nghĩa của FSF, cũng là phần mềm
nguồn mở, mặc dù một số giấy phép mà FSF công nhận là miễn phí thì không.
een được OSI chấp thuận. Tuy nhiên, nhiều giấy phép nguồn mở không đủ điều kiện là
miễn phí theo định nghĩa của FSF. Hình 2.1 minh họa mối quan hệ này.
số 8 Chương 2 • Hiểu biết về phần mềm cấp phép
Mã nguồn mở
Phần mềm
HÌNH 2 . 1Hầu hết các phần mềm tự do là mã nguồn mở, nhưng một số lượng đáng kể phần mềm mã nguồn
mở không miễn phí.
chứng nhận Ngày nay, một số căng thẳng tồn tại giữa những người theo chủ nghĩa thuần túy phần mềm tự
Khách quan
do theo nghĩa của FSF và cộng đồng nguồn mở thực dụng hơn. Tuy nhiên, đối với hầu hết các
phần, hai mục tiêu chia sẻ tương tự nhau đến mức sự khác biệt của chúng là nhỏ. Trên thực tế, hai
thuật ngữ,phần mềm mã nguồn mở và miễn phí (FOSS)Vàphần mềm mã nguồn mở miễn phí/miễn
phí (FLOSS), đôi khi được sử dụng như thuật ngữ ô để đề cập rõ ràng đến
các loại phần mềm và phát triển khác.
Quyền truy xuất tác phẩm giấy phép của anh ta phải cho phép người khác sửa đổi
TÔI oftware và phân phối các sửa đổi đó theo cùng một giấy phép như bản
gốc.
Lưu ý rằng định
nghĩa mã nguồn mở Tôn trọng tính toàn vẹn của mã nguồn anh ta giấy phép có thể hạn chế phân phối lại
của mã nguồn đã sửa đổi, nhưng chỉ khi các tệp vá lỗi có thể được phân phối cùng với
thừa nhận, nhưng không
Không phân biệt đối xử với người hoặc nhóm giấy phép của anh ta không được dis-
Không phân biệt đối xử với các lĩnh vực nỗ lực Giấy phép không được cấm
sử dụng chương trình trong bất kỳ lĩnh vực nào, chẳng hạn như trong kinh doanh hoặc bởi các nhà nghiên cứu di truyền học.
Phân phối giấy phép tự động giấy phép của anh ta phải áp dụng cho bất kỳ ai
nhận chương trình mà không cần thỏa thuận riêng.
Thiếu tính đặc hiệu của sản phẩm giấy phép của anh ta không được yêu cầu chương trình
được sử dụng hoặc phân phối như một phần của chương trình lớn hơn—nghĩa là bạn có thể trích
xuất một chương trình từ một bộ sưu tập lớn hơn và phân phối lại nó một mình.
Thiếu các hạn chế đối với phần mềm khác ông giấy phép không được áp đặt
các hạn chế đối với phần mềm khác được phân phối cùng với phần mềm được cấp
phép.
Công nghệ trung lập Giấy phép không được bị hạn chế dựa trên cụ thể
công nghệ hoặc giao diện.
Ba nguyên tắc đầu tiên trong số những nguyên tắc này là quan trọng nhất,
ít nhất là về mặt hiểu biết quan điểm của công nghệ nguồn mở. Toàn bộ bộ
sưu tập này rất giống với bốn nguyên tắc của FSF và phần mô tả mở rộng về
ý nghĩa của nó trên trang web của FSF (ww.gnu
org/philosophy/free-sw.html).Tuy nhiên, như đã mô tả, có một số khác
biệt, đặc biệt là đối với các yêu cầu cấp phép cho
tác phẩm ra đời.
cảm hứng, một phần, bởi những huyền thoại và truyền thuyết thông thường.Chiến tranh giữa các vì saoTuy
nhiên, bản thân nó đã được đăng ký bản quyền, điều này hạn chế quyền của các nghệ sĩ hiện tại trong việc phân
phối các tác phẩm bắt nguồn từ nó, ít nhất là khi chưa được phép.
Creative Commons thúc đẩy các mục tiêu của mình bằng cách cung cấp sáu giấy phép được cấp
cho các mục đích khác nhau. Bạn có thể chọn giấy phép bằng cách trả lời một vài câu hỏi trên
trang web Creative Commons tạittp://creativecommons.org/choose/,chẳng hạn như liệu bạn có
muốn cho phép sử dụng thương mại tác phẩm của mình hay không.
0 Chương 2 • Hiểu biết về phần mềm cấp phép
FSF và OSI được dành riêng để thúc đẩy quyền tự do phần mềm. Tuy
nhiên, các mục tiêu của Creative Commons rộng hơn. Giấy phép của nó dành
cho các bản ghi âm, ghi hình, tác phẩm văn bản, v.v., không chỉ các chương
trình máy tính. Tuy nhiên, Creative Commons với tư cách là một tổ chức giúp
thúc đẩy các loại quyền tự do cũng liên quan đến FSF và anh ấy OSI.
phổ biến: một cũ hơn Mỗi giấy phép mã nguồn mở đều có những đặc điểm riêng của nó. Những điều này chủ yếu
ba mệnh đề và một được các nhà phát triển quan tâm, những người có thể muốn đóng góp cho một dự án phần
ewer hai mệnh đề ver-
mềm, nhưng đôi khi chúng có thể quan trọng đối với người quản trị hệ thống. Các giấy phép
sion. (Ba mệnh đề
erion đôi khi là
nguồn mở chính bao gồm:
được gọi làewhoặc
TÔI BSD Giấy phép BSD được sử dụng bởi các hệ điều hành BSD nguồn mở và bởi các thành phần
phần mềm khác nhau được phát triển cho chúng. Không giống như GPL, giấy phép BSD
cho phép các sửa đổi được phân phối theo các giấy phép khác. Các phiên bản mới nhất hai điều
chứng nhận khoản và ba điều khoản) của giấy phép này tương tự như giấy phép MIT về bản sửa đổi.
Khách quan
apache giống như giấy phép BSD và MIT, giấy phép Apache là một mã nguồn mở chứng nhận
Khách quan
giấy phép cho phép phân phối lại theo cùng một giấy phép hoặc giấy phép khác. Nếu một văn bản
ile được gọiDẠYđi kèm với tác phẩm gốc, nó phải được đưa vào bất kỳ tác phẩm phái sinh
J
nào. Điều này cho phép nhà phát triển ban đầu cung cấp thông tin liên hệ hoặc thông tin
khác, ngay cả với người dùng các phiên bản chương trình đã được sửa đổi nhiều. Cái tên nói lên tất cả,
Thuộc về nghệ thuậtGiấy phép Nghệ thuật ban đầu được phát triển cho ngôn ngữ lập trình bắt nguồn từ
Trình duyệt web Apache;
Perl, nhưng nó đã được sử dụng với các chương trình khác. Nó chứa đầy những yêu cầu và sơ
Tuy nhiên, nó được sử
hở cho những yêu cầu đó. Hầu hết các phần mềm sử dụng giấy phép Nghệ thuật đều được vận
dụng bởi nhiều dự án khác
chuyển với quy định rằng giấy phép này là tùy chọn; thay vào đó, người dùng có thể chọn tuân tốt.
theo các điều khoản của một số giấy phép khác (thường là GPL).
Nhiều giấy phép bổ sung đáp ứng các yêu cầu của OSI. Bạn có thể tìm thấy danh
sách đầy đủ trên trang web Sáng kiến nguồn mở tạiwww.opensource.org/
giấy phép/.
Chi tiết về các giấy phép nguồn mở khác nhau có lẽ không quan trọng đối với hầu hết J
các quản trị viên hệ thống. Bạn có thể sử dụng và phân phối lại bất kỳ chương trình mã
Một số kết hợp của
nguồn mở nào nếu muốn. Tuy nhiên, nếu bạn sửa đổi một chương trình, bạn nên biết các
giấy phép mã nguồn mở
yêu cầu phân phối lại, đặc biệt nếu bạn muốn hợp nhất hai hoặc nhiều chương trình hoặc nốt Rêkhông tương thích
phân phối một chương trình theo giấy phép đã sửa đổi. Bạn cũng nên lưu ý rằng một số ith nhau, có nghĩa là
bản phân phối Linux có thể bao gồm phần mềm không đủ tiêu chuẩn là nguồn mở. Một số bạn không thể
eally kết hợp các
trong số này là phần mềm thương mại và một số thuộc danh mục biến thể.
mã và phát hành
phiên bản sửa đổi.
Mối quan tâm cuối cùng khi mô tả giấy phép phần mềm là toàn bộ giấy phép cho Linux.
Khi bạn tải xuống một tệp hình ảnh hoặc mua một gói Linux, phần mềm bạn nhận được sẽ
sử dụng nhiều giấy phép—gPL, giấy phép BSD, giấy phép MIT, v.v. Hầu hết các giấy phép này
là nguồn mở, nhưng một số thì không. Nhiều bản phân phối đi kèm với một vài gói phần
mềm chia sẻ hoặc không hoàn toàn là mã nguồn mở, chẳng hạn như chương trình đồ họa
XV phần mềm chia sẻ. Gói bán lẻ đôi khi bao gồm phần mềm thương mại hoàn toàn. Vì lý do
này, bạn không nên sao chép đĩa của gói Linux bán lẻ trừ khi bạn đã nghiên cứu vấn đề và
phát hiện ra rằng việc sao chép là được. Nếu nhà cung cấp phân phối cung cấp các liên kết
tải xuống miễn phí, thì việc sao chép có thể được cho phép.
Các bản phân phối Linux bao gồm các chương trình cài đặt, chương trình cấu hình và những
thứ tương tự. Những công cụ này thường là tất cả những gì mà một nhà đóng gói phân phối có
thể đưa ra yêu cầu về bản quyền. Hầu hết các nhà bảo trì phân phối đã cung cấp các quy trình
cài đặt và cấu hình của họ theo GPL hoặc một số giấy phép nguồn mở khác, nhưng điều này
không phải lúc nào cũng đúng. Những chi tiết như vậy có thể biến thứ có vẻ giống như một hệ
điều hành nguồn mở thành một thứ không hoàn toàn mở
2 Chương 2 • Hiểu biết về phần mềm cấp phép
nguồn. Debian duy trì chính sách chỉ sử dụng phần mềm nguồn mở trong bộ gói chính
của nó, mặc dù nó cho phép phân phối lại tự do nhưng không phải nguồn mở
rograms vào bộ gói "không miễn phí" của nó.
Bởi vì một bản phân phối Linux hoàn chỉnh bao gồm các thành phần sử dụng nhiều giấy phép,
sẽ không hữu ích khi nói về một bản quyền hoặc giấy phép duy nhất áp dụng cho toàn bộ HĐH.
Thay vào đó, bạn nên nghĩ về một bản phân phối Linux như một tập hợp các
các sản phẩm đi kèm với một tiện ích cài đặt thống nhất. Tuy nhiên, phần lớn tất cả các chương
trình đều sử dụng giấy phép nguồn mở này hoặc giấy phép khác.
Dịch vụ và Hỗ trợ Bản thân sản phẩm có thể là nguồn mở và thậm chí được cung cấp
miễn phí, trong khi công ty bán các dịch vụ và hỗ trợ, chẳng hạn như đào tạo và đường dây
điện thoại hỗ trợ kỹ thuật. Chẳng hạn, một trò chơi có thể là mã nguồn mở nhưng yêu cầu
đăng ký một dịch vụ trực tuyến để cung cấp đầy đủ các tính năng.
Cấp phép kép Một công ty có thể tạo hai phiên bản của sản phẩm: một phiên bản là
nguồn mở hoàn toàn và một phiên bản khác bổ sung các tính năng không có sẵn trong
phiên bản nguồn mở. Phiên bản mã nguồn mở sau đó giống với các mẫu miễn phí mà các
siêu thị thường cung cấp—đó là một cách để thu hút khách hàng trả tiền.
nhiều sản phẩm Sản phẩm mã nguồn mở có thể chỉ là một sản phẩm từ
công ty, với doanh thu được tạo ra bởi các dòng sản phẩm khác. những cái khác
dòng sản phẩm có thể là phần mềm khác hoặc một số sản phẩm khác, chẳng hạn như hướng dẫn sử dụng.
TÔI Trình điều khiển mã nguồn mở Một trường hợp đặc biệt của trường hợp trước là phần cứng
người bán hàng. Họ có thể chọn phát hành các trình điều khiển, hoặc thậm chí có thể là các ứng dụng dành riêng cho
Khi nhà cung cấp phần
phần cứng, dưới dạng mã nguồn mở như một cách để quảng bá phần cứng của họ.
cứng phát hành trình điều
khiển nguồn mở, mã tiền thưởng tiền thưởnglà một phương pháp gây quỹ cộng đồng. Người dùng có thể thúc đẩy nguồn mở
tiết lộ lập trình
sáng tạo bằng cách đề nghị trả tiền cho phần mềm mới hoặc các tính năng mới trong phần
thông tin về
phần cứng của endor.
mềm hiện có. Các trang web như FOSS Factory (www.fossfactory.org)và nguồn tiền thưởng
Vì vậy, một số nhà cung cấp đang www.bountysource.com)có thể giúp tập hợp những người dùng lại với nhau, mỗi người
miễn cưỡng phát hành trong số họ có thể không thể cung cấp đủ tiền để thúc đẩy sự phát triển, để lôi kéo
trình điều khiển mã nguồn mở.
lập trình viên để viết mã mong muốn. Với tiền thưởng, lập trình viên
hoàn thành dự án đầu tiên được phép thu tiền tích lũy của dự án.
T he E ssentialsand B eyond 3
Quyên góp bất kỳ dự án nguồn mở nào cũng chấp nhận đóng góp để giúp tài trợ cho việc phát triển
sự lựa chọn. Mặc dù đây không phải là một mô hình tài trợ thương mại theo nghĩa thông thường, nhưng nó
oes giúp tài trợ cho hoạt động của các tổ chức như FSF.
Ngoài những cơ hội thương mại này, tất nhiên, rất nhiều phần mềm nguồn mở được phát
triển trong giới hàn lâm, bởi chính phủ, các tổ chức phi lợi nhuận, những người có sở thích,
v.v. Ngay cả các công ty cũng có thể được thúc đẩy để trả lại những thay đổi mà họ tạo ra
cho chính họ, bởi vì việc tích trữ những thay đổi của họ sẽ tạo ra nhiều công việc hơn—nếu
một thay đổi nội bộ không được trả lại cho tác giả ban đầu, thì thay đổi đó sẽ phải được áp
dụng lại với mỗi bản phát hành mới.
Việc cấp phép phần mềm đôi có thể phức tạp và đó là một chủ đề hiếm khi được dân kỹ thuật quan
tâm. Tuy nhiên, các điều khoản cấp phép có thể ảnh hưởng đến cách toàn bộ cộng đồng phần mềm
hoạt động và do đó, cách phần mềm phát triển theo thời gian. Linux bị chi phối bởi một số giấy phép
nguồn mở, cho phép (và đôi khi yêu cầu) các thay đổi vẫn miễn phí. Những giấy phép như vậy thường
áp đặt một vài hoặc không hạn chế về cách bạn có thể sử dụng phần mềm. Điều này trái ngược với
các giấy phép độc quyền, thường có nhiều hạn chế. Các tổ chức như FSF, OSI và Creative Commons
thúc đẩy các giấy phép nguồn mở. OSI đặc biệt cố gắng thuyết phục các doanh nghiệp áp dụng giấy
phép nguồn mở, ủng hộ các mô hình kinh doanh sử dụng nguồn mở như một cách để tạo doanh thu.
Đọc tuyên bố sứ mệnh của OSI (trên trang Giới thiệu tạiwww.opensource.org/about) và phần
Công việc cốt lõi của chúng tôi trên trang Giới thiệu của FSF (www.fsf.org/about/).
. Giấy phép không được phân biệt đối xử với người hoặc nhóm người.
b.Giấy phép không được yêu cầu phần mềm phải được phân phối như một phần của một sản
phẩm cụ thể.
. Giấy phép phải yêu cầu các thay đổi được phân phối theo cùng một giấy phép.
(Còn tiếp)
4 Chương 2 • Hiểu biết về phần mềm cấp phép
Đ.Chương trình phải đi kèm với mã nguồn hoặc tác giả phải cung cấp mã nguồn
sẵn có trên Internet.
. Giấy phép phải tự động áp dụng cho bất kỳ ai mua phần mềm.
. Chúng được bảo vệ bởi giấy phép GPL hoặc BSD, tùy thuộc vào phân phối.
. Đôi khi chúng có thể không được sao chép do chúng có thể chứa phần mềm nguồn mở không phải
mã nguồn mở.
. Chúng chỉ có thể được sao chép sau khi phần mềm sử dụng giấy phép MIT bị xóa.
Đ.Tất cả đều hoàn toàn phù hợp với các nguyên tắc của phong trào nguồn mở.
. Tất cả chúng đều đủ điều kiện là phần mềm miễn phí, vì FSF sử dụng thuật ngữ này.
. Điều nào sau đây là một phần quan trọng trong triết lý của FSF?
. Các nhà phát triển nên sử dụng phiên bản mới nhất của FSF's GPL.
. Người dùng phải có quyền sửa đổi phần mềm miễn phí và phân phối nó theo giấy
. Các nhà phát triển chỉ nên viết phần mềm cho các hệ điều hành miễn phí như GNU/Linux.
. Người dùng nên tham gia vào hành vi bất tuân dân sự bằng cách sao chép phần mềm độc quyền.
. Người dùng phải có quyền sử dụng phần mềm khi họ thấy phù hợp.
. Đúng hay sai: Luật bản quyền chi phối việc phân phối phần mềm ở hầu hết các quốc gia.
. Đúng hay sai: Định nghĩa phần mềm tự do của FSF và 10 nguyên tắc của phần mềm mã
nguồn mở của OSI đều yêu cầu người dùng có khả năng kiểm tra hoạt động của một
. Đúng hay sai: Vì thiết kế phần cứng của họ là độc quyền nên các nhà cung cấp phần cứng không
thể phát hành trình điều khiển nguồn mở cho sản phẩm của họ.
. Giấy phép do FSF tạo ra và thường được sử dụng cho các thư viện là
. Một tổ chức cống hiến cho việc thúc đẩy các nguyên tắc giống mã nguồn mở trong các lĩnh vực như
. Các nguyên tắc chung của FSF được tóm tắt bằng thuật ngữ đề cập đến
để sử dụng luật bản quyền cho các mục đích theo một số cách trái ngược với mục đích ban đầu của
bản quyền.
10.Người dùng có thể thúc đẩy các lập trình viên làm việc trên các dự án mã nguồn mở bằng cách cung cấp một(n)
Chương này đề cập đến những vấn đề này, bắt đầu với thông tin về nguồn gốc của Linux và
sự phát triển của nó theo thời gian cho đến hiện tại. Sau đó, chúng tôi mô tả các nguyên tắc
nguồn mở và cách chúng có thể ảnh hưởng đến cách hoạt động của HĐH nguồn mở trong thế
giới thực. Cuối cùng, chúng tôi mô tả một số vai trò mà Linux có thể hoạt động—với tư cách là
HĐH nhúng, HĐH máy tính để bàn hoặc máy tính xách tay và HĐH máy chủ.
thế giới máy tính, 25 năm là một khoảng thời gian vĩnh cửu. Phần mềm và văn hóa vào đầu những năm
1990, và thậm chí trước đó, đã truyền tải khá nhiều di sản cho thế hệ ngày nay.
6 Chương 3 • Tôi tìm hiểu nguyên lý và triết học L inux
thế giới phần mềm. Rốt cuộc, những gì chúng ta sử dụng ngày nay được xây dựng trên nền tảng
đã được tạo ra trong quá khứ. Vì vậy, nhìn vào nguồn gốc của Linux sẽ giúp bạn hiểu Linux như nó
tồn tại ngày nay.
khả năng chỉ chạy một ứng dụng tại một thời điểm) thậm chí còn không tận dụng hết bộ
nhớ hoặc CPU có sẵn vào thời điểm đó. Các phiên bản Microsoft Windows có sẵn vào năm
1991 chạy trên DOS. Mặc dù các phiên bản đầu tiên của Windows đã giúp giải quyết một số
hạn chế của DOS, nhưng về cơ bản chúng không khắc phục được bất kỳ hạn chế nào. Những
phiên bản đầu tiên của Windows được sử dụnghợp tác đa nhiệm, chẳng hạn, trong đó các
chương trình có thể tự nguyện nhường thời gian CPU cho các quy trình khác. Nhân DOS
không thể giành quyền kiểm soát từ một chương trình làm ngốn thời gian của CPU.
TÔI Trên cấp độ PC, Unix là một hệ điều hành phổ biến vào năm 1991. So với DOS và
phiên bản Windows thời đó, Unix là một hệ điều hành phức tạp. Hỗ trợ Unix
Unix không phải là duy nhất
orted nhiều tài khoản và cung cấp đúngưu tiên đa nhiệmtrong đó nhân có thể lên lịch
đa năng, đa nhiệm-
hệ điều hành vào năm 1991. Những hệ
thời gian CPU cho các chương trình, ngay cả khi các chương trình không tự nguyện từ bỏ
điều hành khác, chẳng hạn như Hệ quyền kiểm soát. Những tính năng này là nhu cầu thiết thực cho nhiều máy chủ và cho các
thống bộ nhớ ảo (VMS), đã
máy tính nhiều người dùng như máy tính mini và máy tính lớn.
khả dụng. Unix cao cấp
Theo thời gian, khả năng của từng loại máy tính đã tăng lên. Theo hầu hết các biện pháp, PC
nhất so với Linux
ngày nay có sức mạnh của máy tính mini hoặc thậm chí là máy tính lớn của năm 1991. Hệ điều
lịch sử, mặc dù.
hành được sử dụng trên PC của năm 1991 không phù hợp với phần cứng mạnh hơn. Tuy nhiên,
bản thân việc có thêm sức mạnh tính toán không loại bỏ được sự bắt chước của DOS. Vì lý do này,
TÔI DOS và các hệ điều hành máy tính nhỏ cùng thời với nó phần lớn đã bị bỏ rơi để nhường chỗ cho
VMS thứ i. trình kết nối với các máy tính lớn hơn của trường đại học của ông. như của anh ấy
rogram phát triển, anh ấy bắt đầu thêm các tính năng biến chương trình đầu cuối của mình
thành thứ gì đó có thể được mô tả chính xác hơn là nhân hệ điều hành. Cuối cùng, anh bắt đầu
E khám phá L inuxthroughthe A ges 7
viết với mục tiêu tạo ra một hạt nhân tương thích với Unix—nghĩa là một hạt
nhân có thể chạy nhiều loại phần mềm Unix có sẵn vào thời điểm đó.
Ngược lại, lịch sử của Unix kéo dài thêm hai thập kỷ nữa, bắt đầu từ AT&T vào năm
1969. Bởi vì AT&T là công ty độc quyền về điện thoại ở Hoa Kỳ vào thời điểm đó, nên nó
bị cấm bán phần mềm theo luật. Do đó, khi nhân viên của họ tạo ra Unix, AT&T về cơ
bản đã cho đi hệ điều hành này. Các trường đại học đặc biệt hào hứng với việc áp dụng
Unix và một số bắt đầu sửa đổi nó, vì AT&T đã cung cấp mã nguồn. Như vậy Unix đã có
một lịch sử phát triển phần mềm mở kéo dài hai thập kỷ để bắt đầu. Hầu hết các
chương trình Unix được phân phối dưới dạng mã nguồn, bởi vì Unix chạy trên nhiều
nền tảng phần cứng khác nhau—chương trình nhị phân
ram được tạo cho một máy sẽ hiếm khi chạy trên một máy khác.
Ngay từ rất sớm, Linux đã bắt đầu khai thác kho phần mềm sẵn có này. Như đã lưu ý
trong Chương 1, các nhà phát triển Linux ban đầu đặc biệt quan tâm đến phần mềm của dự
án GNU, vì vậy Linux đã nhanh chóng tích lũy một bộ sưu tập các tiện ích GNU. Phần lớn
phần mềm này đã được viết cho các máy trạm và máy tính mạnh hơn, nhưng vì phần cứng
máy tính không ngừng được cải thiện nên nó chạy tốt trênx86 PC đầu những năm 1990.
J
Hệ điều hành 386BSD là một hệ điều
Linux nhanh chóng có được sự ủng hộ nhiệt tình của các nhà phát triển, những người nhìn thấy tiềm hành giống Unix cạnh tranh
trên Linux và viết các chương trình hỗ trợ dành riêng cho Linux. Vào giữa những năm 1990, một số bản Hỗ trợ: FreeBSD, NetBSD,
phân phối Linux đã tồn tại, bao gồm một số bản tồn tại cho đến ngày nay. (Slackware được phát hành vào bútBSD, DragonFly
BSD và PC-BSD.
năm 1993 và Red Hat vào năm 1995 chẳng hạn.)
làm trong một tiến trình lớn. Năm 1991, một thiết kế hạt nhân cạnh tranh,
bây giờ với tư cách là một hạt nhân siêu nhỏ, đã trở thành cơn thịnh nộ. Microkernels nhỏ
hơn nhiều so với onolithic kernels; họ di chuyển càng nhiều tác vụ càng tốt vào các quy
trình không thuộc nhân và sau đó quản lý liên lạc giữa các quy trình.
Ngay sau khi Linux được phát hành, Linus Torvalds đã tham gia vào một cuộc tranh luận
công khai với Andrew Tanenbaum, người tạo ra Hệ điều hành Minix mà Torvalds đã sử dụng
làm nền tảng phát triển ban đầu cho Linux. Minix sử dụng thiết kế vi hạt nhân và Tanenbaum
một vấn đề thực tế đối với người dùng cuối, hoặc là thiết kế hoạt động. Linux và các hạt
nhân có nguồn gốc từ BSD sử dụng các thiết kế nguyên khối, trong khi các phiên bản hiện đại
của Windows, GNU HURD và Minix là những ví dụ về vi hạt nhân. Tuy nhiên, một số người vẫn
Cải tiến trong Kernel nhân Linux đã chứng kiến những thay đổi lớn kể từ
1991, khi nó thiếu nhiều tính năng mà chúng ta dựa vào ngày nay. Các cải tiến bao
gồm việc bổ sung các tính năng mạng, vô số trình điều khiển phần cứng, tính năng hỗ
trợ hoặc quản lý năng lượng và hỗ trợ cho nhiềux6 CPU.
Những cải tiến trong Công cụ hỗ trợGiống như công việc đã tiến triển trên Linux
ernel, những cải tiến cũng đã được thực hiện đối với các chương trình hỗ trợ mà nó
dựa vào—các trình biên dịch, shell, GUI, v.v.
Tạo các công cụ hỗ trợ mới công cụ hỗ trợ mới đã xuất hiện trên
năm. Chúng bao gồm từ các tiện ích đơn giản và nhỏ đến các môi trường máy tính để bàn lớn. Trên thực
tế, một số công cụ này, chẳng hạn như môi trường máy tính để bàn hiện đại, còn hơn thế nữa
quan trọng đối với người dùng cuối hơn là chính hạt nhân.
phản ứng của phân phối mớiNhư đã lưu ý trước đó, Slackware có từ năm 1993 và Red
Hat (tiền thân của Red Hat Enterprise Linux, CentOS và Fedora) có nguồn gốc từ năm 1995.
Các bản phân phối khác đã xuất hiện trong những năm gần đây và một số khá quan trọng.
Ví dụ, hệ điều hành Android được sử dụng trên điện thoại thông minh và máy tính bảng đã
trở nên rất có ảnh hưởng trong thập kỷ qua.
Nguồn gốc của Linux vẫn còn rất nhiều trong phần mềm nguồn mở của những năm 1980 và 1990.
Mặc dù người dùng máy tính để bàn hoặc hệ điều hành nhúng thông thường có khả năng cảm nhận
HĐH thông qua lăng kính của GUI, nhưng phần lớn những gì xảy ra bên dưới bề mặt.
appens vì nhân Linux và các công cụ nguồn mở, nhiều công cụ trong số đó đã tồn tại
hàng thập kỷ.
số lượng các loại khác nhau tùy thuộc vào độ sâu của phân tích và định kiến
của người thực hiện việc phân loại. Tuy nhiên, như một điểm khởi đầu, bốn
loại sẽ làm:
Phần mềm thương mại Cá nhân hoặc công ty phát triển thương mại
phần mềm với ý định bán nó để kiếm lời. Các nhà phát triển thường giữ bí mật mã nguồn của
phần mềm thương mại, điều đó có nghĩa là người dùng thường không thể thực hiện các thay đổi
đối với phần mềm ngoại trừ việc thay đổi cài đặt cấu hình mà phần mềm hỗ trợ. Trước đây, phần
mềm thương mại được bán tại cửa hàng hoặc đặt hàng qua thư, nhưng ngày nay phần mềm này
thường được bán thông qua tải xuống từ Internet. Phân phối lại phần mềm thương mại nói
chung là bất hợp pháp. Microsoft Windows và Microsoft Office là những ví dụ phổ biến về phần
mềm thương mại.
Phần mềm chia sẻ rom một góc độ pháp lý,phần mềm chia sẻphần mềm cũng tương tự
với phần mềm thương mại ở chỗ nó có bản quyền và tác giả yêu cầu thanh toán. Sự khác biệt là
phần mềm chia sẻ được phân phối trên Internet hoặc theo những cách khác và được "bán" trên
một hệ thống danh dự—nếu bạn sử dụng phần mềm sau thời gian dùng thử, bạn sẽ phải trả tiền
cho tác giả. Phần mềm chia sẻ phổ biến vào năm 1991 và vẫn có sẵn cho đến ngày nay, nhưng rất
hiếm.
Phần mềm miễn phí reeware, giống như phần mềm chia sẻ, có sẵn miễn phí. không giống J
Tuy nhiên, tác giả phần mềm chia sẻ, tác giả của phần mềm miễn phí không yêu cầu thanh toán. Đôi
phần mềm trả lạikhông
khi, phần mềm miễn phí là phiên bản rút gọn của một chương trình thương mại hoặc phần mềm chia
nên nhầm lẫn vớiphần
sẻ hoàn chỉnh hơn. Vào những thời điểm khác, các tác giả cung cấp miễn phí để quảng cáo một sản mềm ree, đó là chặt chẽ
phẩm khác. Ví dụ bao gồm trình điều khiển Windows cho nhiều liên quan đến phần mềm
thiết bị phần cứng hoặc chương trình Adobe Reader để đọc tệp Định dạng Tài liệu Di động mã nguồn mở. Chương 3,
hiểu biết
(PDF). Cũng như các chương trình thương mại và phần mềm chia sẻ, phần mềm miễn phí
cấp phép phần mềm,”
thường không có mã nguồn. mô tả phần mềm miễn phí
Các biến thể trong mỗi danh mục này tồn tại, cũng như các giống lai không hoàn toàn phù hợp J
với bất kỳ danh mục nào. Chẳng hạn, Sáng kiến nguồn mở duy trì một danh sách các giấy phép
Chương 2 bao gồm
mà nó đã phê duyệt là đáp ứng các tiêu chí của nó (www.mã nguồn mở . org/giấy phép).Tuy nhiên,
mã nguồn mở cụ thể
các nhà phát triển đôi khi phát hành phần mềm bằng cách sử dụng giấy phép khó hiểu hoặc sử đá lớn hơn
dụng giấy phép áp đặt các điều kiện vi phạm một trong các quy tắc OSI khó hiểu hơn. Phần mềm etail.
như vậy về mặt kỹ thuật không phải là nguồn mở, nhưng nó có thể gần với nguồn mở hơn là một
danh mục khác.
0 Chương 3 • Tôi tìm hiểu nguyên lý và triết học L inux
Ý tưởng cơ bản đằng sau phần mềm nguồn mở là phần mềm được phát triển theo cách
minh bạch có khả năng vượt trội hơn so với phần mềm được phát triển theo cách đóng.
Tính ưu việt này (và lập luận chống lại nó) dựa trên các tính năng sau:
TÔI Mã tốt hơnĐưa mã nguồn ra cộng đồng nói chung có nghĩa là nó có thể
e được xem xét, đánh giá và cải tiến bởi bất kỳ bên quan tâm nào. Các lỗi không rõ ràng có thể
nguyên tắc của
được tìm thấy và loại bỏ, trong khi chúng có thể tồn tại và gây ra sự cố trong một sản phẩm
mã nguồn xpose
cho cộng đồng nguồn đóng. Mặt khác, tính hợp lệ của tuyên bố này không được hỗ trợ tốt.
dẫn đến tốt hơn được xác định bởi nghiên cứu và các dự án nhỏ hơn có thể không thu hút được nhiều sự quan tâm từ
mã đôi khi là các lập trình viên khác, vì vậy họ có thể không được hưởng lợi từ việc xem xét mã bên ngoài.
gọi là định luật Linus,
được phát biểu linh hoạt hơnBằng cách cung cấp cho người dùng mã nguồn, mã nguồn mở
y Eric S. Raymond project cung cấp cho người dùng khả năng tùy chỉnh phần mềm theo nhu cầu của riêng họ. Nếu
trong Nhà thờ và
người dùng gửi lại các thay đổi cho những cá nhân duy trì phần mềm hoặc phát hành chúng dưới
Chợ: “Cho đủ rồi
dạng một nhánh mới của dự án, thì mọi người đều có thể hưởng lợi từ những thay đổi đó. Tất
các bạn, tất cả các lỗi đều
nông cạn. nhiên, những người chỉ trích sẽ lập luận rằng sự linh hoạt này chỉ mang lại lợi ích cho những người
có kỹ năng và thời gian cần thiết để thực hiện những thay đổi đó, hoặc những người có tiền để
thuê người làm việc đó.
Chi phí thấp hơnMặc dù định nghĩa nguồn mở không cấm bán phần mềm,
nhưng các yêu cầu phân phối lại có nghĩa là phần mềm nguồn mở cuối cùng sẽ
được cung cấp miễn phí. Mặt khác, nếu bạn muốn được hỗ trợ, bạn có thể cần
phải mua một hợp đồng hỗ trợ, điều này có thể làm giảm hoặc loại bỏ
hầu hết lợi ích.
Thiếu khóa nhà cung cấpCác nhà phát triển của một số sản phẩm độc quyền, và
những thứ đặc biệt rất phổ biến, có thể gây khó khăn cho các sản phẩm cạnh tranh bằng cách
sử dụng các tiêu chuẩn hoặc định dạng tệp độc quyền và bằng cách không hỗ trợ các tiêu chuẩn
mở hơn. Các công cụ nguồn mở ít gặp phải các vấn đề như vậy, vì chúng có thể
Chúng tôi đã sửa đổi để hỗ trợ các tiêu chuẩn mở, ngay cả khi ban đầu chúng không làm như vậy. Tuy
nhiên, như một vấn đề thực tế, ngay cả các định dạng và giao thức tệp độc quyền thường được thiết kế
ngược, do đó, việc khóa nhà cung cấp thường kết thúc bằng một vấn đề tạm thời chứ không phải là vấn
đề vĩnh viễn.
Tất nhiên, trong cộng đồng Linux, sự đồng thuận chung là mỗi yếu tố này
là một điểm thực sự có lợi cho Linux và phần mềm nguồn mở trong
tướng; những nhược điểm được ghi nhận thường được coi là nhỏ khi so sánh với
những ưu điểm. Cuối cùng, bạn sẽ cần tự quyết định về những vấn đề này sau khi sử
dụng các loại phần mềm khác nhau.
Ngay sau khi Unix được tạo ra, hệ điều hành này đã bị phân mảnh thành một tập hợp các hệ điều hành
được liên kết lỏng lẻo. Các hệ điều hành này không tương thích ở cấp độ nhị phân nhưng ít nhiều
Hiểu về các vai trò của OSR 41
tương thích ở cấp độ mã nguồn. Điều này vẫn đúng cho đến ngày nay. Bạn có thể lấy cùng một
chương trình và biên dịch nó cho FreeBSD, OS X và Linux, và nó sẽ hoạt động như nhau trên cả ba
nền tảng—nhưng các tệp nhị phân đã biên dịch được tạo cho một nền tảng sẽ không hoạt động
trên các nền tảng khác.
Tuy nhiên, có những ngoại lệ đối với quy tắc này. Một số chương trình dựa trên các tính năng chỉ có trên
một số HĐH giống Unix. Những người khác có những điều kỳ quặc khiến không thể biên dịch chúng trên một
số hệ điều hành. Nếu một chương trình rơi vào tình trạng không sử dụng được, nó có thể
ecome không sử dụng được trên các hệ điều hành mới hơn vì nó phụ thuộc vào trình biên dịch hoặc các tính năng của hệ
điều hành đã thay đổi. Những vấn đề như vậy có xu hướng được giải quyết theo thời gian, nhưng chúng lại phát sinh theo
định kỳ.
Do tính phổ biến của Linux, hầu hết các chương trình Unix nguồn mở đều biên dịch và hoạt
động tốt trên Linux. Các chương trình thương mại dành cho Linux cũng tồn tại, mặc dù hầu hết
các chương trình này đều ít người biết đến hoặc chuyên biệt. Trong mọi trường hợp, Linux đã trở
thành HĐH mà hầu hết các chương trình Unix nguồn mở phải hỗ trợ. Hiệu ứng này mạnh đến
mức nhiều dự án hiện nhắm đến Linux làm nền tảng chính.
Máy tính đảm nhận nhiều vai trò trên thế giới và khi máy tính ngày càng trở nên phổ biến
và ít tốn kém hơn, những vai trò đó đã tăng lên gấp bội. Linux có thể đóng vai trò là HĐH
cho hầu hết các vai trò này, mỗi vai trò dựa trên tập hợp con các tiện ích hỗ trợ của riêng
nó. Một số vai trò này cũng yêu cầu điều chỉnh chính kernel. Chúng tôi
mô tả ngắn gọn ba trong số các vai trò này: máy tính nhúng, máy tính để bàn và máy
tính xách tay và máy tính máy chủ.
Apple, Microsoft và
các nhà cung cấp khác cung cấp
Như đã lưu ý trong Chương 1, máy tính nhúng là thiết bị chuyên dụng đáp ứng một mục
đích cụ thể. Ví dụ bao gồm những điều sau đây: J
Điện thoại di động điện thoại di động khác sử dụng máy tính có hệ điều hành có phạm vi
từ đơn giản đến phức tạp. Linux hỗ trợ một số điện thoại di động này, thường ở dạng Gói MythTV
ww.mythtv
hệ điều hành Android.
. tổ chức) có thể biến PC
Máy đọc sách điện tửNhững thiết bị này, như điện thoại di động, là những máy tính chuyên dụng và do đó sử thông thường thành
là máy tính có phần mềm chuyên dụng. Một số trong số này, bao gồm các mẫu TiVo
phổ biến, chạy Linux. J
2 Chương 3 • Tôi tìm hiểu nguyên lý và triết học L inux
máy tính ô tôÔ tô đã bao gồm máy tính trong nhiều năm. Những cái này
ave hầu như không thể theo dõi và điều khiển động cơ cũng như các hệ thống ô tô
khác; tuy nhiên, ô tô hiện đại ngày càng đi kèm với máy tính mà người dùng dễ dàng
xác định là máy tính hơn. Họ quản lý các hệ thống định vị Hệ thống Định vị Toàn cầu
(GPS), quản lý tránh va chạm, điều tiết các trường hợp khẩn cấp
cào, điều khiển hệ thống âm thanh và thậm chí cung cấp truy cập Internet.
thiết bị gia dụngTi vi, tủ lạnh và các thiết bị gia dụng khác đang ngày càng sử dụng máy tính
để tải xuống các bản cập nhật phần mềm, giám sát việc sử dụng năng lượng và cho các mục
đích khác.
Bạn có thể nghĩ máy tính bảng cũng thuộc loại này, mặc dù chúng có thể gần giống với
máy tính để bàn hoặc máy tính xách tay hơn. Sự khác biệt chủ yếu nằm ở mức độ kiểm
soát của người dùng đối với HĐH; thiết bị nhúng được người dùng cuối sử dụng chứ
không phải bảo trì. Các tác vụ quản trị hệ thống được mô tả trong cuốn sách này được
thực hiện tại nhà máy hoặc bằng cách sử dụng các giao diện người dùng đơn giản hơn và
chuyên dụng hơn nhiều.
Môi trường máy tính để bàn phổ biến, chẳng hạn như GNOME, KDE, Xfce hoặc Unity
Một ứng dụng email, chẳng hạn như Mozilla Thunderbird hoặc Evolution
Trình chỉnh sửa đồ họa, chẳng hạn như Chương trình thao tác hình ảnh GNU
GIMP)
Một bộ ứng dụng văn phòng, chẳng hạn như Apache OpenOffice.org hoặc tương tự
ibreOffice
Các yêu cầu bổ sung khác nhau tùy thuộc vào nhu cầu của người dùng. Chẳng hạn, một người
dùng có thể cần các công cụ chỉnh sửa đa phương tiện, trong khi một người khác có thể cần phần
mềm phân tích dữ liệu khoa học.
Các bản phân phối Linux như Fedora và Ubuntu thường cài đặt các công cụ esktop phổ biến
này theo mặc định hoặc theo nhóm bằng cách chọn một tùy chọn thời gian cài đặt. Các bản
phân phối này cũng được thiết kế để bảo trì tương đối dễ dàng để người dùng chỉ cần có kỹ năng
khiêm tốn cũng có thể cài đặt HĐH và giữ cho nó chạy theo thời gian.
Máy chủ
Máy chủ có thể gần giống với máy tính để bàn về phần cứng, mặc dù máy chủ đôi
khi yêu cầu ổ cứng lớn hơn hoặc kết nối mạng tốt hơn, tùy thuộc vào cách chúng
được sử dụng. Nhiều chương trình máy chủ mạng phổ biến trước tiên được viết
cho Unix hoặc Linux, làm cho các nền tảng này trở thành lựa chọn tốt nhất để
chạy chúng. Ví dụ bao gồm những điều sau đây:
Máy chủ tệp, chẳng hạn như Hệ thống tệp mạng (NFS) hoặc Samba
Máy chủ in, chẳng hạn như Hệ thống in Unix chung (CUPS) hoặc
amba
Máy chủ Hệ thống tên miền (DNS), chẳng hạn như Tên miền Internet
Berkeley (BIND)
Các máy chủ Giao thức cấu hình máy chủ động (DHCP), chẳng hạn như
Internet Systems Consortium's (ISC's)dhcpd
4 Chương 3 • Tôi tìm hiểu nguyên lý và triết học L inux
Máy chủ thời gian, chẳng hạn như Giao thức thời gian mạng (NTP)
TÔI Máy chủ đăng nhập từ xa, chẳng hạn như Secure Shell (SSH) hoặc Virtual Network
Computing (VNC)
Máy chủ đăng nhập từ xa
cho phép người dùng chạy Trong một tổ chức lớn, mỗi dịch vụ này có thể có một máy chủ được liên
kiểu máy tính để bàn
kết riêng biệt. Tuy nhiên, một máy tính có thể chạy đồng thời nhiều chương
trình máy chủ này.
chương trình trên một
Lịch sử phát triển của Linux gắn liền với lịch sử phát triển của Unix và với sự phát triển nguồn mở nói
chung. Phần mềm mã nguồn mở được cung cấp mã nguồn và có quyền sửa đổi, phân phối lại mã
nguồn. Điều này đảm bảo khả năng sử dụng phần mềm của bạn theo cách mà tác giả ban đầu
id không dự đoán hoặc hỗ trợ, miễn là bạn có kiến thức và thời gian để thay đổi nó hoặc có đủ
nguồn lực để thuê người khác làm việc đó. Những nguyên tắc nguồn mở này đã dẫn đến rất nhiều
phần mềm phổ biến, đặc biệt là trong lĩnh vực máy chủ; tuy nhiên, các nhà phát triển nguồn mở ít có
khả năng nắm bắt được sự hào hứng của công chúng nói chung với các ứng dụng được thiết kế cho
Nghiên cứu các tính năng của hai hoặc ba chương trình nguồn mở mà bạn quan tâm, chẳng hạn
như Apache, LibreOf office và Mozilla Firefox. Các danh sách tính năng có vẻ đầy đủ không? Có các
tính năng bị thiếu trong các đối tác thương mại không?
2.Điều nào sau đây là một đặc điểm của tất cả các phần mềm mã nguồn mở?
. Phần mềm không thể được bán với giá chuyên nghiệp; nó phải được phân phối miễn phí.
. Người dùng được phép phân phối lại các phiên bản đã thay đổi của phần mềm gốc.
. Phần mềm ban đầu được viết tại một trường cao đẳng hoặc đại học.
e.Phần mềm phải được viết bằng ngôn ngữ thông dịch không yêu cầu biên dịch.
. Chương trình nào sau đây làhầu hếtcó khả năng được cài đặt và sử dụng thường xuyên
MỘT.apache . Android
e.TRÓI BUỘC
4.Đúng hay sai: VMS là một hệ điều hành phổ biến trênx86 PC vào thời điểm Linux được tạo ra.
. Đúng hay sai: Máy tính Linux đang được sử dụng làm máy chủ thường không yêu cầu X.
. Linux sử dụng một (n) thiết kế nhân, tương phản với thiết kế vi nhân.
. Một loại phần mềm được phân phối miễn phí nhưng yêu cầu thanh toán trên hệ thống danh dự
9.MỘT) máy tính có khả năng chạy trình xử lý văn bản và trình duyệt
10.Các web. gói phần mềm là một ví dụ về máy chủ web được viết cho
Môi trường máy chủ Linux.
CHƯƠNG 4
Chương này bắt đầu mộtbạn sẽ có cái nhìn thực tế hơn về Linux, trái ngược với
thông tin trừu tượng hơn được trình bày trong các chương trước. Chương này bắt đầu
với việc xem xét các môi trường máy tính để bàn Linux, bao gồm thông tin về các môi
trường máy tính để bàn phổ biến nhất và cách sử dụng cơ bản của chúng. Nếu bạn
đang sử dụng môi trường máy tính để bàn, rất có thể bạn đang làm như vậy để chạy
phần mềm năng suất. Vì vậy, một số gói năng suất phổ biến cho Linux được mô tả.
Ngoài ra, bạn có thể sẽ muốn cài đặt phần mềm tăng năng suất bổ sung, vì vậy việc
quản lý gói phần mềm sẽ được trình bày ngắn gọn ở cuối chương.
Một cách sử dụng chính khác của hệ thống Linux là làm máy chủ mạng, do đó, một số
chương trình máy chủ phổ biến mà bạn có thể gặp phải đã được đề cập. Mặc dù bạn có thể
không cần viết chương trình, nhưng bạn có thể cần biên dịch chương trình từ mã nguồn, vì
vậy bạn cũng nên làm quen với các chương trình Linux phổ biến.
các công cụ húc được đề cập trong chương này.
Rất có thể trải nghiệm đầu tiên của bạn với một hệ thống Linux đang hoạt động sẽ liên quan đến
môi trường máy tính để bàn. Môi trường máy tính để bàn là một tập hợp các chương trình điều
khiển màn hình và nó cũng cung cấp các chương trình tiện ích nhỏ để thực hiện các tác vụ như
quản lý tệp. Linux cung cấp một số tùy chọn môi trường máy tính để bàn, vì vậy nếu bạn không
thích một tùy chọn nào đó, bạn có thể chọn một tùy chọn khác. Ngoài ra
số 8 Chương 4 • U hát C o mm trên các chương trình L inux P
để trình bày thông tin trên môi trường máy tính để bàn có sẵn, phần này
mô tả một số công cụ mà bạn có thể sử dụng để khởi chạy chương trình và quản lý tệp.
TÔI KDEMôi trường máy tính để bàn K, hoặc KDE (ww.kde.org),là một môi trường máy tính để
bàn phổ biến cho Linux. Đó là môi trường máy tính để bàn mặc định cho Mandriva và
MỘTthiết lập idgetlà một
openSUSE. Nó bao gồm nhiều công cụ mạnh mẽ tích hợp tốt với nhau. Của nó
thư viện xử lý các tính
LXDEMôi trường máy tính để bàn X11 nhẹ, hay LXDE (http://lxde.org), đúng như tên gọi
đầy đủ của nó, nhằm mục đích tiêu tốn ít tài nguyên và do đó hoạt động tốt trên các
máy tính cũ hoặc khiêm tốn. Nó cũng được xây dựng trên bộ tiện ích GTK+. LXDE
thường là môi trường máy tính để bàn mặc định trên các bản phân phối Linux có
mục tiêu cơ bản là tiêu thụ càng ít tài nguyên càng tốt, trong khi vẫn hoàn toàn không hoạt
động, chẳng hạn như Lubuntu.
Đoàn kếtCanonical, nhà xuất bản bản phân phối Ubuntu, đã phát hành Unity
môi trường esktop (http://ubuntu.unity.com) vào năm 2010. Nó trở thành môi trường máy tính để bàn
mặc định của Ubuntu vào năm 2011. Unity hướng tới sự đơn giản và cung cấp môi trường máy tính để
bàn nhất quán trên nhiều nền tảng máy tính để bàn và thiết bị di động khác nhau.
fceMôi trường máy tính để bàn phổ biến này có thể được tìm thấy tạiwww.xfce.org.Ban đầu nó được lập
mô hình trên môi trường máy tính để bàn thương mại được gọi là CDE, nhưng nó được xây dựng bằng
cách sử dụng bộ tiện ích GTK+. Xfce cung cấp nhiều khả năng cấu hình hơn so với GNOME hoặc Unity và
nó nhằm mục đích tiêu thụ ít tài nguyên hệ thống hơn so với hầu hết các môi trường máy tính để bàn
khác.
Xây dựng của riêng bạn Có thể xây dựng một môi trường máy tính để bàn của riêng bạn
từ các thành phần mà bạn thích. Vì đây có thể là một nhiệm vụ khá phức tạp nên tốt nhất
bạn nên bắt đầu với hướng dẫn chi tiết. Mở tìm kiếm web yêu thích của bạn
ngine, và gõ vàoow để tạo môi trường máy tính để bàn Linux của riêng bạn
để tìm thông tin cụ thể về xây dựng máy tính để bàn tùy chỉnh của bạn. Ở mức nhỏ nhất,
U singa L inux D esktop E môi trường 49
bạn cần một trình quản lý cửa sổ. Tuy nhiên, để cấu hình đúng
esktop, bạn sẽ cần các thành phần khác, chẳng hạn như trình quản lý tệp và
các công cụ năng suất nhỏ. Tất cả các thành phần cần phải được truy cập từ một
số loại hệ thống menu.
Thật không may, không thể đưa ra hướng dẫn chỉ ra khi nào một môi trường máy tính để
bàn hoạt động tốt hơn môi trường khác. Tuy nhiên, các khuyến nghị sau đây có thể giúp đỡ.
Những người dùng mới đã quen với Windows hoặc Mac OS có lẽ sẽ hài lòng nhất với KDE.
Môi trường KDE tương tự như môi trường của các hệ điều hành máy tính để bàn truyền
thống này. Mục tiêu của GNOME và Unity là dễ sử dụng và vì vậy chúng cũng có thể là
những lựa chọn tốt cho những người chưa có kinh nghiệm. Người dùng quen thuộc với hệ
điều hành Unix thương mại có thể dùng thử Xfce. Xfce và LXDE cũng là những lựa chọn tốt
trên các hệ thống sử dụng ít RAM hoặc có CPU công suất thấp. Những người thích tùy chỉnh
mọi thứ hoặc những người có máy tính kém hiệu năng hơn nên tìm hiểu phương pháp tự
xây dựng.
Trước khi bạn quyết định gắn bó với một môi trường máy tính để bàn cụ thể, bạn có thể
muốn thử hai hoặc ba trong số chúng. Trong hầu hết các trường hợp, bạn có thể cài đặt nhiều
môi trường bằng cách sử dụng trình quản lý gói, như được mô tả ở phần sau của chương này
và chi tiết hơn trong Chương 9, “Khám phá quy trình và dữ liệu quy trình”.
Sau khi môi trường máy tính để bàn của bạn được cài đặt, bạn chọn nó khi đăng nhập vào máy
tính
màn hình. TÔI
HINH 4 . 1Trình quản lý đăng nhập GUI thường cung cấp lựa chọn môi trường máy tính để bàn từ
bạn có thể chọn.
0 Chương 4 • U hát C o mm trên các chương trình L inux P
truy cập trình đơn. Lưu ý rằng hai nút này không xuất hiện cho đến khi bạn đã chọn tên
TÔI người dùng và sẵn sàng nhập mật khẩu. Trình đơn trong Hình 4.1 hiển thị GNOME và Xfce là
các lựa chọn môi trường máy tính để bàn. Các lựa chọn menu trên hệ thống Linux của bạn
Lựa chọn mật khẩu là
sẽ khác nhau, tùy thuộc vào môi trường máy tính để bàn nào được cài đặt theo mặc định và
cực kỳ quan trọng.
Chương 13, “Tạo môi trường nào được thêm thủ công. Cách chọn môi trường máy tính để bàn khác nhau
Người dùng và Nhóm,” giữa các hệ thống này với hệ thống khác, vì vậy bạn có thể cần xem xét kỹ các tùy chọn của
bao trùm chủ đề này. màn hình đăng nhập để chọn môi trường mà bạn muốn.
Menu máy tính để bàn bất kỳ môi trường máy tính để bàn nào cũng cung cấp các menu trên cùng, bot-
tom, hoặc cạnh bên của màn hình. Một hoặc nhiều mục trong các menu này có thể cấp cho bạn quyền
truy cập vào một bộ ứng dụng đã chọn trước.
Biểu tượng máy tính để bàn Một số môi trường máy tính để bàn cho phép bạn đặt các biểu tượng trong
khu vực chính của máy tính để bàn. Nhấp hoặc nhấp đúp vào các biểu tượng này rồi
khởi chạy các ứng dụng mà chúng đại diện. Cách tiếp cận này thường yêu cầu tùy
chỉnh. Một số cấu hình mặc định đặt một vài ứng dụng trong bàn làm việc chính-
khu op.
tấm Một số môi trường máy tính để bàn cung cấp bảng điều khiển, thường nằm trên
các cạnh của màn hình, trong đó các biểu tượng cho các ứng dụng phổ biến xuất hiện. Unity sử
dụng cấu hình như vậy theo mặc định, cũng như GNOME 3 (một phiên bản của môi trường máy
tính để bàn GNOME)—mặc dù trong trường hợp của GNOME 3, bảng điều khiển chỉ xuất hiện
khi bạn nhấp vào mục Hoạt động ở góc trên bên trái của màn hình.
menu ontextĐôi khi, bạn có thể nhấp chuột phải vào phần không sử dụng của màn
hình để có menu ngữ cảnh với nhiều tùy chọn khác nhau, trong đó có thể bao gồm tùy
chọn chạy chương trình.
Tìm kiếm chương trình một số môi trường máy tính để bàn, chẳng hạn như GNOME 3, cung cấp
một tính năng tìm kiếm nổi bật mà bạn có thể sử dụng để tìm một chương trình theo tên. Thông
thường, bạn nhập một phần tên của chương trình và các chương trình có tên trùng khớp sẽ xuất hiện
trong một ist. Sau đó, bạn có thể chọn chương trình mà bạn muốn chạy từ danh sách đó.
thiết bị đầu cuốiBạn có thể khởi chạy một chương trình gọi làthiết bị đầu cuốicung cấp giao diện
người dùng textmode bên trong cửa sổ. Sau đó, bạn có thể chạy chế độ văn bản hoặc GUI
rograms bằng cách gõ tên tập tin của họ trong cửa sổ này. Cách tiếp cận này sẽ
được đề cập chi tiết hơn trong Chương 6, “Làm quen với Dòng lệnh”.
U singa L inux D esktop E môi trường 1
Để giúp làm rõ một số phương pháp này, chúng tôi xin đưa ra một vài ví dụ. Trước tiên, hãy cân J
nhắc khởi chạy trình duyệt web Firefox trong Fedora 20 bằng cách sử dụng GNOME 3
thủ tục
môi trường esktop. Để làm như vậy, bạn sẽ làm theo các bước sau:
được liệt kê ở đây yêu cầu
1.Nhấp vào mục Hoạt động ở góc trên bên trái của màn hình. kết mũ bạn có một hiện đại
HINH 4 . 2Các bảng cho phép bạn khởi chạy các chương trình phổ biến trong GNOME, Unity và
một số môi trường máy tính để bàn khác.
. Di chuột qua biểu tượng Firefox, là biểu tượng trên cùng trong
Hình 4.2.
. Nhấp vào biểu tượng Firefox. Sau một khoảng thời gian ngắn, một cửa sổ Firefox sẽ mở ra.
Cũng có những cách khác để thực hiện việc này, chẳng hạn như nhập tên chương trình vào trường tìm
kiếm (hiển thị ở phần trên-giữa của Hình 4.2). Bởi vì chỉ một số chương trình xuất hiện trong bảng điều
khiển Gnome 3, bạn phải thêm chương trình vào bảng điều khiển đó hoặc khởi chạy các chương trình mà
các nhà phát triển Fedora không đưa vào theo mặc định theo một số cách khác.
Để so sánh, KDE trong openSUSE 13.2 cung cấp một số cách rõ ràng để khởi
chạy Firefox:
Bằng cách nhấp vào biểu tượng của nó trong cửa sổ Desktop Folder
(hiển thị ở giữa, bên phải của Hình 4.3).
Bằng cách nhấp vào biểu tượng của nó gần phía bên trái của thanh dưới cùng của
màn hình một lần nữa, xem Hình 4.3). Thanh này được gọi làbảng đá
2 Chương 4 • U hát C o mm trên các chương trình L inux P
Bằng cách tìm nó trong danh sách Ứng dụng. Bạn có thể mở danh sách này bằng cách
bắt đầu với Trình khởi chạy ứng dụng Kickoff (có thể truy cập qua biểu tượng tắc kè
hoa SUSE ở phía xa bên trái của bảng điều khiển Kicker) và chọn Ứng dụng
Hinh 4.
HINH 4 . 3Giao diện máy tính để bàn của KDE cung cấp các phương thức khởi chạy tương tự như các phương thức
TÔI Như với GNOME, phạm vi tùy chọn khởi chạy rộng nhất có sẵn cho một số ứng dụng phổ biến
như Firefox. Bạn có thể cần sử dụng các phương pháp phức tạp hơn, chẳng hạn như định vị
Mỗi bộ phân phối
chương trình trong danh sách Ứng dụng, cho các chương trình ít phổ biến hơn. Tuy nhiên, bạn
lên mặc định của nó trong riêng của mình
phải. Cấu hình GNOME có thể định cấu hình lại môi trường máy tính để bàn để thêm các chương trình mà bạn sử dụng
hoặc KDE của riêng bạn thường xuyên.
ight không giống với những cái
một loại bỏ J
ốc anh vũ
ngoài GNOME
autilus, tập tin khác
anager) và cá heo
trình quản lý tệp của KDE).
onqueror là
trình quản lý tập tin mặc định
HINH 4 . 4Nautilus cung cấp chế độ xem tệp của bạn tương tự như chế độ xem trong trình quản lý tệp của hệ điều hành khác.
Vì Nautilus tương tự như trình quản lý tệp trong các hệ điều hành khác, nên rất có thể bạn
sẽ có thể sử dụng các tính năng chính của nó khá dễ dàng. Một vài mục xứng đáng được đề
cập:
Vị tríDọc phía bên trái của cửa sổ, bạn sẽ thấy một loạt vị trí. Trong Hình J
4.4, chúng được chia thành ba loại:
Nếu bạn bấm đúp vào một
Danh mục Thiết bị bao gồm các phân vùng đĩa không phải là một phần của cài ở đâu, Nautilus sẽ
cố gắng truy cập nó.
đặt tiêu chuẩn của bạn, kể cả các đĩa có thể tháo rời.
Tiểu thể loại Máy tính đề cập đến toàn bộ cài đặt Linux.
Danh mục Địa điểm chủ yếu bao gồm các thư mục phổ biến trong
ome, mặc dù Recent đề cập đến các thư mục được truy cập gần
đây.
Danh mục Mạng cung cấp quyền truy cập vào tài nguyên mạng; tuy nhiên, điều này
có thể yêu cầu cấu hình bổ sung trước khi nó hoạt động bình thường.
Trang chủVị trí Trang chủ đề cập đến vị trí của bạnthư mục nhà—tức là, thư mục nơi bạn
lưu trữ các tệp người dùng của riêng mình. Thông thường, bạn sẽ tạo tất cả các tệp cá
nhân của mình trong thư mục chính. Chế độ xem mặc định của Nautilus, khi bạn
4 Chương 4 • U hát C o mm trên các chương trình L inux P
mở nó theo cách thủ công, nằm trong thư mục chính của bạn, như thể hiện trong Hình 4.4. Phần
bên phải hiển thị các tệp và thư mục con của thư mục Home.
Dấu trangBạn có thể thêm dấu trang cho các vị trí không được hiển thị trong danh mục
Địa điểm. Chỉ cần duyệt qua các tệp trong vị trí dấu trang mong muốn và nhấp vào biểu
tượng Bánh răng trên thanh menu của Nautilus. Từ menu thả xuống, chọn Đánh dấu vị trí
này. Ngoài ra, bạn có thể nhấn Ctrl+D để đánh dấu một vị trí. Các dấu trang mới được
thêm vào sẽ xuất hiện trong một danh mục mới có tên là Dấu trang.
Nếu bạn muốn sửa đổi dấu trang, bạn không sử dụng cửa sổ Nautilus. Thay
vào đó, khi Nautilus mở, bạn chọn Tệp từ thanh trên cùng trong màn hình
Gnome và sau đó chọn Dấu trang từ trình đơn thả xuống kết quả. hộp thoại bo
Được rồi-
đánh dấu là n
HINH 4 . 5Bạn có thể quản lý dấu trang để cho phép truy cập nhanh vào các thư mục mà bạn quan tâm.
Thuộc tính tài liệuBạn có thể nhấp chuột phải vào một tệp và chọn Thuộc tính từ
menu ngữ cảnh kết quả. Thao tác này tạo ra hộp thoại Thuộc tính, như thể hiện
trong Hình 4.6. Tab Mở bằng cho phép bạn liên kết một loại tài liệu với một ứng
dụng.
đồ dùng cá nhân 5
HINH 4 . 6Nautilus cho phép bạn liên kết các loại tài liệu với các ứng dụng.
sở hữu. Điều này đặc biệt đúng vì tên của ứng dụng không phải lúc nào cũng xác định rõ ràng
mục đích của chúng.
Một vài kỹ thuật có thể giúp bạn tìm các ứng dụng phù hợp:
Sử dụng Menu Máy tính để bànBạn có thể sử dụng các menu hoặc các công cụ hiển thị ứng dụng
khác trên môi trường máy tính để bàn của mình để định vị các ứng dụng năng suất. Những công cụ
như vậy thường phân loại các ứng dụng theo những cách hữu ích. Ví dụ, KDE
ickoff Trình khởi chạy ứng dụng (được hiển thị trước đó trong Hình 4.3) chia
các ứng dụng thành các danh mục (Trò chơi, Đồ họa, Đa phương tiện, v.v.) và
các danh mục phụ (ví dụ: Nhiếp ảnh và Quét trong danh mục Đồ họa). Điều này
có thể giúp bạn theo dõi một ứng dụng, nhưng chỉ khi nó đã được cài đặt.
Sử dụng Tính năng Tìm kiếmBạn có thể sử dụng tính năng tìm kiếm, trong môi trường
máy tính để bàn hoặc trong trình duyệt web, để tìm một ứng dụng phù hợp. Nhập một từ
hoặc cụm từ quan trọng, chẳng hạn nhưvăn phòng(kết hợp vớiinuxNếu bạn
tìm kiếm trên web) có thể giúp bạn định vị các ứng dụng văn phòng (bộ xử lý văn
bản, bảng tính, v.v.).
Sử dụng Bảng tương đươngNếu bạn thường sử dụng một ứng dụng Windows cụ thể, bạn
có thể tìm một ứng dụng Linux thay thế cho ứng dụng đó bằng cách tham khảo bảng các ứng
dụng tương đương, chẳng hạn như các ứng dụng tạiww.linuxalt.comhoặchttp://wiki
inuxquestions org/wiki/Linux_software_tương đương_to_Windows_software.
Sử dụng chuyên môn của người khácBạn có thể hỏi những người khác—đồng nghiệp, bạn bè hoặc
mọi người trên các diễn đàn trực tuyến—để được trợ giúp trong việc tìm ứng dụng phù hợp.
Kỹ thuật này đặc biệt hữu ích nếu bạn đã thực hiện tìm kiếm cơ bản nhưng không tìm thấy gì
đáp ứng các tiêu chí cụ thể của mình.
Một số phương pháp này, chẳng hạn như sử dụng menu trên màn hình, chỉ có thể tìm thấy phần
mềm đã được cài đặt. Các kỹ thuật khác, chẳng hạn như tìm kiếm trên web, có thể tìm thấy
ram mà bạn chưa cài đặt. Bạn thường có thể cài đặt phần mềm với sự trợ giúp của
hệ thống đóng gói phân phối của bạn.
firefoxChương trình này có thể được tìm thấy tạiwww.mozilla.org.Đây là trình duyệt phổ
biến nhất dành cho Linux và nó cũng khá phổ biến trên Windows và Mac OS X.
Wo rkingwith P oductivity S oftware 7
Đó là một trình duyệt hoàn chỉnh và do đó nó có thể tiêu tốn rất nhiều bộ nhớ, vì vậy nó có thể không
là sự lựa chọn tốt nhất trên máy tính cũ hơn hoặc yếu hơn.
mạngChương trình này, ban đầu được gọi là Epiphany, được tìm thấy tạihttps://wiki .
gnome.org/Apps/Web.Nó là trình duyệt web dành cho máy tính để bàn GNOME. Nó được
thiết kế đơn giản và dễ sử dụng.
kẻ xâm lượcChương trình KDE này phục vụ một chức năng kép: vừa là trình duyệt
web vừa là trình quản lý tệp. Konqueror hoạt động tốt với hầu hết các trang web. Nó
khá nhẹ nên rất đáng để thử, đặc biệt nếu bạn sử dụng KDE. Bạn có thể đọc thêm về
nó tạiwww.konqueror.org.
Linh miêuHầu hết các trình duyệt web là các chương trình GUI hiển thị văn bản ở nhiều phông
chữ, hiển thị đồ họa nội tuyến, v.v. Linh miêu (ttp://lynx.browser.org)khác thường ở chỗ nó là một
trình duyệt web dựa trên văn bản. Do đó, đây là một lựa chọn hữu ích nếu bạn chạy Linux ở chế độ
văn bản hoặc nếu bạn không muốn bị đồ họa làm phiền. Lynx cũng được sử dụng như một trình
duyệt thử nghiệm khi bạn phát triển các trang web của riêng mình; nếu một trang có thể đọc
được trong Lynx, rất có thể những người khiếm thị duyệt Web bằng bộ tổng hợp giọng nói sẽ có
thể sử dụng trang của bạn.
Ô-pê-raMột người tham gia thương mại bất thường trong rút thăm trúng thưởng trình duyệt
web Linux, Opera (www.opera.com)tuyên bố là nhanh bất thường. Mặc dù Opera là bản thương
mại nhưng bạn có thể tải xuống miễn phí.
Đáng chú ý là vắng mặt trong danh sách này là một trình duyệt của Microsoft. Thật không may, một
số trang web sẽ không hoạt động với bất kỳ thứ gì ngoại trừ trình duyệt của Microsoft. Các trang web
khác hơi cầu kỳ nhưng có thể hoạt động với ít nhất một trình duyệt Linux. Vì vậy, có lẽ bạn nên cài đặt ít
nhất hai trình duyệt web Linux.
Trình duyệt web giúp người dùng dễ dàng truy cập vào thế giới thông tin—theo đúng
nghĩa đen! Thật không may, Web cũng có một mặt tối. Các vấn đề bao gồm như sau:
Các trang web có thể ghi lại dữ liệu truy cập của người dùng, dữ liệu này có thể được sử dụng trong tiếp thị hoặc
Nhiều nội dung dựa trên web là động, nghĩa là các trang web tải xuống
các chương trình nhỏ (thường được viết bằng Java) mà trình duyệt web
của bạn chạy. Nội dung này có thể vô hại, nhưng nó ngày càng
sed để phân phối phần mềm độc hại.
Các trang web độc hại có thể lừa người dùng cung cấp dữ liệu nhạy cảm, chẳng hạn
như thông tin tài chính, bằng cách giả vờ là một trang web đáng tin cậy. Kỹ thuật
này được gọi làlừa đảo
Nhiều trang web không an toàn. Dữ liệu được truyền có thể được đọc trên các máy tính can thiệp.
Hầu hết các trang web nhạy cảm, chẳng hạn như các trang web ngân hàng Internet
số 8 Chương 4 • U hát C o mm trên các chương trình L inux P
và các nhà bán lẻ trực tuyến, hiện mã hóa dữ liệu nhạy cảm của họ, nhưng bạn nên
e thận trọng khi gửi dữ liệu như vậy.
TÔI Vì những lo ngại về bảo mật, mật khẩu được sử dụng trên hầu hết các trang web
đều có thể bị đánh cắp. Điều này có thể đặt ra một vấn đề nan giải vì khó có thể
Chương 13 mô tả
nhớ tất cả các mật khẩu trang web của bạn. Nhiều trình duyệt có thể làm điều này
ow để tạo mật
khẩu vừa đáng cho bạn, nhưng trình duyệt đó lưu trữ mật khẩu của bạn trên đĩa cứng, khiến
nhớ vừa khó chúng dễ bị đánh cắp hoặc mất.
đoán.
Tất nhiên, một số vấn đề này không chỉ xảy ra với Web. Chẳng hạn, hầu hết các lần chuyển
email đều không an toàn, vì vậy bạn không nên gửi dữ liệu nhạy cảm qua email.
Chương trình email client cho phép bạn đọc và viết email. Các chương trình như vậy
có thể truy cập hộp thư trên máy tính của riêng bạn hoặc sử dụng các giao thức
mạng email được mô tả sau, gửi và nhận email với sự trợ giúp của máy tính máy chủ
thư mạng. Các ứng dụng email phổ biến của Linux bao gồm:
KMailKMail của dự án KDE có thể được tìm thấy tạittps://userbase.kde.org/ KMail.Nó được tích hợp
tốt vào môi trường máy tính để bàn đó, nhưng bạn có thể sử dụng nó trong các môi trường máy
tính để bàn khác nếu bạn chọn làm như vậy.
thịt chóĐây là một trong một số trình đọc email dựa trên văn bản. Mặc dù giao diện ở
chế độ văn bản, Mutt khá có khả năng. Bạn có thể đọc thêm về nó tạiwww.mutt.org.
Ứng dụng email khách hoạt động theo cách tương tự trong mọi hệ điều hành.
Thông thường, bạn phải định cấu hình chúng để biết cách gửi và nhận tin nhắn—cho
dù sử dụng cơ sở của máy tính cục bộ hay máy chủ từ xa. Sau đó, bạn có thể đọc tin
nhắn đến và gửi tin nhắn đi.
Có một số gói công cụ văn phòng dành cho Linux. Các gói này cung cấp một số kết
hợp của trình xử lý văn bản, bảng tính, chương trình trình bày, chương trình đồ họa,
atabas, và đôi khi là các chương trình khác. Ví dụ bao gồm những điều sau đây:
Văn phòng GnomeCác ứng dụng trong GNOME Office được phát triển độc lập-
của nhau, nhưng Văn phòng Gnome cố gắng liên kết chúng thành một thể thống nhất
Wo rkingwith P oductivity S oftware 9
trọn. Các dự án cụ thể trong GNOME Office là AbiWord (trình xử lý văn bản),
Evince (trình xem tài liệu), Evolution (phần mềm nhóm và ứng dụng email),
bảng tính Gnumeric), Inkscape (đồ họa vector và tạo bản trình bày) và Ease
(bài thuyết trình). Bạn có thể tìm hiểu thêm tạihttp://live.gnome.org/GnomeOffice.
thư pháp bộ phần mềm văn phòng của anh ấy được sinh ra từ sự chia tách từ một KDE phổ biến trước đó
bộ ứng dụng văn phòng KOffice. Trong khi KOffice không còn được duy trì, Calligra (https://
calligra.org)đang phát đạt. Bộ phần mềm văn phòng của nó bao gồm Words (trình xử lý văn
bản), Stage (bản trình bày), Sheets (bảng tính), Flow (sơ đồ) và Kexi (cơ sở dữ liệu). Ngoài
các ứng dụng văn phòng, Calligra còn cung cấp các sản phẩm phần mềm Đồ họa và Quản
lý dự án.
Văn phòng mở của ApacheCho đến đầu năm 2011, bộ văn phòng này, nằm ở
www.openoffice.org,là ứng dụng nổi bật nhất dành cho Linux và được gọi đơn giản là
penOffice.org. Nhà tài trợ công ty của nó, Oracle, đã ngừng hỗ trợ phát triển thương
mại cho dự án và tặng nó cho nhóm Apache. Tên chính thức hiện nay làVăn phòng
mở của Apache. Nó cung cấp sáu ứng dụng: Writer (word
bộ xử lý dữ liệu), Calc (bảng tính), Impress (bản trình bày), Base (cơ sở dữ liệu), Vẽ đồ họa
vector) và Math (trình chỉnh sửa phương trình).
LibreOffice bộ văn phòng của anh ấy đã được tạo ra như mộtcái nĩacủa tiền Apache cũ hơn
OpenOffice.org. Nó đang trở thành bộ ứng dụng văn phòng phổ biến nhất trong Linux. J
Nó cung cấp sáu ứng dụng: Writer (trình xử lý văn bản), Calc (bảng tính), Impress (bản
Cácorkcủa một kết quả
trình bày), Base (cơ sở dữ liệu), Draw (đồ họa vector) và Math (trình soạn thảo phương
chương trình khi một
trình). Bạn có thể nhận thấy rằng các ứng dụng này có cùng tên với các ứng dụng dự án chia thành hai dự
Apache OpenOffice. Bạn có thể đọc thêm về nó tạiww.libreoffice.org. án, thông thường
vì khác nhau
nhóm nhà phát triển
Hầu hết các chương trình này đều hỗ trợ Định dạng Tài liệu Mở (ODF), đây là một tập hợp
ave phân kỳ mục tiêu.
các định dạng tệp mở đang dần xâm nhập làm tiêu chuẩn cho xử lý văn bản, bảng tính và
các tệp văn phòng khác. Mặc dù ODF nhằm mục đích cho phép chuyển tệp dễ dàng giữa các
ứng dụng, nhưng các giả định dành riêng cho ứng dụng thường cản trở quá trình chuyển
như vậy, đặc biệt là trên các tài liệu phức tạp.
Nhiều chương trình khác tồn tại trong không gian này, mặc dù chúng không phải là một phần
của bộ ứng dụng văn phòng. Một số là bất thường. Chẳng hạn, LyX (www.lyx.org)có thể thay thế
trình xử lý văn bản, nhưng nó khá độc đáo: nó được xây dựng như một cách để tạo và chỉnh sửa
tài liệu LaTeX. LaTeX là một định dạng tài liệu phổ biến trong khoa học máy tính, toán học và các
lĩnh vực kỹ thuật khác.
sự vắng mặt của các ứng dụng đa phương tiện. Tuy nhiên, trong thập kỷ qua, danh sách
ứng dụng đa phương tiện của Linux đã tăng lên đáng kể. Các dịch vụ hiện tại bao gồm:
táo bạo chương trình của anh ấy, được tìm thấy tạittp://audacity.sourceforge.net,là
một trình chỉnh sửa âm thanh cho Linux, tương tự như các sản phẩm thương mại như Sound Forge cho
các nền tảng khác. Bạn có thể sử dụng nó để cắt các phần từ tệp âm thanh, cân bằng âm lượng, loại bỏ
tiếng rít của băng hoặc các tiếng ồn khác, áp dụng hiệu ứng âm thanh nhân tạo, v.v.
người cho vayBạn có thể sử dụng chương trình này để tạo các hình ảnh 3D phức tạp, bao gồm cả
hình ảnh động và hình ảnh động. Bạn có thể tìm hiểu thêm về Blender tạiwww.blender.org.
Hình ảnhMagickĐây là một bộ chương trình đồ họa với một sự thay đổi: bạn thường sử dụng
các chương trình ImageMagick từ dòng lệnh. Bạn có thể sử dụng nó để chuyển đổi định dạng
tệp, thêm khung vào hình ảnh, thay đổi kích thước hình ảnh, v.v. Bạn có thể học
hơnwww.imagemagick.org.
TayPhanhChương trình này cung cấp một cách dễ dàng để chuyển đổi giữa các định dạng
video và đặc biệt là sang các định dạng sử dụng mã hóa H.264 hiệu quả. Bạn
tìm hiểu thêm tạittp://phanh tay.fr.
Huyền ThoạiTVBạn có thể biến PC thông thường thành máy quay video kỹ thuật số (DVR)
bằng phần mềm này, có trụ sở tạiwww.mythtv.org.MythTV sử dụng mô hình máy khách-máy
chủ, cho phép một đầu ghi phục vụ nhiều người chơi trên TV trong nhà bạn.
TÔI Với phạm vi ứng dụng đa phương tiện này, bạn có thể sử dụng Linux cho mọi thứ từ
rom để cắt ảnh bữa tiệc sinh nhật hai tuổi của bạn để hiển thị hiệu ứng cho các hình
Một số hình ảnh chuyển động
HINH 4 . 7Các ứng dụng điện toán đám mây có thể truy cập thông qua trình duyệt web
Trong thực tế, các vấn đề phức tạp có thể phát sinh khi truy cập các dịch vụ điện toán đám
mây. Chẳng hạn, nhà cung cấp dịch vụ điện toán đám mây có thể yêu cầu bạn sử dụng một
trình duyệt web cụ thể hoặc cài đặt một trình cắm trình duyệt cụ thể. Trong một số trường hợp,
có thể không đáp ứng được các yêu cầu này trong Linux; tuy nhiên, nếu nhà cung cấp hỗ trợ
nhiều loại trình duyệt với tư cách là khách hàng, thì bạn sẽ không gặp sự cố khi sử dụng tài
nguyên điện toán đám mây.
Một số tài nguyên điện toán đám mây đáng chú ý bao gồm:
Phương tiện phát trực tuyến theo yêu cầu, chẳng hạn như Netflix (www.netflix.com)
Các dịch vụ lưu trữ tệp, chẳng hạn như Dropbox (www.dropbox.com)
Bộ năng suất văn phòng, chẳng hạn như Zoho Office (www.zoho.com)
Thay vào đó, điện toán di động thường tập trung vào các chương trình nhỏ được gọi là ứng
dụng. Trong trường hợp của Android, bạn có thể tải xuống ứng dụng bằng cách sử dụng ứng
dụng có tên Google Play. (Một phiên bản dựa trên web có sẵn tạittps://play.google.com/store.)Các
ứng dụng thường cung cấp khả năng tính toán nhanh và chuyên biệt, thường sử dụng các tính
năng của điện thoại. Chẳng hạn, một ứng dụng có thể tính toán lượng calo bạn đã đốt cháy khi đi
xe đạp hoặc truy xuất dự báo thời tiết cho khu vực của bạn. Cả hai ví dụ này đều sử dụng các tính
năng GPS của điện thoại để xác định vị trí của điện thoại và của bạn).
Mặc dù hầu hết các ứng dụng Linux dành cho máy tính để bàn và máy chủ đều là mã nguồn
mở và có sẵn miễn phí, một số ứng dụng Android không miễn phí. Hãy chắc chắn kiểm tra chi phí
chỉ tải xuống ứng dụng Linux là một hệ điều hành mạnh mẽ để chạy các chương trình máy chủ, vì vậy không có gì
từ Google Play hoặc ngạc nhiên khi bạn có thể tìm thấy rất nhiều chương trình máy chủ cho Linux. Trong các
ứng dụng đáng tin cậy khác
trang tiếp theo, một số giao thức máy chủ phổ biến và các chương trình sử dụng chúng
cửa hàng.
được mô tả. Ngoài ra, quá trình cài đặt và khởi chạy máy chủ cũng được đề cập, cũng như
thông tin cơ bản về các vấn đề bảo mật máy chủ.
với các giao thức này. Nhiều cổng và giao thức được liên kết với nhiều chương trình. Điều này là J
do Linux cung cấp các lựa chọn cho nhiều giao thức; bạn có thể chọn chương trình máy chủ nào
Tệp /etc/services
sẽ sử dụng cho một giao thức nhất định, giống như bạn có thể chọn sử dụng chương trình nào
mực cổng chung
trong số một số trình xử lý văn bản hoặc trình duyệt web. số để rút ngắn
những cái tên thường
BẢNG 4 . 1Số cổng phổ biến và mục đích của chúng sed trong các tệp cấu
hình khác.
20–21 TP. oftpd, ProFTPD, Giao thức truyền tệp (FTP) là một giao
J
ure-FTPd, vsftpd thức cũ để truyền tệp qua mạng.
t hỗ trợ cả truy cập ẩn danh và mật Phần mềm ảo hóa
cho phép tạo phần
khẩu. FTP khác thường ở chỗ nó sử
cứng mô phỏng,
dụng hai cổng.
các hệ điều hành,
tài nguyên mạng và
22 SH OpenSSH Secure Shell (SSH) là một mã hóa
sớm. Một số sản
công cụ truy cập từ xa. Nó cũng hỗ trợ tập tin phẩm ảo hóa tồn tại
truyền và mã hóa các giao thức khác. cho Linux, chẳng hạn như KVM.
hát ảo hóa
3 cá sấu telnetd Đây là đăng nhập từ xa không được mã hóa cũ phần mềm, toàn bộ
giao thức. Ngày nay nó hiếm khi được sử dụng, mặc dù máy chủ và các tài nguyên
5 SMTP xim, Postfix, Giao thức truyền thư đơn giản (SMTP) là
SMTP.
53 NS nsmasq, được đặt tên Hệ thống tên miền (DNS) cho phép
máy tính để tra cứu địa chỉ IP bằng cách cung
mạng.
tiếp tục)
4 Chương 4 • U hát C o mm trên các chương trình L inux P
CÓ THỂ 4 . 1tiếp)
0 TTP pache, NGINX Giao thức truyền tải siêu văn bản (HTTP) là
109–110 OP2 và của chúng tôi, Cyrus IMAP, Giao thức Bưu điện (POP) đã trải qua
OP3 bầu trứng, UW IMAP nhiều lần sửa đổi, mỗi lần đều có
được sử dụng làm chặng cuối trong quá trình gửi email, từ
118 SQL ySQL, PostgreSQL, Ngôn ngữ truy vấn có cấu trúc (SQL) là
ngôn ngữ. Nếu bạn chạy một máy chủ SQL trên
137–139 SMB/CIFS Samba icrosoft sử dụng Khối tin nhắn máy chủ
143, 220 BẢN ĐỒ của chúng tôi, Cyrus IMAP, Giao thức truy cập thư trên Internet (IMAP) là một phương
bầu trứng, UW IMAP thức chuyển email khác do người nhận thực hiện
89 DAP bútLDAP Giao thức truy cập thư mục nhẹ (LDAP)
43 TTPS pache, NGINX Giao thức này là một biến thể an toàn (được mã hóa)
fHTTP.
Bảng 4.1 không đầy đủ; nó chỉ tóm tắt một số giao thức quan trọng hơn và các máy
chủ cung cấp chúng. Nhiều giao thức và máy chủ khác tồn tại, nhiều trong số chúng
dành cho các nhiệm vụ rất chuyên biệt.
Một số giao thức thường được sử dụng nhất trên mạng cục bộ. Chẳng hạn, DHCP về bản J
chất là nhằm giúp bạn quản lý mạng cục bộ của riêng mình bằng cách giúp dễ dàng định
Chương 15, “Quản lý
cấu hình các máy tính khách hơn—chỉ cần yêu cầu các máy tính sử dụng DHCP, thế là xong.
Kết nối mạng,"
SMB/CIFS cũng thường chỉ được sử dụng cục bộ để cho phép người dùng truy cập các tệp và mô tả cấu hình mạng
máy in của nhau dễ dàng hơn. Mặt khác, các giao thức như HTTP thường được sử dụng trên con số lớn hơn
toàn bộ Internet, mặc dù chúng cũng có thể được sử dụng trên các mạng cục bộ. chi tiết.
thuật ngữmáy chủcó thể áp dụng cho toàn bộ máy tính hoặc cho một chương trình chạy trên
máy tính đó. Khi được áp dụng cho toàn bộ máy tính, thuật ngữ này xác định mục đích của
máy tính và thực tế là nó chạy một hoặc nhiều chương trình máy chủ. Máy tính chủ thường
cung cấp các dịch vụ được sử dụng bởi bất cứ nơi nào từ một số ít đến hàng triệu máy tính
Trong thế giới mạng, máy chủ (máy tính hoặc chương trình) lắng nghe kết nối
rom một máy khách (máy tính hoặc chương trình) và đáp ứng các yêu cầu truyền dữ liệu.
Máy chủ thường—nhưng không phải lúc nào cũng—mạnh hơn máy khách của chúng.
Khi bạn đọc từmáy chủ(hoặccầm cốđối với vấn đề đó), nó có thể đề cập đến
máy tính hoặc chương trình. Ngữ cảnh thường làm rõ ý muốn nói, mặc dù
đôi khi không phải như vậy—trên thực tế, đôi khi người nói
r người viết có thể không biết! Chẳng hạn, ai đó có thể báo cáo “máy chủ Samba không hoạt
động.” Trong trường hợp như vậy, bạn có thể cần tìm hiểu xem liệu chương trình máy chủ
Samba hay thứ gì khác trên máy tính của máy chủ đang gây ra sự cố.
Đôi khi, các dòng máy khách-máy chủ có thể bị mờ. Ví dụ, trong cài đặt văn phòng,
Nhiều máy tính hoạt động nhưmáy chủ ilebằng cách chạy phần mềm máy chủ tệp như
Samba hoặc NFS. Cấu hình như vậy cho phép Sam cung cấp các tệp của anh ấy cho Jill và để
Jill cung cấp các tệp của cô ấy cho Sam. Trong tình huống này, cả hai máy tính đều hoạt động
như cả máy khách và máy chủ và chạy cả hai loại phần mềm. Tuy nhiên, trong bất kỳ trao đổi
cụ thể nào, chỉ có một người là khách hàng và một người là máy chủ.
đã sử dụng World Wide Web, rất có thể bạn đã sử dụng hai máy chủ web phổ biến được
cung cấp trên Linux:
Apache HTTPDMáy chủ HTTPD Apache là một phần của ngăn xếp Linux Apache
MySQL PHP (LAMP) phổ biến dành cho các ứng dụng web. Gói phần mềm máy chủ web
ban đầu được phát hành vào năm 1995. Trong vòng chưa đầy một năm, Apache đã trở
thành máy chủ web phổ biến nhất trên Internet. Nó đã tiếp tục duy trì mức độ phổ
biến này do tính ổn định và độ tin cậy của nó. Máy chủ HTTPD Apache không chỉ khả
dụng cho Linux mà còn cho Unix, BSD, Windows và thậm chí cả Mac OS X. Bạn có thể
tìm hiểu thêm tạittp://httpd.apache.org/.
Nginx phát hành vào năm 2002, Nginx (phát âm làĐộng cơ Xmáy chủ web là một liên kết
người mới tham gia thị trường. Nginx có thể lấy tài nguyên thay mặt cho máy khách từ một
hoặc nhiều máy chủ, cũng như hoạt động như một máy chủ thư. Vì những tính năng này
cũng như tốc độ nhanh và nhẹ, Nginx đã giành được một số trang web lớn, chẳng hạn như
Netflix. Bạn có thể tìm hiểu thêm tạittp://nginx.org/.
Tính năng tốt nhất của hai máy chủ web này là bạn không phải chọn cái này hay
cái kia. Nhiều quản trị viên máy chủ chọn thiết lập kép, sử dụng cả HTTPD Apache
và Nginx. Đôi khi, một kiến trúc song song được triển khai, với mỗi máy chủ xử lý
những gì nó làm tốt nhất—Apache quản lý nội dung động và Nginx quản lý nội
dung tĩnh. Những người khác triển khai kiến trúc Apache-in-Back (hoặc Nginx-in-
Front), cho phép Nginx tỏa sáng với các dịch vụ truy xuất tài nguyên của nó và
Apache ổn định vẫn cung cấp nội dung động khi cần.
TÔI menu trong GUI, bạn thường khởi chạy máy chủ bằng cách định cấu hình máy tính để máy tính tự
động chạy bất cứ khi nào máy khởi động. Sau đó, chương trình máy chủ sẽ chạy ở chế độ nền, như
từyêu tinh mộtyêu tinh—tức là, như một quá trình chạy không cần giám sát.
bắt nguồn từ tiếng Hy Lạp
Hầu hết các máy chủ được khởi động tự động khi Linux khởi động. Bạn cũng có thể mở một
thần thoại học; yêu tinh
ere hữu ích supernat- chương trình đầu cuối và nhập lệnh chế độ văn bản cùng với một từ khóa như bắt đầu hoặc dừng,
các sinh vật tự nhiên, giống như để bắt đầu hoặc dừng máy chủ theo cách thủ công. Bản chất của việc khởi động chương trình máy
các daemon Unix và Linux là các
chủ đã thay đổi với các bản phân phối gần đây và nó nằm ngoài phạm vi của cuốn sách này. Tuy
chương trình hữu ích.
nhiên, thật hữu ích khi biết rằng các bản phân phối khác nhau sử dụng một
Bạn hát các chương trình P máy chủ 67
trình nền khởi tạo cụ thể để khởi động và quản lý các máy chủ khác nhau
aemons. Đảm bảo tham khảo tài liệu về bản phân phối của bạn để xác định
trình nền khởi tạo nào nó sử dụng từ danh sách sau:
hệ thống
Một số máy chủ chạy qua mộtsiêu máy chủchẳng hạn như xinetd. Các chương trình máy
chủ này chạy liên tục, giữ cho các máy chủ mà chúng quản lý không tải trừ khi cần thiết.
Cấu hình này có thể giảm thiểu tác động bộ nhớ khi chạy nhiều máy chủ hiếm khi được sử
dụng. Siêu máy chủ cũng có thể hoạt động như một tính năng bảo mật,
giống như một người gác cửa, và tránh xa những kẻ gây rối.
Máy chủ có thể chứa các lỗi cho phép người bên ngoài lạm dụng phần mềm để chạy
các chương trình cục bộ.
Bạn có thể định cấu hình sai máy chủ, cấp cho người bên ngoài quyền truy cập vào
hệ thống của bạn nhiều hơn bạn dự định.
Người dùng có tài khoản và quyền truy cập từ xa qua máy chủ có thể lạm dụng
sự tin cậy này. Nguy cơ này đặc biệt lớn nếu kết hợp với lỗi máy chủ hoặc cấu
hình sai.
Một máy chủ có thể được sử dụng làm bàn đạp để tấn công những người khác, làm cho
nó có vẻ như một cuộc tấn công bắt nguồn từ máy tính của bạn.
Ngay cả khi không đột nhập vào máy tính, kẻ tấn công có thể tràn ngập máy chủ
bằng dữ liệu không có thật, do đó làm tắt máy chủ. kỹ thuật này là
tất cả mộttấn công từ chối dịch vụ (DoS)
Bảo mật máy chủ là một chủ đề cực kỳ phức tạp và các chi tiết khác nhau giữa các máy
chủ. Ví dụ: nếu bạn chạy một máy chủ, chẳng hạn như máy chủ đăng nhập từ xa, Samba
hoặc máy chủ email POP hoặc IMAP, bạn có thể muốn chú ý cẩn thận đến bảo mật mật khẩu
vì tất cả các máy chủ này đều dựa vào mật khẩu. Tuy nhiên, mật khẩu không quan trọng đối
với máy chủ DHCP hoặc DNS. Tất nhiên, ngay cả khi chương trình máy chủ DHCP hoặc DNS
không sử dụng mật khẩu, các chương trình máy chủ khác chạy trên cùng một máy tính có
thể.
số 8 Chương 4 • U hát C o mm trên các chương trình L inux P
Nói chung, việc bảo mật máy chủ đòi hỏi phải chú ý đến từng yếu tố rủi ro
vừa nêu. Các bước cụ thể mà bạn có thể thực hiện để bảo mật máy chủ của
mình bao gồm:
Bạn nên cập nhật các chương trình máy chủ của mình bằng cách sử dụng
công cụ quản lý gói để nâng cấp máy chủ bất cứ khi nào có bản nâng cấp
sinh thái. Bạn cũng có thể nghiên cứu các máy chủ cụ thể để chọn những
máy chủ có danh tiếng bảo mật tốt.
Bạn nên tìm hiểu đầy đủ về cấu hình máy chủ để chắc chắn rằng bạn có thể
cấu hình máy chủ của mình đúng cách.
TÔI Bạn nên xóa các tài khoản không sử dụng và kiểm tra các tài khoản cần thiết để
Tôi chắc chắn rằng họ sử dụng mật khẩu mạnh.
Chương 13 mô tả
ow để tạo ra các từ Bạn có thể sử dụng cấu hình tường lửa để hạn chế quyền truy cập của người bên
khóa mạnh mẽ.
ngoài vào máy chủ chỉ dành cho mục đích sử dụng nội bộ. Bạn cũng có thể sử
dụng tường lửa để giảm thiểu rủi ro cho một trong các máy tính của mình
eing dùng để tấn công người khác.
như + hoặc nếu. Do đó, hầu hết các chương trình liên quan đến việc viết một chương trình bằng
ngôn ngữ lập trình ký hiệu và sau đó dịch mã ký hiệu đó sang ngôn ngữ lập trình ký hiệu.
dạng số mà máy tính hiểu được. Hàng chục, nếu không nói là hàng trăm, như vậy
ngôn ngữ lập trìnhtồn tại, mỗi cái có những nét độc đáo riêng.
Trong số các ngôn ngữ cấp cao, tồn tại hai loại chính:
Ngôn ngữ biên dịchLập trình viên chuyển đổi (hoặcbiên dịch) một chương trình
được viết bằng ngôn ngữ cấp cao từ dạng mã nguồn ban đầu sang dạng mã máy.
Quá trình biên dịch có thể mất một khoảng thời gian—thường là vài giây đến vài
giờ, tùy thuộc vào kích thước của chương trình và tốc độ của máy tính. Quá trình
biên dịch cũng có thể thất bại do lỗi trong chương trình. Khi quá trình biên dịch
thành công, mã máy kết quả sẽ thực thi nhanh chóng.
ngôn ngữ thông dịchCác chương trình được viết bằng các ngôn ngữ thông dịch được
chuyển đổi thành mã máy tại thời điểm chúng chạy, bởi một chương trình được gọi là thông
dịch viênViệc chuyển đổi diễn ra trên cơ sở từng dòng một. Đó là, chương trình không bao
giờ được chuyển đổi hoàn toàn thành mã máy; trình thông dịch tìm ra chức năng của mỗi
dòng và sau đó thực hiện một việc. Điều này có nghĩa là diễn giải pro-
ram chạy chậm hơn nhiều so với các chương trình đã biên dịch. Ưu điểm là các
chương trình thông dịch dễ phát triển hơn, vì bạn không cần xử lý quá trình biên dịch.
Các chương trình được giải thích cũng dễ dàng sửa đổi; chỉ cần mở tệp chương trình
trong trình soạn thảo văn bản và lưu lại. Tính năng này làm cho thông dịch lan-
các công cụ hữu ích để trợ giúp các tác vụ khởi động hệ thống mà quản trị viên hệ thống có thể muốn
thay đổi—quản trị viên có thể thực hiện và kiểm tra các thay đổi một cách nhanh chóng.
Ngoài các ngôn ngữ được biên dịch và thông dịch, một lựa chọn khác là ngôn
ngữ hợp ngữ. Đây là một ngôn ngữ có sự tương ứng một-một đơn giản giữa
số mã achine và các ký hiệu mà người lập trình sử dụng. Ngôn ngữ hợp ngữ ở mức
độ rất thấp, điều đó có nghĩa là một lập trình viên hợp ngữ lành nghề có thể tạo ra các
chương trình nhỏ gọn và hiệu quả. Tuy nhiên, ngôn ngữ hội không phải là rất di động;
phải mất rất nhiều nỗ lực để chuyển đổi một chương trình được viết hoặc, ví dụ,x
86-64 để chạy trên bộ xử lý ARM. Viết chương trình hợp ngữ cũng khó hơn viết
chương trình bằng hầu hết các ngôn ngữ cấp cao. Vì
Vì lý do này, các chương trình hợp ngữ đã trở nên hiếm hơn khi máy tính
trở nên mạnh mẽ hơn; lợi thế về tốc độ và kích thước của ngôn ngữ lắp
ráp không hấp dẫn lắm đối với hầu hết các mục đích vào đầu thế kỷ 21.
70 Chương 4 • U hát C o mm trên các chương trình L inux P
Về lý thuyết, hầu hết các ngôn ngữ có thể được thực hiện ở dạng biên dịch hoặc liên
kết. Tuy nhiên, trong thực tế, hầu hết các ngôn ngữ được sử dụng phổ biến nhất chỉ ở
dạng này hay dạng khác.
Một số ngôn ngữ không phù hợp với một trong hai loại. Xem thanh bên
“Lập trình bằng hợp ngữ” để biết một ngoại lệ quan trọng. Một số khác rơi
vào danh mục ở giữa, chẳng hạn như Java, được biên dịch từ mã nguồn
thành dạng độc lập với nền tảng phải được diễn giải.
Cuộc họpNhư đã lưu ý trước đó, ngôn ngữ cấp thấp này có thể tạo ra hiệu quả
rograms, nhưng rất khó viết và không thể chuyển được. Trong thực tế, đề cập
đến cuộc họpnhư thể đó là một ngôn ngữ hơi sai lệch, vì mỗi kiến trúc
như ngôn ngữ lắp ráp của riêng mình.
ngôn ngữ của anh ấy được cho là ngôn ngữ biên dịch quan trọng nhất cho
Linux, vì hầu hết nhân Linux, cũng như một số lượng lớn các ứng dụng Linux,
được viết bằng C. C có thể tạo mã khá hiệu quả nhưng cũng dễ viết
TÔI các chương trình xấu trong C vì nó thiếu một số tính năng kiểm tra lỗi phổ
biến trong nhiều ngôn ngữ khác. Các tệp mã nguồn C thường có tên tệp
Mặc dù Linux
tìm trongchoặc .h—các .c files là các tập tin mã nguồn chính, trong khi các tập tin hles
ernel chủ yếu là viết
mười trong C, một phần của nó là retập tin tiêu đề, chứa các định nghĩa ngắn về các chức năng trong c files,
ritten trong hội đồng hoặc tham chiếu bởi các tập tin khác trong một chương trình. Một chương trình lớn có thể bao
ngôn ngữ.
gồm hàng chục, nếu không muốn nói là hàng trăm hoặc hàng nghìn tệp mã nguồn riêng lẻ. Trong
Linux, các chương trình C thường được biên dịch vớiccrogram, là một phần của gói Bộ sưu tập trình
biên dịch GNU (GCC).
++ Ngôn ngữ này là một phần mở rộng của C có thêmhướng đối tượngcác tính năng,
có nghĩa là các cấu trúc dữ liệu và tương tác của chúng được nhấn mạnh nhiều hơn so với
các thủ tục được sử dụng để kiểm soát dòng chảy của chương trình. Nhiều chương trình
Linux phức tạp, chẳng hạn như KDE và Apache OpenOffice/LibreOffice, phần lớn được viết
bằng C++. Tệp mã nguồn C++ có thể có tên tệp kết thúc
N .cc, .cpp, .cxx,r .C++,với các tệp tiêu đề kết thúc bằng .h, .hh, .hpp,
. hxx,hoặch++.Trong Linux, C++ thường được biên dịch vớig++chương trình, là
một phần của GCC.
Java ava được tạo bởi Sun Microsystems (hiện thuộc sở hữu của Oracle) dưới dạng
ngôn ngữ đa nền tảng nằm ở đâu đó giữa việc được biên dịch và thông dịch. Nó trở nên
phổ biến như một ngôn ngữ cho các ứng dụng nhỏ được phân phối qua các trang web,
Gói phần mềm H andling S 1
mặc dù một số chương trình khác cũng dựa trên Java. Mã nguồn Java thường
như một cái tên kết thúc bằngjava
perlNgôn ngữ thông dịch này được thiết kế để dễ thao tác với văn bản, nhưng nó
cũng là ngôn ngữ có mục đích chung có thể được sử dụng cho nhiều tác vụ khác. Các
chương trình Perl thường có tên tệp kết thúc bằnglàm ơn, .pm,hoặc .t.
PHPNgôn ngữ PHP: Hypertext Preprocessor, hoặc PHP (từ viết tắt đệ quy), được tạo để sử
dụng trên các máy chủ web nhằm tạo nội dung động—nghĩa là nội dung thay đổi tùy
thuộc vào người dùng, thời gian trong ngày hoặc một số tiêu chí khác. PHP là một ngôn
ngữ được thông dịch và nó yêu cầu một máy chủ web PHPaware, chẳng hạn như Apache.
Với một máy chủ và cấu hình phù hợp như vậy, một trang web có thể hỗ trợ thông tin đăng
nhập của người dùng, giỏ hàng, nội dung khác nhau
liên quan đến vị trí của người dùng, v.v. Các tệp PHP thường có tên kết thúc
N .php,mặc dù một số biến thể là phổ biến.
con trănNgôn ngữ được giải thích này làm cho khả năng đọc mã trở thành mục tiêu chính. Nó hỗ trợ
(nhưng không yêu cầu) hướng đối tượng. Nó thường được sử dụng cho mục đích viết kịch bản, nhưng
nó cũng có thể được sử dụng để viết các chương trình phức tạp hơn. Các chương trình Python thường
sử dụng .py fiphần mở rộng lename, mặc dù một số biến thể của phần mở rộng này cũng phổ biến.
Shell ScriptingHầu hết các shell chế độ văn bản của Linux—các chương trình cho phép sử
dụng máy tính hoàn toàn dựa trên bàn phím—cung cấp các ngôn ngữ diễn giải của riêng
chúng. Trong số này, Bourne Again Shell (Bash) là phổ biến nhất, do đó, Bash scripting khá
phổ biến. Trên thực tế, nhiều tệp kiểm soát quá trình khởi động Linux là các tập lệnh Bash.
J
Các tập lệnh như vậy thường không có phần mở rộng tên tệp duy nhất, mặc dù một số sử
dụng phần mở rộngshsự mở rộng. Chương 11, “Tạo
cripts,” bao gồm
Việc cài đặt các chương trình trên bản phân phối Linux đã trở nên dễ dàng hơn qua nhiều
năm. Tuy nhiên, cách phần mềm được đóng gói, cài đặt và quản lý có thể khác nhau rất
nhiều từ phân phối này sang phân phối khác. Điều quan trọng là phải hiểu những điểm khác
biệt này để tận dụng tối đa lợi thế của các chương trình Linux được thảo luận trong chương
này. Phần này chỉ cung cấp các mô tả ngắn gọn. Thông tin chi tiết về cài đặt và quản lý các
gói phần mềm được cung cấp trong Chương 9.
sử dụng hệ thống quản lý gói (PMS), được thảo luận chi tiết trong
Chương 9.
Các gói này được lưu trữ trênkho lưu trữ, là các máy chủ lưu trữ phần mềm chính thức
trên Internet. Các kho lưu trữ có thể được truy cập qua Internet thông qua các tiện ích PMS
cục bộ của hệ thống Linux của bạn. Các kho có rất nhiều phần mềm
các gói được lưu trữ trên chúng, sẵn sàng để được khám phá hoặc cài đặt. Mỗi nhà phát triển
của bản phân phối Linux đều làm việc chăm chỉ để duy trì và bảo vệ các gói phần mềm của kho lưu
trữ chính thức của họ. Vì vậy, trong hầu hết các trường hợp, tốt nhất là lấy các chương trình từ kho
lưu trữ phân phối mặc định. May mắn thay, PMS phân phối của bạn thường làm điều này theo
mặc định.
đpkgMột công cụ gói cấp thấp được sử dụng làm nền tảng của dòng công cụ PMS dựa
trên Debian. Nó có thể được sử dụng trực tiếp để cài đặt, quản lý và gỡ bỏ phần mềm
kiện hàng. Tuy nhiên, nó bị hạn chế về chức năng. Ví dụ, cácđpkgcông cụ không
thể tự tải các gói phần mềm từ kho lưu trữ.
vòng/phút Anh tavòng/phútcông cụ cũng là một công cụ gói cấp thấp có chức năng tương tự như công cụ
đpkgtính thiết thực. Tuy nhiên, nó được sử dụng làm nền tảng của hệ thống quản lý gói Red
Hat Linux. Mặc dù bạn có thể sử dụngbuổi chiềuđể quản lý các gói, tốt nhất bạn nên sử dụng
tiện ích PMS cấp cao hơn.
apt-get của anh ấy là một công cụ chế độ văn bản dành cho Debian PMS. Vớiapt-get,bạn có thể
cài đặt từ kho lưu trữ và xóa các gói phần mềm khỏi hệ thống Linux cục bộ của bạn.
Ngoài ra, bạn có thể thực hiện nâng cấp gói cho các gói riêng lẻ, tất cả các gói trên hệ
thống của bạn hoặc toàn bộ bản phân phối của bạn. Tuy nhiên, bạn sẽ cần phải sử
dụngapt-cachecông cụ chế độ văn bản để xác định các mẩu thông tin khác nhau liên
quan đến các gói phần mềm.
ngonĐây là một công cụ chế độ văn bản dành cho Red Hat PMS. Nó được sử dụng trên các bản
phân phối, chẳng hạn như Red Hat Enterprise Linux (RHEL), Fedora và CentOS. Với
ừm,bạn có thể cài đặt từ các kho lưu trữ, xóa các gói phần mềm khỏi hệ thống
Linux cục bộ của mình, nâng cấp các gói, v.v. Ngoài ra, bạn có thể sử dụng
ôđể xác định các phần thông tin khác nhau liên quan đến các gói và việc
quản lý chúng, chẳng hạn như hiển thị danh sách các cấu hình của PMS
kho lưu trữ.
T he E ssentialsand B eyond 73
Khi bạn mới bắt đầu sử dụng Linux, rất có thể bạn sẽ bắt đầu bằng cách sử dụng môi trường máy tính
để bàn—bộ chương trình đầu tiên bạn nhìn thấy khi đăng nhập. Môi trường máy tính để bàn cho
phép bạn chạy nhiều chương trình hơn, bao gồm cả năng suất chung các công cụ như trình duyệt
web, ứng dụng email, tiện ích văn phòng và ứng dụng đa phương tiện. Tất nhiên, nếu bạn đang định
cấu hình máy tính làm máy chủ, bạn sẽ muốn chạy các chương trình máy chủ, nhưng bạn sẽ thực
hiện việc này bằng cách chỉnh sửa các tệp cấu hình thay vì khởi chạy chúng từ môi trường máy tính
để bàn. Nếu bạn cần lập trình, bạn nên biết một số ngôn ngữ lập trình Linux phổ biến, cho phép bạn
viết mọi thứ, từ các tập lệnh tầm thường đến các máy chủ khổng lồ hoặc bộ năng suất. Nếu bản phân
phối của bạn không đi kèm với chương trình năng suất máy tính cần thiết hoặc ứng dụng máy chủ
thông thường của bạn trong một hoặc hai ngày để bạn có thể quyết định mình thích môi trường nào hơn.
Hãy thử ít nhất hai trình duyệt web Linux. Sử dụng từng để truy cập các trang web yêu thích của bạn. Bạn có
nhận thấy sự khác biệt về tốc độ hoặc cách các yếu tố trên trang được trình bày? Bạn thích cái nào
hơn?
MỘT.GTK+ . Gnome
. xfce
2.Nếu bạn muốn cho phép một máy tính Linux truy cập các tệp được lưu trữ trên đĩa cứng của
một máy tính Linux khác, thì giao thức mạng nào sau đây làtốt nhấtsự lựa chọn?
MỘT.SMTP . NFS
. PHP Đ.DNS
e.DHCP
. Phần lớn nhân Linux được viết bằng ngôn ngữ nào sau đây?
. Đúng hay sai: Những kẻ bên ngoài có ác ý có thể phá hoại máy chủ ngay cả khi máy tính chạy
6.Đúng hay sai: Python thường được triển khai như một ngôn ngữ thông dịch.
. Thunderbird là một (n) chương trình. (Chỉ định y danh mục chung của
phần mềm.)
9.Một chương trình được viết bằng a(n) ngôn ngữ lập trình là hoàn toàn con-
chuyển sang dạng nhị phân trước khi được chạy.
10.Bạn có thể cài đặt và quản lý các ứng dụng phần mềm Linux khác nhau thông qua một