일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Git
- Samsung
- 커널 프로그래밍
- 포트 번호 변경
- USENIX
- Intel
- 시스템 소프트웨어
- Flash Memory
- storage system
- memory
- performance
- ssd
- 시스템 프로그래밍
- software
- rocksdb
- 키워드
- Cache
- hardware
- core dumped
- framework
- deep learning
- linux
- github
- Operating System
- overflow
- Machine Learning
- kernel
- FTL
- Today
- Total
Happy to visit my research note ^^
about linux directory 본문
Linux CentOS, Ubuntu 등 OS를 사용하면서 알아야할 directory의 구조에 대해 알아보자. Linux는 Tree 구조로 되어있고 명령어의 성격과 내용 및 사용 권한 등에 따라 directory로 구분되어 있다.
/ (root) :
- 최상위(root) directory
- directory들의 절대 경로를 표기할 때 해당 directory부터 시작한다.
/bin (binary) :
- binary file(executable file)
- 기본적인 명령어 저장 (linux operation중에 mv, cp, rm 같은 명령어)
/boot (boot) :
- linux의 boot loader가 있는 directory ( Linux 나 OS가 컴퓨터에 부팅될 때 가장 먼저 실행되는 software program)
- 즉, booting에 핵심적인 kernel image와 booting 정보 file을 담고있다.
- /etc/lilo.conf에서 지정한 kernel booting image file이 들어있고 부팅시 매우 중요
+ boot loader의 기능 :
1. system 초기화 (HW & firmware를 초기화하고 system check),
2. OS 선택 : multi-booting 환경에서 user에게 여러 OS중에서 선택할 수 있는 옵션 제공,
3. kernel load : 선택된 OS의 kernel을 disk로부터 memory로 load
4. kernel execution : load된 kernel에 제어를 넘겨서 OS의 booting을 계속한다.
5. kernel parameter 전달 : booting 과정에서 필요한 parameter나 module을 kernel에 전달한다.
/dev (device) :
- system device file을 저장
- /dev/sda (hard disk device file), /dev/cdrom (CD-ROM) device file같은 device file들이 여기에 있다.
- physical device가 file 의 형태로 저장
/etc :
- 설정 파일이 있다.
- system 환경 설정 파일이 있다.
- network 관련 설정 파일, 사용자 정보 및 암호정보, file system 정보, 보안 파일, 시스템 초기화 파일 등 중요한 설정 파일들이 있다.
/home :
- user들의 home directory가 있는 곳
- user를 추가하면 user id와 동일한 directory가 여기에 자동 생성
/lib (library) :
- kernel이 필요로 하는 각종 library file, kernel module file 등이 있음
- 대부분 library들은 링크로 연결되어 있다.
/media :
- DVD, CD_ROM, USB 등 protable한 (탈부착 가능한) device들의 mount point로 사용하는 곳
/mnt (mount) :
- system 관리자가 수동으로 file system을 일시적으로 mount하는데 사용된다.
- 장치를 mount할 때 일반적으로 사용한다.
/opt :
- application package 설치 장소
- package manager가 자체적으로 설치/삭제를 수행한다.
/proc (process) :
- virtual file system이라고 하는 곳으로 현재 memory에 존재하는 작업들이 file 형태로 존재
- system의 각종 processor, program info, hardware적인 정보들이 저장
- virtual file system으로 /dev directory와 마찬가지로 hard disk상에 물리적인 용량을 갖지 않는다.
- 실제 HDD에 저장되지 않고 kernel에 의해서 memory에 저장
- /proc/cpuinfo (cpu 정보 확인 가능)
/root (root)
- 관리자 계정 root 사용자의 home directory
- super user(root) 의 home directory
- / 와 /root 는 이름은 같지만 다르다.
/sbin (system binary) :
- system binary file (실행 파일) , system 점검, 복구 명령, 초기화, 종료 등 시스템 관리에 관련된 실행파일이 있다.
- ifconfig, ethtool, halt, e2fsck 같은 system 명령어를 저장
/usr (user) :
- 일반 사용자들이 사용하는 directory
- /usr/bin : application의 실행 파일 위치
- /usr/sbin : 주로 네트워크 관련 실행 명령어와 실행 데몬들을 많이 포함
- /usr/include : 기본 C library header file과 각종 library header file들이 있다.
- /usr/lib : /usr/bin 과 /usr/sbin에 있는 실행 바이너리를 실행하기 위한 라이브러리가 있다.
- /usr/src : program source 및 kernel source들이 보관
- /usr/man : menual page가 있다.
- /usr/local : 새로운 program들이 설치되는 곳 (windows의 program Files와 유사하다.)
/var :
- system 운용중에 생성되었다가 삭제되는 데이터를 임시 저장하는 공간
- 주로 system 작동 기록 log들을 저장
- 각종 시스템 log file, user login에 대한 보안 기록
- /var/log : system에 발생된 일들에 대한 log file
- /var/named : nameserver 설정 file들