해킨토시 관련 게시판이 아닙니다 | 2번 |
---|
안녕하세요.
해킨 때문에 dsdt를 많이 보다 보니 _OSI와 OSYS에 대해서도 알게 되었습니다.
_OSI와 OSYS는 현재 어떤 운영체제로 부팅했는지를 알기 위해 사용됩니다.
_OSI는 운영체제가 제공하는 함수로, _OSI ("운영체제 이름") 이런 식으로 사용합니다.
괄호 안에 들어가는 값이 현재 부팅한 운영체제라면 true를 리턴합니다.
보통 \_SB.PCI0의 INI 함수에서 각 운영체제 이름별로 _OSI를 실행해 보고 이에 따라 OSYS 값을 설정합니다.
그런데 특이하게도 OSYS 값을 설정하는 부분에서
OSYS = 0x07D0 If (_OSI ("Linux")) { OSYS = 0x03E8 } If (_OSI ("Windows 2001")) { OSYS = 0x07D1 }
그리고 그 밑에 윈도우 버전별로 OSYS가 조금씩 증가합니다.
OSYS 값이 클수록 더 많은 기능이 활성화됩니다.
즉, Windows XP(Windows 2001)보다 최신 버전 리눅스에서 활성화되는 기능이 더 적은 거죠.
왜 이러지 하다가 이런 사실을 알게 되었습니다.
_OSI는 원래 이러라고 만든 게 아닙니다. _OSI 전에 _OS라는 게 이 역할을 했습니다.
그런데 _OS는 문제가 많았습니다. DSDT에 이런 식으로 쓰여 있는 운영체제가 아니면 제대로 작동하지 않습니다.
그래서 _OSI는 운영체제가 아닌 그 운영체제가 지원하는 기능을 확인하는 용도였습니다.
_OSI ("3.0 Thermal Model") 이런 식이죠.
하지만 _OSI가 나오고 얼마 되지 않아, M$가 일을 저질렀습니다. 바로 Windows 2001이라는 걸 만든 것이죠.
바이오스 제조사들도 이 방식을 따라했습니다.
그래서 _OSI는 어쩌다보니 _OS와 같은 역할을 하게 되었습니다.
그리고 리눅스는...
_OSI ("Windows 2001")에 true를 리턴하기 시작합니다. 자기 자신이 윈도우라고 바이오스를 속이는 거죠.
2009년 언젠가에 나온 리눅스 커널부터는 _OSI("Linux")에 false를 리턴하고 firmware bug라는 내용을 dmesg 로그에 남깁니다.
그리고 지금도 Windows 2020 Windows 2021 이런 게 나올 때마다 리눅스 커널에는 해당 윈도우 버전에 true를 리턴하도록 업데이트됩니다.
윈도우랑 리눅스는 호환되지 않는데도 이러는 이유는 이게 차라리 나아서입니다.
바이오스 제조사들은 알 수 없는 이유로 _OSI ("Linux")가 감지되면 많은 기능을 비활성화하도록 합니다.
그리고 리눅스에 대해서는 바이오스 테스트도 하지 않습니다. 분명히 리눅스 쓰는 사람이 거의 없어서겠죠. 그래서 _OSI ("Linux")가 true가 되면 ACPI Error가 쏟아져 나오는거죠.
이래서 어쩔 수 없이 리눅스는 호환되지도 않는 윈도우에 따라가게 되었습니다.
비록 사용하는 사람은 거의 없지만 그래도 리눅스 데스크톱을 사용하는 사람은 분명히 있습니다.
또, _OSI ("Linux") 이렇게 하면 옛날에 나온 리눅스 0.0.1이랑 최신 버전 (21/11/16 기준 5.15.2)이랑 구분할 수 없는 단점이 있어서 _OSI ("Linux 5"), _OSI ("Linux 4") 이런 식으로 리눅스 버전을 같이 명시해주면 좋겠다는 생각도 듭니다.
물론 원래 _OSI의 목적처럼 운영체제가 지원하는 기능을 확인하는 용도로 _OSI가 사용되면 좋겠지만, 이렇게 될 것 같지는 않습니다.
이런 의미에서 바이오스 제조사들이 리눅스에서도 한번 테스트해 주고 리눅스도 커널에 따라 _OSI ("Linux 5"), _OSI ("Linux 4") 이런 식으로 해서 리눅스가 윈도우를 따라가지 않아도 되는 날이 왔으면 합니다.
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
Apple Release Candidates 소식 24/10/21일자 | 242 | 24.10.2204:03 | 제로섬 |
Apple public update Releases 소식 (10/04일자) | 402 | 24.10.0409:21 | 제로섬 |
비 지원 맥용 OpenCore-Legacy-Patcher 2.0.2 다운로드(24/09/29... +6 | 2.7만 | 23.06.0413:37 | 제로섬 |
Safari_18.1_for_macOS_Sonoma(619B22)&Ventura_beta_4(619B2... +2 | 285 | 24.09.2014:03 | 제로섬 |
windows & macOS / Install macOS Sequoia beta7 15.1_24B50... | 281 | 24.09.2005:24 | 제로섬 |
세퀘이아 15.0.1 정식(24A348) 전체 프로그램(24/10/04일자) up +4 | 503 | 24.09.1704:38 | 제로섬 |
windows & macOS / Install macOS Sequoia 정식 15.0.1_24A34... | 977 | 24.07.1806:01 | 제로섬 |
Apple macOS UniversalMac_15.0.1 정식 (24A348)복원IPSW (24/10/... +3 | 431 | 24.09.1020:58 | 제로섬 |
macOS Sonoma 14.7.1 RC3 (23H221) 전체 프로그램 다운로드(24/10... +2 | 653 | 24.08.3015:43 | 제로섬 |
macOS Ventura 13.7.1 RC3 (22H220) 전체 프로그램 다운로드(24/1... | 450 | 24.08.3016:24 | 제로섬 |
windows & macOS / Install macOS Sonoma RC3 14.7.1_23H221... +1 | 5168 | 23.10.1211:27 | 제로섬 |
windows & macOS / Install macOS Ventura RC3 13.7.1_22H220... +1 | 8038 | 23.10.1213:08 | 제로섬 |
Apple M1/M2/M3 macOS Sequoia 15.1 RC (24B82)복원IPSW (24/10/2... | 352 | 24.08.1320:14 | 제로섬 |
Apple Public Releases for 소식 24/08/07일자 | 396 | 24.08.0809:53 | 제로섬 |
macOS Sonoma 14.6.1 정식 (23G93) 전체 프로그램 다운로드(24/08... +4 | 1022 | 24.07.3018:28 | 제로섬 |
macOS Ventura 13.6.9 정식 (22G830) 전체 프로그램 다운로드(24/... | 457 | 24.07.3018:21 | 제로섬 |
macOS Monterey 12.7.6 정식 (21H1320) 전체 프로그램 다운로드 (... +2 | 472 | 24.07.3018:04 | 제로섬 |
Apple Public Releases for 소식 24/07/29일자 +3 | 274 | 24.07.3014:14 | 제로섬 |
Apple, macOS 15 Sequoia 공개 정보 +2 | 3249 | 24.07.0716:59 | 제로섬 |
Safari_18.0.1_정식 설치프로그램_macOS_Sonoma(619A64a)&Ven... +1 | 2639 | 24.07.0619:09 | 제로섬 |
Apple M1/M2/M3 macOS Sonoma 14.6.1 정식 (23G93)복원IPSW (24/0... | 2511 | 24.06.1811:51 | 제로섬 |
Safari_17.6_for_Ventura&Monterey 정식 설치 프로그램 24/07... +1 | 4003 | 24.04.0717:28 | 제로섬 |
windows & macOS / Install macOS Sonoma 정식 14.6.1_22G93.... +1 | 3924 | 24.04.0520:26 | 제로섬 |
windows & macOS / Install macOS Ventura 정식 13.6.9_22G83... | 3709 | 24.04.0521:40 | 제로섬 |
windows & macOS / Install macOS Monterey 정식 12.7.6_21H1... | 3747 | 24.04.0522:27 | 제로섬 |
윈도우 11 23H2 ISO 다운로드 가능 +2 | 1.6만 | 23.11.0423:27 | Mactopia |
Windows에서 macOS 부팅 가능한 USB를 만드는 방법 +16 | 1.9만 | 23.10.0711:52 | 제로섬 |
windows & macOS / Install macOS Big Sur 11.7.10_20G1427.d... | 2.2만 | 23.07.2512:50 | 제로섬 |
여친 없는 엑팔인들을 위한 스팀 게임 몇 가지 나눔 합니다. +27 | 6.7만 | 23.03.0220:10 | 잠퉁이 |
최신 Windows 다운로드 +12 | 4.6만 | 21.10.1703:35 | Dokdo |
윈도우 필수 유틸 #1 - Hoax Eliminator 구라 제거기 +4 | 4.5만 | 21.08.1017:08 | Mactopia |
우분투 서버 설치하기 +3 | 3.5만 | 21.06.0404:29 | 매킨어렵 |
38 | 24.10.2301:14 | 잠퉁이 | |
79 | 24.10.2300:56 | 잠퉁이 | |
48 | 24.10.2300:53 | 잠퉁이 | |
71 | 24.10.2203:47 | 잠퉁이 | |
67 | 24.10.2203:42 | 잠퉁이 | |
242 | 24.10.2204:03 | 제로섬 | |
71 | 24.10.2102:59 | 잠퉁이 | |
50 | 24.10.2102:57 | 잠퉁이 | |
61 | 24.10.2023:18 | 잠퉁이 | |
93 | 24.10.2000:56 | 잠퉁이 | |
89 | 24.10.2000:52 | 잠퉁이 | |
55 | 24.10.1900:55 | 잠퉁이 | |
170 | 24.10.1902:01 | 잠퉁이 | |
52 | 24.10.1901:58 | 잠퉁이 | |
51 | 24.10.1900:36 | 잠퉁이 | |
59 | 24.10.1900:30 | 잠퉁이 | |
68 | 24.10.1900:27 | 잠퉁이 | |
66 | 24.10.1802:23 | 잠퉁이 | |
82 | 24.10.1802:20 | 잠퉁이 | |
52 | 24.10.1802:17 | 잠퉁이 | |
90 | 24.10.1802:15 | 잠퉁이 | |
105 | 24.10.1800:04 | 잠퉁이 | |
72 | 24.10.1800:00 | 잠퉁이 | |
64 | 24.10.1701:42 | 잠퉁이 | |
56 | 24.10.1701:40 | 잠퉁이 | |
74 | 24.10.1701:37 | 잠퉁이 | |
78 | 24.10.1701:35 | 잠퉁이 | |
78 | 24.10.1608:47 | 잠퉁이 | |
207 | 24.10.1612:14 | 제로섬 | |
69 | 24.10.1600:07 | Dokdo | |
108 | 24.10.1501:02 | 잠퉁이 | |
70 | 24.10.1402:49 | 잠퉁이 | |
77 | 24.10.1402:46 | 잠퉁이 | |
79 | 24.10.1402:42 | 잠퉁이 | |
88 | 24.10.1302:48 | 잠퉁이 | |
101 | 24.10.1302:05 | 잠퉁이 | |
68 | 24.10.1212:19 | Nelson | |
132 | 24.10.1201:46 | 잠퉁이 | |
91 | 24.10.1201:40 | 잠퉁이 | |
71 | 24.10.1122:06 | 잠퉁이 | |
108 | 24.10.1104:53 | 잠퉁이 | |
74 | 24.10.1104:43 | 잠퉁이 | |
63 | 24.10.1104:47 | 잠퉁이 | |
70 | 24.10.1104:35 | 잠퉁이 | |
71 | 24.10.1103:23 | 잠퉁이 | |
74 | 24.10.1103:21 | 잠퉁이 | |
68 | 24.10.1103:19 | 잠퉁이 | |
91 | 24.10.1003:28 | 잠퉁이 | |
99 | 24.10.1000:50 | 잠퉁이 | |
103 | 24.10.1000:47 | 잠퉁이 | |
81 | 24.10.1000:45 | 잠퉁이 | |
72 | 24.10.1000:41 | 잠퉁이 | |
77 | 24.10.1000:35 | 잠퉁이 | |
72 | 24.10.0904:41 | 잠퉁이 | |
92 | 24.10.0902:02 | 잠퉁이 | |
63 | 24.10.0901:59 | 잠퉁이 | |
51 | 24.10.0901:56 | 잠퉁이 | |
69 | 24.10.0901:54 | 잠퉁이 | |
52 | 24.10.0818:43 | 잠퉁이 | |
38 | 24.10.0818:42 | 잠퉁이 | |
81 | 24.10.0800:35 | 잠퉁이 | |
66 | 24.10.0800:33 | 잠퉁이 | |
69 | 24.10.0800:31 | 잠퉁이 | |
114 | 24.10.0805:25 | 제로섬 | |
77 | 24.10.0701:02 | 잠퉁이 | |
50 | 24.10.0700:57 | 잠퉁이 | |
65 | 24.10.0700:48 | 잠퉁이 | |
47 | 24.10.0700:52 | 잠퉁이 | |
52 | 24.10.0700:45 | 잠퉁이 | |
37 | 24.10.0700:41 | 잠퉁이 | |
81 | 24.10.0600:37 | 잠퉁이 | |
53 | 24.10.0600:34 | 잠퉁이 | |
64 | 24.10.0504:02 | 잠퉁이 | |
69 | 24.10.0503:59 | 잠퉁이 | |
93 | 24.10.0503:57 | 잠퉁이 | |
108 | 24.10.0401:54 | 잠퉁이 | |
82 | 24.10.0401:49 | 잠퉁이 | |
79 | 24.10.0401:44 | 잠퉁이 | |
72 | 24.10.0401:41 | 잠퉁이 | |
116 | 24.10.0401:38 | 잠퉁이 |