본문 바로가기
IT.인터넷

리눅스 파일 시스템

by Mr-후 2017. 7. 25.
반응형

이런 내용들이 예전에는 잘 이해도 안되고 알 필요도 없다고 생각을 했던 것 같다. 뭐가 그리 급했던지 결과를 향한 성과에만 집착을 하고 구조와 원리에 대한 이해 없이 사용법만 익혔던 것 같다. 이제 와서 이런 공부를 하는 것도 나쁘진 않지만 새삼 옛날 생각이 나서 생각을 옮겨 본다. 


막연하게 알고 있든 파일시스템 이란 것이 무엇인지 한번 읽어 보자. 


리눅스 파일 시스템


파일 시스템은 운영체제가 파티션 또는 디스크에 파일들이 연속되게 하려고 사용하는 방법들의 의미한다. 즉 파일들이 디스크상에 구성되는 방식을 의미한다. 디스크 위에 데이터를 어떻게 써야 할지에 대한 규칙들이라 할 수 있다. 따라서 파일 시스템이 없다면 빈 디스크에 정보를 어떻게 저장할 것인지 알 수 없다. 여기에서 빈 디스크라고 하는 것은 임의 접근 방식(random access)이 가능한 저장장치를 의미하며 테이프 디바이스와 같이 순차 접근방식(sequence access)으로 저장되는 경우는 해당하지 않는다. 





리눅스 파일 시스템의 구조는 Super Block, i-node, Data Block, Directory Block, Indirection Block등의 구조로 구성되어 있다. 


 Super Block 

 파일 시스템에 의존하는 정보를 가지며, 파일 시스템 크기, 매직넘버, 마운트 횟수와 같은 전체적인 정보를 가진다. 

  i-node

 파일 이름을 제외한 파일의 모든 정보를 가지고 있다. 각 파일 이름에 부여되는 고유 번호와 파일 형태 및 크기와 위치, 소유주 등에 관한 정보가 있다. i-node로 이루어진 테이블에서 이 번호로 찾으면 모든 정보를 알 수 있다.  

 Data Block

 Data Block은 i-node에 포함되는 것으로 파일에서 데이터를 저장하려고 사용된다.  

 Directory Blcok

 파일 이름 & i-node번호  

 Indirection Block  

 추가적인 Data Block을 위한 포인터들이 사용하는 동적으로 할당되는 공간이다. 실제로 i-node는 적은 수의 Data Block을 가지고 있고 더 많은 Data Block이 필요하면 이를 지정할 포인터가 필요해지며 이때 포인터들이 사용하는 동적 블록을 의미한다.  

 Hole 

i-node나 간접 블록(indirection block)안에 Data Block의 주소로 특별한 값을 저장하는 것을 의미하며 이는 파일 시스템에 의해 파일 안에 자리하게 된다. 그러나 실질적으로 디스크 상의 공간에 할당되지 않으며 파일 안에 특정 공간을 차지하고 있다고 가정한다.  


리눅스에서의 파일 시스템의 기본적인 기능은 디스크나 테이프의 저장 공간을 파일 디렉토리 개념으로 구성하여 관리한다. 

보통 장기간 저장을 위해서 파일을 사용하고 단기간 저장이나 빠른 결과를 얻으려고 RAM을 사용한다. 






리눅스 파일시스템 중 ext, ext2 에 대한 설명만 추가한다. 


ext


ext파일 시스템은 리눅스 초기에 사용되던 파일 시스템으로 호환성이 없던 ext2의 구버전이다. 지금은 대부분 ext3를 사용한다. 


ext2


리눅스의 루트 파티션으로 사용할 수 있는 것은 여러 가지가 있지만, 기본적으로 ext2파일 시스템이 사용된다. 파일 시스템은 리눅스를 설치하면서 생성되므로 리눅스를 설치하게 되면, 이미 디스크나 파티션 위에 데이터들을 기록할 수 있는 준비를 마치게 된다. 리눅스 파일 시스템은 모든 파일이 '/'(루트 디렉토리) 아래에 트리구조로 연결되어 있다. 모든 디렉토리나 장치들도 모두 이 아래에서 찾아낼 수 있으며 필요한 파일 시스템에 접근하려면 마운트라는 명령으로 루트 디렉토리 아래의 한 디렉토리로서 접근 가능한 상태로 만들고 나서 사용할 수 있다. 


ext2파일 시스템은 다음과 같은 특징을 갖고 있다. 


  1. 기본적으로 255자의 파일 이름을 사용할 수 있지만, 필요하면 1,012자까지 쓸 수 있다. 
  2. 확장자의 개념은 필요하지 않고'.xxx' 형태로 파일 이름을 짓는 경우는 파일 이름으로 그 파일을 분류하거나, 특성을 나타내기 위한 것이 대부분이다. 
  3. 파일 이름중에서 '.'으로 시작하는 이름을 가진 파일들은 Hidden파일로 'ls' 명령에 '-a' 옵션을 붙여야 볼 수 있다. 'ls -a'명령으로 나타나는 리스트에는 반드시 '.' 와 '..'가 포함되어 있는데, 전자는 현재 디렉토리를 의미하며, 후자는 부모 디렉토리를 나타낸다. 
  4. ext2파일 시스템의 크기는 원래 소스코드에 의하면 2GB까지로 제한되어 있지만, 최근 VFS(Virtual File System)의 사용으로, 4TB까지도 가능하다. 따라서 파티션을 여러 개로 나누지 않고도 2GB이상의 디스크 사용이 가능하다. 


출처 : Linux CendOS 기초에서 활용까지 




음.. 다시 바도 어렵다. @@

아 ~ 역시 어려운거였어 ㅋㅋㅋㅋㅋㅋㅋ 


사무실까지 더운 폭염, 건강이 최고다. 




반응형