Tải bản đầy đủ (.docx) (37 trang)

BTL Nguyên lý hệ điều hành. Đề tài: Nghiên cứu tìm hiểu về hệ thống tập tin trong HĐH Linux

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (388.9 KB, 37 trang )

Trường đại học Công Nghiệp Hà Nội
Khoa Công Nghệ Thông Tin

Bài tiểu luận môn học: Nguyên Lý Hệ Điều Hành
Đề tài: Nghiên cứu tìm hiểu về hệ thống tập tin trong HĐH Linux
Giáo viên: Ths NTT
Sinh viên thực hiện:
1.Nguyễn Văn Trưởng

Msv:1041360387

Lớp: ĐH CNTT1-K11

Hà Nội, 2018

1


2


LỜI NÓI ĐẦU
Linux được phát triển bởi Linux Torvalds ,bản đầu tiên được đưa ra vào năm
1991 tại đại học Helsinki, Phần Lan , dựa trên hệ điều hành Minix- một hệ điều
hành có cấu trúc tương tự Unix với các chức năng tối thiểu được dùng trong
dạyhọc.

Việc nghiên cứu tìm hiểu về HĐH với Linux , giúp cho chúng ta có cái nhìn rộng
hơn về tin học. Linux và các phần mềm mã nguồn mở cung cấp cho người sử dụng
3



mã nguồn của chương trình. Rất nhiều trong số các chương trình này được viết bởi
các lập trình viên nhiều kinh nghiệm và được cộng đồng mã nguồn mở trên toàn thế
giới kiếm thử. Vì thế mã nguồn của chương trình này chứa đựng một khối kiến
thức vô cùng tinh túy, hoàn toàn đáng để ta có thể học hỏi . Mặt khác những tài liệu
về mã nguồn mở thường rất sẵn, chi tiết và được cập nhật thường xuyên, không hề
có những “ bí mật công nghệ” trong những sản phẩm mã nguồn mở. Vì vậy rất tốt
để sinh viên học hỏi.
Dưới đây là một nghiên cứu, tìm hiểu về hệ thống tệp tin trong hệ điều hành
Linux.

4


CHƯƠNG 1: GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH LINUX
1.1. Linux là gì ?
Nhìn bề ngoài, Linux là 1 hệ điều hành. Như thể hiện trong Hình 1, Linux bao
gồm 1 nhân kernel (mã cốt lõi quản lý các tài nguyên phần cứng và phần mềm) và
1 bộ sưu tập các ứng dụng của khách hàng (chẳng hạn như các thư viện, các trình
quản lý cửa sổ và các ứng dụng).

Hình 1.1: Bề ngoài Linux

Sơ đồ trên chỉ ra các thành phần quan trọng. Tầng cuối của nó chính là 1 tập hợp
mã kiến trúc giúp Linux hỗ trợ toàn diện đa nền tảng phần cứng (Tilera TILE,
ARM, PowerPC, v.v...). Tất nhiên, chức năng này được cấp giấy phép GNU, tạo
nên tính di động của Linux. Linux mang một đặc thù riêng của mình trong ngành
về tính di động . Hệ thống con của trình điều khiển (là rất lớn về khả năng của nó)
hỗ trợ "động" các mô đun được nạp mà không ảnh hưởng đến hiệu năng, tạo nên
tính mô đun (thêm vào một nền tảng "động" hơn).Cấp độ bảo mật linux nằm ở nhân

kernel (trong một số lược đồ) tạo nên một nền tảng bảo mật. Trong miền hệ thống
5


các tệp bên ngoài, Linux hình thành nên một mảng lớn nhất về hỗ trợ hệ thống tệp
của bất kỳ hệ điều hành nào, như là một minh chứng, tạo nên tính linh hoạt thông
qua tính mô đun thiết kế. Linux thực hiện không chỉ các tính năng lên lịch trình tiêu
chuẩn mà còn lên lịch trình thời gian thực bao gồm các bảo đảm về độ trễ ngắt).
Cuối cùng, Linux là mở, có nghĩa là trên thực tế bất cứ ai cũng có thể xem và cải
thiện dựa vào nguồn gốc của nó. Tính mở này cũng giảm thiểu các cơ hội bị lợi
dụng, tạo ra một nền tảng an toàn hơn. Nhiều công ty đóng góp cho Linux, bảo đảm
rằng nó sẽ tiếp tục giải quyết một loạt các mô hình sử dụng trong khi vẫn duy trì
các đặc tính cốt lõi của mình. Bảy nguyên tắc quan trọng này chắc chắn không phải
là các thuộc tính duy nhất mà Linux cung cấp, nhưng chúng cho phép Linux dùng
như một nền tảng đa năng trên rất nhiều các mô hình sử dụng. Hơn nữa, Linux là
như nhau trên các mô hình sử dụng này—không chỉ các nguyên tắc thiết kế mà còn
bản thân mã của nó nữa. Người ta không thể nói điều này về các hệ điều hành khác
(như Windows®—máy tính để bàn, máy chủ, hoặc thiết bị nhúng—hoặc Mac OS
X hoặc Apple iOS), chúng có phân khúc dịch vụ và mô hình sử dụng khác.

1.2. Linux nằm ở đâu ?
Linux ở đâu có thể khó trả lời hơn là nó không ở đâu. Với khả năng biến đổi
nhanh khả năng biến đổi nhanh và mở rộng quy mô của mình, có thể tìm thấy
Linux trong tất cả các phân khúc máy tính (và thậm chí một số phân khúc vẫn chưa
được định nghĩa đầy đủ). Phần này xem xét một số các phân khúc điện toán quan
trọng, bao gồm máy tính để bàn/netbook, máy chủ, cluster, máy tính lớn
Mainframe, siêu máy tính, thiết bị cầm tay/máy tính bảng, thiết bị nhúng, ảo hóa và
các máy thử nghiệm (xem Hình 1.2).

6



Hình 1.2

1.2.1. Máy tính để bàn và netbook
Các máy tính để bàn và các netbook, nơi có nhiều người sử dụng Linux, là lĩnh
vực trong đó Linux cạnh tranh nhiều nhất. Dữ liệu thị phần gần đây chỉ ra rằng
Linux nắm giữ khoảng 1,5% thị trường máy tính để bàn, nhưng lại nắm giữ khoảng
32% thị trường netbook. Những con số này có thể xem ra là thấp, nhưng là một nhà
phát triển, tôi có xu hướng thấy Linux nhiều hơn so với bất kỳ hệ điều hành khác
nào.
Linux đã bắt đầu như là một hệ điều hành thử nghiệm đơn giản và với việc giới
thiệu XFree86 vào năm 1994, một trình quản lý cửa sổ đã cho thấy sự hứa hẹn của
một hệ điều hành máy tính để bàn còn non trẻ. Ngày nay, một số trình quản lý cửa
sổ có sẵn cho Linux cho phép người dùng biến phong cách riêng của nó thành các
nhu cầu của họ. Hơn nữa, Linux thay đổi quy mô tự động với các khả năng xử lý
(như là đa luồng đối xứng và đa lõi), lập lịch trình hiệu quả.

1.3. Linux và thị trường việc làm
Năm 2012, một cuộc khảo sát của Dice.com và Linux Foundation cho thấy rằng
81% trong 2.000 người được hỏi cho rằng việc tuyển dụng làm về Linux là một ưu
tiên. Không chỉ là Linux đang điều khiển ngành công nghiệp, mà nó còn đang
hướng nghiệp
7


1.3.1. Máy chủ
Linux thống trị thị trường máy chủ (bao gồm các máy chủ web, máy chủ thư
điện tử, máy chủ Hệ thống tên miền - DNS và các thiết bị tầng sau khác). Các khảo
sát gần đây cho thấy rằng hơn 60% tất cả các máy chủ chạy Linux. Ngoài các dịch

vụ web truyền thống, Linux cung cấp cho nhiều tài sản Internet lớn nhất (Facebook,
eBay, Twitter và Amazon v.v...), với các yêu cầu và các mô hình sử dụng khác
nhau. Ngoài các tùy chọn truyền thống (chẳng hạn như web hoặc thư điện tử),
Linux còn cung cấp các mảng lớn nhất về các dịch vụ web (và các tùy chọn khác
nhau cho các dịch vụ đó).
1.3.2. Điện toán Cluster và điện toán phân tán
Linux không chỉ là một yếu tố chính trong các mô hình điện toán cluster và các
mô hình điện toán phân tán, nó còn là một đơn vị điều khiển và ở lõi của nhiều mô
hình sử dụng mới. Hai mô hình chính đang phát triển nhanh chóng hiện nay là điện
toán đám mây và dữ liệu lớn.
Điện toán đám mây là về phân phối Công nghệ thông tin (CNTT) như một dịch
vụ và dựa vào một cụm các tài nguyên chia sẻ để thay đổi quy mô theo nhu cầu ứng
dụng. Các đám mây cũng dựa vào ảo hóa để hỗ trợ quản lý tự động các nút trong
một cơ sở hạ tầng to lớn. Trong các môi trường đám mây, 66% tin dùng Linux làm
nền tảng chính của mình.
Linux cũng đang hướng chính mình làm nền tảng cho khoa học dữ liệu. Internet
thay đổi quy mô của khối dữ liệu có thể thu thập được và các vấn đề mới phát sinh
trong việc xử lý dữ liệu này để xác định các mẫu có giá trị của nó. Những thứ bây
giờ được gọi là Big Data (Dữ liệu lớn)đã được phát triển trên Linux như là một
cách thay đổi quy mô để thao tác dữ liệu vượt quá giới hạn của các phương pháp
truyền thống trước đây. Hadoop và hệ sinh thái của nó là kết quả của tính mở của
Linux, cùng với một lực lượng các nhà phát triển, những người thành thạo với nền
tảng này.
1.3.3. Máy tính Mainframe
8


Năm 1991, một biên tập viên nổi tiếng đã dự đoán rằng máy tính Mainframe cuối
cùng sẽ bị loại bỏ vào đầu năm 1996. Tuy nhiên sau hơn 20 năm, người ta vẫn tiếp
tục xây dựng và bán các máy tính Mainframe và nhiều máy chạy Linux. IBM đã

bắt đầu hỗ trợ Linux trên Mainframe vào năm 2000 (chẳng hạn như IBM® System
z®) và cung cấp một trải nghiệm người dùng phổ biến trên các môi trường. Một bài
báo gần đây của Michael Vizard đã viết rằng khoảng 25% khối lượng công việc của
Mainframe mới dựa vào Linux.

1.3.4 Siêu máy tính
Các siêu máy tính là một cuộc đua tranh liên tục để giữ danh hiệu nhanh nhất, từ
siêu máy tính Jaguar của Phòng thí nghiệm quốc gia Oak Ridge (2009) đến TianheI của Trung Quốc (2010) đến công ty hàng đầu hiện nay, máy tính RIKEN Kei của
Nhật Bản (2011). Vào năm 2012, siêu máy tính Sequoia của IBM sẽ được phát
hành và được dự kiến vượt quá hiệu năng của RIKEN hai lần. Điều mà mỗi siêu
máy tính này có điểm chung là tất cả chúng đều chạy Linux. Linux không chỉ có
hiệu quả, nó còn thích nghi với các nền tảng phần cứng khác nhau làm tăng hiệu
năng của nó. Điều này cũng không đáng ngạc nhiên, dựa vào hơn 90% các siêu
máy tính chạy Linux.

1.3.5 Các thiết bị di động và máy tính bảng
Với một loạt các thiết bị của người tiêu dùng bị ràng buộc nhiều hơn, các thiết bị
di động và máy tính bảng đang chứng tỏ sự tăng trưởng đáng kể. Các thiết bị này
đại diện cho một nhân Linux cùng với một giao diện người dùng đồ họa (GUI) tùy
chỉnh. Một ví dụ quan trọng của lĩnh vực này là hệ điều hành Android của Google,
được sử dụng cả trong điện thoại thông minh lẫn trong máy tính bảng. Hiện nay,
hơn 25% điện thoại thông minh chạy một dạng Linux (chủ yếu là Android), với gần
40% máy tính bảng chạy Android.
Các thiết bị này tin dùng các bộ xử lý dựa trên ARM (các hệ thống trên một chip)
cho hiệu năng cao và tiêu thụ điện năng thấp. Bất kể nền tảng cơ bản nào, đây là
9


những thiết bị Linux, không phân nhánh nhân và ứng dụng.
Mới đây, Microsoft® đã khẳng định rằng đối với Windows của họ chạy trên máy

tính bảng chip ARM (WOA), và họ đang phát triển ứng dụng cho nền tảng này (nói
cách khác, bạn không thể chạy các ứng dụng cũ trên máy tính bảng). So sánh điều
này với Linux, Linux hỗ trợ rất nhiều cho các ứng dụng di động thay vì một hệ sinh
thái ứng dụng bị hạn chế và đóng kín.
1.3.6. Các thiết bị nhúng
Cuối cùng là các thiết bị nhúng, với các mức ràng buộc khác nhau (hiệu năng
của bộ xử lý, các tài nguyên như bộ nhớ và v.v). Linux là lý tưởng trong hầu hết
các trường hợp này vì khả năng thu hẹp quy mô của nó và sử dụng bất kỳ các bộ vi
xử lý nhúng nào có sẵn trên thị trường. Tính linh hoạt này làm cho Linux trở thành
một nền tảng được sử dụng rất nhiều trong truyền hình, giải trí trong xe hơi, các hệ
thống định vị và nhiều kiểu thiết bị khác.
Linux có khả năng tùy chỉnh cao và tập trung vào mức tiêu thụ điện năng thấp.
Để bảo đảm sự tập trung vào điện năng, sáng kiến Less Watts (Wát thấp hơn) theo
dõi sự tiêu thụ điện năng của các bản phát hành nhân Linux. Dự án này chủ yếu tập
trung vào các nền tảng của Intel, nhưng cũng có thể có ích với các bộ xử lý khác.
Linux là một đề xuất khá chuẩn cho các thiết bị nhúng và có thể xác định sự thành
công hay thất bại của thiết bị (hỗ trợ phát triển và xuất hiện nhanh). Một thiết bị thú
vị gần đây được gọi là Raspberry Pi, một máy tính có kích thước bằng thẻ tín dụng
dựa trên ARM, chạy Linux và được dự định làm một thiết bị học tập để dạy lập
trình. Thiết bị này được dự kiến có giá 35 Đô la Mỹ nhưng vẫn chưa có sẵn để mua.
1.3.7. Nền tảng ảo hóa

Một trong những lĩnh vực thú vị nhất trong đó Linux hướng tới sự đổi mới là
trong lĩnh vực ảo hóa. Linux là ngôi nhà của hệ điều hành cho tất cả các loại giải
pháp ảo hóa có sẵn, cho dù nền tảng hoặc ảo hóa song song, ảo hóa hệ điều hành
hay nhiều ý tưởng mơ hồ hơn như ảo hóa cộng tác. Linux là một hệ điều hành có
10


thể biến mình thành một trình siêu giám sát - hypervisor (chẳng hạn như KVM Máy tính ảo dựa vào nhân) cũng như lưu trữ trên máy chủ một số trình siêu giám

sát nghiên cứu. Để mang lại hiệu quả hơn cho ảo hóa, Linux thực hiện Kernel
SamePage Merging (Kết hợp trang giống nhau của nhân) để loại bỏ có hiệu quả các
trang bộ nhớ dư thừa.
Linux cũng đang hướng tới kỹ nghệ cao về một sự tiến bộ mới trong ảo hóa được
gọi là ảo hóa lồng nhau.Việc lồng nhau, như tên của nó cho thấy, cho phép một
trình siêu giám sát lưu trữ trên máy chủ một trình siêu giám sát khách, rồi trình
khách này lần lượt lưu trữ một tập hợp các máy ảo khách trên máy chủ. Mặc dù
thoáng nhìn như là một trường hợp sử dụng cũ, nhưng ảo hóa lồng nhau sẽ thay đổi
điện toán đám mây và mở rộng các kiểu của các ứng dụng có thể được lưu trữ trên
máy chủ ở đó. Hiện nay, KVM của Linux hỗ trợ ảo hóa lồng nhau.

1.3.8. Nền tảng thử nghiệm
Cuối cùng nhưng không kém quan trọng là nền tảng của chính Linux—một nền
tảng thử nghiệm mà qua đó đang khám phá ra nhiều ý tưởng mới. Năm 1991, Linux
đã được giới thiệu như là một hệ điều hành đồ chơi, 20 năm sau bản phát hành đầu
tiên của UNIX®. Hiện nay, Linux dùng làm một nền tảng để thử nghiệm trong
nghiên cứu hệ thống tệp, điện toán cụm, những đám mây, sự tiến bộ ảo hóa và mở
rộng các hạn chế theo đó một nhân của hệ điều hành đơn lẻ có thể được áp dụng
cho rất nhiều mô hình sử dụng. Linux như là một nền tảng cho phép thử nghiệm
tăng tốc thông qua việc sử dụng cả Linux lẫn một loạt các thành phần nguồn mở to
lớn. Kết quả là một loạt các công nghệ thú vị được xây dựng từ Linux, gồm có HP
webOS (Hệ điều hành web của HP), Google Chrome OS (Hệ điều hành web của
Google) và Android.
Một thay đổi thú vị được Linux giới thiệu là sự không phù hợp của các nền tảng
phần cứng cơ bản ngày càng tăng. Linux trình bày một trải nghiệm người dùng
tương tự bất kể kiến trúc phần cứng cơ bản nào. Vì vậy, cho dù một đám mây có
được lấp đầy bằng các máy chủ x86 của AMD hoặc các dịch vụ dựa trên ARM điện
11



năng thấp hay không, các ứng dụng chạy trên Linux đều được trừu tượng hóa từ
các kiến trúc vật lý. Sự trừu tượng hóa này cho phép những người dùng ra các
quyết định trên nền tảng dựa vào các yêu cầu của họ chứ không bị buộc chặt vào
kiến trúc chung nhưng cổ xưa và không hiệu quả. Linux cân bằng sự lựa chọn.
Linux cũng là một môi trường phát triển tích hợp (IDE) độc lập. Ngoài việc
lưu trữ trên máy chủ một chuỗi công cụ của trình biên dịch tầm cỡ thế giới (GNC
Compiler Collection – Bộ sưu tập trình biên dịch GNC), nó còn lưu trữ trên máy
chủ một loạt các công cụ trải rộng từ các trình gỡ lỗi, các trình soạn thảo, các hệ
thống kiểm soát phiên bản, các công cụ tệp và các trình vỏ và các trình thông dịch
để giúp tự động hóa các nhiệm vụ phát triển. Trong khả năng này Linux làm cho nó
trở thành một môi trường lý tưởng để phát triển phần mềm và nghiên cứu phần
mềm.

1.3.9. Tính đa năng của Linux
Việc hỗ trợ các mô hình sử dụng khác nhau được định nghĩa ở đây chỉ đơn giản
là một tùy chọn đóng gói cho Linux. Các bản phân phối của Linux tập trung vào
các thị trường máy tính để bàn và máy chủ, nơi các bản phân phối chuyên dụng tập
trung vào nhúng (như uClinux, nếu thiết bị nhúng của bạn thiếu một đơn vị quản lý
bộ nhớ). Bất cứ ai cũng có thể nhận một nhân Linux và đóng gói một tập hợp các
ứng dụng của người dùng cho một mô hình sử dụng cụ thể, tận dụng những lợi ích
khác nhau của Linux (một loạt các giao thức mạng và các hệ thống tệp, nhân động
và có thể cấu hình được, các giao diện lập trình ứng dụng tiêu chuẩn). Đây là một
trong những lý do mà nền tảng điện thoại thông minh đang phát triển nhanh nhất
chạy Linux (với một giao diện người dùng tùy chỉnh cho phong cách riêng của nó)

1.4. Ưu điểm và Nhược điểm của Linux
1.4.1. Những ưu điểm của Linux

12



Hoàn toàn miễn phí: Tuy vẫn phải trả một khoảng tiền nhất định nào đó, nhưng
số tiền đó chi cho tài liệu hướng dẫn, driver, hỗ trợ kỹ thuật . . . chứ không phải chi
phí về bản quyền sử dụng. Nếu không muốn tốn tiền, bạn có thể tải về Linux và các
ứng dụng ngay trên Web của các nhà phân phối mà chẳng mất đồng nào (Tất nhiên
là bạn vẫn phải trả tiền Internet ).
Uyển chuyển: Các nhà phân phối Linux có thể chỉnh sửa môi trường hoạt động
ủa Linux cho phù hợp với yêu cầu riêng của từng đối tượng người dùng.
Độ cao an toàn: Vì là phần mềm mã nguồn mở nên khi có lỗi phần mềm thì chỉ
sau 24h là đã có thể khắc phục được. Người dùng có thể tải về bản sửa lỗi có sẵn
trên mạng. Mặt khác, các tay viết Virus thường không coi Linux là đối tượng của
họ.
Hướng dẫn sử dụng khá phong phú.
Hệ điều hành chạy thống nhất trên mọi hệ thống phần cứng.
Cho dù đến nay có nhiều phiên bản Linux được nhiều nhà phân phối khác nhau
phát hành nhưng tất cả đều hoạt động bình thường trên các loại CPU khác nhau của
Intel, từ Intel 486 đến các Pentium mới nhất.
1.4.2 Những nhược điểm của Linux
Người dùng phải thành thạo.
Trình tự cài đặt tự động, giao diện thân thiện với người dùng chỉ giảm nhẹ phần
nào sự phức tạm trong quá trình cài đặt phần mềm, tinh chỉnh màn hình, card âm
thanh, card mạng, . . . Đôi khi những công việc này bắt buộc bạn phải thao tác từ
những dòng lệnh cực kỳ "bí hiểm", nhàm chán và rất dễ nhầm lẫn (Trong khi HĐH
Windows thì chỉ cần theo thông báo rồi Next. . .next . . . I gree . . . next ,. . . . Finish
là xong).
Để cài đặt thành công, đôi khi bạn phải bỏ ra rất nhiều thời gian để tham khảo và
nghiên cứu tài liệu.

13



Phần cứng ít được hỗ trợ.
Tuy đã cố gắng rất nhiều, nhưng bộ Linux của họ vẫn chưa có đủ trình điều
khiển cho tất cả các thiết bị phần cứng có trên thị trường.
Phần mềm ứng dụng chưa tinh xảo.
Các phần mềm ứng dụng trên Linux rất sẵn và không mất tiền, nhưng đa số
không tiện dụng, không phong phú. Nhiều phần mềm ứng dụng thiếu các chức
năng thông dụng, đặc trưng mà người dùng đã quen với Microsofr Office.
Thiếu chuẩn hóa.
Do Linux toàn miễn phí nên bất cứ ai thích đều có thể tự mình đóng gói, phân
phối theo các của mình.
Có hàng chục nhà phân phối khácnhau trên thị truờng, người dùng trước khi cài
đặt thường phải tự mình so sánh để tìm ra sản phẩm thích hợp.
Chính sách hỗ trợ khách hàng thiếu nhất quán và tốn kém.
Mặc dù không phải trả bản quyền, nhưng người dùng vẫn phải trả phi cho mỗi
thắc mắc cần được giải đáp từ nhà phân phối, cho dù đó chỉ là gọi qua điện thoại.
1.5 Linux và thị trường làm việc

Theo một cuộc khảo sát được thực hiện bởi Dice và Linux Foundation, thì hầu
như mọi người đều muốn thuê các chuyên viên Linux. Và không chỉ có nhu cầu
tuyển dụng cao, ngoài ra có 50% số người được hỏi trả lời rằng họ mong muốn
thuê các chuyên viên Linux trong năm 2015 thậm chí còn nhiều hơn năm 2014.
Nhu cầu đã đạt đến mức rất cao, nên thật khó để tìm thấy và giữ chân các ứng viên
có chất lượng. Theo báo cáo.
14


Các nhà quản lý tuyển dụng vẫn còn đang phải vật lộn để tìm thấy các chuyên
viên với các kỹ năng Linux, có 88% "rất khó" hoặc "hơi khó" để tìm thấy các ứng
viên này.

Có 70% các nhà quản lý tuyển dụng cho biết công ty của họ đã tăng các chính
sách khuyến khích để giữ chân các nhân tài Linux, trong đó có 37% đưa ra giờ làm
việc linh hoạt hơn và làm việc tại nhà, và 36% quyết định tăng lương cho các
chuyên viên Linux hơn là các vị trí khác trong công ty.
Chẳng có gì phải ngạc nhiên khi có 55% các chuyên viên Linux tin rằng sẽ "rất
dễ dàng" hoặc "khá dễ" để có được một công việc mới trong năm 2015.
Tất cả nhu cầu dành này cho các nhân tài Linux được đặt trong bối cảnh của cuộc
chiến vẫn tiếp tục giữa Microsoft Windows và Linux về thị phần. Microsoft tiếp tục
chiếm ưu thế, IDC ước tính doanh thu của công ty đạt 45.7% trong đầu năm 2014.
Các máy chủ Linux chiếm 28.5% tổng thị trường.

15


16


CHƯƠNG 2: HỆ THỐNG TỆP TIN TRONG LINUX
2.1. Giới thiệu
Trong linux file được tổ chức thành các thư mục, theo mô hình phân cấp. Tham
chiếu đến một file bằng tên và đường dẫn. Các câu lệnh thao tác file cho phép thực
hiện các chức năng như dịch chuyển, sao chép toàn bộ thư mục cùng với các thư
mục con chứa trong nó… Có thể sử dụng các ký tự, dấu gạch dưới, chữ số, dấu
chấm và dấu phảy để đặt tên file.
Không được bắt đầu một tên file bằng dấu chấm hay chữ số. Những ký tự khác
như ‘/’, ‘?’, ‘*’, là ký tự đặc biệt được dành riêng cho hệ thống. Chiều dài của tên
file có thể tới 256 ký tự.
17



Tất cả các file trong linux có chung cấu trúc vật lý là chuỗi các byte (byte
stream). Cấu trúc thống nhất này cho phép linux áp dụng khái niệm file cho mọi
thành phần dữ liệu trong hệ thống. Thư mục cũng như các thiết bị được xem như
file. Chính việc xem mọi thứ như các file cho phép linux quản lý và chuyển đổi dữ
liệu một cách dễ dàng. Một thư mục chứa các thông tin về thư mục, được tổ chức
theo một ñịnh dạng đặc biệt. Các thành phần được xem như các file, chúng được
phân biệt dựa trên kiểu file: ordinary file, directory file, character device file, và
block device file.

2.1.1. Thư mục chủ
Sau khi đăng nhập hệ thống, người dùng sẽ đứng ở thư mục chủ. Tên của thư
mục này giống với tên tài khoản đăng nhập hệ thống. Các file được tạo khi người
dùng đăng nhập được tổ chức trong thư mục chủ.

2.1.2. Các thư mục hệ thống
Thư mục root, là gốc của hệ thống file của Linux, chứa một vài thư mục hệ
thống. Thư mục hệ thống chứa file và chương trình sử dụng để chạy và duy trì hệ
thống. Biểu diễn các thư mục như sau:

18


Hình 2.1: Thư mục root

Mô tả thư mục :

Thư mục

Mô tả nội dung


/

bắt đầu cấu trúc

/home

chứa các thư mụ

/bin

lưu trữ tất cả các

/usr

chứa các tệp, câu

/usr/bin

chứa các câu lện

/usr/sbin

chứa các câu lện

/usr/lib

chứa thư viện ch

/usr/doc


chứa tài liệu của

/usr/man

chứa các tệp hướ
19


/sbin

chứa các tệp hệ t

/dev

chứa giao diện ch

/etc

chứa tệp cấu hình

2.2. Các quyền truy cập file/thư mục
Trong Linux, mỗi file hay thư mục được kết hợp với một người sử dụng và một
nhóm người sử dụng.
Ví dụ:

-rwxr-x-r-- 1 trantu trantu 191 Apr 14 14:55 .bash_profile

Dòng bên trên được tạo bởi lệnh ls –l .bash_profile trên hệ điều hành Linux.
Lệnh ls đưa ra danh sách các file và thư mục. Tùy chọn –l đưa ra danh sách đầy
đủ các thông tin về file .bash_profile.

Trong đó :
Quyền truy cập file : -rw-rw-r—
Số liên kết: 1
Người sử dụng (sở hữu file) :Trantu
Nhóm sử dụng : Trantu
Kích thước file (theo bytes) : 191
Ngày sửa ñổi sau cùng : Apr 14
Thời gian sửa ñổi sau cùng : 14:55
Tên file .bash_profile

20


Ở đây, người sử dụng là trantu. đây là người sử dụng thường xuyên, có quyền
thay đổi các quyền trùy cập đối với file này. Chỉ có một người sử dụng khác có
quyền thay đổi thuộc tính file này, đó là superuser. Nhóm sử dụng file này là trantu,
bất kỳ những người sử dụng nào thuộc nhóm trantu cũng có quyền đọc, và thực thi
dựa vào quyền của nhóm được đặt bởi người sở hữu. Khi bạn tạo một file trên hệ
thống Linux, hệ thống sẽ mặc định người sở hữu file này có tên là tên đăng nhập
của bạn và có tên nhóm giống như tên của người sở hữu. Một người sử dụng thông
thường không thể gán lại quyền sở hữu một file hay thư mục cho người khác. Ví
dụ, bạn không thể tạo một file với người sử dụng kabid rồi sau đó gán lại quyền sở
hữu cho người khác có tên là sheila bởi lý do bảo mật. Nếu một người sử dụng
thông thường có quyền gán quyền sở hữu file cho người khác, thi một ai đó cúng
có thể tạo một chương trình xấu như xóa các file, và thay đổi quyền sở hữu cho
superuser, và không biết điều gì sẽ xảy ra. Chỉ có người superuser mới có thể gán
lại quyền sở hữu file hay thư mục cho người khác.

2.2.1. Thay đổi quyền sở hữu file, thư mục
Sử dụng lệnh Chown Người sử dụng superuser có thể thay đổi quyền sở hữu file,

thư mục cho một người sử dụng khác. Để thay đổi quyền sở hữu sử dụng câu lệnh
sau:
Chown
Ví dụ: chown

newuser
trantu

file hoặc thư mục
example.txt
21


Câu lệnh này làm cho người sử dụng trantu có quyền sở hữu file example.txt
Nếu superuser muốn thay đổi nhóm cho một file hoặc thư mục, người đó có thể sử
dụng câu lệnh chown như sau:
Chown

newuser.newgroup

Ví dụ: chown

trantu.admin

file hoặc thư mục

example.txt

Câu lệnh trên không chỉ thay đổi quyền sở hữu file cho trantu mà còn đặt lại
nhóm sử dụng file là admin. Nếu superuser muốn thay đổi người sở hữu và nhóm

sử dụng cho tất cả các file trong một thư mục, người đó có thể sử dụng câu lệnh
chown với tùy chọn –R. Ví dụ chown –R trantu.admin /home/trantu/

2.2.2. Thay đổi nhóm sử dụng file/thư mục với lệnh chgrp
Câu lệnh chgrp cho phép bạn thay đổi quyền sử dụng file hay thư mục của một
nhóm, chỉ nếu bạn thuộc về cả hai nhóm (nhóm cũ và nhóm mới). Ví dụ: chgrp
httpd *.html Lệnh trên sẽ thay đổi nhóm sử dụng cho tất cả các file có phần mở
rộng html. Bạn chỉ có thể thay đổi được nếu bạn thuộc nhóm httpd. Giống như lệnh
chown, lệnh chgrp cũng có tùy chọn –R để thay đổi quyền với nhiều file hay thư
mục.

2.2.3. Thay đổi quyền truy cập file thư mục sử dụng lệnh chmod
Tiện ích chmod cho phép bạn thay đổi các quyền. Bạn có thể sử dụng các chữ số
hay các ký tự với tiện ích này để thay đổi quyền.
Ví dụ : chmod 755 *.pl
Câu lệnh trên thay đổi quyền cho các file có phần mở đuôi là .pl. Mỗi một file .pl
được đặt các quyền đọc, ghi và thực thi bởi người sở hữu, các file cúng có thể đọc
22


và thực thi bởi nhóm người sử dụng và những người khác. Bạn có thể hoàn thành
cùng một công việc như vậy với lệnh sau:
chmod a+rx,u+w *.pl
a+rx được sử dụng để cho phép tất cả mọi người đọc và thực thi đối với mỗi file .pl
và u+w được sử dụng để cho phép người sở hữu có quyền ghi đỗi với mỗi file .pl.
Nếu bạn muốn thay đổi các quyền cho tất cả các file và các thư mục con trong
một thư mục, bạn có thể sử dụng tùy chọn –R:
chmod –R 750 /www/mysite

2.2.4 Các chú ý đặc biệt trên các quyền thư mục

Các quyền thiết lập cho một thư mục cũng tương tự như các file thông thường,
nhưng không giống hệt nhau. Dưới đây là một vài chú ý đặc biệt trên các quyền thư
mục:
- Quyền chỉ đọc cho một thư mục sẽ không cho phép bạn chuyển vào bên trong
thư mục, để chuyển vào bên trong bạn cần có quyền thực thi
- Quyền chỉ được thực thi sẽ cho phép bạn truy cập vào các file bển trong một
thư mục khi bạn biết tên của chúng và bạn được phép đọc chúng.
- Để có thể đưa ra danh sách nội dung của một thư mục sư dụng câu lệnh tương
tự như ls và cúng có thể chuyển vào bên trong thư mục bạn cần có cả quyền đọc và
quyền thực thi đối với thư mục đó
- Nếu bạn có quyền ghi cho một thư mục, bạn có thể tạo, thay đổi, xóa các file bất
kỳ hay các thư mục con bất kỳ bên trong thư mục đó ngay cả khi file và thư mục
con được sở hữu bởi người khác.

23


2.3. Làm việc với các file và các thư mục
2.3.1. Xem các file và các thư mục
Bạn có thể đã quen với lệnh ls, thông thường nó được sử dụng với các tùy chọn –
l (long listing) hiển thị đầy đủ thông tin, -a hiển thị tất cả các file bao gồm cả các
file bắt ñầu bằng dấu chấm và –R hiển thị tất cả các file và các thư mục con bên
trong thu mục mong muốn .

2.3.2. Chuyển đến thư mục
Bạn gần như đã quen với câu lệnh cd, nó là một shell xây dựng sẵn. Nếu bạn
không cung cấp một tên thư mục bất kỳ làm đối số cho nó, nó sẽ chuyển về thư
mục chủ của bạn mà hiện tại bạn đang sử dụng. Khi bạn đang đứng ở bất kỳ đâu
trong hệ thống file, bạn có thể sử dụng lệnh pwd để hiển thị đường dẫn đến thư
mục hiện tại.


2.3.3. Xác định kiểu file
Không giống như hệ điều hành Windows, Linux không dựa vào phần mở rộng
của file để xác định kiểu file. Bạn có thể sử dụng tiện ích file ñể xác định kiểu file
trong hệ thống. Ví dụ: file todo.txt
Kết quả hiển thị như sau: todo.txt: ASCII text

24


2.3.4. Xem thống kê các quyền của file hay thư mục
Bạn có thể sử dụng lệnh stat để lấy thống kê về các file và các thư mục: stat ./exam
Kết quả hiển thị trên màn hình
File: "./exam"
Size: 4096

Blocks: 8

Device: 812h/2066d

IO Block: -4611692478058196992 Directory

Inode: 157762

Access: (0755/drwxr-xr-x)

Links: 2

Uid: ( 0/ root)


Gid: ( 0/ root)

Access: Wed Jun 18 14:56:48 2003
Modify: Wed Jun 18 11:18:42 2003
Change: Wed Jun 18 11:18:42 2003

2.3.5. Sao chép file và thư mục
Sử dụng câu lệnh cp để sao chép từ một vị trí xác định đến vị trí khác:
cp /some/important /new/place
Bạn cũng có thể xác định một tên mới cho file sao chép. Thông thường lệnh cp
được sử dụng với tùy chọn –f để sao chép file từ nguồn đến đích mà không quan
tâm đến đến việc có một file cùng tên tồn tại ở đích. File mới sẽ được sao chép đè
lên file cũ. để sao chép một thư mục đến một thư mục khác bạn thực hiện lệnh cp
với tùy chọn –r
Ví dụ: cp –r /tmp/foo /zoo/foo

25


×