본문 바로가기
컴퓨터공학기초 개념/시스템 프로그래밍

4. 리눅스의 기본구성

by devraphy 2021. 9. 6.

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에 대한 권한 설정이 가능하다.

댓글