OS (Operate System)
OS
- 운영 체제
ex) DOS, window 98, NT, XP, Vista, 7, Unix, Linux - 사용자들이 보다 쉽고 간편하게 시스템 이용 가능하도록 제어하는 시스템 소프트웨어의 일종
- 사용자와 컴퓨터 간의 인터페이스 제공
- 시스템의 효율적인 운영 및 관리 가능
- 운영 체제의 성능을 평가하는 기준
- 처리 능력 (Throughout) : 일정 시간 내에 시스템이 처리하는 일의 양
- 반환 시간 (Turn Around Time) : 시스템에 작업을 제시하고 나서부터 결과를 받을 때까지의 경과 시간
- 사용 가능도 (Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
- 신뢰도 (Reliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도
BIOS (Basic Interface Operate System)
- 하나의 OS
- 메인보드에 대한 정보 가지고 있음
Kernel
- 메모리 관리하는 OS의 가장 핵심적인 부분
- 컴퓨터가 부팅될 때 주기억 장치에 적재된 후 상주하면서 실행
- 실행 중인 프로그램 관리와 시스템에 대한 전반적인 자원을 관리하는 역할 수행
- 하드웨어 보호 및 프로그램과 하드웨어 간의 인터페이스 역할
- HW/SW의 정보를 메모리 형태로 저장하고, OS에 전달해주는 중계 프로그램
Linux
GNU (Gnu’s Not Unix)
- 자유 소프트웨어 재단
- 리눅스 등록 관리
- 무분별한 배포 관리
- 리차드 스톨만 창시
Linux
- 자유도가 높은 OS (Operate System)
- 커스터마이징 가능(사용자 설정)
- Redhat 계열, Debian 계열 등 여러계열의 리눅스 존재
- 서버, 네트워크 기능 강화
- 보안 강화
- 자유도가 높기 때문에 보안에 대한 부분 계속해서 Update
- Unix(대용량 Data를 관리하기 위해 사용하는 OS)를 소형화한 OS
Run level
- 부팅 레벨 (0~6)
- 리눅스 시스템 관리의 용이함을 위하여 서비스의 실행을 단계별 구분해 적용한 것
Run Level | Mode | Description | 명령어 |
---|---|---|---|
0 | halt | 시스템 종료 | init 0 |
1 | singel user mode | 시스템 복구 모드, 관리자 권한 default ex) windows 안전 모드 | init 1 |
2 | multi user mode | NFS 미지원 다중 사용자 모드, TUI 환경 | init 2 |
3 | full multi user mode | CLI 다중 사용자 모드, graphic user mode 미지원, TUI 환경 | init 3 |
4 | unused | 임의로 정의해 사용 가능한 레벨, 기본적으로 미사용 | init 4 |
5 | graphic user mode | 다중 사용자 모드, GUI 환경 | init 5 |
6 | reboot | 시스템 재부팅 | init 6 |
UI (user interface)
- GUI (Graphical user interface)
- 그래픽 환경
- 그래픽으로 사용자와 상호 작용
- 정보 저장소 = 폴더(folder)
- 그래픽 환경
- TUI (Text user interface)
- 텍스트 환경
- 텍스트로 사용자와 상호 작용
- 정보 저장소 = 디렉토리(directory)
- 텍스트 환경
- UI 확인 및 변경 명령어
1 2 3 4 5
systemctl get-default # interface 확인 sudo systemctl set-default graphical.target # 재부팅 시 GUI mode 변경 sudo systemctl isolate graphical.target # 현재 세션에서 GUI mode 변경 sudo systemctl set-default multi-user.target # 재부팅 시 TUI mode 변경 sudo systemctl isolate multi-user.target # 현재 세션에서 TUI mode 변경
Shell
- 언어 변환기(명령어 전달 도구)
- 사용자가 쓰는 명령어, 언어를 Kernel에 전달해주는 언어 변환기
- sh
- 커널 기본 shell
- bash
- Linux shell
- csh
- C program 전용 shell
- ksh
- korn shell
- Unix shell
Linux Directory 구조
- 트리 구조
/root
- 최상위
- 관리자 홈 디렉토리 ex) C:드라이브
/sbin
- 필수적인 system 명령어 저장소
- system binary
- ascii(문자, 문서파일)
ex) C:\Windows\wow64
/bin
- 필수적인 기본 명령어 저장소
- 대부분의 명령어 저장
- binary
- ascii(문자, 문서파일)
ex) C:\Windows\system32
- 필수적인 기본 명령어 저장소
/boot
- 부팅 파일 저장소
- 부팅 관련 grub(부트로더), lilo(linux loader) 존재
- 환경 파일 제외한 부팅 과정에서 필요한 모든 구성 요소들 존재
ex) boot.ini (부팅 파일)
/home
- 사용자 계정이 들어가는 저장소
- 사용자 홈 디렉토리 저장소
- 계정 접속 위치
- 계정 전용 공간 (사용자 홈 디렉토리)
ex) C\users\사용자명
/usr
- 유저가 사용하는 소스
- 사용자가 실행할 program files 저장
- 응용 프로그램 대용량 저장소
/sbin
/sbin
에 있는 명령을 제외한 system 관리 명령어 저장소
/bin
/bin
에 있는 명령을 제외한 응용 프로그램 명령어 저장소
/var
- 자주 변경되는 비휘발성(non-volatility) 데이터
- 자주 변경되는 누적 파일 저장소
- 내용 저장소
- 로그 파일 저장소
- 계속 남아있음
ex) log, 메일, 상태 메세지, 시스템 에러 메세지 /run
- 마지막 부트 때부터 작동하는 시스템에 대한 정보
- 현재 로그인 정보와 작동하고 있는 데몬
/log
- 컴퓨터 기록 저장
- 로그 파일
ex) 일기장
/etc
- 설정 파일, 스크립트(ascii)
- 기타 등등, 나머지 파일
- 서버 관리 및 시스템 설정 파일 저장소
/proc
- 자주 변경되는 program 동작 정보 저장소
- kernel, 가상화, 프로그램 등 running 중인 모든 프로그램
- 휘발성 (volatility) 데이터
- 실행 중인 process 동작 정보 저장소
- 재부팅 시 정보 사라짐
/proc/cpuinfo
- 프로세서 정보
/proc/devices
- 현재 커널에 설정되어 있는 장치 목록
- 자주 변경되는 program 동작 정보 저장소
/lib
- library
- 언어 번역기, 언어 관련 해석(변환)기
- 프로그램 해석(실행)가능
- 언어 관련 파일 저장소(컴파일러, 모듈)
- 어떠한 프로그램을 실행하기 위해 있어야 하는 하나의 변환기 → 없으면 해당 언어 번역 불가능
- C언어나 Java같은 언어를 해석해주는 하나의 언어 File
- 정적/동적 라이브러리
- 정적 라이브러리
- Linux : a
- Window : lib
- 동적 라이브러리
- Linux : so
- Window : dll (Dynamic Link Library)
- 정적 라이브러리
/tmp
- temp
- 임시저장소 (기본 1,000개)
- 시스템 reboot 후 보존되지 않음
/misc
- 아키텍처 독립 자료 디렉토리
/dev
- device
- 장치 파일 저장소
- TUI (Text User Interface) 환경 : 수동 장치 연결 (mount)
- GUI (Graphic User Interface) 환경 : 자동 장치 연결 (PnP:Plug&Play)
/media
- 자동 장치 연결 시 기본 장치가 연결되는 장소
- local device : 키보드, 마우스, HDD, CD-ROM
/mnt
- 자동 장치 연결 시 원격 장치가 연결되는 장소
- remote device : 리모콘, 블루투스, 무선 마우스, Wi-Fi
Directory 경로
/
의 자리에 따라 의미가 달라짐
ex) /var/log : 최상위 directory 안의 var directory 안의 log directory
ex) /home/mxxikr : 최상위 directory안의 home directory 안의 mxxikr directory
ex) /usr/bin : 최상위 directory 안의 usr directory 안의 bin directory- 문자열 가장 앞
/
- 최상위 디렉토리 의미
- 문자열 중간
/
- dir 구분자
- 문자열 마지막
/
- 보통 생략 사용
- directory 의미 (정보 저장소)
- 문자열 가장 앞
- 절대 경로
- 최상위(
/
) 기준으로 판단 - 최상위부터 시작
/
가 기준이 되는 경로1 2 3
pwd # /home/mxxikr/a cd /home/test # 절대 경로 지정 이동 pwd # /home/test
- 최상위(
- 상대 경로
- 현재 경로 (pwd) 기준으로 판단
- 지금 내 위치에서 이동
- pwd 입력 시 출력되는 위치부터 시작
1 2 3
pwd # /home/mxxikr/a cd b # 상대 경로 지정 이동 pwd # /home/mxxikr/a/b
파일/디렉토리 구분법
ls -al
명령어 통해 속성 확인 가능1 2 3 4 5
ls -al # d rwxrwxrwx # - rwxrwxrwx # l rwxrwxrwx
- d rwxrwxrwx : directory
- - rwxrwxrwx : file
- l rwxrwxrwx : link (바로 가기)
- .파일명 : hidden file (숨김 파일)