OS
How does OS shut down your PC?
J## 处理器:Everything is a State Machine CPU[State] 程序是在状态中循环往复 return指令的行为: 从刚刚的状态出来,然后改掉 所以:你写的程序是无法退出的。你写的程序是无法退出的。 了解windows关机过程 - 久月 - 博客园 (cnblogs.com) Linux系统自带poweroff命令,快速关闭电脑 (linux系统poweroff) – 港服(Server.HK) 纵观操…
J## 处理器:Everything is a State Machine
CPU[State] 程序是在状态中循环往复
return指令的行为: 从刚刚的状态出来,然后改掉
所以:你写的程序是无法退出的。你写的程序是无法退出的。 了解windows关机过程 - 久月 - 博客园 (cnblogs.com) Linux系统自带poweroff命令,快速关闭电脑 (linux系统poweroff) – 港服(Server.HK) 纵观操作系统历史,探索shutdown、poweroff、halt与reboot的前世今生 - 知乎 (zhihu.com)
[源码级解析] 漫游源码、纵观Linux&Unix历史,探索shutdown、poweroff、halt与reboot的前世今生 – Untitled Spot_未命名小站 UEFI/BIOS——ACPI 相关概念整理 - 知乎 (zhihu.com)
也就是说,使用shutdown所执行的并非关机(与BSD/现代操作系统均不同),而是挂断所有远程终端(因为当时的远程连接依靠的是电话线,可以参考我写过的《在Linux中建立后台任务的若干种姿势》),然后进入单用户模式(即禁止其他用户连接)。因为此时已经没有任何用户操作计算机,管理员就可以自行关闭设备(如磁盘/磁带机),清除数据(临时数据),同步磁盘(在System V中是自动的),然后手动关闭电源。init s命令的用途同样可以在这个Patch的描述中看到。
ACPI诞生
在ACPI诞生前,高级电源管理(APM, Advanced Power Management)将电源管理几乎完全交给BIOS,呆板而限制很多,这让微软十分不爽,它希望在电源管理和硬件配置上能有更多的自主权,这也是合理的,谁比操作系统更懂现在用户在干什么呢?
1997年由英特尔、微软、东芝公司共同提出、制定了ACPI 1.0规范。ACPI,顾名思义,就是配置硬件和管理电源的规范。2000年8月康柏和凤凰科技加入,推出 ACPI 2.0规格。2004年9月惠普取代康柏,推出 ACPI 3.0规格。2009年6月16日則推出 ACPI 4.0规格。2011年11月23日推出ACPI 5.0规格。由于ACPI技术正被多个操作系统和处理器架构采用,该规格的管理模式需要与时俱进。2013年10月,ACPI的推广者们一致同意将ACPI的属有归到UEFI论坛。从那以后新的ACPI规格将由UEFI论坛制定。最新的规范是ACPI 6.1,大家可以在Welcome to Unified Extensible Firmware Interface Forum上下载到最新的版本。

但随着ACPI的出现,操作系统得以通过BIOS对电源进行控制(之前只能在BIOS菜单中设置或者完全不能设置)。ACPI提供了电池信息、低功耗睡眠、风扇管理、温度管理等先进功能,但最主要的是终于支持电源管理了!
可以看出它并不包含古老的PIC,CMOS,PIT等等规范,这些我们称之为Legacy支持。ACPI可以实现的功能包括:
1.系统电源管理(System power management)
2.设备电源管理(Device power management)
3. 处理器电源管理(Processor power management)
4.设备和处理器性能管理(Device and processor performance management)
5.配置/即插即用(Configuration/Plug and Play)
6.系统事件(System Event)
7.电池管理(Battery management)
8.温度管理(Thermal management)
9.嵌入式控制器(Embedded Controller)
10.SMBus控制器(SMBus Controller)
If you need to cite this post
Haibin Lai. (September 19, 2024). “How does OS shut down your PC?” [Blog post]. Retrieved from https://www.haibinlaiblog.top/posts/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E6%98%AF%E6%80%8E%E4%B9%88%E5%85%B3%E9%97%AD%E7%94%B5%E8%84%91%E7%9A%84/
@online{lai--,
title={How does OS shut down your PC?},
author={Haibin Lai},
year={2024},
url={https://www.haibinlaiblog.top/posts/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E6%98%AF%E6%80%8E%E4%B9%88%E5%85%B3%E9%97%AD%E7%94%B5%E8%84%91%E7%9A%84/},
}
Haibin's blog