> man operating_systems
Переход на страницу  [1] 2
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
vilmor
Четверг 16.12.2004 14:26
ID пользователя #140
Зарегистрирован: Пятница 29.10.2004 17:09
Местонахождение: Tomsk, Russia
Сообщений: 35
Тема перенесена из мини-чата.

написал(а) ...
Alexander вкл среда, 15 декабря 2004, 00:31:04
Подскажите, чем нано-ядро отличается от микро-ядра.


написал(а) ...
vilmor вкл среда, 15 декабря 2004, 10:50:56
Принципиальные различия найти трудно: наноядра отличаются друг от друга не меньше, чем от микроядер. Как правило, наноядрами называют просто очень мальенькие микроядра, а каким образом достигается меньший размер - уже другой вопрос.


написал(а) ...
Alexander вкл среда, 15 декабря 2004, 14:36:16
В том то и вопрос. Что-то подсказывает мне, что HAL по сути является нано-ядром.


написал(а) ...
vilmor вкл среда, 15 декабря 2004, 16:07:03
Я не большой специалист по NT, но мне кажется, что HAL является чем-то вроде библиотеки низкоуровневых функций, которая позволяет абстрагироваться от особенностей железа, и ничего более. Т.е., она не реализует сервисы ядра, такие как защита, управление памятью, шедулинг. В то же время, даже самые простые наноядра должны реализовать, как минимум, механизмы IPC и адресные пространства.
http://tunes.org/~unios/oskernels.html#nt – здесь говорится, что NT основывается на Mach-подобном микроядре, которое работает поверх HAL. Уже это значит, что HAL не может быть наноядром.


написал(а) ...
vilmor вкл среда, 15 декабря 2004, 16:09:53
ЗЫ: пора тему на форум переносить


написал(а) ...
Alexander вкл среда, 15 декабря 2004, 20:20:32
Всё бы вам что-то куда-то переносить
Я в общем-то не имел ввиду именно NT-шный HAL, а вообще. В принципе нет точной спецификации, что должно входить в ядро. То что ты говоришь, вовсе не обязательные сервисы.


Давай определимся с тем, что есть ядро, за что оно отвечает, и что в нём должно присутствовать.

Вот определение HAL:
http://en.wikipedia.org/wiki/Hardware_abstraction_layer
A hardware abstraction layer is a layer between the physical hardware of a computer and the software that runs on that computer. The function is to hide differences in hardware and therefore provide a consistent platform to run applications on.

Т.е., этот уровень ПО просто скрывает различия между различными аппаратными платформами, предоставляя унифицированный доступ к интерфейсам аппаратного обеспечения, и он не предоставляет ничего более.

Теперь определение ядра:
http://en.wikipedia.org/wiki/Kernel_%28computers%29
In computer science, the kernel is the fundamental part of an operating system. It is a piece of software responsible for providing secure access to the machine's hardware to various computer programs. Since there are many programs, and access to the hardware is limited, the kernel is also responsible for deciding when and how long a program should be able to make use of a piece of hardware, in a technique called multiplexing.

Т.е., любое ядро обязано предоставлять безопасный доступ к железу, посредством мультиплексирования. Ядро принимает решения, когда и какие функции железа могут быть предоставлены той или иной программе. Никакой HAL не предоставляет этой возможности.

Там же. даётся определение монолитного ядра:
The monolithic approach defines a high-level virtual interface over the hardware, with a set of primitives or system calls to implement operating system services such as process management, concurrency, and memory management in several modules that run in supervisor mode.

Значит, монолитное ядро обязано предоставлять сервисы для управления процессами, памятью и временем выполнения. Никакой HAL не предоставляет этих сервисов.

Далее, даётся определение микроядра:
The microkernel approach consists in defining a very simple abstraction over the hardware, with a set of primitives or system calls to implement minimal OS services such as thread management, address spaces and interprocess communication.

Значит, микроядро обязано предоставлять сервисы для работы с нитями и адресными пространствами, а так же обеспечивать взаимодействие между процессами (IPC) – то, о чём я и говорил ранее, даже не глядя в это определение микроядра. Повторюсь, никакой HAL не предоставляет этих сервисов.

Как видишь, существуют общепринятые определения различных типов ядер, в которых ясно говорится об обязательных сервисах. Согласно этим определениям, HAL не может считаться ни монолитным, ни микроядром.

Повторюсь, наноядро – это своего рода микроядро, из которого выкинули, например, управление стратегией кеширования сраниц виртуальной памяти, планировшик задач или работу с контроллером прерываний. Но в любом случае, в наноядре должны оставаться IPC и адресные пространства, поскольку они составляют суть микроядерной архитектуры – разделение всей функциональности системы на изолированные серверы, которые совместно решают задачу, взаимодействуя друг с другом.
Наверх
Сайт
vilmor
Четверг 16.12.2004 14:34
ID пользователя #140
Зарегистрирован: Пятница 29.10.2004 17:09
Местонахождение: Tomsk, Russia
Сообщений: 35
более кратко:

nanokernel != hal
nanokernel > hal
if (nanokernel == hal) BUG();
Наверх
Сайт
Roman I Khimov
Четверг 16.12.2004 14:49

ID пользователя #1
Зарегистрирован: Воскресенье 27.06.2004 12:37
Местонахождение: Санкт-Петербург
Сообщений: 601
exokernel == hal ?


Греби и улыбайся!
Наверх
Сайт
vilmor
Четверг 16.12.2004 15:20
ID пользователя #140
Зарегистрирован: Пятница 29.10.2004 17:09
Местонахождение: Tomsk, Russia
Сообщений: 35
Насколько я знаю, экзоядра вообще не предоставляют аппаратных абстракций, и потому не могут рассматриваться как HAL.
Наверх
Сайт
vilmor
Четверг 16.12.2004 15:23
ID пользователя #140
Зарегистрирован: Пятница 29.10.2004 17:09
Местонахождение: Tomsk, Russia
Сообщений: 35
HAL есть HAL,
футбол есть футбол...
Наверх
Сайт
Chizh
Четверг 16.12.2004 22:59
ID пользователя #90
Зарегистрирован: Понедельник 13.09.2004 18:42
Сообщений: 170
vilmor написал(а) ...
Повторюсь, наноядро – это своего рода микроядро, из которого выкинули, например, управление стратегией кеширования сраниц виртуальной памяти, планировшик задач или работу с контроллером прерываний.
Да, правильно. Поэтому можно считать, что наноядро является просто HAL-сервером.
Наверх
Сайт
vilmor
Пятница 17.12.2004 11:58
ID пользователя #140
Зарегистрирован: Пятница 29.10.2004 17:09
Местонахождение: Tomsk, Russia
Сообщений: 35
написал(а) ...
Alexander 16 дек : 22:43
На том сайте так и написано: "Наноядро - это уровень абстракции от процессора". Это и есть HAL (Hardware Abstraction Layer), если ещё кто не в курсе.


Пожалуйста, дай URL и точную цитату.

Если "Наноядро - это уровень абстракции от процессора", то оно так бы и называлось: "HAL".

Могу ещё одно определение наноядра подкинуть:
http://en.wikipedia.org/wiki/Nanokernel
Nanokernel is the lowest-level part of the system software for PowerPC processor-based Macintosh computers.

Далее написано ещё такое:
More generally, a nanokernel is so small that even some basic harware controllers aren't managed by the core kernel. E.g the PIC (Programmable Interrupt Controller) or either the Timer are considered as devices and managed externally.

Т.е., то, что претендует на роль HAL, не абстрагирует базовые аппаратные сервисы. Странно, правда?

Продолжая тему глупых определений:
http://www.hyperdictionary.com/dictionary/Hardware+Abstraction+Layer
Meaning of HARDWARE ABSTRACTION LAYER
The layer of Microsoft Windows NT where they have isolated their assembly language code.

Я долго плакаль

написал(а) ...
Alexander 16 дек : 22:55
Это конечно не точное определение наноядра, поэтому надо добавить, что наноядро является HAL-сервером.


Что такое HAL-сервер?
Из названия мне ясно только то, что этот сервер предоставляет доступ к HAL, не выполняя никакого мультиплексирования, и сам по себе не создаёт никаких абстракций, таких как адресное пространство, нить или посылка сообщения.
Наверное, я не так понимаю этот термин.

Вижу только один выход из блуждания в терминологических дебрях: дай своё определение наноядра, указав, за что оно отвечает и чем отличается от HAL.

ЗЫ: у меня создалось впечатление, что nanokernel - это просто buzzword, и каждый использует его как хочет, например, в отношении LSE/OS, EROS, KeyKOS, которые, по сути, являются совершенно разными системами. И никто из них при этом не даёт своего определения наноядра. А мы тут копья ломаем...

Lingvo8:
buzzword
1) специальные термины, произносимые с целью произвести впечатление на дилетантов
2) модные словечки
Наверх
Сайт
Chizh
Вторник 21.12.2004 22:59
ID пользователя #90
Зарегистрирован: Понедельник 13.09.2004 18:42
Сообщений: 170
написал(а) ...
Пожалуйста, дай URL и точную цитату.

Это из сообщения
captain cobalt вкл Thursday, 16 December 2004, 13:27:11
Я понимаю наноядро так:
http://www.lowlevel.ru/cgi-bin/yabb/YaBB.cgi?board=is;action=display;num=1090609923

написал(а) ...
Что такое HAL-сервер?
Из названия мне ясно только то, что этот сервер предоставляет доступ к HAL, не выполняя никакого мультиплексирования, и сам по себе не создаёт никаких абстракций, таких как адресное пространство, нить или посылка сообщения.
Наверное, я не так понимаю этот термин.

Верно, неправильно Суть сервера в этом и состоит. Здесть сервер это синоним ядра.
<span class='smallblacktext'>[ Редактирование Tuesday 21.12.2004 23:08 ]</span>
Наверх
Сайт
vilmor
Среда 22.12.2004 10:46
ID пользователя #140
Зарегистрирован: Пятница 29.10.2004 17:09
Местонахождение: Tomsk, Russia
Сообщений: 35
Alexander написал(а) ...
написал(а) ...
Пожалуйста, дай URL и точную цитату.

Это из сообщения
captain cobalt вкл Thursday, 16 December 2004, 13:27:11
Я понимаю наноядро так:
http://www.lowlevel.ru/cgi-bin/yabb/YaBB.cgi?board=is;action=display;num=1090609923

Читал.
Не согласен.

Alexander написал(а) ...
написал(а) ...
Что такое HAL-сервер?
Из названия мне ясно только то, что этот сервер предоставляет доступ к HAL, не выполняя никакого мультиплексирования, и сам по себе не создаёт никаких абстракций, таких как адресное пространство, нить или посылка сообщения.
Наверное, я не так понимаю этот термин.

Верно, неправильно Суть сервера в этом и состоит. Здесть сервер это синоним ядра.

Хорошо. Допускаю, что наноядро - это HAL-сервер. Но сервер - довольно широкое понятие. Его можно понимать по разному. Поэтому не могу считать это определение полным и точным.
Наверх
Сайт
captain cobalt
Понедельник 27.12.2004 13:01

ID пользователя #12
Зарегистрирован: Воскресенье 04.07.2004 21:44
Местонахождение: /ru/perm
Сообщений: 144
vilmor написал(а) ...

Читал.
Не согласен.

Там есть присказка

"Что такое наноядро? Разные исследователи называют этим словом различные понятия. Наноядро, о котором я говорю, предназначено для того, чтобы..."

которая должна исключать любые споры "о словах"...

Во всём остальном изложенный там материал является конструктивным, на тему "как надо писать ось" [нового качества].

В отличие от прорвы неконструктивных разговоров на темы "как не надо писать ось", "что такое наноядро", "айда с нами ось писать", "всё равно вы не порвёте микрософт" и т. п...
На которые начиная с некоторых пор мне стало жаль тратить своё время...

bluebottle.ethz.ch - Bluebottle. Швейцария. Сделано с умом.
Наверх
Сайт
Переход на страницу  [1] 2  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.