이 책은 리눅스 세계에 푹 빠지려고 하는 호기심 많고 창조적인 독자를 대상으로 하고있다. 리눅스는 상용 운영체제에 대항하는 일종의 반란(rebellion)이라고도 할 수 있다. 그리고 많은 리눅스 사용자는 가장 최신의 기술 경향을 좇아서 살아가는 것을 좋아하는 부류이다. 물론 대부분의 리눅스 초보자들도 별다른 문제없이 리눅스 시스템을 설정하고 운영할 수는 있다. 그러나 이 책의 목적은 리눅스 시스템속으로 더욱 깊이 들어가서 여러분에게 리눅스식 사고를 지니게 해주는 것이다.
--- 서문에서
이 책에서는 (전통적인 PC 세계와는 상반되는)강력하고 자유로운 운영체제인 리눅스 탐험을 통해 여러분이 기존에 사용하던 컴퓨터 사용 방식을 어떻게 하면 완전하게 바꿀 수 잇는지 보여 준다. 리눅스 시스템을 설정하고 운영하는 일이 간단하지는 않지만 그 만큼의 대가가 있으며 재미있기도 하다. 우리는 리눅스가 또 다시 컴퓨터 세계에 많은 흥미를 가져다주고 있다고 생각한다. 우리는 여러분이 리눅스 속에 뛰어 들어가 리눅스를 즐기면서, 도트클럭(dot clocks)은 어떻게 조정하는지, 커널 이미지를 rdev한다는 것은 무언진지를 아는 사람이 되길 바란다.
--- p.11
왜 리눅스를 사용하는가 여기에는 정말 많은 이유들이 있다.하지만 가장 중요한 하나의 이유를 대라면, 리눅스는 개인용 유닉스 컴퓨팅을 위한 최선의 선택이라는 것이다.여러분이 유닉스 소프트웨어 개발자라면 집에서 굳이 MS_DOS를 사용할 필요가 없다.리눅스는 pc에서 데이터베이스,x 애플리케이션 등 유닉스 소프트웨어를 만들고 테스트할 수 있는 완벽한 환경을 제공한다.리눅스를 사용하면 여러분만의 유닉스 시스템을 운영할 수 있으며 필요에 따라 알맞게 조정하여 사용할 수 있다. 다른 유닉스 머신을 접할 기회가 없다면, 리눅스를 설치하고 운영해 보는 것만으로도 유닉스를 배울 수 있는 가장 좋은 방법이라 말할 수 있다.
--- p.49
사람들은 왜 리눅스를 좋아하는가? 도대체 여러분은 왜 리눅스를 사용하려고 하는가? 좋은 질문이다. 이미 여러분이 사용하는 시스템이 제대로 동작하고 있지 않은가? 윈도우 98은 훌륭한 운영체제이다. 하지만 많은 제한 요소도 가지고 있다. 윈도우 98은 가정용 pc를 위해서는 잘 만들어져 있지만 다른 운영제체와의 호환, 다중 사용자를 위한 기능 등의 성능이나 유연성을 제공하지 못한다. 여기에서 사람들이 리눅스로 전환하려는 대표적인 몇가지 이유를 알아보겠다.
--- p.13
리눅스를 설치하거나 사용하면서 발생하는 가장 흔한 문제는 하드웨어와 궁합이 맞지 않을 때 발생한다. 리눅스가 지원하는 하드웨어라 할 지라도 설정을 잘못한 경우는 이상한 결과를 낼 수 있다. 장치가 인식되지 않거나 시스템이 다운되기도 한다.
문제의 근원이라고 생각되는 하드웨어로 범위를 좁혀가면서 확인하는 것이 중요하다. 먼저, 일반적인 하드웨어 문제와 해결책을 알아본다.
하드웨어와 관련되었다고 예상되는 문제를 만났다면 먼저, 문제의 폭을 좁혀 나가자. 문제를 일으키는 부분을 고립시킬 수 있을 때까지 가능한 변수를 하나씩, 순차적으로 제거해나간다.
그렇게 끔찍한 작업은 아니다. 기본적으로 시스템으로부터 필수적이지 않은 하드웨어를 제거한다. 그리고 나서 장치를 한번에 하나씩 추가하면 어느 장치가 문제를 일으키는지 알아낸다. 일단 플로피, 비디오 카드, 키보드를 제외한 모든 하드웨어를 제거한다. 마우스 컨트롤러와 같이 문제를 전혀 일으킬 것 같지 않은 장치도 여러분을 배신할 지도 모른다.
예를 들어, 부팅 중 이더넷 보드를 인식하는 부분에서 시스템이 멈춘다고 하자. 문제는 바로 이더넷 보드의 문제로써 충돌 문제라고 가정할 것이다. 문제를 빠르고 쉽게 알아내는 방법은 이더넷 카드를 뽑고 다시 해보는 것이다. 모든 것이 제대로 진행된다면 리눅스에서 그 이더넷 카드를 지원하지 않거나(호환 목록을 보려면 1장의 '하드웨어 요구 사항'부분을 참고)주소, IRQ충돌이 일어나기 때문이다.
'주소나 IRQ 충돌?', 도대체 이게 무슨 말인가? 모든 장치는 인터럽트 요청선(Interruot ReQuest line)즉 IRQ라는 것을 사용하여 시스템에서 자신이 처리할 일이 있음을 통보한다. IRQ란 시스템이 처리해주어야 할 일이 생겼을 때 꽉 잡아 당겨서 상대방에게 그 사실을 알리는 데 사용하는 끈이라고 생각하면 된다. 한 개 이상의 장치가 같은 끈을 잡아당긴다면 커널에서는 어떤 장치를 처리해야 할 지 분간할 수 없다. 일이 뒤죽박죽되고 만다.
따라서 설치된 모든 장치가 서로 다른 IRQ를 사용하도록 해야 한다. 일반적으로 IRQ는 장치의 점퍼를 통해 설정한다. 자세한 사항은 특정 장치의 문서를 참고하자. 어떤 장치는 IRQ를 전혀 필요로 하지 않는다. 그러나 가능한 IRQ를 사용하도록 하는 것이 좋다.(시게이트 ST01, ST02, SCSI 컨트롤러가 좋은 예이다.)
어떤 경우에는 설치 매체에서 제공되고 있는 커널이 특정 장치를 특정 IRQ에서 사용하도록 설정되어 있을 수 있다. 예를 들어, 일부 리눅스 배포판에서는 TMC-950 SCSI 컨트롤러, 미쯔미 CD-ROM 컨트롤러, 버스마우스 드라이버 등은 IRQ 5번을 사용하도록 미리 정해버리기도 한다. 이 장치 중 2개 이상을 사용하려면 장치 중 하나만 장착하고 리눅스를 설치한 후 다른 장치와 충돌되지 않는 다른 IRQ를 사용하도록 커널을 다시 컴파일하여 사용해야 한다(7장에서 '커널 재컴파일하는 방법'을 알아보자).
하드웨어 충돌이 일어날 수 있는 또 다른 영역으로는 직접 메모리 접근(DMA) 채널, I/O주소, 공유 메모리 주소도 사용한다. 다른 장치와 이 영역들이 충돌하면 시스템은 이상한 행동을 보이게 된다. 점퍼 세팅을 이용하여 DMA 채널, I/O 주소, 공유 메모리 주소를 변경해주어야 한다(불행하게도 일부 장치에서는 설정을 바꿀 수 없는 경우도 있다).
하드웨어 장치 문서를 보면 하드웨어가 사용하는 IRQ, DMA 채널, I/O 주소, 공유 메모리 주소에 대한 것이 나와 있고 어떻게 바꿀 수 있는지를 알려준다. 충돌 문제를 피해 갈 수 있는 방법 중 가장 간단한 방법은 문제를 찾아내기 전까지 장치들을 잠시 사용하지 않는 방법이다.
--- p.114~116
도데체 여러분은 왜 리눅스를 사용하려고 하는가? 좋은 질문이다. 이미 여러분이 사용하는 시스템이 제대로 동작하고 있지 않은가? 윈도우 98은 훌륭한 운영체제이다. 하지만 많은 제한 요소도 가지고 있다. 윈도우 98은 가정용 PC를 위해서는 잘 만들어져 있지만 다른 운영체제와의 호환, 다중 사용자를 위한 기능 등의 성눙이나 유연성을 제공하지 못한다. 여기에서 사람들이 리눅스로 전환하려는 대표적인 몇가지 이유를 알아보겠다.
리눅스는 자유롭게 재배포할 수 있는 유닉스 시스템의 클론(clone)이다. 리눅스를 가지고 있는 친구나 직장 동료에게 얻을 수도 있고 인터넷에서 얻을 수도 있고 인터넷에서 얻을 수도 있다. 또는 패키지 제작 업체에서 적정한 가격을 지불하고(다른 소프트웨어가 추가된 경우도 있다) CD-ROM으로 된 배포판을 구입할 수도 있고 이런 경우에는 리눅스 배포판을 제공하는 업체에서 기술적인 지원을 받을 수도 있다.
리눅스는 저가의 펜티엄 프로, 펜티엄 2, AMD, 사이릭스 칩뿐만 아니라 386/486 머신에서도 동작한다. 또한 스팍, 알파, 파워 PC, 68k 기반 메킨토시등의 워크스테이션에서도 동작한다. 그리고 비디오 카드, 사운드 카드, CD-ROM, 디스크 드라이브, 프린터, 스캐너, 기타 장치도 폭넓게 지원한다.
리눅스는 인터넷에 거대한 사용자 공동체를 가지고 있으며 그 속에서 리눅스 시스템에 대한 정보와 논의가 이루어지고 있다. 또한 점점 더 많은 상용 소프트웨어 업체가 리눅스용 애플리케이션을 만들고 있다. 코렐의 워드페펙(코렐은 2000년 10월 2일, 마이크로소프트와 전략적 제휴를 했다), 스타 디비전의 스타오피스(1999년 8월 31일, 썬 마이크로시스템즈가 인수하여 오픈 소스화하였다), 오라클, 인포믹스, IBM등 대형업체에서 수많은 데이터베이스 제품이 나와 있다.
리눅스를 사용하면서 여러 개의 창을 열어 놓고 수많은 프로세스를 띄어도 시스템이 빠르게 동작하는 것을 보고 즐거워하게 될 것이다. 리눅스는 시스템에 장착된 하드웨어를 최대한 활용할 수 있다. (윈도우 98을 포함한) 많은 상용 운영체제는 펜티엄 프로세스의 향상된 멀티테스킹 능력을 제대로 활용하지 못하고 있다. 하지만 리눅스는 이 아키텍처를 최적화하여 활용한다. 상당히 빠른 프로세스와 충분한 메모리를 갖춘 리눅스 머신의 경우, 천만 원을 호가하는 유닉스 워크스테이션과 비교하여 동등하거나 더 뛰어난 성능을 보인다.
리눅스는 수백 명에 이르는 프로그래머와 사용자에 의해 공개적으로 개발되었으며 꾸준히 개선되고 있다. 그렇지만 리눅스를 만든 리누스 토발즈(Linus Torvalds)의 비전과 핵심 개념은 유지되고 있다. 오늘날의 리눅스는 지난 이십여 년 동안 대학이나 업체, 개인이 만들어낸 고급 컴파일러, 편집기, 유틸리티, 다양한 스크립트 등을 포함하고 있다. 다른 새로운 운영체제와는 달리 리눅스는 이미 여러분이 자유롭게 사용할 수 있는 거대한 애플리케이션(멀티미디어, 게임에서 주요 과학용 애플리케이션까지)을 갖추고 있다.
--- 서문 중에서
대부분의 리눅스 초보자들도 별다른 문제없이 리눅스 시스템을 설정하고 운영할 수는 있다. 그러나 이책의 목적은 리눅스 시스템 속으로 더욱 깊이 들어가서 여러분에게 리눅스식 사고를 지니게 해주는 것이다. 또한 이리 저리, 많은 세부 사항을 다루기보다는 시스템을 실제로 동작할 수 있도록 전체적인 개념을 설명하여 여러분 스스로가 자신의 문제를 해결할 수 있게 도와주는 것이다.
--- 서문 중에서