2015-06-06 4 views
3

Я пытался добавить функцию выключения к своей ОС домашнего компьютера, но у меня пока нет такого API. Мне было интересно, как ОС заканчивает власть? Я был бы признателен, если бы кто-нибудь мог дать мне некоторые рекомендации для начала.сбрасывая ОС без использования API

+0

Я не думаю, что понимаю ... вы имеете в виду что-то вроде http://stackoverflow.com/questions/2352698/what-happens-during-the-shutdown-process-of-an-os? – cdvv7788

+1

Да. Но я пытаюсь написать его api. Что-то простое не похоже на передачу барана на жесткий, а затем на остановку или .... Просто отключите питание и завершите поток os. –

+1

Ну, попробуйте выключатель питания или сбросьте. Серьезно: как вы думаете, закрыть компьютер с помощью программного обеспечения без интерфейса для этого программного обеспечения? Если вы ничего не храните на диске или не пишете все, просто остановите и выключите компьютер. На самом деле это то, что другие системы использовали, когда у компьютеров были правильные переключатели питания и нет «мягкого отключения» (pre-ATX). – Olaf

ответ

6

Ваш низкоуровневый код для закрытия оборудования будет зависеть от архитектуры. Для отключения устройства i386 с BIOS, INT 15h - это вектор, который в конечном итоге используется мониторами ОС.

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

Я ожидаю, что другие дадут ответы, которые помогут вам изучить Linux APM и код ACPI. В ядрах i386 существует очень простая функция apm_power_off() в arch/x86/kernel/apm_32.c, которая отключает INT 15.