프로그램이 어떤 과정을 거쳐 기계 수준에서 실행되는지
(해킹을 하기위한 기본지식으로 필요하다)
운영체제는 유저 애플리케이션과 하드웨서 간의 중계자 역할을 한다
OS Application
OS Hardware
조금 더 자세한 역할은 다음과 같다
여러 프로그램이 동시에 실행되는 것처럼 관리한다
스케줄링: 어떤 프로그램에 CPU를 먼저 줄지, 얼마나 줄지 결정한다
생성 및 소멸: 프로세스의 시작과 종료를 제어한다
동기화: 여러 프로세스가 공유 데이터에 접근할 때 충돌이 나지 않도록 순서를 조절한다
ram을 효율적으로 나누어 사용한다
공간 할당: 각 프로그램이 필요로 하는 적절한 메모리 주소를 할당한다
가상 메모리: 실제 메모리보다 더 큰 프로그램을 실행할 수 있도록 보조기억장치 일부를 메모리처럼 활용한다
보호: 한 프로그램이 다른 프로그램의 메모리 영역을 엿보거나 수정하지 못하게 차단한다
데이터를 영구적으로 저장하고 관리하는 방식을 정한다
파일 관리: 폴더(디렉터리) 구조를 만들고 파일을 생성, 삭제, 수정하는 기능을 제공한다
디스크 스케줄링: 데이터 저장 장치의 읽기/쓰기 헤드가 가장 효율적으로 움직이도록 경로를 최적화한다
하드웨어 장치들을 제어한다
장치 드라이버: 드라이버를 통해 OS와 장치가 소통하게 한다
인터럽트 처리: 키보드 입력같은 하드웨어 싵호를 처리한다
시스템 전체의 안전을 책임진다
접근 제어: 권한이 없는 사용자가 특정 파일이나 설정에 접근하는 것을 막는다
네트워크 관리: 외부와의 통신을 관리하고 방화벽 등을 통해 보안을 유지한다
linux는 unix기반 운영체제
(커널입니다)
프로그램이 하드웨어를 사용할 수 있는 중간 역할을 한다
70년대 만들어진 운영체제
메뉴얼
특정 경로의 바로 아래 경로들을 확인한다
(디폴트는 현재경로)
경로변경이다
디렉토리간 이동을 가능하게 해준다
파일을 생성합니다
(디폴트는 ./)
디렉토리를 만든다
파일, 디렉토리를 이동한다
읽는다
이름으로 파일, 디렉토리를 찾는다
리눅스에서 *은 미지수로 전부이다
./를 현재 위치로 나타낸다
예) ./file1
최상위 경로 / 부터 차례로 나타낸다
예) /home/user/Desktop/file1
read write execute
소유자 그룹 그 외로
rwxrwxrwx 이런식으로 나타난다
lrwxrwxrwx 1 root root 7 Apr 20 17:46 bin -> usr/bin
drwxr-xr-x 2 root root 4096 Apr 20 17:46 boot
drwxr-xr-x 15 root root 3840 May 9 16:30 dev
drwxr-xr-x 89 root root 4096 May 9 16:30 etc
drwxr-xr-x 3 root root 4096 May 6 16:04 home
-rwxr-xr-x 1 root root 2781568 Dec 12 10:58 init
```
* d 는 디렉토리 -은 파일