2013년 12월 3일 화요일

리눅스의 커널(Kernel)이란?

What is Linux Kernel?

리눅스 커널은 리눅스 운영체제 그자체이다.
이것은 부팅할 때 시스템에 적재되는 루틴과 데이터의 모음으로 하드웨어 장치의 소프트웨어 접근, 사용자 프로세서의 스케줄링, 메모 리관리 등과 같은 시스템의 모든 것을 제어한다. 하지만 자신만의 커널을 만들 수 있다면 운영체제에 자신이 원하는 기능을 선택하여 포함 할 수 있으므로 커널을 직접 만드는 것이 유익하기도 하다.
리눅스 커널은 촉수가 많이 달린 짐승과도 같다.
많은 사람들로 이루어진 그룹이 서로 다른 부분을 작업하고 있으며 일부분은 서로 다른 설계목적 때문에 아이디어를 깁는 것과도 같다. 커널코드는 전체적으로 깔끔하고 일관적이며 문제를 일으킬 소지가 적은 내부 구조를 가지고 있다. 하지만 많은 개발자들이 커널개발에 참여하고 있기 때문에 새로운 버젼은 빠르게 공개되고 있다.
비록 GNU의 라이센스에 따라 누구나 커널을 수정하고 이를 발표할 수 있지만 '공식커널'은 Linus Torvalds가 관리하고 있다. 이렇게 함으로써 커널버전 번호의 일관성을 유지할 수 있으며, 모든사용자가 커널 개정을 동일하게 이해할 수 있다.
커널에 포함된 기능의 수정이나 추가된 새로운 기능 등은 반드시 리누스에게 보내야 하며 Linus Torvalds는 이들이 서로 충돌되지 않게 통합하는 작업을 거쳐 커널의 공식버전을 비주기적으로 인터넷에 커널소스를 공개한다.
일반적으로 커널이 하는 일은 다음과 같다.
  • 각종 실행중인 프로세스와 메모리를 관리한다.
  • 파일시스템을 제어한다.
  • 하드웨어와 연관이 있으며 명령을 전달한다.
  • 주변기기와 해당 프로그램의 입출력 업무를 처리한다.
  • 모든 프로그램의 상위에 존재하며 보호 및 제어한다.
  • 그 외

Reference literature cited

Books
이만용, 알기 쉬운 알짜레드햇, 정보문화사, 1998.
이만용, 리눅스서버가이드, 1998.
이만용, 한글 리눅스 알짜 레드햇 5.2 Bible, 1999.
Arman Danesh, Inside secret Linux Developer's Handbook, Sybex, 1999.
Jack tackett & Steve Burnett, Using Linux 5rd Ed., Que, 2000.
강신석 & 앨릭스 리눅스 개발팀 & 황동준, 세계제일 한글리눅스 쉽게 배우기, 베스트북, 2000.
김칠봉& 박한희, 서버 관리자를 위한 리눅스 네트워크 레퍼런스 바이블, 베스트북, 2000.
Matt Welsh & Lar kaufman & Kalle Dalheimer, 러닝 리눅스 3판, 한빛미디어, 2001.
(주)리눅스매거진, 월간 Linux Magzine
(주)신영미디어, 월간 Linux@Work

Website
http://www.kernel.org
http://www.kernel.pe.kr
http://linux.sarang.net
http://www.kldp.org/리눅스_커널/
http://www.tux.org/lkml
http://www.linuxq.com/kernel/

댓글 없음:

댓글 쓰기