Hỗ trợ
     Khách hàng
 ..................................................................
 ..................................................................
Phần mềm Linux

Kiến trúc hệ điều hành Unix/Linux

UL là hệ điều hành phân tầng. Lớp trong cùng là Hardware cung cấp những dịch vụ cho OS. Trong UL người ta thường đề cập tới Kernel như nhân của OS. Kernel tương tác trực tiếp với phần cứng và cung cấp các dịch vụ cho chương trình người sử dụng (User Program). Những chương trình người sử dụng không cần biết bất kỳ điều gì về phần cứng. Chúng chỉ cần biết làm thế nào để tương tác với Kernel và tác động lên Kernel để cung cấp dịch vụ mong muốn. Một trong những yêu cầu lớn nhất của người viết chương trình là viết những chương trình người sử dụng không phụ thuộc vào phần cứng và dễ dàng linh động với hệ thống mới.


1.1 - Tổng quan về kiến trúc UnixLinux - UL
UL là hệ điều hành phân tầng. Lớp trong cùng là Hardware cung cấp những dịch vụ cho OS. Trong UL người ta thường đề cập tới Kernel như nhân của OS. Kernel tương tác trực tiếp với phần cứng và cung cấp các dịch vụ cho chương trình người sử dụng (User Program). Những chương trình người sử dụng không cần biết bất kỳ điều gì về phần cứng. Chúng chỉ cần biết làm thế nào để tương tác với Kernel và tác động lên Kernel để cung cấp dịch vụ mong muốn. Một trong những yêu cầu lớn nhất của người viết chương trình là viết những chương trình người sử dụng không phụ thuộc vào phần cứng và dễ dàng linh động với hệ thống mới.
User Programs tương tác với Kernel qua một bộ tiêu chuẩn "System Call". Những System Call yêu cầu các dịch vụ được cung cấp bởi Kernel. Các dịch vụ như: Truy cập một file, thay đổi quyền sở hữu một file hoặc một thư mục, ...
UL là một hệ điều hành multi-user, multi-task. Có thể có nhiều user đăng nhập vào hệ thống cùng một lúc, chạy một chương trình hoặc nhiều chương trình. Nhiệm vụ của Kernel là giữ mỗi tiến trình và user độc lập đồng thời điều chỉnh việc truy nhập tới phần cứng hệ thống , như CPU, memory, disk, I/O devices.
Hình vẽ:


1. - User Application: Việc thiết lập các ứng dụng sử dụng trên một hệ thống Linux riêng biệt sẽ tương đối phụ thuộc vào hệ thống máy tính được sử dụng, chẳng hạn: Word-processing, web-browser, ...
2. - O/S Services: Gồm có những dịch vụ đáng tin cậy của OS (hệ thống cửa sổ, command shell, ...); Mặt khác các giao diện chương trình tác động tới Kernel (công cụ biên dịch và thư viện) cũng nằm trong subsystem này.
3. - Linux Kernel: Đây là phần chính nhất, Kernel tách biệt và dàn xếp việc truy cập tới các tài nguyên phần cứng, bao gồm CPU.
4. - Hardware: Subsystem này bao gồm hầu hết các thiết bị phần cứng được cài đặt trong Linux; Ví dụ: CPU, bộ nhớ, ổ đĩa, và thiết bị mạng đều là thành phần của subsystem này.
1.2 - Cấu trúc của các hệ thống con trong UL(subsystem):
1.2.1 - Kernel của UL - Nhiệm vụ của Kernel:
Linux Kernel thực thi một giao diện máy ảo đối với các tiến trình người sử dụng. Linux Kernel tổng hợp tất cả các phần cứng vào một giao diện ảo phù hợp. Thêm nữa, Linux hỗ trợ đa nhiệm theo một kiểu mà người sử dụng dễ hiểu: Từng tiến trình một có thể thực hiện, mặc dù nó là tiến trình duy nhất trên máy, loại trừ việc sử dụng bộ nhớ chính và các tài nguyên phần cứng khác. Kernel thực tế chạy nhiều tiến trình đồng thời và chịu trách nhiệm việc dàn xếp truy cập tới các tài nguyên phần cứng để cho từng tiến trình truy cập thuận lợi trong khi việc bảo mật trong các tiến trình vẫn được duy trì. Cụ thể:
1. - Quản lý thời gian: Gọi thời gian hệ thống, xác định thời gian CPU, ngắt tiến trình nếu thời gian thực hiện tiến trình đó là quá lâu.
2. - Quản lý tài nguyên: Như là bộ nhớ đĩa cứng...
3. - Quản lý hệ thống file: Có thể là các file, thư mục cục bộ hay từ xa...
4. - Quản lý các tiến trình thường trú (deamon).
5. - Quản lý bộ nhớ ảo: Để thực thi nhiều tiến trình đồng thời trong khi số lượng bộ nhớ có hạn, UNIX tổ chức bộ nhớ trên đĩa như là một vùng bộ nhớ (bộ nhớ ảo ). Kernel phải "swap" các tiến trình giữa bộ nhớ và bộ nhớ ảo.
6. - Quản lý tiến trình: UNIX là một hệ điều hành đa nhiệm, do đó việc quản lý tiến trình đồng thời rất phức tạp. Hệ điều hành phải quản lý việc khởi tạo và kết thúc các tiến trình cũng như các tranh chấp có thể xẩy ra.
7. - Quản lý các bộ điều khiển thiết bị.
8. - Quản lý mạng: Bao gồm nhiều thiết bị phần cứng khác nhau và các thủ tục khác.
9. - Quản lý việc khởi động và dừng máy.
1.2.2 - Cấu trúc của Kernel:

Kernel gồm 5 phần : Process scheduler(SCHED), Memory manager(MM), Virtual file system (VFS), Network interface(NET), Inter - process communication(IPC).
a) Process scheduler:
Là bộ phận trung tâm của hệ điều hành, có chịu trách nhiệm chia sẻ thời gian sử dụng CPU cho tất cả các tiến trình, các tiến trình bình thường cũng như các tiểu hệ thống.



Scheduler được chia thành 4 module:
1. - Module luật định thời (scheduling policy): chịu trách nhiệm phân xử xem process nào được quyền truy xuất CPU. Hệ thống hoạt động có thông suốt hay không nhờ vào bộ luật này, tránh trường hợp 1 process lợi dụng sơ hở của điều luật mà chiếm thời gian hệ thống qua nhiều làm các process khác bị đóng băng
2. - Module phụ thuộc kiến trúc (architeture-specific): Được thiết kế với một giao diện chung để tóm tắt chi tiết của bất kỳ kiến trúc máy tính cụ thể nào.Những module này gồm các mã assembly phụ thuộc vào mỗi loại CPU dùng để suspend hay assume process.
3. - Module độc lập kiến trúc (architeture-independent): Module này giao tiếp với module policy để quyết định tiến trình nào sẽ thực hiện tiếp. Sau đó module architeture-specific để resume tiến trình thích hợp. Thêm vào đó module này gọi memory manager để đảm bảo rằng hardware bộ nhớ được lưu trữ chính xác cho tiến trình được resume.
4. - Module hàm gọi hệ thống (system call): cho phép tiến trình người sử dụng truy nhập chỉ tới tài nguyên được export bởi kernel. Nó gồm các hàm mà user có thể dùng để tương tác với SCHED.
b) Cấu trúc Memory Manager (MM):
MM chịu trách nhiệm điểu khiển tiến trình truy xuất tài nguyên bộ nhớ phần cứng. Bản thân CPU cũng có một hệ thống quản lý bộ nhớ vật lý mà cho phép ánh xạ giữa bộ nhớ process với bộ nhớ vật lý. MM phải lưu trữ ánh xạ này cho từng process. Thêm vào đó MM còn cho phép swap; nó sẽ di chuyển những trang bộ nhớ không dùng xuống ổ cứng cho phép PC dùng bộ nhớ RAM còn trống.


MM có 3 module:
1. - Module phụ thuộc kiến trúc: code gọi các lệnh của hệ thống quản lý bộ nhớ của CPU
2. - Module độc lập kiến trúc: ánh xạ cho từng process và swap bộ nhớ ảo. Nó cũng quyết định xem phải remove trang nào , load trang nào. Các lập trình viên Linux không thiết kế 1 module policy riêng vì policy cho MM sẽ không thay đổi.
3. - System call cho phép các process tác động lên MM bao gồm xin cấp phát vùng nhớ.
c) Cấu trúc Vitual File Systems:
VFS thiết kế để thống nhất cách truy xuất tất cả các thiết bị phần cứng. Ngoài ra VFS còn chịu trách nhiệm load các chương trình thực thi.

VFS gồm 5 module:
- Các module thiết bị điều khiển, mỗi một phần cứng sẽ có 1 module thiết bị điều kiển riêng, cái này thường gọi là driver. Linux cũng như các hệ điều hành khác cho phép thêm vào 1 driver mới.
1. - Giao diện thiết bị độc lập: cung cấp thông tin phù hợp của tất cả các thiết bị.
2. - Hệ thống file logic: Trên thực tế có nhiều hệ thống fiel khác nhau, mỗi hệ thống file có một module điều khiển riêng.
3. - Giao diện độc lập hệ thống file: phân chia không những cho các loại file system mà còn cho tất cả các driver
4. - System call: Hỗ trợ điều khiển truy nhập tới file hệ thống cho tiến trình người sử dụng. Chứa các hàm gọi hệ thống cho VFS
d) Cấu trúc NET:
NET cho phép Linux kết nối với các hệ thống khác bằng mạng. Mạng gồm rất nhiều loại thiết bị và giao thức. NET tách biệt tất cả, cho phép những phần khác có thể truy xuất qua mạng mà không quan tâm đền các thiết bị và giao thức được sử dụng.


NET có 5 module:
1. - Module Driver cho thiết bị mạng: mỗi module cho mỗi loại thiết bị
2. - Module độc lập thiết bị: phân chia tất cả các thiết bị mạng
3. - Module giao thức mạng: mỗi module cho mỗi loại giao thức truyền
4. - Module độc lập giao thức mạng: phân chia cho tất cả các module giao thức mạng và các driver.
5. - System call : Hạn chế đưa ra những thủ tục mà tiến trình người sử dụng có thể truy nhập.
e) Inter-process communication
Cung cấp các phương tiện truyền thông giữa các tiến trình trong cùng hệ thống.

Tin tức khác
     Tin Vietsoftware
  VietSoftware khởi động gói dịch vụ CNTT VBiz dành cho Doanh nghiệp

  Kỳ vọng vào sự đổi mới từ các chính sách

  Hợp tác Nhà nước - doanh nghiệp CNTT: Lợi cả đôi đường

  VietSoftware ký hợp đồng cung cấp phần mềm ERP với Phúc Anh

  Chạy thử nghiệm thành công phần mềm kế toán trên Asianux Desktop
Cổng thông tin điện tử Công ty Cổ phần Phần mềm Việt (VietSoftware, Inc.)
Địa chỉ: Tầng 8, số 51 Lê Đại Hành, Hà Nội, Việt Nam
ĐT: (84-4) 3974 5699 Fax: (84-4) 3974 5700