1. 리눅스와 파일
a) 모든것은 파일이다.
- 리눅스는 모든 것은 파일이라는 철학을 따른다.
- 컴퓨터에 존재하는 모든 인터렉션과 데이터는 파일처럼 읽고 쓰는 것으로 이루어져 있기 때문이다.
- 마우스, 키보드와 같은 디바이스 또한 파일로 취급된다.
b) 파일 네임스페이스
- A 드라이브(A:/), C 드라이브(C:/)를 사용하지 않고,
- 루트 디렉토리(~ 또는 /)를 사용하는 전역 네임 스페이스를 사용한다.
- 즉, 모든 데이터의 경로가 루트 디렉토리로부터 시작한다.
c) 파일은 inode방식으로 관리된다.
- 리눅스의 모든 파일은 inode 고유값과 자료구조에 의해 관리된다.
2. 리눅스와 프로세스
a) ELF(Executable and Linkable Format)
- 리눅스는 ELF라는 실행파일 포멧을 사용한다.
- ELF는 리눅스에서 데이터를 읽는 방식, 메모리에 올리고 꺼내는 방식 등
- 운영체제가 데이터를 운영하는데 필요한 원초적인 규칙을 정의한 것이다.
b) 다양한 시스템 리소스
- 리눅스는 다른 OS와 다르게, 프로세스 레벨에서 다양한 시스템 자원을 처리할 수 있도록 설계되었다.
- 즉, 프로세스 레벨에서 시스템 콜을 통해 시스템 자원을 처리할 수 있다.
- 그러므로 타이머, IPC 기법, 시그널, 파일, 네트워크, 디바이스 등 다양한 자원을 처리할 수 있다.
c) 가상메모리 지원
- 기본적으로 가상 메모리를 사용할 수 있도록 설계되어 있다는 의미다.
d) 각 프로세스는 pid 고유값으로 구분한다.
e) init 프로세스
- 리눅스를 사용하는 컴퓨터가 부팅될 때, 가장 첫번째로 실행되는 프로세스
- init 프로세스를 기반으로 fork()라는 시스템 콜을 이용해 신규 프로세스가 생성된다.
- 그러므로 각 프로세스간의 부모/자식 관계를 형성할 수 있다.
3. 리눅스와 권한
a) 운영체제는 사용자와 자원의 권한을 관리한다.
b) 리눅스는 사용자와 그룹 단위로 권한을 관리한다.
c) root는 최상위 관리자를 의미한다.
- 해커들이 서버를 해킹하는 방법 중 하나가 root 관리자의 권한을 얻는 것이다.
d) 파일마다 소유자, 소유자 그룹, 모든 사용자에 대한 권한을 관리한다.
- 사용자, 그룹, 소유자의 권한에 따라 파일에 대한 접근 및 조작(CRUD)에 대해서 권한을 관리한다.
- 파일의 접근 권한 정보는 inode에 의해 관리된다.
- 즉, 사용자에 따라 접근할 수 있는 파일이 달라진다.
4. 요약정리
- 리눅스는 모든 리소스를 파일로 관리한다. (inode 방식 사용)
- 리눅스의 프로세스
- ELF 포멧 사용
- 시스템 콜 기반의 리소스 처리가 가능하도록 설계됨
- 가상메모리 사용
- pid 기반 프로세스 구분
- init 프로세스를 기반으로 fork()를 사용한 프로세스 생성 - 리눅스 사용자(로그인 사용자/그룹) 권한 관리
- 리눅스는 소유자, 소유자 그룹, 모든 사용자에 대한 리소스 접근 및 리소스 CRUD에 대한 권한 설정이 가능하다.
'컴퓨터공학기초 개념 > 시스템 프로그래밍' 카테고리의 다른 글
6. shell - 파일 권한 및 관리(1) (0) | 2021.09.07 |
---|---|
5. shell - 다중 사용자 (0) | 2021.09.06 |
3. AWS EC2 - IP생성 및 서버접속 (0) | 2021.09.03 |
2. AWS EC2 - 인스턴스(서버) 생성하기 (0) | 2021.09.03 |
1. 리눅스의 배경 (0) | 2021.09.03 |
댓글