Если я должен знать то, что это, говорится в Linux/Unix, 32/64 бита
uname -a
Это дало бы мне почти всю информацию, в которой я нуждаюсь,
Если я далее должен знать то, что выпускает его, говорят (Centos 5.4, или 5.5 или 5.6) на поле Linux, я далее проверил бы файл /etc/issue
видеть его информацию о выпуске (или для Debian / Ubuntu /etc/lsb-release
)
Альтернативный путь состоит в том, чтобы использовать lsb_release
утилита:
lsb_release -a
Или сделайте a rpm -qa | grep centos-release
или redhat-release
поскольку RHEL получил системы
Микроядра требуют, чтобы меньше кода было выполнено в самом внутреннем, пользующемся наибольшим доверием режиме, чем монолитные ядра. Это имеет много аспектов, таких как:
Графический интерфейсы пользователя Unix предоставлены через X-окно, которое является кодом пространства пользователя (за исключением (часть) драйвер видеоустройства). Много современных нельдов позволяют обычным пользователям загружать драйверы файловой системы через FUSE. Часть фильтрации сетевого пакета Linux может быть сделана в пространстве пользователя. Однако драйверы устройств, планировщики, диспетчеры памяти и большинство сетевых протоколов все еще только для ядра.
Классик (если датированный) чтение о Linux и микроядрах является дебатами Tanenbaum–Torvalds. Двадцать лет спустя можно было сказать, что Linux очень очень медленно двигает структуру микроядра (загружаемые модули появились вначале, FUSE более свеж), но существует все еще длинный путь для движения.
Другой вещью, которая изменилась, является увеличенная уместность виртуализации на настольных и высокопроизводительных встроенных компьютерах: в некоторых целях соответствующее различие не между ядром и пространством пользователя, а между гипервизором и гостевыми Ose.
Микроядро ограничивает время, система находится в привилегированном режиме, в противоположность пространству пользователя, к возможному абсолютному минимуму.
Если катастрофический отказ происходит в привилегированном режиме, все ядро понижается, и это означает, что вся система понижается. Если катастрофический отказ происходит в непривилегированном режиме, просто тот процесс понижается. Linux устойчив в этом отношении, но для любой подсистемы ядра все еще возможно переписать память любой другой подсистемы ядра, или целеустремленно или случайно.
Понятие микроядра помещает много материала, который является традиционно привилегированным режимом, таким как сети и драйверы устройств, в пространстве пользователя. Так как микроядро не действительно ответственно за много, который также означает, что это может быть более простым и более надежным. Думайте о способе, которым протокол IP, будучи простым и глупым, действительно приводит к устойчивым сетям путем продвижения сложности к краям и отъезда базового наклона и средний.
Необходимо считать другую сторону проблемы:
Экстремальные Высокопроизводительные Вычисления или Почему Микроядра сосут
Просто смотрите на x86 архитектуру - монолитное ядро только использует кольца 0 и 3. Отходы, действительно. Но, чем снова это может быть быстрее, из-за меньшего количества контекстного переключения.
Случай - то, что ядро Linux является гибридом монолитных и микроядра. В чистой монолитной реализации нет никаких модулей, загружающихся во времени выполнения.
Монолитное ядро значительно старше, чем микроядро. Это используется в Unix, в то время как идея микроядра появилась в конце 1980-х.
Примерами Ose, имеющих монолитные ядра, является UNIX, LINUX, в то время как Ose, имеющие микроядро, являются QNX, L4, HURD и первоначально Махом (не MacOS X), который был позже преобразован в гибридное ядро. Даже MINIX не является чистым микроядром, потому что его драйверы устройств компилируются как часть ядра.
Монолитные ядра быстрее, чем микроядра. Первое микроядро Маха на 50% медленнее, чем монолитные ядра. Более поздние версии как L4 составляют только 2% или на 4% медленнее, чем монолитное ядро.
Монолитные ядра являются обычно большими, в то время как чистое микроядро должно быть маленьким в размере, даже впишитесь в первый кэш уровня процессора (микроядро первого поколения).
В монолитных ядрах драйверы устройств находятся в пространстве ядра, в то время как в микроядре драйверы устройств находятся в пространстве пользователя.
Так как драйверы устройств находятся в пространстве ядра, оно делает монолитное ядро менее безопасным, чем микроядро (Отказ в драйвере может вести для катастрофического отказа). Микроядра более безопасны, чем монолитные ядра, следовательно они используются во многих военных устройствах.
Монолитные ядра используют сигналы и сокеты для обеспечения IPC, в то время как подход микроядра использует очереди сообщений. 1-й генерал микроядра плохо реализовал IPC, таким образом, они были медленными на контекстных переключениях.
Добавление новых опций к монолитной системе означает перекомпилировать целое ядро, в то время как можно добавить новую опцию или патчи без перекомпиляции
Windows NT (ядро, лежащее в основе современных систем Windows) начиналась как довольно ванильный микроядерный дизайн. Из-за проблем с производительностью все больше и больше "пользовательского" кода переходило в "микроядро"... сегодня структура микроядра является рудиментом.
Термины монолитное ядро
и микроядро
нельзя серьезно сравнивать, поскольку они описывают разные аспекты проектирования ядра (структура против размера).
Типичным монолитным ядром было ядро SunOS-4.x, и Linux все еще похож на него, поскольку вы вручную настраиваете содержимое базового ядра.
Ядро Solaris (начиная с версии 2.1 в 1992 году) уже нельзя назвать монолитным, поскольку все драйверы загружаются автоматически по требованию, и только небольшая часть загружается во время начальной загрузки.
SunOS-4.x и Solaris (SunOS-5.x) и Linux - все это реализации с одним контекстом. Весь их код выполняется в одном контексте MMU.
Mac OS X основана на Mach и работает как многоконтекстная реализация с несколькими процессами, разделенными контекстами MMU. В этой концепции драйверы находятся в отдельных процессах и отдельных контекстах MMU.
Многие называют Mac OS X "микроядерной системой", но может оказаться, что базовое ядро не меньше, чем базовое ядро Solaris.
Поэтому кажется, что лучше говорить о одноконтекстных ядрах
против многоконтекстных ядер
.