2016년 7월 5일 화요일

시스템 보안 - 파일 시스템 관리

ㅇ ㅂㅇ


파일 시스템 관리

 기본 용어
 > 파일 관리자
  - 운영체제 중에서 기억장치 관리시스템의 한 부분으로 주로 보조기억장치 상의 파일을 총괄 관리한다.
  - 파일관리자는 적절한 제어방식을 통해 정보를 보관하는 개인 저장장소를 제공하고, 정보를 여러 사용자가 공동으로 이용할 수 있게 하는 수단을 제공

 > 파일 할당 테이블(FAT ; File Allocaction Table)
  - 파일이 저장되어 있는 클러스터들의 위치를 제공하는 일종의 파일 배치표
  - 운영체제는 새로운 파일에 대해 각 클러스터(주소)의 위치와 순서를 기록한 FAT 엔트리를 만듬
  - 파일을 읽어오는 것은 디스크에서 먼저 디렉토리 등록정보와 FAT을 참조하여 그 파일의 시작 클러스터와 마지막 클러스터에 있는 내용을 읽음

 디렉토리 구조
 - 1 단계(단일) 디렉토리 구조 
  -- 모든 파일이 같은 디렉토리에 존재하며, 파일 이름이 유일한 구조
  -- 파일이나 사용자의 수가 증가하면 파일 관리가 복잡해짐
  -- 파일명은 일반적으로 내용과 관련된 이름을 사용하며 파일명의 길이는 시스템에 따라 제한됨
 - 2 단계 디렉토리 구조 (2계층 구조)
  -- 중앙에 마스터 디렉토리(MDF)가 있고, 각 사용자의 디렉토리(UFD)가 하위에 있는 구조
  -- 마스터 파일 디렉토리는 사용자 파일 디렉토리를 관리하고, 그 아래에 사용자별로 서로 다른 파일 디렉토리가 있는 2계층 구조
  -- 하나의 사용자 파일 디렉토리에서는 유일한 파일 이름을 사용해야 하지만, 서로 다른 사용자 파일 디렉토리에서는 동일한 파일 이름을 사용 가능
  -- 특정 파일을 지정 할 때는 사용자 이름과 파일 이름을 함께 지정해야 하므로 파일이름이 길어짐(ex 사용자1/파일1 ..)
 - 트리 디렉토리 구조 
  -- 하나의 루트 디렉토리와 다수의 하위(종속,서브) 디렉토리로 구성되며, 포인터로 탐색(일반적인 OS(DOS, Windows, UNIX 등)에서 사용)
  -- 각 디렉토리는 서브 디렉토리나 파일을 가질 수 있음
  -- 서로 다른 디렉토리 내에 동일한 이름의 파일이나 디렉토리를 생성 할 수 있음
  -- 디렉토리의 탐색은 포인터를 사용하며, 경로명은 절대 경로명과 상대 경로명을 사용
  * 절대 경로명 : 루트에서부터 지정도니 파일 위치까지의 경로
  * 상대 경로명 : 현재 디렉토리를 기준으로 지정된 파일 위치까지의 경로
 - 비주기(비순환) 디렉토리 구조(Acyclic Graph Directory)
  -- 파일과 디렉토리의 공유가 허용될 수 있는 사이클이 없는 구조
   -> 사이클이 허용되지 않는 구조라는 것은 하위 디렉토리가 상위 디렉토리나 상위 파일을 공유 할 수 없다는 것을 의미함
  -- 디스크 공간을 절약 할 수 있음
  -- 하나의 파일이나 디렉토리가 여러 개의 경로 이름을 가질 수 있음
  -- 디렉토리 구조가 복잡하고, 공유된 하나의 파일을 탐색 할 경우 다른 경로로 두 번 이상 찾아 갈 수 있으므로 시스템 성능이 저하 될 수 있음
  -- 공유된 파일을 삭제할 경우 고아 포인터(Dangling Pointer)가 발생 할 수 있음
   -> 고아포인터(Dangling Pointer)
    - 여러 디렉토리에서 한 개의 파일을 공유하여 사용 할 때 공유된 파일을 삭제하면 파일이 없어졌는데도 불구하고 다른 디렉토리에서는 그 파일을 가리키는 포인터가 남아 있게 된다. 이와 같이 삭제된 파일에 대한 포인터를 끊어진 포인터, 즉 고아 포인터라고 함
 - 일반 그래프 구조
  -- 사이클이 허용되고, 기본 트리 디렉토리 구조에 링크를 첨가한 구조
   -> 링크 : 다른 파일이나 디렉토리를 가리키는 포인터를 말함
  -- 디렉토리와 파일 공유에 완전한 융통성이 있음
  -- 탐색 알고리즘이 간단하여, 파일과 디렉토리를 액세스하기가 쉬움
  -- 사용되지 않은 디스크 공간을 되찾기 위해 쓰레기 수집(Garbage Collection)이 필요
  -- 불필요한 파일을 제거하여 사용 공간을 늘리기 위해 참조 계수기가 필요함
   -> 참조 계수기
    - 파일 시스템을 탐색하는 것으로 접근 할 수 있는 디스크의 모든 공간을 표시해 두고 다음번 탐색시 표시되지 않은 공간을 사용 가능한 공간의 리스트로 수집하는 것을 Garbage Collection이라고 하며, 이 때 사용되는 것을 참조 계수기라고 한다.

 파일 공간의 할당과 회수 방법
 > 연속 할당(Contiguous Allocation)
  - 파일들이 디스크 내의 연속적으로 인접된 공간에 저장되는 기법
  - 할당 방법에 따라 고정크기와 가변크기로 구분
  - 연속하는 논리적 블록들이 물리적으로 서로 인접하여 있는 것
  - 이는 연속하는 논리적 블록들이 디스크 전체에 분산되어 있는 것에 비해 훨씬 빠른 액세스가 가능

 > 연결 할당(Linked Allocation)
  - 동일 파일에 속해 있는 섹터들이 연결리스트(Linked List)로 연결되어 있으므로 디스크 전체에 분산되어 있어도 액세스가 가능한 기억장치 할당기법
  - 블록이 어디에 있든지 포인터만 연결해주면 되므로 외부 단편화가 발생하지 않음
  - 따라서 연속할당에서와 같은 압축은 불필요

 > 색인 할당(Indexed Allocation)
  - 연결 할당은 연속 할당의 외부단편화 문제와 파일 크기 예측 문제를 해결했으나, FAT이 없으면 직접 접근 방식을 지원 할 수 없음
  - 색인 할당은 모든 포인터들을 색인 블록으로 관리함으로써 이 문제를 해결
  - 각 파일들은 디스크 블록 주소를 모아놓은 색인 블록을 가지므로 기억공간의 낭비가 발생

Window File System
 > FAT(File Allocaction Table)
  - DOS 때 부터 사용되고 있는 대표적인 File System으로 FAT16과 FAT32가 있음
  - 하드디스크에 FAT이라는 영역을 만들어 파일의 실제 위치 등의 정보를 기록하고 이를 이용
  - 저용량에 적합 / 보안에 취약 / 호환성 우수
 > NTFS(NT File System)
  - MFT(Master File Table)를 사용하여 관리하며, Mirror와 파일로그가 유지되어 파일 복구가 가능
  - FAT에다가 대용량 / 보안성 / 압축기능 / 원격저장소 등의 기능을 추가해서 만든 윈도우 전용 File System
  - 대용량 지원 / 강력한 보안 / 자동 압축 및 안정성 / 호환성이 좋지 않음 / 저용량에서는 FAT 보다 효율이 좋지 못함

Unix & Linux File System
  - EXT2 : FSCK(File System Check)을 이용하여 시스템 손상 복구 가능
  - EXT3 : 저널링(Journaling) 기술로 더욱 빠르고 안정적인 복구가 가능
  - EXT4 : 빨라진 FSCK / 하위 호환성 / 지연된 할당(Allocate-On-Flush ; 데이터가 디스크에 쓰이기 전까지 블록 할당 지연)

Partiton
  - 주 파티션
   -- 기본 파티션을 의미, 주 파티션의 수 + 확장 파티션의 수 <= 4
  - 확장 파티션
   -- 저장 공간은 없으며, 논리 파티션을 만들게 해주는 그릇의 역할, 디스크에 하나만 생성
  - 논리 파티션
   -- 최대 12개 (NTFS 에서는 제한 X)





댓글 없음:

댓글 쓰기