예전에 하이텔 리눅스 동에서 퍼놓았던 자료입니다.
---------------------------------------------------------------------
제 목:[고찰] 엔터프라이즈 커널 2.4 관련자료:없음 [2399]
보낸이:김진덕 (comhack ) 2001-04-30 17:47 조회:185
1. intel family CPU 에서 64GByte 지원
- kernel 2.2.x 에서는 2GByte가 한계
- kernel 2.4.x 에서는 4~64GByte를 지원
- x86 32bit CPU에서 물리적으로 addressing 가능한 메모리는 4GByte
pentium pro 이상 CPU에서 지원되는 intel PAE(Physical Address Extension) 을
지원 할 수 있어 pentium pro 이상 CPU에서 64GByte memory를 addressing 할
수 있다. (PAE는 페이징 기법이 아니고 실제적으로 물리적인 Address
32Bit 주소를 36Bit로 확장하는것을 말함 2^32=4Gbyte -> 2^36=64Gbyte)
(윈도우즈2000 어드밴시스서버가 PAE 사용해서 고작 8Gbyte
윈도우즈2000 데이타센타서버가 PAE 사용해서 32Gbyte 64Gbyte를 지원한다고
하나 MS 사가 별로 자신 없는듯... )
2. IPC (Inter-Process Commuication) 변화
- POSIX standard compatible한 shared memory로 변화( /var/shm 구조로
mount 해서 사용) , System V 형식
- 생성할 수 있는 IPC object의 개 수 제한이 없어짐
3. 무한대의 process 생성 가능
- memory 만 가능하다면 무한대의 생성 가능한 process
- kernel 2.2.x include/linux/tasks.h 파일에 보면 #define NR_TASK 512 로서 기
본적으로 가능한 process수는 512 이고 x86 계열 에서는 최대 4092까지 제한
kernel 2.4.x 에서는 tasks.h 자료구조를 없애고 동적으로 할당하여 무한대의 task
가 가능하다.
- 동시에 실행가능한 process 와 thread 무제한
kernel 2.2.x 에서는 동시에 실행 가능한 process 와 thread수가 1024개로 제한
kernel 2.4.x 에서는 동시에 실행 가능한 process 와 thread가 자원이 가능하다면
무제한 이다.
4. 실행가능한 process 수가 많아질 때 scheduling 개선
작업 scheduler 의 성능 향상으로 더욱더 많은 process 들이 동시 작업하는데
kernel 2.2.x 보다 대폭적인 효율 향상
5. 완성된 SMP
- 과거 x86 386 single CPU model로 개발된 linux 는 multi processor 지원에 취약
해 4way system에서 Microsoft Windows NT 보다 상당이 떨어지는 성능을 보였
다.
- kernel 2.2.x 에서 부터 안정화 되기 시작하여 kernel 2.4.x 의 SMP 는 더욱더 강
력한 성능이 가능
6. Kernel 2.4.x 에서의 진보된 fine grained locking
- process와 kernel-thread등은 각 processor에게 분산되며 kernel 2.4.x 부터는
아주 세밀한 lock 지원
- 커다란 kernel-lock의 사용은 없어지고 대부분의 linux kernel의 하부 시스템은 충
분히 thread화 (networking, VFS, VM, IO, block/page cache, scheduling,
interrupt, signal, etc.)
7. 다양한 intel-compatible 계열 CPU 추가지원 (pentium 4, AMD-athlon,
winchip, etc.) 및 IA-64 platform 지원
8. 42억 User와 Group 지원
GID, UID Bit 수의 변화로
- kernel 2.2.x 에서는 GID, UID bit 수가 16 bit 이므로 2^16 = 65536 이므로 6553
6
의 GID와 UID가 가능하다.
- kernel 2.4.x 에서는 GID, UID bit 수가 32bit 로 늘어 2^32 = 4294967296 의 GID
와 UID 가 생성 가능하다.
9. File System 지원
- CD-RW와 DVD를 위한 UDF(패킷라이팅 포맷)
- IRIX의 EFS 지원
-단일 filesize 2GB 제한이 없어짐 (large file system: LFS)
대용량 volume 을 쓰는 database에 많은 유리 레이저FS 3.5버전 2^32 = 4G, 3.6버
전 2^60=? 해당되는 부분의 커널 소스를 보니까 커널에서는 기존 long인 데이타 형
식을 long long 타입으로 변화... 커널에서의 제한은 없어졌다... ext2에서는 아직
2G가 한계인가 보다...
- OS/2 filesystem 읽기 뿐만 아니라 쓰기 지원
- VFS(virtual file system) layer 변화로 caching이 향상됨
kernel 2.2.x two-buffer caching 방법
kernel 2.4.x single page caching 방법
또한 kernel 2.2.x 방법에서는 kernel 개발자들에게 복잡한 방법 이었으나 single
page caching 방법은 많은 개발자들에게 더 쉽게 도움을 준다.
- kernel 2.4.1 이후 journaling filesystem 공식 지원
Linux의 가장 취약한 부분은 정전으로 인한 filesystem의 치명적 손상 사태 임
정전으로 인한 filesystem 검사시 ext2 filesystem의 느린 검사속도로 대용량
filesystem 에서의 문제발생
journaling filesystem은 file을 작성하고 disk index 정보가 갱신되지 않더라도 자
체
적으로 log를 가지고 log 와 disk index를 비교해서 문제 해결 (reiserfs에서는
filesystem 검사가 2초정도에 해결된다.)
Kernel 2.4.1에서 지원하는 reiserfs은 아직 배포판에서는 package로 지원되지 않
아 따로 관련 utility(mkreiserfs 것들) 를 따로 설치하고 수작업으로 filesystem을
구성 해야 되나 앞으로의 배포판은 설치시 자동으로 지원될 예정
리눅스에서 가능한 파일시스템은 IBM의 JFS, SGI의 XFS, ext3등이 있으나 현재는
reiserfs 가 가장 안정적인 것으로 알려져 있다
10. Network Layer의 재작성
- networking layer 의 재작성으로 SMP에서 더욱더 효율적 이도록 구성했다.
- kernel 2.2.x의 network pack filtering 재구성
- firewall 부분과 IP-masquerade 새롭게 재작성
- packet filtering layer 와 NAT layer 부분은 subsystem으로 완전히 분리하여 독
립적으로 동작
- DECNet, ARCNet protocol 지원
- ATM, FDDI 등 초고속 network 지원
- Microsoft 의 NetBEUI protocol 지원 작업으로 앞으로 Kernel 2.4.x 내에 지원할
예정
- 현재는 미비하지만 방화벽 hardware 지원 시도
- 전반적인 Network hardware 지원 강화
11. Kernel Level Web Demon / NFS V3 지원
kernel 수준에서 처리하는 web demon (kernel web 가속기)
아직 정적인 data만 처리하고 처리할 수 없는 것은 사용자 공간에 있는 web
demon 통과시키는 역할을 한다. (즉 khttpd가 request를 처리할 수 없으면(CGI 와
같은) apache와 같은 사용자 공간에서 작동되는 web server에 요청을 넘긴다.)
khttpd를 사용하게 되면 정적인 data 에서의 속도가 3-4배 가량 향상 이로서 정적인
데이타 처리가 빠른 IIS4.0을 리눅스가 훨씬 압도 할수 있다.
- NFS V3 지원으로 성능 및 타 UNIX 와 호환성 강화
12. 대폭적인 Hardware지원
- USB / IEEE1394 지원
kernel 2.2.x 에서의 USB 장치는 key-board, mouse 수준
kernel 2.4.x 에서는 CD-ROM, 대용량 storage, sound card, scanner, digital
camera, modem, FM radio, network card, mp3 player 등 대부분의 USB 장치 지
원
고성능 serial bus 규격인 IEEE1394 지원
- RAID 기능 강화 및 안정성 강화
Software RAID0, RAID1, RAID4/5 지원
- SCSI driver의 재작성으로 SCSI 장치들의 안정적이고 진보된 기능
- IDE 장치가 4개에서 10개로 지원
- PCI serial board 에서의 IRQ 공유기능
- 16개의 network card 지원
- kernel 2.2.x 에서 실험적 이였던 Hot-plugin 장치들의 안정적 지원
- Direct Rendering Manager
Kernel 수준에서 Precision Insight사에서 개발한 DRI(Direct Rendering
Infrastructure)를 지원하는 것이며 XFree86 4.0.x 이상에서 사용된다.
2D/3D의 성능이 대폭 향상 될 것 이므로 게임과 3D전용 프로그램 들이 대폭 지원될
것으로 예상된다.
12. 새로운 개념인 장치 demon
DevFS(device filesystem) 도입
memory 상에서만 동작되는 가상 file system
장치의 이름과 위치가 바뀌고 device driver를 loding 할 때 장치 이름이 /dev에 등
록
현재 사용중인 장치만 /dev에 나오고 /proc과 마찬가지로 memory 상에서 구현된
다 (기존엔 /dev 이하에 모든 장치들이 나열)
완벽한 PnP 지원이 용이하다
장치명들이 많이 바뀜 (예로서 /dev/hda1
는 /dev/ide/host0/bus0/target0/lun0/part1
USB 장치 file system(usbdevfs)도 새로 추가된 기능
13 1 LVM (logical volume manager) sub system 지원
HP-UX, Tru64 UNIX, SUN 등에서만 지원되는 enterprise 수준의 기능
디스크나 파티션을 하나의 그룹단위로 만들어서 하나의 volume으로 생성하는 기능
하나의 볼륨이 논리적으로 취급되므로 언제든지 확장이 가능하고 확장에 제한이 없
다
결론 좋지만... 약간 불안하니 좀더 기달려 보자... 크크...
Joe Pranevich 의 Wonderful World of Linux 2.4와 리눅스 LDP를 참고하였음...
------------------------------------------------------------------------------
PRINTER/CAPTURE를 OFF 하시고
[ENTER] 를 누르십시오.
|