운영체제 ( OS : Operation System )의 개념
- 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어
- 운영체제는 시스템 자원을 효과적으로 사용할 수 있도록 운영해 주어 편의성을 제공해 줌
- 컴퓨터 시스템과 사용자 간의 인터페이스 기능을 담당
운영체제의 특징
특징 | 설명 |
편리성 제공 | 한정된 자원을 효과적으로 사용할 수 있도록 관리 및 운영 |
인터페이스 기능 | 컴퓨터 시스템과 사용자를 연결 |
스케줄링 담당 | 다중 사용자와 다중 응용 프로그램 환경에서 자원의 현재 상태를 파악, 자원 분배를 위한 스케줄링 담당 |
자원 관리 | CPU, 메모리 공간, 기억장치, 입출력 장치의 자원 관리 |
제어기능 | 입출력 장치와 사용자 프로그램을 제어 |
운영 체제는 크게 쉘(Shell) + 커널(Kernel)의 구조이다.
인터페이스(쉘 : Shell)
- 사용자가 입력시킨 명령어 라인을 읽어 시스템 기능을 실행시키는 명령어 해석기
- 여러가지 내장 명령어 제공
커널(Kernel)
- 운영체제의 핵심이 되는 기능이 모여있는 프로그램
- 부팅될 때 주기억장치에 적재되어 상주하며 실행.
커널의 기능
- 프로세스 관리
- 스케줄링 및 동기화 담당
- 생성 & 제거 , 시작 & 정지, 메시지 전달 등
- 기억장치 관리
- 메모리 할당 및 회수
- 주변장치 관리
- 입출력 장치 스케줄링 및 관리
- 파일 관리
- 파일 관리, 파일 생성 & 삭제, 변경, 유지
운영체제의 종류
1. 윈도우즈(Windows)
- 마이크로소프트사가 개발
- 멀티태스킹 기능과 GUI 환경 제공 : 그래픽 기반의 인터페이스
- 자동 감지 기능 제공 : 하드웨어 설치했을 때 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 기능 제공
- OLE : 개체를 작성 중인 문서에 자유롭게 연결, 삽입해 편집할 수 있게
2. 유닉스(Unix)
- 벨 연구소를 통해 만든 운영체제
- 90% 이상 C 언어로 구현되어 있는 운영체제
- 범용 다중 사용자 방식의 시분할 운영체제
3. 리눅스
- 유닉스 기반의 오픈 소스 기반의 운영체제이다.
- 대화식 운영체제, 다중 작업 기능, 이식성, 계층적 트리 구조 파일을 갖는다.
- 데비안, 레드햇, Fedora, Ubuntu, CentOS 등이 있다.
4. 맥 (Mac)
애플 사에서 개발한 유닉스 기반의 GUI 기반의 운영체제
5. 안드로이드
- 리눅스 기반 : 리눅스 커널 위에서 동작
- 자바, 코틀린 언어
- 고수준 언어를 사용해 작성
- 생산성이 높고 전문 지식이 없어도 개발 가능
- 런타임 라이브러리
- 컴파일된 바이트 코드 구동
- 안드로이드 SDK
- 각동 도구와 API 제공
운영체제 기본 명령어 활용
운영체제를 제어하기 위한 방법은 CLI, GUI 두가지가 있다.
- CLI (Command Line Interface)
- 사용자가 직접 명령어로 컴퓨터에 명령을 내림
- GUI (Graphic User Interface)
- 마우스로 화면을 클릭해 컴퓨터를 제어
1. 윈도우 기본 명령어
명령어 | 설명 |
ATTRIB | 파일 속성을 표시하거나 바꿈 |
CALL | 한 일괄 프로그램에서 다른 일괄 프로그램 호출 |
CD | 현재 디렉터리 이름을 보여주거나 이동 |
ChkDsk | 디스크 검사하고 상태 보고서 표시 |
CLS | 명령 프롬프트의 글씨들을 지움 |
CMD | Window 명령 프롬프트 창을 엶 |
COMP | 두 개 이상의 파일 비교 |
DiskPart | 디스크 파티션 속성을 표시하거나 구성 |
ECHO | 메시지를 표시하거나 ECHO를 사용, 사용하지 않음 |
ERASE | 하나 이상의 파일을 지움 |
EXIT | 명령 프롬프트를 종료 |
2. 리눅스 / 유닉스 계열 명령어
리눅스 & 유닉스 명령어는 Shell 에서 입력할 수 있다.
시스템 관련
- uname -a
- 시스템의 모든 정보를 확인
- 시스템 이름, 사용 중인 운영체제와 버전, 호스트 명 등을 표시
- uname - r :
- 운영체제의 배포버전을 출력
- cat
- 파일의 내용을 화면에 출력
- uptime
- 시스템 가동 시간, 현재 사용자 수, 평균 부하량 등 확인
사용자 관련
- id : 사용자의 로그인명, id, 그룹 id 등 출력
- last : 시스템의 부팅부터 현재까지 사용자의 로그인, 로그아웃 정보 표시
- who : 현재 접속 사용자 정보를 표시
파일 처리
- ls : 현재 디렉토리의 파일 및 폴더 목록 표시
- pwd (print working directory): 현재 작업중인 디렉토리의 절대경로
- rm : 파일 삭제
- cp : 파일 복사
- mv : 파일 이동 명령어
프로세스
- ps : 현재 실행되고 있는 프로세스 목록 출력
- pmap : 프로세스 ID 기준으로 메모리 맵 정보 출력
- kill : 특정 PID 프로세스 종료 명령어
파일 권한
- chmod : 특정 파일 또는 디렉토리의 권한(permission) 수정
- chown : 파일이나 디렉토리 소유자, 소유 그룹 수정 명령어
네트워크
- ifconfig : 네트워크 인터페이스를 설정하거나 확인하는 명령어
- host : 도메인 명은 알고 있는데 ip 주소를 모르거나 반대의 경우 사용
압축
- tar : 여러개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령어 ( 압축 불가)
- gzip : 파일을 압축하는 명령어
검색
- grep : 입력으로 전달 된 파일 내용에서 특정 문자열을 찾고자 할 떄 사용
- find : 특정한 파일을 찾는 명령어
파일 이동
- cp : 디렉토리를 복사할 때 사용
- rsync : 로컬 or 원격에 파일과 디렉토리를 복사하고 동기화
디스크 사용
- df : 하드디스크의 남은 용량을 확인할 때 사용
- du : 파일 사이즈를 Kb 단위로 보여주는 명령어
디렉토리 이동
- cd : 디렉토리를 이동하는 명령어
리눅스/유닉스 파일 접근 권한 관리
파일 접근제어 개요
- 사용자 혹은 프로세스가 파일을 읽거나, 실행하면
open(), read(), write()와 같은 시스템 호출이 수행되고, 파일 정보가 저장된 i-node 값 읽게 된다. - i-node에는 각 파일의 물리적 위치, 생성, 수정, 사용 날짜 등 파일 정보와 파일 소유자 그룹, 접근 권한 등 파일 접근제어와 관련된 정보가 수록, 해당 정보 이용해 DAC 기반 접근 제어 수행
접근 권한 유형
- User (u) : 파일을 소유하고 있는 사용자
- Group (g): 소유자 제외하고 같은 그룹에 속해있는 모든 사용자
- Other (o): 그 밖의 사용자
파일 접근 모드( 설정 명령어 : chmod )
- R (읽기): 4
- W (쓰기) : 2
- X (excute) : 1
파일이 rwx 권한이 있으면 읽고, 쓰고, 실행하는 권한이 있다.
접근 권한 기호
- 그룹 : u (user) , g (group), o (other)
- 연산자 : +(추가), - (제거), = (지정)
- 접근 권한 : r (read), w (write), x (excute)
예시
chmod o-w test.txt
// test.txt 파일의 other 그룹의 쓰기(w) 권한을 제거
chmod 664 test.txt
// test.txt 파일의 접근 권한은 664 (rw-rw-r--)
운영체제 핵심 기능 파악
핵심 기능
위에서 말 했듯이 OS의 기능은 여러개가 있지만 핵심 기능은 메모리 관리, 프로세스 관리이다.
핵심 기능 | 설명 |
메모리 관리 | 중앙처리장치(CPU), 메모리, 스토리지, 주변 기기 등을 적절히 관리 최근의 운영체제에서는 대부분 메모리를 자동으로 관리해 줌 |
프로세스 관리 | 일시 중지 및 재실행, 동기화, 통신 , 교착상태 처리, 프로세스 생성 삭제 |
메모리 관리 기법
- 반입 기법
- 주기억장치에 적재할 다음 프로세스의 반입 시기를 결정
- 메모리로 적재 시기 결정
- WHEN : 요구 반입 기법, 예상 반입 기법
- 배치 기법
- 디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정
- WHERE : 메모리 적재 위치 결정
- 할당 기법
- 실행 할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지
- HOW : 메모리 적재 방법 결정
- 교체 기법
- 재배치 기법으로 어떤 프로세스를 제거할 것인지 결정
- WHO : 메모리 교체 대상 결정
- FIFO, Optimal, LRU, LFU, MFU, 시계 알고리즘
메모리 배치 기법
- 최초 적합 : 가용 공간 중 첫 번째 분할에 할당하는 방식
- 최적 적합 : 가용 공간 중 가장 크기가 비슷한 공간을 선택
- 최악 적합 : 가용 공간 중 가장 큰 공간에 할당