2.6. GeneraL SetuP

네트워킹과 버스 프로토콜, 절전기능 등 시스템에 전반적으로 영향을 주는 설정들입니다.

[*] Networking Support
[ ] SGI ViSuaL WorkStaion Support
[*] PCI Support
(Any) PCI acceSS mode
[*] PCI device name database
[ ] EISA support
[ ] MCA support
[*] Support for hot-pluggable devices
PCMCIA/CardBus support  --->
PCI Hotplug support  --->
[*] SyStem V IPC
[ ] BSD ProceSS Accounting
[*] SysctL Support
(ELF) Kernel core (/proc/kcore) format
<M> KerneL Support for a.out binarieS
<*> KerneL Support for ELF binarieS
<*> KerneL Support for MISC binarieS
[*] Power Management BIOS Support
[ ]   ACPI support
< >   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 off

Networking Support :

여러분이 네트워크에 대해 전혀 모르더라고 반드시 선택합니다. 네트워크 없는 리눅스는 그 재미를 절반도 느낄 수 없을 뿐 아니라 네트워크에 연결되어 있지 않더라도 루프백 네트워킹이 필요하며, 전화선을 통해 인터넷에 접속하는 SLIP, PPP diaL-up 네트워킹에서도 필요합니다. 어떤 프로그램들, 특히 X 윈도우용 프로그램들은 네트워크 기능의 설정되어 있어야 제대로 동작하는 경우가 많습니다. 이미 설치되어 있는 도구들이 새 커널에 있는 기능을 미처 지원하지 못할 수도 있으므로, 커널을 업그레이드할 때 네트워킹 툴까지 업데이트해야 할지도 모릅니다. 반드시 [Y]

* 루프백(Loopback) :

ifconfig 명령으로 네트워크 인터페이스를 확인해보면 lo라는 이름의 인터페이스를 볼 수 있습니다:

last:el[1]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:10:5A:60:FC:F4  
          inet addr:10.1.1.222  Bcast:10.255.255.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4031 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          Interrupt:3 Base address:0x300 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 

lo 인터페이스는 TCP/IP 테스트나 프로세스 사이 통신에 쓰입니다. 127.0.0.0 값이 루프백을 위해 예약된 주소로 라우터나 호스트에 127로 시작하는 주소를 할당할 수 없습니다. 루프백인 경우 127 다음에는 아무 주소라도 쓸 수 있는데 흔히 1(127.0.0.1)을 사용합니다. 루프백 주소를 이용하면 리눅스 박스가 실제 네트워크에 연결되어 있지 않더라도 서버와 네트워크 기반 프로그램들이 잘 동작하는지 점검할 수 있으며, 여러분의 서버를 가지고 놀며 네트워크를 연습하는데 좋습니다.

SGI ViSuaL WorkStaion Support :

슈퍼 컴퓨터 크레이로 유명한 Silicon Graphics의 SGI 320이나 540 워크스테이션에서 리눅스를 사용한다면 [Y]를 답합니다. 다른 PC 보드에서는 동작하지 않을것입니다. 여러분 대부분은 "IBM PC 호환기종"이라 불리는 머신을 사용하고 있을테니 [N]를 선택하는 것이 좋습니다.

PCI Support :

대부분의 486 시스템, Pentium 이상 기종의 마더보드는 PCI 버스를 지원하는 바이오스를 사용합니다. ISA(대개 16비트 컴퓨터 시절), EISA(386이나 486 초기 시절), MCA(IBM의 PS/2 전용)가 아닌 여러분 대부분은 [Y]를 선택합니다.

(Any) PCI acceSS mode :

오래된 PCI 마더보드 가운데 BIOS가 망가지거나 버그 때문에 PCI 장치들을 찾아내지 못하는 것이 있습니다. 리눅스는 커널이 BIOS의 도움 없이 하드웨어에 접근할 수 있는데 이 기능에는 세 가지 옵션이 있습니다. "BIOS"는 BIOS를사용하고, "Direct"는 BIOS를 사용하지 않습니다. "Any"는 커널이 직접 접근해 보고 동작하지 않으면 BIOS로 돌아갑니다. "Any"로 두는 것이 안전합니다.

PCI device name database :

기본 값으로, 커널은 모든 알려진 PCI 장치 이름들에 대해 /proc/pci, /proc/ioports에 사용자들이 쉽게 알아볼 수 있는 데이터 베이스를 가지고 있습니다. 이 데이터베이스는 커널 이미지 크기를 80KB 늘이지만, 시스템이 부트된 다음에는 다시 회수되는 메모리이므로, 실제로 커널 메모리에는 아무 영향을 주지 않습니다. 아무튼, 여러분이 설치디스켓이나 임베디드 시스템 등 크기가 가장 중요한 커널을 만든다면 이 기능을 뺄 수 있습니다. 다만, 장치들의 이름 대신 장치 ID 번호들을 사용해야 할 것입니다. 잘 모르겠으면 [Y]를 선택합니다.

EISA support :

EISA(Extended Industry Standard Architecture) 버스는 오래 전에 (1988년부터 1995년 사이) 쓰이던 기능으로 PCI 버스가 나타난 이후로 아주 사라져 버렸습니다. 여러분의 PC에서 EISA를 사용하는 것이 확실할 때에만 이 기능을 사용합니다. 펜티엄 이상을 사용하는 모든 사용자는 [N]을 선택합니다.

MCA :

MicroChanneL Architecture는 IBM PS/2 머신에서 찾아볼 수 있는데 국내에서는 잘 쓰이지 않습니다. [N]을 선택합니다.

Support for hot-pluggable device :

PCMCIA-나 PC-카드 등은 컴퓨터가 동작하는 동안 장치를 새로 꽂거나 뽑는 일을 할 수 있습니다. 이런 기능을 이용하는 장치로는 네트워크 카드, 모뎀, 하드 드라이브 등 여러가지가 있는데 대개 랩탑 컴퓨터에서 사용하고 있습니다. 요즘에는 데스크탑에서도 USB를 이용해 이런 기능을 제공합니다. HOTPLUG와 KMOD를 활성화하고 커널 모듈로 만든 다음 에이전트 소프트웨어 ( http://linux-hotplug.sourceforge.net)를 가져와서 시스템에 설치해야합니다.

PCMCIA/CardBus support :

CardBus는 PC-카드를 위한 32 비트 버스 매스터링 아키텍쳐입니다. (원래 PCMCIA 표준 제품들은 16 비트 와이드 버스밖에 없습니다) 새로 나온 PC-카드 대부분은 CardBus 카드들입니다. PC-카드를 사용하려면 먼저 이 기능을 지원하는 소프트웨어를 (David Hind"s pcmcia-cs 패키지) 설치해야 합니다. 여러분에게 필요한 것인지 잘 모르겠다면 [Y] 또는 [M]을 선택합니다.

[*]   CardBus support
[ ]   i82365 compatible bridge support
[ ]   Databook TCIC host bridge support

I Hotplug Support:

마더보드가 핫플러그 컨트롤러를 가지고 있다면 이 기능을 통해 컴퓨터가 켜져 있는 채로 PCI 장치들을 더하거나 뺄 수 있습니다. 핫플러그 컨트롤러와 협응하려면 pcihpfs 파일시스템이 반드시 마운트되어 있어야 합니다. 잘 모르겠으면 [N].
<M> Support for PCI Hotplug (EXPERIMENTAL)
<M>   Compaq PCI Hotplug driver
[*]     Save configuration into NVRAM on Compaq servers

SyStem V IPC(Inter ProceSS Communication) :

프로세스 사이에서 동기화와 정보교환을 위한 라이브러리 함수와 시스템 콜 모음입니다. 대개 [Y]를 선택합니다. 특히, Dos emulator와 같은 프로그램을 사용하려 한다면 동기화를 위해 [Y]를 선택해야 합니다. 메모리에 적재되어 실행중인 프로그램이 프로세스이며

프로세스는 프로그램의 코드들과 프로그램 실행을 위한 다양한 값들을 포함하는 것으로 어떤 이들은 프로그램의 영혼이라 부르기도 합니다. 이 기능을 선택하면 커널이 18KB 정도 늘어나겠지만 반드시 [Y]라 답해야 합니다.

BSD ProceSS Accounting :

프로세스가 끝날 때 커널에 의해 프로세스 정보가 파일에 추가됩니다. 프로세스 정보는 생성시간, 소유권, 커맨드 이름, 메모리 점유율, 터미널 제어 등이 포함됩니다. 이 옵션에 [Y]라 선택하는 것이 여로모로 유용합니다. 유저 스페이스 명령들로 프로세스 정보를 확인할 수 있습니다.

SysctL Support :

sysctl 인터페이스는 커널컴파일 재질의나 시스템 재부팅 없이 실행중인 커널 매개변수를 동적으로 변경하는 방법을 제공합니다.

주 인터페이스는 시스템 콜로 이루어져 있지만, /proc 파일시스템이 설치되어 있다면 sysctl 구성 요소들이 /proc/sys 디렉토리 아래 트리형태의 파일시스템처럼 생성됩니다. 이 기능을 이용하면 흥미롭게도 커널 구성요소들을 사용자가 직접 편집할 수 있습니다. (특별히 바이너리가 필요한 경우를 제외하고 일반적으로 텍스트 포맷으로 구성됩니다)

이 기능을 선택하면 커널 크기가 8KB 늘어납니다. 그러나 인스톨/복구 디스크를 위해 사용하는 특수한 커널이나, 메모리가 극단적으로 적은 시스템이 아니라면 [Y]를 선택하는 것이 좋습니다.

대표적인 sysctl 기능으로 /proc/sys/kernel/panic이 있습니다. panic에 0보다 큰 정수값을 설정하면 시스템이 멈추었을 때 정해진 시간(초)이 지나면 자동으로 리부트합니다. 0은 이 기능을 비활성화합니다. 특히 네트워크 장비로 리눅스 박스를 사용한다면 이 기능을 반드시 활성화해야합니다. 커널 패러미터를 바꾸기위해 재부팅해야한다면 고객이 좋아하지 않겠지요.

(ELF) Kernel core (/proc/kcore) format :

"support for /proc file system"을 활성화하면 커널의 코어 이미지가 /proc/kcore 파일에 담깁니다. gdb에서 활용할 수 있습니다:

$ cd /usr/src/linux ; gdb vmlinux /proc/kcore

둘 가운데 하나를 선택할 수 있습니다:

ELF를 선택하면 /proc/kcore 파일이 ELF 코어 포맷으로 구성되고, A.OUT을 선택하면 이전 버전의 binutils 등 오래된 도구들이나 아키텍쳐에서 사용할 수 있습니다. 커널을 컴파일 할 때 "-g"옵션으로 디버깅 정보를 넣은 다음, 이 커널이 실행중인 동안에도 커널 데이터 구조를 시험하는 등 용도로 사용합니다. 잘 모르겠거나, 커널 해커가 아니라면 기본값인 ELF를 그대로 두는 것이 좋습니다.

KerneL Support for a.out binarieS :

a.out(aSSembLer.output)은 ELF 이전에 쓰이던 바이너리 포맷으로 점차 사라져 가는 포맷입니다. 대개 이 기능을 사용할 일이 없는데, 정말 필요하다면 모듈로 설정합니다[M].

KerneL Support for ELF binarieS :

ELF(Executable and Linkable Format)은 서로 다른 OS나 Architecture에 호환이 될 수 있도록 표준화된 Binary File Format입니다. 또, ELF는리눅스 바이너리 포맷의 표준이기도 하므로 반드시 [Y]를 선택합니다. 리눅스 커널과 많이 쓰이는 모든 프로그램들이 ELF 포맷으로 컴파일 됩니다. ELF는 a.out에 비해 진보된 기능들을 포함합니다. 특히 ELF의 공유 라이브러리 동적 지원 기능이 a.out에는 없습니다. [Y]

KerneL Support for MISC binarieS :

Java, EmacS-LiSp, DOS 실행파일 등을 커널 바이너리 클래스에 등록했다면 인터프리터를 거치지 않고 셸 프롬프트에서 파일 이름을 쓰는 것만으로 간단히 프로그램을 시작할 수 있습니다. [Y]라고 답했다면 "KerneL Support for JAVA binarieS", "kerneLSupport for Linux/InteLELF bianrieS" 기능은 필요 없습니다. 어떻게 해야 할지 모르겠으면 [Y]를 선택합니다.

Power Management support :

컴퓨터를 끄거나 전력 소비를 줄이는 등 기능을 전원관리라 부릅니다. 여기에는 APM과 ACPI 두 가지 표준이 있습니다. 둘 가운데 어떤 것이든 원한다면 [Y]를 선택하고 아래에서 적절한 옵션들을 선택합니다.

이 기능은 랩탑의 배터리처럼 시간 제한이 있는 전원장치를 가진 시스템에서는 매우 유용하지만 서버에서는 그다지 쓸모 있는 기능은 아닌 것 같습니다. 여러분의 서버가 슬립모드에서 깨어나는 동안 사용자들이 지쳐버릴지도 모릅니다. 이 옵션을 끄더라도 시스템을 멈추는 hlt 명령은 사용할 수 있습니다.

ACPI support :

리눅스에서 ACPI/OSPM 지원기능은 현재 개발중입니다. 그래서 이 옵션은 아직 완전하지 않습니다. ACPI(Advanced Configuration and Power Interface)는 이전의 전원관리 표준보다 더욱 세세한 정보들을 다룬다고 합니다. ASPI/OSPM을 사용하려면 이 기능을 지원하는 하드웨어/펌웨어를 갖춘 시스템이어야 하는데, 잘 모르겠다면 [N]을 선택하는 것이 안전합니다.

2.6.1. 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 off (NEW)

컴퓨터 전원을 끄기 위해 리얼 모드 APM 바이오스 콜들을 사용합니다. 이 기능은 문제가 있는 바이오스들을 비켜갑니다. 여러분 컴퓨터에 문제가 있어 전원이 꺼지지 않는다면 이 기능을 사용하세요.

2.6.2. 사라진 것들..

..

PCI quirkS :

BIOS가 깨어져 PCI 장치설정에 문제가 있다면 [Y]를 선택합니다. BIOS가 잘 동작한다면 [N]을 선택합니다.

PCI bridge optimization (experimentaL) :

CPU와 PCI, 또는 PCI와 ISA 사이에 브리지가 있어 서로 다른 버스사이에서 데이터를 전송할 수 있도록 논리적인 기능을 합니다. 마더보드에 이 기능을 담당하는 칩셋이 있어 PCI는 다른 다양한 버스구조를 가진 슬롯과 함께 쓰일 수 있습니다. 바이오스에 문제가 있고 PCI 버스를 사용한다면 이 기능을 선택해 장치 엑세스 속도를 향상시킬 수 있습니다.

Backward compatibLe /proc/pci :

새로운 방법은 /proc/bus/pci를 사용합니다. 하지만 오래된 프로그램들을 가지고 있어 /proc/pci 파일에서 PCI 정보를 읽는다면 [Y]를 선택합니다. 확실하지 않다면 [Y]를 선택하는 것이 안전합니다.

KerneL Support for JAVA binarieS :

Java(TM)은 SUN에서 개발된 객체지향 프로그램 언어입니다. JDK를 설치하려는 자바 개발자가 아니라면 Java bytecode 바이너리는 모듈이나 [N]를 선택합니다.