Nhân hệ điều hành là gì? Nó khác với hệ điều hành như thế nào? [đóng cửa]


147

Tôi không thể hiểu sự khác biệt giữa kernel và hệ điều hành. Tôi không thấy bất kỳ sự khác biệt giữa chúng. Có phải kernel là một hệ điều hành?

Câu trả lời:


74

Định nghĩa kỹ thuật của một hệ điều hành là "một nền tảng bao gồm các bộ thư viện và cơ sở hạ tầng cụ thể cho các ứng dụng được xây dựng và tương tác với nhau". Một hạt nhân là một hệ điều hành theo nghĩa đó.

Định nghĩa của người dùng cuối thường là một cái gì đó xoay quanh "gói phần mềm cung cấp máy tính để bàn, lối tắt cho các ứng dụng, trình duyệt web và trình phát phương tiện". Một hạt nhân không phù hợp với định nghĩa đó.

Vì vậy, đối với người dùng cuối, bản phân phối Linux (giả sử Ubuntu) là Hệ điều hành trong khi đối với lập trình viên, hạt nhân Linux là một hệ điều hành hoàn toàn hợp lệ tùy thuộc vào những gì bạn đang cố gắng đạt được. Ví dụ, các hệ thống nhúng hầu hết chỉ là kernel với số lượng rất nhỏ các quy trình chuyên biệt chạy trên đầu chúng. Trong trường hợp đó, chính kernel trở thành HĐH.

Tôi nghĩ rằng bạn có thể vẽ đường mà phần lớn các ứng dụng chạy trên hệ điều hành đó yêu cầu. Nếu hầu hết trong số họ chỉ yêu cầu kernel, kernel là HĐH, nếu hầu hết trong số họ yêu cầu X Window System đang chạy, thì HĐH của bạn sẽ trở thành kernel X +.


6
Định nghĩa của người dùng cuối thường là một cái gì đó xoay quanh "gói phần mềm cung cấp máy tính để bàn, lối tắt cho các ứng dụng, trình duyệt web và trình phát phương tiện". Một hạt nhân không phù hợp với định nghĩa đó. Chỉ vì ai đó không biết hệ điều hành là gì không có nghĩa là định nghĩa của họ là hợp lệ.
DIMMSum

1
@dimmsum nó không chỉ là một định nghĩa thông tục. hệ điều hành đã được bán và tiếp thị cho người dùng như vậy.
Sedat Kapanoglu

Bạn có thể vui lòng chỉ cho tôi để tiếp thị như vậy? Tôi có thể thấy một nhà cung cấp hệ điều hành nói rằng họ cung cấp một nền tảng mà tất cả các loại chương trình như vậy có thể chạy, nhưng một hệ điều hành không bao gồm các chương trình đó. Nếu bạn kết luận cả hai thì bạn thực sự đang nói về toàn bộ hệ thống, vì vậy định nghĩa sẽ mất đi ý nghĩa của nó.
DIMMSum

1
@dimmsum tôi hiểu quan điểm của bạn và đó là lý do tại sao tôi cung cấp hai định nghĩa khác nhau. có lẽ tôi nên gọi nó là sự hiểu biết của người Viking? Tôi nghĩ rằng người dùng cuối, đặc biệt là trong thời đại mà các hệ điều hành được bán trong các hộp, có một sự hiểu biết khác nhau về hệ điều hành là gì và điều đó có liên quan trực tiếp đến cách hệ điều hành được hàng hóa hóa. hộp windows xp hứa hẹn một giao dịch hoàn toàn khác với định nghĩa kỹ thuật, đó là điều tôi muốn chỉ ra.
Sedat Kapanoglu

1
@dimmsum vì vậy có hệ điều hành trong khoa học máy tính và có một hệ điều hành khác trên kệ của một cửa hàng công nghệ. cả hai đều là hệ điều hành với những quan điểm khác nhau. tôi muốn nhấn mạnh sự khác biệt đó.
Sedat Kapanoglu

73

Một hạt nhân là một phần của hệ điều hành làm trung gian truy cập vào tài nguyên hệ thống. Nó chịu trách nhiệm cho phép nhiều ứng dụng chia sẻ phần cứng một cách hiệu quả bằng cách kiểm soát quyền truy cập vào CPU, bộ nhớ, I / O đĩa và mạng.

Một hệ điều hành là kernel cộng với các ứng dụng cho phép người dùng hoàn thành công việc (ví dụ trình biên dịch, trình soạn thảo văn bản, trình quản lý cửa sổ, v.v.).


18
Các trình biên dịch và trình soạn thảo văn bản có thực sự là một phần của Hệ điều hành không? Word là một trình soạn thảo văn bản được tôn vinh - đó có phải là một phần của HĐH không?
jon-hanson

6
Điều tôi không nhận được là "Hệ điều hành là kernel cộng với các ứng dụng" nhưng nếu tôi cài đặt một ứng dụng, hãy nói Word Perfect, thì đó không phải là một phần của hệ điều hành, phải không?
Celeritas

7
@Celeritas Một chút muộn cho bữa tiệc nhưng không có ứng dụng được cài đặt đó sẽ không được tính là một phần của hệ điều hành. Các "ứng dụng" thực sự là các tiện ích hệ thống đi kèm với hệ điều hành. Tất cả các phần mềm / ứng dụng khác mà bạn cài đặt nằm trên lớp phía trên này.
hashcode55

Bạn đã làm tốt cho đến khi bạn viết nhận xét về cha mẹ trong đoạn thứ hai. Một hệ điều hành xử lý các yêu cầu được thực hiện bởi các ứng dụng đó để kiểm soát phần cứng. Vì vậy, HĐH bao gồm kernel, trình điều khiển thiết bị và bất kỳ phần mềm / phần sụn nào khác điều khiển cụ thể phần cứng ở mức thấp nhất.
Bob

42

Có vẻ như phép ẩn dụ ban đầu đã cho chúng ta từ "hạt nhân" cho điều này ngay từ đầu đã bị lãng quên. Ẩn dụ là một hệ điều hành là một hạt giống. "Hạt nhân" của hạt giống là cốt lõi của hệ điều hành, cung cấp các dịch vụ hệ điều hành cho các chương trình ứng dụng, được bao quanh bởi "vỏ" của hạt giống là những gì người dùng nhìn thấy từ bên ngoài.

Một số người muốn buộc "kernel" (và, thực sự, "shell") xuống cụ thể hơn thế. Nhưng trong thực tế, có rất nhiều biến thể trên các hệ điều hành. Không phải các biến thể ít nhất là những gì tạo thành một "vỏ" (có thể nằm trong khoảng từ Solaris ' shthông qua Trình thông dịch lệnh điều khiển của Netware đến Workplace Shell của OS / 2 và Explorer của Windows NT), nhưng cũng có rất nhiều phương sai từ hệ điều hành này sang hệ điều hành khác cái gì là và không phải là một phần của "kernel" (có thể bao gồm hoặc không bao gồm I / O đĩa chẳng hạn).

Tốt nhất nên nhớ rằng những thuật ngữ này là ẩn dụ .

đọc thêm


Đẹp. Tuy nhiên, câu trả lời của bạn được ghi lại từ "Đọc thêm". Bây giờ tôi biết làm thế nào để có được nhiều upvote thông qua sao chép và dán. CƯỜI LỚN. Tuy nhiên vẫn hữu ích.
lacostenycoder

18

Vâng, có một sự khác biệt giữa kernel và OS. Kernel như mô tả ở trên là trái tim của HĐH quản lý các tính năng cốt lõi của HĐH trong khi nếu một số ứng dụng và tiện ích hữu ích được thêm vào kernel, thì gói hoàn chỉnh sẽ trở thành HĐH. Vì vậy, có thể dễ dàng nói rằng một hệ điều hành bao gồm một không gian kernel và một không gian người dùng.

Vì vậy, chúng ta có thể nói rằng Linux là một hạt nhân vì nó không bao gồm các ứng dụng như tiện ích hệ thống tệp, hệ thống cửa sổ và máy tính để bàn đồ họa, lệnh quản trị hệ thống, trình soạn thảo văn bản, trình biên dịch, v.v. và cung cấp hệ điều hành của họ như ubfox, suse, centOS, redHat, v.v.


9

Hệ điều hành là một tên chung được đặt cho tất cả các yếu tố (giao diện người dùng, thư viện, tài nguyên) tạo nên toàn bộ hệ thống.

Hạt nhân là "bộ não" của hệ điều hành, điều khiển mọi thứ từ truy cập vào đĩa cứng đến quản lý bộ nhớ. Bất cứ khi nào bạn muốn làm bất cứ điều gì, nó đi qua kernel.


8

Nhân là một phần của hệ điều hành, trong khi bản thân nó không phải là hệ điều hành. Thay vì đi sâu vào tất cả những gì kernel làm, tôi sẽ chuyển đến trang wikipedia: http://en.wikipedia.org/wiki/Kernel_%28computing%29 . Tuyệt vời, tổng quan kỹ lưỡng.


3
Meh, thay vào đó hãy thử câu đầu tiên của en.wikipedia.org/wiki/Operating_system . Một hệ điều hành được giao nhiệm vụ chính thức với việc trung gian truy cập vào các tài nguyên hạn chế (gần như mọi thứ trên máy tính) và các hạt nhân nguyên khối thực hiện chính xác điều đó (các hạt vi mô đổ một số công việc đó vào các quy trình, nhưng chúng vẫn được phân phối với kernel). Từ một lập trình viên tiềm năng, hạt nhân HĐH. Người dùng có thể tin tưởng vào shell hoặc các giao diện khác, nhưng đó là người dùng . Hãy nhớ rằng hệ điều hành chạy trên mọi thứ, từ siêu máy tính cho đến bất kỳ tiện ích nhúng nào cần thực hiện hai điều.
dmckee --- ex-moderator mèo con

Vì vậy, quan điểm của bạn là MỘT SỐ hệ điều hành chính là hạt nhân hoặc các bộ phận của HĐH mà người dùng tương tác không phải là một phần của HĐH?
danben

Ngoài ra, "câu đầu tiên của en.wikipedia.org/wiki/Operating_system" nói "Hệ điều hành (HĐH) là giao diện giữa phần cứng và người dùng ..." vì vậy tôi không hiểu tại sao bạn lại phân biệt giữa những gì một người dùng tương tác với và phần còn lại của nó.
danben

7

kernel là một phần của hệ điều hành, đây là điều đầu tiên mà bộ tải khởi động tải lên cpu (đối với hầu hết các hệ điều hành), nó là phần giao tiếp với phần cứng và nó cũng quản lý các chương trình có thể làm gì với phần cứng, nó thực sự là phần trung tâm của hệ điều hành, nó được tạo thành từ các trình điều khiển, trình điều khiển là một chương trình có giao diện với một phần cứng cụ thể, ví dụ: nếu tôi tạo một máy ảnh kỹ thuật số cho máy tính, tôi sẽ cần phải làm một trình điều khiển cho nó, các trình điều khiển là chương trình duy nhất có thể kiểm soát đầu vào và đầu ra của máy tính


3

Câu trả lời đơn giản

Kernel là phần cốt lõi của hệ điều hành. Nó không nhất thiết phải là một hệ điều hành trong chính nó.

Mọi thứ khác được xây dựng xung quanh nó.

Định nghĩa EllabISE

Hạt nhân (điện toán) - Wikipedia


Vì vậy, hệ điều hành Kernel không có trình điều khiển?
Xinus

1
Không ... hầu hết các Kernels liên kết các phần khác nhau của Hệ điều hành với nhau (không chỉ các trình điều khiển).
Justin Niessner

2

Trong điện toán, 'kernel' là thành phần trung tâm của hầu hết các hệ điều hành máy tính; nó là cầu nối giữa các ứng dụng và xử lý dữ liệu thực tế được thực hiện ở cấp độ phần cứng. Trách nhiệm của kernel bao gồm quản lý tài nguyên của hệ thống (giao tiếp giữa các thành phần phần cứng và phần mềm). Thông thường là một thành phần cơ bản của hệ điều hành, hạt nhân có thể cung cấp lớp trừu tượng ở mức thấp nhất cho các tài nguyên (đặc biệt là bộ xử lý và thiết bị I / O) mà phần mềm ứng dụng phải điều khiển để thực hiện chức năng của nó. Nó thường làm cho các cơ sở này có sẵn cho các quy trình ứng dụng thông qua các cơ chế truyền thông giữa các quá trình và các cuộc gọi hệ thống.


2

Hạt nhân có thể là hệ điều hành hoặc nó có thể là một phần của hệ điều hành. Trong Linux, kernel được tải và thực thi trước. Sau đó, nó khởi động các bit khác của HĐH (như init) để làm cho hệ thống trở nên hữu ích.

Điều này đặc biệt đúng trong môi trường vi nhân. Nhân có chức năng tối thiểu. Mọi thứ khác, như hệ thống tệp và TCP / IP, chạy như một quy trình người dùng.


Kernel trong một ngôn ngữ script như Ruby thì sao? Ví dụ: nếu bạn đã cài đặt Ruby, bạn có thể chạy nó từ thiết bị đầu cuối * nix ruby -e "puts Kernel.methods"và bạn sẽ thấy nhiều phương thức được xác định.
lacostenycoder

2

Kernel cư trú trong OS. Thực tế, đây là không gian bộ nhớ được cung cấp đặc biệt để xử lý các chức năng os.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.