Bro's FileSystem 조사 
2004-05-21 조경민 bro (bro@shinbiro.com) 
================================================================ 
file system ; 파일 시스템 
1. 컴퓨터에서, 파일 시스템은 파일에 이름을 붙이고, 저장이나 검색을 위해 논리적으로 그것들이 어디에 위치시켜야 하는지 등을 나타내는 방법이다. 도스, 윈도우, OS/2, 매킨토시 및 유닉스 기반의 운영체계들은 모두, 파일들이 어딘가에 계층적인 구조로 위치하는 파일 시스템을 가지고 있다. 파일은 계층구조 내의 바른 위치인 디렉토리 (윈도우95 이후에는 폴더) 또는 서브디렉토리 내에 놓여진다. 파일 시스템들은 파일의 이름을 붙이는 규칙을 가지고 있다. 이러한 규칙에는 파일이름의 길이제한, 어떤 글자들이 사용될 수 있는지 등이 포함되며, 몇몇 시스템에서는 파일이름 확장자의 길이조차 제한을 두고 있다. 파일 시스템은 또한 디렉토리 구조를 통하여 파일까지 가는 경로를 설정하는 형식을 포함한다. 
2. 때로 이 용어는 1.번에서 정의된 파일시스템을 지원하는 운영체계 또는 부가적인 프로그램의 일부를 지칭한다. 이러한 부가 프로그램의 예로는 NFS (Network File System)나 AFS (Andrew file system) 등이 있다. 
-------------------------------------------------------------------- 
파일시스템의 구성 
filesystem - 일정한 file i/o 함수로 특정 기억 장치 미디어( 하드디스크,플로피 디스크, cd-rom, 플래쉬 메모리, RAM메모리, ROM 메모리, 가상파일 등) 에 구축되는 시스템으로 파티션/볼륨/디렉토리/파일을 접근/수정/생성/삭제 등의 관리를 하는 OS의 일부분. 조사해 본 결과 OS구현시 해당 OS에 맞는 filesystem을 만들어서 명명짓거나, 새로운 기술을 적용하여 여러 OS에 포팅할 수 있는 filesystem을 만들거나, 기억장치의 특성에 맞춘 파일시스템이 있을 수 있다. 
출처 : 조경민 bro (bro@shinbiro.com) 
예: SMX rtos의 파일시스템 smxFile ™ Feature이다. 
Features 
FAT 12/16/32 
DOS/Win9x compatible 
Extensive drivers:  // 지원하는 저장매체이다. 
   Floppy 
   IDE Hard Disk 
   Compact Flash 
   DiskOnChip® 
    PCMCIA-ATA 
   Ultra DMA 
   ATAPI 
   LS-120 
   Zip® 
    SCSI 
   RAM disk 
   ROM disk 
   BIOS devices 
20 MByte/sec sustained transfer rate ( IDE Ultra-DMA ) 
Up to 2 terrabyte disks 
55 KB typical code footprint 
20 KB typical data footprint 
Multitasking support 
Contiguous file support 
Source code included 
Fully integrated with SMX 
출처: http://www.smxinfo.com/rtos/fileio/smxfile.htm#note1 
파티션 - 하드디스크경우 물리적 디스크 하나를 그대로 파티션 하나가 될 수 있으며 하드디스크의 공간을 나누어 파티션으로 관리 할 수 있다. 즉 디스크의 저장공간 단위 이다. 
출처 : http://www.thinki21.com/os/win2000/05volume.htm 
볼륨 - 파티션과 반대로 물리적 하드디스크 두개이상 또는 파티션 두개이상을 하나의 볼륨으로 묶을수 있다. 하나의 디스크가 하나의 파티션이되고 주파티션은 볼륨이 될 수 있다. 
winnt서버에서는 볼륨 셋 [Volume Set] - Spanned Volume, 스트라이프 셋 [Stripe Set] - Striped Volume, 미러 셋 [Mirror Set] - Mirrored Volume, 디스크 듀플렉싱 [Disk Duplexing], 패러티 사용 스트라이프 셋 [Stripe Set With Parity] - RAID 5 Volume 등으로 볼륨 종류를 나누고 있다. 
디렉토리 - 여러개의 파일을 담아 놓는 논리적 공간 디렉토리는 속해있는 파일들의 위치 정보를 갖고 있다. 
파일 - 파일시스템에서 데이타를 저장하는 물리적 단위 
출처 : 조경민 bro (bro@shinbiro.com) 
-------------------------------------------------------------------- 
파일시스템 구현에 따른 분류 
[리눅스 커널의 이해 책 참고] 추가하겠음 
-------------------------------------------------------------------- 
파일시스템의 전반적 종류 
Filesystems HOWTO 
http://www.penguin.cz/~mhi/fs/Filesystems-HOWTO/Filesystems-HOWTO.html 
OSRC(OS Resource Center) FileSystems Section 
http://www.nondot.org/sabre/os/articles/FileSystems/ 
Softpanorama Filesystems Webliography 
http://www.softpanorama.org/Internals/filesystems.shtml 
======================================================== 
============= OS based Major FileSystem =============== 
======================================================== 
각 OS 별 주요 파일시스템을 분류하였으며, 이 후 특징별 분류 
와 중복되는 파일시스템이 있을 수 있다. 표준적이고 대표적인 
파일시스템은 FAT12,16,32/NTFS/Ext2,3/HPFS 라고 보면 된다. 
DOS/Windows FileSystem 
FAT/VFAT/FAT32 : [dos/Win9x] 에서 사용하는 파일 시스템 
FAT는 Microsoft 빌게이츠가 Albuquerque호텔에서 1976년 잠깐 머물면서 초기버전을 만들었다. 그 후 인텔이 그들의 8086칩에서 도는 OS 안에서 쓰기 위해서 함께 다듬었다.ms는 그들의 MS-DOS에서 쓰기 위해서 FAT사용권을 구입했다. 
발췌 : FAT File System: The Story Behind the Innovation(December 3, 2003) 
http://www.microsoft.com/mscorp/ip/tech/fathist.asp 
Understanding FAT32 Filesystems 
http://www.pjrc.com/tech/8051/ide/fat32.html 
MS의 WhitePager 
http://www.nondot.org/sabre/os/files/FileSystems/FatFormat.pdf 
FAT Guide 
http://home.freeuk.com/foxy2k/disk/disk3.htm 
GNU Parted FAT file system documentation 
http://www.polarhome.com:793/manual/parted-1.6.3/FAT 
간단한 설명 
http://www.nondot.org/sabre/os/files/FileSystems/fatFilesystem.txt 
VSTa/ fat support 
http://minnie.tuhs.org/VSTa/srctree/newsrc/srv/dos/ 
Bryan Glenn Dickey's FAT homework -_- 
http://bryangd.com/work/byu/cs345/FAT2.cpp 
fatfs.c 
http://creature.shacknet.nu/DOXYGEN.freemint/fatfs_8c-source.html 
~~~~~~~~~ 
NTFS : [WInNT]에서 사용하는 파일 시스템 
~~~~~~~~~ 
HPFS : IBM의 [os/2]의 파일시스템  (High Performace Filesystem) 
Inside the High Performance File System 
http://www.nondot.org/sabre/os/files/FileSystems/HPFS/index.html 
"Design goals and implementation of the new High Performance File System" - by Roy Duncan 
http://www.nondot.org/sabre/os/files/FileSystems/DesignGoalsHPFS/ 
~~~~~~~~ 
Linux FileSystem 
ext2/ext3 : [Linux]에서 사용하는 파일 시스템 
Second Extended File System - by Dave Poirier 
http://www.nongnu.org/ext2-doc/ 
Design and Implementation of the EXT/2 Filesystem - by Rémy Card 
http://www.nondot.org/sabre/os/files/FileSystems/dimp-ext2/ 
David Robins ext2fs page - by David Robins (관련소스포함) 
http://www.4031.net/Linux/ext2fs/ 
~~~~~~~~ 
Unix FileSystem 
UFS : [Unix] Filesystem 
The Unix Filesystem 
http://www.eecs.wsu.edu/~cs302/notes/filesystem.html 
CSC5140 Advanced Topics in Operating Systems 
http://appsrv.cse.cuhk.edu.hk/~csc5140/ 
~~~~~~~ 
HFS : [Mac Plus] Apple Macintosh의 Hierarchical File System 
http://www-sccm.stanford.edu/~hargrove/HFS/ 
~~~~~~~ 
BeOS FileSystem 
B(e)FS : [BeOS] 의 Filesystem 64-bit journalled filesystem with support for arbitrary file attributes on any node 
Slashdot Tux2 The Filesystem That Would Be King 
http://slashdot.org/features/00/10/13/2117258.shtml 
~~~~~~~ 
AmigaOS FileSystem 
(A)FFS : [amiga사의 AmigaOS]의 예전 파일 시스템 (Fast File System) 
AFS : [amiga사의 AmigaOS]의 파일 시스템 (AmiFileSafe) 
         원래 이름은 Professional FileSystem (PFS) 였음 
http://www.greed.nl/ 
SFS : [amiga의 AmigaOS]의 새로운 파일 시스템 (Smart File System) 
         1993년 시작 
http://www.xs4all.nl/~hjohn/SFS/ 
~~~~~~~~ 
bitpim 
http://sourceforge.net/projects/bitpim/ 
LG 같은 CDMA 핸드폰에서 임베디드 파일시스템을 구현하고 그 위에 폰북,달력,배경화면 등을 구현 
~~~~~~~ 
dummy(non-major os) os filesystem 
O3ONEfs : ObjectOriendted  [O3ONE] dummy os의 filesystem 
http://www.o3one.org 
======================================================== 
================ CD-ROM FileSystem ================== 
======================================================== 
ISO-9660 CD-ROM filesystem specification (ECMA-119) - by ECMA 
http://www.nondot.org/sabre/os/files/FileSystems/iso9660.pdf 
Introduction to ISO 9660 - by Disc Manufacturing Inc 
http://www.nondot.org/sabre/os/files/FileSystems/IntroductionToISO9660.pdf 
Joliet CD-ROM Specification - by ISO 
http://www.nondot.org/sabre/os/files/FileSystems/Joliet.html 
ISO-9660 Information - by Philip J. Erdelsky 
http://www.nondot.org/sabre/os/files/FileSystems/iso9660.html 
Information Specification for Bootable CD-ROMs - by SFF Committee 
http://www.nondot.org/sabre/os/files/FileSystems/Information_Specification_for_Bootable_CD-ROM.pdf 
======================================================== 
================ Network File System =================== 
======================================================== 
AFS : Andrew File System 서버클라이언트간 효율적 공유위한 분산파일시스템  HP (Apollo) Domain OS, sun386i, Linux, NetBSD, os/2 용 제공 
http://www.angelfire.com/hi/plutonic/afs-faq.html 
NFS - Network filesystem (Unix) 
CODA : An advanced networked file system 
http://www.coda.cs.cmu.edu/ 
NCP - NetWare Core Protocol (Novell NetWare) 
SMB - Session Message Block (Windows 3.x/9x/NT) 
Smbfs 
http://sourceforge.net/projects/smbfs/ 
smbfs - a BSD licensed SMB filesystem for Unix 
Intermezzo - distributed file system for Linux 
http://inter-mezzo.org 
======================================================== 
================ Encrypted filesystems ================== 
======================================================== 
TCFS - Read/Write transparently using CBC-DES/3DES/RC5/IDEA/Others.. on Linux, NetBSD 
http://tcfs.dia.unisa.it 
SFS - Secure FileSystem on Dos/windows 
http://www.cs.auckland.ac.nz/~pgut001/sfs/index.html 
CFS - Read/Write, using DES/3DES on unix 
======================================================== 
============ logging/jounaled file system  =============== 
======================================================== 
데이타베이스와 비슷하게 로그 또는 저널링을 하여 시스템크래쉬 
가 일어날때 파일시스템이 문제가 없도록 하는 시스템 
BeFS, HTFS, JFS, NSS, Spiralog filesystem, VxFS and XFS. 
======================================================== 
=================== other file system ==================== 
======================================================== 
JFS : [linux] database의 저널링 기술을 사용 로그를 남겨 시스템크래시에서도 복구가능한 파일 시스템 JFS opensource project home 
http://oss.software.ibm.com/developerworks/opensource/jfs/index.html 
ReiserFS : [linux] 동적 트리(Dancing Tree)기반 새로운 리눅스파일시스템 ext2/3 보다 빠르다고함 
http://www.namesys.com/ 
VFS : [linux]의 여러파일시스템을 동일하게 쓰기위한 Virtual File System 
RamDisk : 속도향상을위해 메모리를 하드디스크파티션처럼 쓰는 filesystem 
http://www.linuxgazette.com/issue44/nielsen.html 
proc filesystem : Linux의 가상파일 시스템 
http://www.joinc.co.kr/modules.php?name=News&file=article&sid=146&mode=nested 
Concurrent Versioning File System (CVFS) 
http://www.gregorpurdy.com/gregor/gw/by-entry/000501.html 
AFS : IBM의 Websphere 웹서버의 구성요소 filesystem 
http://www-306.ibm.com/software/stormgmt/afs 
Other filesystems from : 
http://www.penguin.cz/~mhi/fs/Filesystems-HOWTO/Filesystems-HOWTO.html#toc9 
9.1 ADFS - Acorn Disc File System 
9.2 AFFS - Amiga fast filesystem 
9.3 BeFS - BeOS filesystem 
9.4 BFS - UnixWare Boot Filesystem 
9.5 CrosStor filesystem 
9.6 DTFS - Desktop filesystem 
9.7 EFS - Enhanced filesystem (Linux) 
9.8 EFS - Extent filesystem (IRIX) 
9.9 FFS - BSD Fast filesystem 
9.10 GPFS - General Parallel Filesystem 
9.11 HFS - HP-UX Hi performance filesystem 
9.12 HTFS - High throughput filesystem 
9.13 JFS - Journaled filesystem (HP-UX, AIX, OS/2 5, Linux) 
9.14 LFS - Linux log structured filesystem 
9.15 MFS - Macintosh filesystem 
9.16 Minix filesystem 
9.17 NWFS - Novell NetWare filesystem 
9.18 NSS - Novell Storage Services 
9.19 ODS - On Disk Structure filesystem 
9.20 QNX filesystem 
9.21 Reiser filesystem 
9.22 RFS (CD-ROM Filesystem) 
9.23 RomFS - Rom filesystem 
9.24 SFS - Secure filesystem 
9.25 Spiralog filesystem (OpenVMS) 
9.26 System V and derived filesystems 
9.27 Text - (Philips' CD-ROM Filesystem) 
9.28 UDF - Universal Disk Format (DVD-ROM filesystem) 
9.29 UFS 
9.30 V7 Filesystem 
9.31 VxFS - Veritas filesystem (HP-UX, SCO UnixWare, Solaris) 
9.32 XFS - Extended filesystem (IRIX) 
9.33 Xia FS 
----------------------------------------------------------------- 
Legacy Implemented File System or Related project 
(소스 있는 것만 모음, 위의 내용과 중복 가능) 
VSTa/ fat support 
http://minnie.tuhs.org/VSTa/srctree/newsrc/srv/dos/ 
Bryan Glenn Dickey's FAT homework -_- 
http://bryangd.com/work/byu/cs345/FAT2.cpp 
fatfs.c 
http://creature.shacknet.nu/DOXYGEN.freemint/fatfs_8c-source.html 
bitpim 
http://sourceforge.net/projects/bitpim/ 
LG 같은 CDMA 핸드폰에서 임베디드 파일시스템을 구현하고 그 위에 폰북,달력,배경화면 등을 구현 
Smbfs 
http://sourceforge.net/projects/smbfs/ 
smbfs - a BSD licensed SMB filesystem for Unix 
Partition Image [linux/c] 
http://sourceforge.net/projects/partimage/ 
Partition Image is an utility to save partitions (ext2/3fs, reiserfs, fat16, fat32, hpfs, ntfs) into an image file 
Change DiskVolume [win/mfc] 
http://www.codeproject.com/system/change_drive_sn.asp 
win32에서 fat/ntfs의 디스크볼륨 이름 변경 
Floppy Disk Operating System [nasm] 
http://sourceforge.net/projects/fdosx86/ 
The FDOS Operaing System is 100% written in Assembler (NASM). It supports FAT 12, TSR and a small Multi Kernel System. 
LFN/FAT32 support for the FreeDOS OS [freedos] 
http://sourceforge.net/projects/fdlfn/ 
The intention of the project is to bring the LFN and FAT32 support into the FreeDOS operation system. 
화일시스템에 관한 설명
이 글에는 트랙백을 보낼 수 없습니다