 |
|
난이도 : 초급 TW Burger, Owner, Thomas Wolfgang Burger Consulting
2000 년 8 월 01 일 리눅스 커널 2.4의 포트, 멀티미디어, 파일시스템, 버스 지원 등의 하드웨어에 대해 자세하게 알아본다.
포트, 멀티미디어, 기타 하드웨어
시리얼, 병렬, 적외선 포트
Linux 2.x의 최신판과 비교한다면, Linux 2.4는 시리얼 포트에 있어서 변화가 적다. IRQ와 공유는 여전히 가능하다.
멀티포트 보드(multiport board)를 포함한 특별한 시리얼 하드웨어 지원이 향상되었다.
병렬 포트 서브시스템은 변경작업 중이다. 2.4는 "알려지지 않은" 형식의 병렬 디바이스와 추상화된 커뮤니케이션을
위한 일반적인 병렬 포트 드라이버 기능을 갖추었다. 프로그램은 PNP 폴링 (polling)을 수행하기 위해 이것을 사용한다.
(병렬 포트 드라이버의 부작용은 루트 콘솔이 병렬 포트로 나뉘어 질 수 있다는 점이다.) 콘솔 메시지가 프린터로 쓰일 수 있도록
병렬 포트를 설정할 수 있다. 스크린에서 복사를 하거나 CRT 없는 서버상에서 콘솔로서 프린터를 사용하는 문제가 있을 때 디버깅에
유용하게 사용된다. Linux 2.4는 DMA를 사용하여 병렬 포트에 쓰기를 지원한다. 프린터의 액세스 속도를 높일 수 있다.
Linux 2.2는 특별한 구현에 적외선 포트를 지원했다. 2.4에는 표준이 되었다.
비디오
2.2에 도입된 프레임 버퍼(frame-buffer)는 바르게 설정되었을 경우 콘솔과 그래픽 모드 사이에 일관된 레이어를 제공했다.
Linux 2.4는 이를 업데이트 했고 새로운 비디오 드라이버도 포함했다.
Linux 2.4 커널의 가장 큰 변화 중 하나는 Direct Rendering Manager (DRM)의 추가이다. DRM은
그래픽 하드웨어 인터페이스를 정리하고 다중 프로세스를 비디오 카드에 쓸 필요가 줄어들었다. DRM은 비디오 카드에 DMA 액세스를
위한 엔트리 포인트로 작용한다. 이러한 액세스는 그래픽 중심의 작업을 할 Linux 2.4를 더욱 안정적으로 만든다.
멀티미디어
멀티미디어 지원은 리눅스 데스크탑의 이슈이다. 2.4에는 사운드 카드와 video4linux 디바이스용 드라이버와 업데이트가
포함되었다.
Linux 2.4는 리눅스 스피치(speech) 신시사이저 카드인 DoubleTalk을 지원할 것이다. 기타 사운드 및 비디오
아웃풋 디바이스와 TV/라디오 튜너도 지원될 것이다. 이 같은 지원으로 인해서 시각 장애를 가진 사용자 시장에서 좋은 위치를
차지 할 것이다.
새로운 사운드 카드의 고급 기능을 지원하기 위해 사운드 서브시스템을 완전히 다시 작성하고 있다. 이러한 지원은 2.5나 2.6
커널에서 구체화 될 것이다.
 |
블록 디바이스(block device)
블록 디바이스는 바이트 어레이 데이터를 가진 하드웨어이고 개별적으로 또는 무작위로 액세스 될 수 있다.하드 디스크는
블록 디바이스이다. 블록 디바이스로의 랜덤 액세스와 블록 디바이스로 부터의 랜덤 액세스가 불가능하다면 디스크에서 데이터의
읽기 및 쓰기는 오랜 시간이 걸린다. 디스크가 관련되어 있는 한 블록 디바이스는 모든 섹터가 언제라도 읽힐 수 있도록
한다. 직렬 포트 같은 디바이스는 블록 디바이스가 될 수 없다.
|
|
디바이스와 파일시스템
2.4 커널은 "미가공(raw)" I/O 디바이스를 구현한다. 이것은 전혀 새로운 블록 디바이스(block device)
기능이다. 미가공 디바이스는 저 수준 디바이스에 직접 액세스 할 수 있는 블록 디바이스이다. 미가공 디바이스는 복잡한
애플리케이션이 데이터 캐싱에 대한 완전한 제어를 원하지만 일반적인 캐시를 손실하는 것을 원치 않을 경우에 유용하다. 미가공 디바이스는
데이터가 중요시되는 상황에 사용될 수 있다.
이전에 미가공 디바이스 지원은 많은 디바이스 노드 숫자를 필요로 했기 때문에 리눅스에 포함시키기에는 적합하지 않았다. 상용
유닉스가 이를 사용하고 있다. 현재 미가공 디바이스 구현은 디바이스 노드 풀(pool)을 사용한다. 이로써 임의의 블록 디바이스와
연계할 수 있기 때문에 각 블록 디바이스는 고유의 디바이스 노드가 필요없다.
미가공 디바이스 노드의 개념은 유닉스에서 채택되었다. 리눅스 개발자들은 이러한 오래된 방식이 매우 쉽다는 것을 알았지만 기존
유닉스 시절에 사용된 대응(correspondence) 방식 보다는 미가공 디바이스 노드 풀을 사용하기로 결정했다. 미가공 디바이스
노드 풀은 임의의 블록 디바이스와 연결된다. 그러한 모든 노드에 미리 할당될 필요가 없다.
디바이스 노드를 풀링(pooling)하는 개념으로의 확장은 ioctls (I/O Controls)를 통해 핸들된다. 모든
블록 디바이스 드라이버들은 2.4를 위해 다시 작성되었다.
우선, 모든 디바이스 이름이 변경되었다. 예를 들어, "/dev/hda" 하드 디스크는 "/dev/ide0/hd1" 에 위치하게
될 것이다. 변경된 네이밍 스키마는 디바이스를 위해 사용가능한 네임스페이스를 늘렸다. 또한, USB와 다른 새로운 디바이스 시스템이
UNIX/Linux 디바이스 모델로 더욱 쉽게 통합될 수 있도록 하였다.
두 번째로, 디바이스 이름은 드라이버가 커널로 로딩되면서 /dev/ 디렉토리에 추가될 것이다. 기존의 방식은 모든 가능한
디바이스 이름들이 디렉토리에 미리 존재하고 있어야 했다. 오래된 이름들은 사용자 공간 프로그램인 "devfsd"를 사용하여
호환성을 목적으로 사용할 수 있다.
새로운 이름을 사용하기 위해서 모든 애플리케이션을 변경하기 원하는 배포판 관리자들에게 영향을 미치지만 최종 사용자는 변경사항들에
영향을 받지 않는다.
Linux 2.4의 파일시스템에 많은 변화가 이루어졌다. 캐시 레이어는 읽기 및 쓰기 작동에 단일 버퍼를 사용하기 위해 다시
작성되었다. 새로운 캐시 레이어는 많은 연속 작동을 단순화한다. 새로운 파일시스템 레이어는 훨씬 더 확장성있게 변했다. 8개
이상의 CPU의 멀티 프로세서 머신을 사용할 수 있다. 파일 전송과 여러 디스크가 포함된 쓰기는 매우 빨라졌다.
Linux 2.4는 모든 2.2 파일시스템들을 갖추고 있다:
- FAT (DOS)
- NTFS (Windows NT)
- VFAT & FAT32 (Windows 9x)
- HFS (MacOS)
- HPFS (OS/2)
OS/2 HPFS 드라이버는 이제 읽기-쓰기 작동이 가능하다.
새로운 Macintosh 파일시스템인 HFS+는 2.4에서는 지원되지 않는다.
2.4에는 세 개의 새로운 파일시스템이 추가되었다: DVD 디스크용 UDF 파일시스템, IRIX에서 사용되는 XFS (EFS)
파일시스템, UNIX NFS 파일시스템.
Virtual Filesystem (VFS) 레이어 또한 많이 향상되었고 버그도 픽스되었다. 이전 버전의 리눅스의 경우 파일
캐싱은 이중 버퍼 시스템에 의존했었다. 이는 코딩 작업은 단순하게 하지만 커널 개발자에게 문제를 야기시켰다. 파일 캐싱은 Linux
2.4에서는 이중 버퍼 시스템에 더이상 의존하지 않는다.
UNIX 기반의 오퍼레이팅 시스템과의 상호 운용성은 IRIX EFS 파일시스템과 IRIX disk-label (파티션 테이블)
포맷을 지원하면서 많이 향상되었다. NextStep UFS 지원도 향상되었다. UFS 드라이버는 CD-ROM을 지원한다.
효율성을 늘리기위해 모든 리눅스 파일시스템은 새로운 페이지 캐싱 시스템을 지원하도록 변경되었다. NTFS 파일시스템은 예외이다.
NTFS는 전용의 코드 메인테이너가 없기 때문에 안정적이지 않다. 따라서, NT 사용자들은 Linux 2.4에서 NTFS 디스크를
작성할 수 없다. 드라이버는 시험중이고 특정 환경에서 디스크 오염이 발생할 수 있다.
Linux 2.4 커널은 UNIX NFS (version 3) 파일시스템을 지원한다. 엔터프라이즈 시장에서 리눅스의 활용
가능성을 상당히 높일 것이다. NFS 프로토콜은 UNIX 기반 시스템에서 파일 공유를 위한 선택 방법이다. NFSv3 지원은
가장 많이 요구되는 새로운 기능이다.
엔터프라이즈 OS 시장은 저널링 파일시스템(journaling filesystem)
기능을 필요로한다. 2.4는 기능이 동결되었고 2.5에서나 선보일 전망이다.
버스 지원
Universal Serial Bus
Universal Serial Bus (USB) 지원은 Linux 2.3.x의 개발자 버전에서 가능하다. Kernel USB
지원 (2.3.99-pre9 부터)에는 USB 스캐너, 프린터, 카메라, 오디오, 조이스틱, 키보드, 마우스, 모뎀 등을 포함한다.
USB는 처음 인텔에서 개발한 외부 버스 유형이다. Linux 2.4는 일반적으로 Universal Serial Bus (USB)를
지원한다. 많은 특정 USB 디바이스가 아직 지원되지 않는다는 점이 문제이다. USB 키보드와 마우스는 표준 버전 처럼 정확히
테스트 될 것이다. 하지만 문제는 여전히 남아있다. 리눅스는 멀티 헤딩(multi-heading)용 내부 지원이 되지 않는다.
USB 사운드 디바이스 지원은 작업중이다.
Personal Computer Memory Card International Association 지원
PCMCIA 디바이스는 랩톱과 팜 디바이스에서 주로 사용된다. 표준 커널에 지원이 되었다. 전원 관리, 하드웨어 지원, 가상
키보드 레이어가 리눅스의 모바일 컴퓨팅 지향 설정에 추가되었다.
Linux 2.4가 PCMCIA 디바이스를 완벽히 운용하기 위해서는 외부 데몬과 컴포넌트가 필요하다.
표준 버스
기존 버스 드라이버(ISA, PCI, MCA)도 향상되었다. Micro Channel Architecture를 포함하여 더욱
많은 디바이스들이 지원될 것이다.
I2O
I2O 버스 (Intelligent input/output)는 Linux 2.4 배포판에 포함될 예정이다. I2O는 PCI 버스의
상위집합(superset)이다. OS 독립적인 드라이버가 많은 디바이스들을 위해 작성될 수 있도록 하는 것이 목적이다. I2O
SCSI 콘트롤러와 기타 I20 디바이스들이 지원된다.
SCSI
Linux 2.4는 많은 새로운 SCSI 디바이스들을 포함 할 것이다. SCSI 서브시스템은 광범위하게 다시 작성되었다. 새로운
SCSI 컨트롤러들이 이 배포판에 지원되며 2.5에서 SCSI는 더욱 향상 될 것이다.
LVM
LVM (Logical Volume Manager)은 HP-UX와 Tru64 UNIX (formerly Digital UNIX)
같은 엔터프라이즈 급 유닉스 표준의 시스템이다. 파일시스템과 볼륨을 관리한다. LVM 서브시스템은 메인스트림 커널로 이동되었다.
LVM은 파일시스템이 디스크를 확장시키고 좀 더 유연하게 관리될 수 있도록 한다. LVM 서브시스템은 md (multiple
devices) 드라이버나 사용자 공간 툴로 복사될 수 있다.
IDE
IDE 컨트롤러의 수가 늘어난것에 더하여, IDE CD changer 또한 지원된다. 그러나 리눅스는 changer에 다중 CD를
지원하는 기능은 지원하지 않는다. Linux 2.4는 IDE 컨트롤러의 감시 능력이 향상되었다.
Firewire
Firewire 지원이 커널에 추가되었다. Firewire는 고대역 디바이스에 쓰이는 유명한 옵션이다. Firewire는 Macintosh에서는
표준이며 외부 하드 드라이브로 빠르게 연결된다. 디지털 비디오 디바이스에 주로 사용된다.
Plug and play
2.4 커널은 industry standard architecture (ISA) plug and play (PnP) 디바이스를
자동 감지 할 수도 안할 수 도 있다. 그리고 IRQ와 DMA를 할당 할 수도 안 할 수도 있다. ISA PnP가 지원되는 지의
여부가 논의의 대상이 된다. 설정파일을 수동으로 또는 ISAPnP 툴 같은 유틸리티로 편집하는 것은 2.4에서 디바이스를 설정하는
데 있어서 최고의 옵션이다.
Linux 2.4는 완벽한 기능의 리소스 관리 서브시스템을 포함한 첫 번째 릴리스이다. 이전 버전들은 몇 가지를 지원했으나
"plug and play" 기능을 제공하지는 않았다. Linux 2.2에서 지원되지 않았던 PCI 카드 데이터베이스는 2.4에서
사용된다.
리눅스 커널의 미래
2.4 이후의 리눅스의 미래는 데스크탑 환경, 임베디드 디바이스, 엔터프라이즈 시스템을 위한 업그레이드에 초점을 맞출 것이다.
리눅스는 서버 OS로서 확고히 자리매김 했지만 설치와 설정의 복잡성, 하드웨어 커뮤니티의 지원 부족, 시장 원동력 등의 부족으로
인해서 데스크탑 OS로서 기반을 갖추지 못했다. 리눅스는 근본적으로 작고 유연하기 때문에 잠재력을 곧 발휘하게 될 것이다.
참고자료
필자소개  | |  | Thomas Wolfgang Burger는 Thomas Wolggang Burger Consulting 대표이다. 1978 년 이래 컨설턴트, 교사, 분석가 그리고
응용프로그램 개발자로 일하고있다. |
기사에 대한 평가
 |
| 이 문서 북마킹 하기
|
|