컴퓨터를 쓰다보면 ACPI란 말을 자주 듣게 된다. 사실 윈도를 설치할때 몇번 듣게 됨과 동시에 전원이 자동으로 꺼지지 않으면 사용하란 말도 듣게된다. 이 ACPI란 무엇일까? 

ACPI란 일종의 컴퓨터 전력관리 표준규격에 일종이다. 우리가 시스템종료를 실행했을때 따로 스위치조작없이 전원이 나가는것도 이 ACPI때문이며 노트북에서 배터리모드로 자동 전환되는것도 바로 이 ACPI의 규격에 나와있는것이다. 헌데 이 ACPI가 표준그대로 잘 만들어지면 크게 문제는 없겠는데 PC제작사에서 대충 동작만 가능하게끔 만들어놓곤 하는것이 문제다. 이 동작여부도 오로지 당시의 대세윈도만 여부를 판단한다. 지금시점이라면 윈도7이 될것이다. 대기업PC라면 미리 탑재된 윈도만 동작확인을 하며 다른OS는 신경도 안쓰기 마련이다.

사실 윈도에서도 규격에 맞지않게 만들어졌다면 당연히 정상작동을 안해야 하는데 윈도란것이 워낙 괴랄한 하드웨어지원을 하는터라(레거시지원이 제일 잘되는OS가 바로 윈도)신기하게도 작동을 한다. 

문제는 여기서 발생되는데 다른OS를 설치해서 사용하는경우 이 ACPI설계가 개판이면 정상작동여부가 불투명해진다는 것이다. 대표적인것이 2.6.38때 벌어진 pci-e과열사태가 있다. 윈도야 워낙 잘 돌아갔지만 aspm을 강제 활성화하지 않은경우 리눅스에서는 배터리광탈 및 과열을 일으켜버리고 사망하시는 일이 일어났는데 일부 비표준ACPI지원과 관련이 있다고 한다. 그도 그럴것이 리눅스를 미리 탑재하고 출시되는 PC는 몇 안되니 리눅스의 점유율을 높이려면 기존 윈도와 동거(?)하던가 윈도를 밀어내고 자리를 차지하는 수밖에 없다. 그런데 그 윈도 기본탑재PC들이 저런 개판ACPI를 달고 다니는 경우가 꽤 있다보니 리눅스도 윈도마냥 괴랄한지원을 추가하는 수밖에 없다.

그런 비표준ACPI지원하려다 생겨난 버그도 생기고 하는터에 최근 리눅스는 전력관리 테이블조차 윈도의 것을 그대로 쓰는것으로 밝혀졌다. 아니, 사실 PC마다 멋대로이기는 해도 OS별 전력관리테이블이 존재해서 팬컨트롤이나 cpu스로틀링 같은것을 해당테이블에 맞춰 운영하게 되어있는데 보통은 리눅스용 테이블이 만들어져있어서 이것을 이용하지만 이것마저 개판인 경우도 많다보니 그냥 리눅스에서 리눅스용 테이블대신 윈도용 테이블을 가져다가 사용한다는 것이다. 제 아무리 많은 발전을 한 리눅스라고는 해도 윈도와 전원관리 철학이 다르지 않았던가(리눅스는 전원절약보다는 안정을 선호 윈도는 노트북에 한해 전력최소를 지향)하지만 워낙PC제조사들이 막장짓을 자주해서인지 커널부터 윈도용을 가져가 쓴다니...(물론 부트옵션으로 리눅스용 테이블을 쓰게끔 할 수도 있다)

어쨌건 불행인지 다행인지 옛날에 꽤 문제를 닐으키던 ACPI활성화 문제는 적당히 해결이 됐는지도 모르겠다. 하지만 지금도 가끔 최신 하드웨어에서 전력관리가 안 되어서 과열및 전력광탈 현상이 아직도 목격되고 있다. 시간이 지나면 자연스럽게 해결될 문재라고는 한다. 그런데 그게 언제냐고...

옛날이야기를 하자면 우분투 라이브 옵션 중에 acpi=off 옵션이 붙어있었다. 이것은 아에 acpi를 무시하겠다는 의미로 팬이 왕왕돌아가면서 사용자의 귀를 간지럽히게 된다. 그리고 자동 셧다운도 작동하지 못했다. 어떤의미인줄 알겠는가? 리눅스에서 acpi를 지금수준으로 지원하는것도 거의 기적이라고 생각이 들 정도다. 이러니 아직도 리눅스가 전력관리 못한다는 소릴듣지...

정말 리눅스는 언제쯤 메인 대세가 될 수 있을 것인가... 아니면 PC제조사들이 신경써서 표준그대로 설계하면 참 좋을텐데(실제 호환이 가장 뛰어난 하드웨어는 애플의 물건이다)