Kexec

kexec은 현재 돌아가는 커널에 새로운 커널을 부팅하게 하는 리눅스 커널의 메커니즘이다. 근본적으로 kexec는 부트로더 단계와 하드웨어 초기화 단계를 건너뛰며 직접적으로 새로운 커널을 메인 메모리에 로드하고 즉시 실행한다. 이것은 전체 리부팅과 관련된 긴 시간을 피하고 다운타임을 최소화 시킴으로써 시스템이 높은 가용성을 충족하게 한다.[1][2]

실현 가능케하기 위해 kexec는 다음의 두 가지 메커니즘을 구현해야 한다.

  • 현재 진행 중인 커널의 메모리는 돌아가는 도중에 새로운 커널에 의해 덮어써진다.
  • 새로운 커널은 일반적으로 모든 하드웨어 장치들이 잘 정의된 상태라고 가정한다. 실제 리부팅을 우회하는 것은 장치들을 알려지지 않은 상태로 남기며 새로운 커널은 이 상태에서 회복되어야 한다.

오직 사인된 커널만 kexec에 의해서 부트되게 지원하기 위해 리눅스 커널의 3.17부터 추가되었다.[3] 이것은 루트 사용자가 임의의 코드를 kexec를 통해 로드하고 실행하는 것을 불허하며 오직 사인된 리눅스 커널 모듈만 실행 중인 커널에 삽입될 수 있다.[4][5][6]

같이 보기

[편집]
  • kdump - 내부적으로 kexec를 사용하는 리눅스 커널의 충돌 덤프 메커니즘
  • kGraft - SUSE에 의해 개발된 리눅스 커널 라이브 패치 기법
  • kpatch - 레드햇에 의해 개발된 리눅스 커널 라이브 패치 기법
  • Ksplice - Ksplice 사에 의해 개발된 리눅스 커널 라이브 패치 기법

각주

[편집]
  1. Hariprasad Nellitheertha (2004년 5월 4일). “Reboot Linux faster using kexec”. IBM. 2013년 1월 21일에 원본 문서에서 보존된 문서. 2013년 12월 5일에 확인함. 
  2. David Pendell (2008년 8월 16일). “Reboot like a racecar with kexec”. 《linux.com》. 2009년 2월 14일에 원본 문서에서 보존된 문서. 2013년 12월 5일에 확인함. 
  3. “Linux kernel 3.17, Section 1.10. Signed kexec kernels”. 《kernelnewbies.org》. 2014년 10월 5일. 2014년 11월 3일에 확인함. 
  4. Jake Edge (2014년 6월 25일). “Reworking kexec for signatures”. LWN.net. 2014년 8월 9일에 확인함. 
  5. Matthew Garrett (2013년 12월 3일). “Subverting security with kexec”. 《dreamwidth.org》. 2013년 12월 5일에 확인함. 
  6. Kees Cook (2013년 12월 10일). “Live patching the kernel”. 《outflux.net》. 2013년 12월 12일에 확인함. 

외부 링크

[편집]