운영체제(OS)란?
오퍼레이팅 시스템 (Operating System; OS)
- 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위해 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어
- 최근에는 실제 하드웨어가 아닌 하이퍼바이저(가상 머신)위에서 실행되기도 함
- 입출력과 메모리 할당과 같은 하드웨어 기능의 경우 운영 체제는 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할을 함
- 예) Windows, Mac OS, Linux
운영체제 구성 요소
1. 커널(Kernel)
- 운영체제에서 가장 중요한 프로그램 중 하나로, 하드웨어라는 자원을 관리하는 관리자
- 즉, 어떤 프로그램이 작동할 수 있도록 CPU, 메모리, 디스크와 같은 물리적 장치들을 배분하는 것
- Linux 커널은 Linux 운영체제의 주요 구성 요소이며 컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스
커널의 기능
- 메모리 관리: 메모리가 어디에서 무엇을 저장하는 데 얼마나 사용되는지 추적
- 프로세스 관리: 어느 프로세스가 중앙 처리 장치(CPU)를 언제 얼마나 오랫동안 사용할지를 결정
- 장치 드라이버: 하드웨어와 프로세스 사이에서 중재자/인터프리터의 역할을 수행
- 시스템 호출 및 보안: 프로세스의 서비스 요청을 수신
2. 쉘(Shell)
- 사람이 사용하는 명령어를 프로그램이 실행할 수 있도록 만들어주는 인터페이스
- 쉘에서는 프로그램에 직접 명령어를 전달할 수도 있고, 내부에서 함수도 짤 수 있으며, 초기 환경 세팅도 가능
- 명령줄 vs 그래픽
- 명령줄 쉘: 운영 체제 상에서 명령 줄 인터페이스(CLI)를 제공
- 그래픽 쉘: 그래픽 사용자 인터페이스(GUI)를 제공
- 윈도우 쉘 vs 유닉스 쉘
- 윈도우 : 탐색기 / cmd
- 유닉스 쉘 : bash ...
3. 디렉토리(Directory)
- 폴더(Folder), 카탈로그(Catalog)
- 컴퓨팅에서 파일을 분류하기 위해 사용하는 이름 공간
- 일반적인 파일 시스템은 수천개가 넘는 디렉토리들을 가지고 있고, 같은 디렉토리에 관련 파일들이 저장되어 나열 및 관리됨
- 하위(서브) 디렉토리: 다른 디렉토리 속의 디렉토리
리눅스(Linux)란?
- 컴퓨터 운영체제(서버 운영체제)이며, 그 커널을 뜻하기도 함
- 자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본
- 다중 사용자, 다중 작업(멀티태스킹), 다중 스레드를 지원하는 네트워크 운영 체제(NOS)
- Unix와 Windows 운영체제의 대안으로 자리잡음
- CentOS7(AWS, AMI, AL2), Ubuntu18, ...
- 벤더 독립성, 적은 개발비, 뛰어난 보안성 및 안정성
디렉토리
디렉토리
절대경로와 상대경로
디렉토리 종류
/home
: 사용자 홈 디렉토리 생성되는 디렉토리
/media
: CD_ROM이나 USB 같은 외부 장치를 연결하는 디렉토리
/opt
: 추가 패키지가 설치되는 디렉토리
/dev
: 장치 파일들이 저장되어 있는 디렉토리
/root
: root 계정의 홈 디렉토리
/sys
: 리눅스 커널 관련 정보가 있는 디렉토리
/usr
: 기본 실행 파일과 라이브러리 파일, 헤더 파일 등의 파일이 저장되어 있는 디렉토리
/boot
: 부팅에 필요한 정보를 가진 파일들이 있는 디렉토리
/var
: 시스템 운영 중에 발생한 데이터의 로그가 저장되는 디렉토리
- /var/www/html ...
- /var/log ...
/tmp
: 시스템 사용 중에 발생한 임시 데이터가 저장되는 디렉토리
/srv
: FTP나 Web등 시스템에서 제공하는 서비스의 데이터가 저장되는 디렉토리
/run
: 실행 중인 서비스와 관련된 파일이 저장되는 디렉토리
/proc
: 프로세스 정보 등 커널 관련 정보가 저장되는 디렉토리
/mnt
: 파일 시스템을 임시로 연결하는 디렉토리
/etc
: 리눅스 설정을 위한 각종 파일들을 가지고 있는 디렉토리