1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Теория ОС

Тема в разделе "Софт", создана пользователем Carma, 03.03.04.

  1. Carma

    Carma Почётный

    6.410
    0
    Тут вопросик возник. Как понимать термин "ядро операционной системы"? Дайте плиз четкое определение. Образование непрофильное, сам не могу.
     
  2. Vaulter

    Vaulter Активный участник

    1.621
    0
    я понимаю это, как процедуру (программу, набор программ, код, функцию, код короче) отвечающей за "взаимопонимание" драйверов (как виндозное понятие, так и линоховое) и BIOSа вместе с какимилибо системными прерываниями...
    но я могу и ошибатся
     
  3. Beagle 2

    Beagle 2 Активный участник

    886
    0
    Могу предложить свое. Ядро операционной системы - это часть ОС, выполняющаяся в специальном (привилегированном) режиме и отвечающая за управление аппаратными ресурсами, диспетчеризацию процессов и поддержку файловых систем и операций над ними, а также предоставляющая интерфейс программам пользователя к данным функциям.
     
  4. Nevermind

    Nevermind Активный участник

    2.027
    0
    Функциональный базис ОС.

    Входящие в него компоненты выводятся из определения ОС и ее функциональности.

    Думаю (специально вопросом не занимался, поэтому - imo), здесь стоит отметить загрузчик ОС (хотя, еще вопрос, стоит ли относить его непосредственно к ОС), систему ввода/вывода, менеджеры распределения памяти и процессов и API. Остальное - опционально.

    Справедливо для ProtMode, причем, справедливо условно - в "режиме ядра" можно пустить любой процесс, иногда даже там, где ось эту фишку не допускает. Да и придуман он лишь для удобства, чтобы юзерские процессы куда не надо не лезли. В RM же "специальные режимы" отсутствуют.
     
  5. Beagle 2

    Beagle 2 Активный участник

    886
    0
    Protected/Real modes - это режимы одного-единственного типа процессоров - ix86. Нормальные процессоры таких терминов не знают, а знают режимы в смысле уровней привилегий выполняющихся процессов. Даже в случае, если у процессора отсутствует Memory Management Module (MMU), то процессы могут лазить "куда угодно" в смысле памяти, но не обязательно в смысле других аппаратных ресурсов, например, портов ввода/вывода.
    Я бы не стал относить загрузчик ОС к самой ОС... А то тогда и BIOS придется отнести к ОС...
    Система ввода/вывода и распределение памяти - это суть и есть управление аппаратными ресурсами.
     
  6. Nevermind

    Nevermind Активный участник

    2.027
    0
    Про "нормальные процессоры" не скажу, так как дальше х86 пока не ходил :).

    Подумал немного и вспомнил, что взаимоотношения меж различными уровнями привилегий в х86 урегулируются процессором и существует набор команд, выполняющихся только в Ring0... Таки да, даже в случае PM для ядра будет нужен именно высший уровень.

    Возражения насчет RM остаются в силе :).

    Согласен. Я, когда писал про загрузчик, несколько не в ту сторону думать начал...
     
  7. Beagle 2

    Beagle 2 Активный участник

    886
    0
    Какие ОС работают в реальном режиме? Только не надо приводить в качестве примера DOS ;)
     
  8. Nevermind

    Nevermind Активный участник

    2.027
    0
    Любые, которые написаны для использования в нем ;).

    Технические особенности в исходном вопросе - второстепенны. Следовательно, может быть рассмотрен любой вариант, для любой архитектуры. И каждый вариант должен быть учтен. Вот если бы привилегии присутствовали в работе любого процессора, и доступ к некоторым ресурсам, критичным в контексте работы оси возможен лишь с высшим уровнем - тогда да, их упоминание было бы значимым в рамках определения.
     
  9. AlTk

    AlTk Читатель

    10.692
    0
    ядро операционной системы - это подсистема, состоящая из минимального набора компонент необходимого и достаточного для данной архитектуры ЭВМ и ОС и предназначенная для управления и контроля за работой всех остальных подсистем, причем компоненты ядра взаимодействуют между собой напрямую, при помощи формализованных интерфейсов, без посредников. как правило, ядро операционной системы работает в самом высоком по привелегиям режиме процессора.

    ПС. файловые процессы и управление памятью не обязательно должны входить в ядро. это не является необходимым условием.
     
    Последнее редактирование: 04.03.04
  10. Beagle 2

    Beagle 2 Активный участник

    886
    0
    В общем, напоминает мне эта дискуссия споры схоластов про количество ангелов на кончике иглы :) Или про попытку дать определение точке в геометрии. Или про спор в RU.OS.CMP, что такое файл. Там сошлись тогда, что файл - это именованная область на диске, иногда неименованная, иногда не область и не на диске. ;)
    Кстати, бывает так, что ядро ОС есть, а самой ОС нет. :) Например, Linux. Реже бывает и наоборот - ОС есть, а ядра как такового может и не быть. :doc:
    А требование помещения файловой системы и управления памятью в ядро вытекает из требований по безопасности и разграничению доступа. А вообще, бывают ОС с монолитным ядром (традиционная UNIX) и с микроядерной организацией (QNX). Для этих типов требования и организация ядра кардинально различаются.
     
  11. Carma

    Carma Почётный

    6.410
    0
    В-общем конечно тоже интересно, но предметом спора стало определение ядра Windows (если точнее - XP). Что-нибудь подытожим?
     
  12. AlTk

    AlTk Читатель

    10.692
    0
    Beagle 2
    нет такого требования.

    Carma
    я буду исходить из предположения, что ядро Windows XP эквивалентно ядру операционной системы Windows 2000.
    ядро операционной системы Windows XP - это подсистема, состоящая из следующих модулей/компонент, содержащих низкоуровневые функции для обеспечения работы операционной системы: планирование и распределение потоков, диспетчеризация прерываний и исключений, многопроцессорная синхронизация, а также набора подпрограмм и базовых объектов, необходимых исполняющей подсистеме.

    ПС. а файл - это это некий именованный объект, содержащий данные, не имеющий фиксированный объем и позволяющий опрерировать данными через ссылку на это имя, обладающий независимостью от расположения с однозначно определенным набором функций ОС, обеспечивающих обмен данными с файлом.
     
  13. Beagle 2

    Beagle 2 Активный участник

    886
    0

    Какого? На принадлежность функций файловой системы (read, write, и так далее) ядру? Есть, если мы говорим о мультизадачной ОС, реализующей file locks и атомарность вышеупомянутых операций.
    Оперировать данными через ссылку на это имя, значит... А я могу вот такой фокус показать. В Unix временные файлы создаются таким образом - программа открывает временный файл где-нибудь в /tmp, получает дескриптор этого файла, и затем этот файл удаляет. Потом спокойно пишет/читает посредством дескриптора файла, хотя самого файла в списке ls -l уже нет. Очень удобно - не надо чистить за собой временные файлы. Получается, файл есть, а именованного объекта - нет. ;)
     
  14. AlTk

    AlTk Читатель

    10.692
    0
    Beagle 2
    я перечислил то, что есть в ядре windows 2000, где там файловая система и управление памятью?
    странное какое-то требование получается - тут требуется, а тут не требуется.

    "самого файла в списке ls -l уже нет"
    так все-таки нет файла или нет в списке?
     
  15. Beagle 2

    Beagle 2 Активный участник

    886
    0
    Если в перечисленном тобой нет файловой системы и управления памятью, то это не значит, что их там действительно нет :) Менеджер виртуальной памяти и драйверы файловые системы Windows NT выполняются в режиме ядра. Может, Олиферы тут и тут ошибаются? И вообще, в какой ОС драйверы выполняются в режиме пользователя, а не ядра?
    Нет именованного файла.
     
  16. AlTk

    AlTk Читатель

    10.692
    0
    Beagle 2,
    Вы книги внимательно читаете?
    "Для этого в NT executive имеется специальный компонент - менеджер виртуальной памяти".
    если бы было так как говорите Вы, то они написали бы так:
    "Для этого в NT kernel имеется специальный компонент - менеджер виртуальной памяти
    есть подсистема ядро - kernel и есть исполняющая подсистема - executive.
    это РАЗНЫЕ подсистемы.
    я уже говорил - "ядро... ...а также набора подпрограмм и базовых объектов, необходимых исполняющей подсистеме."

    ради бога, пусть не будет "именованного файла" - это Ваш термин, а не мой. где в определении сказано о сроке "жизни" именованного объекта и что он обязан быть?
     
  17. Beagle 2

    Beagle 2 Активный участник

    886
    0

    Кажется, пора определяться с терминами, если уж мы заговорили о Windows XP. Просто для меня ядро этой ОС - это файл ntoskrnl.exe.

    Да ну действительно, фиг с ним, с этим файлом... А то еще случится то же самое, что в RU.OS.CMP....
     
  18. Carma

    Carma Почётный

    6.410
    0
    Beagle 2
    типа Declaration of Terms use? :)


    Собственно в этом то и вопрос. Если это он, то какие функции выполняет, это и будет определением ядра Windows XP.

    Carma добавил [date]1078570994[/date]:

    Как в анекдоте - "А то получится как вчера"? :)
     
  19. Beagle 2

    Beagle 2 Активный участник

    886
    0
    Типа да :)

    Вот я на него сейчас Exescope натравил и вытащил секцию Exports, в коей есть вызовы, относящиеся к функционированию файловой системы (Fs* - FsRtlInitializeFileLock, FsRtlProcessFileLock, ...), вводу-выводу (Io* - IoDeleteDevice, IoCreateDevice, ...) управлению памятью (Mm* - MmAllocateContiguousMemory, MmAllocateNonCachedMemory, ...), аутентификации (Lsa* - LsaLogonUser, ...), управления процессами и нитями (Ps* - PsGetCurrentProcess, PsGetCurrentThread, ...) и еще много чего, опознающегося уже с трудом. Есть, кстати, даже sprintf/memcpy/strlen и прочие :eek:
    Как бы не хуже :)
     
  20. AlTk

    AlTk Читатель

    10.692
    0
    ну и ну!!!

    Beagle 2
    "пора определяться с терминами, если уж мы заговорили о Windows XP. Просто для меня ядро этой ОС - это файл ntoskrnl.exe. "

    Carma
    "какие функции выполняет, это и будет определением ядра Windows XP.

    вполне может так получиться, что найценное Вами определение не будет соответствовать принятому в МС. :-)

    специально для Carma.
    я уже перечислил Вам то, чем занимается ядро Windows 2000. эта архитектура и эти термины используются в МС. то, что Вы там вместе с Beagle 2 для себя наопределяете - это и будет только для Вас.

    ПС. по-моему в RU.OS.CMP как раз по-этому и не могли договориться что такое файл.

    ППС. если уж так интересует ntoskrnl.exe, то вот Вам для помощи в "определениях" его составляющие части : кеш-менеджер, испольняющая подсистема, ядро, монитор безопасности, менеджер памяти и планировщик.
     
  21. Beagle 2

    Beagle 2 Активный участник

    886
    0
    2 AlTk Ну и замечательно, я целиком и полностью согласен, что определения должны звучать так, как они были даны разработчиком. Другое дело, что если дается определение такого рода, то надо и указывать на источник - откуда взято. Даже в Средневековье все споры схоластов заканчивались сразу после предъявления цитаты из какой-нибудь книги Аристотеля :)
     
  22. AlTk

    AlTk Читатель

    10.692
    0
    за то время, пока мы беседуем, можно было сходить купить книжку или найти информацию в сети.
    а источник информации я не скрываю - университет и http://www.microsoft.com :-)