*** 번역본입니다. 심심풀이로 그냥 보세요 ***
https://eclecticlight.co/2019/10/21/why-catalina-may-have-problems-with-extensions/
Catalina가 확장 프로그램에 문제가있는 이유 (Why Catalina may have problems with extensions)
Catalina가 커널 확장 (KEXT)을 수락하고로드하는 데 문제가 있다는보고가 있습니다. 이 기사에서는 어떻게 발생할 수 있는지, 그리고 그들에 대해 무엇을 할 수 있는지 간략하게 살펴 봅니다.
커널 확장이로드되는 방법
커널 확장은 macOS의 기능을 상당히 근본적으로 확장하여 그 내부에서 일어나는 일을 효과적으로 변경하거나 확장합니다. 예를 들어, Mojave에서 애플은 300 개 이상의 자체 커널 확장을 제공하여 그래픽 카드, 네트워킹 및 그 밖의 다양한 기능을 제공합니다. 커널 확장이 없으면 macOS가 없습니다.
커널 확장의 원래 개념은 커널이 시작된 직후로드되었으며, 이전 버전의 Mac OS X이 그렇게했다는 것입니다. 로드하는 데 수십 개만 있었으므로 이는 특별한 부담이 아니 었으며 당시에는 각 커널 확장이로드되거나 로그에서 실패하는 것을 볼 수있었습니다. 그러나 그 수가 늘어남에 따라 시동 속도가 느려져 Mac OS X은 커널을 미리 링크 된 커널에로드하기 위해 필요한 모든 확장명으로 미리 링크하기 시작했습니다. 그 이후로 macOS는 대신 로딩하여 시작하여 많은 시간을 절약했습니다.
커널 확장은 여러 가지면에서 위험합니다. 시작시 (한 번에 하나씩 또는 미리 연결되어 있는지) 조기에로드되기 때문에 정교한 보안 보호 기능이 없습니다. 그뿐만 아니라 Mac의 핵심에서 일을 할 수 있습니다. 이는 악성 코드에 매우 위험합니다. 따라서 Apple은 Catalina에서 더욱 강화 된 커널 확장에 대한 엄격한 보안 요구 사항을 발전 시켰습니다.
카탈리나의 보안 메커니즘
한동안 애플은 KEXT를위한 특별한 보안 인증서를 얻기 위해 커널 확장을 개발하는 사람들을 요구했다. 올해 4 월 모하비와 카탈리나의 경우 커널 확장도 공증해야했기 때문에 애플은 각각의 악성 코드를 확인했다.
따라서 커널 확장을 처음 설치할 때 주요 보안 점검을 수행해야합니다. 2019 년 4 월 이후 서명되었지만 공증을받지 못한 경우 Mojave와 Catalina는이를 수락하지 않을 것이며, 경우에 따라 (최소한) 모하비에서 문제를 해결할 수는 있지만 대부분의 경우 쇼 스토퍼 여야합니다. 이는 커널 확장이 Apple에 의해 악성 코드를 검사하지 않았 음을 의미하며,이를 신뢰해서는 안됩니다. 개발자에게 연락하여 Apple의 보안 규칙을 상기시킵니다.
공증을 받고 Catalina의 보안 검사를 통과 한 경우에도 보안 및 개인 정보 창의 일반 탭 (Apple에서 사용자가 승인 한 커널 확장로드 라는 용어)을 사용하여 추가해야합니다 . Catalina는 일부 소프트웨어를 설치하고 처음 실행할 때 경고 및 프롬프트를 표시하는 경향이 있지만, 이는 더 중요한 사항 중 하나이며 특별한주의가 필요합니다.
Catalina는 커널 확장 설치에 대한 추가 변경 사항을 도입했으며, 사용자가 확장을 승인 한 후 Mac을 다시 시작해야로드 할 수있었습니다. 이것은 대부분의 베타 버전에 존재했지만 10.15가 출시되기 직전에 제거되었으며이 버전이 릴리스 버전에 적용되는지, 향후 카탈리나 업데이트에서 복구 될 것인지, 아니면 완전히 폐기 될지 확실하지 않습니다. 잘만되면 애플은 이것을 곧 분명히 할 것입니다.
커널 확장이 사전 연결된 커널에 구축되면 후자는 시스템 무결성 보호 (SIP)가 필요합니다. Catalina에서 이는 권한 설정 및 SIP 적용뿐만 아니라 읽기 전용 시스템 볼륨에 저장하는 것을 의미합니다.
미리 연결된 커널 만들기 및 설치
새로 설치 한 확장 프로그램이 설치되면 kextcache, 다른 모든 커널 확장 프로그램과 커널 자체를 연결하고 다음에 Mac을 시작할 때 미리 연결된 커널을 생성하는 것이 명령 도구 의 작업입니다 . Catalina의 읽기 전용 시스템 볼륨 이전에는이 작업이 충분히 복잡해졌으며 사전 링크 된 커널이 해당 시스템 볼륨에 저장되었으므로 훨씬 복잡해지고 오류가 발생하기 쉽습니다.
Objective Development의 Christian은 최근 이 새로운 시스템의 작동 방식에 대해 자세히 설명했습니다. 시스템 볼륨에 새로 빌드 된 사전 연결된 커널을 저장할 수있는 경우는 두 가지뿐입니다. macOS 업데이트 중, 설치 프로그램이 업데이트를 적용하기 위해 시스템 볼륨에 대한 쓰기 액세스 권한이있는 경우 및 macOS가 종료되기 직전입니다. 후자는 다른 모든 프로세스가 종료되었으므로 시스템 볼륨을 쓰기 액세스를 위해 안전하게 마운트 할 수 있으므로 쉘 스크립트 shove_kernels가 새 사전 연결된 커널을 / System / Library / PrelinkedKernels / prelinkedkernel 폴더에 복사 할 수 있습니다.
무엇이 잘못 될 수 있습니까?
객관적인 개발은 macOS가 통합 로그에 대한 쓰기를 중지 한 후와 커널이 종료되기 전에 발생하는 상황을 거의 볼 수 없게 만드는 기술적 문제를 극복 했으며 프로세스의 마지막 단계가 10.15 및 이전의 많은 베타 버전에서 실패 할 수 있음 을 발견 했습니다. 카탈리나 릴리스. Little Snitch 사용자가 Catalina를 사용하여 관찰 한 문제점과 문제점으로 인해 현재 Catalina 사용자는 Apple이이 문제를 해결할 때까지 Little Snitch를 업데이트하지 않는 것이 좋습니다. 이전 버전의 커널 확장으로 최신 버전의 Little Snitch를 실행하면 심각한 충돌이 발생할 수 있기 때문입니다.
현재 이것이 이미 성공적으로 설치된 커널 확장 업데이트에만 적용되는지 또는 일부 커널 확장에서만 문제가 발생하는지, 다른 커널 확장에서만 문제가 발생하는지는 확실하지 않습니다. 내 자신의 경험은 Catalina에서 완전히 새로운 커널 확장을 성공적으로 설치할 수 있다는 것입니다. Objective Development 가이 문제를 겪고 있다고 10.15의 늦은 베타 버전에서 Parallels Desktop 으로이 작업을 수행했습니다. 커널 확장 설치에 의존하는 다른 저명한 제품이 많기 때문에 10.15가 사전 연결된 커널을 전혀 업데이트 할 수 없다고 생각하기가 어렵습니다.
아직 고려되지 않았으며 10.15.1이 출시 될 때까지는 불가능한 한 가지 해결 방법은 새 커널 확장을 성공적으로 설치 한 후 커널 또는 시스템 커널 확장을 대체하는 macOS 업데이트를 설치하는 것입니다. 이렇게하면 미리 연결된 새로운 커널을 빌드하고 설치해야하므로 업데이트 된 커널 확장도 포함해야합니다.
Relief in sight?
지난 6 월 WWDC 2019에서 애플은 써드 파티 커널 확장에서 멀어 지길 원한다고 발표했으며 시스템 확장의 형태로 교체한다고 발표했다. 그러나 지금까지 애플은 커널 확장에서 개발자를 독려하는 데 큰 진전을 보이지 않은 것으로 보인다. 서명을 위해 새 보안 인증서를 신청 한 일부 개발자는 6 월 이후 Apple로부터 아무런 소식도 듣지 못했기 때문에 타사 개발자에게는 지연이 없습니다.
어쩌면 타사 앱이 KEXT를 SEXT로 대체하는 것을 보는 데 다소 시간이 걸릴 수 있습니다.
❝인텔 오픈코어는 시기상조인가요?❞