Mô-đun nhân cho phép một hệ thống Linux để được thiết lập với một tiêu chuẩn, tối thiểu nhân, mà không có thêm bất kỳ trình điều khiển thiết bị trong xây dựng Ba thành phần mô-đun để
Trang 1Chương 21: Hệ thống linux
Hồ Viết Vỹ Nguyễn Thanh Phúc Huỳnh Vũ Quốc Thắng
Trang 3Mục đích
Để tìm hiểu lịch sử của hệ điều hành unix, từ đó xem hoạt động của hệ thống linux
được bắt nguồn và những nguyên tắt nào linux được thiết kế ở trên
Để kiểm tra các môdun tiến trình của linux và giải thích như thế nào về các bản
phân phối tiến trình của linux và cung cấp các bộ xử lí truyền thông
Xem xét việc quản lý bộ nhớ trong linux
Để tìm hiểu cách để thực hiện các tập tin của một hệ thống và các cách để hệ
thống quản lý thiết bị vào /ra
Trang 4 Lịch sử của linux đã được một trong số sự hợp tác của nhiều người
sử dụng từ tất cả các nơi trên thế giới, tương thích hầu hết được trên internet.
Linux được thiết kế để chạy hiệu quả và đáng tin cậy trên phần cứng của pc phổ biến , nhưng củng chạy trên một số loại nền tảng khác.
Phần lõi của hệ điều hành linux chứa nhân là hoàn toàn bản gốc, nó
có thể chạy được nhiều phần mềm, sẳn có, miễn phí của UNIX, kết quả là trong toàn bộ UNIX-sự tương thích hệ điều hành miễn phí từ
mã thuộc quyền sở hữu riêng biệt.
Có nhiều bản phân phối linux khác nhau bao gồm kernel, các ứng
dụng và các công cụ quảng lý
Trang 5 Linux 1.0 (3/ 1994) bao gồm các tính năng mới :
hỗ trợ cho UNIX tiêu chuẩn của TCP/IP với các giao thức mạng
BSD- tương thích các ổ cắm cho các giao diện mạng lập trình
Các thiết bị điều khiển hổ trợ cho IP chạy trên một Ethernet
Nâng cấp tập tin của hệ thống
Hổ trợ một số các loạibộ điều khiễn SCSI cho việc truy cập đĩa với hiệu suất cao
Hỗ trợ thêm cho phần cứng
Phiên bản 1.2 (tháng 3/1995) PC cuối cùng chỉ có kernel của
linux.
Trang 6Linux 2.0
Phát hành vào tháng sáu 1996, 2.0 cập nhật mới lớn hai khả
năng:
Hỗ trợ cho kiến trúc đa
Hỗ trợ cho nhiều kiến trúc, bao gồm cả một đầy đủ 64-bit
native Alpha cảng
Nâng cao chất lượng quản lý bộ nhớ-mã
Những tính năng mới bao gồm:
Cải thiện TCP / IP hiệu suất
Hỗ trợ cho các khâu nội hạt nhân, để xử lý phụ thuộc giữa các loadable module, và cho tự động tải các mô-đun theo yêu cầu
Chuẩn hóa cấu hình giao diện
Có sẵn cho Motorola 68000-loạt xử lý, các hệ thống SPARC
Chủ Nhật, và cho các hệ thống máy PC và PowerMac
2,4 và 2,6 tăng khả năng hỗ trợ SMP, journal được thêm vào
hệ thống tập tin, preemptive hạt nhân, 64-bit, hỗ trợ bộ nhớ
Trang 7Các hệ thống Linux
Linux sử dụng nhiều công cụ phát triển như là hệ điều hành bộ phận của BSD berkeley, MIT có X hệ thống Window, và dự án phần mềm miễn phí Foundation's GNU.
Những thư viện hệ thống nhỏ được bắt đầu với dự án GNU , với những cãi tiến sau đó do toàn thể linux cung cấp
Hoạt động mạng Linux -sự quản lí các công cụ nhận được từ
mã 4.3BSD; BSD gần đây bắt nguồn từ BSD miễn phí có thể mượn mã từ Linux trong sự trở lại
Hệ thống linux được bảo trì bỡi mạng máy tính nhỏ của người phát triễn công tác qua Internet, với một số các FTP công cộng hoạt động như đã đạt tiêu chuẫn de facto
Trang 8Bản phân phối Linux
Tiêu chuẩn, precompiled tập hợp các gói, hoặc những phân
phối,bao gồm hệ thống linux cơ bản , những tính năng có ích
được sắp xếp và quản lí hệ thống , và sẵn sàng hướng tới- cài đặt những gói của những công cụ UNIX chung
Những phân phối đầu tiên quản lí những gói bỡi đơn giản chỉ
cung cấp những phương tiện của việc mở tất cả các tập tin vào trong những chổ thích hợp nhất; hiện đại của những phân phối bao gồm các gói phần mềm quản lí cao cấp
Những phân phối sớm bao gồm SLS and Slackware
Red Hat và Debian, được phân phối phổ biến từ thương mại
và các nguồn Noncommercial, tương ứng
RPM trọn gói các tệp tin định dạng cho phép tính tương giữa các bản phân phối Linux khác nhau
Trang 9Đăng kí Linux
Nhân Linux được phân phối theo bảng đăng kí Công cộng GNU (GPL), các điều
khoản trong đó được đặt ra bởi Free Software Foundation
Bất cứ ai sử dụng Linux, hoặc tạo cho mình dẫn xuất dựa trên phần mềm Linux, có
thể không làm các dẫn xuất tạo sản phẩm cho riêng mình ; phần mềm phát hành dưới GPL có thể không được redistributed như là một nhị phân- chỉ có sản phẩm
Trang 10 Mục đích thiết kế chính là tốc độ, hiệu quả, và các tiêu chuẩn hóa.
Linux được thiết kế để có thể tuân thủ với các tài liệu liên quan posix; ít nhất hai phân phối Linux đạt được chính thức cấp giấy chứng nhận posix
Linux giao diện lập trình tuân thủ SVR4 UNIX semantics, hơn là hướng tới BSD
behavior
Trang 11Thành phần của một hệ thống Linux
Trang 12Thành phần của một hệ thống Linux (tiếp.)
Giống như hầu hết các cách triển khai UNIX, Linux gồm ba cơ quan chính của mã; sự phân biệt quan trọng nhất giữa các hạt nhân và tất cả các thành phần khác
Nhân có trách nhiệm duy trì abstractions quan trọng của hệ điều hành
Mã thực hiện nhân trong chế độ với đầy đủ quyền truy cập vào tất
cả các nguồn tài nguyên vật lý của máy tính
Tất cả các hạt nhân và mã cấu trúc dữ liệu được giữ lại, trong cùng một địa chỉ duy không gian
Trang 13Thành phần của một hệ thống Linux (tiếp.)
Hệ thống thư viện xác định một tiêu chuẩn của chức năng đó thông qua các ứng
dụng tương tác với nhân, và đó thực hiện nhiều hoạt động của hệ thống-chức
năng mà không cần phải có đầy đủ đặc quyền hạt nhân của mã
Các tiện ích hệ thống quản lý chuyên môn, cá nhân thực hiện nhiệm vụ
Trang 14 Mô-đun nhân cho phép một hệ thống Linux để được thiết lập với một tiêu chuẩn, tối thiểu nhân, mà không có thêm bất kỳ trình điều khiển thiết bị trong xây dựng
Ba thành phần mô-đun để Linux hỗ trợ:
Phân hệ quản lý
Đăng kí bộ điều khiển
Trang 15Quản lý mô đun
Hỗ trợ mô-đun tải vào bộ nhớ và cho phép chúng trao
đổi với phần còn lại của nhân
Mô-đun tải được tách ra làm hai phần riêng biệt:
Quản lý các phần mã của mô-đun nhân trong bộ nhớ
Xử lý các biểu tượng mô-đun được cho phép để tham chiếu
Các mô-đun tải được quản lý theo các yêu cầu, trừ khi là hiện thời được unloaded, những mô-đun; nó cũng thường xuyên truy hỏi nhân để xem liệu một cách năng động nạp
mô-đun vẫn còn sử dụng, và sẽ unload nó khi nó không
còn tính tích cực cần thiết
Trang 16Đăng kí bộ điều khiển
Cho phép các mô-đun trao đổi các phần còn lại của nhân để tại một bộ điều khiển mới
đã trở thành có sẵn
nhân duy trì các bảng động của tất cả các bộ điều khiển được biết, và cung cấp một
bộ các thủ tục để cho phép bộ điều khiển sẽ được đưa vào hoặc xoá khỏi các bảng
bất kỳ lúc nào
Bảng đăng ký bao gồm các phần sau:
bộ điều khiển thiết bị
Hệ thống tập tin
Mạng lưới giao thức
Khuôn dạng Nhị phân
Trang 17Giải quyết xung đột
Một cơ chế cho phép những bộ điều khiển thiết bị khác đó.
nhau dự trữ những tài nguyên phần cứng và để bảo vệ các
nguồn tài nguyên đó tránh khỏi việc ngẫu nhiên sử dụng bởi
bộ điều khiễn khác
Giải quyết xung đột các mô-đun nhằm mục đích:
Ngăn chặn các mô-đun xung đột lẫn nhau để truy cập
nguồn tài nguyên phần cứng
Ngăn chặn autoprobes từ xen vào với các thiết bị hiện có của bộ điều khiển
Giải quyết xung đột với các bộ điều khiển cố gắng để truy cập vào cùng một phần cứng
Trang 18Quản lý tiến trình
Quản lý tiến trình UNIX được tạo thành từ những tiến trình và hoạt động của một
chương trình mới vào hai thao tác sau
Lời gọi hệ thống tạo ra một tiến trình mới
Một chương trình mới chạy sau khi gọi đến execve
Dưới UNIX, một quá trình bao gồm tất cả các thông tin mà các hệ điều hành phải duy trì theo dõi các bối cảnh của một chương trình thực hiện
Dưới Linux, xử lý tài nguyên rơi vào ba nhóm: sự phân biệt tiến trình, môi trường, và
ngữ cảnh
Trang 19Tiến trình đồng nhất
Tiến trình ID (PID) Nhận biết duy nhất cho các tiến trình; được sử dụng để chỉ định các tiến trình cho các hệ điều hành khi một ứng dụng làm cho một hệ thống gọi để báo hiệu, sửa đổi, hoặc chờ đợi cho một tiến trình khác
Khả năng Mỗi tiến trình phải có một liên kết người sử dụng ID và một hoặc nhiều nhóm ID xác định rằng tiến trình của hệ thống
quyền để truy cập nguồn tài nguyên và file
Cá nhân Không theo truyền thống dựa trên các hệ thống UNIX, nhưng dưới linux mỗi tiến trình liên kết định danh riêng có thể sửa đổi các semantics của một số hệ thống các lời gọi
Được sử dụng chủ yếu do các đòi hỏi các thư viện để yêu cầu hệ thống các lời gọi tương thích với những đặc tính riêng của UNIX
Trang 20Môi trường tiến trình
Môi trường của tiến trình là vốn kế thừa từ các bậc trước nó, và bao gồm hai giá trị NULL-giới hạn bởi các vector:
Đối số véc tơ danh sách các đối số dòng lệnh-được sử dụng
để gọi các chương trình đang chạy; conventionally bắt đầu với tên của chương trình chính nó
Môi trường véc tơ là một danh sách các “tên=giá trị" những cặp liên kết các biến môi trường có tên gắn với các giá trị văn bản độc quyền
Qua các biến môi trường trong quá trình và các biến con thừa
kế theo một tiến trình linh hoạt, để truyền các phương tiện
thông tin qua các thành phần của người sử dụng-chế độ hệ
thống phần mềm
Môi trường-cung cấp một cơ chế biến tuỳ theo yêu cầu của hệ điều hành có thể được đặt trên một cơ sở cho mỗi lần tiến trình, chứ không phải là đang được định cấu hình cho hệ thống như
là một toàn bộ
Trang 21 Nhân bảo trì thông tin về những tài nguyên hiện thời được
dùng bỡi mỗi tiến trình và toàn bộ tài nguyên dùng bỡi qúa
trình trong suốt thời gian thực hiện
Bảng tập tin là một mảng của các con trỏ tới những cấu trúc tập tin nhân
Khi được gọi bỡi tập tin của hệ thống I/O, tiến trình đề cập đến tập tin được chĩ số trong bảng của nó.
Trang 22Ngữ cảnh tiến trình (tiếp)
Hiện nay gốc và thư mục mặc định sẽ được sử dụng cho các tập tin mới tìm kiếm được lưu trữ đây
Trong khi đó, các tập tin bảng danh sách hiện có mở các tập tin, các
hệ thống tập tin bối cảnh áp dụng cho các yêu cầu mới để mở file
Các tín hiệu-handler bảng định nghĩa thông thường trong quá trình địa chỉ của không gian
để được gọi là tín hiệu cụ thể khi đến nơi
Bộ nhớ ảo trong bối cảnh của một quy trình mô tả đầy đủ nội dung của tư nhân của nó không gian địa chỉ
Trang 23Những tiến trình và luồng
Một phân biệt chỉ làm cho thread khi mới được tạo ra bởi các
cuộc gọi hệ thống clone
Linux sử dụng cùng một nội đại diện cho các quy trình và
khâu; là một sợi chỉ đơn giản là một quá trình mới sẽ xảy ra
để chia sẻ cùng một địa chỉ không gian như là cha mẹ
Sự phân cấp mới tạo ra một quy trình riêng của mình với
quá trình bối cảnh hoàn toàn mới
Kế thừa tạo ra một quy trình mới với bản sắc riêng của
mình, nhưng đó là được cho phép để chia sẻ dữ liệu, cấu
trúc của các bậc cha mẹ
Kế thừa bằng cách sử dụng cho một ứng dụng fine-grained
kiểm soát chính xác những gì được chia sẻ giữa hai khâu
Trang 24 Chạy hạt nhân nhiệm vụ bao gồm cả các công việc mà được yêu cầu bởi một quá
trình chạy và thực hiện các công việc mà nội bộ thay mặt cho một thiết bị điều khiển
Như của 2.5, thuật toán mới lịch - preemptive, ưu tiên dựa trên
Phạm vi thời gian thực
giá trị tốt đẹp
Trang 25Mối quan hệ giữa các ưu tiên và Thời
gian-slice Length
Trang 26Danh sách các công việc do Indexed Ưu tiên
Trang 27Đồng Bộ Hóa nhân
Một yêu cầu cho hạt nhân-thực hiện chế độ có thể xảy ra trong hai cách sau:
Một chương trình chạy có thể yêu cầu một hệ điều hành dịch vụ, hoặc rõ ràng thông qua một hệ thống gọi, hoặc implicitly, ví dụ, khi một trang lỗi xảy ra
Một trình điều khiển thiết bị phần cứng tháng năm cung cấp một nguyên nhân gây
gián đoạn mà các bộ xử lý trung tâm để bắt đầu thực hiện một hạt nhân-handler định nghĩa cho rằng gián đoạn
Đồng bộ hóa hạt nhân đòi hỏi một khuôn khổ này sẽ cho phép các hạt nhân quan
trọng để chạy các phần gián đoạn của người khác mà không có phần quan trọng
Trang 28Đồng bộ hóa nhân (tiếp.)
Linux sử dụng hai kỹ thuật để bảo vệ các phần quan trọng:
1 Bình thường hạt nhân là mã nonpreemptible (cho đến khi 2,4) -Khi một thời gian gián đoạn là một quá trình nhận được trong khi thi hành một hạt nhân là hệ thống dịch vụ thông thường, hạt nhân của need_resched cờ được thiết lập để các thành
Scheduler sẽ chạy một khi hệ thống gọi đã hoàn thành và kiểm soát được về để được trả lại cho người sử dụng chế độ
2 Thứ hai, kỹ thuật áp dụng cho các phần quan trọng xảy ra
trong một gián đoạn dịch vụ thói quen
-Bằng cách sử dụng bộ xử lý của gián đoạn kiểm soát phần
cứng interrupts để vô hiệu hoá trong khi một phần quan trọng, hạt nhân đảm bảo rằng nó có thể tiến hành mà không có nguy
cơ concurrent truy cập của chia sẻ dữ liệu cấu trúc
Trang 29Đồng bộ hóa nhân (tiếp)
Gián đoạn dịch vụ thói quen được cách ra vào một nửa đầu
trang và một nửa dưới.
Để tránh những hình phạt hiệu quả hoạt động, hạt nhân của
Linux sử dụng một kiến trúc mà cho phép đồng bộ hóa lâu để chạy các phần quan trọng mà không cần phải vô hiệu hóa interrupts cho các phần quan trọng của toàn bộ thời giai
Trên cùng là một nửa bình thường gián đoạn dịch vụ thông thường, và chạy với recursive interrupts khuyết tật
Nửa dưới là chạy, với tất cả các interrupts kích hoạt, bởi một Scheduler nhỏ mà đảm bảo rằng không bao giờ gián đoạn cuối Halves mình
Kiến trúc này được hoàn thành bởi một cơ chế để vô hiệu hoá được lựa chọn dưới Halves trong khi thi hành bình thường, hạt nhân foreground mã
Trang 30Danh sách các công việc do Indexed Ưu tiên
Trang 31Gián đoạn mức độ bảo vệ
Mỗi cấp độ có thể bị gián đoạn bởi mã chạy ở một mức độ cao hơn, nhưng sẽ không bao giờ bị gián đoạn bởi mã chạy ở cùng một hoặc một cấp độ thấp hơn
Những quá trình người sử dụng luôn luôn được làm trước bởi quá trình khác nhau khi một sự chia sẻ thời gian gián đoạn xảy ra
Trang 32
Lập chương trình tiến trình
Linux sử dụng hai quá trình thuật toán:
Một thời gian-chia sẻ thuật toán cho lập sự yêu tiên được công bằng giữa nhiều quá trình
Một thời gian thực thuật toán, nơi tuyệt đối cho các nhiệm vụ ưu tiên quan trọng hơn là công bằng
Một sự lập chương trình tiến trình của lớp đó xác định thuật toán để áp dụng
Chia sẻ thời gian cho các quy trình, Linux sử dụng một ưu tiên, dựa trên thuật toán tin cậy
Công thức:
những nhân tố của cả lịch sử quá trình và sự yêu tiên của nó
Những hệ thống tự động tin cậy này quy định các yếu tố trong cả quá trình của lịch sử và các ưu tiên priority
2
credits :
Trang 33Lập chương trình tiến trình(tiếp)
Công cụ FIFO vàb ản thời gian thực lập các lớp trong
cả hai trường hợp, từng có một quá trình ưu tiên, thêm vào tạo ra lớp của nó
Bản lập trình chạy tiến trinh với các ưu tiên cao nhất; bằng-ưu tiên cho các quy trình, nó chạy quá trình đợi dài nhất
FIFO quá trình tiếp tục chạy cho đến khi chúng thoát hoặc ra khỏi khối
Một quá trình sẽ được làm sau một thời gian và di
chuyển tới khi kết thúc của sự tạo ra hàng đợi, vì vậy những bản quá trình của sự yêu tiên chia sẻ thời
gian tự động giữa bản thân chúng
Trang 34Đa xử lí cân đối
Linux 2.0 là nhân Linux đầu tiên để hỗ trợ phần cứng SMP; Những quá trình riêng biệt hoặc những luồng có thể được thực thi song song trên những bộ vi xử lí riêng biệt
Để giữ gìn những yêu cầu đồng bộ hoá nonpreemptible, SMO lợi dụng sự hạn chếqua một nhân đơn spinlock, đó chỉ là một bộ vi xử lí tại một thời điểm có thể được thực
hiện mã chế độ nhân
Trang 35Quản lý bộ nhớ
Hệ thống quản lí bộ nhớ vật lý của Linux giải quyết việc phân bổ và giải phóng các
trang, nhóm của các trang, và nhưng khối nhỏ bộ nhớ
Nó có thêm cơ chế để xử lý bộ nhớ ảo, bộ nhớ ánh xạ vào không gian địa chỉ của
quá trình chạy
Tách bộ nhớ thành 3 khu vực khác nhau do đặc điểm phần cứng