CharSyam
Tag | Location | Media | Guestbook | Admin

'VFS'에 해당하는 글(1)
2009/02/20   Linux VFS(Virtual File System)


2009/02/20 01:04 2009/02/20 01:04
Linux VFS(Virtual File System)

  크악 리눅스 VFS에 대해서 적다가 다 날라갔다 엉엉엉. 뭐, 하늘에서 더 요약하라는 뜻인가라고 생각하자.

 

 간단하게 말하면, 리눅스에는 여러가지 다른 파일 시스템을 이용하는 데, 각각의 파일 시스템 안에 있는 파일에 접근하는 방법은 파일 시스템 마다 다 틀리다. 예를 들어 FAT 은 Fat Table 을 이용하고 Ext2/3는 inode (일종의 BTree)방식이고,  이걸 비유하자면, 하나의 클래스가 비슷한 동작을 하는 다른 클래스와 통신하는데, Interface 로 통신하지 않고 Concrete 클래스와 통신한다고 생각하면 된다. 그리고 그 클래스 수가 무지 많다.

 

즉, 코드 자체가 interface 라면 filesystem_interface->Read 형태면 되는걸

 

if( filesystem_type == EXT2 )

  Ext2FileSystem->Read(...)

else if( filesystem_type == FAT )

 FatFileSystem->Read(...)

 

이런식으로 늘어난다는 것이다. 그래서 VFS 라는 추상화 파일 시스템 계층이 들어간것이다.

최초의 VFS는 (썬의 SunOS에 들어갔다고 한다. 1986년)

 

사용자 삽입 이미지 

 

 VFS 에서는 공통 파일 모델(Common File Model)을 이용한다. 즉 이게 Interface 인것이다. 두둥!!!

 

즉, 리눅스 등에서 파일시스템을 추가할려면 이 VFS에 맞춰서 만들어주는 것이 필요하다.

VFS의 공통 파일 모델은 다음과 같은 4개의 핵심 객체 타입을 가진다.

 

  •  Super Block 개체

    • 마운트 된 파일 시스템에 대한 정보를 저장한다. 실제로 Ext2 등에는 슈퍼 블럭이라는 게 있다. 그런데 FAT 같은건 이런 부분이 없으므로 추가적으로 정보를 담도록 구현해줘야한다.
  • Inode 객체

    • 특정 파일에 대한 정보를 닮고 있다. 파일 시스템 내에 있는 파일의 유일한 식별자 등으로 보면된다.
  • 파일 객체

    • 열린 파일과 프로세스 사이의 상호 작용과 관련한 정보를 저장한다. 이 정보는 각 프로세스가 열린 파일을 가지고 있는 동안 커널 메모리에만 존재한다. 즉, 디스크로 저장되어 있는 부분에는 없다는 얘기다.
  • 디엔트리 객체

    • 디렉토리 항목과 이에 대응하는 파일의 연결에 대한 정보를 저장한다.

 

각각의 개체에 대한 자세한 내용은 리눅스 커널의 이해 12장 가상 파일 시스템 부분을 참고하자. 

 

Tag : , ,


BLOG main image
CharSyam
 Notice
 Category
전체 (90)
(19)
(3)
프로그래밍 (61)
게임 (1)
Server Setting (5)
대학원 (1)
 TAGS
도전 임베디드 OS 만들기 더블버퍼링 C&C 뷰타입 스타일 미디어법 TearUp 전문가 뷰패킷 Atomic CeRegSetValueEx 버전관리 드래곤퀘스트4 지속적인 통합 MACOSX 여론 조작 포팅 DTM_SETIMAGE 구글테스트 리눅스 커널 세월이 젊음에게 촘스키 고수 Free google test 삽질운하 WindowsMobile Design Pattern 정치 Window Mobile 6 XML 문제 프로젝트
 Calendar
«   2010/07   »
        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
 Recent Entries
YES24 총알 배송 광고
CMake – CMakeLis...
Autotools 관련 좋은 링...
고수와 전문가의 차이
Zookeeper 설치 방법
 Recent Comments
오~ 이 책도 땡기는군요...
ohyecloudy - 05/25
항상 정리해야 되는데,...
CharSyam - 05/13
잘 정리하셨네요. ^^
고감자 - 05/12
네, 저도 동감합니다....
CharSyam - 2009
http://www.thisisgame....
ParkPD - 2009
 Recent Trackbacks
Discount patio furniture.
Discount furniture.
Furniture competition.
Furniture design compe...
Acomplia ribona.
Acomplia.
Premarin.
Premarin vaginal cream.
스크럼과 XP
The note of Legendre
 Archive
2010/07
2010/06
2010/05
2010/04
2010/03
 Link Site
 Visitor Statistics
Total : 38342
Today : 44
Yesterday : 73
rss
Powered by Tistory & Designed by webnoon.net