리눅스 커널 프로그래밍 환경 구축
Download
Report
Transcript 리눅스 커널 프로그래밍 환경 구축
커널 컴파일 및 개발 환경 구축
IT EXPERT 리눅스 커널 프로그래밍
Author :
Byungki Kim
Email
[email protected]
:
1 커널 소스 코드 구하기
커널 다운로드
http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.32.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.6.tar.bz2
wget 을 이용해서 다운로드 : wget [full URL]
http://210.115.226.26/~bk/downloads/linux-2.4.32.tar.bz2
http://210.115.226.26/~bk/downloads/linux-2.6.14.6.tar.bz2
다운로드가 완료되면
2
/usr/src에 압축 해제
OPERATING SYSTEM LAB
2 커널 빌드 과정
make mrproper
커널을 여러 번 컴파일 했을 때 기존의 설정된 모든 의존관계 제거
make menuconfig
커널 환경 설정 시작
make dep
커널에 설정된 내용에 따라 소스 코드의 파일들 확인
필요한 링크를 생성하는 것과 같은 의존성 설정
make clean
이전에 커널 빌드에서 남아있던 문제가 되는 파일들 삭제
깨끗하게 시작
make bzImage
실제로 싱행되는 커널을 빌드
make modules
커널에서 사용할 모듈들 컴파일
make modules_install
컴파일된 모듈 설치
3
OPERATING SYSTEM LAB
3 커널 2.4 빌드
make mrproper
4
OPERATING SYSTEM LAB
3 커널 2.4 빌드
make menuconfig
5
OPERATING SYSTEM LAB
3 커널 2.4 빌드
Code maturity level options --->
prompt for development and/or imcomplete code/drivers
Why ? 커널에서 안정되지 않은 기능들도 사용
6
OPERATING SYSTEM LAB
3 커널 2.4 빌드
File Systems
7
OPERATING SYSTEM LAB
3 커널 2.4 빌드
8
OPERATING SYSTEM LAB
3 커널 2.4 빌드
9
OPERATING SYSTEM LAB
3 커널 2.4 빌드
커널에 포함
윈도우와 폴더 공유
기본 자국어 코드 지정
윈도우 공유 폴더에 접근할 때 사용할 코드 페이지
10
OPERATING SYSTEM LAB
3 커널 2.4 빌드
File Systems ---> Native Language Support 항목은
SMB file system support를 선택해야만 언어 코드 설정 가능
개발자들의 실수 ? -_- 커널 2.6에서 사라짐
File systems ---> Native Language Support 바로 설정 가능
커널 2.6 컴파일할 때 비교해 보겠음!!
11
OPERATING SYSTEM LAB
3 커널 2.4 빌드
이 부분 생략하면 putty, ssh등에서
김병기.txt ?????.txt 이런 경우가 발생한다고 함!!
12
OPERATING SYSTEM LAB
3 커널 2.4 빌드
Networking options
13
OPERATING SYSTEM LAB
3 커널 2.4 빌드
TCP/IP 관련된 기능 사용 가능
14
OPERATING SYSTEM LAB
3 커널 2.4 빌드
Network device support
15
OPERATING SYSTEM LAB
3 커널 2.4 빌드
16
OPERATING SYSTEM LAB
3 커널 2.4 빌드
VMWare에서 사용하는 랜카드 (가상 랜카드)
오~ 신기 -ㅂ-
17
OPERATING SYSTEM LAB
3 커널 2.4 빌드
Save & Exit
18
OPERATING SYSTEM LAB
3 커널 2.4 빌드
make dep
의존성 설정
19
OPERATING SYSTEM LAB
3 커널 2.4 빌드
make clean
불필요한 파일들 제거
20
OPERATING SYSTEM LAB
3 커널 2.4 빌드
make bzImage
커널 이미지 빌드
21
OPERATING SYSTEM LAB
3 커널 2.4 빌드
make modules
모듈 빌드
22
OPERATING SYSTEM LAB
3 커널 2.4 빌드
make modules_install
컴파일된 모듈을 /lib/modules 에 설치
23
OPERATING SYSTEM LAB
3 커널 2.4 빌드
새로 컴파일된 커널 이미지 설치
cp /usr/src/linux-2.4.32/arch/i386/boot/bzImage /boot/vmlinuz-2.4.32
grub 설정 변경 : vim /boot/grub/menu.list
24
OPERATING SYSTEM LAB
3 커널 2.4 빌드
리눅스 커널 2.4.32 컴파일 완료!!! 휴 ~
자!! 재부팅 해보실까???
bkluv: reboot
25
OPERATING SYSTEM LAB
3 커널 2.4 빌드
26
OPERATING SYSTEM LAB
3 커널 2.4 빌드
빌드 성공!!! ^.^
27
OPERATING SYSTEM LAB
4 커널 2.6 빌드
make menuconfig
28
OPERATING SYSTEM LAB
4 커널 2.6 빌드
Loadable module support
29
OPERATING SYSTEM LAB
4 커널 2.6 빌드
Module unloading : 모듈 제거 기능 추가
모듈을 원할 때 적재/제거 선택하지 않으면 재부팅 전에는 제거 불가능
Forced module unloading : 모듈 강제 제거 기능 추가
모듈을 제거하는 도중에 문제가 발생하더라고 재부팅 하지 않고 제거 가능 (2.6버전부터)
30
OPERATING SYSTEM LAB
4 커널 2.6 빌드
File systems
31
OPERATING SYSTEM LAB
4 커널 2.6 빌드
Reiserfs 파일 시스템 지원 추가
Reiserfs?
Variable Block Size 기술 이용
블록의 크기를 유동적으로 변경 디스크 용량 낭비 감소
Example > 4 kb 고정 크기 블록에서 4.231 kb 저장시 필요한 블록의 개수?
32
OPERATING SYSTEM LAB
4 커널 2.6 빌드
NTFS 파일시스템의 하드디스크 사용 가능
2.6에서는 읽기/쓰기가 안정적으로 지원됨
33
OPERATING SYSTEM LAB
4 커널 2.6 빌드
필요한 경우만 사용할 수 있게 모듈로 설정
34
OPERATING SYSTEM LAB
4 커널 2.6 빌드
File systems
35
OPERATING SYSTEM LAB
4 커널 2.6 빌드
Native Language Support 다국어 지원 설정
36
OPERATING SYSTEM LAB
4 커널 2.6 빌드
한국어 파일 이름을 사용할 수 있도록 cp949 선택
37
OPERATING SYSTEM LAB
4 커널 2.6 빌드
Device Driver
38
OPERATING SYSTEM LAB
4 커널 2.6 빌드
Device Drivers --->
Network device support --->
Ethernet (10 or 100Mbir) --->
39
OPERATING SYSTEM LAB
4 커널 2.6 빌드
40
OPERATING SYSTEM LAB
4 커널 2.6 빌드
make
41
OPERATING SYSTEM LAB
4 커널 2.6 빌드
make modules_install
“Digest::MD5”를 찾을 수 없음!?
apt-get install libmd5-perl
42
OPERATING SYSTEM LAB
4 커널 2.6 빌드
make modules_install
43
OPERATING SYSTEM LAB
4 커널 2.6 빌드
새로 컴파일된 커널 이미지 설치
cp /usr/src/linux-2.6.16.6/arch/i386/boot/bzImage /boot/vmlinuz-2.6.14.
grub 설정 변경 : vim /boot/grub/menu.list
44
OPERATING SYSTEM LAB
4 커널 2.6 빌드
리눅스 커널 2.6.14.6 컴파일 완료!!! 휴 ~
자!! 재부팅 해보실까???
bkluv: reboot
45
OPERATING SYSTEM LAB
4 커널 2.6 빌드
46
OPERATING SYSTEM LAB
4 커널 2.6 빌드
빌드 성공!!! ^.^
47
OPERATING SYSTEM LAB
5 리눅스 환경의 커널 분석 도구
cscope 데이터 베이스 생성
48
OPERATING SYSTEM LAB
5 리눅스 환경의 커널 분석 도구
cscope 실행
선택 및 편집
tab 키로 이동
검색
49
OPERATING SYSTEM LAB
5 리눅스 환경의 커널 분석 도구
C 심볼들 검색
전역으로 선언 된 정의만 검색
이 함수에 의해 호출되는 함수 검색
이문자열
함수를검색
호출하는 함수들 검색
텍스트
문자열 검색해서 변경
정규식을 이용해서 소스 코드 검색 “ *task* ”
특정 이름을 포함한 파일 검색
특정 헤더 파일을 포함하는 모든 소스 검색
50
OPERATING SYSTEM LAB
NEXT Time..
ctag, taglist make & vi 통합
Source Insight (제외)
윈도우와 Vmware 간에 파일 공유 (제외)
51
OPERATING SYSTEM LAB
Have a good one!!
52
OPERATING SYSTEM LAB