[linux기초] 2. 리눅스 시스템의 이해
1 리눅스와 하드웨어
1-1 하드웨어의 이해
1-2 하드웨어의 선택
- RIAD(Redundant Array of Independent Disks) 분류
- RAID 0 : 스트라이핑 가능(분배 기록) 사용. 빠른 I/O 성능. 고장 대비 능력 X
- RAID 1 : 두 개 이상의 디스크를 미러링을 통해 하나의 디스크처럼 사용
- RAID 2 : ECC(에러 검출 가능) 탑재
- RAID 3 : 하나의 디스크를 에러검출을 위한 패리티 정보 저장용으로 사용하고 나머지 디스크에 데이터를 균등하게 분산 저장
- RAID 4 : RAID 3 방식과 같지만 블록 단위로 분산 저장
- RAID 5 : 하나의 디스크에 패리티 정보를 저장하지 않고 분산 저장 (회전식 패리티 어레이)
- RAID 6 : 하나의 패리티 정보를 두개의 디스크에 분산 저장 쓰기 능력은 저하될 수 있지만 고장 대비 능력이 매우 높음 두 개의 오류까지 검출 가능
- RAID 7 : 실시간 운영체계를 사용
- RAID 0+1 : 최소 4개 이상의 디스크를 2개씩 스트라이핑으로 묶고 (RAID 0)미러링으로 결합(RAID 1)한 방식
- RAID 10 : 두 개의 디스크를 미러링으로 묶꼬(RAID 1) 스트라이핑(RAID 0)으로 결합한 방식
- SCSI(Small Computer System Interface)
- 주변기기를 연결하기 위한 표준 인터페이스
- 고성능이고 호환성/확장성이 뛰어남
2. 리눅스의 구조
2-1 부트 매니저
- 리눅스 부트로더 LILO/GRUB
- 부트로더 : OS가 시동되기 이전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 OS를 시동하기 위한 프로그램
- LILO
- 리눅스 배포판의 표준 부트로더
- 오래된 리눅스용 기본 부트로더
- 대화형 명령어 인터페이스가 없고, 네트워크 부팅 지원하지 않음.
- GRUB(Grand Unified Boot Loader)
- 리눅스, vSTA, DOS 및 기타 OS에서 사용할 수 있는 부트로더
- 새로운 기본 부트로더
- 대화형 명령어 인터페이스가 있고, 네트워크 부팅 지원함.
- 부트로더에 문제가 있을 시 grub-Install 명령어를 사용하여 복구
2-2 디렉토리 구조 및 디렉토리 별 기능
- 디렉토리 분류
- /bin : 기본 명령어들이 저장
- /sbin : 시스템 관리를 위한 명령어들이 저장
- /etc : 환경설정에 연관된 파일들과 디렉토리들이 저장
- /etc/rc.d : 시스템의 부팅과 런 레벨 관련 스트립트들이 저장
- /etc/inittab : init을 설정하는 파일
- /etc/issue : 로그인을 위한 프롬프트가 뜨기 전에 출력되는 메시지를 설정하는 파일
- /etc/issue.net : issue파일과 기능은 같으나, 원격지 상에서 접속(telnet 등) 할 경우에 출력되는 메시지 설정
- /etc/motd : 로그인 성공 후 쉘이 뜨기 전에 출력되는 메시지를 설정하는 파일
- /etc/nologin.txt : 사용자의 쉘이 /sbin/nologin으로 지정되어 있을 때, 로그인 거부 메시지를 설정하는 파일
- /boot : 리눅스 부트에 필요한 부팅 지원 파일들이 저장
- /mnt : 외부장치를 마운트하기 위해 제공되는 디렉토리
- /usr : 각종 응용프로그램들이 설치되는 디렉토리
- /usr/bin : /bin 디렉토리에 없는 다양한 실행파일이 저장
- /usr/src : 시스템에서 사용하는 각종 프로그램들의 컴파일되지 않은 소스파일들이 저장
- /lib : 각종 라이브러리들이 저장
- /dev : 장치 드라이버들이 저장되는 가상 디렉토리
- /dev/console : 시스템들의 콘솔
- /dev/null : 폐기를 위한 디렉토리. 이 디렉토리로 파일이나 데이터를 보내면 폐기된다.
- /proc : 시스템의 각종 프로세운, 프로그램 정보, 하드웨어적인 정보들이 저장되는 가상 디렉토리
- /proc/partitions : 파티션 정보 파일
- /var : 시스템에서 사용되는 동적인 파일들이 저장
- /var/log : 프로그램들의 로그 파일들이 저장
2-3 부팅과 셧다운
- 관련 명령어
- halt : 시스템 종료. [-f]옵션으로 강제 종료 가능
- reboot : 시스템 재부팅 . [-f]옵션으로 강제 종료 가능
- shutdown :
- [-h] : 종료 옵션
- [-r] : 재부팅 옵션
- [-c] : 명령 취소
- [-k] : 실재로 종료하지 않고 종료하겠다는 메시지만 사용자들에게 보냄
- init : 런레벨을 변경하는 명령어
$ init 0
: 시스템 종료$ init 6
: 시스템 재시작
- ntsysv 명령어
- 부팅할 때 각 런레벨에 따라 자동으로 실행시킬 서비스를 설정하는 명령어
- 부팅과정
- BIOS (Basic Input Output System) 실행, POST (Power On Self Test) 수행
- MBR (Master Boot Record) 읽고, **부트로더(LILO/GRUB) 로드
- 커널 이미지 로드
- 각 장치 드라이버 초기화, 파일 시스템 검사, init 프로세스 호출
- /etc/inittab 파일 참조
- 런레벨 관련 파일
- /etc/rc.d/rc.sysinit 스크립트 실행
- /etc/init/rcs.conf 파일 적용 : 시스템 초기화 관련 설정 파일. rc.sysinit 스크립트를 실행
- 해당 런레벨에 맞는 /etc/rc.d/rc#.d/* 스크립트 실행
- /etc/init/rc.conf 파일 적용 : 런레벨별로 진행되는 내용이 설정된 파일. rc#.d/* 스크립트 실행
- /etc/rc.d/rc.local 스크립트 실행
- 부팅 시 필요한 서비스를 이 스크립트 안에 등록
- 로그인 프롬프트 출력
2-4 파일시스템의 이해
- 파일시스템의 종류
- etc3
- etc2에서 fsck의 단점을 보완하기 위해 저널링 기술을 도입한 파일시스템
- 저널링(Journaling) 기술 : 데이터를 디스크에 쓰기 전에 로그인 데이터를 남겨 fsck보다 빠르고 안정적인 복구 기능을 제공하는 기술
- 최대 볼륨크기 2TB ~ 16TB / 최대 파일크기 16GB ~ 2TB 지원/ 하위 디렉토리 수 : 32000개
- etc4
- etc3의 기능을 향상시킨 파일 시스템
- etc2/etc3 파일시스템과 호환 가능
- 지연된 할당 : 데이터가 디스크에 쓰여지기 전까지 블록 할당을 지연시켜 블록 할당이 가능
- 최대 볼륨크기 1EB / 최대 파일크기 16TB 지원 / 하위 디렉토리 수 : 64000개
- XFS
- 고성능 64비트 저널링 파일 시스템
- 리눅스 커널 2.4.20버전에서 커널로 포팅되었다.
- etc3