2월, 2017의 게시물 표시

리눅스 커널 파일시스템 기본 [1]

이미지
파일시스템이란 하드디스크, SSD, 플래시 메모리와 같은 저장장치 위에 파일과 디렉터리를 체계적으로 정리(organize)하는 방법을 말합니다. 파일시스템의 종류는 매우 다양합니다 (FAT, ext4, btrfs, NTFS 등). 그리고 한 대의 컴퓨터에서 같은 파일시스템 종류가 여러 개 동시에 사용될 수도 있습니다. 파일시스템마다 파일과 디렉터리, 사용자 데이터, 그리고 내부적으로 사용하는 메타데이터를 관리하는 방식이 서로 다르긴 하지만, 거의 모든 파일시스템에 공통적으로 사용되는 몇 가지 기본 개념들이 있습니다 (이 중 일부 개념은 저장장치(storage)와 메모리 양쪽에 존재하고, 일부는 메모리에만 존재합니다.): 슈퍼블록(superblock) : 해당 파일시스템의 기본 정보를 담고 있습니다. 예를 들어 블록 크기, 루트 아이노드, 파일시스템 전체 크기 같은 정보죠. 슈퍼블록은 저장장치와 메모리 모두에 존재하는데, 메모리에는 속도 향상을 위한 캐싱 용도로 복사되어 있습니다. 파일(file) :현재 열려있는 파일에 관한 정보(예: 현재 읽기 위치 등)를 담고 있는데, 이 정보는 메모리에만 존재합니다. 아이노드(inode) : 아이노드는 디스크에 저장된 파일을 고유하게 식별하는 역할을 합니다. 아이노드는 파일 크기, 접근 권한, 파일 종류 등 다양한 속성도 함께 가지고 있죠. 이 아이노드는 저장장치와 메모리 양쪽에 존재하며, 메모리에는 캐시 목적 등으로 복사되어 있습니다. 덴트리(dentry) : 덴트리(dentry)는 파일 이름과 아이노드(inode)를 연결하는 역할을 합니다. 덴트리 역시 저장장치와 메모리 양쪽에 존재하며, 메모리에는 캐싱 목적으로 복사되어 있습니다. struct ext4_inode 내부의 i_block에서 스토리지의 각 block들을 가리킨다. EXT4_N_BLOCKS 크기는 15로 ext4가 지원하는 데이터 블록 주소 지정 방식의 표준 크기이며, 이를 통해 작은 파일부터 아주 큰 파일까지 효율적으로 저장 위치를 관리할 수 있습니...

[Bash] 배시 기본 {06} - 사용자 환경 설정

사용자 환경 설정을 할 때 사용하느 배시의 네 가지 특징 1. 특수파일 - .bash_profile, .bash_logout, .bashrc 파일 2. Alias 3. 옵션 4. 변수 1. 특수파일 홈 디렉토리에 없을 경우 기본 시스템 파일인 /etc/profile 을 사용한다. .bash_profile이 없다면 .bash_login이나 .profile을 보자. 배시는 로그인 시에 .bash_profile이 없으면 .bash_login을 찾고 이 파일도 없으면 .profile을 찾는다. source 명령은 지정한 파일 안에 있는 명령을 실행한다. 2. Alias 앨리어스는 명령행, .bash_profile, .bashrc에서 정의할 수 있고 다음과 같은 형식으로 사용한다. alias name=command command의 앨리어스가 name이라는 뜻이다. name을 명령처럼 입력하면 배시는 실행할 때 command로 바꾼다. 등호 기호 좌우에 공백은 없다. 예시) alias search=grep 명령행에 치면 해당 셸에서만 search를 사용할 수 있다. 자주 이동하는 디렉토리를 위해서 추가할 수도 있다. 예시) alias cdvoy='cd sipp/demo/animation/voyager' 두 단어 이상일 때는 작은 따옴표로 묶는다. 3. 옵션 set -o 를 입력하면 옵션 상태를 볼 수 있다. set -o optionname -> 옵션을 켠다. set +o optionname -> 옵션을 끈다.(+와 -의 의미가 다르다) shopt는 환경변수와 set명령을 사용해서 만든 옵션 구성을 바꾸는데 쓰인다. 4. 셸 변수 셸 변수는 내장된 것도 있고 셸 프로그래머가 자신만의 셸 변수를 추가할 수도 있다. 변수 정의 문법은 다음과 같다. varname=value 등호 기호 좌우로 공백이 없어야 하고 값이 두 워드 이상일 때에는 인용부호로 묶는다. 어떤 명령에 지정한 변수 값을 사용...