리눅스 파일 시스템
오늘은 리눅스의 파일시스템에 대해서 말해보겠습니다.
리눅스 파일시스템이란?
운영체제의 중요한 기능중 하나로, 다양한 정보를 가지고 있는 파일과 디렉터리의 집합을 구조적으로 관리하는 체계이다.
파일 시스템의 종류들
- ext(ext1)
MFS의 기능을 확장했다는 의미를 가지고 있다. 그러나 ext 파일 시스템은 inode의 수정과 데이터의 수정시간 자원이 안되는 문제등 여러 문제가 있었다. 현재 리눅스에서는 ext파일 시스템을 사용하지 않는다.
- ext2
ext 파일 시스템의 문제를 해결하기 위해 내놓은 것이다. ext2 파일 시스템은 ext 파일 시스템을 기반으로 확장성도 고려하여 만들어졌다. 초기에는 버그가 있어서 불안정 했었으나 점점 사용이 증가하면서 현재는 매우 안정한 파일 시스템이 되었다. ext3 파일 시스템이 도입되기 전까지는 사실상 리눅스의 표준 파일 시스템으로 사용되었다. 현재도 부팅 가능한 USB 플래시드라이브와 기타 SSD장치에 사용되고 있다.
- ext3
ext2를 기반으로 개발되어 호환이 가능하다. 즉 그말은 ext2 파일 시스템의 파일을 별도의 변경 없이 ext3파일 시스템에 바로 이식이 가능하다. ext3의 가장 큰 장점은 저널링 기능을 도입한 것이다. ext3 파일 시스템의 단점은 inode의 동적 할당이나 다양한 브록 크기와 같은 최신 파일 시스템 기능이 부족하고, 온라인 조작모음 기능이 없다는 것이다.
저널링이란?
디스크에 기록되는 데이터의 복구 기능을 강화한 것이다. 쉽게 말해 로그 기록 같은 것이라고 생각하면 된다. 따라서 디스크에 데이터를ㄹ 기록하기 전에 갑자기 전원이 나가거나 시스템에 충돌이 발생할 경우, 이 저널의 기록을 보고 빠르게 복구할 수 있다.
inode란?
아이노드라고 불리며 UFS와 같은 전통적인 유닉스 계통 파일 시스템에서 사용되는 자료구조이다. 아이노드는 정규 파일, 디렉터리 등 파일 시스템에 관한 정보를 가지고 있다.
- ext4
ext2 및 2x3와 호환성을 유지하고 있다. 그리고 ext3보다 서브 디렉터리의 수가 2배로 늘어났다. 온라인 조각 모음 기능도 지원한다.
리눅스에서 지원하는 기타 디스크 기반 파일 시스템
-msdos
MS-DOS 파티션을 사용하기 위한 파일 시스템이다.
-iso960
CD-ROM, DVD의 표준 파일 시스템으로 읽기 전용으로 사용된다.
-nfs
network file system으로 원격 서버의 디스크를 연결할 때 사용된다.
-ufs
Unix File System으로 원격 서버의 디스크를 연결할 때 사용된다.
-vfat
윈도 95,98,NT를 지원하기 위한 파일 시스템이다.
-hpfs
HPFS를 지원하기 위한 파일 시스템이다.
-ntfs
윈도의 ntfs를 지원하기 위한 파일 시스템이다.
-sysv
유닉스 시스템V를 지원하기 위한 파일 시스템이다.
-hfs
맥 컴퓨터의 hfs 파일 시스템을 지원하기 위한 파일 시스템이다.
특수 용도의 가상 파일 시스템
-swap
-스왑 영역을 관리하기 위한 스왑 파일 시스템
-tmpfs
temporary file system으로 메모리에 임시 파일을 저장하기 위한 파일 시스템이며, 시스템이 시작할 때마다 기존 내용이 없어진다.
-proc
커널의 현재 상태를 나타내는 파일을 가지고 있다.
-ramfs
램디스크를 지원하는 파일 시스템
-rootfs
-시스템 초기화 및 관리에 필요한 내용을 관리한다.
이보다 훨씬 더 많은 종류들의 파일 시스템들이 있다.