■ 다음은 Linux Kernel 2.6.35.10 Configuration의 설정 항목에 대한 설명이다.


(1) Enable loadable module support

: 자주 쓰이지 않는 장치 드라이버나 기능들을 커널 바깥에 모듈로 만들어 두었다가 필요할 때에만 동적으로 메모리에 적재
  할 수 있는 설정값 입니다. 좀더 메모리 사용을 효율적으로 
사용할 수 있다.

Force module loading  (비선택. Bad idea)
Force module unloading (비선택. Bad idea)
(위 두 가지는 버전 정보 없이 모듈을 로딩하거나 언로딩 하는 것을 허용하는 것이다.)
Module unloading (선택)
Module version support  (선택)
Source checksum for all modules  (선택)


(2) Enable the block layer
:블록 레이어 활성화에 관한 옵션입니다. embedded device에 유용하게 사용할 수 있는 옵션입니다.

○ Support for large (2TB+) block device and files (CONFIG_LBDAF)
 
- 2TB 이상의 대용량 저장장치를 지원하기 위해 설정한다. (RAID, LVM, Network Drive)

Block layer SG support v4 (CONFIG_BLK_DEV_BSG)
  - SCSI generic 을 사용하기 위해 설정한다.

Block layer data integrity support (CONFIG_BLK_DEV_INTEGRITY)
  - 일부 저장 장치들은 데이터의 저장/복원을 위해 특별한 정보를 활용하는 것들이 있는데, 이것을 활용하여 보다 향상된
    블록 레이어 데이터 무결성을 제공하는 
옵션이다. 만약 저장 장치가 T10/SCSI Data Integrity Field or the T13/ATA
    External Path 
Protection을 제공한다면 활성화 하고, 그렇지 않다면 비활성화 해도 된다.


(3)
System Type (*)
: 시스템에서 사용하는 CPU 타입에 관한 설정 입니다.

MMU-based Paged Memory Management Support (CONFIG_MMU)
 
- MMU 사용에 관한 옵션이다. MMU가 있다면 선택하자.

ARM system type 
  - 개발에 사용하려는 CPU Type을 선택한다. 선택한 CPU 종류에 따라 하위에 나타나는 설정 항목이 변경되며, 시스템의
    Specific Documentation을
활용하여 설정하자.


(4) Bus Support
: 시스템에서 쓰이는 Bus 지원 설정이다.

PCCard (PCMCIA/CardBus) Support (CONFIG_PCCARD)
  - 시스템에 PCMCIA or PC cards를 사용한다면 선택한다. (LAN, Modem, HDD card, …)


(5) Kernel Features
: 커널 요소를 설정한다.

Memory split (3G/1G user/kernel split) (CONFIG_VMSPLIT_3G_OPT)
  - 사용자 메모리와 커널 메모리의 비율이 3:1이다. 물리 메모리의 크기가 1G 이하일 때 설정한다.
     만약 가상 메모리 공간이 더 필요하다면
아래 두 가지 옵션으로 변경할 수 있으나, 이 경우 사용자 프로세스를 위한
     공간이 
줄어들어 동작하지 않을 수 있다. 기본적으로 3G/1G를 사용한다.
     (Another) 2G/2G user/kernel split, 1G/3G user/kernel split

Preemption Model 
  - 스케줄링 방식을 설정한다.
 
- No Force Preemption (server) :
 
- Voluntary Kernel Preemption (Desktop) : kernel 크기가 0.5% 커진다.
 
- Preemptible kernel (Low-Latency Desktop) : Kernel 크기가 3.5% 커진다.

Use the ARM EABI to compile the kernel (CONFIG_AEABI)
 
- EABI(Embedded Application Binary Interface)로 임베디드 소프트웨어에서 파일포맷, 데이터 타입, 레지스터 사용,
    스택프레임 구성, 파라미터 패싱등을 
표준협약으로 정해 놓은 것이다. 일반 운영체제 입장에서 ABI와의 가장 큰 차이점은
    동적 링킹을 사용하지 않으면서 특권 명령어를 사용할 수 있다는 
것이다.
 
- 이 옵션을 사용하기 위해서는 GCC4.0 이상이 필요하다.

High Memory Support (EXPERIMENTAL) 
  - 4GB 이상의 메모리 사용을 위한 옵션이다.

Allocate 2nd-level pagetables from highmem (CONFIG_HIGHPTE)
 
- RAM의 낭비를 줄이기 위해 high memory에 user-space page table를 두기 위한 옵션이다. 32bit 아키텍처 VM에서
    사용할 수 있는 4GB의 메모리는 Memory split 
설정에 의해 분할 되는데, 예를 들어 3G/1G(user/kernel) 분할일 경우
    Kernel을
위해 1GB가 할당되며, 이 1GB는 Physical Memory 1GB와 mapping 되게 된다. 그 이상의 Physical Memory는
    kernel Virtual address로 mapping이 안 되어있게
되는데, 이 mapping이 되지 않은 메모리 영역을 High memory라 한다.
  - x86의 경우 Allocate 3rd-level pagetables from highmem

Memory Model
 
- Flat Memory Model 
     : 프로그램이 사용하는 주소 공간이 연속된 선형 형태인 메모리 모델이다. 이 선형 주소 공간에 코드와 데이터 스택이
       모두 위치하며, 바이트 단위로 
어드레싱이 가능하다. 선형의 특성상 빠른 접근이 가능하다.
  - Segment Memory Model
     : 프로그램이 사용하는 주소 공간이 각각의 그룹 형태인 메모리 모델이다. 코드와 데이터, 스택 모두 각각의 세그먼트로
       구성되며, 특정 세그먼트의 
바이트를 어드레싱 하기 위해서 Segment selector와 offset이 결합된 형태의 논리 주소를
       활성화 시켜야 한다. 스
택이 개별 세그먼트에 위치하여 신뢰성이 높은 특징이 있다.

Enable KSM for page merging (CONFIG_KSM) 
  - page merging를 위해 KSM(Kernel Samepage Merging)을 enable 시킨다.
 
- 의존: CONFIG_MMU

Low address space to protect from user allocation(CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR) 
  - User allocation 으로부터 low virtual memory 영역을 보호한다. 대부분의 ia64, ppc64, x86 시스템은 65536의 값으로
    영역을 설정하면 문제가 없을 것
이며, ARM이나 다른 arch에서는 이 값이 32768 보다 커서는 안 된다.
  - 의존: CONFIG_SECURITY

Timer and CPU usage LEDs (CONFIG_LEDS)
 
- LED를 통하여 시스템의 상태 정보를 제공하기 위한 설정이다.
 
- 의존: CONFIG_ARCH_CDB89712 || CONFIG_ARCH_EBSA110


※ 출처 : http://blog.naver.com/minareu?Redirect=Log&logNo=100118548227
※ 참고 : http://blog.naver.com/sdonghwi?Redirect=Log&logNo=90003951444

'L inux > Kernel' 카테고리의 다른 글

리눅스 커널 컴파일 - 우분투 12.04  (12) 2012.03.12
menuconfig - 리눅스 커널 설정 (4)  (0) 2011.12.15
menuconfig - 리눅스 커널 설정 (2)  (0) 2011.12.15
menuconfig - 리눅스 커널 설정 (1)  (0) 2011.12.15
openWRT  (1) 2011.11.02
by 민트앤라떼 2011. 12. 15. 13:23