Bài thảo luận kiến thức khái quát về hệ điều hành Linux - Pdf 21

A
p
r
.

2
5
1
Kiến trúc tổng quát về hệ điều hành Linux
MỤC LỤC Trang
Lời mở đầu 2
1. Giới thiệu về Hệ điều hành Linux 3
1.1. Thế nào là Linux?
1.2. Linux có gì hấp dẫn người dùng?
1.3. Các bản phân phối của Linux
1.4. Yêu cầu đối với máy tính
2. Thành phần của Hệ điều hành Linux 7
2.1. Hệ điều phối hoạt động – quản lý tiến trình
2.2. Các thành phần quản lý và phân phối tài nguyên
2.2.1. Quản lý bộ nhớ chính
2.2.2. Quản lý tập tin
2.2.3. Quản lý hệ thống xuất nhập
2.2.4. Quản lý bộ nhớ thứ cấp
2.3. Hoạt động mạng
2.4. Hệ thống bảo vệ
2.5. Hệ thống thông dịch lệnh
3. Nhân của Linux (Linux Kernel) 16
4. Các dịch vụ của Hệ điều hành Linux 18
5. Lời gọi hệ thống 20
Tổng kết 21
Nhóm 1 – Lớp 1101NWMG0411

cộng tác. Cộng đồng Linux không chỉ cung cấp cho người dùng máy tính một Hệ
điều hành thân thiện, dễ sử dụng mà còn luôn luôn sẵn sàng giúp đỡ những người
dùng mới, luôn mong muốn có thêm máy tính chạy dưới Linux. Với sự phát triển
ngày một lớn mạnh của Linux, việc phân tích và tìm hiểu hoạt động của Linux đang
trở nên một nhu cầu cấp thiết đối với những người nghiên cứu công nghệ thông tin.
Tuy nhiên với đề tài “Tìm hiểu và phân tích kiến trúc tổng quát của Hệ điều hành
Linux”, nhóm chúng tôi sẽ đi tìm hiểu về Hệ điều hành này theo hướng tiếp cận của
người mới sử dụng, qua đó tổng kết lại những kiến thức chung nhất về Hệ điều
hành cũng như những điểm nhấn của Linux, để từ đó có định hướng phát triển Hệ
điều hành này về sau.
Nhóm 1 – Lớp 1101NWMG0411
A
p
r
.

2
5
1
Kiến trúc tổng quát về hệ điều hành Linux
1. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH LINUX
Lịch sử luôn là điểm khởi đầu khi nghiên cứu một ngành khoa học nào đó.
Không có ngoại lệ với Toán học, Vật lý, Hóa học… và tất nhiên cả hệ điều hành
Linux. Trong phần đầu tiên của bài trình bày này, nhóm chúng tôi xin được giới thiệu
đôi lời về những đặc điểm đặc biệt của Linux, yêu cầu của Linux đối với phần cứng,
khái niệm bản phân phối của Linux, và cách có được những bản phân phối này.
1.1.Thế nào là Hệ điều hành dạng Linux?
Hệ điều hành là một bộ các chương trình hỗ trợ cho việc điều khiển phần cứng
của máy tính, tổ chức làm việc với các tập tin (trong đó có chạy và điều khiển việc
thực hiện của các chương trình), và đông thời thực thi sự giao tiếp với người dùng,

Kiến trúc tổng quát về hệ điều hành Linux
Ban đầu, Linux được phát triển và sử dụng bởi những người say mê. Tuy
nhiên, hiện nay Linux đã có được sự hỗ trợ bởi các công ty lớn như IBM và Hewlett-
Packard, đồng thời nó cũng bắt kịp được các phiên bản Unix độc quyền và thậm chí
là một thách thức đối với sự thống trị của Microsoft Windows trong một số lĩnh vực.
Sở dĩ Linux đạt được những thành công một cách nhanh chóng là nhờ vào các đặc
tính nổi bật so với các hệ thống khác: chi phí phần cứng thấp, tốc độ cao (khi so
sánh với các phiên bản Unix độc quyền) và khả năng bảo mật tốt, độ tin cậy cao (khi
so sánh với Windows) cũng như là các đặc điểm về giá thành rẻ, không bị phụ thuộc
vào nhà cung cấp. Một đặc tính nổi trội của nó là được phát triển bởi một mô hình
phát triển phần mềm nguồn mở hiệu quả.
Tuy nhiên, hiện tại số lượng phần cứng được hỗ trợ bởi Linux vẫn còn rất
khiêm tốn so với Windows vì các trình điều khiển thiết bị tương thích với Windows
nhiều hơn là Linux. Nhưng trong tương lai số lượng phần cứng được hỗ trợ cho
Linux sẽ tăng lên.
1.2.Linux có gì hấp dẫn người dùng?
Có lẽ bạn đã quá quen với hệ điều hành Windows cũng như quá quen lập trình
trên hệ điều hành này. Windows có thể nói là một hệ điều hành khá "hoàn hảo", dễ
sử dụng, với rất nhiều tiện ích đáp ứng gần như mọi yêu cầu của người dùng. Vậy
thì tại sao chúng ta lại phải tìm đến một hệ điều hành mới như Linux? Điều đó liệu
có thực sự cần thiết không? Nhất là đối với sinh viên như chúng ta, những người
mới chập chững bước vào con đường làm tin học? Câu trả lời là CÓ.
1.2.1. Vấn đề bản quyền
Trong bối cảnh nền kinh tế thế giới đang có xu hướng toàn cầu hóa như hiện
nay thì đây là một vấn đề nổi cộm. Ở Việt Nam, vấn đề vi phạm bản quyền phần
mềm là rất phổ biến (nước ta dẫn đầu thế giới về số lượng phần mềm dùng không
có bản quyền). Nếu tình trạng đánh cắp bản quyền phần mềm của Việt Nam là 100
triệu USD mỗi năm thì sẽ có một lượng hàng hóa có giá trị tương đương không bán
được ở Mỹ và các nước phát triển. Và như vậy người thiệt hại đầu tiên sẽ chính là
người lao động Việt Nam. Trước tình hình đó, việc tự xây dựng cho mình những

kernel) còn được nhúng vào các thiết bị điều khiển như máy tính palm, robot
Phạm vi ứng dụng của Linux được xem là rất rộng rãi.
* Độ an toàn cao
Trước hết, trong Linux có một cơ cấu phân quyền hết sức rõ ràng. Chỉ có "root"
(người dùng tối cao) mới có quyền cài đặt và thay đổi hệ thống. Ngoài ra Linux cũng
có cơ chế để một người dùng bình thường có thể chuyển tạm thời chuyển sang
quyền "root" để thực hiện một số thao tác. Điều này giúp cho hệ thống có thể chạy
ổn định và tránh phải những sai sót dẫn đến đổ vỡ hệ thống. Trong những phiên bản
Windows gần đây, cơ chế phân quyền này cũng đã bước đầu được áp dụng, nhưng
so với Linux thì vẫn kém chặt chẽ hơn.
Ngoài ra chính tính chất "mở" cũng tạo nên sự an toàn của Linux. Nếu như một
lỗ hổng nào đó trên Linux được phát hiện thì nó sẽ được cả cộng đồng mã nguồn
mở cùng sửa và thường thì chỉ sau 24h sẽ có thể cho ra bản sửa lỗi. Mặt khác đối
với những hệ điều hành mã nguồn đóng như Windows, bạn không thể biết được
người ta viết gì, và viết ra sao mà chỉ biết được chúng chạy như thế nào. Trong
Linux mọi thứ đều công khai, người quản trị có thể tìm hiểu tới mọi ngõ ngách của
hệ điều hành. Điều đó cũng có nghĩa là độ an toàn được nâng cao.
* Thích hợp cho quản trị mạng
Được thiết kế ngay từ đầu cho chế độ đa người dùng, Linux được xem là một
hệ điều hành mạng rất giá trị. Nếu như Windows tỏ ra là một hệ điều hành thích hợp
với máy tính Desktop thì Linux lại là hệ điều hành thống trị đối với các Server. Đó là
do Linux có rất nhiều ưu điểm thỏa mãn đòi hỏi của một hệ điều hành mạng: tính
bảo mật cao, chạy ổn định, các cơ chế chia sẻ tài nguyên tốt… Giao thức TCP/IP
mà chúng ta vẫn thấy ngày nay chính là một giao thức truyền tin của Linux (sau này
mới được đưa vào Windows)
* Chạy thống nhất trên các hệ thống phần cứng
Dù cho có rất nhiều phiên bản Linux được các nhà phân phối khác nhau ban
hành nhưng nhìn chung đều chạy khá ổn định trên mọi thiết bị phần cứng, từ Intel
486 đến những máy Pentium mới nhất, từ những máy có dung lượng RAM chỉ 4MB
đến những máy có cấu hình cực mạnh (tất nhiên là tốc độ sẽ khác nhau nhưng về

Kiến trúc tổng quát về hệ điều hành Linux
SUSE Linux
Enterprise Desktop
10.1
www.novell.com/Linux/ OpenSUSE 10.3
Mint
6
www.Linuxmint.com
Knoppix 5.3.1 www.knoppix.com/
PCLinuxOS 2008 www.pcLinuxos.com/
Mandrake 2007.0 www.madrivaLinux.com Mandriva
CentOS www.gentoo.org/
Slackware 12.1 www.slackware.com/
Xandros
SLAX
Easys
Sabayon
DreamLinux
OpenSolaris 2008 www.opensolaris.org/
Hồng kỳ Linux
Puppy Linux
Hacao Linux 2.16
Vubuntu 1.0
Asianux 2.0 Asianux Server 3
1.4.Yêu cầu đối với máy tính.
Vì Hệ điều hành Linux sử dụng chế độ bảo vệ của bộ vi xử lý, nên để cài đặt
Hệ điều hành này cần ít nhất là một máy tính có bộ xử lý 386. Yêu cầu đối với phần
cứng của hệ thống muốn cài đặt Linux còn được xác định bởi lựa chọn phần mềm
cảu người dùng (và tức là sẽ phụ thuộc vào phiên bản của các phần mềm và ít
nhiều vào bản phân phối). Bảng dưới đây sẽ đưa ra một vài con số chỉ với mục địch


2
5
1
Kiến trúc tổng quát về hệ điều hành Linux
Sau đây, chúng tôi sẽ đi vào nghiên cứu các thành phần của Hệ điều hành
Linux. Một cách tổng quát về Hệ điều hành chung thì bao gồm các thành phần như
sau:
a. Điều phối hoạt động: Quản lý tiến trình (Process Management )
b. Thành phần quản lý và phân phối tài nguyên:
- Quản lý bộ nhớ chính (Main Memory Management)
- Quản lý tập tin (File Management)
- Quản lý hệ thống vào-ra (I/O System Management)
- Quản lý bộ nhớ thứ cấp (Secondary Storage Management)
c. Hoạt động mạng (Networking)
d. Hệ thống bảo vệ (Protection System)
e. Hệ thống thông dịch lệnh (Command-Interpreter System)
2.1.Hệ điều phối hoạt động: Quản lý tiến trình.
Những hệ thống máy tính ban đầu cho phép chỉ một chương trình được thực
thi tại một thời điểm. Chương trình này có toàn quyền điều khiển hệ thống và có truy
xuất tới tất cả tài nguyên của hệ thống. Những hệ thống máy tính hiện nay cho phép
nhiều chương trình được nạp vào bộ nhớ và được thực thi đồng hành. Sự phát triển
này yêu cầu sự điều khiển mạnh mẽ hơn và phân chia nhiều hơn giữa các quá trình.
Yêu cầu này dẫn đến khái niệm quá trình, một chương trình đang thực thi. Quá trình
là một đơn vị công việc trong một hệ điều hành chia thời hiện đại.
Một hệ điều hành phức tạp hơn được mong đợi nhiều hơn trong việc thực hiện
các hành vi của người dùng. Mặc dù quan tâm chủ yếu của hệ điều hành là thực thi
chương trình người dùng, nhưng nó cũng quan tâm đến các tác vụ khác nhau bên
ngoài nhân. Do đó, một hệ thống chứa tập hợp các quá trình: quá trình hệ điều hành
thực thi mã hệ thống, quá trình người dùng thực thi mã người dùng. Tất cả quá trình

5
1
Kiến trúc tổng quát về hệ điều hành Linux
Trong Linux cơ chế đường ống cài đặt sử dụng hai cấu trúc file trỏ đến cùng
inode VFS tạm thời xác định một trang vật lý trong bộ nhớ. Khi tiến trình ghi thực
hiện việc ghi vào đường ống, các byte sẽ được chép vào trang dữ liệu chia sẻ. Linux
phải đồng bộ quy trình truy xuất trong đường ống. Tiến trình ghi sử dụng các hàm
thư viện ghi chuẩn.
Các cơ chế socket, semaphores và bộ nhớ chia sẻ của Linux gần giống với hệ
thống Unix System V.
2.2.Thành phần quản lý và phân phối tài nguyên
2.2.1. Quản lý bộ nhớ chính
Trong hệ thống máy tính, bộ nhớ là một tài nguyên khan hiếm. Cho dù có bao
nhiêu bộ nhớ đi chăng nữa thì vẫn không đáp ứng đủ nhu cầu của người sử dụng.
Các máy tính cá nhân hiện nay đã trang bị ít nhất 128Mb bộ nhớ. Các máy chủ
servercos thể lên đến hàng gigabyte bộ nhớ. Thế nhưng nhu cầu bộ nhớ vẫn không
được thỏa mãn.
Linux có cách tiếp cận và quản lý bộ nhớ rất rõ rang. Các ứng dụng trên linux
được phép truy cập trực tiếp vào địa chỉ vật lý của bộ nhớ. Linux cung cấp cho các
chương trình chạy dưới HĐH - còn gọi là tiến trình – một mô hình đánh giá địa chỉ
phẳng không phân đoạn segment:offset như DOS. Mỗi tiến trình chỉ thấy được một
vùng không gian địa chỉ của riêng nó. Hầu như tất cả các phiên bản của UNIX đều
cung cấp cách bảo vệ bộ nhớ theo cơ chế bảo đảm không có tiến trình nào có thể
ghi đè lên vùng nhớ của tiến trình khác đang hoạt động hoặc vùng nhớ của hệ
thống. Nói chung, bộ nhớ mà hệ thống cấp phát cho một tiến trình không thể nào
đọchoặc ghi bởi một tiến trình khác.
Trong hầu hết các hệ thống Linux và UNIX, con trỏ được sử dụng là một số
nguyên 32 bit trỏ đến một ô nhớ cụ thể. Với 32 bit, hệ thống có thể đánh địa chỉ lên
đến 4GB bộ nhớ. Mô hình bộ nhớ phẳng này dễ truy xuất và xử lý hơn bộ nhớ phân
đoạn segment:offset. Ngoài ra, một vài hệ thống còn sư dụng mô hình địa chỉ 64 bit,

Kiến trúc tổng quát về hệ điều hành Linux
Một trong những đặc điểm quan trọng của Linux là nó hỗ trợ nhiều hệ thống
tập tin. Điều này làm cho nó rất linh động và có thể cùng tồn tại với nhiều hệ điều
hành khác. Từ những phiên bản đầu tiên, Linux đã hỗ trợ 15 loại tập tin: ext,
ext2, xia, minix, msdos, vfat, proc, smb, ncb, iso9660, sysv,
hpfs, affs và ufs.
Trong Linux, cũng như trong UNIX nói chung, hệ thống tập tin được truy xuất
thông qua một cấu trúc cây thừa kế đơn thay vì là các thiết bị xác định (như tên ổ
đĩa hoặc số hiệu của ổ đĩa). Linux thêm những hệ thống tập tin được thiết lập vào
một thư mục và được gọi là thưu mục thiết lập.
Khi một đĩa được khởi tạo, trên đĩa được chia thành nhiều partitions. Mỗi
partition có một hệ thống tập tin. Hệ thống tập tin của Linux coi những thiết bị khối
một cách đơn giản như là một tập hợp tuyến tính các khối mà không quan tâm đến
tổ chức vật lý trên đĩa. Chương trình điều khiển thiết bị khối chịu trách nhiệm ánh xạ
khối cần đọc thành vị trí vật lý cụ thể trên đĩa.
Trong hệ thống tập tin của Linux, người sử dụng không quan tâm đến những
khác biệt của chúng trên những thiết bị vật lý khác nhau. Hệ thống tập tin không chỉ
trên hệ thống cục bộ mà còn là những ổ đĩa từ xa trên mạng. Hệ thống tập tin đầu
tiên Linux hỗ trợ là Minix cho phép tập tin có tên tối đa là 14 ký tự và kích thước
không vượt quá 64Mb. Hệ thống tập tin đặc thù đầu tiên của Linux là một hệ thống
tập tin mở rộng (EXT) được giới thiệu vào tháng 4/1992, hệ thống này không hiệu
quả nên sau đó vào năm 1993, một hệ thống tập tin mở rộng thế hệ 2 được thêm
vào.
2.2.2.2. Cấu trúc của các thư mục
Nếu như cấu trúc tập tin không cho phép sử dụng gì khác ngoài tên tập tin (tức
là tất cả các tập tin nằm trên một danh sách chung giống như các hạt cát trên bãi
biển) thì thậm chí cả khi không có giới hạn về độ dài của tên, rất khó để tìm đến tập
tin cần thiết. Một hệ thống Linux hoàn chỉnh có số lượng tập tin lớn hàng nghìn, vì
thế các tập tin được tổ chức vào các thư mục, các thư mục có thể nằm trong các
thư mục khác, v.v… kết quả là chúng ta thu được một cấu trúc thưu mục có phân

/home/nhom1
Mỗi người dùng có thể làm việc với thư mục của mình bằng ký hiệu ~, tức là
người dùng nhom1 có thể làm việc với thư mục /home/nhom1/cautrucmaytinh
bằng ~/cautrucmaytinh. Khi người dùng vào hệ thống, thư mục cá nhân sẽ trở
thành thư mục hiện thời của người dùng này.
2.2.2.3. Công dụng của các thư mục chính:
Trong Windows, người dùng hoàn toàn có quyền tổ chức cấu trúc thư mục,
nhưng một số truyền thống vẫn được tuân theo. Ví dụ các tập tin hệ thống thường
nằm trong thư mục C:\Windows, các chương trình thường được cái đặt vào
C:\Program File…
Trong Linux cũng có một cấu trúc thư mục kiểu như vậy và thậm chí cón
nghiêm ngặt hơn. Hơn nữa có một tiêu chuẩn xác định cấu trúc thư mục cho các Hệ
điều hành dòng UNIX. Tiêu chuẩn này được gọi là Filesystem Hierarchy Standart
(FHS).
Công dụng của các thư mục chính trong Linux:
Thư mục Công dụng
/bin Thư mục này gồm chủ yếu các chương trình, phần lớn trong số chúng
cần cho hệ thống trong thời gian khởi động (hoặc trong chế độ một
người dùng khi bảo trì hệ thống). Ở đây có lưu rất nhiều những câu
lệnh thường dùng của Linux.
/boot Gồm các tập tin cố định cần cho khởi động hệ thống, trong đó có nhân
(kernel). Tập tin trong thư mục này chỉ cần trong thời gian khởi động.
/dev Thư mục các tập tin đặc biệt hoặc các tập tin thiết bị phần cứng.
/etc Thư mục này và các thư mục con của nó lưu phần ớn những dữ liệu
cần cho quá trình khởi động ban đầu của hệ thống và lưu những tập tin
cấ hình chính.
/home Thông thường trong thư mục này là các thư mục cá nhân của người
dùng (trừ root).
/lib Thư mục này lưu các thư viện chia sẻ của các hàm mà trình biên dịch
C và các mô đun cần.

không lặp lại dùng để đăng nhập vào hệ thống. Ngoài ra, trên hệ thống còn có nhóm
người dùng, và Linux cho phép một người dùng có thể nằm trong một hoặc nhiều
nhóm. Tạo và xóa nhóm là công việc của người dùng cao cấp root, và root có thể
thay đổi thành phần của một nhóm nào đó. Thành viên của các nhóm khác nhau có
thể có quyền truy cập khác nhau đến tập tin, ví dụ nhóm các nhà quản trị có quyền
nhiều hơn so với nhóm các nhà lập trình.
2.2.3. Quản lý hệ thống xuất nhập I/O
Như đã đề cập trong bài học tổng quan về Hệ điều hành, một trong những mục
tiêu chính của hệ điều hành là giúp cho người sử dụng độc lập với thiết bị. Trong
Linux, các thiết bị phần cứng đều được xem như là các tập tin thông thường : chúng
có thể được mở, đóng , đọc , ghi, và sử dụng cùng những lời gọi hệ thống để thao
tác. Mọi thiết bị trong hệ thống đều được biểu diễn bởi các tập tin thiết bị, ví dụ đĩa
IDE đầu tiên của hệ thống được biểu diễn bởi /dev/hda. Đầu vào và đầu ra (I / O) là
trung tâm của bất kỳ thiết bị máy vi tính nào. Cũng như các hệ điều hành khác, Linux
hỗ trợ một loạt các thiết bị I / O. Các loại thiết bị I / O được hỗ trợ bởi Linux, hoặc
bằng hạt nhân hoặc bởi các ứng dụng người dùng.
Linux ánh xạ tập tin thiết bị vào các lời gọi hệ thống. Linux hỗ trợ ba loại thiết bị
là : ký tự, khối và mạng. Có nhiều chương trình điều khiển thiết bị khác nhau trong
hạt nhân của Linux nhưng chúng cùng chia xẻ những thuộc tính chung :
Mã nguồn của hạt nhân : chương trình điều khiển thiết bị là một phần của hạt
nhân và cũng như những đoạn mã nguồn khác nếu nó bị lỗi nó có thể đe dọa
nghiêm trọng đến hệ thống. Chương trình điều khiển thiết bị cung cấp một giao tiếp
chuẩn với hạt nhân của Linux. Chương sử dụng những dịch vụ chuẩn từ hạt nhân
này. Hầu hết các chương trình điều khiển thiết bị của Linux được nạp như những
đơn thể của hạt nhân khi có yêu cầu và được gỡ ra khi nó không còn được sử dụng
nữa. Khi khởi động hệ thống mỗi chương trình điều khiển thiết bị được khởi tạo và
nó sẽ tìm thiết bị phần cứng mà nó sẽ điều khiển. Linux sử dụng cơ chế DMA và sử
dụng một vector cấu trúc dma_chan để quản lý các kênh DMA (mỗi kênh có một
vector).
Nhóm 1 – Lớp 1101NWMG0411

tin về các thiết bị và địa chỉ của các hàm hỗ trợ những nghi thức và dịch vụ mạng
khác nhau. Nhữõng hàm này chủ yếu tập trung vào việc chuyển dữ liệu sử dụng các
thiết bị mạng. các thiết bị sử dụng các cơ chế hỗ trợ mạng chuẩn để chuyển dữ liệu
nhận được cho lớp nghi thức thích hợp. Tất cả các gói dữ liệu chuyển và nhận được
biểu diễn bởi cấu trúc sk_buff, đây là một cấu trúc linh động cho pháp các tiêu đề
(header) nghi thức mạng có thể dể dàng thêm vào hoặc loại bỏ.
Cấu trúc device lưu những thông tin về thiết bị mạng : tên, thông tin về đường
truyền, cờ trạng thái giao tiếp(mô tả các thuộc tính và khả năng của các thiết bị
mạng), thông tin về nghi thức, hàng đợi gọi tin(đây là hàng đợi của các gọi sk_buff
chờ chuyển dữ liệu trên thiết bị mạng đó), các hàm hỗ trợ (mỗi thiết bị cung cấp một
tập hợp các thủ tục chuẩn được gọi bởi lớp nghi thức).
2.2.4. Quản lý bộ nhớ thứ cấp
Vì mỗi từ nhớ trong bộ nhớ chính được truy xuất trực tiếp với thời gian rất
ngắn, giá thành của bộ nhớ chính tương đối cao. Do đó hầu hết các máy tính đều có
thêm các thiết bị lưu trữ (bộ nhớ phụ) tốc độ thấp, rẻ hơn và thường có dung lượng
lớn hơn nhiều. Cần hệ thống lưu trữ thứ cấp để lưu trữ bền vững các dữ liệu,
chương trình nên sử dụng bộ nhớ thứ cấp (secondary storage) để back up bộ nhớ
chính. Hầu hết các hệ thống máy tính hiện đại sử dụng các ổ đĩa như là các phương
tiện lưu trữ trực tuyến cơ sở cho các chương trình và dữ liệu.
2.3.Hoạt động mạng
Nếu say mê Internet, hẳn bạn đã nghe nói đến TCP/IP (Transmission Control
Protocol/Internet Protocol), bộ giao thức này cung cấp nền tảng phần mềm cho các
hệ thống mạng máy tính liên kết với nhau trên khắp Internet. Linux sử dụng bộ giao
thức chuẩn TCP/IP, bộ giao thức truyền thông Unix-Unix, thường được gọi là UUCP
(Unix to Unix Copy Protocol) - và nhiều phương thức truyền thông qua cổng tuần tự
khác.
Tính năng mạng của Linux rất linh động, cho phép cấu hình hệ thống mạng với
quy mô từ mạng SME LAN cho đến mạng cộng tác trải rộng khắp thế giới. Bạn cũng
Nhóm 1 – Lớp 1101NWMG0411
A

chỉ cần một card Ethernet, dây cáp thích hợp và một vài thiết bị mạng như hub
Ethernet.
Linux hỗ trợ nhiều card mạng Ethernet (như 3Com, D-Link, ), tự động nhận ra
cấu hình của card LAN vào lúc khởi động để khởi tạo lớp phần mềm giao tiếp mạng
theo đúng cấu hình này. Mỗi máy cần có một địa chỉ IP và tên máy chủ (host name)
riêng để giao tiếp với nhau trên mạng (điều này cũng giống như kiểu cấu hình được
sử dụng trên những mạng Windows).
2.4.Hệ thống bảo vệ
Đối với người dùng bình thường, vấn đề bảo mật hình như không ai quan tâm.
Họ chỉ quan tâm đến những chức năng họ có thể sử dụng. Nhưng sự nguy hiểm ở
đây là hầu hết máy tính cá nhân khi được cài đặt Windows người dùng mặc định
thường có quyền Adminisrator và người dùng cũng không nhận thức được điều đó,
với quyền Administrator chúng ta có toàn quyền đối với hệ thống chỉnh sửa cài đặt
bất cứ những gì mình thích. Một số người thấy thích điều đó vì có thể thoải mái
khám phá nhưng vô tình họ đã toang cánh cửa cho mọi nguy hiểm bên ngoài có thể
xâm nhập vào máy của mình.
Còn với Linux nói chung và Ubuntu nói riêng. Chỉ người dùng ban đầu được
tạo ra có quyền quản lý hệ thống. Tài khoản root mặc định được Disable (Các quản
lý hệ thống có kinh nghiệm rất thận trọng khi sử dụng tài khoản root).
Chúng ta chỉ có quyền với thư mục Home của mình hoặc các ổ lưu trữ ngoài,
định dạng FAT32 của phân vùng Windows. Nhưng với tài khoản ban đầu đó chúng
ta cũng có thể thực hiện được rất nhiều tác vụ quản lý hệ thống. Tuy nhiên mỗi thao
tác đều yêu cầu xác thực người dùng và Ubuntu cũng tạo ra các Session giống như
trên website tự động yêu cầu xác nhận mật khẩu sau 1 khoảng thời gian nhất định.
Khi đăng nhập trong chế độ dòng lệnh thì password cũng không được hiển thị
dưới dạng dấu *. Trong bản Ubuntu 8.04 một số thao tác như thay đổi định dạng
Nhóm 1 – Lớp 1101NWMG0411
A
p
r

line shell) là một chương trình máy tính có nhiệm vụ đọc các dòng lệnh văn bản
người dùng nhập vào và thông dịch nó trong ngữ cảnh của một hệ điều hành hay
một ngôn ngữ lập trình.
Các trình thông dịch dòng lệnh cho phép người dùng gọi các lệnh khác nhau
một cách hiệu quả (nhanh hơn sử dụng chuột). Điều này đòi hỏi người dùng biết tên
lệnh và các tham số, cũng như cú pháp của ngôn ngữ được thông dịch. Từ thập kỷ
1960 trở đi, tương tác giữa người dùng với máy tính chủ yếu qua các giao diện dòng
lệnh. Từ những năm 1970, giao diện đồ họa người dùng (GUI) bắt đầu được nghiên
cứu để cung cấp một giao diện khác, trong đó các lệnh được biểu diễn bằng các
hình ảnh thay cho các miêu tả bằng chữ. Do dễ học hơn các giao diện dòng lệnh,
giao diện đồ họa đã trở thành cách phổ thông nhất để người dùng tương tác với
máy tính. Tuy nhiên, các chương trình thông dịch dòng lệnh vẫn được sử dụng rộng
rãi cùng với giao diện đồ họa. Đối với một số tác vụ phức tạp, giao diện đồ họa kém
hiệu quả hơn do cần đến số lượng lớn trình đơn và hộp hội thoại, và bởi vì khó khăn
cố hữu của việc biểu diễn tác vụ đó bằng đồ họa.
Tất cả các trình thông dịch dòng lệnh đều là trình thông dịch của một ngôn ngữ
lập trình, dù trong nhiều trường hợp ngôn ngữ đó chỉ dùng cho trình thông dịch đó.
Đa số trình thông dịch dòng lệnh hỗ trợ lập trình bằng ngôn ngữ kịch bản (scripting
language).
Đối với Hệ điều hành Linux, nó sử dụng một trình thông dịch gọi là shell. Shell
là chương trình giữa bạn và Linux (hay nói chính xác hơn là giữa bạn với nhân
Linux). Mỗi lệnh bạn gõ ra sẽ được Shell diễn dịch rồi chuyển tới nhân Linux. Nói
một cách dễ hiểu Shell là bộ diễn dịch ngôn ngữ lệnh, ngoài ra nó còn tận dụng triệt
để các trình tiện ích và chương trình ứng dụng có trên hệ thống… Việc thao tác trực
tiếp tới kernel là rất phức tạp và đòi hỏi ký thuật cao, để trách sự phức tạp cho
Nhóm 1 – Lớp 1101NWMG0411
A
p
r
.

môi trường để tìm ra thông tin thực thi lệnh. Linux cung cấp cho bạn rất nhiều
chương trình Shell. Mở rộng ngôn ngữ kịch bản dùng lập trình Shell tuy nhiên
chúng không khác nhau mấy. Một khi đã quen thuộc với một Shell và cách hoạt
động của chúng bạn hoàn toàn có thể làm chủ được các Shell khác một cách dễ
dàng:
- Sh (Bourne): Shell nguyên thủy áp dụng cho UNIX.
- Csh, tcsh và zsh: Shell sử dụng cấu trúc lệnh của C làm ngôn ngữ script.
Được tạo ra đầu tiên bởi Bill Joy. Là Shell nổi tiếng và thông dụng thứ hai sau shell
bash.
- Bash: là Shell chủ yếu của Linux. Ra đời từ dự án GNU. Bash (Viết tắt của
Bourne Again Shell) có lợi điểm là mã nguồn được công bố rộng rãi- RC: Shell mở
rộng của csh với nhiều tương thích với ngôn ngữ C hơn. RC cũng ra đời từ dự án
GNU.
Chuẩn thường được các nhà phân phối Linux sử dụng hiện nay là bash Shell.
Khi cài đặt Linux, trình cài đặt thường mặc định bash là Shell khởi động. Bạn có thể
tìm thấy chương trình Shell này trong thư mục /bin với tên chương trình là bash
(lưu ý chương trình thực thi của Linux không cần phải mang định dạng .exe như
DOS). Bash đôi khi là một chương trình nhị phân (binary), đôi khi là một script gọi
đến liên kết nhị phân khác. Bạn có thể dùng lệnh file để xem bash là một tập tin nhị
phân hay script như sau: $ file /bin/bash. Nếu kết quả kết xuất là dạng ELF
thì có nghĩa là bash là chương trình nhị phân.
3. NHÂN HỆ ĐIỀU HÀNH (KERNEL)
Nhóm 1 – Lớp 1101NWMG0411
A
p
r
.

2
5

- Các tiến trình không thể truy cập tới những ứng dụng khác mà không phải
chờ đợi
b. Monolithic Kernel:
Với Monolithic thì khác, chúng có chức năng bao quát rộng hơn so với
microkernel, không chỉ tham gia quản lý bộ vi xử lý, bộ nhớ, IRC, chúng còn can
thiệp vào trình điều khiển driver, tính năng điều phối file hệ thống, các giao tiếp qua
lại giữa server Monolithic tốt hơn khi truy cập tới phần cứng và đa tác vụ, bởi vì
nếu 1 chương trình muốn thu thập thông tin từ bộ nhớ và các tiến trình khác, chúng
cần có quyền truy cập trực tiếp và không phải chờ đợi các tác vụ khác kết thúc.
Nhưng đồng thời, chúng cũng là nguyên nhân gây ra sự bất ổn vì nhiều chương
trình chạy trong chế độ supervisor mode hơn, chỉ cần 1 sự cố nhỏ cũng khiến cho cả
hệ thống mất ổn định.
Ưu điểm:
- Truy cập trực tiếp đến các phần cứng
- Dễ dàng xử lý các tín hiệu và liên lạc giữa nhiều thành phần với nhau
- Nếu được hỗ trợ đầy đủ, hệ thống phần cứng sẽ không cần cài đặt thêm
driver cũng như phần mềm khác
- Quá trình xử lý và tương tác nhanh hơn vì không cần phải chờ đợi
Nhược điểm:
- Tiêu tốn nhiều footprint cài đặt và lưu trữ
Nhóm 1 – Lớp 1101NWMG0411
A
p
r
.

2
5
1
Kiến trúc tổng quát về hệ điều hành Linux

Trong thư mục /boot còn có rất nhiều file quan trọng khác như, initrd.img-
version, system.map-version, và config-version. File initrd được dùng như 1 ổ đĩa
RAM để giải nén và kích hoạt các file kernel thực sự, còn file system.map được
dùng để quản lý bộ nhớ trước khi kernel được tải đầy đủ, và file config làm nhiệm vụ
thông báo cho kernel biết những lựa chọn hoặc module nào sẽ được nạp vào quá
trình hệ thống khởi động.
Cấu trúc file Linux Kernel
Nhóm 1 – Lớp 1101NWMG0411
A
p
r
.

2
5
1
Kiến trúc tổng quát về hệ điều hành Linux
Thực tế, Windows đã có tất cả các trình điều khiển sẵn có và người sử dụng
chỉ việc kích hoạt các trình điều khiển tương ứng để sử dụng. Và đó cũng chính là
nhiệm vụ các module kernel Linux đảm nhiệm, hay còn được gọi là loadable kernel
module (LKM), rất cần thiết để giữ các chức năng đi kèm với toàn bộ hệ thống phần
cứng hoạt động mà không ảnh hưởng đến bộ nhớ. 1 module thông thường sẽ gán
chức năng cơ bản tới các kernel như điều khiển driver, file hệ thống LKM có phần
đuôi mở rộng là .ko và được lưu trữ trong thư mục /lib/modules, người sử dụng
có thể thiết lập thuộc tính tự khởi động, cho phép tải hoặc không trong khi hệ điều
hành khởi động, bằng cách dùng lệnh menuconfig, can thiệp vào file /boot/config,
hoặc bằng cách sử dụng lệnh modprobe.
4. CÁC DỊCH VỤ CỦA HỆ ĐIỀU HÀNH
Trong hình mô tả các lớp của kernel, cho thấy lớp kernel nằm ngay bên dưới
lớp các trình ứng dụng của người dùng. Kernel thực hiện vô số các thao tác cơ bản

.

2
5
1
Kiến trúc tổng quát về hệ điều hành Linux
nhưng lại ẩn khuôn dạng đó đối với tập tin người dùng (user). Tương tự như vậy đối
với các dịch vụ hệ thống cung cấp cho các tập tin user dùng ở mức độ cấp người
dùng. Ví dụ dịch vụ hệ thống mà shell dùng để đóng vai trò là trình thông dịch lệnh:
cho phép shell đọc đầu vào từ t/b đầu cuối, phát sinh động các tập tin, đồng bộ việc
thực hiện các tập tin, tạo pipe, đổi hướng I/O. Người dùng cấu tạo các phiên bản
shell riêng mà không tác động tới những users khác. Các trình đó cùng dùng các
dịch vụ của kernel ở mức shell chuẩn.
4.4. Xác định và xử lý lỗi
Hệ điều hành liên tục yêu cầu nhận biết các lỗi có thể phát sinh. Các lỗi có thể
xảy ra trong CPU và phần cứng bộ nhớ (như lỗi bộ nhớ hay lỗi về điện), trong các
thiết bị xuất/nhập (như lỗi chẳn lẻ trên băng từ, lỗi nối kết mạng, hết giấy in) và trong
chương trình người dùng (như tràn số học, cố gắng truy xuất một vị trí bộ nhớ không
hợp lệ, dùng quá nhiều thời gian CPU). Đối với mỗi loại lỗi, hệ điều hành nên thực
hiện một hoạt động hợp lý để đảm bảo tính toán đúng và không đổi. Do Linux được
phát triển bởi hàng ngàn lập trình viên, họ công bố mã nguồn một cách rộng rãi, do
đó bất kì một ai quan tâm cũng có thể xem xét, bất kì một lỗi gì cũng có thể nhanh
chóng được khắc phục. Việc khắc phục lỗi như sau: Khi gặp lỗi người sử dụng có
thể tìm xem có bản sửa lỗi thì tải về, có thể đề nghị sửa lỗi với tác giả, nếu không
mang lại kết quả thì có thể tự sửa lấy. Các lỗi được khắc phục rất nhanh, có khi chỉ
trong vòng vài phút sau khi được thông báo. Có thể đổi hãng cung cấp linux nếu
muốn. Một bản linux thường được rất nhiều chuyên gia kiểm tra trước khi tung ra thị
trường.
4.5. Giao tiếp với người sử dụng
Mặc dù Linux là Hệ điều hành mạnh và phát triển, nhưng nếu chỉ làm việc qua

5
1
Kiến trúc tổng quát về hệ điều hành Linux
khác được dùng để xoá bảng đó. Các thủ tục này cũng có thể cấp phát các máy vẽ,
modem, các thiết bị ngoại vi khác.
* Tính toán: chúng ta muốn giữ vết người dùng nào sử dụng bao nhiêu và loại
tài nguyên máy tính nào. Giữ vết này có thể được dùng để tính toán (tính tiền người
dùng) hay đơn giản thống kê sử dụng. Thống kê sử dụng có thể là công cụ có giá trị
cho người nghiên cứu muốn cấu hình lại hệ thống để cải tiến các dịch vụ tính toán.
* Bảo vệ: người sở hữu thông tin được lưu trong hệ thống máy tính đa người
dùng muốn điều khiển thông tin này. Khi nhiều quá trình riêng rẻ thực thi đồng hành,
không thể cho một quá trình can thiệp tới các quá trình khác hay tới chính hệ điều
hành. Bảo vệ đảm bảo rằng tất cả truy xuất tài nguyên của hệ thống được kiểm
soát. An toàn hệ thống từ người dùng bên ngoài cũng là vấn đề quan trọng. An toàn
bắt đầu với mỗi người dùng có quyền đối với hệ thống, thường bằng mật khẩu để
được phép truy xuất tài nguyên. Mở rộng việc bảo vệ đối với các thiết bị xuất/nhập
bên ngoài, bao gồm modem, card mạng từ những truy xuất không hợp lệ, và ghi lại
các nối kết để phát hiện đột nhập vào hệ thống. Nếu hệ thống bảo vệ và bảo mật,
những cảnh báo phải được thiết lập xuyên suốt.
5. LỜI GỌI HỆ THỐNG
Một cuộc gọi hệ thống là một yêu cầu của một tác vụ đang chạy cho hạt nhân
để cung cấp một số loại dịch vụ thay mặt của nó. Nhìn chung, các dịch vụ hạt nhân
gọi bởi các cuộc gọi hệ thống bao gồm một lớp trừu tượng hóa giữa phần cứng và
người sử dụng không gian các chương trình, cho phép một lập trình để thực hiện
một môi trường hoạt động mà không cần phải chỉnh chương trình của mình (s) quá
đặc biệt để thương hiệu duy nhất hoặc kết hợp cụ thể chính xác các thành phần hệ
thống phần cứng. Hệ thống các cuộc gọi cũng phục vụ chức năng này khái quát trên
ngôn ngữ lập trình, ví dụ như, các cuộc gọi hệ thống đọc sẽ đọc dữ liệu từ một mô
tả tập tin. Để lập trình viên, điều này có vẻ giống như một chức năng C, nhưng trong
thực tế, mã để đọc được chứa trong hạt nhân.

Kiến trúc tổng quát về hệ điều hành Linux
không hợp lệ. Khi bạn ném một ngoại lệ, bạn đang thực hiện một loại cấu trúc "đi" từ
nơi trong chương trình của bạn, nơi các điều kiện bất thường đã được phát hiện đến
một nơi mà nó có thể được xử lý. xử lý ngoại lệ nên được đóng quân ở các cấp
module chương trình theo cách tổng quát một loạt các lỗi từng có khả năng xử lý
một cách mà khi xử lý vài trường hợp ngoại lệ có thể sẽ trải rộng một loạt các
trường hợp ngoại lệ như là sẽ được gặp phải trong lĩnh vực ứng dụng các chương
trình
Hệ thống Linux giao diện gọi là vector thông qua một stub trong libc (thường
glibc) và là độc quyền "đăng ký-parametered", tức là ngăn xếp không được sử dụng
cho truyền thông số. Mỗi cuộc gọi trong thư viện libc nói chung là một syscall X vĩ
mô, trong đó X là số các tham số được sử dụng bởi các thói quen thực tế. Trong
Linux, việc thực hiện các cuộc gọi hệ thống được gọi bằng một chuyển cấp
maskable ngắt hoặc ngoại lệ (ví dụ, "ném" một đối tượng ngoại lệ), gây ra bởi sự
giảng dạy trong các 0x80. 0x80 Vector được sử dụng để chuyển điều khiển cho hạt
nhân. Điều này vector ngắt được khởi tạo trong quá trình khởi động hệ thống, cùng
với vectơ quan trọng khác như các vector đồng hồ hệ thống.
Trong trường hợp nhiều thông số cần thiết, cơ cấu một số có thể được đặt bất
cứ nơi nào bạn muốn trong không gian địa chỉ của bạn và chỉ đến từ một đăng ký
(không phải là con trỏ chỉ lệnh, và cũng không ngăn xếp con trỏ, các chức năng hạt
nhân, không gian sử dụng ngăn xếp cho các tham số và biến cục bộ) .
Nhóm 1 – Lớp 1101NWMG0411
A
p
r
.

2
5
1

người dùng máy tính thì con số đó được gắn kết chặt trong một thứ mà người ta gọi
là “cộng đồng”.
Qua bà trình này này, hy vọng mọi người sẽ có một cách hiểu tổng quát và cơ
bản nhất về Hệ điều hành nói chung và Hệ điều hành Linux nói riêng, từ đó, nếu
thực sự đam mê và có khả năng, mọi người có thể tiếp tục phát triển và hoàn thiện
hơn nữa Hệ điều hành Linux, vẫn được coi là một Hệ điều hành của cộng đồng.
Nhóm 1 – Lớp 1101NWMG0411
A
p
r
.

2
5
1
Kiến trúc tổng quát về hệ điều hành Linux
NHỮNG TÀI LIỆU THAM KHẢO SỬ DỤNG TRONG BÀI THẢO LUẬN:
1. Ebook Tự học và sử dụng Linux – tác giả Phan Vĩnh Thịnh
2. Kiến trúc UNIX/Linux – đại học dân lập Thăng Long
3. Kiến thức tổng quan về Linux – đại học Công nghệ Thành phố Hồ Chí
Minh
4. Tổng quan về hệ điều hành – đại học Thương mại
5. Kiến thức chung về Hệ điều hành – www.hedieuhanh.forumvi.net
6. www.linuxviet.com
7. www.ddth.com
8. www.hoclinux.net
9. www.nhipsongso.vn
10.www.vn-zoom.com
11. www.ubuntu-vn.org
Nhóm 1 – Lớp 1101NWMG0411


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status