Не могут объяснить записи “катастрофического отказа” в выводе 'последней' команды

Система UNIX состоит из нескольких частей или слоев, поскольку я хотел бы назвать их.

Для запуска системы программа, названная загрузчиком, живет в первом секторе раздела жесткого диска. Это запускается системой, и в свою очередь это определяет местоположение Ядра операционной системы, и загрузите его.

Разделение на уровни

  1. Ядро. Это - центральная программа, которая запущена загрузчиком. Это делает взаимодействие базового оборудования для системы (диск, память, видео, звук) и предлагает виртуальную среду, в которой это может запустить программы. Ядро также поставляет все драйверы, которые имеют дело со всеми небольшими различиями между устройствами. К внешнему миру (более высокие слои), каждый класс устройств, кажется, ведет себя точно тем же последовательным способом - на который в свою очередь, могут положиться программы.

  2. Фоновые подсистемы. Существуют только обычные программы, которые просто остаются вне Вашего пути. Они обрабатывают вещи как удаленный вход в систему, обеспечивают шину сообщения английского квинтала и делают действия на основе событий аппаратных средств/сети. Например, исследование Bluetooth, управление Wi-Fi, и т.д. Любые сетевые службы (файловый сервер, сервер печати, веб-сервер) также живут на этом уровне. В системах UNIX это все просто нормальные программы.

  3. Инструменты командной строки. Это все небольшие программы, которые могут быть запущены, чтобы сделать вещи как редактирование текста, загрузив файлы, или управляя системой. На данном этапе система UNIX полностью применима для системы adminstrators. В Windows этот слой действительно больше не существует.

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

Любой сервис или событие пойдут от нижней части все до вершины.

Библиотеки - общая платформа

Программы делают много общих вещей как отображение окна, рисование материала в экране или загрузке файла. Этими вещами является то же для нескольких программ, следовательно тот код помещается в отдельные файлы "библиотеки" (.so файлы - значение общего объекта). Библиотека может быть совместно использована через все программы.

Для каждой вообразимой вещи существует библиотека. Существует один для чтения/записи файлов PNG. Существует один для файлов JPEG, для чтения XML, для шифрования, для воспроизведения видео, и так далее.

На Linux общими библиотеками для разработчиков приложений является Qt и Gtk. Эти библиотеки пользуются библиотеками низшего уровня внутренне для их определенных потребностей при представлении их функциональности хорошим последовательным и кратким способом к разработчикам приложений создать приложения еще быстрее.

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

Некоторыми библиотеками можно пользоваться через различные операционные системы (например, QT), на некоторых действительно конкретно набрасываются одна операционная система. Это ограничит Вашу программу, чтобы смочь работать в той платформе только.

Коммуникация процесса Интера

Третья угловая часть операционной системы, способ, которым могут общаться друг с другом программы. Это механизмы Коммуникации процесса Интера (IPC). Они существуют в нескольких разновидностях, например, части общей памяти, или маленький канал настраивается между двумя программами для обмена данными. Существует также центральная шина сообщения, на которой каждая программа может добавить сообщение и получить ответ. Это используется для глобальной связи, где это неизвестно, какая программа может ответить.

От библиотек до Операционных систем

С библиотеками, IPC и ядром на месте, программисты могут создать все виды приложений для системных служб, управления пользователями, конфигурации, администрирования, офисной работы, развлечений, и т.д. Это формирует полный комплект, который неопытные пользователи распознают как "операционная система".

В системах UNIX/Linux все сервисы являются просто программами. Все инструменты системного администратора являются просто программами. Они все делают свое задание, и они могут быть объединены в цепочку вместе. Я суммировал много главных программ по http://codingdomain.com/linux/sysadmin/


Различимые части с Windows

UNIX является главным образом системой программ, файлов и ограниченных полномочий. Большого количества сложностей избегают, делая это мощной системой, в то время как похоже, что это имеет легкое задание, делающее его.

Подробно, это принципы, которые могут быть найдены через системы UNIX/Linux:

  • Существуют универсальные способы получить доступ к информации. ("Все - просто файл"). Можно открыть файл, сетевой сокет, канал IPC, параметры ядра и блочное устройство как файл. Следовательно появление виртуальных файловых систем в/dev,/sys и/proc. Единственный API, в котором Вы когда-либо нуждаетесь, open, read и close.

  • Базовая система прозрачна. Каждая программа работает по тем же правилам. В отличие от Windows, нет никакого искусственного различия между "консольной программой", "gui программа" или "фоновый сервис". Они - все просто программы, которые, оказывается, делают разные вещи. Они могут также все наблюдаться, анализироваться и отлаживаться таким же образом.

  • Настройки читаемы, доступны для редактирования, и могут быть аннотированы комментариями. Они обычно имеют формат INI-стиля, но могут использовать пользовательский формат для потребностей того приложения. Поскольку они - просто файлы, они могут быть скопированы в другие системы, заархивированные или скопированный со стандартными инструментами.

  • Нет большой "выполняют во всем этом однажды" приложения. Молитва, "делают одну вещь, сделайте это хорошо". Инструменты командной строки могут быть объединены в цепочку и вместе быть мощными. Отдельные сервисы (например, SMTP, IMAP и POP и вход в систему) являются отдельными подпрограммами, избегая, чтобы комплекс переплел код и проблемы безопасности. Сложные настольные среды делегируют тяжелую работу к отдельным программам.

  • fork(). Новые программы запущены существующей программой, клонирующей себя. Клон настраивает все (например, дескрипторы файлов) и дополнительно заменяет себя новым кодом программы. Это делает действительно легким применить те же настройки безопасности и ограничения на новые программы, память доли или установить механизм IPC. Стоимость запуска процесса является также очень низкой.

  • Файловая система является одним деревом, в котором могут быть смонтированы другие разделы диска и сетевые ресурсы. Существует снова, универсальный способ получить доступ к данным. Местоположения общей системы (например. /usr может легко быть смонтирован как сетевой ресурс.

  • Система создается для низких полномочий пользователя. После входа в систему каждый пользователь (кроме корня) заключен их собственные ресурсы, запущенные приложения и файлы только. Сетевые службы уменьшают свои полномочия как можно скорее. Существует единственный ясный способ получить больше прав или попросить, чтобы кто-то выполнил привилегированное задание от их имени. Любой вызов ограничен ограничениями и ограничениями программы.

  • Каждая программа хранит настройки в скрытом файле / папка пользовательского корневого каталога. Никакая программа никогда не пытается записать глобальный файл установки.

  • Польза к открыто описанным механизмам связи по секретным механизмам или конкретный 1 к 1 механизмы. Другие поставщики и разработчики программного обеспечения поощряются следовать за той же спецификацией, таким образом, вещи могут легко быть соединены, выгружены и все же остаться слабо связанными.

10
29.09.2011, 00:21
1 ответ

last печать crash как время выхода из системы, когда нет никакой записи выхода из системы в wtmp база данных для сеанса пользователя.

Последняя запись в last вывод означает это myuser зарегистрированный pts/0 в 12:02 и, когда система отказала между 14:18 и 15:03, она должна быть все еще зарегистрирована.

Обычно, в wtmp существует две записи для каждого сеанса пользователя. Один в течение времени входа в систему и один в течение времени выхода из системы. Когда система отказывает, вторая запись могла отсутствовать. Так last предполагает, что пользователь был все еще зарегистрирован когда разрушенная система и печать crash как время выхода из системы.

Чтобы быть более ясными, те две строки "катастрофического отказа" являются только двумя сессиями, которые были активны когда система, разрушенная около 15:00, не два системных катастрофических отказа.

17
27.01.2020, 20:01
  • 1
    Не Делайте я чувствую себя ржавым теперь... уверенный, что я знал это в какой-то момент!Спасибо... большое спасибо –  Kyle Hodgson 29.09.2011, 00:47
  • 2
    Делает last всегда печатайте запись перезагрузки после катастрофического отказа? И для сеанса пользователя действительно ли возможно отказать, но вся ОС? –  CMCDragonkai 08.12.2015, 13:38
  • 3
    1) Да, это. wtmp запишет каждую начальную загрузку системы, но отображенное сообщение ( last) является зависящим от реализации. 2) нет, сеанс пользователя не может отказать. Программа, управляющая сеансом пользователя, может неправильно закончиться, но, в этом случае, wtmp просто запишет выход из системы. –  andcoz 08.12.2015, 20:42

Теги

Похожие вопросы