Почему старые компьютеры просят меня отключить питание вручную?
Я видел очень старый компьютер под управлением Windows XP. На экране он показывает флаг Windows и следующий текст:
Windows была закрыта. Вы можете безопасно отключить питание.
Что это значит? Почему компьютер требует выключения питания?
5 ответов
Не всегда у компьютеров было необходимое оборудование для самостоятельного выключения. Еще важнее то, что даже после того, как они приобрели эту функцию (в основном с помощью унаследованного механизма ACPI), был длительный период времени, когда реализации BIOS были настолько дико несовместимы, что ОС очень часто не могла успешно получить доступ к этим средствам.
Вплоть до NT4 экран "Windows был выключен. Вы можете безопасно отключить питание" был стандартным, с NT5 (он же Windows 2000) переход к выключению ACPI стал широко распространенным, а с NT 5.1 (он же Windows XP) стал новым нормальный. Было все еще много оборудования, которое не могло быть отключено XP, поэтому текст оставался видимым довольно часто.
Взрыв из прошлого. По сути, в "старые добрые времена" нажатие кнопки питания приводило к отключению питания компьютера - не было логики или стремления сказать оператору, что пора завершать работу. Аналогично, у ОС не было возможности сказать аппаратному обеспечению: "Хорошо, я корректно отключился, чтобы вы могли отключить питание сейчас". Поэтому для выключения ПК потребовалось два шага: 1. Завершить работу ОС. 2. Выключите компьютер (часто с помощью тумблера на блоке питания). Теперь я чувствую себя старым.
Современные ПК с материнскими платами ATX имеют контрольный контакт в разъеме для блока питания. Это позволяет операционной системе управлять источником питания, что приводит к автоматическому отключению питания при завершении работы операционной системы.
Если материнская плата старше ATX или контакт не подключен, то операционная система не может отключить питание, поэтому отображается сообщение, информирующее пользователя о том, что он может безопасно выключить компьютер.
Старые и простые не многозадачные операционные системы, такие как DOS, которые существовали при создании платформы ПК, буквально делали только одну вещь за раз. Поэтому, когда DOS, например, читал или записывал на диск, он не выполнял никакой другой задачи. DOS - это однозадачная операционная система. Таким образом, если вы не отключите питание системы во время записи файла, вероятность катастрофы невелика. В частности, если ваша система находилась в командной строке DOS и не запускала никаких других приложений, ничего не нужно было делать до выключения системы. Таким образом, вы можете просто отрезать его.
Современные многозадачные операционные системы поддерживают понятие фоновых процессов и сервисов, поэтому это гораздо менее безопасно. Добавьте к этому тот факт, что современные ОС много делают для повышения производительности ввода-вывода, например:
- использовать нераспределенную оперативную память для кэширования чтения с диска,
- кэшировать часто используемые служебные данные, такие как каталоги и указатели файлов в оперативной памяти,
- собирать кучу запросов на запись и на самом деле не делать их по запросу, а запланировать их на более позднее время, чтобы выполнить кучу сразу.
Поэтому для такой операционной системы, практически любой версии Windows от 95/NT4.0 и выше, необходимо сообщить системе, что вы хотите выключить ее, чтобы она могла остановить все процессы, которые могли считывать / записывать, и сбрасывать любые буферизованные верните данные на диск и убедитесь, что все служебные данные обновлены.
Понятие о способности операционной системы отключать питание само по себе приобрело популярность с введением стандарта ACPI в декабре 1996 года. Это определило функции BIOS и интерфейсы платформы для операционной системы (даже DOS) для отключения питания. (Его предшественником является стандарт APM, выпущенный в 1992 году и отличающийся.)
Windows 95 предшествует ACPI на год, а DOS и Windows хорошо известны своей обратной совместимостью. Многие версии Windows поддерживают ACPI, но все еще работают, если ACPI отсутствует (Не уверен, что APM когда-либо поддерживался Windows). Если ACPI отсутствует или отключен в системе, операционная система не может самостоятельно отключить питание, поэтому она должна попросить пользователя сделать это.
Windows Vista была первой операционной системой, которая не работала или не позволяла установить, если ваш BIOS и оборудование не поддерживают ACPI. Сегодня нет обычных материнских плат для ПК без ACPI и возможности отключения.
Это была не XP, а, вероятно, Windows 9x - и мы можем винить ACPI или отсутствие поддержки в Windows 9x.
Существенно старые системы не имели управления питанием, как у современной системы, и имели жесткие кнопки питания.
Более современные системы имеют мягкие переключатели питания, которые сообщают системе о постепенном отключении через ACPI, если вы не удерживаете ее, и предписывают отключить ее СЕЙЧАС. Все в программном обеспечении. У меня здесь есть ответ, в котором подробно рассказывается о том, как силовой переключатель превратился из правильных мужских высоковольтных блоков в более мягкие, скудные мягкие переключатели сегодняшнего дня.
Таким образом, в Windows 9x сообщение "Windows было закрыто", по сути, записало все на диск и подготовилось к выключению. У ОС не было возможности сообщить системе о выключении питания (без поддержки ACPI), поэтому полагалось на то, что вы отключите питание.