Chọn một Hệ điều hành

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 74

Translated from English to Vietnamese - www.onlinedoctranslator.

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.

TÔIHệ điều hành là gì?

TÔIĐiều tra giao diện người dùng

TÔILinux phù hợp ở đâu trong thế giới hệ điều hành?

TÔImột phân phối là gì?

Hệ điều hành là gì?

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

Hạt nhân là gì?


một hệ điều hànhnhânlà một thành phần phần mềm chịu trách nhiệm quản lý
các tính năng cấp thấp khác nhau của máy tính, bao gồm:

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ẻ

Phân bổ thời gian CPU cho các chương trình riêng lẻ

Cho phép các chương trình tương tác với nhau

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

ost cần dành riêng cho hệ điều hành


xây dựng từ nhân trở lên và sử dụng bộ chương trình riêng của nó để cung cấp
tinh chỉnh. lập trình viên cô ấy xác định các tính năng của từng hệ điều hành.

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.

Điều gì khác xác định là một hệ điều hà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

chương trình indow trên


hoặc K Desktop Môi trường (KDE), để cung cấp trải nghiệm người dùng hoàn chỉnh hơn. Đó
các trang web nhưww
là sự khác biệt giữa môi trường máy tính để bàn Linux và GUI trong Windows hoặc OS X có linuxrsp.ru/
thể sẽ gây ấn tượng với bạn nhất khi bạn lần đầu tiên bắt đầu sử dụng Linux. win-lin-soft/
có thể-enghoặc
Chương trình tiện íchCác hệ điều hành hiện đại luôn đi kèm với nhiều chương trình tiện ích đơn giản www.linuxalt
—máy tính, lịch, trình soạn thảo văn bản, công cụ bảo trì ổ đĩa, v.v. Các chương trình này khác nhau từ com.
hệ điều hành này sang hệ điều hành khác. Thật vậy, ngay cả tên và phương pháp khởi chạy các chương
trình này cũng có thể khác nhau giữa các hệ điều hành. May mắn thay, bạn thường có thể tìm thấy các
J
chương trình mình muốn bằng cách lướt qua các menu trong môi trường máy tính để bàn chính.
J
thư việnTrừ khi bạn là một lập trình viên, bạn sẽ không cần phải làm việc trực tiếp với các thư Ngoài phần mềm
hat chạy trên một hệ điều hành,
viện; tuy nhiên, chúng tôi đưa chúng vào danh sách này vì chúng cung cấp các dịch vụ quan
một số tính năng khác có thể

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,

quy tắc đặt tên tệp đĩa,


chương trình phân tích các tùy chọn được truyền cho chúng trên dòng lệnh. Nhiều thư viện tồn
thông tin chi tiết kỹ thuật
tại cho Linux, giúp làm phong phú thêm bối cảnh phần mềm Linux. về cách máy tính khởi động.

Những tính năng này


Chương trình năng suấtCác chương trình năng suất chính—trình duyệt web, trình xử lý văn
tất cả đều được điều
bản, trình chỉnh sửa đồ họa, v.v.—là lý do thông thường để sử dụng máy tính. Mặc dù các
khiển bởi phần mềm là
chương trình như vậy thường tách biệt về mặt kỹ thuật với HĐH, nhưng đôi khi chúng được liên một phần của HĐH, tất

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

Điều tra giao diện người dùng


Trước đó, chúng tôi đã lưu ý sự khác biệt giữa chế độ văn bản và giao diện người dùng đồ họa. Mặc
dù hầu hết người dùng cuối ưa chuộng GUI vì tính dễ sử dụng của chúng, Linux vẫn giữ truyền
thống chế độ văn bản mạnh mẽ. Chương 6 mô tả chi tiết hơn về các công cụ chế độ văn bản của
Linux và Chương 4, “Sử dụng các chương trình Linux thông thường,” bao gồm các nguyên tắc cơ
bản của hoạt động GUI của Linux. Điều quan trọng là bạn có một số nền tảng trong
asic của cả giao diện người dùng ở chế độ văn bản và đồ họa, vì các vấn đề về giao
diện người dùng thỉnh thoảng xuất hiện trong các chương xen kẽ.

Sử dụng Giao diện Người dùng Chế độ Văn bản

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:

Bản phát hành Fedora 21 (Hai mươi mốt)


Hạt nhân 3.18.6-200.fc21.x86_64 trên x86_64 (tty1)

đăng nhập cần thiết:

Để 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

tính. Không phải Tên và phiên bản hệ điều hành—Fedora Linux 21


Kỳ thi Linux Essentials

hoặc cuốn sách này Tên máy tính—nhu yếu phẩm


bao gồm cài đặt Linux.

Tham khảo bản phân phối của bạn


Tên của thiết bị phần cứng đang được sử dụng để đăng nhập—tty1
tài liệu của tion
Bản thân dấu nhắc đăng nhập—nguồn gốc:
để tìm hiểu thêm về

cách cài đặt Linux.


Để đăng nhập vào một hệ thống như vậy, bạn phải nhập tên người dùng của mình tạiđăng nhập:

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:

Nếu bạn thấy thông tin đăng nhập GUI [ rich@essentials : $


rompt, bạn có thể nhận được lời

nhắc chế độ văn bản bằng cách


Trong cuốn sách này, chúng tôi bỏ qua hầu hết các lời nhắc từ các lệnh ví dụ khi chúng xuất
thay đổi Ctrl+Alt+F1 hiện trên các dòng riêng của chúng. Tuy nhiên, chúng tôi giữ dấu nhắc đô la ( ) cho các lệnh của
hoặc Ctrl+Alt+F2. ĐẾN người dùng thông thường. Một số lệnh phải được nhập nhưnguồn gốc,đó là người dùng quản trị
quay lại màn hình đăng
Linux. Chúng tôi thay đổi lời nhắc thành dấu thăng (#) cho các lệnh như vậy, vì hầu hết các bản
nhập GUI, nhấn Alt + F1
phân phối Linux đều thực hiện thay đổi tương tự đối với các lệnh của chúng.
hoặc Alt+F7.

rompts choootngười dùng.


Tôi điều tra các giao diện của U ser I

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

Sử dụng giao diện người dùng đồ họa


Hầu hết người dùng cảm thấy thoải mái hơn với GUI so với các lệnh ở chế độ văn bản. Do đó,
nhiều hệ thống Linux hiện đại khởi động ở chế độ GUI theo mặc định, hiển thị thông tin đăng
nhập.
tên từ

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

romt bạn cho một


người giới thiệu. Các lựa chọn phổ biến bao gồm GNOME, KDE, Xfce và Unity. Nhiều tùy
kiếm cho đến sau chọn khác cũng có sẵn. Nhiều máy tính để bàn đồ họa có các tính năng công nghệ hỗ trợ
bạn đã nhập một được tích hợp sẵn. Trong Hình 1.2, biểu tượng hình người ở góc trên cùng bên phải của cửa
sername hợp lệ.
sổ đăng nhập Ubuntu cho phép bạn chọn một công nghệ hỗ trợ, chẳng hạn như trình đọc
màn hình hoặc bàn phím ảo, để hỗ trợ bạn đăng nhập lối vào.
Môi trường máy tính để bàn Linux có thể trông khá khác nhau, nhưng tất cả
chúng đều cung cấp chức năng tương tự. Hình 1.3 hiển thị KDE mặc định trên bản
cài đặt openSUSE 13.2 với một vài chương trình đang chạy.
Chương 4 mô tả chi tiết hơn về các môi trường máy tính để bàn phổ biến và các tính năng của
chúng, nhưng bây giờ bạn nên biết rằng tất cả chúng đều cung cấp các tính năng như sau:
HÌNH 1 . 3Môi trường máy tính để bàn Linux cung cấp các loại điều khiển GUI mà hầu hết người dùng mong đợi.

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ư

bạn không thể đăng xuất, một


động của nhiều máy tính để bàn ảo, mỗi máy tính có một bộ chương trình riêng. Tính năng này rất tiện
người lạ có thể đến
lợi để giữ cho màn hình gọn gàng trong khi bạn chạy nhiều chương trình cùng một lúc. Thông
cùng và sử dụng của bạn
thường, một biểu tượng trong một trong các menu cho phép bạn chuyển tài khoản độc hại
giữa các máy tính để bàn ảo. mục đích.

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-

quyền sử dụng chúng. Chủ


thay đổi nó. Mặc dù tất cả đều cung cấp các tính năng tương tự, nhưng một số
đề này không phải là cov- mọi người có sở thích mạnh mẽ về môi trường máy tính để bàn. Linux cung cấp cho bạn
màu đỏ trong cuốn sách này.
sự lựa chọn trong vấn đề không có sẵn trong Windows hoặc OS X, vì vậy hãy thử nhiều môi
trường máy tính để bàn.
TÔI

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 phối?,” Linux


Tiêu đề của chương này ám chỉ một sự so sánh, và vì cuốn sách này viết về Linux, nên sự so
có thể được coi là một sánh phải là với các hệ điều hành không phải Linux. Do đó, chúng tôi so sánh Linux với ba hệ
gia đình của các hệ điều hành. Vì điều hành hoặc họ hệ điều hành khác: Unix, Mac OS X và Microsoft Windows.
vậy, bạn có thể so sánh một Linux

chuyển sang một cái khác.

So sánh Linux với Unix


Nếu bạn định vẽ một “cây phả hệ” của các hệ điều hành, bạn sẽ phải vò đầu bứt tai rất nhiều. Điều
này là do các nhà thiết kế hệ điều hành thường bắt chước các tính năng của nhau và thậm chí đôi
khi kết hợp các ý tưởng của nhau vào hoạt động của hệ điều hành của họ. Kết quả có thể là một
Bạn không chỉ có thể chạy

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à

ví dụ về sự hài hước đam mê.


anh ấy Dự án GNUDự án GNU's Not Unix (GNU) là một nỗ lực của Tổ chức
TÔI Phần mềm Tự do (FSF) nhằm phát triển các thay thế nguồn mở cho tất cả các
thành phần cốt lõi của Hệ điều hành Unix. Vào năm 1991, FSF đã phát hành
công cụ quan trọng nhất như vậy, với ngoại lệ đáng chú ý là kernel. (Nhân GNU
HURD hiện đã có, nhưng không phổ biến bằng nhân Linux.)
W here D oes L inux F itinthe OS Wo rld ?

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

tập tin Linux được biết đến


khác biệt không quan trọng so với sự khác biệt giữa họ này nói chung và các hệ điều
s Btrfs cung cấp nhiều
hành khác, chẳng hạn như Windows. Do tính phổ biến của nó, Linux cung cấp hỗ trợ Các tính năng của FS và

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

So sánh Linux với Mac OS X


Mac OS X là một hệ điều hành dựa trên Unix thương mại vay mượn nhiều từ BSD và loại
bỏ GUI Unix thông thường (cụ thể là X) để ủng hộ giao diện người dùng của chính nó.
Điều này làm cho OS X rất giống với Linux và hoàn toàn khác với nó.
0 Chương 1 • Hệ thống bầu cử vận hành

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à

chữ số La Mã 10), biểu thị


Cocoa không tương thích với X từ góc độ lập trình, các ứng dụng được phát triển cho
phần mười OS X không thể chạy trực tiếp trên Linux hoặc trên các HĐH giống Unix khác) và chuyển
phiên bản Mac OS. chúng (nghĩa là sửa đổi mã nguồn và biên dịch lại chúng) cho Linux là một công việc
không cần thiết. Do đó, các ứng dụng OS X bản địa hiếm khi thực hiện quá trình chuyển
đổi sang Linux.
OS X bao gồm việc triển khai X chạy dưới Aqua. Điều này làm cho việc chuyển các
chương trình GUI Linux và Unix sang OS X tương đối đơn giản. Tuy nhiên, các chương
trình kết quả không hoàn toàn phù hợp với giao diện người dùng Aqua. Chúng có thể
có các nút, menu và các tính năng khác trông có vẻ không phù hợp.
đều có giao diện thông thường của các phiên bản OS X tương đương.

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.

So sánh Linux với Windows


Hầu hết các máy tính để bàn và máy tính xách tay ngày nay đều chạy Microsoft Windows. Vì
vậy, nếu bạn đang cân nhắc chạy Linux, khả năng so sánh tốt nhất là với Windows. Nói
chung, Linux và Windows có khả năng tương tự nhau; tuy nhiên, có sự khác biệt đáng kể về
chi tiết. Chúng bao gồm những điều sau đây:

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

cục bộ không đáng tin cậy.

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ử

dụng hệ điều hành đó.

Phân phối là gì?


Cho đến bây giờ, chúng tôi đã mô tả Linux như thể nó là một hệ điều hành duy nhất, nhưng
thực tế không phải vậy. Nhiều Linux khác nhauphân phốiđều có sẵn, mỗi cái bao gồm một
nhân Linux cùng với một tập hợp các tiện ích và tệp cấu hình. Kết quả là một hệ điều hành
hoàn chỉnh và hai bản phân phối Linux có thể khác nhau nhiều như
nó khác với OS X hoặc Windows. Do đó, chúng tôi mô tả chi tiết hơn những gì tạo
nên một bản phân phối, những bản phân phối nào phổ biến và cách thức mà
những người duy trì phân phối luôn cập nhật các dịch vụ của họ.

Tạo một hệ điều hành dựa trên Linux hoàn chỉnh


Chúng tôi đã mô tả một số thành phần tạo nên HĐH Linux, nhưng một số chi tiết
cần nhắc lại hoặc xây dựng:

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 ổ

đĩa flash USB.


Một số trình cài đặt Linux hoàn chỉnh với tất cả phần mềm mà bạn có thể sẽ cài đặt.
Những người khác chỉ đi kèm với phần mềm tối thiểu và yêu cầu bạn có kết nối
Internet đang hoạt động để trình cài đặt có thể tải xuống phần mềm bổ sung. Nếu
máy tính của bạn không được kết nối với Internet, hãy đảm bảo chọn đúng loại trình
cài đặt.

Khám phá các bản phân phối Linux phổ biến


Tùy thuộc vào cách bạn đếm, có khoảng một chục bản phân phối Linux chính hoặc máy
tính để bàn, máy tính xách tay và máy chủ nhỏ, cùng hàng trăm bản khác phục vụ các
mục đích chuyên biệt. Bảng 1.1 tóm tắt các tính năng quan trọng nhất
phân bổ.

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

rch Cây acman đánh lừa Chuyên gia

CentOS Cây BUỔI CHIỀU xấp xỉ Trung cấp


- năm

ebian Cây ebian - năm Trung cấp đến

chuyên gia

edora Cây BUỔI CHIỀU xấp xỉ Trung cấp


6 tháng
Tôi nói phân phối D hat gì? 5

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

Gentoo Cây xây dựng đánh lừa chuyên gia

int Cây ebian 6 tháng ovice để

trung cấp

mởSUSE Cây BUỔI CHIỀU - tháng trung gian

Mũ đỏ Thuộc về thương mại BUỔI CHIỀU xấp xỉ trung gian


doanh nghiệp - năm

khoa học Cây BUỔI CHIỀU xấp xỉ làm trung gian cho

- tháng chuyên gia

Slackware Cây quả cầu thường xuyên chuyên gia

SỬ DỤNG Thuộc về thương mại BUỔI CHIỀU - 3 năm trung gian


doanh nghiệp

Ubuntu Cây ebian 6 tháng ovice để

trung cấp

Các tính năng này yêu cầu giải thích:

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ự

o các tệp zip


đặt, giúp việc nâng cấp và gỡ cài đặt trở nên dễ dàng. Hệ thống RPM Package Manager
phổ biến trên
(RPM) là hệ thống phổ biến nhất trong thế giới Linux, nhưng các gói Debian cũng phổ biến.
indows. Chương 8,
Các hệ thống đóng gói khác hoạt động tốt, nhưng chúng dành riêng cho phân phối. Tìm kiếm, trích xuất,
Slackware khác thường ở chỗ nó sử dụngquả cầucho các gói của nó. Đây là các tệp gói được nd Lưu trữ dữ liệu,”

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,

ut nó có thể được sử dụng


những điện thoại như vậy không sử dụng X hoặc các ứng dụng máy tính để bàn thông thường; thay vào đó,

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

OpenWrt (ttps://openwrt.org)là hai ví dụ về Linux tùy chỉnh như vậy


phân bổ. Tuy nhiên, đừng cài đặt phần mềm như vậy theo ý thích; nếu thực hiện không đúng
Chúng tôi khuyên bạn nên
cách hoặc trên sai thiết bị, chúng có thể khiến thiết bị trở nên vô dụng!
bạn tải về Parted

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ự,

o có sẵn trong trường


số lượng đáng kể các chương trình hỗ trợ tiêu chuẩn, cùng với trình điều khiển độc quyền hợp bạn gặp vấn đề
và phần mềm DVR. Mặc dù nhiều người sử dụng chúng không nhận ra điều đó, nhưng bề thứ cài đặt Linux

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ờ.

Hiểu chu kỳ phát hành


Bảng 1.1 tóm tắt các chu kỳ phát hành được sử dụng bởi một số
phân phối inux. Các giá trị được trích dẫn trong bảng đó là thời gian giữa các lần phát hành. Chẳng hạn,
các phiên bản mới của Ubuntu ra mắt sáu tháng một lần, giống như đồng hồ. Hầu hết các lịch phát hành
của các bản phân phối khác đều cung cấp một số “phòng ngọ nguậy”; nếu ngày phát hành trượt một
tháng, điều đó có thể chấp nhận được.
Sau khi phát hành, một bản phân phối thường được hỗ trợ cho đến một lúc nào đósau đó
bản phát hành của phiên bản tiếp theo—thường là sau vài tháng đến một năm hoặc hơn.
Trong thời gian hỗ trợ này, những người bảo trì bản phân phối cung cấp các bản cập nhật
phần mềm để sửa các lỗi và sự cố bảo mật. Sau khi hết thời gian hỗ trợ, bạn có thể tiếp tục
sử dụng bản phân phối nhưng bạn phải tự mình sử dụng—nếu cần phần mềm cập nhật, bạn
sẽ phải tự biên dịch phần mềm đó từ mã nguồn hoặc hy vọng rằng bạn có thể tìm thấy gói
nhị phân tương thích từ một nguồn khác. Do đó, trên thực tế, bạn nên nâng cấp lên phiên
bản mới nhất trước khi thời gian hỗ trợ kết thúc. Thực tế này làm cho các bản phân phối có
chu kỳ phát hành dài hơn trở nên hấp dẫn đối với các doanh nghiệp, vì thời gian dài hơn
giữa các lần cài đặt sẽ giảm thiểu sự gián đoạn và chi phí liên quan đến việc nâng cấp.

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.

Những điều cần thiết và hơn thế nữa

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

phần mềm giữa Linux và Windows bị hạn 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.

Bài tập gợi ý


Lập danh sách các chương trình mà bạn chạy với tư cách là người dùng thông thường, bao gồm mọi thứ

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

kiếm trên web để tìm tương đương.

Đọ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?

Revi ew Que st ion


1.Điều nào sau đây làkhôngmột chức năng của nhân Linux?

. Cấp phát bộ nhớ cho các chương trình sử dụng

. Phân bổ thời gian CPU để sử dụng bởi các chương trình

. Tạo menu trong chương trình GUI


(Còn tiếp)
T he E ssentialsand B eyond 9

Những điều cần thiết và hơn thế nữa(tiếp)

. Kiểm soát quyền truy cập vào ổ cứng

e.Cho phép các chương trình sử dụng mạng

. Điều nào sau đây là một ví dụ về hệ điều hành Linux nhúng?

MỘT.Android . CentOS

b.SỬ DỤNG . Debian

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

phần cứng Apple.

. 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.

4.Đúng hay sai: Nhân Linux có nguồn gốc từ nhân BSD.


5.Đúng hay sai: Nếu bạn đăng nhập vào hệ thống Linux ở chế độ đồ họa, bạn không thể sử dụng các lệnh

chế độ văn bản trong phiên đó.

. Đú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.

TÔIĐiều tra giấy phép phần mềm

TÔITổ chức Phần mềm Tự do

TÔISáng kiến nguồn mở

TÔICộng đồng sáng tạo

TÔISử dụng giấy phép mã nguồn mở

Điều tra giấy phép phần mềm


Luật bản quyền đã tồn tại hàng thế kỷ và do đó, nó không được thiết kế dành cho
phần mềm. Tuy nhiên, luật bản quyền không áp dụng cho phần mềm. Giấy phép
mà tác giả áp dụng cho phần mềm của họ tương tác với luật bản quyền để tạo ra
các quyền cụ thể mà bạn có—vàđừngcó—để sử dụng, sửa đổi và phân phối lại
phần mềm. Vì vậy, bạn cần hiểu các nguyên tắc cơ bản, cũng như sự khác biệt,
giữa các giấy phép độc quyền và giấy phép nguồn mở.
2 Chương 2 • Hiểu biết về phần mềm cấp phép

Khám phá bảo vệ bản quyền và phần mềm mềm


chứng nhận MỘTbản quyềnđúng như tên gọi, là quyền được pháp luật công nhận để tạo bản sao của một
Khách quan
thứ gì đó. Ở hầu hết các quốc gia, nếu bạn viết một cuốn sách, chụp ảnh hoặc tạo một chương
trình máy tính, bạn (và chỉ một mình bạn) có quyền sao chép những thứ đó.
ook, bức ảnh, hoặc chương trình máy tính. Tuy nhiên, bạn có thể trao cho người khác quyền tạo
các bản sao như vậy hoặc thậm chí từ bỏ quyền kiểm soát bản quyền cho người khác.
Luật bản quyền khác nhau giữa các quốc gia, nhưng hầu hết các quốc gia đã ký
Công ước Berne, một thỏa thuận quốc tế yêu cầu các quốc gia công nhận bản
quyền của nhau. Nghĩa là, nếu Jacob viết một cuốn sách (hoặc vở opera hoặc
chương trình máy tính) ở Hoa Kỳ, tác phẩm đó sẽ có bản quyền không chỉ ở Hoa
Kỳ mà còn ở Iceland, Kenya, Vương quốc Anh và các quốc gia khác đã phê chuẩn
Hiệp ước.
Bởi vì hầu hết luật bản quyền đã được viết từ rất lâu trước khi máy tính ra đời,
chúng thường không phù hợp với nhu cầu của máy tính. Ví dụ, luật bản quyền cấm
sao chép một tác phẩm, nhưng một chương trình máy tính sẽ vô dụng nếu không có
những bản sao đó. Ví dụ về các bản sao nhất thiết phải được tạo để chạy chương
trình hoặc được khuyến khích để đảm bảo an toàn, bao gồm:

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

như thể nó là RAM.


Trong quá khứ, những bản sao như vậy thường bị bỏ qua theo nguyên tắcsử dụng hợp lý— nghĩa là,
các trường hợp ngoại lệ cho phép sao chép các phần của tài liệu có bản quyền. Các ví dụ khác về sử dụng
hợp lý bao gồm các trích dẫn được sử dụng trong các bài đánh giá hoặc báo cáo tin tức và các đoạn trích
được sử dụng trong nghiên cứu hoặc giảng dạy. Ngày nay, luật bản quyền công nhận rõ ràng nhu cầu
sao chép phần mềm để sử dụng phần mềm đó, ít nhất là ở Hoa Kỳ.

Sử dụng giấy phép để sửa đổi điều khoản bản quyền


chứng nhận Mặc dù phần mềm tuân theo luật bản quyền nhưng hầu hết phần mềm được phát hành với giấy
Khách quan
phép, là một tài liệu pháp lý tuyên bố sửa đổi các quyền được cấp bởi luật bản quyền. Trong hầu
hết các trường hợp, bạn không ký giấy phép như vậy, mặc dù trong một số
Tôi điều tra S oftware L icenses 3

ts, Nhãn hiệu và Phần mềm


bằng sáng chế chứng nhận
Khách quan

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ự,

mặc dù kết quả này


trường hợp bạn phải nhấp vào một nút để chấp nhận các điều khoản cấp phép. Trước đây,
không phổ biến.
giấy phép đôi khi được in trên hộp đựng phần mềm được phân phối. Những giấy phép như
vậy thường được gọi làthỏa thuận cấp phép người dùng cuối (EULA),giấy phép nhấp qua,giấy J
phép thu nhỏ, hoặcgiấy phép nhấp chuột. Phần mềm nguồn mở thường đi kèm với giấy
phép trong một tệp, thường được gọi làKHAI THÁC.
24 Chương 2 • Hiểu biết về phần mềm cấp phép

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.

Nhìn vào Tổ chức Phần mềm Tự do


chứng nhận Tổ chức Phần mềm Tự do (FSF) là một lực lượng quan trọng trong thế giới nguồn
mở. Được thành lập vào năm 1985 bởi Richard Stallman, FSF là động lực thúc đẩy
Khách quan

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.

Hiểu triết lý của FSF


TÔI FSF ủng hộ những gì nó gọi làphần mềm miễn phí, mà nó định nghĩa về quyền tự do làm
những việc bạn muốn làm với phần mềm, chứ không phải giá của phần mềm. Một cụm từ
Phần mềm tự do, như FSF
phổ biến được sử dụng để làm rõ sự khác biệt này là “free as in speech, not ree as in beer.”
định nghĩa, là khác biệt-

nt từphần mềm miễn phí.

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ư

trong bài phát biểu.

Tự do phân phối lại phần mềm


Tự do phân phối lại phần mềm đã sửa đổi của bạn

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 đó.

Kiểm tra Free Sof tware và GPL


Biểu thức pháp lý của các nguyên tắc của FSF có dạng GPL đôi khi được gọi làNU
Một bản phân phối Linux là
GPL.Hai phiên bản của GPL là phổ biến: phiên bản 2 và phiên bản 3. (Phiên bản bộ sưu tập của nhiều

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

rõ ràng về bốn quyền tự do đó bằng cách tuyên bố rằng


băng giá. Không có giấy phép nào

được ưu tiên hơn giấy phép


các tác phẩm phái sinh cũng phải được phát hành theo GPL. Điều khoản này ngăn kia.
cản một công ty chiếm đoạt hoàn toàn một chương trình nguồn mở. Chẳng hạn, nhiều
công ty tạo ra các bản phân phối Linux và một số sử dụng nhân Linux kết hợp các “bản J
vá” sửa lỗi. Các nhân này, giống như nhân Linux chính thống, đều có sẵn theo GPL.
Không công ty nào có thể phát hành hợp pháp một bản phân phối dựa trên nhân
Linux đã vá và sau đó từ chối thực hiện các bản vá nhân của nó
khả dụng.
GPL phiên bản 2 (hay gọi tắt là GPLv2) được phát hành vào năm 1991 và nó đã
thống trị trong nhiều năm. Năm 2007, GPLv3 xuất hiện, với ý định đóng những lỗ
hổng mà FSF coi là kẽ hở trong GPLv2, đặc biệt là đối với những thay đổi về luật
và thông lệ kể từ năm 1991. Cụ thể, GPLv3 chứa các điều khoản mà
dự định chống lại việc sử dụng các hạn chế phần cứng hạn chế bốn quyền tự do của FSF và giải
quyết các vấn đề liên quan đến bằng sáng chế phần mềm. Nhiều chương trình mới hiện đang
được phát hành theo các điều khoản của GPLv3 và nhiều chương trình cũ hơn
26 Chương 2 • Hiểu biết về phần mềm cấp phép

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

GPL, nhưng đây là


thoại và menu. Nhiều chương trình GUI sử dụng các tính năng này và
thay đổi vào năm 1999. sắp xếp chúng trong các thư viện không chỉ giúp lập trình viên mà còn giảm kích
thước của các chương trình sử dụng chúng. Tuy nhiên, từ ngữ của GPL sẽ yêu cầu
tất cả các chương trình sử dụng thư viện có GPL cũng phải được phát hành theo
các điều khoản của GPL. Yêu cầu mạnh mẽ này đã thúc đẩy việc tạo ra LGPL,
tương tự như GPL nhưng cho phép các chương trình sử dụng thư viện có GPL
được phát hành theo giấy phép khác—thậm chí là giấy phép thương mại.

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.

Nhìn vào Sáng kiến nguồn mở


chứng nhận Bruce Perens và Eric S. Raymond thành lậpsáng kiến nguồn bút (OSI)vào năm 1998 với tư
Khách quan

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ó.

Hiểu triết lý nguồn mở


Trong những năm 1980 và 1990, phong trào phần mềm miễn phí đã đạt được động lực trong một số nhóm

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):

cái bút Nguồn chứng nhận


Khách quan

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

của nhà cung cấp săn mồi.

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

Phần mềm miễn phí

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.

Định nghĩa phần mềm mã nguồn mở tware


chứng nhận Định nghĩa nguồn mở xuất hiện tạiww.opensource.org/definition.Nó bao
Khách quan
gồm 10 nguyên tắc, được diễn giải ở đây:
TÔI
Phân phối lại miễn phí Giấy phép phải cho phép phân phối lại, bao gồm phân phối lại
10 nguyên tắc của OSI cống hiến như là một phần của một công việc lớn hơn.
có nguồn gốc từ
những người được thể hiện bởi Mã nguồn sẵn có tác giả phải cung cấp mã nguồn và
Debian GNU/Linux cho phép phân phối lại mã nguồn và (nếu có) mã nhị phân.
nhà phát triển.

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

ot yêu cầu, rằng giấy

phép yêu cầu tái sản xuất


mã nguồn ban đầu. Giấy phép có thể yêu cầu các tác phẩm phái sinh thay đổi
khổ nạn dưới tên hoặc số phiên bản của phần mềm.
giấy phép gốc.
L ookingatthe C reative C o mm ons 9

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-

buộc tội bất kỳ người nào hoặc nhóm người nào.

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.

Nhìn vào Creative Commons


Creative Commons (ttp://creativecommons.org)được thành lập bởi Lawrence Lessig. Mục tiêu của nó chứng nhận
Khách quan
là chống lại những gì mà những người sáng tạo và những người ủng hộ nó coi là
văn hóa sáng tạo ngày càng gắn liền với các quyền được cấp (hoặckhôngđược cấp) bởi những người giữ
bản quyền đối với các tác phẩm trước đó. Phần lớn nền văn hóa hiện tại của chúng ta là
bắt nguồn từ các tác phẩm văn hóa trước đó—ví dụ,Chiến tranh giữa các vì saobộ sưu tập phim được truyền

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.

Sử dụng giấy phép nguồn mở


Là một người dùng cá nhân, bạn có thể không cần tìm hiểu quá sâu vào các chi tiết về giấy phép
nguồn mở. Các nguyên tắc đằng sau các nguyên tắc OSI đảm bảo rằng bạn có quyền sử dụng các
chương trình nguồn mở khi bạn thấy phù hợp và thậm chí phân phối lại các chương trình đó.
Tuy nhiên, nếu bạn đang xây dựng một doanh nghiệp, và đặc biệt là một
công ty tạo hoặc phân phối phần mềm mã nguồn mở, bạn có thể cần hiểu rõ hơn về
các giấy phép này. Do đó, một vài trong số chúng được mô tả chi tiết hơn. Ngoài ra,
một số cách mà các công ty đã tìm thấy để sử dụng giấy phép nguồn mở như
nghệ thuật của các mô hình kinh doanh của họ được bao gồm.

Hiểu giấy phép nguồn mở


Hai giấy phép BSD là

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

hiện ragiấy phép, trong


GNU GPL và LGPL Như đã lưu ý trước đó, nhân Linux sử dụng GPLv2 và
liên quan đến một phiên nhiều công cụ Linux khác sử dụng GPL (phiên bản 2 hoặc phiên bản 3). Nhiều thư viện
bản vẫn còn cũ hơn.) Linux sử dụng LGPL.

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

NÓ Viện Công nghệ Massachusetts (MIT) là cơ sở ban đầu


lực lượng di chuyển đằng sau Hệ thống Cửa sổ X (viết tắt là X) và giấy phép MIT đôi
khi được gọi là giấy phép X11) tiếp tục được sử dụng cho Xorg-X11—việc triển
khai X có trong nhiều bản phân phối Linux. Giấy phép MIT ngắn bất thường.
U sing O pen S source L icenses 1

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ả,

anh ấy có giấy phép Apache

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.

Hiểu các mô hình kinh doanh nguồn mở


chứng nhận Một số bản phân phối Linux, chẳng hạn như Debian, được duy trì bởi các tình nguyện viên hoặc
Khách quan
y các tổ chức phi lợi nhuận. Những thứ khác, chẳng hạn như Red Hat Enterprise Linux, được duy
trì bởi một công ty mong muốn tạo ra lợi nhuận. Vậy thì làm thế nào một công ty có thể kiếm được
lợi nhuận nếu sản phẩm cốt lõi của họ được cung cấp miễn phí trên Internet? Có một số cách tiếp
cận để kiếm tiền từ phần mềm mã nguồn mở, bao gồm những cách sau:

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.

Những điều cần thiết và hơn thế nữa

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.

Bài tập gợi ý


Tra cứu giấy phép hai điều khoản GPLv2, GPLv3 và BSD. (www.opensource.org/licenses/là
một nơi tốt để tìm thấy tất cả.) Đọc và so sánh chúng. Bạn sẽ sử dụng cái nào nếu
bạn viết một chương trình mã nguồn mở?

Đọ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/).

Revi ew Que st ion


1.Điều nào sau đây không bắt buộc để phần mềm được chứng nhận là nguồn mở?

. 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

Những điều cần thiết và hơn thế nữa(tiế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.

2.Điều nào đúng với toàn bộ bản phân phối Linux?

. 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

phép thương mại.

. 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

chương trình—nghĩa là mã nguồn của nó.

. Đú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ư

bản ghi video và âm thanh là

. 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)

cho bất cứ ai hoàn thành dự án đầu tiên.


CHƯƠNG 3

Điều tra Linux


nguyên tắc và
triết học
Bạn có thể thường xuyên chọnsản phẩm hoặc công nghệ hoàn toàn thực dụng
làm tròn—hệ điều hành nào hoạt động tốt cho một nhiệm vụ nhất định, bộ phần mềm nào
đắt tiền, v.v. Tuy nhiên, đôi khi, việc hiểu các nguyên tắc và triết lý làm nền tảng cho một công
nghệ có thể hữu ích và việc biết những nguyên tắc và triết lý này thậm chí có thể định hướng
cho sự lựa chọn của bạn.
Điều này đúng với một số người dùng Linux; mô hình nguồn mở của Linux, mà chúng
tôi đã giới thiệu trong Chương 1, “Lựa chọn Hệ điều hành,” có những tác động có thể
ảnh hưởng đến cách thức hoạt động của Linux. Hơn nữa, một số người trong thế giới
Linux có thể trở nên khá đam mê những nguyên tắc này. Dù bạn có đồng ý với những
cá nhân này hay không thì việc hiểu quan điểm của họ có thể giúp bạn đánh giá cao văn
hóa Linux, thứ mà bạn sẽ tìm thấy ở nơi làm việc, trực tuyến, tại các hội nghị, v.v.

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ủ.

TÔIKhám phá Linux qua các thời đại

TÔISử dụng phần mềm mã nguồn mở

TÔIHiểu vai trò của hệ điều hành

Khám phá Linux qua các thời đại


Mặc dù ngày khai sinh năm 1991 của Linux là gần đây nhất theo hầu hết các tiêu chuẩn lịch sử, nhưng trong

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.

Tìm hiểu nguồn gốc của Linux


TÔI Năm 1991, cũng như ngày nay, máy tính được phân loại theo kích thước và khả
năng của chúng. Máy tính có thể thuộc về bất kỳ danh mục nào, từ
Máy tính ngày nay có thể
esktop máy tính cá nhân (PC) đến siêu máy tính.xMáy tính dựa trên 86, là tổ tiên
e được phân loại theo

cách tương tự như trong


trực tiếp của PC ngày nay, đã thống trị thị trường PC năm 1991; tuy nhiên, các loại
1991, mặc dù một số PC khác đã có sẵn, bao gồm cả máy Mac. Những máy tính như vậy thường sử dụng
chi tiết đã thay đổi. các CPU khác nhau và chạy hệ điều hành tùy chỉnh của riêng chúng.
Một bổ sung đáng chú
Năm 1991, hầu hết các PC đều chạy Hệ điều hành đĩa của Microsoft (MS-DOS, PC-DOS
ý là máy tính nhúng,
hoặc DOS). DOS cực kỳ hạn chế theo tiêu chuẩn ngày nay; hệ điều hành đơn tác vụ này có
như trong điện thoại thông minh.

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

Các phiên bản ngày nay của


Unix và các giải pháp thay thế khác.
Windows không Năm 1991, Linus Torvalds là sinh viên của Đại học Helsinki, nghiên cứu
bắt nguồn từ DOS. khoa học máy tính. Anh ấy quan tâm đến việc tìm hiểu về cả Unix và
khả năng của cái mớix86 máy tính anh ấy mới mua. Torvalds bắt đầu chương trình mà sau
Thay vào đó, họ sử dụng một

hạt nhân ew chia sẻ bất kỳ


này sẽ trở thành nhân Linux dưới dạng trình giả lập thiết bị đầu cuối cấp thấp—một chương
tính năng thiết kế nào

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

S vào đầu những năm 1990.


năng của nó trong việc đưa phần mềm loại máy trạm vào PC. Những người này đã làm việc để cải thiện
ngày nay nó đã rẽ nhánh
nhân Linux, thực hiện những thay đổi cần thiết trong các chương trình Unix hiện có để chúng hoạt động
thành một số liên quan

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.)

thế mi cuộc tranh luận crokernel


inux là một ví dụ về kernel nguyên khối, là kernel thực hiện mọi thứ mà kernel phải

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

coi thiết kế nguyên khối của Linux là lạc hậu.

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ảm thấy khó chịu vì sự khác biệt này.


số 8 Chương 3 • Tôi tìm hiểu nguyên lý và triết học L inux

Nhìn thấy thế giới Linux ngày nay


Vào giữa những năm 1990, các tính năng quan trọng nhất của Linux như nó tồn tại ngày nay đã
een được thành lập. Những thay đổi kể từ đó đã bao gồm những điều sau đây:

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ử dụng phần mềm mã nguồn mở


Các triết lý làm nền tảng cho nhiều sự phát triển phần mềm cho Linux khác với những triết
lý thúc đẩy hầu hết sự phát triển phần mềm cho Windows. Những khác biệt này
triết lý ảnh hưởng đến cách bạn lấy phần mềm, bạn có thể làm gì với phần mềm và cách
phần mềm thay đổi theo thời gian. Phần này mô tả các nguyên tắc này. Chúng tôi cũng mô
tả cách Linux hoạt động như một loại “nam châm”, tích hợp phần mềm từ nhiều nguồn vào
một nơi.

Hiểu các nguyên tắc nguồn mở cơ bản


Nói chung, phần mềm có thể được mô tả là có nhiều dạng, mỗi dạng có những kỳ
vọng khác nhau về thanh toán, phân phối lại và quyền của người dùng. Các
U sing O pen S source S oftware 9

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í

chi tiết hơn.


Phần mềm mã nguồn mở phần mềm nguồn bút được xác định bởi một bộ 10 máy in
đệ tử, có sẵn tạiwww.opensource.org/docs/osd.Điều quan trọng nhất trong những nguyên tắc này là quyền
của người dùng trong việc phân phối lại chương trình, tính khả dụng của mã nguồn và quyền của người
dùng trong việc tạo và phân phối các phiên bản đã thay đổi của chương trình. Những nguyên tắc này có
nghĩa là người dùng có thể thay đổi các chương trình mã nguồn mở cho phù hợp với nhu cầu riêng của
họ, thậm chí theo những cách thức hoặc mục đích không được tác giả gốc hỗ trợ.

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.

Linux với tư cách là Nhà tích hợp phần mềm mềm

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.

Hiểu vai trò của hệ điều hà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

Được ráp vào máy tính người thừa kế hệ điều hành

riêng cho điện thoại di động.

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

DVR dựa trên Linux,


dụng HĐH để cấp nguồn cho chúng. Đối với nhiều trình đọc sách điện tử hiện tại, hệ điều hành đó là
mặc dù bạn sẽ cần
inux—phiên bản Linux tùy chỉnh hoặc Android. một bộ chỉnh TV và phần

cứng cụ thể khác để


DVRĐầu ghi video kỹ thuật số (DVR), ghi lại các chương trình truyền hình để xem sau,
lam cho no hoạt động.

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áy tính để bàn và máy tính xách tay


Linux bắt đầu tồn tại trên máy tính để bàn và mặc dù Linux không gần thống trị thị
trường đó, nhưng máy tính để bàn là một cách tốt để bắt đầu tìm hiểu về Linux.
Máy tính xách tay tương tự như máy tính để bàn từ góc độ quản trị hệ thống; cả
hai loại máy tính thường được một số ít người sử dụng cho các tác vụ năng suất,
TÔI
chẳng hạn như xử lý văn bản, duyệt Web và quản lý ảnh kỹ thuật số. Để cho ngắn
Máy tính để bàn gọn, chúng ta sẽ sử dụng thuật ngữmáy tính để bànđể tham khảo cả hai loại máy
tương tự như một
tính từ đây.
loại máy tính khác,
được biết nhưmáy trạm.
Phần mềm Linux dành cho các tác vụ như vậy được phổ biến rộng rãi và khá tốt, mặc dù
Máy trạm có xu hướng một số người thích các phần mềm thương mại hơn, chẳng hạn như Microsoft Office hoặc
mạnh hơn và chuyên Adobe Photoshop, không có sẵn cho Linux. Sở thích này dành cho một vài sản phẩm
biệt hơn, và họ
thương mại cụ thể là một phần lý do tại sao Microsoft Windows tiếp tục thống trị thị trường
thường chạy Unix hoặc Linux.
máy tính để bàn. Một số người đã suy đoán rằng mô hình phát triển nguồn mở không phù
hợp với việc tạo ra các ứng dụng GUI phổ biến
bởi vì các nhà phát triển phần mềm có xu hướng quá thiên về kỹ thuật để có thể đánh giá đầy đủ nhu
cầu của những người dùng kém kỹ thuật hơn. Nếu không có một cách thức rõ ràng để yêu cầu các nhà
phát triển đáp ứng những nhu cầu này, những nhu cầu mà các công ty vì lợi nhuận tạo ra, thì các dự án
phần mềm nguồn mở tụt hậu so với các đối tác thương mại của chúng về khả năng sử dụng. Tuy nhiên,
quan điểm này không được chia sẻ rộng rãi và tệ nhất là các dự án nguồn mở bị tụt lại phía sau các đối
tác thương mại của chúng chỉ một chút.
Phần mềm cụ thể được yêu cầu trên hầu hết các máy tính để bàn chạy
Linux bao gồm:
Hiểu về các vai trò của OSR 3

GUI hệ thống X Window (viết tắt là X)

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 trình duyệt web, chẳng hạn như Mozilla Firefox

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:

Các máy chủ web, chẳng hạn như Apache

Máy chủ email, chẳng hạn như Sendmail và Postfix

Cơ sở dữ liệu, chẳng hạn như MySQL

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

máy tính từ xa.


Vì vậy, họ đang Hầu hết các máy chủ này không yêu cầu GUI, vì vậy máy tính của máy chủ có thể hoạt động mà
đôi khi được tìm thấy trên không cần X, môi trường máy tính để bàn hoặc các chương trình máy tính để bàn điển hình mà
hệ thống esktop. bạn sẽ tìm thấy trên máy tính để bàn. Một trong những lợi thế của Linux so với Windows là bạn có
thể chạy máy tính mà không cần các thành phần này và thậm chí bạn có thể gỡ cài đặt chúng hoàn
toàn. Làm như vậy có nghĩa là GUI sẽ không tiêu tốn tài nguyên hệ thống như RAM một cách
không cần thiết. Hơn nữa, nếu một mục chẳng hạn như X không chạy, bất kỳ lỗi bảo mật nào mà
nó có thể ẩn chứa đều trở nên không quan trọng. Một số bản phân phối, chẳng hạn như Debian,
Arch và Gentoo, tránh các tiện ích cấu hình GUI. Điều này làm cho những
phân phối không thân thiện với người dùng mới, nhưng sự phụ thuộc vào các công cụ cấu hình
chế độ văn bản không phải là vấn đề đối với các quản trị viên có kinh nghiệm của máy chủ.
Những người bảo trì các máy chủ lớn nói chung là những người thành thạo về kỹ
thuật và thường có thể đóng góp trực tiếp cho các dự án máy chủ nguồn mở mà họ
sử dụng. Sự liên kết chặt chẽ này giữa người dùng và người lập trình có thể
giúp giữ cho các dự án máy chủ đáp ứng các yêu cầu tiên tiến nhất trong thế giới
thực. Lưu ý rằng sự khác biệt giữa máy tính để bàn và máy chủ là không tuyệt đối;
một máy tính có thể chạy hỗn hợp cả hai loại phần mềm. Ví dụ, bạn có thể con-
sử dụng máy tính để bàn trong môi trường văn phòng để chạy phần mềm máy chủ tệp. Cấu hình này
cho phép người dùng chia sẻ công việc của họ dễ dàng hơn với những người khác trong văn phòng.
Trong môi trường gia đình hoặc văn phòng nhỏ, việc chạy các máy chủ khác trên máy tính để bàn có thể
làm giảm nhu cầu mua phần cứng chuyên dụng để thực hiện các vai trò đó.

Những điều cần thiết và hơn thế nữa

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

máy tính esktop.


T he E ssentialsand B eyond 5

Những điều cần thiết và hơn thế nữa(tiếp)

Bài tập gợi ý


Đọc trang web Tính năng trên FreeBSD,ww.freebsd.org/features.html
một đối thủ cạnh tranh với Linux. Làm thế nào bạn sẽ nói rằng nó khác với Linux?

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?

Revi ew Que st ion


. Linux sử dụng loại đa nhiệm nào?

. ưu tiên . hợp tác xã

. nhiều người dùng . làm một việc

e.Một người dù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í.

b.Nó phải được phân phối với cả mã nguồn và mã nhị phân.

. 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

trên máy tính để bàn chạy Linux không?

MỘT.apache . Android

b.hậu tố Đ.Sự tiến hóa

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ột số DVR chạy Linux.

. Đú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ự

nếu một người sử dụng nó được gọi là

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

Sử dụng Linux phổ biến


chương trình

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.

TÔISử dụng môi trường máy tính để bàn Linux

TÔILàm việc với phần mềm năng suất

TÔISử dụng các chương trình máy chủ

TÔIQuản lý ngôn ngữ lập trình

TÔIXử lý gói phần mềm

Sử dụng môi trường máy tính để bàn Linux

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.

Chọn môi trường máy tính để bàn


Tùy thuộc vào các tùy chọn cài đặt và phân phối Linux của bạn, rất có thể
thật tốt khi hệ thống của bạn có sẵn nhiều hơn một môi trường máy tính để bàn. Các
môi trường máy tính để bàn phổ biến nhất như sau:

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

năng GUI như menu và uilt bằng bộ tiện ích Qt.


hộp thoại. Qt
Gnome KHÔNG PHẢI TÔI (www.gnome.org)cũng phổ biến trong môi trường máy tính để bàn Linux
và GTK+ (một phần
của dự án GNU) là hai đấu trường ronmen. Đây là môi trường máy tính để bàn mặc định cho Fedora và Debian
bộ tiện ích phổ biến trên phân bổ. GNOME được xây dựng trên bộ tiện ích Bộ công cụ GIMP (GTK+). Giống như DE,
Linux ngày nay. GNOME bao gồm nhiều công cụ mạnh hoạt động cùng nhau. GNOME nhằm mục đích cung
cấp một môi trường máy tính để bàn dễ sử dụng.

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.

Khởi chạy chương trình


Hầu hết các môi trường máy tính để bàn cung cấp một số cách để khởi chạy chương trình. Chi tiết có thể
thay đổi đáng kể từ môi trường này sang môi trường khác. Tuy nhiên, kỳ thi hữu ích-
tập tin bao gồm những điều sau đây:

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

thẻ ý tưởng. Nếu bạn thiếu


quả là phần cứng, Gnome
được thể hiện ở s trở lại trên một hệ thống

dựa trên u cũ hơn cho

các chương trình bản lề.

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

có sẵn trong Windows.

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

được hiển thị ở đây.

Sử dụng Trình quản lý tệp


Nếu bạn đã quen với Windows hoặc Mac OS X, thì gần như chắc chắn bạn đã sử dụng một
fingười quản lýđể thao tác các tập tin của bạn. Tất nhiên, Linux cũng cung cấp trình quản lý
tệp cho mục đích này—trên thực tế, bạn có nhiều lựa chọn, mặc dù hầu hết chúng hoạt
động theo cách tương tự. Ví dụ, hãy xem xét Nautilus, trình quản lý tệp mặc định của
GNOME. Nếu bạn đang chạy GNOME 3 trên Fedora, biểu tượng Nautilus giống như một tủ
hồ sơ trong bảng Ưa thích, như trong Hình 4.2. Môi trường máy tính để bàn của bạn cũng
có thể khởi chạy trình quản lý tệp khi bạn chèn
U singa L inux D esktop E môi trường 3

một loại bỏ J
ốc anh vũ
ngoài GNOME
autilus, tập tin khác

quản lý bao gồm

hunar (tệp của Xfce

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

các phiên bản KDE cũ hơn

thứ vẫn có sẵn. onqueror

cũng có thể hoạt động trong

trình duyệt web.

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.

Làm việc với phần mềm năng suất


Khu vực của phần mềm năng suất là vô cùng rộng lớn; có hàng trăm, nếu không muốn nói
là hàng nghìn ứng dụng năng suất tồn tại và nhiều cuốn sách đã được viết về chúng. Do đó,
trong chương này chỉ cung cấp tên và mô tả ngắn gọn của một số công cụ năng suất cho
các danh mục phổ biến. Các danh mục công cụ phổ biến bao gồm trình duyệt web, ứng
dụng email, công cụ văn phòng, ứng dụng đa phương tiện, điện toán đám mây và ứng dụng
di động. Trước khi mô tả những công cụ này, tốt nhất bạn nên xem lại một số mẹo về cách
tìm một chương trình để thực hiện phân tích.
nhiệm vụ cụ thể trong Linux.

Tìm đúng công cụ cho công việc


Linux cung cấp các ứng dụng năng suất trong nhiều danh mục rộng, nhưng nếu chưa
quen thuộc với lĩnh vực này, bạn có thể gặp khó khăn khi theo dõi chúng
6 Chương 4 • U hát C o mm trên các chương trình L inux P

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.

Sử dụng trình duyệt web


Linux hỗ trợ nhiều trình duyệt web, bao gồm:
Trình duyệt ChromeTrình duyệt Chrome của Google (www.google.com/chrome)nhằm mục đích
nhanh chóng và dễ sử dụng. Kể từ khi được giới thiệu vào năm 2008, nó đã nhanh chóng trở nên
phổ biến. Mặc dù về mặt kỹ thuật, Chrome là một dự án thương mại nhưng nó được cung cấp
miễn phí. Một biến thể nguồn mở, được gọi là Chromium, cũng có sẵ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

theo những cách khác mà bạn có thể không thích.

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.

Sử dụng ứng dụng email khách

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:

Sự tiến hóa chương trình của anh ấy, nằm ởhttps://projects.gnome.org/


sự tiến hóa/,là một ứng dụng email GUI mạnh mẽ. Nó cũng bao gồm các tính năng lập lịch
và phần mềm nhó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.

chim săn mồiChương trình này, nằm ởwww.mozilla.org/thunderbird/,là một


ứng dụng email được liên kết chặt chẽ với trình duyệt web Firefox.

Ứ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.

Sử Dụng Công Cụ Văn Phòng

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ử dụng ứng dụng đa phương tiện


Linux nổi tiếng là một nền tảng máy chủ hiệu quả, nhưng cho đến gần đây khả năng của nó
như một hệ điều hành đa phương tiện vẫn còn thiếu. Điều này phần lớn là do
0 Chương 4 • U hát C o mm trên các chương trình L inux P

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.

anh ấy GIMPChương trình thao tác hình ảnh GNU (GIMP)www.gimp


. tổ chức)là một chương trình xử lý ảnh tĩnh tương tự như Adobe Photoshop.
(Bộ công cụ GTK+, là nền tảng của GNOME và nhiều thứ khác
rograms, ban đầu được tạo cho GIMP.)

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

sử dụng hiệu ứng ren-


ảnh chuyển động lớn. Nếu bạn có nhu cầu rất đặc biệt, đào sâu một chút có thể tìm ra
ered thông qua Linux bao thứ khác—danh sách này mới chỉ là bắt đầu!
gồm TitaniccácShrek

hàng loạt, vàhình đại diện

Sử dụng Linux cho điện toán đám mây


Điện toán đám mâylà nơi lưu trữ phần mềm máy tính và/hoặc dữ liệu qua Internet, thay vì lưu
trữ cục bộ trên máy tính của bạn. Trong thuật ngữ này,đám mây đại diện cho Internet vàtin học
đại diện cho những gì bạn đang làm trên Internet. Trong một số trường hợp, người dùng truy
cập tài nguyên điện toán đám mây thông qua trình duyệt web. Như vậy, về lý thuyết, Linux có
thể hoạt động như một máy khách điện toán đám mây
nền tảng—chỉ cần khởi chạy một trình duyệt web để truy cập vào nhà cung cấp dịch vụ điện toán
đám mây và bạn có thể sử dụng ngay. Hình 4.7 chỉ hiển thị một mẫu nhỏ các ứng dụng điện toán đám
mây hiện có.
61

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)

Email dựa trên web, chẳng hạn như Gmail (http://mail.google.com/)

Sử dụng ứng dụng di động


Mặc dù Android là một hệ điều hành dựa trên Linux, nhưng phần lớn nó chạy các ứng dụng hoàn
toàn khác so với việc triển khai máy tính để bàn hoặc máy chủ của Linux. Điều này có thể hiểu
được—rất có thể là bạn sẽ không muốn viết một tài liệu dài, chẳng hạn như một cuốn sách, bằng
điện thoại di động. Nhiều tính năng trong một chương trình văn phòng lớn, chẳng hạn như Viết
của LibreOffice, sẽ trở nên lãng phí trên thiết bị điện toán di động.
2 Chương 4 • U hát C o mm trên các chương trình L inux P

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í

TÔI trước khi bạn tải xuống một ứng dụng.

ứng dụng Android là

ngày càng là một nguồn


Sử dụng chương trình máy chủ
của phần mềm độc hại. Bạn có thể

giảm thiểu rủi ro của bạn bằng cách

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ủ.

Xác định các giao thức và chương trình


máy chủ chung
Mạng, bao gồm cả Internet, hoạt động nhờ mạnggiao thức. Các giao thức mạng
là những mô tả được xác định rõ ràng về cách hai máy tính nên trao đổi dữ liệu để
đạt được một mục đích cụ thể, chẳng hạn như chuyển email hoặc gửi tệp để in.
Hầu hết các giao thức được mô tả trong một hoặc nhiều tiêu chuẩn
tài liệu, được gọi làTài liệu Yêu cầu Nhận xét (RFC), mỗi trong số đó có một số.
Thông thường, một tài liệu RFC xác định giao thức và theo thời gian, các tài liệu
RFC bổ sung xác định các phần mở rộng hoặc sửa đổi giao thức khi chúng
sinh thái cần thiết.
Hầu hết các giao thức mạng liên quan đến việc truyền dữ liệu qua một
hoặc nhiềucổng, là các tài nguyên được đánh số trên máy tính. Bạn có
thể coi một cổng giống như một số máy lẻ—số chính (Giao thức Internet
hoặc IP, địa chỉ) xác định toàn bộ máy tính và số cổng
er xác định giao thức đang được sử dụng. Một chương trình máy chủ tự gắn vào một
số cổng và nhận tất cả các yêu cầu đến trên cổng đó.
Bảng 4.1 tóm tắt một số số cổng phổ biến, các giao thức mà chúng được
liên kết và các chương trình Linux thường được sử dụng cùng nhau
Bạn hát các chương trình P máy chủ 63

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.

máy chủ chung


số cổng giao thức (các) chương trình Giải trình

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

cần thiết của nó có thể được


chương trình khách của nó, Telnet, có thể là một công cụ
ảo hóa.
chẩn đoán mạng hữu ích.

5 SMTP xim, Postfix, Giao thức truyền thư đơn giản (SMTP) là

thư, gửi thư giao thức chính để di chuyển email trên

Internet. Người gửi bắt đầu chuyển giao

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

cấp tên máy chủ hoặc ngược lại. Không có

nó, bạn cần tham khảo tất cả các máy tính

theo địa chỉ IP thay vì theo tên.

7 OOTP, nsmasq, dhcpd Giao thức Bootstrap (BOOTP) và

HCP em họ của nó, Dynamic Host


onfiguration Protocol (DHCP), cả hai đều cho

phép một máy tính trên mạng cục bộ giúp tự

động định cấu hình các máy tính khác để sử dụng

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)

máy chủ chung


số cổng giao thức (các) chương trình Giải trình

0 TTP pache, NGINX Giao thức truyền tải siêu văn bản (HTTP) là

nền tảng của World Wide Web (WWW, hay

đơn giản là Web).

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ảng riêng. Giao thức này cho phép người

nhận bắt đầu chuyển email, vì vậy thường

được sử dụng làm chặng cuối trong quá trình gửi email, từ

máy chủ đến người nhận.

118 SQL ySQL, PostgreSQL, Ngôn ngữ truy vấn có cấu trúc (SQL) là

ariaDB giao diện cơ sở dữ liệu hỗ trợ mạng

ngôn ngữ. Nếu bạn chạy một máy chủ SQL trên

mạng, máy khách có thể truy cập và sửa

đổi cơ sở dữ liệu đó.

137–139 SMB/CIFS Samba icrosoft sử dụng Khối tin nhắn máy chủ

(SMB) / Giao thức Hệ thống tệp Internet

chung (CIFS) để chia sẻ tệp và máy in, và

Samba thực hiện các giao thức này trong Linux.

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

rotocol, tương tự như POP. Tuy nhiên,


IMAP giúp người nhận lưu trữ và quản
lý email trên máy chủ dễ dàng hơn.

89 DAP bútLDAP Giao thức truy cập thư mục nhẹ (LDAP)

là một giao thức mạng để truy cập

thư mục, mà trong bối cảnh này là một loại

cơ sở dữ liệu f. LDAP thường được sử dụng để lưu trữ

thông tin đăng nhập mạng, trong số những thứ khác.

43 TTPS pache, NGINX Giao thức này là một biến thể an toàn (được mã hóa)

fHTTP.

2049 FS FS Hệ thống tệp mạng (NFS) là một giao thức


và một máy chủ cùng tên, để chia sẻ tệp
giữa các HĐH giống Unix và Unix.
Bạn hát các chương trình P máy chủ 65

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.

Phục vụ r Chương trình và Máy chủ

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

khách—nghĩa là các máy tính sử dụng dịch vụ của máy chủ.

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ủ.

Tập trung vào máy chủ web


Khi số lượng trang web trên Internet tăng lên—một số ước tính cho rằng con số này
có hơn 1 tỷ trang web—việc sử dụng cũng vậymáy chủ web. Máy chủ web cung cấp các
trang web cho người dùng mạng bên trong và/hoặc bên ngoài. Nếu bạn đã từng
6 Chương 4 • U hát C o mm trên các chương trình L inux P

đã 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.

Cài đặt và khởi chạy máy chủ


Chủ đề duy trì các chương trình máy chủ nằm ngoài phạm vi của cuốn sách này, nhưng
bạn nên biết những điều cơ bản của nhiệm vụ này. Bạn có thể cài đặt máy chủ giống như
cách bạn cài đặt phần mềm khác, như được mô tả ở phần sau của chương này và chi tiết
hơn trong Chương 9.
Sau khi phần mềm được cài đặt, bạn phải khởi chạy một máy chủ. Bạn làm điều này khác với
cách bạn khởi chạy một ứng dụng trên máy tính để bàn. Thay vì nhấp vào biểu tượng hoặc mục

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 V init (SysVinit)

mới bắt đầu

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.

Bảo mật máy chủ


Bất cứ khi nào bạn chạy một máy chủ, bạn cũng có nguy cơ bị xâm phạm và
lạm dụng. Rủi ro rơi vào một số loạ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.

Quản lý ngôn ngữ lập trình


Nhiều người dùng không bao giờ cần phải xử lý các ngôn ngữ lập trình; tuy nhiên cơ bản
Kiến thức về chúng là gì và chúng khác nhau như thế nào là điều quan trọng đối với
người dùng Linux, vì nhiều lý do. Bạn có thể cần cài đặt ngôn ngữ hoặc người dùng
trên các hệ thống mà bạn quản lý hoặc cho chính bạn để biên dịch phần mềm từ mã
nguồn. Bạn cũng có thể muốn tìm hiểu về lập trình, đặc biệt nếu bạn muốn tự động
hóa các tác vụ quản lý máy tính bằng shell script.
Phần này trình bày thông tin cơ bản về ngôn ngữ lập trình. Nó bắt đầu y mô tả
sự khác biệt giữa các ngôn ngữ được biên dịch và thông dịch, điều quan trọng
cần hiểu để bạn có thể xử lý các tệp chương trình đúng cách hoặc chọn ngôn ngữ
bạn muốn sử dụng. Mô tả ngắn gọn về một số pro-
Các ngôn ngữ ramming cũng được cung cấp để bạn có thể xác định và sử dụng các tệp
mã nguồn của chúng hoặc chọn ngôn ngữ nào bạn muốn học để sử dụng.

Chọn ngôn ngữ biên dịch và ngôn ngữ


thông dịch
Về cốt lõi, máy tính hiểu các mã nhị phân—các số đại diện cho các hoạt động,
chẳng hạn như cộng hai số hoặc chọn một trong hai hành động cần thực hiện. Tuy
nhiên, mọi người xử lý các từ và biểu tượng tốt hơn nhiều, chẳng hạn như
Quản lý M Lập trình L ngôn ngữ 9

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.

chương trình amming trong hợp 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.

Xác định các ngôn ngữ lập trình phổ biến


Linux hỗ trợ nhiều loại ngôn ngữ lập trình, bao gồm:

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

Xử lý gói phần mềm


những điều cơ bản của việc tạo ra hoặc

sửa đổi các tập lệnh Bash.

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.

Hiểu các gói phần mềm mềm


Trên Linux, các chương trình phần mềm được đóng gói thành một gói dựng sẵn giúp đơn
giản hóa việc cài đặt và quản lý chúng. Các gói được quản lý trong Linux
72 Chương 4 • U hát C o mm trên các chương trình L inux P

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.

Xác định các công cụ đóng gói phổ biến


Mỗi bản phân phối sử dụng PMS riêng và các công cụ đóng gói, sẽ được thảo luận
chi tiết hơn trong Chương 9. Sau đây là một số công cụ chính được sử dụng bởi các
PMS chí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

Những điều cần thiết và hơn thế nữa

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ủ

được cài đặt sẵn,

Bài tập gợi ý


Hãy thử ít nhất hai môi trường máy tính để bàn. Sử dụng từng môi trường máy tính để bàn cho các tác vụ điện toán

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?

Revi ew Que st ion


1.Điều nào sau đây là môi trường máy tính để bàn Linux? (Chọn tất cả những gì áp dụng.)

MỘT.GTK+ . Gnome

. KDE Đ.Sự tiến hóa

. 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?

. Tập lệnh vỏ Bash . Java


. C Đ.C++
. perl
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

Những điều cần thiết và hơn thế nữa(tiếp)

4.Đúng hay sai: OpenOffice.org rẽ nhánh từ Calligra.

. Đú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

chúng không bao giờ bị đột nhập.

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.)

. Máy chủ Linux xử lý giao thức SMB/CIFS thường chạy 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

(n) hệ thống quản lý.

You might also like