본문 바로가기

코드^학습/메모한 지식

리눅스 커널 심층분석 0x005

2_커널과의 첫만남

(혹여라도 이걸 읽는 분들은 어투가 다소 딱딱한 하더라도 이해해주세요.)

책에는 커널 소스를 구해서 공부해볼 것을 권하고 있다.

그래서 커널 소스를 구하는 사이트인 [http://www.kernel.org]로 접속하였다.


현재는 최신 커널 버전인 3.12이다. 음... 지금보고있는 책은 ...2.6.10을 다루는데...

일단 받는다.


이걸 리눅스에 넣는다.(저같은 경우는 윈도우에서 받았기 때문에 ftp를 사용해 리눅스로 옮겼지만 처음부터 리눅스 운영체제에서 받아도 됩니다.)


책에서는 받은 커널 소스를 실제 커널이 위치하는 /usr/src/linux에 설치하지 말도록 당부한다. 우리가 사용하는 C 라이브러리가 여기에 연결되어 컴파일되기 때문이다.


 다운받은 파일은 linux-3.12.tar.xz 인데... 평소에 봤던 *.tar.gz가 아니고 책에서 소개하는 *.tar.bz2 도 아니다.


찾아보니 이것도 압축의 형식인데 어떤 블로그를 통해서 압축푸는 방법을 찾을 수 있었다.


*.tar.gz : tar xvf 파일명 . (.은 현재위치)

*.tar.bz2 : tar xvfj 파일명

*.tar.xz : tar xvf 파일명 (동일하다)


아무튼 풀어보면 압축이 풀리면서 파일이 생성된다.(꽤 걸린다.)


COPYING : 커널 라이센스

CREDITS : 커널개발에 큰 공헌을 한 개발자들 목록

Documentation : 커널 소스 문서




Makefile : 기본 커널 Makefile




arch : 아키텍처 종속적 소스

block : ??(책에 없음)

crypto : 암호화 API

drivers : 디바이스 드라이버

firmware : ??

fs : ??

include : 커널 헤더 파일들

init : 커널 부트와 초기화 관련

ipc : 프로세스간 통신 코드

kernel : 스케줄러 등 핵심 하위시스템

lib : 유틸리티 루틴

mm : 메모리 관련 하위시스템과 VM

net : 네트워킹 하위 시스템

samples : ? 아마도 샘플코드

scripts : 커널을 빌드하는 데 사용하는 스크립트

security : 리눅스 보안 모듈

tools : ??

usr : 초기 유저공간 코드(initramfs)

virt : ??



CREDITS을 열어보니 수많은 사람들이 있는데 동양인도 몇몇 보인다.

한국이 혹시 있을까해서 찾아보니...

찾는중...

일본, 중국 한두명씩 보이고

찾는중...

캐나다,영국,핀란드,미국,브라질,프랑스,남아프리카,네덜란드,독일,호주,아일랜드,맥시코,스웨덴,헝가리,체코,룩셈부르크,슬로베니아,폴란드,말레이시아(쿠알라품푸르),뉴질랜드,덴마크,탄자니아,노르웨이,크로아티아,스페인,러시아,이탈리아,스위스,오스트리아 많다...

찾는중...

찾는중...

없다...! grep으로 찾아도 없다!!!

없어...나라명만 찾아서 그런가...ㅠㅠ


아무튼...이거 찾는다고 시간을 얼마나 보낸건지...모르겠다.(처음에 일일히 내리다가 거의 다 찾을때 쯤 grep이 생각나서.....; 물론 지금까지 다 찾은게 아까워서 끝까지 다 찾고..나가서 grep을 해보았습니다.)


현재까진 고작 압축푼게 전부다;

안들려