|
1. 칩(CPU) 잔치 2.2는 커늘 설정 툴에 여러 비 인텔 칩에대한 옵션을 지원하는 최초의 버전이다. 더 중요한 것은( 2.0의 최근 버전에서처럼) 유명한 펜티엄의 F00F 버그같은 널리 알려진 프로세서의 버그에 대한 버그 수정이나 우회를 지원한다는 점이다. 우회할수 없는 다른 버그들 - 예를들면 AMD 의 K6칩의 sig11 버그 - 는 부팅시 보고된다. 그러나 2.2는 이미 Sparc64, Alpha 그리고 다른 64비트 플랫폼에 이식되었고 64비트 커늘에대한 인프라는 이미 자리를 잡았다.( 물론 리눅스/Merced가 발표되려면 몇가지 장애물이 남아있다. 그러나 준비된 64비트 커늘은 중요한 진척 이다.) 멀티프로세서 머신은 글로벌 스핀록같은 이슈가 제거되었으므로 2.0에서보다 훨씬 효율적으로 작동한다. 16개의 CPU를 지원하나(2.0에서처럼) 성능의 차이는 놀랄만하다. 인텔보드에서의 IO-APIC에대한 지원이 강화되어 SMP가 보다 잘 지원된다. 그리고 커늘 컴파일없이 멀티프로세서 지원을 추가할수 있게되었다. 다른 플랫폼에대해서는 2.2는 Sparc, Sparc64, 그리고 알파같은 상당수의 워크스테이션에대한 지원을 강화했다. 데스크탑 시스템의 경우는 2.2.는 모토롤라의 m68k와 PPC 프로세서에 이식되었고 맥킨토시를 포함하는 이 계열의 플랫폼에 실행될수 있다. (물론 하드웨어 지원은 조금씩 다르다. M68k 맥은 아직은 지원되지 않고 있다) 장치에 내장되는 ARM 같은 프로세서에도 옮겨지고 있다. 리눅스 커늘의 일단을 8086, 8088, 80186, 80286 머신에서 지원되게 하는 시도도 계속되고 있다. 메모리 소비에서 2.2에서는 2.0보다는 보다 많은 메모리를 요한다.(비록 상당수의 구성이 모듈화하거나 컴파일에서 빠질수 있으므로 관리자는 메모리가 부족시 보다 유연하게 대처할수 있다. 텍스트만을 사용시 메모리 최저량에대한 이견이 있으나 여러 경우에 4메가의 램으로도 가능하다. (8메가가 권장치이다) 좋은 소식이지만 2.2는 16메가의 램만으로 시스템의 성능을 향상할수 있는 많은 새로운 최적화 기법을 도입했다.(물론 많을수록 좋다)
2. 시스템 버스 및 동류 크게 중요하지는 않지만 2.2는 PS/2에서 채용된
마이크로채널을 완벽히 지원하므로서 기존의 X86 컴퓨터의 대부분을
지원한다. 버스시스템에대한 수많은 수정 외에도(많은 새로운
PCI 장치 이름을 포함한다) 상당한 개선이 이루어졌다. 특히 PCI
하부시스템에 주요한 변화가 있었다. 우선 PCI 디바이스 리포팅
인터페이스에 변화가 많았다. 따라서 새로운 정보 필드의
추가가 쉬워졌다. 추가로 PCI버스를 PCI BIOS로 스캔할지 직접억세스로
할지를 선택할수 있다. 이로서 보다많은 시스템에서 리눅스
2.2를 사용하는게 가능해졌다. 왜냐하면 몇몇 PCI BIOS는 표준과
맞지않아 부팅 문제를 야기했다. 아쉽게도 PNP ISA 장치에대한 지원은 거의 없다. 비록 이것이 중요한 부분이기는 하지만 현재의 제안에는 약간의 문제점이 있으며 2.3 버전에서는 해결되어질 것이다. 그러나 다행히도 사용자 수준의 유틸리티인 isapnp가 있으므로 약간의 노력과 리눅스 방식의 작업으로 해결할수 있다. 랩톱과 다른 워크스테이션은 개선된 전원관리로 도움을 받을수 있다. 비호환 BIOS 구현의 우회를 포함한다. 2.2에서는 멀티프로세서에서 사용되는 APM BIOS의 몇몇 기능을 사용할수 있다.
3. IDE, SCSI, USB IDE에 관한한 2.2에서는 별 변화가 없다. 가장 큰 변화는 IDE 서브시스템을 SCSI 처럼 모듈로 관리할수 있다는 점이다.(이는 PNP 기반의 IDE 콘트롤러를 사용 가능하게한다) 업데이트된 IDE 드라이버는 낡은 버전의 드라이버를 로드하지 않고도 MFM이나 RLL 디스크를 지원한다. 2.2는 모든 PCI 기반의 IDE카드를 자동으로 디텍트하고 설정해주며 CPU 부하를 감소시키기고 성능을 향상시키기 위해 DMA 버스마스터링을 작동시켜준다. 버그가 많고 다른 컨트롤러에대한 드라이버가 개발되었다. 좋은것도 보다 나아질수 있다는 것은 놀랍다. IDE 월드의 기타 분야에서도 패러랠포트 IDE 장치가 보다 일반화 되었다. 그리고 대부분 2.2에서 지원된다. 현재 지원돼지 않는 장치도 2.2의 개발이 계속되면 지원될 것이다. SCSI 서브시스템도 새로운 카드와 칩셋에대한 지원이 대폭 추가되었다. 너무 많아 여기에 열거하기도 힘들다. PCMCIA 어뎁터(PC카드 슬롯이라고들 부른다)도 2.2에서 지원된다. 하지만 외부 모듈에의해 지원된다. 커늘에서는 아니지만 PCMCIA지원은 모든 배포본에 포함될것이다. IRDA 지원도 커늘에 포함되었다. 하지만 많은 콘트롤러가 아직 지원되지 않고 있다. 이부분은 커늘 2.1의 종료 직전에야 추가되었으므로 다른 것과는 달리 아직 성숙되지 않았다. 몇몇 집단의 노력에도 불구하고 아직 USP 지원이 이루어지지 않고 있다. 몇몇 유명 전문가가 이부분을 노력하고 있으므로 2.2 에서 지원할 날도 멀지 않았다.(대안으로는 PCMCIA에서처럼 외부 소스로부터의 USB 지원이 제공될수 있을것이다)
4. 포트(시리얼, 패러렐) 이분야에선 크게 새로운 것은 없다. 리눅스는 이러한 기초적인 블록에대해서는 엄청난 지원을 해왔다. 패러랠 포트는 이기종간의 이식성을 고려하여 고쳐 쓰여졌다. 따라서 그동안 패러렐 포트라고 불렸던 부분이 이제는 PC 스타일 패러렐포트로 불리어진다. 명백한 변화는 한 개의 패러렐포트를 여러 드라이버에서 공유할수 있다는 것이다. (이름도 약간 바꾸었다. 그래서 이전에 lp1이라 불린 장치가 이제는 lp0로 불리운다. 배포본은 이러한 변화를 자동으로 수용할것이다) 시리얼쪽도 서서히 변하고 있지만 한가지 뚜렸한 변화가 있다. 전에는 모뎀과 관련한 시리얼장치는 두개의 장치명을 가졌다. 하나는 다이얼인, 하나는 다이얼아웃이었다.(각각 ttyS과 cua 이다) 리눅스 2.2부터는 둘은 한 개의 장치명(ttyS)으로 변했다. 그래서 cua장치를 사용하면은 커늘에서 경고 메시지를 낸다. 좋은 면에서는 2.2는 4개 이상의 시리얼포트를 지원하며, 인터럽트를 공유할수 있고, 비표준 포트와 여러 멀티포트에대한 지원을 추가했다. 나의 유일한 불편은 모듈이 로드시 modules.conf와 kmod를 통해 디바이스 파라메터를 전달하는 표준적인 방법이 없다는 것이다.(대신 이 파라메터는 setserial 명령으로 설정된다) 2.2는 최근의 UART칩을 지원하므로 새로운 모뎀으로 보다 고속의 전송속도를 지원한다.
5. CD-ROM, 플로피, 이동식 하드 수많은 CD-ROM 표준이 ATAPI CD-ROM 이라는 표준으로 용해되었다. 이러한 여유는 CD-ROM 드라이버를 보다 표준화되도록 개발자들이 고쳐쓰는걸 가능하게 했다. 각 드라이버간의 미세한 차이들이 보다 나은 지원을 위해 고쳐 졌다. 쓰고 지우기가 가능한 CD에대한 지원은 아쉽게 완벽하게 이루어지지는 않았다. SCSI 방식은 잘 된다. ( 그리고 대부분의 IDE 드라이브는 SCSI에뮬레이션 드라이버인 SCSI over ATA를 사용한다.) 다른 쓰고 지우기 CD는 조금 갈길이 멀다. 플로피는 여전히 잘 되고 있다. 대용량 플로피에 관해서는 많은 진전이 있었으나 모든 종류가 지원될지 여부는 두고 보아야한다. ATAPI를 사용하는 장치는 이미 상당 부분 지원되고 있다. IOMEGA 집 드라이브는 2.2에서 상당히 잘 지원된다. 이장비는 세가지 버전으로 나온다. 즉 SCSI, ATAPI(IDE), 그리고 패러렐이다. SCSI와 ATAPI에서는 ZIP 드라이브는 다른 디스크처럼 잘 지원된다. 패러렐버전은 실제로는 SCSI over 패러렐 프로토콜을 사용하면 2.2에서 지원한다.( DITTO 같은 다른 IOMEGA 솔루션도 ftape 드라이버를 사용하여 지원될수 있다.) DVD 드라이브는 어느정도까지는 이미 지원되고
있다. 왜냐하면 그들이 상당부분 ATAPI 드라이브로 나타나기 때문이다.
(SCSI DVD는 그렇지 않다. 그러나 그들은 SCSI CD-ROM 드라이버를
사용하면 작동할것이다) 그러나 항상 장미빛은 아니다. 리눅스는
아직은 DVD 파일 시스템을 지원하지 못하고 있고 DVD 영화나 기타
등등을 보여 줄 사용자 도구를 갖고 있지 못하기 때문이다. 하지만
표준이 보다 안정되면 필수 부분이 커늘에 추가되어 질것 같다.
6. 사운드에게 영광을 마침내 시작부터 끝까지 완전히 모듈화하도록 사운드코드가 새로 고쳐졌다. 배포본은 보다 쉽게 사운드를 즉각 가동하도록 하게할 수 있고, 사용자들이 사운드 장치를 설정하게 해준다.(특히 Plug and Play 장치의 경우) 상당수의 새로운 사운드 장치가 지원되며 앞으로 리눅스가 진전을 이룰 주요 부분이다. 사운드에서 크게 부족한 하나는 피시 스피커 지원의 결여이다. 이것만 되면 완벽한건데.. 그러나 윈95/98도 여기에서는 마찬가지니 구태여 거론할 필요까지야 없겠죠?
7. 비디오 장치 2.2는 상당수의 TV 및 라디오 튜너카드와 디지털 카메라에대한 놀라운 지원을 하고 있다. 이는 2.1에대한 약간의 진보이므로 아직 논란의 여지가 많으나 조만간 고쳐질것이다. 본인의 견해로는 이 분야가 리눅스가 가야할 중요한 길이다.
8. 백업 2.2의 백업 및 테이프 장치는 2.0이후 별로 변하지 않았다. 보다 많은 장치에대한 드라이버가 고쳐 쓰여졌다. 그리고 플로피 디스크 콘트롤러에서 작동하는 백업 장치에는 많은 진보가 이루어졌다. 쓰고 지우기가 가능한 CD-ROM이 데이터 백업에 대한 인기있는 솔루션이 되었다. 이들은 2.2에서 지원한다. 위의 CD-ROM에대한 부분을 보라
9. 조이스틱, 마우스, 입력장치 여러 새로운 조이스틱이 2.2에서 잘 지원된다.
2.2에서 마우스는 2.0과 별로 다르지 않다.( 2.0에서처럼 마우스
지원에대해서는 약간 일관성이 없다. 대부분의 경우 마우스 지원은
커늘 외부의 데몬에의해 이루어진다. 몇몇 마우스 드라이버는 마이크로소프트
표준 마우스를 흉내낸다. 이유는 명백하다. 그러나 어느 한쪽으로
결정되는게 필요할것 같다) 추가로 디지타이저같은 몇몇 입력장치가 2.2에서 지원된다. 만약 그 장치가 마우스를 흉내낸다면 2.0에서 이미 그랬지만 2.2에서 지원한다.
10. 비디오 아마도 2.2에서 가장 놀랍고 앞선 기능은 프레임버퍼 콘솔 드라이버(줄여서 fbcon)이다. 이전에 리눅스 커늘(인텔 머신)은 오직 비디오 장치를 텍스트모드에서만 이해하고 조정했다. 그래픽 서포트는 두개의 다른 시스템에 의해 이루어졌다. 콘솔기반의 그래픽인 svgalib와 윈도우기반의 그래픽인 X 서버이다. 엉성한 시스템을 설정정보를 반복해서 요청했고 각 시스템은 자주 사용되는 비디오 장치중 일부만을 지원 했다. 이 추가 기능이 조금은 낯설므로 이것이 기존의 이중성을 완전히 대체할지는 알수 없다. 불행히도 이 새로운 시스템이 우리가 잘 작동한다고 생각해 왔던 카드와 기술을 대체할 정도로 강력해 지려면 2.2의 출시 후 1년 정도는 지나야 할것이다. 나의 개인적인 견해로는 이것이 바른 방향이지만 얼마나 리누스와 개발자들이 이 기능을 받아드릴지는 알수 없다. 이 새로운 특성의 부수적 효과로서 실험적인 멀티헤딩이 몇몇 장치에대해 커늘에 도입되었다. 현재는 이 기능이 몇몇 텍스트 모드 출력에만 한정하나 이 새로운 기능이 2.2와 2.3에서 성숙할걸로 본다. 또한 버츄얼 터미널을 제거하는게 가능해졌다. 이는 약간의 메모리라도 더 필요한 사람을 위한것이다. 비록 탁상용 시스템의 경우에는 별 소용이 없겟지만 리눅스는 이제 아무런 비디오 장치를 갖지 않은 시스템에서도 잘 운영된다. 이전처럼 시리얼이나 네트워크 login을 지원하는것 외에 모든 커늘 메시지를 시리얼 장치로 보내는 것이 가능해졌다.
11. 네트워킹 : 이더넷, ISDN, 새로운 모뎀 나는 이부분은 별 경험이 없다. 나는 몇 년 동안 같은 네트워크 카드를 사요해왔다. 그러나 2.2에서 지원하는 이더넷과 ISDN 장치는 크게 늘었다. 또한 케이블 모뎀도 지원한다고 들었다. 나의 한가지 아쉬움은 윈모뎀에대한 지원의 결여이다. 소프트웨어로 80%를 처리하는 모뎀을 만드는 것은 약간 미련스런 생각이지만 이것도 그 사촌처럼 지원했으면 하는 나의 이상일 뿐이다.
12. 아마추어 라디오 2.0이래로 리눅스는 컴퓨터기반의 아마추어 라디오 운영자에대한 기본적인 지원책을 갖고 있는 몇 안되는 운영체제이다. 2.2는 NetROM 과 ROSE 아마추어 라디오 프로토콜을 추가했다. 기본인 AX.25는 기능이 보강됐다.
13. 파일시스템 전시장 2.2는 상호 연결을 위한 매우 다양한 새로운 파일시스템과 파티션 타이프를 가지고 있다. 덧붙여 기존에 지원하던 여러 파일시스템도 성능을 향상하기위해 새로운 캐싱 시스템을 도입하였다. (실제로 만약 2.2에서 포함하기를 원하면 그 드라이버를 업데이트하지 않는 옵션은 없다) 마이크로소프트 아류에대해서는 2.2는 이제 NTFS(윈도우 NT) 드라이브와 윈98의 FAT32 드라이브를 읽는다. 그리고 CD-ROM의 긴 파일 이름을 지원하는 마이크로 소프트의 줄리엣(주리혜?) 시스템을 알아차린다. 또한 마이크로소프트가 도입한 새로운 형태의 확장 파티션을 이해한다. 마이크로소프트와 Stacker의 압축 드라이브를 읽고 쓰는 드라이버가 개발되었으나 아직은 커늘에 들어가지 않았다. NTFS를 읽고 쓰는 문제가 계속해서 연구되고 있으나 아직은 시험 단계다. 맥과의 연결을 위해 맥 디스크를 읽고 쓰는 HFS 드라이버가 포함되었다. HFS+, MFS는 아직 지원하지 않는다. 매킨토시의 파티션 테이블을 커늘에서 읽을수 있으므로 맥 SCSI 디스크의 마운트가 가능해졌다. OS/2 사용자에게는 섭섭하지만 아직 HPFS 드라이브에는 쓰기가 안된다. 커늘 밖에서 HPFS를 읽고 쓰는 드라이브에대한 노력이 진행되고 있으나 아직은 반영되지 않았다. Amiga 사용자라면 FFS 드라이버가 조금 업그레이드 되었다는 반가운 소식이 있다. 이는 새로운 세대인 PPC 아미가가 이 포맷을 계속해 지원하므로 좋은 소식이다. 다른 UNIX와의 연결을 위해 2.2는 약진을 거듭하고 있다. 솔라리스와 free BSD 를 포함하는 BSD 계열을 위해 UFS 파일시스템은 계속하여 포함한다. 2.2는 FreeBSD, SunOS, Solaris에의해 사용되는 파티션 테이블 포맷을 읽을수 있다. SysV 스타일 UNIX를 위해서 개선된 SysVFS를 갖고 있다. 2.2는 Acorn의 RiscOS를 읽는다. Minix 파일시스템이 개선되어 그렇게 다양한 minix 포맷을 지원하는게 놀랍다. Second extended 파일시스템을 위해 extended 드라이브 지원은 빠졌다. 램디스크 지원을 강화히기위해 romfs 가 만들어졌다. 비록 파일시스템은 아니지만 2.2는 파일시스템을 여러디스크에 투명하게 펼치는 기능을 강화했다. 현재 이기능은 RAID 0, 1, 4, 5 모드에서 사용된다.
14. 네트워킹 II : 내부 프로토콜 분야에서 내가 잘 이해하지 못하는 여러 변화가 있었다. Ipv6가 출현했고 IPX의 보완인 SPX도 있다. 오래된 Appletalk 네트워크에 사용되는 프로토콜인 DDP도 업그레이드 되었다. 구닥다리들에서는 별로 변화가 없다. PPP, SLIP, CSLIP, PLIP 는 아직도 건재하다. 내 생각에 이들은 별로 개선의 여지가 없다. 이외에도 더 있다. 2.2는 훌륭한 새로운 네트워킹 핵을 갖고 있고 새로운 턴넬링코드와 완전히 새로운 파이어월과 라우팅 시스템인 ipchains, 밴드와이드쓰 제한 기능등등 많다. 또한 파일과 프린터 공유 프로토콜도 개선되었고 윈도우 파일 시스템을 공유하는 SMB 프로토콜도 개선되었다. NFS기능도 신뢰할수 있을 정도로 서버, 클라이언트 모두 개선되 었다. CMU의 전문가들이 새로운 분산형 네트워크 파일시스템인 Coda 개발에 열중하고 있다. 이 파일 시스템은 매우 갈망하고 있는 여러 기능 예를들면 랩톱의 별도 작동, 진보된 캐시기능, 보안문제등을 포함한다. 신무기로서 2.2는 네트워크를 통해 전체 디스크 이미지를 공유하는걸(원격으로 마운트하는 것) 허용한다.
15. 영어만 말하지는 않는다. 2.0은 인터네셔널 키보드 등등을 지원하는 매우 다국적 OS이다. 2.2는 덧붙여 Microsoft/UNICODE 코드 페이지를 로드하는 능력을 갖고 있어서 이러한 파일네임을 리눅스 시스템으로 번역한다. (UTF8이다) 현재 이러한 번역을 하는 유일한 파일 시스템은 마이크로소프트이 VFAT와 Joilet(주리혜?) ISO 9660 확장이다.
16. UNIX98 2.2는 여러면에서 보다 표준적인 UNIX이다. 가장 눈에뛰는 부분이 UNIX98 스타일의 새로운 파일 시스템을 사용하는(devpts) Pty 디바이스와 그 기능을 제공하는 클론 디바이스이다.
17. 마지막으로 조금 더 어디에도 속하지 않지만 눈여겨 볼만한게 더
있다. 끝으로 과거엔 리눅스는 모듈이라고 불리는 드라이버를 올리고 내리는데 반 사용자/ 반 커늘 방식(kerneld 라고 불림)을 사용했다. 이 방식은 좋으나 비 효율적이었다. 2.2는 kerneld를 제거하고 kmod라고 불리는 보다 적은 커늘 only 해결책으로 대체했다. |