티스토리 뷰
Linux란
Linux는 Linus Torvalds와 해커 팀이 협력하여 Unix 운영 체제를 클론한 것.
POSIX 및 Single UNIX Specification을 준수하며, 최신 Unix 시스템에서 기대할 수 있는 다음과 같은 모든 기능을 제공한다.
POSIX -> Portable Operating System Interface + uniX 호환가능한 OS 인터페이스 + 유닉스.
Single Unix Specification -> 컴퓨터 운영체제에 대한 표준, Unix 상호 사용하려면 준수해야함.
- 진정한 멀티태스킹, 가상 메모리, 공유 라이브러리
- 요구 시 로딩, 공유 쓰기 복사 실행 파일, 적절한 메모리 관리
- IPv4 및 IPv6을 포함한 멀티스택 네트워킹
Linux는 GNU General Public License(GPL)로 배포. 자세한 내용은 COPYING 파일 참조.
어떤 하드웨어에서 실행되는가?
Linux는 처음에는 32비트 x86 기반 PC(386 이상)를 위해 개발되었으나, 현재는 다양한 아키텍처에서 실행된다.
예: Compaq Alpha AXP, Sun SPARC, PowerPC, ARM, MIPS, AMD x86-64 등
PMMU(Paged Memory Management Unit)가 없으면 기능이 제한 될 수도 있다.
문서
- LDP(Linux Documentation Project)와 같은 리눅스 관련 문서를 참조.
- Documentation/ 디렉터리의 README 파일에서 설치 정보나 드라이버 정보를 확인.
- Documentation/DocBook/ 디렉터리에서는 PostScript, PDF, HTML, man 페이지 등 다양한 형식의 개발자 가이드를 제공.
커널 소스 설치
- 커널 소스를 다운로드하고 압축 해제:
- gzip -cd linux-3.X.tar.gz | tar xvf -
- 또는 bzip2 -dc linux-3.X.tar.bz2 | tar xvf -
- /usr/src/linux 디렉터리 사용 금지.
- 패치로 업그레이드 가능:
- gzip -cd ../patch-3.x.gz | patch -p1
소프트웨어 요구 사항
최신 소프트웨어 패키지가 필요합니다. Documentation/Changes를 참조.
빌드 디렉터리
- 기본적으로 빌드 출력 파일은 소스 디렉터리에 저장.
- 출력 파일을 다른 디렉터리에 저장하려면 make O=output/dir 옵션을 사용.
커널 설정
- 새 버전으로 업그레이드 시 반드시 설정 단계를 거치기.
- 기존 설정을 유지하려면 make oldconfig 사용.
- 다양한 설정 도구:
- make menuconfig: 텍스트 기반 컬러 메뉴
- make xconfig: X 윈도우(Qt) 기반 GUI
- make allyesconfig: 가능한 모든 옵션을 'y'로 설정
커널 컴파일
- 커널 이미지 생성: make
- 모듈 설치: make modules_install
- 빌드 출력 더 보기: make V=1 all
문제 해결
- 버그 발생 시 MAINTAINERS 파일 참조.
- 시스템 크래시 시 덤프 분석 방법은 Documentation/oops-tracing.txt 확인.
- GDB를 통해 실행 중인 커널 디버깅 가능:
- gdb vmlinux /proc/kcore
이후 커널 설치 후 재부팅하여 새 커널을 사용