9.4.리눅스의 특징
9.4.1.명령어 방식과 그래픽 방식
리눅스는 명령어 방식에 기반을 두고 있습니다.
리눅스의 가장 큰 특징은 텍스트 방식과 명령어 방식 기반이라는 점입니다. 반면 윈도는 그래픽 방식 기반입니다. 때문에 리눅스를 설치한 컴퓨터를 부팅하면 윈도처럼 그래픽 화면이 뜨고 마우스와 아이콘이 나타나는 것이 아니라 글자만 나타나는 것이 특징입니다. 또한 모든 명령은 키보드로 입력받은 문자를 통해 내립니다. 한 마디로 도스(DOS)와 같은 방식이라고 생각하면 됩니다. 도스를 잘 모르는 분이라면 윈도에 있는 [한글도스창] 프로그램을 사용할 때를 떠올리면 됩니다.
물론 요즘 나오는 윈도는 X윈도를 비롯하여 그래픽 인터페이스를 설치하기 때문에 리눅스를 설치한 다음에 부팅하면 MS윈도를 사용하는 것처럼 그래픽 방식으로 나타납니다. 윈도처럼 마우스와 아이콘을 이용해 프로그램을 실행시키고 인터넷을 사용할 수 있끼 때문에 일단 리눅스를 설치하고 난 뒤에는 윈도를 사용하는 것처럼 편하게 사용할 수 있습니다.
그렇지만 기본적으로 명령어 방식에 기반을 두고 있다는 사실을 잊지 말아야 합니다. 그 이유는 커널이라고 부르는 운영체제의 핵심 부분이 명령어 방식을 기반으로 제작된 것이기 때문입니다. 때문에 리눅스와 윈도는 겉으로 보기에는 둘 다 마우스와 아이콘으로 사용하는 GUI 방식 같지만 사실은 리눅스의 GUI 화면과 윈도의 GUI 화면은 많은 차이가 있습니다. 리눅스의 커널은 명령어 방식을 기반으로 설계되었고, 윈도는 그래픽 방식을 기반으로 설계되었기 때문입니다.
지금도 리눅스를 설치하거나 서버를 운영할 때, 기타 중요한 작업을 할 때는 명령어 방식으로 작업을 합니다. 반명 MS 윈도는 GUI 방식으로 사용하다가

**사진: 요즘은 리눅스도 그래픽 방식으로 사용하지만 기본은 명령어 방식입니다.
윈도 역시 명령어 방식 위에서 돌아가는 운영체제입니다.
물론 윈도95/98/ME/XP 등의 MS사의 윈도 시리즈 역시 사실 명령어 방식을 기반으로 동작합니다. 이는 윈도95/98/ME 등을 설치할 때 도스 상태에서 설치하는 것으로 알 수 있습니다.
이미 윈도가 설치된 PC를 사용하는 사용자는 잘 느끼지 못하는 사실이지만 만약 여러분이 하드디스크를 새로 구입한 다음에 윈도98을 설치하려고 한다면 리눅스를 설치할 때와 똑 같은 과정으로 설치해야 한다는 사실을 알게 됩니다. 새로 구입한 하드디스크에 윈도98을 설치하는 과정은 다음과 같습니다.
[윈도 설치 과정]
1. 도스 부팅 디스켓으로 부팅한다.
2. CD롬 드라이브는 도스용 드라이버로 구동시킨다.
3. fdisk 프로그램으로 하드디스크의 파티션을 나눈다.
4. format 프로그램으로 하드디스크를 포맷한다.
5. CD롬드라이브에 윈도98 CD를 넣고 도스 명령어로 setup.exe를 실행시킨다.
6. 이후에는 마우스를 이용하여 윈도98을 설치한다.
이 과정은 결국 새로 산 하드디스크에 리눅스를 설치하는 과정과 동일합니다. 결국 일반적으로 리눅스는 명령어 방식이고 윈도는 그래픽 방식이라고 알고 있지만 이는 틀린 표현인 셈입니다. 둘 다 명령어 방식으로 부팅되는 운영체제입니다. 그리고 쉘이라고 부르는 사용자 인터페이스로 윈도를 설치하면 우리가 사용하는 윈도가 되는 것인데, 리눅스 역시 X윈도를 설치하면 윈도98과 같은 형태로 사용할 수 있습니다.
우리가 윈도98을 그래픽 방식으로 착각하는 이유는 그래픽 방식의 인터페이스가 깔린 상태에서만 사용하고 명령어 방식으로 사용하지 않기 때문입니다. 리눅스는 대개의 경우 명령어 상태로 부팅을 많이 하며 또한 명령어 방식을 사용하는 비율이 높습니다. 반면 윈도98은 부팅할 때 그래픽 상태로 부팅되며 명령어 방식을 사용하는 일이 거의 없습니다. 그렇지만 윈도98을 도스 모드로 부팅하거나 도스창을 이용해 작업을 많이 해본 사람이라면 윈도98 역시 리눅스처럼 명령어 방식 기반의 운영체제라는 사실을 알게 됩니다.

**사진: 이제는 리눅스도 그래픽 방식으로 설치합니다.
리눅스처럼 윈도98의 설치 과정이 어렵기는 마찬가지입니다.
결국 우리가 어렵게 생각하는 리눅스나 윈도98은 기본적으로 같은 방식으로 된 운영체제입니다. 우리가 리눅스를 어렵게 생각하는 이유는 실제로는 윈도98로 컴퓨터를 배웠기 때문입니다. 만약 처음부터 리눅스로 컴퓨터를 배운 사람이 윈도98을 본다면 윈도98이 더 어렵다고 말할지 모릅니다. 명확하게 동작하는 리눅스를 사용하던 사람이 엄청난 양의 사용 설명서와 레지스트리, dll 관련 문서, 각종 오류의 원인과 해결 방법을 배워야 제대로 사용할 수 있는 윈도98을 배우려고 하면 기가 질릴 지도 모릅니다.
대부분의 사람은 하드디스크의 파티션을 설정하고 윈도98을 설치하는 것조차 할 수 없습니다. 단지 설치된 윈도98에서 인터넷을 사용하고 문서 작성법을 배울 뿐입니다. 마찬가지로 X윈도가 설치된 상태의 컴퓨터를 이용해 인터넷 사용법을 배운다면 리눅스도 매우 쉽다고 생각할 겁니다.

**사진: 리눅스도 윈도 형태와 거의 비슷한 환경에서 작업할 수 있습니다.
결국 리눅스가 어렵다고 느끼는 가장 중요한 이유 중의 하나는 리눅스 설치부터 쉽지 않기 때문인데 사실 윈도98도 설치는 어렵습니다. 앞서 설명한 것처럼 새로운 하드디스크를 구입했을 때 리눅스를 설치하는 과정과 윈도98을 설치하는 과정은 동일합니다. 설치 과정에서 초보자가 가장 어렵게 느끼는 부분은 파티션과 포맷에 대한 이해와 사용법인데 두 운영체제 모두 이 부분에 대한 지식을 필요로 합니다.
최근에는 리눅스 설치 프로그램이 매우 발전하여 리눅스 설치 과정이 MS의 윈도 설치 과정과 거의 같아졌습니다. 때문에 이제는 리눅스 설치가 윈도 설치보다 어렵다고 말을 하기 곤란합니다. 리눅스가 그래픽 방식의 인터페이스를 지원하면서부터 리눅스 설치나 사용법이 윈도와 거의 유사하게 바뀌었기 때문입니다.

**사진: 한글화된 설치 프로그램 덕분에 초보자도 쉽게 리눅스를 설치할 수 있습니다.
9.4.2.다중 작업, 다중사용자 지원
리눅스는 다중 작업과 다중 사용자를 지원합니다.
리눅스는 사용법이 도스와 비슷합니다. 그러나 몇 가지 차이점이 있습니다. 가장 큰 차이점은 다중 작업과 다중 사용자를 지원한다는 점입니다. 즉 한 대의 컴퓨터를 여러 명이 동시에 사용할 수 있습니다. 도스나 윈도를 사용할 때도 한 대의 컴퓨터를 여러 사람이 사용하지 않느냐고요? 물론 도스나 윈도를 사용할 때도 한 대의 컴퓨터를 여러 명이 사용합니다. 그러나 이때는 같은 시간에 한 명씩만 사용이 가능합니다. 그러니까 돌아가면서 자리에 앉아서 사용하는 것이죠. 또 누구라도 하드디스크에 있는 모든 내용을 볼 수 있습니다. 그러니까 컴퓨터 앞에서 사용하는 사람만 다를 뿐 같은 하드디스크와 같은 디렉토리를 사용합니다.

**사진: 리눅스는 다중 작업, 다중 사용자를 지원합니다.
리눅스는 각기 다른 사용자에게 다른 공간과 권한을 부여할 수 있습니다.
그러나 리눅스는 이들 사용자에게 각기 다른 권한을 부여하고 각기 다른 하드디스크의 공간을 배정합니다. 따라서 갑이라는 사람이 사용한 하드디스크의 공간을 을이라는 사람이 사용할 수는 없습니다. 을은 자신에게 부여된 공간과 자신에게 부여된 권한 안에서 작업을 해야 합니다.
예를 들어서 컴퓨터 본체 한 대에 리눅스를 설치한 다음에 특수한 케이블을 이용해 열 개의 모니터와 열 개의 키보드를 연결한다면 동시에 열 명이 본체 한 대를 사용할 수 있습니다. 이때 열 명이 모두 같은 하드디스크의 공간을 사용하는 것이 아니고 자신들에게 배정된 공간에서만 작업을 합니다.
이를 위해서 리눅스는 로그인이라는 과정을 통해 각각의 사용자를 구분하고 사용자의 레벨에 맞는 권한을 부여합니다.
9.4.3.로그인과 로그아웃, ID와 비밀번호
리눅스는 사용자의 로그인 과정이 있습니다.
로그인이란 어떤 곳에 들어가거나 접속하는 과정을 말합니다. 이때 자신이 누구인지 알려주기 위해 자신만이 가진 ID와 비밀번호를 입력합니다.
우선 혼자서 한 대의 컴퓨터를 돌아가면서 사용한다고 가정합시다. 컴퓨터를 켜면 리눅스가 부팅됩니다. 리눅스가 부팅되면 로그인(Log In)이라는 과정이 제일 먼저 사용자를 맞이합니다. 로그인은 어떤 사용자가 사용할 것인지를 물어보는 과정입니다. 따라서 로그인 과정은 사용자의 ID와 비밀번호를 물어보는 과정으로 이루어집니다.
ID는 PC통신에서 사용하는 ID와 같은 개념입니다. 개개인을 구별하기 위한 일종의 별명 같은 것입니다. PC통신에서 이름을 사용하지 않고 ID를 사용하는 이유는 동명이인이 있기 때문입니다. 즉 하이텔이라는 PC통신에 접속할 때 누구인지를 물어보는데 이름을 이용할 경우에는 김중태라는 동명이인이 많아서 구별하기 어렵습니다. 그래서 하이텔에서는 유일한 낱말로 ID를 만들어 이를 접속할 때 사용합니다. 제가 hangul이라는 낱말로 ID를 만들어 사용하고자 하는데 만약 누군가 이미 이 낱말을 ID로 사용중이라면 사용이 불가능합니다. 다른 낱말로 ID를 만들어 신청해야겠죠.

**사진: 리눅스 부팅 후의 화면
리눅스를 사용하려면 계정을 받아야 합니다.
리눅스 역시 ID를 만들어 사용합니다. PC통신에서 만들어 사용하는 것처럼 적절한 ID를 만들어 사용하면 됩니다. ID를 만들어 개인이 사용할 수 있는 영역과 일정 수준의 권한을 부여받을 경우 계정을 부여받았다고 말합니다. 따라서 계정이라는 말은 곧 ID를 부여받았다는 말과 같습니다. 그리고 ID의 주인이 리눅스를 사용할 때는 로그인 과정을 통해 ID를 물어보고 ID 주인만이 알고 있는 비밀번호를 물어보는 것입니다.
비밀번호는 자신만이 알 수 있는 독특한 낱말로 만드는 것이 좋습니다. 만약 다른 사람이 자신의 ID와 비밀번호를 안다면 자신의 ID로 로그인 한 다음에 컴퓨터에 있는 모든 기밀 내용을 빼갈 수 있기 때문입니다.
리눅스 사용을 마친 다음에는 로그아웃(Log Out)이라는 과정을 거칩니다. 로그 아웃은 ID 사용자가 리눅스 이용을 마치고 끝내겠다는 신호를 리눅스에게 보내주는 과정입니다.
9.4.4.루트와 슈퍼유저, 그룹
슈퍼유저는 리눅스에서 가장 강한 권한을 가진 사용자를 말합니다.
리눅스는 하나의 컴퓨터를 동시에 수 십 명이 사용할 수 있습니다. 특히 네트웍이나 PC통신으로 연결할 경우 하나의 컴퓨터를 수 백 명이 사용할 수 있도록 지원해주는 운영체제입니다. 이 점은 혼자만 사용할 수 있는 윈도95/98/ME와 다른 점입니다. 그리고 이들은 각기 정해진 권한에 따라서 작업을 합니다. 물론 이들이 리눅스를 설치한 컴퓨터를 사용하기 위해서는 로그인이라는 과정을 거칩니다.
이처럼 여러 사람이 리눅스를 사용하는데 이들을 관리하기 위해서는 막강한 권한을 가진 사람이 필요합니다. 그래야만 다른 사용자의 사용권한을 조정해주거나 리눅스 시스템을 보수, 유지, 관리할 수 있습니다. 그래서 리눅스 시스템의 모든 것을 관리할 수 있는 막강한 권한을 가진 사용자가 꼭 필요합니다.
슈퍼유저 ID로 root라는 ID가 예약되어 있습니다.
리눅스에서 가장 막강한 권한을 가진 사용자(User)를 슈퍼유저라고 부릅니다. 그리고 슈퍼유저는 ID 이름이 예약되어 있습니다. 슈퍼유저는 root라는 ID를 사용합니다. 그러니까 root라는 ID를 사용하는 사람은 리눅스 시스템에서 어떤 일이라도 할 수 있습니다. 컴퓨터 안의 모든 파일을 지우거나 옮길 수 있습니다. 심지어는 다른 사용자의 기록을 없애거나 다른 사용자가 만든 파일도 모두 볼 수 있습니다.
따라서 root라는 ID가 도용되거나 비밀번호가 유출될 경우에는 그 시스템의 모든 정보가 다른 사람 손에 넘어갈 수 있습니다. 만약 인터넷의 웹서버로 사용하는 리눅스 시스템에서 root의 암호가 해커나 기타 사용자에게 알려진다면 네트웍의 모든 정보와 파일은 해커의 손으로 마음대로 주무를 수 있게 됩니다. 따라서 root는 비밀번호 관리에 특별하게 조심해야 합니다.
그룹은 일반 사용자들을 묶어놓은 집합체입니다. 예를 들어서 한 회사 내에서 여러 직원들이 시스템을 사용한다고 합시다. 이때 김중태라는 개인이 사용할 수 있는 하드디스크 영역이 따로 주어집니다. 이때 한 사람의 사용자를 User라고 부릅니다. 그리고 김중태라는 사람은 영업부에서 일하는데 영업부 직원이 사용할 수 있는 공통된 하드디스크 영역과 영업부 직원만이 사용할 수 있는 프로그램이 있습니다. 대신 다른 부서 직원은 영업부 직원이 사용하는 하드디스크의 공간과 프로그램을 사용할 수 없겠죠.
슈퍼유저는 시스템에 대한 모든 권한을 가진 사용자입니다.
슈퍼유저는 영업부에 속한 사람들만 하드디스크의 어떤 파일을 다룰 수 있게 권한을 부여할 수 있습니다. 이때 영업부 사람은 영업부라는 그룹으로 묶어서 관리하게 됩니다. 그러니까 리눅스는 개인이 사용할 수 있는 영역, 그룹으로 묶여진 사람들이 공통적으로 사용할 수 있는 영역, root가 사용할 수 있는 영역으로 구분됩니다. 영역이라는 말로 잘 이해가 안된다면 특정한 한 사용자만 사용할 수 있도록 설정된 디렉토리나 폴더, 여러 명의 사용자가 공통적으로 사용할 수 있도록 설정된 디렉토리나 폴더의 개념으로 보시면 됩니다. 물론 슈퍼유저인 root는 시스템 안의 모든 디렉토리와 파일을 사용할 수 있습니다.
개인과 그룹은 지정된 영역만 사용할 수 있습니다.
한 개인 사용자는 다른 사용자가 사용할 수 있도록 설정된 디렉토리나 폴더를 볼 수도 없고 디렉토리 안으로 들어갈 수도 없습니다. cd 명령어를 이용해 다른 사용자의 디렉토리 안으로 이동하려고 하면 에러가 발생합니다. 물론 다른 사용자 역시 내가 사용하는 디렉토리 안으로 들어올 수 없습니다. 만약 내가 다른 사용자가 사용하는 디렉토리 안으로 이동하고자 한다면 로그인이라는 과정을 거쳐서 사용자의 별명(ID)과 비밀번호를 물을 때 그 사용자의 별명과 암호를 넣어주어야 합니다.
그룹으로 묶인 디렉토리는 그룹의 구성원으로 지정된 사용자만이 들어갈 수 있고, 그 안에 있는 파일을 자유롭게 다룰 수 있습니다. 그러므로 리눅스 시스템으로 운영하는 인터넷 웹서버나 PC에 접속했을 경우 한 개인 사용자가 사용할 수 있는 디렉토리는 자신에 할당된 개인 영역 디렉토리와 자신이 속한 그룹이 사용할 수 있는 디렉토리에 불과합니다.
유일하게 모든 하드디스크에 있는 모든 디렉토리를 자유롭게 출입할 수 있는 사용자는 root라는 ID를 가진 슈퍼유저 뿐입니다.

**사진: 리눅스 동아리인 적수네 동네 홈페이지(http://linux.sarang.net)
9.4.5.홈 디렉토리와 루트 디렉토리
로그인을 거쳐 접속했을 때 접속되는 디렉토리가 홈디렉토리입니다.
리눅스나 유닉스 등의 운영체제에서는 일반 사용자가 사용할 수 있는 하드디스크 영역과 사용 가능한 프로그램이 제한되어 있습니다. 슈퍼유저만이 모든 파일을 다 사용할 수 있습니다.
일반 사용자가 리눅스의 로그인 과정을 거쳐서 접속하면 일정한 디렉토리에서만 작업하도록 권한을 설정해줍니다. 이때 일반 사용자가 로그인 과정을 거쳐서 들어왔을 때 화면에 표시되는 디렉토리가 홈(home) 디렉토리입니다. 즉 일반 사용자는 홈 디렉토리 안에서만 사용이 가능합니다. 홈 디렉토리 안에서는 서브 디렉토리를 만들어 자유롭게 사용할 수 있습니다. 그러나 홈 디렉토리를 벗어나 다른 디렉토리에는 접근할 수 없습니다.
예를 들어서 일반 사용자가 로그인 했을 때 '/user/hangul'이라는 홈 디렉토리가 표시되었다고 합시다. 이때 사용자는 /user 디렉토리나 루트 디렉토리인 / 디렉토리 또는 루트 디렉토리 밑에 있는 다른 디렉토리는 접근이 불가능합니다. 오로지 '/user/hangul'이라는 홈 디렉토리 안에서 서브 디렉토리를 만들어 사용하는 수밖에 없습니다.
대신 다른 사용자 역시 자신이 사용하는 '/user/hangul'이라는 디렉토리에 접근할 수 없습니다. 그래서 해커들은 다른 사용자의 디렉토리를 사용할 수 있거나 root 의 사용권한을 획득하기 위하여 해킹을 하는 것입니다.
리눅스의 디렉토리 구분 기호는 / 기호입니다.
한 가지 주의할 점은 리눅스에서는 디렉토리 구분자로 \를 사용하지 않고 / 기호를 사용합니다. 도스에서는 디렉토리 구분자로 /(₩) 기호를 사용하지만 리눅스에서는 \ 기호를 사용합니다. \ 기호는 각 국의 화폐 단위로 표시하도록 되어 있어 한글윈도에서는 원화 표시 기호로 대신합니다. 백스페이스 키 왼 쪽에 있는 원화 표시 기호가 영문윈도에서는 \ 기호로 표시됩니다.
루트 디렉토리는 최상위 디렉토리로 하드디스크를 뜻합니다.
루트(root) 디렉토리는 시스템의 뿌리가가 되는 디렉토리입니다. 가장 기본이 되는 최상위 디렉토리로 하드디스크의 첫 번째 디렉토리를 뜻합니다. 따라서 C: 드라이브로 부팅했을 경우 C: 드라이브 자체가 루트 디렉토리가 됩니다. 루트 디렉토리는 첫 번째로 나오는 / 기호를 말한다고 보면 됩니다. '/user/hangul'이라는 경로에서 user 앞에 나오는 / 기호 부분이 루트 디렉토리입니다. 따라서 루트 디렉토리로 이동하려면 'cd /'라고 입력하면 됩니다.
9.4.6.윈도와 다른 파일 관리 시스템의 특징
리눅스는 파일 관리 시스템이 윈도와 다릅니다.
바로 앞에서 잠시 보신 것처럼 리눅스는 파일 관리 시스템에 약간의 차이가 있습니다. 가장 큰 차이점 세 가지만 말씀드리면 아래와 같습니다.
1.디렉토리 구분자로 / 기호를 사용합니다.
도스에서는 디렉토리 구분 기호로 \ 기호를 사용했습니다. 그러나 리눅스에서는 / 기호를 사용합니다. 인터넷을 사용하다 보면 인터넷 주소에 / 기호가 딸려 있는 것을 볼 수 있습니다. 유닉스나 리눅스가 디렉토리 구분자로 사용하는 기호가 / 기호이기 때문입니다.
2.파일 이름의 대소문자를 구별합니다.
도스에서는 파일 이름을 대문자로 쓰건, 소문자로 쓰건 상관하지 않습니다. 그러나 리눅스에서는 파일 이름의 대소문자를 구별합니다. 따라서 test.txt와 Test.txt, TEST.txt, Test.TXT, test.Txt 등은 모두 다른 파일입니다. 즉 파일 이름 중 한 글자만 달라도 다른 파일로 인식합니다.
3.파일 이름이 길어지고 확장자의 역할이 축소됩니다.
도스에서는 파일 이름이 8자 이내였고, 확장자는 3자 이내였습니다. 그러나 리눅스에서는 파일 이름이 255자까지 가능합니다. 따라서 확장자라는 의미가 크게 퇴색되었습니다. 그리고 확장자와 파일 이름 사이에 한 번만 사용하던 . 기호를 여러 차례 사용할 수 있습니다. 도스에서는 test.txt라는 이름만 가능했지만 리눅스에서는 test.txt.tar.gz라는 식의 이름이 가능한 것입니다. 당연히 파일 이름으로 쓸 수 있는 문자도 좀더 늘어났습니다.
9.4.7.마운트 과정
리눅스는 다양한 운영체제를 지원합니다.
리눅스에서는 다른 운영체제에서 사용하는 하드디스크를 붙여서 사용할 수 있습니다. 또한 여러 종류의 하드디스크를 사용할 수 있습니다. 도스나 윈도에서는 이런 하드디스크를 기본적으로 감지하여 드라이브 이름을 붙여줍니다. 그러나 리눅스에서는 사용자가 원하는 디렉토리 밑에 붙여서 사용합니다.
드라이브 장치를 원하는 디렉토리에 붙이는 작업을 마운트라고 말합니다.
이때 사용자가 하드디스크나 CD롬드라이브와 같은 하드웨어 장치를 원하는 디렉토리에 붙여서 사용하는 작업을 마운트(mount)라고 합니다. 붙였던 장치를 떼어내는 일은 언마운트(unmount)라고 합니다.
윈도를 사용한 경험으로 볼 때는 하드디스크나 CD롬드라이브가 가장 큰 저장 단위고 하드디스크 안에 디렉토리를 만들고 디렉토리 안에 다른 디렉토리나 파일을 만드는 것으로만 압니다. 그렇지만 리눅스에서는 드라이브도 파일의 하나로 간주하기 때문에 특정 디렉토리에 붙여서 사용하는 마운트라는 기능을 사용할 수 있습니다.

**사진: 리눅스의 시스템 설정 화면. 윈도 제어판 사용법과 같습니다.
9.4.8.리눅스는 커널과 쉘로 구성
리눅스나 운영체제의 기본은 커널 부분입니다.
리눅스는 커널(kernel) 부분이 가장 중점적인 부분입니다. 커널은 각종 장치의 인터페이스와 자원 할당 등을 담당합니다. 사실상 운영체제의 핵심이라고 할 수 있는 부분입니다. 그러나 커널만으로는 컴퓨터를 제대로 운영할 수 없습니다. 도스의 경우 부팅하면서 io.sys , msdos.sys 파일을 읽어들이는데 이것이 커널과 같은 역할을 합니다. 그러나 이들 커널 부분은 컴퓨터의 핵심적인 기능과 하드웨어 사이의 통신과 자원 관리를 주로 담당하기 때문에 커널만 가지고 컴퓨터를 제어하려면 많이 힘듭니다.
쉘은 사용자들이 컴퓨터를 쉽게 사용할 수 있도록 도와주는 프로그램입니다.
그래서 사용자들이 컴퓨터 하드웨어를 쉽게 제어할 수 있도록 쉘(shell)이라는 프로그램을 만듭니다. 도스의 경우 실제로 사용자들이 내리는 명령은 command.com이라는 파일이 처리합니다. command.com 파일과 같은 명령어 처리기를 다른 운영체제에서는 쉘이라고 부릅니다.
리눅스의 경우 운영체제의 핵심인 커널을 중심으로 버전을 표시하지만 리눅스를 사용하려면 쉘 프로그램도 필요합니다. 그래서 리눅스를 설계하거나 새로운 리눅스를 개발할 때는 커널 부분과 쉘 부분을 같이 개발하거나 수정해야 합니다.
9.4.9.리눅스의 기타 특징
리눅스는 다양한 장점은 가진 운영체제입니다.
지금까지 설명한 것 외에도 리눅스는 다양한 특징과 장단점을 가집니다. 몇 가지 주요한 특징이나 장점을 추가로 설명하면 다음과 같습니다.
[리눅스의 기타 특징들]
1. 리눅스는 유닉스와 호환성을 가집니다. 따라서 리눅스를 사용할 줄 안다면 대형 컴퓨터의 운영체제인 유닉스도 사용할 수 있습니다.
2. 리눅스는 공개 소프트웨어이므로 무료 또는 매우 저렴한 가격으로 구입해 사용할 수 있습니다.
3. 리눅스는 윈도를 비롯한 기존의 PC용 운영체제보다 안정적이고 강력합니다.
4. 리눅스는 자원 낭비가 적습니다. 윈도처럼 고성능 PC가 있어야만 실행되는 운영체제가 아니라 2MByte의 램으로도 사용이 가능한 매우 경제적이고 효율적인 운영체제입니다. 그래서 저사양의 컴퓨터에서도 리눅스를 사용할 수 있으며, PDA를 비롯한 다양한 임베디드 기계의 운영체제로 사용합니다.
5. 리눅스는 네트웍 기능이 강력하며 인터넷의 모든 기능을 지원합니다.

**사진: 리눅스는 네트웍 기능이 강력합니다.
6. 리눅스도 X윈도를 이용하면 MS의 윈도처럼 윈도 환경에서 사용할 수 있습니다.

**사진: 리눅스는 데스크탑으로 X윈도, GNOME, KDE를 선택해 설치할 수 있습니다.
7. 리눅스의 윈도 환경은 다양한 윈도 관리자를 사용할 수 있어 자신의 입맛에 맞게 취사 선택이 가능합니다.

**사진: X윈도가 도입되면서부터 리눅스도 그래픽 방식으로 사용합니다.
NASA에서 사용할 정도로 리눅스는 안정적이고 강력합니다.
물론 리눅스는 단점도 있습니다. 가장 큰 단점은 아직까지 어플리케이션의 수가 많이 부족하다는 점입니다. 또한 공개용이기 때문에 상용 프로그램과는 달리 문제 발생 때 스스로 해결해야 한다는 점도 리눅스의 단점이라 할 수 있습니다. 그렇지만 이런 단점보다는 장점이 더 많기 때문에 리눅서의 수가 계속 증가하고 있습니다. 심지어 정밀함과 안정성을 우선으로 하는 나사(NASA)에서도 사용할 정도로 안정성과 성능을 인정받고 있습니다.
리눅스는 리눅스의 장점이 필요한 분에게 권할 수 있는 운영체제입니다.
그러나 일반인이 리눅스를 사용하는 것은 권장할 이유가 없습니다. 일반인이 리눅스를 사용함으로써 얻을 수 있는 이익이 없기 때문입니다.
리눅스는 윈도에 익숙해진 사용자가 사용하기에는 여러 면에서 불편합니다. 일단 MS 윈도 중심으로 만들어진 수 많은 프로그램을 사용하지 못합니다. 유명한 게임도 못하고 각종 프로그램을 사용하지 못합니다. 그런 운영체제를 써야 할 이유는 없습니다. 리눅스의 성능이 좋다고 말하는 것은 리눅스가 지닌 장점을 활용하는 분야에 종사하는 사람에게 해당하는 이야기입니다. 리눅스로 서버를 구축하기가 좋다는 것은 서버 구축이 업무인 사람에게는 뛰어난 매력으로 작용하지만 서버와 관련 없는 사람에게는 장점이 될 수 없습니다.
리눅스는 다음과 같은 사람들이 배우면 좋은 운영체제입니다.
1. 프로그램 구입비가 부담스러운 기업. 리눅스로 사내 전산망을 구축하려는 기업
2. 네트웍 관련 종사자
3. IT 쪽 프로그래머나 엔지니어로 진출하려는 사람들
그외 사람들인 일반 사용자에게는 장점이 별로 없는 운영체제입니다. 따라서 잘 사용하고 있는 윈도를 버리고 리눅스로 바꾸라고 권장하고 싶은 운영체제는 아닙니다.