Operating System
- user와 하드웨어 사이의 사용을 쉽게 해주는 program
- multi system을 사용한다.
- process / scheduling
- process : 실행 중인 program
- scheduling : 1개의 process가 빠른 속도로 처리하기 위해 순서를 정해주는 것
- OS 실행영역과 APP이 실행되는 영역이 다르다.
- kernel space는 다른 것이 침범할 수 없는 영역이다.
UNIX
- 1969년 Bell 연구소의 Ken Thompson과 Dennis Ritchie에 의해 개발되었다.
UNIX의 철학
- 단순하게 만든다. → 각 program이 1개의 일을 한다.
→ 각 prototype을 빨리 만들 수 있다.
- 효율성보다 이식성을 중요시한다. → 많은 기기에 OS를 탑재하게 한다.
- shell script 기능이 있다.
- 사용자의 입력개입(Capative user interface)를 피한다.
→ 그 때 그 때 답장을 한다.
shell : OS에 명령을 내리는 창고와 같은 역할
System Call : OS가 제공하는 function
Kernel
- Linux 운영 체제(OS)의 주요 구성 요소로, 컴퓨터 하드웨어와 프로세스를 이어주는 핵심 인터페이스
Kernel의 역할
- process, File, Memory, Device 등을 관리한다.
- 시스템을 호출한다.
System Call vs Library Call

1. System Call
- Resource Access를 위해 커널 모드로 들어가려고 프로그램이 커널에 요청하는 것.
2. Library Call
- 프로그램이 프로그래밍 라이브러리에 정의된 기능을 Access하기 위한 요청
Shell
- user interface를 처리하는 system
- program, file을 관리
- program을 실행
- login 할 때 shell의 상호작용 : command 기록, 편집, 확장 등
- Shell도 커널에 종속되어 있지만 독립적인 프로그램이다.
Linux Command

- command, options/flags, parameter로 구분한다.
- command : 명령어
- options/flags : -X, --longname
- parameters : 보통 files, string으로 command에 따라 사용이 달라진다.
Linux 기본 명령어
- pwd : 현재 working directory를 출력
- cd : 입력한 working directory로 이동
- cat : file의 내용을 stdout에 출력
- chmod : file의 접근권한을 변경
- vi : file을 생성/편집
- ls : 현재 directory의 내용을 출력
- rm : file 제거
- mv : file 이름 변경
- cp : file 복사
- touch : empty file 생성
- mkdir : directory 생성
- rmdir : directory 제거
- passwd : user password 변경
- split : file 분할
Linux File System

Home directory
- user에게 할당된 directory
- user가 처음 로그인 했을 때 현재 directory
- 보통 /home 아래에 존재하고, root로도 표현
File/Directory Path
1) Absolute path (절대 경로)
- root부터 현재 위치까지를 모두 표현한다.
- e.g. /home/avr/java/Go.java
2) Relative path (상대 경로)
- 현재 위치로부터 상대적으로 나타낸 경로
- 현재 위치를 잘 파악하고 있어야한다.
- . : 현재 아래의 directory
e.g. ./java
- .. : 현재 하나 위에 있는 directory
e.g. ../include
- tild ('~') : user의 홈으로 간다.
e.g. cd ~
File Permission

- File/Directory는 owner, group, others로 권한 설정을 한다.
- 개별적으로 read, write, execute의 권한을 가지게 된다.
Permission을 바꾸는 방법
1) chmod [permission][filename]

- permmit : 1 / not permit : 0
- e.g. chmot 774 myFile.txt