:: ADVANCE ::

[용어] 커널 본문

Study/Hardware

[용어] 커널

KSJ14 2014. 10. 10. 03:19
반응형

커널이란?

 

커스텀 커널을 알기 위해서는 우선 커널이 무엇인가 알 필요가 있다.

커널은 모든 운영체제의 가장 기본적인 요소로 쉽게 말해 소프트웨어와 하드웨어를 연결해주는 다리라고 보면 된다.

소프트웨어는 사용중인 안드로이드 "운영체제"이고 하드웨어는 디스플레이, 스피커 등 물리적인 부품을 말하는 것이다.

 

 

 

예를 들어 앱을 실행하기 위해 스크린을 터치하는 것도 실제로는 복잡한 과정을 거친다.

화면의 터치를 인식하는 계수기(digitiser)에서 터치를 인식하면

좌표가 생성되어 커널을 통해 시스템(운영체제)에 전달된다.

시스템은 현재 보여지고 있는 화면에서 그 좌표가 앱실행을 의미하는 것을 알고 앱을 실행하게 된다.

앱이 실행 될 경우 디스플레이에 보여야 하는 이미지가 바뀌기에

시스템은 커널을 통해 디스플레이에 띄워야 할 데이터를 보내 화면으로 비추어 준다. 

 

결론은 하드(계수기)에서 터치 인식, 좌표 전달 -> 소프트(좌표 인식 앱실행) -> 하드(디스플레이 화면전달)

-> 과정이 커널에서 해주는 일인듯

 

앱실행 외에도 통화, 화면밝기 조절 등 커널이 빠지는 곳이 없다.

만약 커널이 없다면 개발자들은 여러 디바이스에 존재하는 모든 하드웨어에 대한 각 이벤트(터치, 버튼 누르기 등)에

대조되는 하드웨어 액션에 대한 코드를 일일이 개발하여야 한다. 결론은 불가능하다는 소리.

커널이 존재함으로써

소프트웨어 개발자는 구글에서 제공하는 커널인터페이스인 안드로이드 API만 활용할 수 있으면 되며

하드웨어 개발자들은 역시 하드웨어가 커널과 소통할 수 있도록 드라이버만 개발하면 되는 것이다.

 

커스텀 커널이란?

디바이스 제조사에서 배포하는 "순정"커널은 제한된 부분이 많다.

예를 들어 안정성을 위해 전압량을 일정 수준으로 유지 되도록 코드를 설계해 두는 것이다.

반면 커스텀 커널은 제조사가 아닌 개인 개발자들이 오픈소스로 공개된 제조사의 커널 소스코드를 이용해 코드를 수정하거나 추가함으로써 기존 제한되었던 기능들을 사용가능하게 한다. 프로세서 클럭 속도가 가장 자주 언급되는 예로 추가적인 코드를 통해 프로세서가 더 높은 속도를 낼 수 있도록 할 수 있다. 또는 유저들이 앱을 통해 전압을 수정할 수 있도록 코드를 추가해 전압을 낮추어 배터리를 절약할 수도 있다. 그 외에도 사운드 관련 트윅도 가능하며 각종 트윅을 통해 디바이스의 성능을 최대한 끌어낼 수 있다.

 

개발자들에 따라 커널이 지원하는 기능은 천차만별이다. 커널 역시 리커버리와 마찬가지로 정해진 디바이스에서만 사용이 가능하다. 대부분의 경우 커스텀 리커버리를 통한 ZIP설치 파일로 배포가 되지만 갤럭시 디바이스의 경우 TAR형식으로 오딘 프로그램을 이용해 설치하는 방식으로도 배포되는 경우도 있다.

 

 

 

 

반응형

'Study > Hardware' 카테고리의 다른 글

[용어] Cache  (0) 2014.09.16
Comments