0. 시작하기전에
- 이전 포스팅에서 리눅스 파일 시스템에 대해서 알아보았다.
- 가장 중요한 부분은 모든 자원(데이터, 디바이스, etc)을 파일로 취급하여 다룬다는 것이다.
- 파일 시스템은 다양한 외부장치 또는 디바이스도 파일로서 처리하는데,
- 이것이 가능한 이유는 추상화(abstraction)을 통한 가상파일시스템 인터페이스를 이용하기 때문이다.
- 추상화라는 개념을 어려워 할 것 같은데, 추상화란 복잡한 기능이나 데이터의 공통적인 특성을 구조화(uniformation) 시킨 것이다.
- 추상화를 사용하면 기본적으로 제공되는 기능이 있고, 세부적으로 customize 또는 optimize를 하고 싶다면
- 추가적으로 코드를 작성하여 기능을 수정할 수 있다.
1. 파일과 inode
- 리눅스는 모든 자원을 파일로 취급하여 다룬다.
- 그리고 inode라는 파일 시스템 형식을 사용하여 각 파일을 구분한다.
- 그렇다면 리눅스는 어떻게 파일을 탐색할까?
a) dentry(directory entry)
- 리눅스는 모든 자원에 대해서 전역 네임 스페이스를 사용한다.
- 전역 네임 스페이스는 모든 자원이 root directory 부터 시작되는 파일경로를 갖는다는 것이다.
- dentry에는 다양한 정보다 들어있다.
- dentry에는 파일명, 파일의 inode 번호, 파일이 속해있는 디렉토리 등이 매핑되어 있다.
- 그러므로 dentry를 통해서 어떤 디렉토리에 어떤 파일 또는 디렉토리가 존재하는지 알 수 있다.
- 이처럼 dentry를 사용하여 파일의 위치를 탐색할 수 있다.
b) 리눅스의 일반적인 파일구조
- 당연히 환경에 따라 다른 디렉토리가 존재할 수 있다.
- 아래의 그림은 리눅스가 가지고 있는 일반적인 디렉토리 구조이므로, 한번 훑어보는 것을 추천한다.
▶ home 디렉토리
- 유저를 생성하면 자동적으로 home 디렉토리 내부에 username으로 된 디렉토리가 생성된다.
- 유저가 로그인을 하면 /home/username 의 경로가 최초 시작점이 된다.
▶ media 또는 mnt 디렉토리
- 추가적인 저장매체가 컴퓨터와 연결되거나 마운트 작업을 통해 저장공간이 분리되는 경우,
- media 또는 mnt 디렉토리와 연결된다.
▶ etc 디렉토리
- 다양한 설정 파일이 위치하는 디렉토리
▶ dev 디렉토리
- 외부장치가 연결되면 dev 디렉토리 내부에 파일형식으로 구성된다.
▶ bin 또는 sbin 디렉토리
- shell 명령어의 실행파일이 존재하는 디렉토리
- path 설정을 위한 파일이 여기에 존재한다.
* path 설정이란?
- 리눅스는 어떤 파일을 실행시키기 위해 해당 파일의 전체 경로를 입력해야한다.
- 실행 명령어와 함께 파일의 경로를 path 설정파일에 미리 등록해놓으면, 경로없이 파일이름 또는 실행명령어 하나로 실행할 수 있다.
▶ /var/log 디렉토리
- 현업에서 서버의 로그기록을 파일 형태로 저장되는 디렉토리
'컴퓨터공학기초 개념 > 시스템 프로그래밍' 카테고리의 다른 글
14. shell - 소프트링크와 특수파일 (0) | 2021.09.10 |
---|---|
13. shell - 하드링크 (0) | 2021.09.10 |
11. shell - 리눅스 파일 시스템 (0) | 2021.09.09 |
10. shell - 프로세스 관리 및 제어 (0) | 2021.09.09 |
9. shell - foreground & background 프로세스 (0) | 2021.09.09 |
댓글