Networks Business Online Việt Nam & International VH2

Nhân hệ điều hành – Wikipedia tiếng Việt

Đăng ngày 04 October, 2022 bởi admin
Nhân hệ điều hành liên kết ứng dụng ứng dụng với phần cứng máy tính .

Nhân hệ điều hành (tiếng Anh: Kernel) là một chương trình máy tính, là thành phần trung tâm và không thể thiếu của các hệ điều hành máy tính, kiểm soát hoàn toàn mọi thứ trong hệ thống.[1] Nó là “phần của mã hệ điều hành luôn thường trú trong bộ nhớ”[2] có nhiệm vụ quản lý các tài nguyên hệ thống (liên lạc giữa các thành phần phần cứng và phần mềm)[3]. Trong phần lớn các hệ thống, nó là chương trình đầu tiên được nạp vào trong quá trình khởi động máy tính (sau bootloader). Nó xử lý phần còn lại của khởi động cũng như các yêu cầu vào/ra từ phần mềm, chuyển chúng thành hướng dẫn xử lý dữ liệu cho cpu. Nó quản lý bộ nhớ và các thiết bị ngoại vi như: bàn phím, màn hình, máy in, và loa. Nhân hệ điều hành thường cung cấp các tiện ích xử lý này cho các tiến trình của các phần mềm ứng dụng qua các cơ chế liên lạc giữa các tiến trình (inter-process communication) và các lời gọi hệ thống (system call).

Các nhân khác nhau thực hiện các tác vụ của hệ điều hành theo các cách khác nhau, tùy theo thiết kế và cài đặt. Các nhân kiểu nguyên khối (Monolithic kernel) thực hiện các nhiệm vụ của mình bằng cách thực thi toàn bộ mã hệ điều hành trong cùng một địa chỉ bộ nhớ để tăng hiệu năng hệ thống. Trong khi đó các nhân loại nhỏ (Microkernel) chạy hầu hết các dịch vụ tại không gian người dùng (user space) với mục đích tăng khả năng bảo trì và tính mô đun của hệ điều hành. Có nhiều thiết kế nằm ở giữa hai thái cực này ví dụ như (Hybrid kernel) là nhân tự động phân luồng.

Mã lệnh quan trọng của hạt nhân thường được tải vào một vùng bộ nhớ riêng biệt, vùng này được bảo vệ khỏi sự truy cập của các chương trình ứng dụng hoặc các phần khác ít quan trọng hơn của hệ điều hành. Kernel thực hiện các nhiệm vụ của nó, chẳng hạn như chạy các tiến trình, quản lý các thiết bị phần cứng như đĩa cứng và xử lý các ngắt, trong kernel space được bảo vệ này. Ngược lại, các chương trình ứng dụng như trình duyệt, trình xử lý văn bản hoặc trình phát âm thanh hoặc video sử dụng một vùng bộ nhớ, không gian người dùng riêng biệt. Sự tách biệt này ngăn không cho dữ liệu của người dùng và dữ liệu hạt nhân can thiệp với nhau và gây ra sự mất ổn định và chậm chạp,[1] cũng như ngăn chặn các chương trình ứng dụng bị trục trặc làm hỏng toàn bộ hệ điều hành.

Giao diện của hạt nhân là một lớp trừu tượng mức thấp. Khi một tiến trình nhu yếu một dịch vụ tới hạt nhân, nó phải gửi một lời gọi mạng lưới hệ thống, thường là trải qua một hàm wrapper tiếp xúc với những ứng dụng khoảng trống người dùng bởi những thư viện hợp ngữ nhúng để truy nhập hạt nhân sau khi tải những thanh ghi CPU với số syscall và những tham số của nó ( ví dụ : hệ điều hành tương tự như UNIX thực thi trách nhiệm này bằng cách sử dụng thư viện chuẩn C ) .

Có các thiết kế kiến trúc nhân khác nhau. Hạt nhân monolithic chạy hoàn toàn trong một không gian địa chỉ duy nhất với CPU thực thi ở chế độ giám sát, tập trung vào hiệu năng. Microkernels chạy hầu hết các dịch vụ tại không gian người dùng (user space)[4] với mục đích tăng khả năng bảo trì và tính mô đun của hệ điều hành.[5] MINIX 3 là một ví dụ đáng chú ý về thiết kế microkernel. Thay vào đó, nhân Linux là monolithic, mặc dù nó cũng là mô-đun, vì nó có thể chèn và loại bỏ các mô-đun nhân có thể tải được trong runtime.

Thành phần trung tâm này của hệ thống máy tính có nhiệm vụ chạy hoặc thực thi các chương trình. Kernel chịu trách nhiệm quyết định bất kỳ lúc nào trong số nhiều chương trình đang chạy sẽ được cấp phát cho bộ xử lý hoặc các bộ xử lý.

Bộ nhớ truy cập ngẫu nhiên (RAM)
RAM được dùng để lưu trũ cả cấu trúc và dữ liệu ứng dụng.[note 1] Thông thường, cả hai cần phải có trong bộ nhớ để một chương trình có thể thực thi. Thường thì nhiều chương trình sẽ muốn truy cập vào bộ nhớ, thường đòi hỏi nhiều bộ nhớ hơn máy tính có sẵn. Kernel chịu trách nhiệm quyết định bộ nhớ nào mà mỗi tiến trình có thể được sử dụng và xác định việc cần làm khi không có đủ bộ nhớ.
Thiết bị vào/ra (I/O)
Thiết bị vào/ra bao gồm các thiết bị ngoại vi như bàn phím, chuột, ổ đĩa, máy in, thiết bị USB, bộ điều hợp mạng và thiết bị hiển thị. Kernel phân bổ các yêu cầu từ các ứng dụng để thực hiện I / O tới một thiết bị thích hợp và cung cấp các phương pháp thuận tiện để sử dụng thiết bị (thường được trừu tượng hóa đến mức ứng dụng không cần biết chi tiết triển khai của thiết bị).

Khái quát chung[sửa|sửa mã nguồn]

Trong một định nghĩa về ‘ nhân hệ điều hành ‘ Jochen Liedtke đã công bố rằng ” sử dụng liên tục để biểu lộ cho một phần của hệ điều hành có tính bắt buộc và san sẻ với toàn bộ những ứng dụng khác. ” [ 6 ]Hầu hết những hệ điều hành đều dựa trên cơ sở là nhân. Sự sống sót của nhân hệ điều hành là hệ quả tất yếu của việc phong cách thiết kế mạng lưới hệ thống máy tính thành một chuỗi những tầng trừu tượng để tương thích trong những tiến trình giải quyết và xử lý việc làm trên máy tính được đơn giản hóa ( so với con người ) nhưng dần phức tạp hóa ( so với máy tính ). [ 7 ] Ở mỗi tầng trừu tượng ở cấp phức tạp thấp hơn ( so với máy tính ) lại dựa vào những tính năng của chính những tầng ngay trên chúng ( những tầng phức tạp lớn hơn so với máy tính ) để giải quyết và xử lý. Nhân hệ điều hành dưới một góc nhìn nào đó là một cái tên đơn thuần biếu thị cho tầng trừu tượng ở mức thấp nhất được giải quyết và xử lý trong những ứng dụng trước khi đi qua trình biên dịch ngôn từ assembly sang ngôn từ máy và đưa đến phần cứng của máy tính để thi hành. Trong một số ít loại ứng dụng nhằm mục đích tránh sự sử dụng nhân hệ điều hành hoặc bỏ lỡ nhân hệ điều hành để đưa trực tiếp đến thi hành phần cứng, người ta sẽ phong cách thiết kế hàng loạt ứng dụng trong một mạng lưới hệ thống mà không sử dụng đến những tầng trừu tượng ( hoàn toàn có thể hiểu là tầng trừu tượng ở mức thấp tương tự với nhân nên bỏ lỡ nhân ) ; điều này sẽ làm ngày càng tăng sự phức tạp của việc phong cách thiết kế, lập trình ra ứng dụng. Việc phong cách thiết kế ứng dụng bỏ lỡ nhân này được ví như tạo ra một mạng lưới hệ thống đơn thuần nhất ( so với máy tính ) có tính khả thi cao và hoàn toàn có thể thực thi những ứng dụng .

Trong khi được biết đến với cái tên phổ biến nhân hệ điều hành, những cách gọi mới mẻ cho bộ phần tương tự của hệ thống máy tính được biết đến như hạt nhân – nucleus hay là lõi – core,[3][8][9][10] (Chú ý rằng, bất cứ khi nào từ core cũng được sử dụng có liên quan tới bộ nhớ chính của hệ thống máy tính, bởi vì các máy tính ra đời trước sử dụng một dạng của bộ nhớ được gọi là core memory), và được hình thành một cách sáng tạo như những vùng chỉ chứa những yếu tố cần thiết, cốt lõi của một hệ điều hành.

Trong hầu hết các trường hợp, boot loader bắt đầu thực thi nhân hệ điều hành trong supervisor mode,[11] Nhân hệ điều hành sau đó được nạp phần đầu của nó và thi hành tiến trình đầu tiên. Sau khi khởi động hoàn tất, nhân hệ điều hành không được thực thi ngay lập tức, nó chỉ nằm trong lời trả lời cho sự kiện bên ngoài(Ví dụ:, thông qua hàm hệ thống,các ứng dụng sẽ yêu cầu dịch vụ từ nhân hệ điều hành, hoặc thông qua ngắt được sử dụng bởi phần cứng để thông báo cho nhân hệ điều hành về các sự kiện xảy ra). Ngoài ra, nhân hệ điều hành còn đặc biệt cung cấp một vòng lặp được thực thi bất cứ lúc nào mà không có tiến trình nào được thực thi; nó thường được gọi là tiến trình nhàn rỗi.

Quản lý tài nguyên[sửa|sửa mã nguồn]

Các khía cạnh chính cần thiết trong quản lý tài nguyên là xác định miền thực thi (không gian địa chỉ) và cơ chế bảo vệ được sử dụng để làm trung gian cho quyền truy cập vào tài nguyên trong miền.[12] Kernels cũng cung cấp các phương pháp để đồng bộ hóa và giao tiếp liên tiến trình (IPC). Các triển khai này có thể nằm trong chính hạt nhân hoặc hạt nhân cũng có thể dựa vào các tiến trình khác đang chạy. Mặc dù kernels phải cung cấp IPC để cung cấp quyền truy cập vào các phương tiện được cung cấp bởi tiến trình khác, kernels cũng phải cung cấp các chương trình đang chạy với một phương thức để thực hiện yêu cầu truy cập các phương tiện này. Kernel cũng chịu trách nhiệm chuyển đổi ngữ cảnh giữa các tiến trình hoặc threads.

Quản lý bộ nhớ[sửa|sửa mã nguồn]

Kernel có toàn quyền truy vấn vào bộ nhớ của mạng lưới hệ thống và phải được cho phép những tiến trình truy vấn bảo đảm an toàn vào bộ nhớ này khi chúng nhu yếu. Thường thì bước tiên phong để thực thi việc này là định địa chỉ ảo, thường đạt được bằng cách phân trang và / hoặc phân đoạn. Định địa chỉ ảo được cho phép kernel quy đổi một địa chỉ vật lý nhất định có vẻ như là một địa chỉ khác, địa chỉ ảo. Không gian địa chỉ ảo hoàn toàn có thể khác nhau so với những tiến trình khác nhau ; bộ nhớ mà một tiến trình truy vấn tại một địa chỉ ( ảo ) đơn cử hoàn toàn có thể là bộ nhớ khác với bộ nhớ mà một tiến trình khác truy vấn tại cùng một địa chỉ. Điều này được cho phép mọi chương trình hoạt động giải trí như thể nó là chương trình duy nhất ( ngoại trừ hạt nhân ) đang chạy và do đó ngăn ngừa những ứng dụng gây lỗi cho nhau. [ 13 ]Trên nhiều mạng lưới hệ thống, địa chỉ ảo của chương trình hoàn toàn có thể tham chiếu đến tài liệu hiện không có trong bộ nhớ. Lớp khuynh hướng được cung ứng bởi địa chỉ ảo được cho phép hệ điều hành sử dụng những kho tàng trữ tài liệu khác, ví dụ điển hình như ổ cứng, để tàng trữ những gì nếu không sẽ phải lưu lại trong bộ nhớ chính ( RAM ). Kết quả là hệ điều hành hoàn toàn có thể được cho phép những chương trình sử dụng nhiều bộ nhớ hơn so với bộ nhớ vật lý có sẵn của mạng lưới hệ thống. Khi một chương trình cần tài liệu hiện không có trong RAM, CPU báo hiệu cho hạt nhân và hạt nhân phản hồi bằng cách ghi nội dung của khối bộ nhớ không hoạt động giải trí vào ổ đĩa ( nếu cần ) và sửa chữa thay thế nó bằng tài liệu được chương trình nhu yếu. Sau đó, chương trình hoàn toàn có thể được liên tục lại từ điểm đã dừng. Đề án này thường được gọi là phân trang nhu yếu .Định địa chỉ ảo cũng được cho phép tạo những phân vùng ảo của bộ nhớ trong hai vùng riêng không liên quan gì đến nhau, một vùng được dành riêng cho hạt nhân ( kernel space ) và vùng còn lại cho ứng dụng ( user space ). Bộ giải quyết và xử lý không được cho phép những ứng dụng giải quyết và xử lý bộ nhớ dành cho kernel, do đó ngăn ứng dụng làm hỏng kernel đang chạy. Phân vùng cơ bản của khoảng trống bộ nhớ này đã góp phần nhiều vào những phong cách thiết kế hiện tại của những kernel có mục tiêu chung trong thực tiễn và gần như phổ cập trong những mạng lưới hệ thống, mặc dầu một số ít nhân điều tra và nghiên cứu ( ví dụ, Singularity ) có những cách tiếp cận khác .

Quản lý thiết bị[sửa|sửa mã nguồn]

Để triển khai những công dụng hữu dụng, những tiến trình cần quyền truy vấn vào những thiết bị ngoại vi được liên kết với máy tính, được tinh chỉnh và điều khiển bởi nhân trải qua trình điều khiển và tinh chỉnh thiết bị. Trình điều khiển và tinh chỉnh thiết bị là một chương trình máy tính được cho phép hệ điều hành tương tác với thiết bị phần cứng. Nó cung ứng cho hệ điều hành thông tin về cách điều khiển và tinh chỉnh và tiếp xúc với một phần cứng nhất định. Trình tinh chỉnh và điều khiển là một phần quan trọng và quan trọng so với một ứng dụng chương trình. Mục tiêu phong cách thiết kế của một trình tinh chỉnh và điều khiển là sự trừu tượng ; công dụng của trình điều khiển và tinh chỉnh là chuyển những lệnh gọi hàm trừu tượng do hệ điều hành chuyển nhượng ủy quyền ( lệnh gọi lập trình ) thành những lệnh gọi thiết bị đơn cử. Về triết lý, thiết bị sẽ hoạt động giải trí đúng chuẩn với trình tinh chỉnh và điều khiển tương thích. Trình tinh chỉnh và điều khiển thiết bị được sử dụng cho những thứ như card màn hình hiển thị, card âm thanh, máy in, máy quét, modem và card mạng LAN .Ở Lever phần cứng, những phần tóm tắt phổ cập của trình điều khiển và tinh chỉnh thiết bị gồm có :

  • Giao tiếp trực tiếp
  • Sử dụng giao diện cấp cao (Video BIOS)
  • Sử dụng trình điều khiển thiết bị cấp thấp hơn (trình điều khiển file sử dụng trình điều khiển đĩa)
  • Mô phỏng công việc với phần cứng, trong khi thực hiện một điều gì đó hoàn toàn khác

Và ở Lever ứng dụng, tóm tắt trình tinh chỉnh và điều khiển thiết bị gồm có :

  • Cho phép hệ điều hành truy cập trực tiếp vào tài nguyên phần cứng
  • Chỉ triển khai nguyên thủy
  • Triển khai giao diện cho phần mềm không phải trình điều khiển như TWAIN
  • Triển khai một ngôn ngữ (thường là một ngôn ngữ cấp cao như PostScript)

Ví dụ, để hiển thị cho người dùng một cái gì đó trên màn hình hiển thị, một ứng dụng sẽ đưa ra một nhu yếu tới hạt nhân, nó sẽ chuyển tiếp nhu yếu tới trình tinh chỉnh và điều khiển hiển thị của nó, sau đó sẽ chịu nghĩa vụ và trách nhiệm thực sự vẽ ký tự / px. [ 13 ]

Kernel phải duy trì một danh sách các thiết bị có sẵn. Danh sách này có thể được biết trước (ví dụ trên một hệ thống nhúng trong đó hạt nhân sẽ được viết lại nếu phần cứng có sẵn thay đổi), do người dùng định cấu hình (điển hình trên các PC cũ hơn và trên các hệ thống không được thiết kế cho mục đích cá nhân) hoặc được phát hiện bởi hệ điều hành tại thời điểm chạy (thường được gọi là plug and play).Trong các hệ thống plug-and-play, trình quản lý thiết bị trước tiên thực hiện quét trên các bus phần cứng khác nhau, chẳng hạn như Peripheral Component Interconnect (PCI) hoặc Universal Serial Bus (USB), để phát hiện các thiết bị đã cài đặt, sau đó tìm kiếm trình điều khiển thích hợp.

Vì quản trị thiết bị là một chủ đề rất đơn cử về hệ điều hành, những trình tinh chỉnh và điều khiển này được giải quyết và xử lý khác nhau theo từng loại phong cách thiết kế nhân, nhưng trong mọi trường hợp, nhân phải cung ứng I / O để cho phép trình điều khiển và tinh chỉnh truy vấn vật lý vào thiết bị của chúng trải qua 1 số ít cổng hoặc bộ nhớ vị trí. Các quyết định hành động quan trọng phải được đưa ra khi phong cách thiết kế mạng lưới hệ thống quản trị thiết bị, vì trong một số ít phong cách thiết kế, quyền truy vấn hoàn toàn có thể tương quan đến chuyển mạch ngữ cảnh, làm cho hoạt động giải trí rất tốn CPU và dễ gây ra ngân sách hiệu suất đáng kể .

Liên kết ngoài[sửa|sửa mã nguồn]

Source: https://vh2.com.vn
Category : Ứng Dụng