리눅스의 배경이나 리눅스가 왜 좋은지 그리고 리눅스 소스 디렉토리의 구조는 어떻게 생겼는지 등을 기술한다.
리눅스가 왜 많이 사용되고 각광 받는가? 이에 대한 대답은 수 많이 존재할 것이지만 조금 간추려보면 대충 아래와 같은 몇몇 답으로 축약할 수 있을 것이다.
아마 이말 이상의 좋은 매력은 없을 것이다. 리눅스가 갖는 가장 좋은 매력 중 하나가 바로 공짜가 아닐까 생각해본다. 만약 리눅스가 유료였다면 현재 만큼 성장할 수 있었을까? 절대로 그렇지 않다고 생각한다. 게다가 리눅스는 GNU의 정신을 따르기 때문에 Copyleft란 말을 쓴다(copyright의 반대). 누구든 어떤 식으로든 사용 가능한 셈이다.
공짜로 성공하거나 유명해 진 것은 많지만 컴퓨터 분야에서 가장 유명한 것이 바로 리눅스 일 것이다. 이런 리눅의 배경은 다음과 같은 몇줄로 압축할 수 있다.
리누스 토발즈가 개발, Copyleft
1991년 0.01이 첫 발표됨
레드햇, 데비안, 슬랙왜어 등의 배포본이 있음.
많은 회사 들에 의해 지원됨
멀티태스킹
멀티유저
멀티프로세서
많은 아키텍쳐 지원
페이징
하드 디스크 용 다이나믹 캐시
공유 라이브러리
POSIX 1003.1 지원
여러 형태의 실행 파일 지원
진짜 386 프로텍티드 모드
수치프로세서 에뮬레이션
여러 나라 별 키보드, 언어 지원
여러 파일 시스템 지원
TCP/IP, SLIP, PPP
BSD 소켓
System V IPC
버추얼 콘솔
모놀리딕 커널-마이크로 커널에 비해 많은 부분이 커널레벨에서 구현된다.
초보에겐 어렵다-시스템 프로그래머를 위한 것이다
잘 짜여진 구조가 아니다(성능에 초점이 맞춰져 있다)
많은 시스템에 의해 성능이 검증되어 있다
우리 스스로가 커널을 조정하거나 수정할 수 있다
리눅스 커널 소스는 압축된 것이 약 20MB 이상이다. 그러므로 수 많은 디렉토리와 수 많은 파일을 포함하고 있다. 필자가 완료한 몇몇 아주 큰 프로젝트에서도 전체 소스 코드를 압축해봤자 10MB를 넘기기는 힘들었다. 그러나 양으로도 리눅스 커널은 이미 함부로 대하기 힘든 상대임을 나타내는데, 여기서는 리눅스 커널 소스의 압축을 풀면 생기는 디렉토리에 대해 알아보자.
한 가지 주의 해야할 점은 리눅스 커널이 지금 이 순간에도 계속 변하고 있으므로 아래의 내용이 언제 바뀌어 틀리게될지 모른다. 그러므로 항상 최신 버전을 소스 코드를 참조하기 바란다. 아래의 내용은 2.4.16 ~ 2.4.18의 것을 참조해 설명한 것이다.
모든 코드는 /usr/src/linux에서 시작한다고 가정한다. 이 글에선 이 위치를 $(TOPDIR)이라 표현한다.
커널에 관계된 문서들이 들어 있다. 커널을 분석하거나 할 때 필요한 정보는 여기를 먼저 보고나서 다른 곳을 찾는 것이 빠른 정보를 얻는 길이다.
커널의 핵심 코드,스스템콜,스케쥴러,시그널 핸들링
전통적 프로세스간의 통신,세마포어,공유메모리,메세지큐
커널 라이브러리 함수(printk와 같은 것 들)
버추얼 메모리 관리,페이징, 커널 메모리 관리
코드 사이의 의존성을 만들어주는 등의 스크립트나 실행 파일이 모여있다.
아키텍쳐에 관계된 코드가 들어있다.
alpha
arm
m68k
mips
ppc
sparc
i386
boot
부트스프랩코드,메모리/디바이스 설정
kernel
커널 시작점,컨텍스트 스위칭
lib
math-emu
mm
각 아키텍쳐에 관계된 메모리 코드
...
버추얼 파일 시스템 인터페이스,여러 파일시스템 지원
coda
ext2
hpfs
msdos
nfs
ntfs
ufs
...
커널이 실행되기 위한 모든 코드,프로세스 0,프로세스 생성...
커널에 관계된 헤더 파일,asm-*은 아키텍쳐 관련,linux는 리눅스 커널 관련
asm-alpha
...
asm-i386
linux
net
scsi
video
...
많은 종류의 네트웍 프로토콜 지원,소켓 지원
802
appletalk
decnet
ethernet
ipv6
unix
sunrpc
x25
...
하드웨어에 대한 드라이버
block
하드디스크 같은 블럭 디바이스
cdrom
char
시리얼 포트,모뎀,tty 같은 문자 디바이스
net
네트웍 카드
pci
PCI 버스 컨드롤
pnp
sbus
scsi
SCSI 카드
sound
사운드 카드
viceo
...