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.
화일시스템에 관한 설명
이 글에는 트랙백을 보낼 수 없습니다