Bài giảng Hệ điều hành: Hệ điều hành Linux
lượt xem 19
download
Chương này giới thiệu về hệ điều hành Linux. Mục tiêu của chương học này là khảo sát lịch sử hệ điều hành Unix, nguồn gốc của Linux và một số nguyên tắc bắt buộc để thiết kế Linux; nghiên cứu mô hình xử lý Linux bằng việc minh họa cách định thời các quá trình và cung cấp truyền thông liên quá trình; Xem xét cách quản lý bộ nhớ trong Linux;... Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Hệ điều hành: Hệ điều hành Linux
- 4. Hệ điều hành Linux 21.1
- Hệ điều hành Linux n Lịch sử Linux n Nguyên tắc thiết kế n Lập trình Kernel Modules n Quản lý quá trình n Định thời n Quản lý bộ nhớ n Hệ thống file n Hệ thống xuất nhập (I/O) n Truyền thông liên quá trình n Cấu trúc mạng n Bảo mật 21.2
- Mục tiêu n Khảo sát lịch sử hệ điều hành Unix - nguồn gốc của Linux và một số nguyên tắc bắt buộc để thiết kế Linux n Nghiên cứu mô hình xử lý Linux bằng việc minh họa cách định thời các quá trình và cung cấp truyền thông liên quá trình. n Xem xét cách quản lý bộ nhớ trong Linux n Tìm hiểu xem Linux hiện thực hệ thống file và quản lý các thiết bị xuât nhập như thế nào 21.3
- Lịch sử n Linux là một hệ điều hành tiên tiến và miễn phí dựa trên tiêu chuẩn Unix n Ban đầu Linux phát triển nhỏ. Đến năm 1991 Linus Torvalds kết hợp thêm kernel(nhân) với mục đích chính là có khả năng thích hợp với Unix n Lịch sử cho thấy Linux là sự cộng tác của nhiều người sử dụng trên toàn thế giới, hầu hết họ trao đổi đều qua internet n Linux được thiết kế để có thể chạy hiệu quả trên những phần cứng máy tính thông thường, hơn nữa Linux còn có thể chạy trên nhiều nền phần cứng khác. n Nòng cốt của hệ điều hành Linux kernel là toàn bộ nguyên bản, nhưng nó có thể chạy nhiều phần mềm Unix miễn phí, đó là kết quả của việc tích hợp code để có thể thích hợp Unix. n Thêm vào đó, thay đổi Linux bao gồm cung cấp thêm kernel, các ứng dụng, và các công cụ quản lý 21.4
- The Linux Kernel n Phiên bản 0.01 (5-1991) không có mạng, chỉ có thể chạy trên 80386- tương thích với vi xử lý intel và trên phần cứng máy tính, đặc biệt bị giới hạn trong giao tiếp device-drive, và chỉ cung cấp cho hệ thống file Minix n Linux 1.0 (3-1994) có thêm một số tính năng mới: l Hỗ trợ thêm giao thức mạng TCP/IP theo chuẩn UNIX l Các chương trình mạng được hỗ trợ giao tiếp socket tương thích BCD l Hỗ trợ giao tiếp Device-driver để có thể chạy IP trong mạng Ethernet l Tăng cường hệ thống file l Hỗ trợ cách sắp xếp cho điều khiển SCSI giúp tăng hiệu quả truy xuất đĩa. l Hỗ trợ thêm phần cứng n Phiên bản 1.2 (5-1995) là bản Linux kernel cho PC cuối cùng 21.5
- Linux 2.0 n 6-1996, 2.0 thêm 2 tính năng mới: l Hỗ trợ thêm cấu trúc phức tạp, bao gồm cồng Alpha 64-bit l Hỗ trợ cấu trúc đa vi xử lý. n Các tính năng khác: l Cải thiện mã quản lý bộ nhớ l Cải thiện hiệu suất TCP/IP l Hỗ trợ vào nhân(kernel) sơ cấp các luồng, và tự động nạp các module theo yêu cầu l Giao diện cấu hình chuẩn n Được dùng cho Motorola 68000-series vi xử lý, hệ thống Sun Sparc, PC và hệ thống PowerMac n 2.4 và 2.6 tăng thêm hỗ trợ SMP, thêm nhật ký trong hệ thống file, ưu tiên kernel, hỗ trợ bộ nhớ 64-bit 21.6
- Hệ thống Linux n Linux dùng nhiều công cụ giống như: hệ thống Berkeley’s BSD,hệ thống MIT’s X Window, và dự án Free Software Foundation's GNU n Một thư viện nhỏ được bắt đầu bằng dự án GNU, và cộng đồng Linux đã dần dần cải thiện. n Mạng Linux-công cụ quản lý được bắt nguồn từ mã 4.3BSD; Nguồn gốc của mã BSD gần đây như Free BSD đã mượn lại từ bảng mã này của Linux n Các hệ thống Linux được duy trì bởi một mạng lưới lỏng lẻo của các cộng tác trên Internet, với một số lượng nhỏ của các trang web công cộng hoạt động với tiêu chuẩn thực tế 21.7
- Linux Distributions n Tập hợp các gói trước khi biên dịch hay distributions, bao gồm hệ thống Linux cơ bản, cài đặt hệ thống, quản lý tiện ích và cơ chế sẵn sàng để cài đặt các gói của công cụ tiện ích n Các phân phối đầu tiên quản lý các gói bằng cách đơn giản là cung cấp phương tiện để bung tất cả các tập tin vào nơi thích hợp; các phân phối sau này bao gồm các gói quản lý nâng cao n Mỗi nhà phân phối bao gồm SLS và Slackware l Red Hat và Debian là các nhà phân phối phổ biến bao gồm các nguồn thương mại và không thương mại n Gói định dạng file RPM cho phép tích hợp giữa các nhà phân phối Linux 21.8
- Giấy phép Linux n Nhân Linux được phân phát bởi GNU General Public License (GPL), các điều khoản trong đó được đặt ra bởi Free Software Foundation n Bất cứ ai sử dụng Linux, hay tạo ra các ứng dụng của Linux, có thể làm mất nguồn gốc của các sản phẩm độc quyền; phần mềm phát hành dưới GPL có thể không được cấp phát lại như là sản phẩm binary-only 21.9
- Nguyên tắc thiết kế n Linux là một hệ thống đa tác vụ, đa người dùng với tập hợp các công cụ thích hợp với Unix n Các hệ thống tập tin của nó tôn trọng triệt để UNIX semantic truyền thống , và nó thực hiện đầy đủ các tiêu chuẩn mô hình mạng UNIX n Mục tiêu thiết kế chính là tốc độ, hiệu quả và tiêu chuẩn hóa n 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 có hai phân phối Linux đã chính thức được cấp giấy chứng nhận posix. Giao diện lập trình Linux tuân thủ SVR4 UNIX semantics, hơn là để hoạt động BSD. 21.10
- Các thành phần hệ thống Linux 21.11
- Các thành phần hệ thống Linux(Cont.) n Giống như hiện thực UNIX, code tạo thành Linux gồm có 3 phần chính; quan trọng nhất là sự khác biệt giữa nhân(kernel) và các phần khác n Kernel có trách nhiệm duy trì những phần trừu tượng quan trọng của hệ điều hành. l Kernel code thực thi trong chế độ kernel với khả năng truy xuất đến tất cả các tài nguyên vật lý của máy tính l Tất cả các mã kernel và cấu trúc giữ liệu được giữ trong cùng một không gian địa chỉ đơn 21.12
- Các thành phần hệ thống Linux(Cont.) n Hệ thống thư viện định nghĩa một tập hợp chuẩn các hàm,thông qua các hàm này các ứng dụng có thể tương tác với nhân, và hiện thực một số chức năng của hệ điều hành, mà không cần ưu tiên qua mã kernel. n system utilities thực thi các thao tác quản lý chuyên dụng cá nhân 21.13
- Kernel modules n Những phần của mã kernel có thể được biên dịch, load, và unload không phụ thuộc vào những phần còn lại của kernel. n Kernel module có thể thực thi trình điều khiển thiết bị, file hệ thống, hay một giao thức mạng. n Giao diện module cho phép người sử dụng thứ 3 viết và phân phát trong phạm vi giới hạn của họ,có thêm trình điều khiển thiết bị hay file hệ thống –chúng không được phân phối dưới dạng GPL n Kernel modules cho phép Linux được thiết lập theo một tiêu chuẩn,nhân nhỏ nhất mà không cần xây dựng thêm bất kỳ trình điều khiển thiết bị nào. n Linux module hỗ trợ 3 thành phần: l Quản lý module l Điều khiển đăng ký l Giải quyết mâu thuẫn 21.14
- Quản lý Module n Hỗ trợ việc nạp module vào bộ nhớ, cho phép chúng giao tiếp với các phần còn lại của kernel n Quá trình nạp module được chia thành 2 phần khác nhau: l Quản lý các đoạn mã module trong bộ nhớ nhân l Những module được phép tham khảo và trình bày tượng trưng n Module requestor quản lý các yêu cầu nạp dữ liệu; nó cũng liên tục hỏi nhân xem các module động đã được nạp vẫn còn sử dụng không, và khi không cần nữa module này sẽ được xóa 21.15
- Driver Registration (đăng ký bộ phận điều khiển) n Cho phép module nói với phần còn lại của nhân rằng có một drive mới vừa được thêm vào n Kernel duy trì một bảng động có lưu tất cả các driver, và cung cấp một tập hợp các routine cho phép các driver này thêm vào hay gõ bỏ ra khỏi bảng bất cứ lúc nào. n Bảng đăng ký bao gồm những phần sau: l Trình quản lý thiết bị l Hệ thống file l Giao thức mạng l Định dạng nhị phân 21.16
- Giải quyết mâu thuẫn n Là một kỹ thuật cho phép các tài nguyên khác nhau dành riêng các tài nguyên trong phần cứng và bảo vệ các tài nguyên này khỏi các tình huống bất ngờ được dùng từ các driver khác n Module giải quyết mâu thuẫn có mục đích: l Ngăn ngừa các va chạm khi các module truy xuất tài nguyên của phần cứng. l Ngăn ngừa sự quấy rối của các trình quản lý thiết bị đến autoprobes l Giải quyết các mâu thuẫn khi các driver cố gắng truy xuất vào cùng một phần cứng 21.17
- Quản lý tiến trình n Quản lý tiến trình Unix chia việc tạo quá trình và việc chạy các quá trình mới thành hai thao tác độc lập. l Câu lệnh fork để tạo quá trình mới l Một chương trình được chạy sau lời gọi: execve n Trong UNIX, một chương trình bao gồm tất cả các thông tin phải duy trì t track để chứa các bối cảnh của một hiện thực đơn trong quá trình đơn n Trong Linux, đặc tính của quá trình chia thành 3 nhóm: đặc tính của quá trình, môi trường, và bối cảnh. 21.18
- Đồng nhất tiến trình n ID của quá trình (PID). Định danh đơn cho quá trình; dùng cho những quá trình đặc biệt trong hệ điều hành khi một quá trình gọi một system call để signal, modify, hay wait một quá trình khác n Credentials. Mỗi quá trình phải có một ID liên hệ với người sử dụng và một hay nhiều nhóm ID có thể quyết định quyền truy xuất vào tài nguyên và file của hệ thống n Personality. Trong những hệ thống Unix thì không thể tìm thấy nhưng trong Linũ thì mỗi quá trình có một định danh liên kết cá nhân- mà nó có thể sửa các sematic của một số system call l Được sử dụng đầu tiên bởi các thư viện mô phỏng để yêu cầu các system call này thích hợp với một số tính năng của Unix 21.19
- Môi trường tiến trình n Môi trường tiến trình được thừa kế từ các tiến trình cha mẹ, và được soạn thảo thành 2 vector kết thúc bằng 0: l The argument vector lists the command-line arguments used to invoke the running program; conventionally starts with the name of the program itself l The environment vector is a list of “NAME=VALUE” pairs that associates named environment variables with arbitrary textual values n Qua các biến môi trường trong số các quá trình và các biến được thừa kế của tiến trình con, việc chuyển thông tin đến các phần của phần mềm hệ thống user-mode trở nên linh động n Biến môi trường cung cấp cơ chế tùy định của hệ điều hành. Cơ chế này được tạo ra ở mỗi quá trình, chứ không phải là định cầu hình hệ thống cho toàn bộ 21.20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Hệ điều hành: Chương 1 - Phạm Đăng Hải
113 p | 382 | 86
-
Bài giảng Hệ điều hành: Chương 1 - ThS. Hà Lê Hoài Thương
39 p | 182 | 33
-
Bài giảng Hệ điều hành Unix: Chương IV - Giới thiệu hệ điều hành Unix
57 p | 244 | 21
-
Bài giảng hệ điều hành : HỆ ĐIỀU HÀNH NÂNG CAO part 1
6 p | 102 | 15
-
Bài giảng Hệ điều hành: Chương 9 - ĐH Bách khoa TP HCM
56 p | 116 | 13
-
Bài giảng Hệ điều hành nâng cao - Chapter 19: Real - Time Systems
24 p | 101 | 13
-
Bài giảng Hệ điều hành: Tổng quan về hệ điều hành
67 p | 170 | 10
-
Bài giảng Hệ điều hành: Chương 1C - Cấu trúc hệ điều hành
22 p | 133 | 9
-
Bài giảng Hệ điều hành: Chương 1 - Nguyễn Phan Trung
43 p | 122 | 9
-
Bài giảng Hệ điều hành: Chương 1 - Phan Xuân Huy
25 p | 143 | 9
-
Bài giảng Hệ điều hành nâng cao - Chapter 2: Operating - System Structures
54 p | 176 | 9
-
Bài giảng Hệ điều hành: Hệ thống quản lý tập tin
82 p | 129 | 8
-
Bài giảng Hệ điều hành Unix-Linux: Chương 1 - Đặng Thu Hiền
20 p | 133 | 8
-
Bài giảng Hệ điều hành: Chương 1 - TS. Ngô Hữu Dũng
60 p | 122 | 7
-
Bài giảng hệ điều hành : HỆ ĐIỀU HÀNH NÂNG CAO part 3
6 p | 81 | 6
-
Bài giảng Hệ điều hành - Chương 1: Tổng quan hệ điều hành (Lương Minh Huấn)
109 p | 46 | 5
-
Bài giảng Hệ điều hành: Hệ thống tệp - ThS. Nguyễn Thị Hải Bình
17 p | 48 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn