76
5. 파파파파파 , 파파 파파 , 파파 파파 파파

5. 파일시스템 , 스왑 영역 , 장치 파일 관리

  • Upload
    elewa

  • View
    110

  • Download
    11

Embed Size (px)

DESCRIPTION

5. 파일시스템 , 스왑 영역 , 장치 파일 관리. 1. 파일시스템 (file system) 관리. - File system 이란 ?. 파일과 그 안에 든 자료를 저장하고 찾기 쉽도록 유지 , 관리 하는 방법을 말함 OS 별로 지원하는 파일 시스템의 종류가 다름 간단하게 컴퓨터가 저장 장치에 파일을 저장하는 형식 플로피디스크 , CD-ROM, 하드 드라이브 와 같이 random access 를 지원하는 저장 매체에 파일 시스템이 필요함. Block & Sector. - PowerPoint PPT Presentation

Citation preview

Page 1: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

5. 파일시스템 , 스왑 영역 , 장치 파일 관리

Page 2: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

1. 파일시스템 (file system) 관리

Page 3: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

- File system 이란 ?• 파일과 그 안에 든 자료를 저장하고 찾기 쉽도록 유지 , 관리하는 방법을 말함• OS 별로 지원하는 파일 시스템의 종류가 다름• 간단하게 컴퓨터가 저장 장치에 파일을 저장하는 형식• 플로피디스크 , CD-ROM, 하드 드라이브 와 같이

random access 를 지원하는 저장 매체에 파일 시스템이 필요함

Page 4: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

Block & Sector•sector : 하드디스크에서 데이터를 저장하는 최소 단위

▫일반적으로 512byte, 최근 4096byte 로 표준이 확장•block : 파일시스템에서 파일을 저장하는 최소 단위

▫Sector 의 정수 배의 크기를 가짐▫file system 을 설정할 때 block 크기를 결정할 수 있음

Page 5: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리
Page 6: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파일 시스템의 동작 원리•파일 시스템에 inode block 과 data block 이 있는데 , inode block 에는 파일들이나 디렉토리들의 메타 데이터가 , data block 에는 내용이 들어있다•파일은 inode block 에 해당 파일의 data block 위치 , 접근 권한 정보 , 소유자 정보 등을 저장하고

data block 에는 실제 파일 내용을 저장한다

Page 7: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파일 시스템의 동작 원리•디렉토리 역시 inode block 에는 해당 디렉토리의

data block 위치 , 접근 권한 정보 , 소유자 정보 등을 저장하며 data block 에는 해당 디렉토리에 속하는 파일의 이름과 inode block 의 위치 목록을 저장한다

Page 8: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리
Page 9: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리
Page 10: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파일 시스템의 동작 원리•일반적으로 inode block 에서 data block 을 가리키는 포인터의 숫자는 고정되어 있는데 , 그렇다면 data block 이 많이 필요한 , 크기가 매우 큰 파일에 대해서는 어떻게 될까 ??

Page 11: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파일 시스템의 동작 원리•그 경우 inode block 의 포인터들은 빈 data

block 을 가리키고 그 data block 안에 포인터들을 배치시켜서 파일의 data block 들을 가리키게 할 수 있는데 , 이를 single indirect 라 한다•data block 의 포인터들이 다른 data block 들을 가리키고 , 거기서 가리켜진 data block 들의 포인터들이 파일의 실제 data block 들을 가리키면 이는 double indirect 이다

Page 12: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리
Page 13: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파일 시스템의 종류< 윈도우 >•FAT16•FAT32•NTFS< 리눅스 >•EXT•EXT2•EXT3•EXT4

Page 14: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

FAT16•MS-DOS 를 개발할 당시 사용하던 파일 시스템•윈도우 95~2000 등에서 사용•대부분 MS OS 에서 호환•하나의 파티션으로 최대 2GB 밖에 설정 못함•보안 , 암호화 , 압축 기능 지원 X•16 ? >> 한 클러스터 조각 단위가 2^16•영문 8 문자 ( 한글 4 문자 ) 까지의 파일이름 제한

Page 15: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

FAT32•FAT 파일 시스템을 보강한 파일 시스템•2GB -> 2TB 까지 지원•영문 256 문자 까지 파일 이름 지원•보안 , 암호 , 압축 안됨

Page 16: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

FAT 장단점< 장점 >•호환성•단순성•저용량 볼륨에 최적화< 단점 >•보안에 취약•대용량 볼륨의 비효율적 이용

Page 17: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

NTFS•NT 만을 위해서 만들어진 NT 전용 파일 시스템•대용량 하드지원 , 보안 암호화 또한 지원•별도의 압축 프로그램 없이도 파일과 폴더 압축 가능•파일 접근 속도 최적화 , 이론적으로 거의 무제한의 하드 디스크 공간관리•파일수준의 보안 , 충돌 보호 , 실시간 압축 등 지원

Page 18: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

EXT- 리눅스에서 지원하는 파일시스템•ext2

▫과거에 리눅스 시스템에 널리 사용되었으나 ext3 로 대체되어 가고 있음•ext3

▫ext2 와 비슷하나 저널링을 지원

Page 19: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

저널링이란 ?•파일 시스템에 가해진 변경 사항들을 기록해 두는 기술로 , 파일 시스템의 복구를 쉽게 만들어준다•저널링이 적용된 파일 시스템으로는 ext3, ext4,

XFS, ResierFS 등이 있다

Page 20: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

저널링의 동작 원리•저널링을 위해 새로운 자료 구조인 저널이 이용된다•파일 시스템 드라이버는 파일의 메타 데이터를 변경하기 전에 해당 사항을 저널에 기록한다•파일 시스템이 마운트된 상태에서 정전 등의 사태가 발생하면 메타 데이터에 문제가 발생할 수 있다

Page 21: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

EXT3 에서 지원하는 저널링•Journal( 리스크 최소 ) – 메타데이터 , 내용 모두•Ordered( 리스크 중간 ) – 메타데이터만 기록

Commited/not Commited

•Writeback( 리스크 높음 ) – 메타데이터만 기록

Page 22: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•저널링 방식 확인▫# sudo dmesg | grep EXT

•저널링 모드를 변경▫# tune2fs -o journal_data_writeback /dev/

sdX

Page 23: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

EXT• ext4

▫ext3 의 64 비트 버전▫하위 디렉토리 제한 (ext3 에서 32000 개 ) 없음▫할당 지연 기능 지원

데이터를 기록할 때 해당 데이터를 위해 빈 공간의 크기는 그만큼 줄어든 것으로 생각하지만 , 어떠한 블록에 기록할지는 결정하지 않는다 조금씩 크기가 커지는 파일이 여러 조각으로 나뉘어 저장되는 것을 방지한다 . 금방 사라지는 임시 파일들에 대해서는 디스크 블록이 할당되지 않기 때문에 할당 해제 작업도 필요하지 않다

Page 24: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

그 외• XFS

▫ 저널링을 사용하는 64 비트 파일 시스템▫ 디스크를 쓰기보다는 메모리상에 많은 데이터를 캐시함 . 특히 큰 파일을 주로 다루는 시스템에서 좋다▫ 할당 지연 기능 지원

• ReiserFS▫ 저널링을 지원한 최초의 파일 시스템▫ 초기에는 metadata 에 대한 저널링만 지원하였음

• NFS▫ Network File System 으로 뒤쪽의 휠 세미나에서 다뤄질 예정이다

Page 25: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

File system 의 선택에 따라 달라지는 것•block size•maximum 파일명 길이•maximum 파일 크기•maximum 파일 시스템 크기•저장되는 metadata 의 종류•안정성•등등

Page 26: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파티션 (partition)?•하드 디스크를 나누어 놓은 구획•하나의 물리적인 하드디스크를 논리적으로 여러 개의 저장소인 것처럼 취급•primary partition•extended partition•logical partition

Page 27: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

MBR•물리적 하드디스크의 첫 512byte

•이 중 16byte 는 primary partition table 를 표현하는데 사용•이 table 은 최대 4 개의 entry 를 가질 수 있음

Page 28: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

primary partition•실제 디스크를 직접적으로 나눈 파티션•MBR 의 구조 때문에 하나의 디스크에 최대 4 개의

primary partition 을 가질 수 있음•4 개 이상의 partition 을 만드려면 logical par-

tition 을 이용해야 함

Page 29: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

extended / logical partition•하나의 디스크에는 최대 하나의 extended parti-

tion 을 가질 수 있음•하나의 extended partition 은 여러 개의 logi-

cal partition 을 담는 그릇•한 디스크에 만들 수 있는 partition 의 최대 개수는 제한되어 있음

Page 30: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

logical vs primary partition•logical partition 과 primary partition 의 속도 차이는 없음•primary partition 에만 설치 가능한 OS 도 있음•보통 많은 수의 partition 이 필요한 경우

▫3 개의 primary partition + 1 개의 extended partition(which includes many logical parti-tions) 와 같이 구성함

Page 31: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파티션과 파일 시스템의 관계•하나의 파일 시스템은 하나의 파티션 위에 얹어져 , 해당 파티션 내의 파일과 디렉토리를 관리하는 역할을 하게 된다

Page 32: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파티션이 가지는 장점•안정성

▫어떤 한 파티션의 파일 시스템에 손상이 가더라도 , 다른 파티션의 파일 시스템에는 보통 문제가 없다▫물론 , 시스템 백업을 충실히 한다면 위와 같은 점은 큰 문제가 되지 않는다

Page 33: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파티션이 가지는 장점•업그레이드 용이

▫리눅스를 업그레이드할 때 , /home 디렉토리에 데이터를 보관시키고 나머지 파티션들에 대해서 업그레이드를 진행할 수 있다•저장 매체가 여러 개인 경우

▫저장 매체가 2 개 이상인 경우 , 이를 하나로 묶어 하나의 파일 시스템을 설정할 수도 있지만 , 여러 개의 파일 시스템으로 각각 설정하는 것도 가능하다

Page 34: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파티션의 단점•디스크 자원 전체를 사용하지 못하는 경우가 생김

▫ex) C: 에 1GB, D: 에 1GB 빈 공간이 남았는데 1.5GB 크기의 영화 파일을 저장하고 싶은 경우

•같은 디스크라도 다른 파티션간에는 파일 이동이 파일 복사와 같은 작업을 하게됨▫같은 파티션 내에서는 파일 내용은 그대로 두고 위치 정보만 바꾸면 됨

Page 35: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

현재 리눅스에서 쓰이고 있는 파일 시스템은 ?•/proc/filesystems 파일을 열어보면 현재 리눅스 커널에 어떠한 파일 시스템이 마운트되어 있는지 그 종류들을 볼 수 있다•$ cat /proc/filesystems

Page 36: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•파일 시스템 이름들 앞에 붙어있는 ( 안붙은 것도 있음 ) “nodev” 는 그 파일 시스템 장치 ( 파일 시스템은 장치로 관리됨 ) 가 실제 장치를 필요로 하지 않는다는 것을 의미한다

Page 37: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

partition 및 file system 관리•파일 시스템 상태 보기

▫df•파티션 설정

▫fdisk•파일시스템 설정

▫mkfs•장치 마운트 / 언마운트

▫mount/umount•파일 시스템 점검 / 복구

▫fsck

Page 38: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파티션 설정 (fdisk)•리눅스 시스템의 장치 파일들은 /dev 에서 볼 수 있는데 , IDE 형식의 하드디스크는 /dev/hda, /

dev/hdb, /dev/hdc, … 와 같이 지정되고 S-ATA 형식의 하드디스크는 /dev/sda, /dev/sdb, /dev/sdc, … 와 같이 지정된다

Page 39: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파티션 설정 (fdisk)•이러한 물리적인 디스크에 파티션이 생성되면 그 장치 파일 뒤에 1번부터 번호가 붙은 이름으로 파티션에 해당하는 , 가상의 장치의 파일이 생성된다•예를 들어 /dev/hda 에 대해 파티션 두개를 만들었다면 /dev/hda1, /dev/hda2 로 지정된다

Page 40: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파티션 설정 (fdisk)•# fdisk –l [ 디스크 장치 ]

▫해당 디스크의 파티션 테이블을 보여준다▫장치를 지정하지 않으면 시스템의 파티션 테이블을 보여준다

•# fdisk –s [ 파티션 장치 ]▫해당 파티션의 크기를 블록 ( 파일 시스템에서의 용량 관리 단위 ) 단위로 보여준다

Page 41: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파티션 설정 (fdisk)• # fdisk [ 디스크 장치 ]

▫해당 디스크에 대해서 파티션 설정을 한다▫명령어 종류

a: 부트 플래그 설정 ( 설정시 파티션 테이블에서 Boot 항목에 * 표시됨 ) b: bsd 디스크 레이블 편집 c: 도스 호환 여부 플래그 설정 d: 파티션 삭제 l: 알려진 파티션 형태의 목록 출력 m: 도움말 출력 n: 파티션 생성 o: 새로운 도스 파티션 테이블 생성

Page 42: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

p: 파티션 테이블 출력 q: 변경 사항을 저장하지 않고 종료 s: sun 디스크 레이블 생성 t: 파티션의 시스템 아이디 변경 u: 표시 및 엔트리 단위 변경 (섹터 / 실린더 ) v: 파티션 테이블 점검 w: 변경 사항을 저장하고 종료 x: 추가적인 기능들

Page 43: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파일시스템 설정•#mkfs [ 파티션 장치 ]

▫-c : 배드섹터 검사▫-t 파일 시스템 타입 : 해당 파일 시스템 타입으로 포맷▫ex) mkfs –c –t ext3 /dev/sda2

Page 44: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

파일시스템 설정•각 파일시스템은 자신과 관련된 고유의 mkfs명령을 가지고 있다 .

▫ex) mkfs.msdos, mkfs.ext3▫mkfs 는 이러한 것들의 frontend 일 뿐

•mkfs.ext3 –c /dev/sda2

Page 45: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

장치 마운트 /언마운트 하기 (mount/umount)•리눅스에서 어떤 파일시스템에 접근하려면 , 먼저 어떤 디렉토리에 해당 파일 시스템을 연결시켜야 한다 .

•이러한 연결 작업을 마운트라 하며 파일시스템의 파일들이 마치 그 디렉토리에 있는 것처럼 보인다 .

•따라서 마운트 (mount) 라는 연결 작업을 거쳐야만 사용 가능하다

Page 46: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•# mount▫현재 마운트되어 있는 정보 출력

•# mount –t [ 파일 시스템 타입 ] [ 파티션 장치 ] [ 마운트 포인트 ]▫파일 시스템 타입에는 앞서 mkfs 로 해당 파티션에 만들었던 파일 시스템 타입을 써야 한다▫마운트 포인트에는 해당 파티션이 어떠한 디렉토리에 대응될 것인지를 나타내야 한다

장치 마운트 /언마운트 하기 (mount/umount)

Page 47: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•# mount –t type device mount-point▫ex) mount –t ext3 /dev/sda2 /mnt▫ext3 로 포맷된 /dev/sda2 를 /mnt 라는 디렉토리에 연결시키는 명령▫해당 디렉토리는 먼저 만들어두어야 한다 .

장치 마운트 /언마운트 하기 (mount/umount)

Page 48: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•# mount –a▫부팅시 자동으로 실행▫/etc/fstab 파일에 “ auto”옵션을 가진 모든 파일시스템들을 마운트 시킨다

장치 마운트 /언마운트 하기 (mount/umount)

Page 49: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

장치 마운트 /언마운트 하기 (mount/umount)•# umount device or•# umount mount-point

•해당 파일 시스템을 언마운트 시킴•CD-ROM, 플로피디스크의 경우 언마운트를 시켜줘야 안전하게 제거가 가능함

Page 50: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•파일 시스템이 정상 상태인지를 검사하고 , 오류가 있을 경우 복구한다•fsck 도 mkfs 와 마찬가지로 각각의 파일 시스템들이 가지고 있는 고유의 fsck 들을 호출해주는 녀석에 불과하다

파일 시스템 점검 및 복구 (fsck)

Page 51: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•# fsck [옵션 ] [ 파티션 장치 ]▫옵션

-a: 에러가 발견되면 자동으로 복구 -r: 에러가 발견되면 복구 여부를 묻는다 ( 반드시 – s 와 함께 써야 함 ) -s: 병렬적이 아닌 순차적인 방법으로 검사한다 -V: 각종 정보를 자세히 보여준다 -N: 실제로 검사를 하지는 않고 어떻게 될 것인가만 보여준다 …이 외에도 많은 옵션이 있다

파일 시스템 점검 및 복구 (fsck)

Page 52: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•일반적으로 fsck 를 이용하여 파일시스템을 점검하려면 해당 파일시스템을 언마운트 시킨 상태에서 수행하는 것이 좋다 .

•루트 파일시스템의 경우 언마운트가 불가능하므로 부팅 디스크를 이용하거나 GRUB 부트로더에서 읽기전용 , 단일 사용자 모드로 부팅하여 수행할 수 있다 .

파일 시스템 점검 및 복구 (fsck)

Page 53: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

그 외• $ df [옵션 ]

▫사용중인 파일 시스템들의 전체 용량 , 사용량 , 사용 가능량 , 사용률 , 마운트 포인트 등의 정보를 보여준다▫df 는 /etc/fstab 에서 파일 시스템 정보를 , /etc/mtab에서 마운트 정보를 참조하여 보여주는 것이다▫옵션

-h: 사람이 보기 쉬운 용량 단위를 사용하여 보여준다 -a: 크기가 0 인 파일 시스템 ( 예를 들면 proc 과 같은 가상 파일 시스템 ) 들까지 모두 포함하여 출력한다 -T: 파일 시스템 타입을 함께 보여준다 …그 외에도 많은 옵션들이 있다

Page 54: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

2. 스왑 영역 관리

Page 55: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

스왑 (swap) 공간이란 ?•디스크의 공간을 사용하여 물리적 메모리의 부족을 해결하는 용도로 사용하는 공간이다•디스크의 특성상 속도가 느리기 때문에 , 시스템에 로드되어 있지만 현재는 사용되고 있지 않은 프로그램들을 적재하는 등의 용도에 쓰인다

Page 56: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

스왑 공간 할당 방법•스왑 공간을 할당하는 방법에는 두 가지가 있다 .

▫swap file▫swap partition

Page 57: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•스왑 파티션이 더 빠르다▫디스크 블록이 연속적이기 때문▫반대로 스왑 파일을 사용하면 디스크 블록이 파일시스템 여러 곳에 흩어져 있을 수 있음

스왑 공간 할당 방법

Page 58: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

스왑 영역 관리•메모리 사용 상황 보기 (free)

•스왑 영역 만들기 (mkswap)

•스왑 영역 활성화 / 비활성화 (swapon/swapoff)

Page 59: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

• $ free▫물리적인 실제 메모리나 스왑 영역을 포함하여 시스템상의 메모리 사용 현황을 보여준다▫각 열은 차례대로 [총 메모리 양 ] [ 사용된 메모리 양 ] [ 빈 메모리 양 ] [ 공유되는 메모리 양 ] [ 버퍼 캐시의 크기 ]

[ 커널이 캐시한 메모리 페이지 양 ] 을 나타낸다▫여기에 표시되는 모든 수치는 KB( 메모리 상에서의 1024 블록 ) 단위이며 , -m 옵션을 주면 MB 단위로 볼 수 있다▫물리적인 메모리는 커널이 사용하는 양을 제외한 양이 나온다

메모리 사용 상황 보기 (free)

Page 60: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•버퍼 , 캐시로 사용 중인 메모리는 필요하면 appli-cation 에서 요청하여 사용할 수 있음

•used : application 이 사용하고 있는 메모리 양▫Mem 의 used – (buffers + cached)

•free : application 이 사용할 수 있는 메모리 양▫Mem 의 free + (buffers + cached)

메모리 사용 상황 보기 (free)

Page 61: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•스왑 영역을 지정하기 위해서는 스왑 파티션이나 파일이 먼저 만들어져 있어야 한다•스왑 파티션의 경우 앞서 소개한 fdisk 를 이용해 만들 수 있다

스왑 영역 만들기 (mkswap)

Page 62: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

• 스왑 파일은 원하는 용량만큼의 파일을 만들면 되는데 , 쉬운 방법으로는 dd 명령어를 이용할 수 있다• $ dd if=/dev/zero of=swapfile bs=1024

count=102400• 이 명령어는 /dev/zero 에서 100MB 를 swapfile 파일에 써넣는 것이다• /dev/zero 는 항상 빈 널 (null) 바이트를 돌려주는 장치이다• 이를 하고 나서는 시스템 다운을 대비해 sync 를 해주면 좋다

스왑 영역 만들기 (mkswap)

Page 63: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•# mkswap –c [ 파티션 장치 또는 스왑 파일명 ] [스왑 영역 크기 ]▫여기서 스왑 영역 크기는 1KB 를 한 블록으로 하는 , 블록 단위의 크기이다▫-c 옵션은 배드 블록이 있는지 검사를 하는 옵션이다▫이를 한 뒤에는 역시 sync 를 하여 포매팅이 확실히 되도록 하는 것이 좋다

•$ chmod 0600 [ 스왑 파일명 ]▫스왑에 쓰일 수 있게 하기 위해 접근 권한 변경

스왑 영역 만들기 (mkswap)

Page 64: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•새롭게 만들어진 스왑 영역 ( 파일 or 파티션 ) 을 사용하기 위해서는 이를 활성화 시켜야 한다 .

•swapon / swapoff 명령어를 이용하여 스왑 영역을 활성화 , 비활성화 시킬 수 있다

스왑 영역 활성화 / 비활성화

Page 65: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•# swapon [ 파티션 장치 또는 스왑 파일명 ]•# sawapon –a

▫/etc/fstab 에서 options 필드에 sw 라고 적힌 항목은 모두 활성화▫부팅시 자동으로 실행

•# swapoff [ 파티션 장치 또는 스왑 파일명 ]▫파티션 또는 파일을 삭제하기 전 꼭 swapoff 를 해주자 !

스왑 영역 활성화 / 비활성화

Page 66: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

• dd 명령을 이용하여 적당한 크기 (100M) 의 빈 파일을 만든다 .

• mkswap 명령을 이용하여 해당 파일을 swap 영역으로 포맷한다 .

• swapon / swapoff 명령을 이용하여 swap 영역을 활성화 / 비활성화 시키면서 free 명령을 이용하여 메모리 상태 변화를 관찰한다 .

• swapoff 로 해당 파일을 비활성화 시킨 후 삭제한다

스왑 영역 실습

Page 67: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

3. 장치 파일 관리

Page 68: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

장치 파일이란 ?•각종 장치들에 접근하고 그 장치들과 상호작용하기 위한 인터페이스로써 만들어진 , 각 장치들에 대응되는 파일이며 /dev 디렉토리에 위치한다•반드시 실제하는 장치들에 대해서만 파일이 있는 것은 아니다•장치 파일도 그저 하나의 파일일 뿐이다 !

Page 69: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

장치 파일 관리•장치파일 보기

▫ls /dev/•장치파일 만들기

▫mknod•symbolic link 만들기

▫ln -s•장치파일 삭제하기

▫rm

Page 70: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

•/dev 디렉토리에서 ls –l 명령을 통해 장치들의 목록을 열람해볼 수 있다장치 파일 보기

Page 71: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

장치 파일 보기•제일 앞 열의 문자

▫일반적인 파일은 -▫디렉토리는 d▫b 는 블록 장치▫c 는 문자 장치

•블록 장치 : 자료의 I/O 가 블록 단위로 이루어지며 임의 순서로 접근 가능•문자 장치 : 자료의 I/O 가 한 바이트 단위로 이루어지며 순차적으로 접근 가능

Page 72: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

장치 파일 보기•크기 필드 부분에 콤마로 구분된 두 개의 숫자가 표시됨•첫 번째 수가 메이저 장치 번호

▫커널 내의 특정 드라이버를 가리킴•두 번째 수가 마이너 장치 번호

▫드라이버 안에서 처리되는 개별 장치•프로그램에서 장치 파일에 접근하면 커널은 장치의 메이저 번호 , 마이너 번호라는 관점에서 I/O 요청을 받아들임

Page 73: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

장치파일 만들기•#mknod –m permissions name type major

minor•name : 만들 장치명 (ex: /dev/rft0)•type : 문자 장치에는 c, 블록 장치에는 b•major : 장치의 메이저 번호•minor : 장치의 마이너 번호•-m permissions : 선택적 옵션으로 , 장치 파일의 퍼미션 설정 (ex: -m 660)

Page 74: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

심볼릭 링크 만들기•/dev 디렉토리에 있는 많은 장치 파일들은 실제 장치 파일에 대한 심볼릭 링크인데 , 이는 장치에 대한 접근이 용이하도록 하기 위해서이다•ln –s [ 원본 장치 파일명 ] [심볼릭 링크 파일명 ]

▫접근하기 쉬운 이름으로 원본 장치 파일에 대한 심볼릭 링크를 만들면 좋다

Page 75: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

장치 파일 제거하기 (rm)•rm [ 장치 파일명 ]

▫장치 파일을 제거하려면 별다른 절차가 필요없이 그냥 해당 파일을 지우면 된다▫장치 파일은 프로그램들이 장치와 통신하기 위한 인터페이스에 불과하기 때문에 , 장치 파일이 삭제된다고 해서 장치가 컴퓨터에서 제거된 것은 아니다

Page 76: 5.  파일시스템 ,  스왑  영역 ,   장치 파일 관리

장치파일 실습•장치 파일 만들기

▫메이저 장치 번호 : 123▫마이너 장치 번호 : 456▫type c▫권한 666▫파일 이름 dummy

•실행해보고 결과 확인▫cat dummy▫ls > dummy

•dummy 파일 삭제하기