Networks Business Online Việt Nam & International VH2

Microkernel – Wikipedia tiếng Việt

Đăng ngày 03 October, 2022 bởi admin
Cấu trúc của hệ điều hành dựa trên nhân monolithic và microkernel tương ứng

Trong khoa học máy tính, một microkernel (thường được viết tắt là μ-kernel) là lượng phần mềm gần như tối thiểu có thể cung cấp các cơ chế cần thiết để triển khai một hệ điều hành. Các cơ chế này bao gồm quản lý không gian địa chỉ cấp thấp, quản lý luồng và giao tiếp liên tiến trình (IPC).

Nếu phần cứng cung ứng nhiều vòng hoặc chính sách CPU, microkernel hoàn toàn có thể là ứng dụng duy nhất thực thi ở mức độc quyền nhất, thường được gọi là chính sách giám sát hoặc chính sách hạt nhân. Các công dụng của hệ điều hành truyền thống lịch sử, ví dụ điển hình như trình điều khiển và tinh chỉnh, chồng giao thức và mạng lưới hệ thống file, bị vô hiệu khỏi microkernel và thay vào đó được chạy trong khoảng trống người dùng. [ 1 ]

Về kích thước mã nguồn, microkernel thường nhỏ hơn hạt nhân monolithic. MINIX là một ví dụ với chỉ có khoảng 12,000 dòng lệnh.[2]

Microkernel bắt nguồn từ nhà tiên phong máy tính Đan Mạch Per Brinch Hansen và nhiệm kỳ của ông tại công ty máy tính Đan Mạch Regnecentralen, nơi ông đã đứng vị trí số 1 những nỗ lực tăng trưởng ứng dụng cho máy tính RC 4000. [ 3 ] Năm 1967, Regnecentralen đang lắp ráp một mẫu thử nghiệm RC 4000 tại một nhà máy sản xuất phân bón Ba Lan ở Puławy. Máy tính sử dụng một hệ điều hành thời hạn thực nhỏ được phong cách thiết kế riêng cho nhu yếu của xí nghiệp sản xuất. Brinch Hansen và nhóm của ông trở nên lo ngại về sự thiếu tính tổng quát và năng lực tái sử dụng của mạng lưới hệ thống RC 4000. Họ sợ rằng mỗi lần setup sẽ nhu yếu một hệ điều hành khác nhau nên họ mở màn nghiên cứu và điều tra những cách mới và tổng quát hơn để tạo ứng dụng cho RC 4000. [ 4 ] Năm 1969, nỗ lực của họ đã dẫn đến việc hoàn thành xong Hệ thống đa chương trình RC 4000. Hạt nhân của nó phân phối thông tin liên lạc giữa những tiến trình dựa trên việc truyền thông điệp cho tối đa 23 quá trình không độc quyền, trong đó 8 quy trình tiến độ tại một thời gian được bảo vệ khỏi nhau. Nó liên tục thực thi việc lập lịch những lát thời hạn của những chương trình được triển khai song song, khởi tạo và trấn áp việc thực thi chương trình theo nhu yếu của những chương trình đang chạy khác và mở màn truyền tài liệu đến hoặc từ thiết bị ngoại vi. Bên cạnh những chính sách cơ bản này, nó không có kế hoạch tích hợp để triển khai chương trình và phân chia tài nguyên. Chiến lược này được triển khai bởi một mạng lưới hệ thống phân cấp những chương trình đang chạy trong đó những tiến trình mẹ có toàn quyền trấn áp những quá trình con và hoạt động giải trí như hệ điều hành của chúng. [ 5 ]Sau việc làm của Brinch Hansen, microkernels đã được tăng trưởng vào những năm 1970 [ 6 ] Bản thân thuật ngữ microkernel Open lần tiên phong không muộn hơn năm 1981. Microkernels được coi là phản ứng với những đổi khác trong quốc tế máy tính và so với một số ít thử thách trong việc kiểm soát và điều chỉnh những ” đơn nhân ” hiện có với những những mạng lưới hệ thống. Trình điều khiển và tinh chỉnh thiết bị mới, ngăn xếp giao thức, mạng lưới hệ thống file và những mạng lưới hệ thống cấp thấp khác luôn được tăng trưởng. Mã này thường được đặt trong hạt nhân nguyên khối, do đó cần phải thao tác đáng kể và quản trị mã cẩn trọng để hoạt động giải trí. Microkernels được tăng trưởng với ý tưởng sáng tạo rằng tổng thể những dịch vụ này sẽ được tiến hành dưới dạng những chương trình khoảng trống người dùng, giống như bất kể chương trình nào khác, được cho phép chúng hoạt động giải trí trên nguyên khối và khởi đầu và dừng như bất kể chương trình nào khác. Điều này không riêng gì được cho phép những dịch vụ này thuận tiện thao tác hơn, mà còn tách mã hạt nhân để cho phép nó được tinh chỉnh và điều khiển mà không phải lo ngại về những công dụng phụ ngoài ý muốn. Hơn nữa, nó sẽ được cho phép những hệ điều hành trọn vẹn mới được ” kiến thiết xây dựng ” trên một lõi chung, tương hỗ điều tra và nghiên cứu hệ điều hành .Microkernels là một chủ đề rất nóng trong những năm 1980 khi những mạng cục bộ hoàn toàn có thể sử dụng được tiên phong được trình làng. Kernel AmigaOS Exec là một ví dụ khởi đầu, được ra mắt vào năm 1986 và được sử dụng trong PC với thành công xuất sắc tương đối về mặt thương mại. Việc thiếu bảo vệ bộ nhớ, được coi là một lỗ hổng khác, được cho phép hạt nhân này có hiệu suất truyền thông điệp rất cao vì nó không cần sao chép tài liệu trong khi trao đổi thông điệp giữa những chương trình khoảng trống người dùng. [ 7 ]Các chính sách tương tự như được cho phép hạt nhân được phân phối vào khoảng trống người dùng cũng được cho phép mạng lưới hệ thống được phân phối trên những link mạng. Những microkernel tiên phong, đặc biệt quan trọng là Mach, đã chứng tỏ có hiệu suất đáng tuyệt vọng, nhưng những lợi thế vốn có Open rất lớn đến mức nó trở thành một dòng nghiên cứu và điều tra chính vào cuối những năm 1990. Tuy nhiên, trong thời hạn này, vận tốc của máy tính đã tăng lên rất nhiều tương quan đến mạng lưới hệ thống mạng, và những bất lợi trong hiệu suất ép chế những lợi thế trong điều kiện kèm theo tăng trưởng. bất kỳ nỗ lực nào đã được thực thi để kiểm soát và điều chỉnh những mạng lưới hệ thống hiện có để có hiệu suất tốt hơn, nhưng ngân sách luôn là đáng kể và hầu hết những nỗ lực này nhu yếu những chương trình khoảng trống người dùng phải được chuyển trở lại vào hạt nhân. Đến năm 2000, hầu hết những nỗ lực quy mô lớn ( giống Mach ) đã kết thúc, mặc dầu macOS của Apple, được phát hành vào năm 2001, dùng một hybrid kernel có tên là XNU, phối hợp một nhân ( hybrid ) OSFMK 7.3 được sửa đổi nhiều với mã từ BSD UNIX, [ 8 ] [ 9 ] và kernel này cũng được sử dụng trong iOS, tvOS, và watchOS. Tính đến năm 2012, GNU Hurd dựa trên Mach cũng có tính năng và được gồm có trong những phiên bản thử nghiệm của Arch Linux và Debian .

Mặc dù công việc chính trên các microkernels đã kết thúc phần lớn, các nhà thử nghiệm vẫn tiếp tục phát triển.[cần dẫn nguồn] Từ đó đã chỉ ra rằng nhiều vấn đề về hiệu suất của các thiết kế trước đó không phải là hạn chế cơ bản của khái niệm mà thay vào đó là do nhà thiết kế mong muốn sử dụng các hệ thống đơn mục đích để triển khai càng nhiều dịch vụ này càng tốt.[cần dẫn nguồn] Sử dụng cách tiếp cận thực tế hơn cho vấn đề, bao gồm mã hợp ngữ và dựa vào bộ xử lý để thực thi các khái niệm thường được hỗ trợ trong phần mềm đã dẫn đến một loạt microkernels mới với hiệu suất được cải thiện.

Microkernels có tương quan ngặt nghèo với những exokernels. [ 10 ] Chúng cũng có nhiều điểm chung với những hypervisors, [ 11 ] nhưng sau này không khẳng định tính tối thiểu và chuyên tương hỗ những máy ảo ; thực sự, microkernel L4 thường được sử dụng trong năng lực siêu giám sát
Các nhân của hệ điều hành bắt đầu khá nhỏ, một phần là do bộ nhớ máy tính bị hạn chế. Khi năng lực của máy tính tăng trưởng, số lượng thiết bị mà nhân phải trấn áp cũng tăng lên. Trong suốt lịch sử vẻ vang khởi đầu của Unix, hạt nhân nói chung là nhỏ, mặc dầu chúng chứa nhiều tiến hành trình điều khiển và tinh chỉnh thiết bị và mạng lưới hệ thống file khác nhau. Khi khoảng trống địa chỉ tăng từ 16 lên 32 bit, phong cách thiết kế nhân không còn bị số lượng giới hạn bởi kiến trúc phần cứng, và nhân mở màn tăng trưởng lớn hơn .Berkeley Software Distribution ( BSD ) của Unix mở màn kỷ nguyên của những hạt nhân lớn hơn. Ngoài việc quản lý và vận hành một mạng lưới hệ thống cơ bản gồm có CPU, đĩa và máy in, BSD đã bổ trợ một mạng lưới hệ thống mạng TCP / IP hoàn hảo và một số ít thiết bị ” ảo ” được cho phép những chương trình hiện có hoạt động giải trí ‘ vô hình dung ‘ qua mạng. Sự tăng trưởng này liên tục trong nhiều năm, tạo ra những hạt nhân với hàng triệu dòng mã nguồn. Kết quả của sự tăng trưởng này, hạt nhân dễ bị lỗi và ngày càng khó bảo dưỡng .Microkernel được phong cách thiết kế để xử lý sự tăng trưởng này của những hạt nhân và những khó khăn vất vả dẫn đến. Về triết lý, phong cách thiết kế microkernelcho phép quản trị mã thuận tiện hơn do nó được phân loại thành những dịch vụ khoảng trống người dùng. Điều này cũng được cho phép tăng cường bảo mật thông tin và không thay đổi do giảm lượng mã chạy trong kernel mode. Ví dụ : nếu một dịch vụ mạng gặp sự cố do tràn bộ đệm, chỉ bộ nhớ của dịch vụ mạng sẽ bị hỏng, phần còn lại của mạng lưới hệ thống vẫn hoạt động giải trí .

Trên hầu hết các bộ xử lý chính thống, việc nhận được một dịch vụ vốn đã đắt hơn trong một hệ thống dựa trên microkernel hơn là một hệ thống monolithic.[10] Trong hệ thống monolithic, dịch vụ có được bằng một lệnh gọi hệ thống, yêu cầu hai mode switches (thay đổi vòng của bộ xử lý hoặc chế độ CPU). Trong hệ thống dựa trên microkernel, dịch vụ nhận được bằng cách gửi một thông điệp IPC đến một server, và nhận được kết quả trong một thông điệp IPC khác từ server. Điều này yêu cầu chuyển đổi ngữ cảnh nếu các trình điều khiển được triển khai dưới dạng các quy trình hoặc một lệnh gọi hàm nếu chúng được thực hiện dưới dạng các thủ tục. Ngoài ra, việc chuyển dữ liệu thực tế đến máy chủ và quay lại có thể phát sinh thêm chi phí sao chép, trong khi trong một hệ thống monolithic, hạt nhân có thể truy cập trực tiếp vào dữ liệu trong bộ đệm của máy khách.

Do đó, hiệu suất là một vấn đề tiềm ẩn trong các hệ thống microkernel. Thật vậy, kinh nghiệm của các microkernels thế hệ đầu tiên như Mach hayChorusOS cho thấy rằng các hệ thống dựa trên chúng hoạt động rất kém. Tuy nhiên, Jochen Liedtke đã chỉ ra rằng các vấn đề về hiệu suất của Mach là kết quả của việc thiết kế và triển khai kém, cụ thể là bộ nhớ đệm quá nhiều của Mach.
Liedtke đã chứng minh với L4 microkernel của riêng mình rằng thông qua thiết kế và triển khai cẩn thận, và đặc biệt là bằng cách tuân theo nguyên tắc tối thiểu, chi phí IPC có thể giảm nhiều hơn một bậc so với Mach.Hiệu suất IPC của L4 vẫn bất bại trên nhiều loại kiến trúc.

Mặc dù những tác dụng này chứng tỏ rằng hiệu suất kém của những mạng lưới hệ thống dựa trên những microkernels thế hệ thứ nhất không phải là đại diện thay mặt cho những hạt nhân thế hệ thứ hai như L4, nhưng điều này không tạo ra vật chứng rằng những mạng lưới hệ thống dựa trên microkernel hoàn toàn có thể được kiến thiết xây dựng với hiệu suất tốt. Nó đã được chỉ ra rằng một sever Linux nguyên khối được chuyển sang L4 chỉ biểu lộ một vài Xác Suất ngân sách so với Linux gốc. [ 12 ] Tuy nhiên, mạng lưới hệ thống một sever như vậy bộc lộ rất ít lợi thế, nếu có, những microkernel được cho là cung ứng bằng cách cấu trúc tính năng của hệ điều hành thành những sever riêng không liên quan gì đến nhau .Một số mạng lưới hệ thống đa sever thương mại sống sót, đặc biệt quan trọng là mạng lưới hệ thống thời hạn thực QNX và Integrity. Không có so sánh tổng lực về hiệu suất so với những mạng lưới hệ thống nguyên khối đã được công bố cho những mạng lưới hệ thống nhiều sever đó. Hơn nữa, hiệu suất có vẻ như không phải là mối chăm sóc lớn so với những mạng lưới hệ thống thương mại đó, thay vào đó nhấn mạnh vấn đề thời hạn phản hồi giải quyết và xử lý ngắt nhanh đáng an toàn và đáng tin cậy ( QNX ) và tính đơn thuần vì quyền lợi của sự can đảm và mạnh mẽ. Một nỗ lực để kiến thiết xây dựng một hệ điều hành đa sever hiệu suất cao là dự án Bất Động Sản IBM Sawmill Linux. Tuy nhiên, dự án Bất Động Sản này đã không khi nào được triển khai xong .Trong khi đó, người ta đã chứng tỏ rằng trình tinh chỉnh và điều khiển thiết bị cấp người dùng hoàn toàn có thể đạt được hiệu suất của trình tinh chỉnh và điều khiển trong nhân ngay cả so với những thiết bị có thông lượng cao, ngắt quãng cao như Gigabit Ethernet. [ 13 ] Điều này có vẻ như ý niệm rằng những mạng lưới hệ thống đa sever hiệu suất cao là hoàn toàn có thể .
Lợi ích bảo mật thông tin của những microkernels đã được đàm đạo liên tục. [ 14 ] Trong toàn cảnh bảo mật thông tin, nguyên tắc tối thiểu của microkernels, một số ít người đã lập luận, là hệ quả trực tiếp của nguyên tắc độc quyền tối thiểu, theo đó tổng thể mã chỉ nên có những độc quyền thiết yếu để phân phối công dụng thiết yếu. Tính tối thiểu yên cầu cơ sở thống kê giám sát đáng an toàn và đáng tin cậy ( TCB ) của mạng lưới hệ thống phải được giữ ở mức tối thiểu. Vì hạt nhân ( mã thực thi ở chế độ đặc quyền của phần cứng ) đã bật mý quyền truy vấn vào bất kỳ dữ liệu nào và do đó hoàn toàn có thể vi phạm tính toàn vẹn hoặc tính bảo mật thông tin của nó, hạt nhân luôn là một phần của TCB. Giảm thiểu nó là điều đương nhiên trong một phong cách thiết kế theo hướng bảo mật thông tin .Do đó, những phong cách thiết kế microkernel đã được sử dụng cho những mạng lưới hệ thống được phong cách thiết kế cho những ứng dụng bảo mật thông tin cao, gồm có KeyKOS, EROS và những mạng lưới hệ thống quân sự chiến lược. Trên trong thực tiễn, những tiêu chuẩn chung common criteria ( CC ) at ở mức bảo vệ cao nhất ( Evaluation Assurance Level ( EAL ) 7 ) có một nhu yếu rõ ràng rằng tiềm năng nhìn nhận phải ” đơn thuần “, một sự thừa nhận về năng lực thiết lập độ an toàn và đáng tin cậy thực sự so với một mạng lưới hệ thống phức tạp Thật không may, một lần nữa, thuật ngữ ” đơn thuần ” gây hiểu nhầm và không được xác lập rõ ràng. Ít nhất thì Department of Defense Trusted Computer System Evaluation Criteria đã đưa ra một cách đúng chuẩn hơn phần nào những lớp B3 / A1 :

” The TCB shall [ implement ] complete, conceptually simple protection mechanisms with precisely defined semantics. Significant system engineering shall be directed toward minimizing the complexity of the TCB, as well as excluding from the TCB those modules that are not protection-critical. “— Department of Defense Trusted Computer System Evaluation Criteria

Vào năm 2018, một bài báo được trình diễn tại Hội nghị Hệ thống Châu Á Thái Bình Dương – Thái Bình Dương công bố rằng những microkernel bảo đảm an toàn hơn đáng kể so với những hạt nhân monolithic bằng cách tìm hiểu toàn bộ những CVE quan trọng được công bố cho nhân Linux vào thời gian đó. Nghiên cứu Kết luận rằng 40 % những yếu tố trọn vẹn không hề xảy ra trong một microkernel, đã được xác định chính thức và chỉ 4 % những yếu tố sẽ trọn vẹn không có yếu tố trong một mạng lưới hệ thống như vậy. [ 15 ]

Thế hệ thứ ba[sửa|sửa mã nguồn]

Các điều tra và nghiên cứu gần đây hơn về những microkernels đang tập trung chuyên sâu vào những thông số kỹ thuật kỹ thuật chính thức của API hạt nhân và những vật chứng chính thức về những thuộc tính bảo mật thông tin của API và tính đúng đắn của việc tiến hành. Ví dụ tiên phong về điều này là một dẫn chứng toán học về những chính sách giam giữ trong EROS, dựa trên quy mô đơn giản hóa của API EROS. Gần đây hơn ( vào năm 2007 ) một tập hợp tổng lực những vật chứng được kiểm tra bằng máy đã được thực thi về những thuộc tính của quy mô bảo vệ của seL4, một phiên bản của L4. [ 16 ]

Điều này đã dẫn đến những gì được gọi là microkernels thế hệ thứ 3,
được đặc trưng bởi một API định hướng bảo mật với quyền truy cập tài nguyên được kiểm soát bởi các khả năng, ảo hóa là mối quan tâm hàng đầu, các phương pháp mới để quản lý tài nguyên hạt nhân và mục tiêu thiết kế về tính phù hợp cho phân tích chính thức, bên cạnh mục tiêu thông thường là hiệu suất cao. Ví dụ như, Coyotos, seL4, Nova,[17]
Redox và Fiasco.OC.

Trong trường hợp của seL4, đã đạt được xác định chính thức hoàn hảo về việc tiến hành, tức là một vật chứng toán học cho thấy việc tiến hành của hạt nhân đồng điệu với đặc thù kỹ thuật chính thức của nó. Điều này cung ứng một bảo vệ rằng những thuộc tính được chứng tỏ về API thực sự giữ cho hạt nhân thực, một mức độ bảo vệ vượt xa ngay cả CC EAL7. Tiếp theo là dẫn chứng về những thuộc tính thực thi bảo mật thông tin của API và dẫn chứng chứng tỏ rằng mã nhị phân thực thi là bản dịch đúng chuẩn của việc tiến hành C, đưa trình biên dịch ra khỏi TCB. Kết hợp lại với nhau, những vật chứng này thiết lập một vật chứng đầu cuối về những thuộc tính bảo mật thông tin của hạt nhân. [ 18 ]

Thuật ngữ nanokernel hoặc picokernel trước đây được gọi là:

  • Một nhân mà tổng lượng mã nhân, tức là mã thực thi trong chế độ đặc quyền của phần cứng, là rất nhỏ. Thuật ngữ picokernel đôi khi được sử dụng để nhấn mạnh thêm về kích thước nhỏ. Thuật ngữ nanokernel được đặt ra bởi Jonathan S. Shapiro trong bài báo Kiến trúc Nanokernel KeyKOS. Đó là một phản ứng mỉa mai đối với Mach, vốn được cho là một microkernel trong khi Shapiro coi nó là monolithic, về cơ bản là không có cấu trúc và chậm hơn so với các hệ thống mà nó tìm cách thay thế. Việc sử dụng lại và phản hồi sau đó đối với thuật ngữ, bao gồm cả picokernel coinage, cho thấy rằng điểm này phần lớn đã bị bỏ sót. Cả nanokernelpicokernel sau đó đều có cùng một ý nghĩa được biểu thị bằng thuật ngữ microkernel.
  • Một lớp ảo hóa bên dưới hệ điều hành, được gọi một cách chính xác hơn là một Hypervisor.
  • Một lớp trừu tượng phần cứng tạo thành phần cấp thấp nhất của nhân, đôi khi được sử dụng để cung cấp chức năng thời gian thực cho các hệ điều hành bình thường, như Adeos.

Cũng có tối thiểu một trường hợp mà thuật ngữ nanokernel được sử dụng không phải để chỉ một hạt nhân nhỏ, mà là một hạt tương hỗ độ phân giải xung nhịp nano giây. [ 19 ]

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