커널 2.6 Intro
차영호 ganadist at chollian dot net
(based on
![]() v0.0.1, 2003년 10월 19일
개발커널 2.6.0-test 버전을 컴파일하기위한 기본적인 배경지식과 일반적 사양의 PC에서의 컴파일 옵션및 방법 그리고 커널 2.6 에서 무엇이 달라졌는지를 다룬다. (이 글을 쓰는 현재 가장 최신 개발 커널인 2.6.0-test8을 기준으로 이론적인면 보단 실제로 어떻게 해야하는지에 중점을 두었다.)
1.1. 커널이란? ¶커널이란 운영체제(Operating System)에서 가장 핵심적인 역할인 자원 (메모리, 프로세서등)을 관리하며 시스템이 원활히 돌아갈 수 있도록 제어해 준다. 현재 우리가 리눅스(OS)라고 하는것도 실제적으론 리눅스란 운영체제의 커널 이름을 말하는것인데 이것이 확장된 의미로 사용되어 현재의 '리눅스'란 OS를 지칭하게도 된것이다. 그러므로 Linux = kernel이란 등식이 성립한다.
1.2. 커널은 어디서 구하나? ¶우선적으로 안정 버전과 가장 최신 개발버전을 원한다면 http://kernel.pe.kr 로 접속하면 된다. 그 이외에는 다음 미러 사이트에서 구할수 있다.
1.3. 최신 커널 버전은 어떻게 알아보나? ¶SHELL에서 finger @finger.kernel.org 명령으로 최신 커널버전을 알 수 있다. 이 문서를 작성하는 현재 최신버전은 다음과 같다.
ganadist@ganadist ganadist $ finger @ftp.kernel.org [zeus-pub.kernel.org] The latest stable version of the Linux kernel is: 2.4.22 The latest prepatch for the stable Linux kernel tree is: 2.4.23-pre7 The latest snapshot for the stable Linux kernel tree is: 2.4.22-bk36 The latest beta version of the Linux kernel is: 2.6.0-test8 The latest 2.2 version of the Linux kernel is: 2.2.25 The latest 2.0 version of the Linux kernel is: 2.0.39 The latest prepatch for the 2.0 Linux kernel tree is: 2.0.40-rc6 The latest -ac patch to the stable Linux kernels is: 2.4.22-ac4 The latest -ac patch to the beta Linux kernels is: 2.6.0-test1-ac3 1.4. 커널 컴파일 방법 ¶여러 가지 방법들이 있지만 저장된 커널옵션설정 파일이 있다면 oldconfig를 저장된 파일이 없다면 menuconfig를 추천한다.
# cp kernel.config /usr/src/linux/.config 위와같이 한후 make oldconfig를 실행하면 예전 옵션을 그대로 적용시켜주며 혹시나 새로운 옵션이 있다면 화면에 보여주며 선택할 수 있도록 해준다.
1.5. 모듈 컴파일 방법 ¶모듈이 생성되는 디렉토리는 '/lib/modules/2.6.0-test8'이고 만약 현재 커널의 모듈을 다시 생성하려고 한다면 현재 커널의 모듈 디렉토리를 지우고 다시 컴파일 하기 바란다.
1.6. Initrd 이미지 만들기 ¶모듈을 만들고, 때에 다라서 initrd이미지도 만들어줄 필요가 있다. (가령 ext2/3 vfs같은 fs를 모듈로 제작했을때) 그럴때엔 mkinitrd 를 사용하자.
1.8. 필요한 패키지 ¶RedHat 기반 8.0 이상의 배포판이라면 module-init-tools만 설치하면 될것이다. (module-init-tools를 업데이트 하는데 modutils 버젼이 낮다면 같이 업데이트 해줘야 할 것이다. ftp.kernel.org에 있는
![]()
1.9. 커널 2.6에서 달라진것과 새로운 것들 ¶
1.10. 커널 옵션 설정 ¶Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers [ ] Select only drivers expected to compile cleanly [ ]Select only drivers that don't need compile-time external firmware 코드 성숙도에 대한 옵션이다. 여기를 선택하지 않으면 아직 불안정하다고 판단되는 기능을 선택할 수 없다.
General Setup ---> [*] Support for paging of anonymous memory [*] System V IPC [*] BSD Process Accounting [*] Sysctl support (14) Kernel log buffer size (16 => 64KB, 17 => 128KB) [*] Kernel .config support [*] Enable access to .config through /proc/config.gz [ ] Remove kernel features (for embedded systems) ---> 커널의 일반기능에 대한 설정이다.
Loadable module support ---> [*] Enable loadable module support [*] Module unloading [ ] Forced module unloading [ ] Module versioning support (EXPERIMENTAL) [*] Automatic Kernel module loader 커널 모듈에 대한 설정이다. 모듈이란 커널에 포함되지 않고 커널이 운영되고 있는 상태에 모듈파일을 읽어들여서 커널의 기능을 더하는 것이다. 일반적으로 윈도우의 드라이버와 같다고 생각하면 된다.
Processor type and features ---> Subarchitecture Type (PC-compatible) ---> Processor family (Pentium-III/Celeron(Coppermine)/Pentium-III Xeon) [*] Generic x86 support [ ] HPET Timer Support [ ] Symmetric multi-processing support [*] Preemptible Kernel [*] Local APIC support on uniprocessors [*] IO-APIC support on uniprocessors [ ] Machine Check Exception < > Toshiba Laptop suppor < > Dell laptop support <M> /dev/cpu/microcode - Intel IA32 CPU microcode support <M> /dev/cpu/*/msr - Model-specific register support <M> /dev/cpu/*/cpuid - CPU information support <M> BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL) High Memory Support (off) ---> [ ] Math emulation [*] MTRR (Memory Type Range Register) support
Power management options (ACPI, APM) ---> [*] Power Management support [*] Software Suspend (EXPERIMENTAL) [*] Suspend-to-Disk Support () Default resume partition ACPI (Advanced Configuration and Power Interface) Support ---> APM (Advanced Power Management) BIOS Support ---> CPU Frequency scaling ---> 전원관리 옵션이다.
ACPI (Advanced Configuration and Power Interface) Support ---> [*] ACPI Support [ ] Sleep States (EXPERIMENTAL) <M> AC Adapter <M> Battery <M> Button <M> Fan <M> Processor <M> Thermal Zone < > ASUS/Medion Laptop Extras < > Toshiba Laptop Extras [ ] Debug Statements [*] Relaxed AML ACPI는 전원관리와 하드웨어 설정을 OS와 유기적으로 하기위한 표준이다. acpi 기능을 쓰고 싶다면 이 옵션을 켜고
![]() APM (Advanced Power Management) BIOS Support ---> <M> APM (Advanced Power Management) BIOS support [ ] Ignore USER SUSPEND [*] Enable PM at boot time [ ] Make CPU Idle calls when idle [ ] Enable console blanking using APM [ ] RTC stores time in GMT [*] Allow interrupts during APM BIOS calls [*] Use real mode APM BIOS call to power offAPM은 BIOS에서 전원관리를 하기위한 표준이다. apm 기능을 쓰고 싶다면 이 옵션을 켜고 ![]() CPU Frequency scaling ---> [*] CPU Frequency scaling <M> /proc/cpufreq interface (deprecated) Default CPUFreq governor (performance) ---> --- 'performance' governor <M> 'powersave' governor <M> 'userspace' governor for userspace frequency scaling [*] /proc/sys/cpu/ interface (2.4. / OLD) <M> CPU frequency table helpers --- CPUFreq processor drivers <M> ACPI Processor P-States driver [*] /proc/acpi/processor/../performance interface (deprecated) < > AMD Mobile K6-2/K6-3 PowerNow! < > AMD Mobile Athlon/Duron PowerNow! < > AMD Opteron/Athlon64 PowerNow! < > Cyrix MediaGX/NatSemi Geode Suspend Modulation < > Intel Enhanced SpeedStep < > Intel Speedstep on ICH-M chipsets (ioport interface) < > Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface) < > Intel Pentium 4 clock modulation < > Transmeta LongRun < > VIA Cyrix III Longhaul CPU Frequency scaling은 각종 모바일 및 임베디드 CPU의 소비전력을 절약하기 위한 기능을 쓸 수 있게 해준다. 해당 기능이 있는 CPU를 가지고 있다면 켜둔다.
Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> [*] PCI support PCI access mode (Any) ---> [*] Legacy /proc/pci interface [*] PCI device name database [ ] ISA support [ ] MCA support < > NatSemi SCx200 support [*] Support for hot-pluggable devices PCMCIA/CardBus support ---> PCI Hotplug Support --->시스템에서 쓰이는 각종 Bus 지원 설정이다.
Executable file formats ---> <*> Kernel support for ELF binaries <M> Kernel support for a.out ECOFF binaries <M> Kernel support for MISC binaries실행파일 로더에 대한 옵션이다. ELF 형식의 실행파일을 실행할 수 있도록 하는 옵션이다.
a.out 형식의 실행파일을 실행할 수 있도록 하는 옵션이다.
그외 여러가지 형식의 실행파일을 실행할 수 있도록 한다. Java VM(java), DOSEMU(dos), Wine(windows), dotgnu, mono(ECMA CLI) 등과 같은 해당 실행파일을 해석할 수 있는 인터프리터와 실행파일의 헤더 혹은 확장자를 등록한 후 그 파일에 실행퍼미션을 주고 실행하면 해당 인터프리터가 파일을 읽어들인후 해석한다.
Device Drivers ---> Generic Driver Options ---> Memory Technology Devices (MTD) ---> Parallel port support ---> Plug and Play support ---> Block devices ---> ATA/ATAPI/MFM/RLL support ---> SCSI device support ---> Multi-device support (RAID and LVM) ---> Fusion MPT device support ---> IEEE 1394 (FireWire) support (EXPERIMENTAL) ---> I2O device support ---> Networking support ---> ISDN subsystem ---> Telephony Support ---> Input device support ---> Character devices ---> Multimedia devices ---> Graphics support ---> Sound ---> USB support --->각종 주변장치 드라이버를 선택할 수 있다. Generic Driver Options ---> <M> Hotplug firmware loading support모듈이 커널에 포함되지 않은 핫플러그 펌웨어를 읽을 수 있도록 한다. Memory Technology Devices (MTD) ---> < > Memory Technology Device (MTD) support소형기기에서 쓰이는 여러가지 저장장치를 지원한다. Parallel port support ---> <M> Parallel port support <M> PC-style hardware < > Multi-IO cards (parallel and serial) [*] Use FIFO/DMA if available (EXPERIMENTAL) [ ] SuperIO chipset support (EXPERIMENTAL) [*] Support foreign hardware [*] IEEE 1284 transfer modes병렬포트를 지원한다. Plug and Play support ---> [*] Plug and Play support [ ] PnP Debug Messages --- Protocols [ ] ISA Plug and Play support (EXPERIMENTAL) [*] Plug and Play BIOS support (EXPERIMENTAL)Plug and Play장치를 지원한다. Block devices ---> < > Parallel port IDE device support < > Compaq SMART2 support < > Compaq Smart Array 5xxx support < > Mylex DAC960/DAC1100 PCI RAID Controller support < > Micro Memory MM5415 Battery Backed RAM support (EXPERIMENTAL) <M> Loopback device support <M> Cryptoloop Support <M> Network block device support <*> RAM disk support (4096) Default RAM disk size [*] Initial RAM disk (initrd) support [*] Support for Large Block Devices 보통 파일을 블럭장치처럼 쓰려고 할 때 필요하다. losetup이나 mount의 loop옵션을 사용해서 쓸 수 있다.
네트워크 블럭장치에 대한 옵션이다. 원격 호스트에 있는 블럭 장치에 연결할 때 쓰인다.
RAM을 블럭장치처럼 쓰려고 할 때 필요하다.
부트로더에서 로딩할 수 있는 램디스크 이미지 (주로 root 파일 시스템을 마운트하기 위해)를 쓰기위한 옵션이다.
2TB이상의 블럭장치를 쓰기위한 옵션이다.
ATA/ATAPI/MFM/RLL support ---> <*> ATA/ATAPI/MFM/RLL support <*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support --- Please see Documentation/ide.txt for help/info on IDE drives [ ] Use old disk-only driver on primary interface <*> Include IDE/ATA-2 DISK support [*] Use multi-mode by default [*] Auto-Geometry Resizing support <M> Include IDE/ATAPI CDROM support < > Include IDE/ATAPI TAPE support (EXPERIMENTAL) < > Include IDE/ATAPI FLOPPY support <M> SCSI emulation support [*] IDE Taskfile Access [*] IDE Taskfile IO (EXPERIMENTAL) --- IDE chipset support/bugfixes [ ] CMD640 chipset bugfix/support [*] PNP EIDE support [*] PCI IDE chipset support [*] Sharing PCI IDE interrupts support [ ] Boot off-board chipsets first support [*] Generic PCI IDE Chipset Support < > OPTi 82C621 chipset enhanced support (EXPERIMENTAL) < > RZ1000 chipset bugfix/support [*] Generic PCI bus-master DMA support [ ] ATA tagged command queueing (EXPERIMENTAL) [ ] Force enable legacy 2.0.X HOSTS to use DMA [*] Use PCI DMA by default when available [ ] Enable DMA only for disks [ ] ATA Work(s) In Progress (EXPERIMENTAL) < > AEC62XX chipset support < > ALI M15x3 chipset support < > AMD and nVidia IDE support < > CMD64{3|6|8|9} chipset support < > Compaq Triflex IDE support < > CY82C693 chipset support < > Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTAL) < > Cyrix/National Semiconductor CS5530 MediaGX chipset support < > HPT34X chipset support < > HPT36X/37X chipset support < > National SCx200 chipset support <*> Intel PIIXn chipsets support < > NS87415 chipset support < > PROMISE PDC202{46|62|65|67} support < > PROMISE PDC202{68|69|70|71|75|76|77} support < > ServerWorks OSB4/CSB5/CSB6 chipsets support < > Silicon Image chipset support < > SiS5513 chipset support < > SLC90E66 chipset support < > Tekram TRM290 chipset support < > VIA82CXXX chipset support [ ] IGNORE word93 Validation BITSATA/ATAPI (AT Attachment / Packet Interface)장치와 구식의 MFM/RLL 장치를 위한 옵션이다. 기본(첫번째)인터페이스에 대해 디스크만 제어할 수 있는 드라이버를 쓰는 옵션이다. 이 옵션을 사용하면 디스크 이외의 장치(플로피, 시디롬, 테이프 등등)으로 부팅을 못하도록 한다.
IDE/MFM/RLL 하드 디스크 지원 옵션이다.
IDE/ATAPI CDROM 지원 옵션이다.
IDE/ATAPI 테이프 장치 지원 옵션이다.
IDE/ATAPI 플로피 드라이브 지원 옵션이다. 노트북용 플로피를 쓴다면 포함해두는 것이 좋다.
IDE인터페이스 장치를 scsi인터페이스 처럼 사용할 수 있도록 한다. CD-R장치를 쓰려면 포함하는 것이 좋다.
ioctl로 Taskfile명령을 내릴수 있도록 하는 옵션이다.
Taskfile IO명령을 사용하는 옵션이다.
데이터를 전송할 때 CPU의 점유율을 낮추기 위해서 DMA설정을 할 수 있도록 한다.
기본값으로 DMA를 활성화한다.
일부 CDROM장치에서 DMA를 활성화하면 데이터 전송에 실패할 수 있다. 이 옵션을 켜면 디스크 장치만 DMA를 켜두도록 한다.
SCSI device support ---> <M> SCSI device support [*] legacy /proc/scsi/ support --- SCSI support type (disk, tape, CD-ROM) <M> SCSI disk support < > SCSI tape support < > SCSI OnStream SC-x0 tape support <M> SCSI CDROM support [*] Enable vendor-specific extensions (for SCSI CDROM) <M> SCSI generic support --- Some SCSI devices (e.g. CD jukebox) support multiple LUNs [*] Probe all LUNs on each SCSI device [*] Build with SCSI REPORT LUNS support [*] Verbose SCSI error reporting (kernel size +=12K) [ ] SCSI logging facility Multi-device support (RAID and LVM) ---> [*] Multiple devices driver support (RAID and LVM) <M> RAID support <M> Linear (append) mode <M> RAID-0 (striping) mode <M> RAID-1 (mirroring) mode <M> RAID-4/RAID-5 mode <M> Multipath I/O support <M> Device mapper support [*] ioctl interface version 4Software RAID및 LVM옵션이다. 여러개의 하드디스크를 하나처럼 쓰려고 할 때 쓰인다. Device mapper는 LVM의 새로운 이름이다. 이 기능들을 쓰려면 ![]() ![]() ![]() Fusion MPT device support ---> < > Fusion MPT (base + ScsiHost) drivers IEEE 1394 (FireWire) support (EXPERIMENTAL) ---> <M> IEEE 1394 (FireWire) support (EXPERIMENTAL) --- Subsystem Options [ ] Excessive debugging output [*] OUI Database built-in --- Device Drivers < > Texas Instruments PCILynx support <M> OHCI-1394 support --- Protocol Drivers <M> OHCI-1394 Video support <M> SBP-2 support (Harddisks etc.) [ ] Enable Phys DMA support for SBP2 (Debug) <M> Ethernet over 1394 <M> OHCI-DV I/O support <M> Raw IEEE1394 I/O support <M> IEC61883-1 Plug support <M> IEC61883-6 (Audio transmission) support고속 전송을 지원하는 IEEE1394(iLink혹은 Firewire라고 불리기도 한다)를 지원하는 옵션이다. IEEE1394 호스트 드라이버이다. 대부분이 OHCI호환이므로 OHCI-1394를 선택하면 된다.
IEEE1394로 비디오 장치를 쓰려고 할 때 쓰이는 옵션이다
IEEE1394로 저장장치를 쓰려고 할 때 쓰이는 옵션이다. USB와 마찬가지로 scsi호스트를 에물레이션해준다.
IEEE1394로 이더넷을 에물레이션 해준다. modprobe.conf에서 ethx장치와 alias걸어주면 작동하게 될 것이다.
Digital Video스트림을 주고받도록 해준다.
커널모드가 아닌 사용자 모드에서 IEEE1394로 데이터를 주고 받을 수 있도록 한다.
I2O device support ---> <M> I2O support <M> I2O PCI support <M> I2O Block OSM <M> I2O SCSI OSM <M> I2O /proc support Networking support ---> [*] Networking support Networking options ---> [*] Network device support ARCnet devices ---> <M> Dummy net driver support < > Bonding driver support < > EQL (serial line load balancing) support < > Universal TUN/TAP device driver support < > Ethertap network tap < > General Instruments Surfboard 1000 Ethernet (10 or 100Mbit) ---> Ethernet (1000 Mbit) ---> Ethernet (10000 Mbit) ---> [ ] FDDI driver support [ ] HIPPI driver support (EXPERIMENTAL) < > PLIP (parallel port) support <M> PPP (point-to-point protocol) support [ ] PPP multilink support (EXPERIMENTAL) [ ] PPP filtering <M> PPP support for async serial ports <M> PPP support for sync tty ports <M> PPP Deflate compression <M> PPP BSD-Compress compression <M> PPP over Ethernet (EXPERIMENTAL) <M> PPP over ATM < > SLIP (serial line) support Wireless LAN (non-hamradio) ---> Token Ring devices ---> [ ] Fibre Channel driver support < > Red Creek Hardware VPN (EXPERIMENTAL) <M> Traffic Shaper (EXPERIMENTAL) Wan interfaces ---> ATM drivers ---> Amateur Radio support ---> IrDA (infrared) support ---> Bluetooth support ---> 네트워크 인터페이스가 있는것 처럼 하는 드라이버다. slip이나 ppp를 쓰려면 옵션을 켜주어야 한다.
여러개의 이더넷 장치를 하나의 이더넷 장치처럼 쓰도록 한다.
두개의 시리얼 포트 연결을 하나의 연결처럼 쓰도록 하는 드라이버이다.
패래럴 포트 연결을 지원하는 드라이버이다. 두 컴퓨터 사이의 네트워크 연결을 패래럴 포트로 연결하여 쓰려고 할 때 필요하다.
PPP연결이 필요로 할 때 쓰이는 드라이버이다.
시리얼 포트 연결을 지원하는 드라이버이다. 두 컴퓨터 사이의 네트워크 연결을 시리얼 포트로 연결하여 쓰려고 할 때 필요하다.
무선랜 지원 옵션이다. 무선랜 장치를 쓰고 있다면 이 옵션에 들어가 사용하는 무선랜카드를 선택하면 된다.
토큰링 장치를 위한 옵션이다.
네트워크의 출력 대역폭을 조절할 수 있는 모듈이다.
적외선 통신 장치를 이용할 때 쓰이는 옵션이다.
Bluetooth 장치를 쓸 때 필요한 옵션이다.
Networking options ---> <*> Packet socket [*] Packet socket: mmapped IO <M> Netlink device emulation <*> Unix domain sockets <M> PF_KEY sockets [*] TCP/IP networking [*] IP: multicasting [ ] IP: advanced router [ ] IP: kernel level autoconfiguration < > IP: tunneling < > IP: GRE tunnels over IP [ ] IP: multicast routing [ ] IP: ARP daemon support (EXPERIMENTAL) [*] IP: TCP Explicit Congestion Notification support [*] IP: TCP syncookie support (disabled per default) <M> IP: AH transformation <M> IP: ESP transformation <M> IP: IPComp transformation IP: Virtual Server Configuration ---> <M> The IPv6 protocol (EXPERIMENTAL) [*] IPv6: Privacy Extensions (RFC 3041) support <M> IPv6: AH transformation <M> IPv6: ESP transformation <M> IPv6: IPComp transformation <M> IPv6: IPv6-in-IPv6 tunnel < > DECnet Support <M> 802.1d Ethernet Bridging [*] Network packet filtering (replaces ipchains) ---> <M> IPsec user configuration interface SCTP Configuration (EXPERIMENTAL) ---> <M> Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) <M> Classical IP over ATM (EXPERIMENTAL) [ ] Do NOT send ICMP if no neighbour (EXPERIMENTAL) <M> LAN Emulation (LANE) support (EXPERIMENTAL) <M> Multi-Protocol Over ATM (MPOA) support (EXPERIMENTAL) < > RFC1483/2684 Bridged protocols <M> 802.1Q VLAN Support < > ANSI/IEEE 802.2 LLC type 2 Support <M> The IPX protocol [*] IPX: Full internal IPX network < > Appletalk protocol support < > CCITT X.25 Packet Layer (EXPERIMENTAL) < > LAPB Data Link Driver (EXPERIMENTAL) [ ] Frame Diverter (EXPERIMENTAL) < > Acorn Econet/AUN protocols (EXPERIMENTAL) < > WAN router [ ] Fast switching (read help!) [ ] Forwarding between high speed interfaces QoS and/or fair queueing ---> Network testing ---> 커널에서 구현된 네트워크 프로토콜을 사용하지 않고 직접 네트워크 장치와 통신하는 프로그램을 쓸 때 필요하다. tcpdump 같은 프로그램을 쓰려면 포함시키자.
패킷 소켓을 쓸 때 빠른 입출력을 원한다면 커널에 포함시킨다.
유닉스 도메인 소켓을 지원한다. X windows나 syslog같은 프로그램을 쓴다면 포함시켜야 할 것이다.
커널의 TCP/IP를 지원한다.
한번에 여러군데의 컴퓨터에 데이터를 전달하기 위한 옵션이다. 일반 사용자에게는 필요하지 않다.
리눅스 컴퓨터를 라우터처럼 쓸 때 필요한 옵션이다.
커널안에서 DHCP, 또는 BOOTP, RARP 같은 프로토콜을 이용해 네트워크 설정을 할 수 있도록 한다. nfs를 root filesystem으로 쓰려면 꼭 넣어야 한다.
어떤 프로토콜로 감싼 데이터를 다른 프로토콜 위에 올리고 보낸 것을 해석할 수 있도록 하는 기능이다.
멀티 캐스트 패킷을 라우팅할 때 쓰이는 옵션이다.
ECN은 라우터가 클라이언트들에게 패킷이 붐비는 것을 알려줘서 패킷을 잃어버리는 것을 줄이고 네트워크 성능을 올리는 역할을 한다. 하지만 많은 방화벽이 ECN을 제대로 지원하지 않기 때문에 방화벽 안에서는 별 효용성이 없다고 한다. sysctl로 켜거나 끌 수 있다.
SYN flooding공격을 방지하기 위해 쓰이는 옵션이다. 하지만 서버에 과부하가 걸렸을 때 클라이언트에 대한 오류 정정 보고를 방해할 수 있다. sysctl로 켜거나 끌 수 있다.
![]() 차세대 인터넷 프로토콜인 IPv6에 대한 지원 설정이다.
특정 조건에 맞는 네트워크 패킷을 걸러내거나 통과시킬 수 있도록 하는 옵션이다. 방화벽이나 NAT를 구축하려고 할 때 쓰인다.
특정 조건에 맞는 네트워크 패킷의 전송속도를 조절할 수 있도록 하는 옵션이다.
ISDN subsystem ---> [ ] ISDN support Telephony Support ---> < > Linux telephony support Input device --- Userland interfaces --- Mouse interface (1024) Horizontal screen resolution (768) Vertical screen resolution <M> Joystick interface <M> Touchscreen interface (240) Horizontal screen resolution (320) Vertical screen resolution <M> Event interface < > Event debugging --- Input I/O drivers <M> Gameport support <M> Classic ISA and PnP gameport support < > PDPI Lightning 4 gamecard support <M> SB Live and Audigy gameport support < > Aureal Vortex, Vortex 2 gameport support < > ForteMedia FM801 gameport support < > Crystal SoundFusion gameport support --- Serial i/o support <*> i8042 PC Keyboard controller <M> Serial port line discipline < > ct82c710 Aux port controller < > Parallel port keyboard adapter <M> PCI PS/2 keyboard and PS/2 mouse controller --- Input Device Drivers --- Keyboards < > Sun Type 4 and Type 5 keyboard support < > XT Keyboard support < > Newton keyboard [*] Mice <M> PS/2 mouse [ ] Synaptics TouchPad <M> Serial mouse [*] Joysticks <M> Classic PC analog joysticks and gamepads < > Assasin 3D and MadCatz Panther devices < > Logitech ADI digital joysticks and gamepads <M> Creative Labs Blaster Cobra gamepad < > Genius Flight2000 Digital joysticks and gamepads < > Gravis GrIP joysticks and gamepads < > Gravis GrIP MultiPort < > Guillemot joysticks and gamepads < > InterAct digital joysticks and gamepads <M> Microsoft SideWinder digital joysticks and gamepads < > ThrustMaster DirectConnect joysticks and gamepads <M> I-Force devices [*] I-Force USB joysticks and wheels [ ] I-Force Serial joysticks and wheels <M> Logitech WingMan Warrior joystick < > LogiCad3d Magellan/SpaceMouse 6dof controllers < > SpaceTec SpaceOrb/Avenger 6dof controllers < > SpaceTec SpaceBall 6dof controllers < > Gravis Stinger gamepad < > Twiddler as a joystick <M> Multisystem, Sega Genesis, Saturn joysticks and gamepads <M> Multisystem, NES, SNES, N64, PSX joysticks and gamepads <M> Multisystem joysticks via TurboGraFX device <M> Gameport data dumper [*] Touchscreens <M> Gunze AHL-51S touchscreen [*] Misc <M> PC Speaker support <M> User level driver support 커널 2.6의 Input Subsystem은 완전히 새로 쓰여졌다. 키보드 드라이버는 더이상 콘솔드라이퍼에 포함되지 않으며 완전히 분리되었다. 현재 시스템에 등록된 입력장치에 대한 정보를 보려면 /proc/bus/input 에 있는 파일들을 참조하면 된다.
리눅스의 마우스 인터페이스에 대한 옵션이다. 마우스 장치를 쓰려면 이 옵션과 아래의 장치 옵션을 켜주어야 한다. 모든 마우스는 기본적으로 /dev/input/mice 라는 장치로 접근이 가능하게 되고 각각의 마우스는 /dev/mouseX라는 장치로 접근이 가능하다.
이전의 리눅스 커널처럼 /dev/psaux 장치를 만들어 주도록 한다.
리눅스의 조이스틱 인터페이스에 대한 옵션이다. 조이스틱 장치를 쓰려면 이옵션과 함께 조이스틱 포트 옵션과 조이스틱 욥션을 켜주어야 한다. 조이스티은 /dev/input/jsX라는 장치로 접근이 가능하다.
조이스틱 포트에 대한 옵션이다. 알맞은 게임 포트 옵션을 선택하면 된다. 일부 게임포트 드라이버는 사운드 카드 모듈에 들어있을 수 있다.
일반 AT 컴퓨터에서 쓰이는 키보드 컨트롤러 모듈이다. 커널 2.6에서는 완전히 모듈화가 되어있어서 커널에서 빼버릴 수도 있다. 하지만 빼버리게 되면 가상 콘솔을 전혀 쓸수 없게된다.
Character devices ---> [*] Virtual terminal [*] Support for console on virtual terminal [ ] Non-standard serial port support Serial drivers ---> [*] Unix98 PTY support (256) Maximum number of Unix98 PTYs in use (0-2048) <M> Parallel printer support [ ] Support for console on line printer <M> Support for user-space parallel port device drivers < > Texas Instruments parallel link cable support I2C support ---> Mice ---> < > QIC-02 tape support IPMI ---> Watchdog Cards ---> <M> Intel/AMD/VIA HW Random Number Generator support <M> /dev/nvram support <*> Enhanced Real Time Clock Support < > Double Talk PC internal speech card support < > Siemens R3964 line discipline < > Applicom intelligent fieldbus card support < > Sony Vaio Programmable I/O Control Device support (EXPERIMENTAL) Ftape, the floppy tape device driver ---> <M> /dev/agpgart (AGP Support) < > ALI chipset support < > ATI chipset support < > AMD Irongate, 761, and 762 chipset support < > AMD Opteron/Athlon64 on-CPU GART support <M> Intel 440LX/BX/GX, I8xx and E7x05 chipset support < > NVIDIA nForce/nForce2 chipset support < > SiS chipset support < > Serverworks LE/HE chipset support < > VIA chipset support [*] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) < > 3dfx Banshee/Voodoo3+ < > 3dlabs GMX 2000 < > ATI Rage 128 < > ATI Radeon < > Intel I810 < > Intel 830M, 845G, 852GM, 855GM, 865G <M> Matrox g200/g400 < > SiS video cards < > ACP Modem (Mwave) support <M> RAW driver (/dev/raw/rawN) (256) Maximum number of RAW devices to support (1-8192) <M> Hangcheck timer 가상 터미널을 쓸 수 있도록 하는 옵션이다. 리눅스에서는 하나의 콘솔을 여러개의 터미널 처럼 쓸 수있다.
비표준 시리얼 장치에 대한 지원이다.
표준 시리얼 장치에 대한 옵션이다. 모뎀이나 시리얼 마우스, 혹은 slip을 사용하려면 이 옵션을 켜야 한다.
Multimedia devices ---> <M> Video For Linux Video For Linux ---> Radio Adapters ---> Digital Video Broadcasting Devices ---> 리눅스에서 각종 방송장비를 쓸 수 있도록 한다.
비디오 및 오디오 캡처 기기에 대한 커널측 API이다. 일반 아나로그 TV카드, 혹은 웹캠 같은 장비를 쓰려면 여기서 알맞은 칩셋을 선택하면 된다. 일부 FM통합카드도 지원된다.
라디오 튜너 지원옵션이다.
디지털 TV 카드에 대한 커널측 API이다.
Graphics support ---> [*] Support for frame buffer devices < > CyberPro 2000/2010/5000 support (NEW) [ ] IMS Twin Turbo display support (NEW) < > VGA 16-color graphics support (NEW) [ ] VESA VGA graphics support (NEW) < > Hercules mono graphics support (NEW) < > nVidia Riva support (NEW) < > Intel 810/815 support (EXPERIMENTAL) (NEW) < > Matrox acceleration < > ATI Radeon display support (NEW) < > ATI Rage128 display support (NEW) < > ATI Mach64 display support (NEW) < > SIS acceleration (NEW) < > NeoMagic display support (NEW) < > 3Dfx Banshee/Voodoo3 display support (NEW) < > 3Dfx Voodoo Graphics (sst1) support (NEW) < > Trident support (NEW) < > Virtual Frame Buffer support (ONLY FOR TESTING!) (NEW) Console display driver support ---> Logo configuration ---> 컴퓨터의 그래픽 카드에 대한 옵션이다. 리눅스 커널에서 직접 그래픽 카드를 다루어야 할 때 필요한 옵션을 여기서 선택할 수 있다.
프레임 버퍼는 리눅스 커널에서 그래픽 카드에 직접 이미지를 뿌리는 작업을 할 때 쓰인다. 자신의 컴퓨터에 알맞는 옵션을 선택하면 된다.
콘솔 화면의 드라이버를 선택하는 옵션이다. VGA text console은 꼭 선택해주는 것이 좋다. 그렇지 않으면 모니터에 아무것도 나오지 않을 것이다. 프레임 버퍼장치를 콘솔로 쓰려면 Framebuffer Console support를 선택하면 된다.
프레임 버퍼 콘솔로 부팅할 때 쓰이는 부팅 로고를 설정할 수 있다.
Sound ---> <M> Sound card support Advanced Linux Sound Architecture ---> Open Sound System ---> USB support ---> <M> Support for USB [ ] USB verbose debug messages --- Miscellaneous USB options [*] USB device filesystem [*] Enforce USB bandwidth allocation (EXPERIMENTAL) [*] Dynamic USB minor allocation (EXPERIMENTAL) --- USB Host Controller Drivers <M> EHCI HCD (USB 2.0) support < > OHCI HCD support <M> UHCI HCD (most Intel and VIA) support --- USB Device Class drivers <M> USB Audio support --- USB Bluetooth TTY can only be used with disabled Bluetooth subs│ │ <M> USB MIDI support <M> USB Modem (CDC ACM) support <M> USB Printer support <M> USB Mass Storage support [ ] USB Mass Storage verbose debug [*] Datafab Compact Flash Reader support (EXPERIMENTAL) [*] Freecom USB/ATAPI Bridge support [*] ISD-200 USB/ATA Bridge support [*] Microtech CompactFlash/SmartMedia support [*] HP CD-Writer 82xx support (EXPERIMENTAL) [*] SanDisk SDDR-09 (and other SmartMedia) support (EXPERIMENTAL)│ │ [*] SanDisk SDDR-55 SmartMedia support (EXPERIMENTAL) [*] Lexar Jumpshot Compact Flash Reader (EXPERIMENTAL) --- USB Human Interface Devices (HID) <M> USB Human Interface Device (full HID) support [*] HID input layer support [*] Force feedback support (EXPERIMENTAL) [*] PID Devices (Microsoft Sidewinder Force Feedback 2) [*] Logitech WingMan *3D support [*] /dev/hiddev raw HID device support USB HID Boot Protocol drivers ---> <M> Aiptek 6000U/8000U tablet support <M> Wacom Intuos/Graphire tablet support <M> KB Gear JamStudio tablet support <M> Griffin PowerMate and Contour Jog support <M> X-Box gamepad support --- USB Imaging devices <M> USB Mustek MDC800 Digital Camera support (EXPERIMENTAL) <M> USB Scanner support <M> Microtek X6USB scanner support <M> HP53xx USB scanner support (EXPERIMENTAL) --- USB Multimedia devices <M> DABUSB driver <M> USB 3com HomeConnect (aka vicam) support (EXPERIMENTAL) <M> D-Link USB FM radio support (EXPERIMENTAL) <M> USB IBM (Xirlink) C-it Camera support <M> USB Konica Webcam support <M> USB OV511 Camera support <M> USB Philips Cameras <M> USB SE401 Camera support <M> USB STV680 (Pencam) Camera support --- USB Network adaptors <M> USB CATC NetMate-based Ethernet device support (EXPERIMENTAL) <M> USB KLSI KL5USB101-based ethernet device support <M> USB Pegasus/Pegasus-II based ethernet device support <M> USB RTL8150 based ethernet device support (EXPERIMENTAL) <M> Multi-purpose USB Networking Framework --- USB Host-to-Host Cables [*] AnchorChips 2720 based cables (Xircom PGUNET, ...) [*] eTEK based host-to-host cables (Advance, Belkin, ...) [*] GeneSys GL620USB-A based cables [*] NetChip 1080 based cables (Laplink, ...) [*] Prolific PL-2301/2302 based cables --- Intelligent USB Devices/Gadgets [*] Embedded ARM Linux links (iPaq, ...) [*] Epson 2888 based firmware (DEVELOPMENT) [*] Sharp Zaurus (stock ROMs) [*] CDC Ethernet support (smart devices such as cable modems) --- USB Network Adapters [*] ASIX AX88172 Based USB 2.0 Ethernet Devices --- USB port drivers <M> USS720 parport driver USB Serial Converter support ---> --- USB Miscellaneous drivers <M> EMI 2|6 USB Audio interface support <M> Texas Instruments Graph Link USB (aka SilverLink) cable support <M> USB Auerswald ISDN support (EXPERIMENTAL) <M> USB Diamond Rio500 support (EXPERIMENTAL) <M> Tieman Voyager USB Braille display support (EXPERIMENTAL) <M> USB LCD driver support <M> Alcatel Speedtouch USB support <M> USB testing driver (DEVELOPMENT) <M> Support for USB Gadgets --->
File systems ---> <*> Second extended fs support [*] Ext2 extended attributes [*] Ext2 POSIX Access Control Lists [*] Ext2 Security Labels <M> Ext3 journalling file system support [*] Ext3 extended attributes [*] Ext3 POSIX Access Control Lists [*] Ext3 Security Labels [ ] JBD (ext3) debugging support <*> Reiserfs support [ ] Enable reiserfs debug mode [*] Stats in /proc/fs/reiserfs <M> JFS filesystem support [*] JFS POSIX Access Control Lists [ ] JFS debugging [*] JFS statistics <M> XFS filesystem support [ ] Realtime support (EXPERIMENTAL) [*] Quota support [*] ACL support < > Minix fs support < > ROM file system support [*] Quota support <M> Old quota format support <M> Quota format v2 support < > Kernel automounter support < > Kernel automounter version 4 support (also supports v3) CD-ROM/DVD Filesystems ---> DOS/FAT/NT Filesystems ---> Pseudo filesystems ---> Miscellaneous filesystems ---> Network File Systems ---> Ext2/3파일시스템에서 파일에 속성을 기록할 수 있게하는 옵션이다. 레드햇8에서 잠시 소개가 된 기능이다. attr패키지에 포함된 lsattr, getfattr, setfattr 명령으로 각 파일에 대해 설정할 수 있다.
각 파일시스템에서 파일에 사용자별, 그룹별로 권한을 기록할 수 있게하는 옵션이다. acl패키지에 포함된 chacl, getfacl, setfacl 명령으로 각 파일에 대해 설정할 수 있다.
Ext2파일시스템에서 SELinux같은 확장 모듈에서 쓰이는 확장권한을 지원한다고 한다.
사용자별 디스크 사용량을 제한할 수 있도록 한다. ext2, ext3, reiserfs에서만 사용 가능하다.
커널 2.4이전의 Quota형식을 지원하도록 한다.
32bit UID/GID를 지원하는 Quota형식을 지원하도록 한다.
XFS에서 Quota기능을 쓰려면 독자적인 XFS Quota옵션을 켜주어야 쓸 수 있다.
CD-ROM/DVD Filesystems ---> <M> ISO 9660 CDROM file system support [*] Microsoft Joliet CDROM extensions [*] Transparent decompression extension <M> UDF file system support CD-ROM 또는 DVD Media에서 쓰이는 iso9660 파일시스템지원 옵션이다.
Microsoft가 만든 긴 파일이름과 유니코드를 지원하는 iso9660의 확장이다.
리눅스에서만 쓸 수 있는 압축 isofs지원이다. 이러한 파일시스템을 만들려면 ![]() DVD Media에서 쓰이는 UDF 파일시스템 지원 옵션이다.
DOS/FAT/NT Filesystems ---> <M> DOS FAT fs support <M> MSDOS fs support <M> VFAT (Windows-95) fs support <M> NTFS file system support [ ] NTFS debugging support [*] NTFS write support 이전 8.3형식의 파일이름을 지원하는 fat지원 옵션이다.
VFAT 또는 FAT32 파일시스템을 지원하는 옵션이다.
커널 2.6에서는 ![]() Pseudo filesystems ---> [*] /proc file system support [ ] /dev file system support (OBSOLETE) [*] /dev/pts file system for Unix98 PTYs [*] /dev/pts Extended Attributes [*] /dev/pts Security Labels [*] Virtual memory file system support (former shm fs) [*] HugeTLB file system support proc 가상 파일시스템을 사용할 수 있도록 한다.
device장치를 자동으로 관리해주는 devfs를 사용할 수 있도록 한다. 커널 2.4와는 달리 /dev/pts를 지원하지 않는다. 곧 ![]() 가상터미널 장치를 자동으로 관리해주는 pts파일 시스템이다.
동적으로 영역을 할당해주는 램파일시스템이다. /dev/shm 또는 /tmp에 주로 마운트하여 사용한다.
Miscellaneous filesystems ---> < > ADFS file system support (EXPERIMENTAL) < > Amiga FFS file system support (EXPERIMENTAL) < > Apple Macintosh file system support (EXPERIMENTAL) < > BeOS file systemv(BeFS) support (read only) (EXPERIMENTAL) < > BFS file system support (EXPERIMENTAL) < > EFS file system support (read only) (EXPERIMENTAL) <M> Compressed ROM file system support < > FreeVxFS file system support (VERITAS VxFS(TM) compatible) < > OS/2 HPFS file system support < > QNX4 file system support (read only) < > System V/Xenix/V7/Coherent file system support <M> UFS file system support (read only) [*] UFS file system write support (DANGEROUS) Network File Systems <M> NFS file system support [*] Provide NFSv3 client support [ ] Provide NFSv4 client support (EXPERIMENTAL) [*] Allow direct I/O on NFS files (EXPERIMENTAL) <M> NFS server support [*] Provide NFSv3 server support [ ] Provide NFSv4 server support (EXPERIMENTAL) [*] Provide NFS server over TCP support (EXPERIMENTAL) <M> Provide RPCSEC_GSS authentication (EXPERIMENTAL) <M> Kerberos V mechanism for RPCSEC_GSS (EXPERIMENTAL) <M> SMB file system support (to mount Windows shares etc.) [*] Use a default NLS (cp949) Default Remote NLS Option <M> CIFS support (advanced network filesystem for Samba, Window and other CIFS compliant servers)(EXPERIMENTAL) < > NCP file system support (to mount NetWare volumes) < > Coda file system support (advanced network fs) < > InterMezzo file system support (replicating fs) (EXPERIMENTAL) < > Andrew File System support (AFS) (Experimental)---> Partition Types ---> [*] Advanced partition selection [ ] Acorn partition support [ ] Alpha OSF partition support [ ] Amiga partition table support [ ] Atari partition table support [ ] Macintosh partition map support [*] PC BIOS (MSDOS partition tables) support [ ] BSD disklabel (FreeBSD partition tables) support [ ] Minix subpartition support [ ] Solaris (x86) partition table support [ ] Unixware slices support [ ] Windows Logical Disk Manager (Dynamic Disk) support [ ] NEC PC-9800 partition table support [ ] SGI partition support [ ] Ultrix partition table support [ ] Sun partition tables support [ ] EFI GUID Partition support Native Language Support ---> (cp949) Default NLS Option <M> Codepage 437 (United States, Canada) < > Codepage 737 (Greek) < > Codepage 775 (Baltic Rim) < > Codepage 850 (Europe) < > Codepage 852 (Central/Eastern Europe) < > Codepage 855 (Cyrillic) < > Codepage 857 (Turkish) < > Codepage 860 (Portuguese) < > Codepage 861 (Icelandic) < > Codepage 862 (Hebrew) < > Codepage 863 (Canadian French) < > Codepage 864 (Arabic) < > Codepage 865 (Norwegian, Danish) < > Codepage 866 (Cyrillic/Russian) < > Codepage 869 (Greek) < > Simplified Chinese charset (CP936, GB2312) < > Traditional Chinese charset (Big5) < > Japanese charsets (Shift-JIS, EUC-JP) <M> Korean charset (CP949, EUC-KR) < > Thai charset (CP874, TIS-620) < > Hebrew charsets (ISO-8859-8, CP1255) < > Windows CP1250 (Slavic/Central European Languages) < > Windows CP1251 (Bulgarian, Belarusian) <M> NLS ISO 8859-1 (Latin 1; Western European Languages) < > NLS ISO 8859-2 (Latin 2; Slavic/Central European Languages) < > NLS ISO 8859-3 (Latin 3; Esperanto, Galician, Maltese, Turkish) < > NLS ISO 8859-4 (Latin 4; old Baltic charset) < > NLS ISO 8859-5 (Cyrillic) < > NLS ISO 8859-6 (Arabic) < > NLS ISO 8859-7 (Modern Greek) < > NLS ISO 8859-9 (Latin 5; Turkish) < > NLS ISO 8859-13 (Latin 7; Baltic) < > NLS ISO 8859-14 (Latin 8; Celtic) < > NLS ISO 8859-15 (Latin 9; Western European Languages with Euro) < > NLS KOI8-R (Russian) < > NLS KOI8-U/RU (Ukrainian, Belarusian) <M> NLS UTF8 Profiling support ---> [*] Profiling support (EXPERIMENTAL) < > OProfile system profiling (EXPERIMENTAL) Kernel hacking ---> [*] Kernel debugging [ ] Check for stack overflows [ ] Debug memory allocations [ ] Memory mapped I/O debugging [*] Magic SysRq key [ ] Spinlock debugging [ ] Page alloc debugging [ ] Compile the kernel with debug info [ ] Sleep-inside-spinlock checking [ ] Compile the kernel with frame pointers Security options ---> [*] Enable different security models [*] Socket and Networking Security Hooks <M> Default Linux Capabilities <M> Root Plug Support [*] NSA SELinux Support [ ] NSA SELinux boot parameter (NEW) [ ] NSA SELinux Development Support [ ] NSA SELinux MLS policy (EXPERIMENTAL) (NEW) Cryptographic options ---> --- Cryptographic API --- HMAC support <M> Null algorithms <M> MD4 digest algorithm <M> MD5 digest algorithm <M> SHA1 digest algorithm <M> SHA256 digest algorithm <M> SHA384 and SHA512 digest algorithms <M> DES and Triple DES EDE cipher algorithms <M> Blowfish cipher algorithm <M> Twofish cipher algorithm <M> Serpent cipher algorithm <M> AES cipher algorithms <M> CAST5 (CAST-128) cipher algorithm <M> CAST6 (CAST-256) cipher algorithm <M> Deflate compression algorithm <M> Testing module Library routines ---> <M> CRC32 function |
You attempt things that you do not even plan because of your extreme stupidity. |