1. 특징
- 오픈 소스 운영체제
- 다중 사용자 (multi user) 다중 작업(multi tasking)을 지원한다.
- 강력한 네트워킹 지원 및 다양한 파일 시스템을 지원한다.
- 클라이언트, 서버운영체제 등등 사용이 자유롭다.
- 윈도우의 경우 윈도우 파일 시스템만 지원한다.
- 뛰어난 이식성, 유연성, 확장성을 지니며 안정성과 보안성도 강력하다.
- 소스가 오픈되어 있기 때문에 보안성 방어도 뛰어나다.
- 가격 대비 성능이 우수하며 다양한 응용 프로그램을 제공한다.
- 대부분 무료
- 다양한 배보판이 존재한다.
- 데비안 - 우분투
- 레드헷 - centOs
2. 장점
장점 | * 유닉스와 완벽한 호한 |
* POSIX 규격을 따름 | |
* 안정적인 운영체제 | |
* 하드웨어의 효율적 운영 | |
단점 | * 공개용, 무료 운영체제이므로 오류시 기술지원을 받기 어렵다. |
* 특정 하드웨어에 대한 지원 부족 (Mac ...) | |
* 처음 접하는 사용자에게는 사용이 다소 어렵다. (GUI가 아니므로) | |
* 한글 지원이 미흡 (요즘엔 괜찮...) |
3. 리눅스 부팅 과정
단계 | 진행과정 | 설명 |
1단계 | ROM-BIOS 실행 | * POST (Power On Self Test) 과정을 수행 후 하드웨어 이상 유무를 검사, 에러 발생시 알림 * 부트 로더 로딩 => 여러 종류의 OS, 커널의 문제 해결 |
2단계 | 부트 로더 실행 | * 부트 로더를 실행하여 커널을 로딩하고, 스와퍼 프로세스 호출 * 'LiLo'와 'GRUB'가 있음 |
3단계 | 스와퍼 프로세스 실행 | * 장치들의 드라이버 초기화 * 'init' 프로세스 실행 => 요즘은 System d |
4단계 | 'init' 프로세스 실행 | 'init' 프로세스를 실행하여 '/etc/inittab' 파일을 읽음 => 하지만 System d를 주로 사용한다. |
5단계 | 부트 레벨 결정 | * 부트 레벨을 결정 -> 런 레벨 7단계 |
6단계 | 'rc.sysinit' 스크립트 | * 초기화 과정 * '/ect/rc.d/rc.sysinit' 스크립트를 실행하여 시스템 초기화 작업 수행 |
7단계 | 'rcx.d' 스크립트 실행 | * '/etc/rcx.d' 스크립트를 실행하여 해당 부트 레벨 스크립트를 순차적으로 실행 |
8단계 | X윈도 실행 | 부트 레벨이 5일 경우 x윈도 환경으로 부팅 -> 3단계는 당연히 TextMood |
- LILO (Linux LOader)
- 작고 가벼우며 멀티부팅이 가능하다
- 커널을 변경할 때마다 명령어를 변경해줘야 한다.
- /etc/lilo.conf에 설정파일이 위치한다.
- GRUB(GRand Unified Boot Loader)
- LILO 명령 없이 자동으로 부트 이미지 발견, 적절하게 파라미터를 입력가능
- 굉장히 무겁다.
- /boot/grub/menu.lst에 설정파일이 위치한다.
4. 런 레벨(Run Level)
런 레벨 | 운영 모드 | 설명 |
0 | Halt | 시스템 종료 |
1 | Single User Mode | 단일 사용자 모드(CLI) |
2 | Multi User Mode (Without Networking) |
다중 사용자 모드(CLI) (네트워크 사용 불가) |
3 | Multi User Mode (Only Console Login) |
다중 사용자 모드(CLI) |
4 | Not Used | 사용하지 않음 |
5 | Multi User Mode (With Display Manager) |
다중 사용자 모드(GUI, X 윈도) |
6 | Reboot | 재시작 |
- 주로 사용하는 것은 3레벨과 5레벨이다. (1문제)
5. 디렉터리의 특징
기호 | 특징 |
/ | * 최상위 디렉터리 * 루트(/) 디렉터리라고 함 |
/bin | 'System Binary'의 약어로 이진 파일이며 리눅스에서 기본 명령어가 저장된 디렉터리 |
/usr | 시스템에 사용되는 각종 프로그램이 설치되는 디렉터리 |
/etc | 리눅스 시스템의 각종 환경설정 파일과 디렉터리가 저장된 디렉터리 => 모든 설정파일 |
/sbin | 시스템 관리를 위한 명령어가 저장된 디렉터리 |
/lib | * 프로그램의 각종 라이브러리 파일이 저장된 디렉터리 * 유틸리티 패키지 등의 파일 포함 |
/var | * 시스템에서 사용되는 동적인 파일을 저장하는 디렉터리 * 각종 시스템 로그파일로 사용자 로그인에 대한 로그를 기록 * 메일서버를 운영한다면 사용자에게 전송된 메일을 임시로 저장하는 디렉터리 => dns |
/tmp | 임시 디렉터리로 스티키 비트가 설정되어 있음 => 특수한 비트 |
/root | 시스템 관리자(root)의 홈 디렉터리 => 위의 /와 다르다. 디렉터리 최상 vs 관리자 디렉터리 |
/proc | * 시스템의 각종 프로세서 프로그램 정보, 하드웨어 정보가 저장된 디렉터리 * 가상 파일 시스템으로 hd에 물리적인 용량을 가지지 않는 디렉터리 => 거의 0에 수렴 |
/dev | 시스템의 각종 장치에 접근하기 위한 장치 드라이버가 저장된 디렉터리 |
/home | 일반 사용자의 홈 디렉터리 |
- 1문제
- 스티키 비트(Sticky Bit)란?
- 비록 permission이 777인 파일이여도 파일의 소유자만이 삭제할 수 있다. (수정, 실행, 읽기는 모두 허용)
- sticky bit가 설정된 디렉토리 자체도 소유자만이 삭제할 수 있다.
- root는 다할 수 있다.
- 배경
- /tmp, /var/tmp의 디렉토리는 permission이 777이므로 누구나 생성하고 만들고 삭제할 수 있다.
- 다른 소유자가 지워버리는 문제가 생겨나는 것을 방지하여 스티키 비트를 설정해놓는다.
6. RAID 레벨 구조
RAID 레벨 | 설명 |
RAID 0 | * 빠른 데이터의 입출력을 위해 '스타라이핑 (Striping)'을 사용한다. => 분산저장 * 하나의 디스크에 오류가 발생하면 데이터를 잃어버릴 수 있다. ex) 1. 대 - 민 --- 2. 한 - 국 이렇게 두개의 디스크를 저장 |
RAID 1 | * 2개 이상의 디스크를 '미러링(Mirroring)'을 통해 하나의 디스크처럼 사용한다. * 완전히 동일하게 데이터를 복제하기 때문에 사용량이 절반밖에 되지 않는다. * 하나의 디스크에 오류가 발생하면 미러링된 디스크를 통해 복구할 수 있다. * RAID0의 단점을 극복,, 하지만 용량이 반토막 나는 단점 생성 ex) 1.대한민국 --- 2.대한민국 이렇게 두개의 디스크를 저장 |
RAID 0 + 1 | * RAID 0과 RAID 1을 결합하는 방식 * 최소 4개 이상의 디스크에서 먼저 2개씩 'RAID 0 (스트라이핑)으로 묶고 이것을 다시 'RAID 1(미러링)으로 결합하는 방식'' |
RAID 2 | * 오류 정정을 위해 '해밍 코드(Hamming Code)'를 사용하는 방식 * 비트 단위에 해밍 코드를 적용한다. * 최근 디스크 드라이브가 기본적으로 오류 검출 기능이 있으므로 거의 사용하지 않는다. |
RAID 3 | * 패리티 정보를 하나의 디스크에 있다. * 나머지 2개의 디스크에는 정보만 가지고 있다. |
RAID 5 | * 3개 이상의 디스크를 사용하여 하나의 디스크처럼 사용하고, 각각의 디스크에 패리티 정보를 가짐 * 하나의 디스크에 오류가 발생해도 다른 2개의 디스크를 통해 복구 가능 * 패리티 디스크를 별도로 사용하지 않으므로 병목 현상이 발생하지 않는다. |
- 물리적인(디스크) 서버와 프로세스를 논리적으로 하나로 묶어버리는 것.
- 10 ( 4 + 6)
7 /etc/passwd 파일
- pw만 들어있는 것이 아니라 사용자 정보가 들어있는 부분이다.
- 물론 pw도 들어있다. 하지만 이것만 들어있는 것이 아니다.
- 7개의 필드로 이루어져 있으며 :(콜론)으로 구분된다.
7-1 파일 구조
username : password : uid : gid : comment : homedirectory : shell
7-2 내용 설명
파일 구조 | 설명 |
username | 계정명 |
password | 패스워드 |
uid | UID, username계정에 대한 주민번호같은 존재 숫자로(10, 16진수여도) |
gid | GID, 동아리, 동호회 숫자로(10, 16진수여도) |
comment | 설명, 이 username을 누가 사용하는지.. 작동에는 영향이 없다. |
homedirectory | root를 제외한 모든 사용자들은 home 디렉토리 밑에 생긴다. |
shell | 로그인 셀 종류 (Default 셀은 bash) -> (/bin/bash에 있다.) |
8. /etc/shadow 파일
- password 정보가 들어있는 파일
- password파일의 password부분을 암호화해서 저장
- 8개의 필드로 이루어져 있으며 :(콜론)으로 구분된다.
8-1. 파일 구조
username : password : lastchange : mindays : maxdays : warndays : inactive : expire : flag
8-2 내용 설명
파일 구조 | 설명 |
username | 계정명 |
password | 암호화된 패스워드 |
lastchange | 변경 후 지난 일 수 -> 기준은 1970.01.01 (애초에 이렇게 설정해둠) |
mindays | 변경 최소 일 -> 3일로 설정하면 3일 이후에만 변경가능 |
maxdays | 최대 유효기간 |
warndays | 만료 경고일 -> 7일로 하면, 7일전에 경고창 노출 |
inactive | 만료 후 비활성화 기간 -> 경고했는데도 안하면 7일동안 접근 불가능 |
expire | 계정 만료일 |
flag | 예약 |
9. /etc/group 파일
- 그룹정보
- 4개의 필드로 구성되어 있다.
9-1. 파일 구조
groupname : password : gid : members
9-2. 내용 설명
파일 구조 | 설명 |
groupname | 계정명 |
password | 암호화된 패스워드 |
gid | GID (Group ID) |
members | 소속된 사용자 |