BBUWOO'S [ LIKE UNIX ] WORLD Home > Lecture > Kernel > Kernel-1  

HOME
WHAT's BBUWOO?
LInux AnNyung
Open Source
    GitHUB
    GitHUB (for PHP)
LECTURE
MINI LECTURE
QnA BOARD
ENGLISH POEM


WARNNING

강좌의 모든 권리는 본인 김정균에게 있으며 이 강좌를 상업적 목적 으로 이용
하거나 다른 곳으로 옮길시에는 본인의 허락이 있어야 한다. 이글의 가장 최신글은
http://oops.org 에서 확인할수 있다.



1. Changes from 2.2 to 2.4

1. 서문

이 문서는 2.4 커널을 운영하기 위해 필요한 최소한의 소프트웨어 목록을 제공한다. 만약 커널 2.2.x pre version으로 부터 업그레이드를 한다면, 추가 정보를 위해 커널 2.2.x 커널에 포함되어 있는 Changes file을 참고 하여야 한다; 하지만 왠만한 정보들은 여기에서 반복이 되어질것이다. 기 본적으로 이 문서는 시스템이 이미 적어도 2.2.x 커널로 운영이 되고있다 는 가정하 에 진행이 된다.

이 문서는 2.0.x 커널의 Changes 파일에 기반을 둔다. 그러므로 2.0.x 커 널의 Changes 와 같은 사람의 이름이 credit이 되어진다. (Jared Mauch, Axel Boldt, Alessandro Sigala 그리고 셀수 없는 많은 유저들...)

<http://cyberbuzz.gatech.edu/kaboom/linux/Changes-2.4/> 에서 이 문서 의 여러 포맷중 최종 버젼을 볼수가 있다.

이 문서는 자유롭게 번역 할 수 있다. 만약 번역을 한다면, 이 문서가 위 치할 번역본의 URL을 내게 메일로 (kaboom@gatech.edu 또는 chris.ricker@genetics.utah.edu) 보내주기 바란다.

최종 수정: 2000년 12월 11일
Chris Ricker (kaboom@gatech.edu or chris.ricker@genetics.utah.edu).

최종 번역: 2001년 1월 8일
김정균 JoungKyun Kim (admin at oops.org)

2. 현재 최소 요구사항

문제가 발생했을 경우 버그라고 생각하기 전에 적어도 아래의 소프트웨어 의 버젼들을 업그레이드 해줘야 한다. 현재 운영하고 있는 버젼들에 대해 확실하게 모른다면 아래 리스트들의 오른쪽에 적혀 있는 명령들을 이용하 여 확인을 하기 바란다.

다시, 이 리스트들은 이미 커널 2.2 가 운영되고 있다고 가정하에 작성이 되어 졌음을 명심해야 한다. 또한 모든 시스템들에서 여기서 나열하는 패 키지들의 버젼을 맞춰줄 필요는 없다; 다시말해서 PCMCIA (PC Card)를 사 용하지 않는 시스템에서 pcmcia-cs 같은 package 의 version을 꼭 여기서 요 구하는 버젼을 설치할 필요는 없다는 얘기이다.

o  Gnu C        2.91.66                 # gcc --version
o  Gnu make     3.77                    # make --version
o  binutils     2.9.1.0.25              # ld -v
o  util-linux   2.10o                   # fdformat --version
o  modutils     2.4.0                   # insmod -V
o  e2fsprogs    1.19                    # tune2fs --version
o  pcmcia-cs    3.1.21                  # cardmgr -V
o  PPP          2.4.0                   # pppd --version
o  isdn4k-utils 3.1beta7                # isdnctrl 2>&1|grep version

3. Kernel compilation

GCC

gcc 버젼은 컴퓨터의 CPU의 타입에 상당히 의존적으로 요구되어 진다. 다 음 패러그래프는 x86 CPU user들에게 적용이 된다. 하지만 다른 CPU를 사 용하는 유저들에게도 응용을 하면 적용이 가능하기는 하다.

커널을 위해 추천하는 컴파일러로는 egcs 1.1.2(gcc 2.91.66)이 있다. 그 리고 절대적인 안정성이 필요할 때 사용이 되어진다. 원한다면 만약 문제 가 발생하더라도 gcc 2.95.2 를 사용할수도 있다. gcc 의 다음 버젼은 리 눅스 커널의 색인작업으로 인해 충분하게 테스트를 못했으며 거의 확실하 게 이 컴파일러를 사용하기 위해 수정을 해야할 필요가 있을 버그들이 있 을 겻이다. egcs 나 plain gcc대신 pgcc 를 사용할 경우 문제에 대해서는 단지 고견을 기다릴 뿐이다.

gcc 2.7.2.3 은 더이상 커널 컴파일러로 지원되지 않음을 주의해야 한다. 커널은 gcc 2.7.2.3의 버그들로 인하여 작동을 하지 않는다. 사실 이것으 로 컴파일 하는 것을 사양하고 싶다.

추가적으로, 컴파일러의 최적화에 주의를 해야 한다. -O2 보타 큰 옵션은 현명하지 못한 방법이다. 유사하게, gcc-2.95 를 사용하거나 유사한 것을 사용할 경우, -fstrict-aliasing 을 사용하지 말아야 한다. (gcc 2.95 버 젼을 사용한다면 필연적으로 -fno-strict-aliasing를 사용해야 한다.

Make

커널을 만들기 위해서는 Gnu make 3.77 이상의 버젼이 필요하다.

Binutils

IA-32 기반의 리눅스는 최근들어 16bit코드를 어셈블링 하기위해 as86 을 사용하는 것으로 부터 gas를 사용하는 것으로 교체되고 있으며 커널을 컴 파일을 하기 위해 as86 을 사용하는 것을 자제하고 있다. 하지만 이 변화 는 binutils 패키지의 최근 버젼이 필요하다는 것을 의미한다.

가능하다면, 적어도 2.9.5이상의 binutils버젼으로 업그레이드 하기를 권 장한다. 2.8 또는 2.8.xx 과 같은 예전 버젼과 FSF의 2.9.1버젼은 가능하 다면 피해야 한다. 최근 버젼인 2.9.1.0.x (x는 22보다 크거나 같아야 한 다) 은 적절하게 커널 컴파일을 할수 있지만 2.9.5 로 업그레이드를 하면 많은 이익을 얻을수 있을 것이다.

4. System utils

구조적 변화들

커널 2.4 부터 DevFS 를 지원한다. 모든 자세한 세부 사항을 위해서 커널 소스 트리안의 Documentation/filesystems/devfs/*를 참고하라.

이제 시스템V 공유 메모리는 가상 파일 시스템을 통해서 지원이 된다. 이 것을 사용하기 위해 마운트를 하지 않아도된다. SYSV 공유 메모리의 제한 은 /proc/sys/kernel/shm{max,all,mni} 를 통해 설정을 할수 있다. POSIX 공유 메모리를 사용 가능하게 하려면 /dev/shm 아래에 파일시스템을 마운 트 해야 한다. /etc/fstab 에 조심하여 아래의 라인을 추가해 주도록 한 다:

none            /dev/shm        shm             defaults        0 0

필요에 의해 shm 마운트를 하기 위해서 디렉토리를 생성해야 한다는 것을 기억하다. (디렉토리를 생성해야 한다는 것은 /dev/shm 은 수종으로 만들 어 줘야 한다는 의미이며, 엔트리는 devfs를 사용한다면 자동으로 생성이 된다.) 마운트 옵션 nr_blocks 와 nr_inodes 를 이용하여 파일시스템에서 사용될 block과 inode의 수를 제한할수 있다.

Local Volumn Manager (LVM) 이 커널 차원에서 지원이 된다. 이것을 사용 하기를 원한다면, 필요한 LVM toolset을 설치해야할 필요가 있다.

32 비트 유저ID가 지원이 된다. 성공하기를..!!

기능들을 위한 리눅스 문서들은 소스안의 개발자들의 서명 근처에 특별한 형태의 언급으로 제공하는 것으로 변천 되고 있다. 이 언급들은 DocBook stylesheet 들을 이용해 PostScript, PDF 파일 그리고 여러가지 포맷으로 변환 되어질수 있는 DocBook파일들을 만들기 위해 Documentation/DocBook 안의 SGML template 과 결합되어질수 있다. DocBook포맷에서 원하는 포맷 으로 변환하기 위해서는 DocBook sytlesheet이 요구하는 jade를 설치해야 한다.

Util-linux

large disk 를 위한 fdisk 를 제공하며, 새로운 마운트 옵션을 지원하고, 더 많은 파티션 형태를 인식하는 util-linux의 새로운 버젼은 2.4 커널에 서 작동을 하고 goodies 와 유사한 fdformat을 포함하고 있다. 아마도 이 것을 업그레이들 하기를 원할지도 모르겠다.

Ksymoops

커널에서 생각치 못한 일이 발생한다면, 에러메세지를 분석하는 ksymoops 2.4버전이 필요할 것이다. 더 많은 정보를 위해서는 Linux 소스의 root에 있는 REPORTING-BUGS를 참고하라

Modutils

2.3.x 이하에서 친숙하게 볼수 있던 이미 발표 되어진 여러가지 버그들을 수정하고 USB 모듈을 자동으로 띄울수 있게 하기 위해서 modutils의 최신 버젼으로 업그레이드를 해야 한다. 게다가 2.4 에서 /lib/modules/`uname -r`/ 아래의 모듈들의 배치가 더욱 명확하게 되어지 고 또한 이 변화는 최신의 modutils 로 업그레이드를 요구한다.

Mkinitrd

/lib/modules 파일 구조의 배치의 변화는 또한 mkinitrd 의 업그레이드를 필요로 한다.

E2fsprogs

e2fsprogs 의 최신 버젼은 fsck 와 debugfs 의 여러가지 버그들이 수정되 어 졌다. 꼭 업그레이드를 하는 것이 좋다.

Pcmcia-cs

PCMCIA (PC Card)지원은 주 커널 소스에서 부분적으로 제공이 된다. 커널 을 재 컴파일 할때 주의가 요구된다. 또한 최신의 pcmcia-cs 버젼으로 업 그레이드를 해야 한다.

Intel IA32 microcode

Intel IA32 microcode 로 업그레이드를 하기 위해, 그리고 devfs 정규 파 일과 일반적인(misc) character device둘다에 접근을 가능하게 하기 위해 하나의 드라이버가 추가 되었다. 필요에 의해서 devfs를 사용하지 않으려 면:

mkdir /dev/cpu mknod /dev/cpu/microcode c 10 184 chmod 0644 /dev/cpu/microcode

위의 명령을 실행할 때 반드시 root 의 권한으로 해야 한다. 또한 아마도 이것을 사용하기 위해서 user-space microcode_ctl 유틸리티가 필요로 한 다.

모듈로서 이 드라이버를 컴파일을 하기 위해서는 아래의 라인을 추가해야 한다:

alias char-major-10-184 microcode

/etc/modules.conf file에 넣어 주면 된다.

5. Networking

일반적인 변화

IP 방화벽 과 NAT 코드가 재작성이 되었다. 새로운 netfilter 소프트웨어 (ipfwadm과 ipchains, 또는 비슷한 기능을 포함한)은 현재 개별적으로 배포 가 되고 있다.

더욱 정교한 네트워크 설정이 필요하다면, 아마도 ip-route2로 부터 네트 워크 툴을 사용하는 것을 고려해야 할것이다.

PPP

PPP 드라이버는 멀티링크를 지원하고 별개의 미디어층을 수행하기 위해서 재 구성되어 졌다. 만약 PPP를 사용한다면, pppd 를 적어도 2.4.0b1 이상 으로 업그레이드를 해야 한다.

devfs를 사용하지 않는다면, 다음과 같이 ppp device file을 생성시켜 줘 야 한다:

mknod /dev/ppp c 108 0

루트로 수행해야 한다.

모듈로서 ppp를 지원하려면, /etc/modules.conf file에 아래의 설정이 있 어야 한다:

alias char-major-108    ppp_generic
alias /dev/ppp          ppp_generic
alias tty-ldisc-3       ppp_async
alias tty-ldisc-14      ppp_synctty
alias ppp-compress-21   bsd_comp
alias ppp-compress-24   ppp_deflate
alias ppp-compress-26   ppp_deflate

devfsd 를 사용하고 ppp 를 모듈로서 올렸다면, /etc/devfsd.conf file에 다음의 설정을 해 줘야 한다:

LOOKUP PPP MODLOAD

Isdn4k-utils

전화번호 필드의 길이를 변화해 줘야하며, isdn4k-utils를 재컴파일을 하 거나 업그레이드 해 줘야 한다.

6. 소프트웨어를 구할수 있는 곳

Compilers

egcs 1.1.2 (gcc 2.91.66)
o ftp://ftp.valinux.com/pub/support/hjl/gcc/egcs-1.1.2/egcs-1.1.2-glibc.x86.tar.bz2
o ftp://ftp.valinux.com/pub/support/hjl/gcc/egcs-1.1.2/egcs-1.1.2-libc5.x86.tar.bz2
o ftp://ftp.valinux.com/pub/support/hjl/gcc/egcs-1.1.2/egcs-1.1.2-alpha.tar.bz2

Binutils

2.9.1 series
o ftp://ftp.valinux.com/pub/support/hjl/binutils/2.9.1/binutils-2.9.1.0.25.tar.gz

2.10 series
o ftp://ftp.valinux.com/pub/support/hjl/binutils/binutils-2.10.0.24.tar.bz2

System utilities

Util-linux
o ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/util-linux-2.10o.tar.gz

Ksymoops
o ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4

Modutils
o ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/v2.4/

Mkinitrd
o ftp://rawhide.redhat.com/rawhide/SRPMS/SRPMS/mkinitrd-2.8-1.src.rpm

E2fsprogs
o ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/e2fsprogs-1.19.tar.gz
o ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/e2fsprogs-1.19.src.rpm

LVM toolset
o http://linux.msede.com/lvm/

Pcmcia-cs
o ftp://pcmcia-cs.sourceforge.net/pub/pcmcia-cs/pcmcia-cs-3.1.21.tar.gz

Jade
o ftp://ftp.jclark.com/pub/jade/jade-1.2.1.tar.gz

DocBook Stylesheets
o http://nwalsh.com/docbook/dsssl/

Intel P6 microcode
o http://www.urbanmyth.org/microcode/

Network

PPP
o ftp://linuxcare.com.au/pub/ppp/ppp-2.4.0.tar.gz

Isdn4k-utils
o ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/testing/isdn4k-utils.v3.1beta7.tar.gz

Netfilter
o http://netfilter.filewatcher.org/iptables-1.1.1.tar.bz2
o http://www.samba.org/netfilter/iptables-1.1.1.tar.bz2
o http://netfilter.kernelnotes.org/iptables-1.1.1.tar.bz2

Ip-route2
o ftp://ftp.inr.ac.ru/ip-routing/iproute2-2.2.4-now-ss991023.tar.gz

7. 제안과 수정

변화,수정,불만,분노,돈 등을 필자(chris.ricker@genetics.utah.edu)에게 자유롭게 할수 있다. Happy Linuxing!



>> 다음 : Kernel 2.4.x Installation



    



 Home > Lecture > Kernel > Kernel-1

Copyright 1997-2024 JoungKyun Kim 
LAST MODIFIED: 2017/01/18