디스크의 계층 구조 보기 c. §열하나

| 파일 및 파일 구조 정보

10과
파일 및 파일 구조

§열하나. 파일 및 파일 구조 정보

단락의 주요 주제:

파일이란 무엇입니까?
- 파일 이름;
- 논리 드라이브
- 디스크의 파일 구조
- 파일 경로 전체 파일 이름;
- 파일 구조 보기.

연구 중인 문제:

파일 - 외부 매체에 저장되고 공통 이름으로 통합된 정보.
- OS의 일부인 파일 시스템.
- 파일 이름, 이름 형성 규칙.
- 논리 드라이브의 개념.
- 디스크의 파일 구조, 디렉토리의 개념.
- 파일 경로 - 디스크에서 파일 위치의 좌표입니다.
- 파일 할당 테이블의 목적

파일이란 무엇입니까?

외부 미디어에 대한 정보는 파일로 저장됩니다.

파일은 정보를 저장하도록 설계된 외부 메모리의 명명된 영역입니다.

파일 작업은 컴퓨터에서 매우 중요한 유형의 작업입니다. 소프트웨어와 사용자에게 필요한 정보 등 모든 것이 파일에 저장됩니다. 비즈니스 문서와 마찬가지로 파일을 사용하면 한 매체에서 다른 매체로 복사하고, 불필요한 파일을 삭제하고, 새 파일을 만들고, 검색하고, 이름을 바꾸고, 순서대로 정렬하는 등의 작업을 지속적으로 수행해야 합니다.

파일 개념의 의미를 명확히 하기 위해 다음과 같은 비유를 사용하는 것이 편리합니다. 저장 매체 자체(예: 디스크)는 책과 유사합니다. 우리는 무엇에 대해 이야기했습니다. 책은 사람의 외부 기억이다, ㅏ 자기 디스크 - 컴퓨터의 외부 메모리. 이 책은 장(이야기, 섹션)으로 구성되어 있으며 각 장에는 제목이 있습니다. 또한 파일에는 고유한 이름이 있습니다. 파일 이름이라고 합니다. 책의 처음이나 끝에는 일반적으로 장 제목 목록인 목차가 있습니다. 디스크에는 저장된 파일의 이름이 포함된 디렉토리 목록도 있습니다.

목록원하는 파일이 주어진 디스크에 존재하는지 확인하기 위해 표시될 수 있습니다.

각 파일에는 별도의 정보 객체: 문서, 기사, 숫자 배열, 프로그램 등 파일에 포함된 정보가 활성화됩니다. 즉, RAM에 로드된 후에만 컴퓨터에서 처리할 수 있습니다.

필요한 모든 것 파일에 대한 작업은 운영 체제에서 제공합니다..

올바른 파일을 찾으려면, 사용자는 다음을 알아야 합니다.

A) 파일 이름은 무엇입니까?
b) 파일이 저장되는 위치.

파일 이름

다음은 파일 이름의 예입니다. * :

myprog.pas

* 다음 예제는 MS-DOS 및 Windows와 같은 Microsoft 운영 체제에서 채택된 규칙을 지향합니다. Linux OS 애플리케이션도 설명되어 있습니다.


점 왼쪽에는 실제 파일 이름( 마이프로그). 점( 우선권)를 파일 확장자라고 합니다. 일반적으로 파일 이름에는 라틴 문자와 숫자가 사용됩니다. 또한 파일 이름에 확장자가 없을 수 있습니다. Microsoft Windows 운영 체제에서는 파일 이름에 러시아어 문자를 사용할 수 있습니다. 최대 이름 길이는 255자입니다.

확장자 표시이 파일에 어떤 종류의 정보가 저장되어 있는지. 예를 들어, 확장 txt일반적으로 텍스트 파일(텍스트 포함), 확장자를 나타냅니다. RSX- 그래픽 파일(그림 포함), 지퍼또는 rar- 아카이브 파일(아카이브 - 압축 정보 포함), 우선권- 파스칼 프로그램.

논리 드라이브

한 컴퓨터에는 디스크 작업을 위한 장치인 여러 개의 디스크 드라이브가 있을 수 있습니다. 종종 개인용 컴퓨터에서 시스템 장치에 내장된 대용량 하드 디스크는 섹션으로 나뉩니다. 이러한 각 파티션을 논리 드라이브라고 하며 한 글자로 된 이름(뒤에 콜론) C:, D:, E: 등이 지정됩니다. 이름 A: 및 B:는 일반적으로 작은 이동식 디스크(플로피 디스크)를 나타냅니다. (플로피) . 또한 논리 드라이브의 이름으로 간주할 수 있으며 각각은 실제(물리적) 드라이브를 완전히 차지합니다. * . 따라서 A:, B:, C:, D:는 모두 논리 드라이브의 이름입니다.

* 최신 PC 모델에서는 플로피 디스크를 사용하지 않습니다.


옵티컬 드라이브에는 마지막 하드 디스크 파티션 이름 다음의 알파벳 이름이 지정됩니다. 예를 들어, 하드 드라이브에 파티션 C:와 D:가 있는 경우 이름 E:가 광학 드라이브에 지정됩니다. 그리고 플래시 메모리를 연결하면 F: 드라이브도 논리 드라이브 목록에 나타납니다.

파일을 포함하는 논리 드라이브의 이름은 파일의 위치를 ​​정의하는 첫 번째 "좌표"입니다.

디스크 파일 구조

최신 운영 체제는 외부 저장 디스크 장치에 있는 파일의 다단계 구성(계층적 파일 구조)을 지원합니다. 이 문제에 대한 이해를 돕기 위해 정보를 저장하는 전통적인 "종이" 방식에 비유할 것입니다. 이러한 유추에서 파일은 종이 시트에 제목이 지정된 문서(텍스트, 그림)로 표시됩니다. 파일 구조의 다음 요소는 디렉토리라고 합니다. "종이" 비유를 계속하면 많은 문서, 즉 파일을 넣을 수 있는 폴더로 디렉토리를 나타냅니다. 디렉토리는 또한 고유한 이름을 갖습니다(폴더 표지에 기록되어 있다고 상상해 보십시오).

디렉토리 자체는 외부에 있는 다른 디렉토리의 일부일 수 있습니다. 이것은 폴더가 다른 더 큰 폴더 안에 중첩되는 방식과 유사합니다. 따라서 각 디렉토리에는 그 안에 많은 파일과 하위 디렉토리(하위 디렉토리라고 함)가 포함될 수 있습니다. 다른 디렉토리 아래에 중첩되지 않은 최상위 디렉토리를 루트 디렉토리라고 합니다.

Windows 운영 체제에서 "폴더"라는 용어는 "디렉토리"의 개념을 나타내는 데 사용됩니다.

계층적 파일 구조의 그래픽 표현을 트리라고 합니다.

트리에서 루트 디렉토리는 일반적으로 기호로 표시됩니다. \ . 그림 2.10에서 디렉터리 이름은 대문자로, 파일은 소문자로 쓴다. 여기 루트 디렉토리에는 IVANOV 및 PETROV라는 두 개의 폴더와 하나의 파일 fin.com이 있습니다. IVANOV 폴더에는 PROGS 및 DATA라는 두 개의 하위 폴더가 있습니다. DATA 폴더가 비어 있습니다. PROGS 폴더에는 세 개의 파일이 있습니다.


파일 경로

이제 특정 문서를 찾아야 한다고 상상해 보십시오. 이렇게하려면 "종이"버전에서 상자가있는 상자와 상자 내부의 문서에 대한 "경로"를 알아야합니다. 당신이 찾고있는 서류에 도착.

컴퓨터에서 파일을 찾으려면 파일이 있는 논리 드라이브와 해당 드라이브의 파일 위치를 지정하는 드라이브의 파일 경로를 알아야 합니다. 파일 경로는 루트 디렉토리에서 시작하여 파일이 직접 저장된 디렉토리로 끝나는 일련의 디렉토리 이름입니다. 다음은 "파일에 대한 경로"의 개념에 대한 친숙한 동화 비유입니다. , 그 끝에 Koshcheev의 죽음이 있습니다.”

마지막으로 파일 이름을 알아야 합니다. 순차적으로 작성된 논리 드라이브 이름, 파일 경로 및 파일 이름이 전체 파일 이름을 구성합니다.

그림에 표시된 경우 2.10 파일 구조가 C: 드라이브에 저장되면 일부 파일의 전체 이름이 Microsoft Windows 운영 체제의 기호는 다음과 같습니다.:

C:\fin.com
C: \IV ANOV\PROGS\prog 1.pas
C:\PETROV\DATA\태스크. 날짜

파일 구조 보기

운영 체제는 사용자에게 화면에서 디렉토리(폴더)의 내용을 볼 수 있는 기능을 제공합니다.

디스크의 파일 구조에 대한 정보는 파일 할당 테이블의 형태로 동일한 디스크에 포함됩니다. OS 파일 시스템을 사용하여 사용자는 파일 구조 트리를 위 또는 아래로 이동하면서 화면에서 디렉토리(폴더)의 내용을 순차적으로 볼 수 있습니다.

그림 2.11은 Windows에서 컴퓨터 화면에 디렉토리 트리를 표시하는 예를 보여줍니다.

오른쪽 창에는 ARCON 폴더의 내용이 표시됩니다. 이것은 다양한 유형의 많은 파일입니다. 예를 들어 여기에서 목록에 있는 첫 번째 파일의 전체 이름은 다음과 같습니다.

E:\GAME\GAMES\ARCON\dos4gw.exe

테이블에서 파일에 대한 추가 정보를 얻을 수 있습니다. 예를 들어 dos4gw.exe는 크기가 254,556바이트이고 1994년 5월 31일 오전 2시에 생성되었습니다.

이러한 목록에서 원하는 파일에 대한 항목을 찾은 후 OS 명령을 사용하여 사용자는 파일에 대해 다양한 작업을 수행할 수 있습니다. 파일에 포함된 프로그램을 실행합니다. 삭제, 이름 바꾸기, 파일 복사. 실습에서 이러한 모든 작업을 수행하는 방법을 배웁니다.

메인에 대해 간단히

파일컴퓨터 외부 메모리의 명명된 영역입니다.

파일에 필요한 모든 작업은 다음에서 제공합니다. 운영 체제.

파일 이름은 실제 이름과 확장자로 구성됩니다.. 확장자는 파일의 정보 유형(파일 유형)을 나타냅니다.

계층적 파일 구조- 디스크에 있는 파일의 다단계 구성.

목록파일 및 하위 디렉터리(하위 디렉터리)의 명명된 목록입니다. 최상위 디렉토리를 루트 디렉토리라고 합니다. 어떤 디렉토리에도 중첩되어 있지 않습니다.

전체 파일 이름은 논리 드라이브 이름, 드라이브의 파일 경로 및 파일 이름으로 구성됩니다..

질문 및 작업

1. 컴퓨터 수업에서 사용하는 운영 체제의 이름은 무엇입니까?

2. 컴퓨터에 몇 개의 물리적 드라이브가 있습니까? 물리적 드라이브에는 몇 개의 논리 드라이브가 있으며 운영 체제 이름은 무엇입니까?

3. OS에서 파일 이름에 대한 규칙은 무엇입니까?

4. 디스크에 있는 파일의 경로, 전체 파일 이름은 무엇입니까?

5. (교사의 지도 하에) 컴퓨터에 있는 디스크의 화면 디렉토리를 보는 방법을 배웁니다.

6. 프로그램 파일(예: exe, com)에서 프로그램을 초기화하는 방법을 배웁니다.

7. OS에서 기본 파일 작업(파일 복사, 이동, 삭제, 이름 바꾸기)을 수행하는 방법을 배웁니다.

수업을 위한 전자 신청


수업 자료 다운로드

파일 및 파일 구조 정보

파일

파일(영어) 파일- 폴더) - 컴퓨팅의 개념: 컴퓨팅 시스템의 모든 리소스에 대한 액세스를 허용하고 다음과 같은 여러 기능을 가진 엔터티:

  • 고정된 이름(파일을 고유하게 특징짓는 일련의 문자, 숫자 또는 기타 항목)
  • 정의된 논리적 표현 및 해당 읽기/쓰기 작업.

그것은 임의의 조직 또는 중간 옵션이있는 데이터베이스에 이르기까지 비트 시퀀스 (바이트 또는 오히려 바이트의 단어 그룹, 각각 4, 8, 16)에서 무엇이든 될 수 있습니다. 엄격하게 정렬된 다차원 데이터베이스.

첫 번째 경우는 스트림 및/또는 어레이의 읽기/쓰기 작업(즉, 순차 또는 인덱스 액세스)에 해당하고 두 번째 경우는 DBMS 명령에 해당합니다. 중간 옵션 - 모든 종류의 파일 형식을 읽고 구문 분석합니다.

컴퓨터 과학에서는 다음 정의가 사용됩니다. 파일은 명명된 바이트 시퀀스입니다.

파일 작업은 운영 체제를 통해 구현됩니다.

파일과 같은 이름은 비슷한 방식으로 처리됩니다.

  • 데이터 영역(선택적으로 디스크에 있음);
  • 장치(예: 물리적, 포트 및 가상 모두)
  • 데이터 흐름(특히 프로세스의 입력 또는 출력)("파이프"는 "파이프라인"이라는 단어로 번역되어야 함)
  • 네트워크 자원, 소켓;
  • 운영 체제 개체.

첫 번째 유형의 파일은 역사적으로 가장 먼저 발생했으며 가장 널리 배포되었으므로 이름에 해당하는 데이터 영역을 종종 "파일"이라고도 합니다.

데이터 영역으로 파일

외부 미디어에 대한 정보는 파일로 저장됩니다. 파일 작업은 컴퓨터에서 매우 중요한 유형의 작업입니다. 소프트웨어와 사용자에게 필요한 정보 등 모든 것이 파일에 저장됩니다. 비즈니스 문서와 마찬가지로 파일을 사용하면 한 매체에서 다른 매체로 복사하고, 불필요한 파일을 삭제하고, 새 파일을 만들고, 검색하고, 이름을 바꾸고, 순서대로 정렬하는 등의 작업을 지속적으로 수행해야 합니다.



파일- 외부매체에 저장되어 공통명칭으로 통일된 정보입니다.

이 개념의 의미를 명확히 하기 위해 다음과 같은 비유를 사용하는 것이 편리합니다. 정보 매체 자체(디스크)는 책과 유사합니다. 우리는 책이 사람의 외부 메모리이고 자기 디스크가 컴퓨터의 외부 메모리라는 사실에 대해 이야기했습니다. 이 책은 장(이야기, 섹션)으로 구성되어 있으며 각 장에는 제목이 있습니다. 또한 파일에는 고유한 이름이 있습니다. 파일 이름이라고 합니다. 책의 처음이나 끝에는 일반적으로 장 제목 목록인 목차가 있습니다. 디스크에는 저장된 파일의 이름이 포함된 디렉토리 목록도 있습니다.

디렉토리를 표시하여 원하는 파일이 주어진 디스크에 있는지 확인할 수 있습니다.

각 파일에는 별도의 정보 개체(문서, 기사, 숫자 배열, 프로그램 등)가 포함되어 있습니다. 파일에 포함된 정보는 활성화됩니다. 즉, 파일이 RAM에 로드된 후에만 컴퓨터에서 처리할 수 있습니다.

컴퓨터에서 작업하는 모든 사용자는 파일을 처리해야 합니다. 컴퓨터 게임을 하기 위해서라도 그 프로그램이 저장되어 있는 파일을 찾아야 하고, 이 파일을 찾아서 프로그램을 초기화할 수 있어야 합니다.

컴퓨터에서 파일 작업은 파일 시스템을 사용하여 수행됩니다. 파일 시스템- 이것은 파일에 대한 작업을 제공하는 OS의 기능적 부분입니다.

원하는 파일을 찾으려면 사용자는 다음을 알아야 합니다. a) 파일 이름이 무엇입니까? b) 파일이 저장된 위치.

파일 이름

거의 모든 운영 체제에서 파일 이름은 점으로 구분된 두 부분으로 구성됩니다. 예를 들어:

점 왼쪽에는 실제 파일 이름(mu-prog)이 있습니다. 점 뒤에 오는 이름 부분을 파일 확장자(pas)라고 합니다. 일반적으로 파일 이름에는 라틴 문자와 숫자가 사용됩니다. 대부분의 운영 체제에서 최대 확장 길이는 3자입니다. 또한 파일 이름에 확장자가 없을 수 있습니다. Windows 운영 체제에서는 파일 이름에 러시아어 문자를 사용할 수 있습니다. 최대 이름 길이는 255자입니다.

확장자는 파일에 저장되는 정보의 종류를 지정합니다. 예를 들어, .txt 확장자는 일반적으로 텍스트 파일(텍스트 포함)을 나타냅니다. rsx 확장자 - 그래픽 파일(그림 포함), zip 또는 gag - 아카이브 파일(아카이브 - 압축 정보 포함), pas - 파스칼 프로그램.

논리 드라이브

한 컴퓨터에는 디스크 작업을 위한 장치인 여러 개의 디스크 드라이브가 있을 수 있습니다. 각 드라이브에는 A:, B:, C:와 같이 한 글자로 된 이름(뒤에 콜론이 붙음)이 할당됩니다. 종종 개인용 컴퓨터에서 시스템 장치에 내장된 대용량 디스크(하드 디스크라고 함)는 섹션으로 나뉩니다. 이러한 각 파티션을 논리 드라이브라고 하며 C:, D:, E: 등으로 이름이 지정됩니다. 이름 A: 및 B:는 일반적으로 작은 이동식 디스크(플로피 디스크(플로피))를 나타냅니다. 또한 디스크의 이름으로 간주할 수 있으며, 각각의 디스크는 실제(물리적) 디스크를 완전히 차지합니다. 따라서 A:, B:, C:, D:는 모두 논리 드라이브의 이름입니다. 파일을 포함하는 논리 드라이브의 이름은 파일의 위치를 ​​지정하는 첫 번째 "좌표"입니다.

논리 디스크에는 현재 및 수동의 두 가지 상태가 있습니다. 현재 디스크 - 사용자가 현재 시스템 시간에 작업 중인 디스크입니다. 패시브 디스크는 현재 연결되어 있지 않은 디스크입니다.

디스크 파일 구조

디스크에 있는 전체 파일 집합과 이들 사이의 관계를 호출합니다. 파일 구조. 서로 다른 운영 체제는 서로 다른 파일 구조 구성을 지원할 수 있습니다. 파일 구조에는 단순 또는 단일 레벨과 계층적 - 다중 레벨의 두 가지 유형이 있습니다.

단일 수준 파일 구조파일의 간단한 시퀀스입니다. 디스크에서 파일을 찾으려면 파일 이름만 지정하면 됩니다. 예를 들어 tetris.exe 파일이 A: 드라이브에 있는 경우 "전체 주소"는 다음과 같습니다.

단일 수준 파일 구조의 운영 체제는 플로피 디스크만 장착된 가장 단순한 교육용 컴퓨터에서 사용됩니다.

계층화된 파일 구조- 디스크에서 파일을 구성하는 트리형(계층적) 방식입니다. 이 문제에 대한 이해를 돕기 위해 정보를 저장하는 전통적인 "종이" 방식에 비유할 것입니다. 이러한 유추에서 파일은 종이 시트에 제목이 지정된 문서(텍스트, 그림)로 표시됩니다. 파일 구조의 다음으로 큰 요소는 목록. "종이" 비유를 계속하면 많은 문서, 즉 파일을 넣을 수 있는 폴더로 디렉토리를 나타냅니다. 디렉토리는 또한 고유한 이름을 갖습니다(폴더 표지에 기록되어 있다고 상상해 보십시오).

디렉토리 자체는 외부에 있는 다른 디렉토리의 일부일 수 있습니다. 이것은 폴더가 다른 더 큰 폴더 안에 중첩되는 방식과 유사합니다. 따라서 각 디렉토리에는 그 안에 많은 파일과 하위 디렉토리(하위 디렉토리라고 함)가 포함될 수 있습니다. 다른 디렉토리 아래에 중첩되지 않은 최상위 디렉토리를 루트 디렉토리라고 합니다.

Windows 운영 체제에서 "폴더"라는 용어는 "디렉토리"의 개념을 나타내는 데 사용됩니다.

계층적 파일 구조의 그래픽 표현을 트리라고 합니다.

무화과. 1 디렉토리 이름은 대문자로, 파일 이름은 소문자로 쓴다. 여기 루트 디렉토리에는 IVANOV 및 PETROV라는 두 개의 폴더와 하나의 파일 fin.com이 있습니다. IVANOV 디렉토리에는 두 개의 중첩 디렉토리 PROGS 및 DATA가 포함되어 있습니다. DATA 디렉토리가 비어 있습니다. PROGS 디렉토리에는 세 개의 파일이 있고 트리에서 루트 디렉토리는 보통 \로 표시됩니다.

쌀. 1. 계층적 파일 구조의 예

디렉토리에는 현재 및 수동의 두 가지 상태(논리 드라이브와 유사)가 있습니다. 운영 체제는 현재 드라이브의 논리적 날짜마다 현재 디렉터리를 기억하며, 이 경우 OS는 드라이브 이름과 디렉터리 이름을 저장합니다.

모든 프로그램과 데이터는 컴퓨터의 장기 메모리에 .

정의 1

파일– 미디어에 기록된 명명된 데이터 세트. 모든 파일에는 점으로 구분된 두 부분(실제 이름과 확장자)으로 구성된 이름이 있습니다. 파일 이름을 지정할 때 파일의 내용이나 작성자를 나타내는 것이 바람직합니다.

확장자는 파일에 저장된 정보의 종류를 나타냅니다. 파일 이름은 사용자가 지정하며 파일 형식은 일반적으로 프로그램이 생성될 때 자동으로 설정됩니다.

그림 1.

파일 이름은 확장자를 포함하여 최대 $255$ 문자를 포함할 수 있습니다. 파일 이름은 영어 및 러시아어 문자, 숫자 및 기타 기호로 구성될 수 있습니다.

파일 이름에는 다음 문자를 사용할 수 없습니다.

\ / * ? : “ | .

일부 파일 형식의 확장자:

그림 2.

이름과 유형 외에도 파일 매개변수에는 파일 크기, 생성 날짜 및 시간, 아이콘(기본 그래픽 객체, 파일이 생성된 환경 또는 유형을 찾는 데 사용할 수 있음)도 포함됩니다. .

그림 3

파일 아이콘 분류

그림 4

정의 2

파일 구조- 파일 모음 및 파일 간의 관계.

단일 수준 파일 구조적은 수의 파일이 있는 디스크에 사용되며 파일 이름의 선형 시퀀스입니다.

계층화된 파일 구조디스크에 폴더로 그룹화된 수천 개의 파일이 있을 때 사용됩니다. 계층화는 파일이 포함된 중첩 폴더 시스템을 의미합니다.

각 디스크에는 콜론이 있는 라틴 문자로 표시되는 논리적 이름이 있습니다.

  • C:, D:, E: 등 – 하드 및 광학 드라이브,
  • A:, B: - 유연한 디스크.

드라이브의 최상위 폴더는 루트 폴더이며 OS Windows에서는 드라이브 이름에 "\"를 추가하여 표시됩니다. 예를 들어 D:\는 루트 폴더의 지정입니다.

파일 구조 예:

그림 5

목록파일 및 기타 디렉토리가 있는 폴더 또는 디렉토리입니다.

다른 디렉토리의 하위 디렉토리가 아닌 디렉토리를 호출합니다. 뿌리. 이러한 디렉토리는 모든 디렉토리 계층 구조의 최상위 수준에 있습니다. Windows에서 각 드라이브에는 고유한 루트 디렉터리(D:\, C:\, E:)가 있습니다.

OS Windows의 디렉토리는 시스템과 사용자로 나뉩니다. 시스템 디렉토리의 예: "데스크탑", "네트워크 환경", "휴지통", "제어판".

그림 6. OS Windows 시스템 디렉토리

왼쪽에서 오른쪽으로: 시스템 폴더

휴지통, 내 문서 폴더, 내 문서 폴더 바로가기

디렉터리와 폴더는 물리적으로 동일합니다.

파일 경로는 주소입니다.

파일 경로는 항상 논리 드라이브 이름(D:\, C:\, E:)으로 시작하고 중첩된 폴더 이름의 순서가 기록되며 마지막 폴더에는 원하는 파일이 포함됩니다. 파일 이름과 함께 파일 경로를 전체 파일 이름이라고 합니다(예: D:\My Documents\Literature\Composition.doc 전체 파일 이름 Composition.doc).

그림 7. 디렉터리 및 파일 트리

개략적으로 디스크의 파일 구조는 트리로 표시됩니다.

그림 8. 디스크 Z의 파일 구조:

  • Z:\box\box1 – 폴더(카탈로그) box1의 전체 이름
  • Z:\box\box.txt는 box.txt 파일의 전체 이름입니다.
  • Z:\box\box2\box3\box1 - 폴더(디렉토리) box1의 전체 이름
  • Z:\box\box2\box3\box.txt - box.txt 파일의 전체 이름

하드 디스크의 초기 섹터에는 메모리에 로드되고 실행되는 마스터 루트 항목이 포함됩니다.

이 섹터의 ​​마지막 부분에는 파티션 테이블(16바이트 요소가 포함된 4개 요소 테이블)이 포함됩니다. 이 테이블은 FDISK 프로그램(또는 다른 운영 체제의 동등한 유틸리티)에 의해 조작됩니다.

부팅하는 동안 ROM-BIOS는 마스터 루트 항목을 로드하고 해당 코드에 제어권을 넘깁니다. 이 코드는 파티션 테이블을 읽어 활성으로 표시된 파티션을 확인합니다. 그런 다음 올바른 루트 섹터를 메모리로 읽어 들여 실행합니다.

1 번 테이블.기본 루트 항목 및 파티션 테이블의 구조

표 2.섹션 설명자 구조

파티션 ID는 주 파티션과 확장 파티션이 존재하고 디스크에 있는지 확인하는 데 사용됩니다. 원하는 섹션을 찾은 후 디스크립터의 해당 필드에서 크기와 좌표를 추출할 수 있습니다. 파티션 코드 필드에 0이 기록되면 디스크립터는 비어 있는 것으로 간주됩니다. 즉, 디스크의 파티션을 정의하지 않습니다.

표 3 Microsoft 운영 체제용 파티션 코드

암호단면도크기지방 유형운영체제
01시기초적인0-15MBFAT12MS-DOS 2.0
04시기초적인16-32MBFAT16MS-DOS 3.0
05시펼친0-2GB- MS-DOS 3.3
06시기초적인32MB-2GBFAT16MS-DOS 4.0
0bh기초적인512MB-2GBFAT32OSR2
0채널펼친512MB-2TBFAT32OSR2
0에기초적인32MB-2GBFAT16윈도우 95
0시펼친0-2GB- 윈도우 95

다음 코드는 타사 운영 체제용으로 예약되어 있습니다.

  • 02h - 섹션 CP/M;
  • 03h - 제닉스 파티션;
  • 07h - OS/2 파티션(HPFS 파일 시스템).

노트:

  1. 실린더 및 섹터 번호는 각각 10 및 6비트입니다.
    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
    에스에스에스에스에스에스

    16비트 값으로 CX를 로드할 때 디스크의 올바른 부분을 읽기 위해 INT 13h를 호출할 준비가 되도록 순서가 지정됩니다. 따라서 마스터 로드 레코드를 sect_buf 메모리 영역으로 읽은 후 CMP 코드 바이트 ptr sect_buf, 80h

    첫 번째 섹션이 활성화되어 있고 코드가

    MOV CX, sect_buf

    파티션 #1의 루트 섹터를 읽기 위해 INT 13h를 호출하기 위해 CX를 로드합니다.

  2. 각 파티션의 오프셋 08h에 있는 "상대 섹터" 값은 파티션 시작 주소의 헤드, 섹터 및 실린더와 동일합니다. 상대 섹터 0은 실린더 0, 헤드 0, 섹터 1과 동일합니다. 상대 섹터 번호는 먼저 헤드의 각 섹터에 대해 증가한 다음 각 헤드에 대해 증가하고 마지막으로 각 실린더에 대해 증가합니다.

    적용 가능한 공식:

    Rel_sec = (#cyl * sec_per_cyl * 헤드) + (#Goal * sec_per_cyl) + (#sec -1)

    파티션은 실린더 0, 헤드 0, 섹터 2에서 시작할 수 있는 첫 번째 파티션을 제외하고 짝수 실린더 번호에서 시작합니다(섹터 1은 마스터 부트 레코드에 의해 점유되기 때문).

    파티션 루트 항목이 제어하면 DS:SI는 해당 파티션 테이블 항목을 가리킵니다.

루트 섹터의 구조

표 4플로피 디스크 또는 하드 디스크 파티션의 루트 섹터 형식

00시3 JMPxx xxNEAR 다운로드 코드로 이동
03시8 "나""비""중" "4" "." "0" OEM 회사 이름 및 시스템 버전
0bh2 종파섹터당 바이트 수(항상 512)BPB 시작
0Dh1 클러스터 크기클러스터의 섹터 수
0에2 레스섹예비 섹터 수(FAT #1 이전 섹터)
10시1 FatCntFAT 테이블 수
11시2 RootSiz32바이트 루트 디렉토리 항목 수(FAT32의 경우 0)
13시2 TotSecs미디어의 총 섹터 수(DOS 파티션)
15시1 미디어미디어 유형(FAT 첫 번째 바이트와 동일)
16시2 살찌다한 FAT의 섹터 수BPB 끝
18시2 TrkSecs 트랙당 섹터 수
1Ah2 HeadCnt 머리의 수
1Ch4 HidnSec숨겨진 섹터 수(파티션 구성표에 사용됨)
20시4 TotSecs크기가 >32MB인 경우 총 섹터
24시간1 128 디스크 물리적 번호
25시1 예약하다
26시간1 29시 확장 구조의 표시
27시4 볼륨 ID(일련 번호)
2bhbh 라벨(이름 없음)
36시간8 파일 시스템 ID(FAT12)
3어 코드 시작 및 데이터 다운로드

노트:

  1. 저장 매체 유형:
    • F0h - 플로피 디스크, 2면, 트랙당 18섹터;
    • F8h - 하드 드라이브;
    • F9h - 플로피 디스크, 2면, 트랙당 15섹터;
    • FCh - 플로피 디스크, 1면, 트랙당 9섹터;
    • FDh - 플로피 디스크, 2면, 트랙당 9섹터;
    • FEh - 플로피 디스크, 1면, 트랙당 8섹터;
    • FFh - 플로피 디스크, 2면, 트랙당 8섹터.
  2. 절대 읽기 INT 25h(DX=0)를 사용하여 이 섹터를 읽으십시오. 또는:
    • 플로피 디스크: 루트 섹터 = BIOS INT 13h 헤드 0, 트랙 0, 섹터 1;
    • 하드: 헤드/트랙/섹터 BIOS에 대한 파티션 테이블을 읽습니다.
  3. BPB(BIOS Parameter Block) - root_sector에 포함된 데이터의 하위 집합입니다. 드라이버 "Build BPB"에 대한 요청은 드라이버가 위에서 언급한 블록을 완료하도록 요구합니다. BPB 길이 = 13바이트

플로피 매개변수 테이블

이 10바이트 구조는 "디스크 기본 테이블"이라고도 합니다. 인터럽트 벡터 주소 INT 1Eh(0:0078의 4바이트 주소)에 위치합니다. 이 표는 플로피 드라이브에 대한 몇 가지 중요한 변수를 정의합니다. ROM-BIOS에 의해 초기화되고 플로피 성능을 향상시키기 위해 DOS에 의해 수정됩니다.

표 5디스크 매개변수 테이블 형식

편견길이콘텐츠
00시1 첫 번째 사양 바이트:
비트 0-3 - 헤드 로딩 시간;
비트 4-7 - 헤드 스텝 기간
01시1 두 번째 사양 바이트:
비트 0 - DMA 모드 플래그;
비트 1-7 - 헤드 로딩 시간
02시1 모터를 끄기 전 지연(시스템 시계의 "틱" 단위)
03시1 섹터 크기(바이트): 0 - 128, 1 - 256, 2 - 512, 3 - 1024
04시1 트랙당 섹터 수
05시1 읽기/쓰기 작업을 위한 섹터 간 갭 길이
06시1 데이터 영역 길이
07시1 포맷 작업을 위한 교차 간격의 길이
08시1 서식 지정을 위한 자리 표시자(일반적으로 0F6h, 즉 "Ў")
09시1 헤드 설정 시간(밀리초)
0아1 모터 시작 시간(1/8초)

하드 디스크 매개변수 테이블

이 16바이트 구조는 인터럽트 벡터 주소 INT 41h(0:0104의 4바이트 주소)에 있습니다. 두 번째 하드 디스크(있는 경우)의 매개변수는 벡터 INT 46h의 주소에 있습니다. 이 테이블은 하드 디스크 작업에 대한 몇 가지 중요한 변수를 정의합니다.

표 6하드 디스크 테이블 형식

편견길이콘텐츠
00시2 실린더 수
02시1 머리의 수
03시2 사용하지 않음(항상 0)
05시2 사전 보상 초기 실린더 번호
07시1 최대 ECC 블록 길이
08시1 제어 바이트:
비트 0-2 - 사용되지 않음(항상 0);
비트 3 - 헤드 수가 8보다 크면 설정합니다.
비트 4 - 사용되지 않음(항상 0);
비트 5 - 제조업체가 "최대 작동 실린더 + 1"이라는 숫자로 실린더에 결함 맵을 배치한 경우 설정합니다.
비트 6 - 반복되는 ECC 제어 금지;
비트 7 - ECC 제어 비활성화
09시1 사용하지 않음(항상 0)
0아1 사용하지 않음(항상 0)
0bh1 사용하지 않음(항상 0)
0채널2 주차장 실린더 번호
0에1 트랙당 섹터 수
0시1 예약하다

파일 할당 테이블(FAT)

파일 크기는 시간이 지남에 따라 변경될 수 있습니다. 파일이 인접한 섹터에만 저장되도록 허용하면 파일 크기가 증가하면 OS는 파일을 디스크의 다른 적절한 볼륨(여유) 영역에 완전히 다시 써야 합니다. 새 데이터를 파일에 추가하는 작업을 단순화하고 속도를 높이기 위해 최신 운영 체제는 파일 할당 테이블(FAT로 약칭되는 파일 할당 테이블)을 사용하여 여러 개의 비연속 섹션 형태로 파일을 저장할 수 있습니다.

FAT를 사용할 때 논리 디스크의 데이터 영역은 동일한 크기의 섹션으로 나뉩니다. 클러스터. 클러스터는 디스크에서 하나 이상의 연속 섹터로 구성될 수 있습니다. 클러스터의 섹터 수는 2N의 배수여야 하며 1에서 64까지의 값을 가질 수 있습니다(클러스터 크기는 사용된 FAT 유형과 논리 디스크 크기에 따라 다름).

각 클러스터에는 FAT 테이블에 자체 항목이 있습니다. 처음 두 개의 FAT 요소는 예약되어 있습니다. 디스크에 K개의 데이터 클러스터가 있는 경우 FAT 요소의 수는 K + 2와 같습니다. FAT 유형은 K 값에 의해 결정됩니다.

  1. K라면<4085 - используется FAT12;
  2. 4084>K인 경우<65525 - используется FAT16;
  3. 65524>K인 경우 - FAT32가 사용됩니다.

FAT 유형의 이름은 요소의 크기에서 나옵니다. 따라서 FAT12 요소의 크기는 12비트, FAT16 - 16비트, FAT32 - 32비트입니다. FAT32에서 4개의 최상위 2진수는 예약되어 있으며 OS 작동 중에 무시됩니다(즉, 요소의 7개의 최하위 16진수만 유효함).

FAT는 OS가 디스크에서 데이터의 물리적 위치를 추적하고 새 파일을 위한 여유 메모리를 찾기 위해 사용하는 연결 목록입니다.

각 파일의 파일 디렉토리(목차)에는 파일 배포 체인의 첫 번째 클러스터에 해당하는 FAT 테이블의 초기 요소 번호가 포함됩니다. 해당 FAT 요소는 체인의 끝을 나타내거나 다음 요소를 참조하는 식입니다. 예:

이 다이어그램은 FAT의 기본 개념을 보여줍니다. 다음을 보여줍니다.

  1. MYFILE.TXT는 10개의 클러스터를 차지합니다. 첫 번째 클러스터는 클러스터 08이고 마지막 클러스터는 1Bh입니다. 클러스터 체인 - 08h, 09h, 0Ah, 0Bh, 15h, 16h, 17h, 19h, 1Ah, 1Bh. 각 요소는 체인의 다음 요소를 가리키며 마지막 요소에는 특수 코드가 포함됩니다(표 7 참조).
  2. 클러스터 18h는 결함으로 표시되며 배포 체인의 일부가 아닙니다.
  3. 클러스터 06h, 07h, 0Ch-14h 및 1Ch-1Fh는 비어 있으며 할당할 수 있습니다.
  4. 또 다른 체인은 클러스터 02h로 시작하여 클러스터 05h로 끝납니다. 파일 이름을 찾으려면 초기 클러스터 번호가 02h인 목차 항목을 찾아야 합니다.

표 7 FAT 요소의 의미

FAT는 일반적으로 DOS 파티션의 논리 섹터 1에서 시작합니다(즉, DX=1인 INT 25h에서 읽을 수 있음). 일반적으로 먼저 root_sector(DX=0)를 읽고 오프셋 0Eh를 가져와야 합니다. FAT 앞에 얼마나 많은 루트 및 예비 섹터가 있는지 나타냅니다. 그런 다음 이 숫자(보통 1)를 DX의 내용으로 사용하여 INT 25h를 통해 FAT를 읽습니다.

FAT 사본이 여러 개 있을 수 있습니다. 일반적으로 두 개의 동일한 사본이 지원됩니다. 이 경우 모든 복사본은 서로 바로 옆에 있습니다.

논평:

  • 일반적인 오해는 16비트 FAT가 DOS가 32MB보다 큰 디스크에서 작동하지 못하게 한다는 것입니다. 실제로 제한은 INT 25h/26h가 65535보다 큰 SECTORS와 함께 작동할 수 없다는 것입니다. 섹터 크기는 일반적으로 512바이트 또는 0.5킬로바이트이므로 32메가바이트로 제한됩니다. 반면에 더 큰 섹터를 갖는 것을 방해하는 것은 없으므로 이론적으로 DOS는 모든 디스크에서 작동할 수 있습니다.
  1. 클러스터 번호에 3을 곱합니다.
  2. 요소 번호가 짝수이면 읽은 워드와 마스크 0FFFh에 대해 AND 연산을 수행합니다. 요소 번호가 홀수이면 값을 오른쪽으로 4비트 이동합니다. 결과적으로 FAT 요소의 원하는 값을 얻습니다.

이제 FAT12에 요소를 쓰는 절차를 고려하십시오.

  1. 클러스터 번호에 3을 곱합니다.
  2. 결과를 2로 나눕니다(요소 길이는 1.5(3/2)바이트).
  3. 이전 작업의 결과를 주소로 사용하여 FAT에서 16비트 워드를 읽습니다.
  4. 요소 번호가 짝수이면 읽은 워드와 마스크 0F000h에 대해 AND 연산을 수행한 다음 결과와 쓰고 있는 요소의 값에 대해 OR 연산을 수행합니다. 요소 번호가 홀수이고 읽기 단어와 마스크가 0F000h인 경우 값을 왼쪽으로 4비트 이동하고 이전 작업의 결과를 OR합니다.
  5. 결과 16비트 워드를 다시 FAT에 씁니다.

논평:

  • 12비트 항목은 두 섹터 경계를 넘을 수 있으므로 한 번에 하나의 FAT 섹터를 읽을 때 주의하십시오.
    16비트 요소가 더 간단합니다. 각 요소에는 체인의 다음 요소에 대한 16비트 오프셋(FAT 시작부터)이 포함됩니다.
    32비트 요소 - 각 요소에는 체인의 다음 요소에 대한 32비트 오프셋이 포함됩니다.

어셈블리 언어 프로그램은 종종 MUL 명령어 대신 "이동 및 추가" 알고리즘을 사용하여 3으로 곱하기를 수행합니다. 추가됩니다(x + 2x = 3x). DIV 명령 대신 오른쪽으로 1비트 시프트가 사용됩니다.

FAT 항목에는 클러스터 번호가 포함되어 있지만 낮은 수준의 디스크로 작업할 때 주소 지정 가능한 데이터 단위는 클러스터가 아니라 섹터입니다.

플로피 디스크(또는 하드 디스크 파티션)는 다음과 같이 구성됩니다.

  1. 루트 및 예비 섹터;
  2. FAT#1;
  3. FAT#2;
  4. 루트 디렉토리(FAT32에는 존재하지 않음);
  5. 데이터 영역.

이 구조의 각 섹션에는 가변 길이가 있으며 클러스터 번호를 섹터 번호로 올바르게 변환하려면 이러한 각 섹션의 길이를 알아야 합니다.

클러스터 번호 ClustNum(디렉토리 항목 또는 FAT 체인의 해당 필드에서 읽음)에서 클러스터 시작 섹터 번호를 얻으려면 문서화되지 않은 OS 32h 함수를 사용하거나 루트 섹터를 읽고 다음 공식을 적용할 수 있습니다.

root_sectors = (RootSiz * 32) / 512 data_start = ResSecs + (FatSize * FatCnt) + root_sectors_start_sector = data_start + ((ClustNum - 2) * ClustSiz) ,

여기서 변수 값: RootSiz , ResSecs , FatSize , FatCnt , ClustSiz 는 루트 섹터 또는 BPB 에서 가져옵니다.

INT 25h 읽기 또는 INT 26h 쓰기 작업 전에 DX=start_sector를 설정하십시오.

파일 디렉토리

파일 디렉토리는 32바이트 요소(파일 설명자)의 배열입니다. 운영 체제의 관점에서 볼 때 모든 디렉토리(FAT12 및 FAT16 시스템의 루트 디렉토리 제외)는 파일처럼 보이며 임의 개수의 항목을 포함할 수 있습니다.

루트 디렉토리는 하위 디렉토리 트리가 시작되는 디스크의 기본 디렉토리입니다. 논리 디스크의 시스템 영역에 있는 FAT12 및 FAT16의 루트 디렉토리에는 512개의 요소를 저장하도록 설계된 고정 크기(16KB)의 특수 위치가 할당됩니다. FAT32 시스템에서 루트 디렉토리는 임의 크기의 파일입니다.

표 8디렉토리 요소 구조

편견길이콘텐츠
00시11 짧은 파일 이름
0bh1 파일 속성
0시1 *Windows NT용으로 예약됨(0이어야 함)
0Dh1 *파일 생성 시간을 지정하는 필드(수십 밀리초 단위).
필드 값의 범위는 0~199입니다.
0에2 *파일 생성 시간
10시2 *파일 생성 날짜
12시2 *데이터를 쓰거나 읽기 위해 파일에 마지막으로 액세스한 날짜
14시2 * 파일의 첫 번째 클러스터 번호의 상위 워드
16시2 파일에 대한 마지막 쓰기 작업 시간
18시2 파일이 마지막으로 작성된 날짜
1Ah2 파일의 첫 번째 클러스터 번호의 하위 워드
1Ch4 파일 크기(바이트)(32비트 숫자)

"*" 기호는 필드가 FAT32 파일 시스템에서만 처리됨을 의미합니다. FAT12 및 FAT16 시스템에서 필드는 예약된 것으로 간주되며 값 0을 포함합니다.

짧은 파일 이름은 실제 파일 이름을 포함하는 8바이트 필드와 확장자를 포함하는 3바이트 필드의 두 필드로 구성됩니다. 사용자가 입력한 파일 이름이 8자 미만이면 공백으로 채워지고(공백 코드 - 20h) 입력한 확장자가 3자 미만이면 공백으로 채워집니다.

일부 DOS 기능은 매개변수로 파일 속성의 바이트를 필요로 합니다. 파일에 해당 속성이 있는 경우 특성 바이트 비트는 1로 설정됩니다.

  • 비트 0 - 읽기 전용;
  • 비트 1 - 숨김;
  • 비트 2 - 시스템;
  • 비트 3 - 볼륨 식별자;
  • 비트 4 - 디렉토리;
  • 비트 5 - 아카이브됨;
  • 비트 6과 7은 예약되어 있습니다(0으로 설정).

파일 생성 시간 필드와 마지막 파일 쓰기 작업 시간 필드의 형식은 다음과 같습니다.

15 9 8 5 4 0

파일을 생성할 때 날짜는 MS-DOS 시대의 시작부터 계산됩니다. 1980년 1월 1일자. 비트 9-15에는 연도 숫자에서 1980을 뺀 값이 포함됩니다(유효한 값은 0에서 127까지임).

긴 파일 이름

Windows 95부터는 짧은 이름 외에도 파일에 소위 긴 이름을 지정할 수 있습니다. 긴 이름을 저장하기 위해 기본 요소인 파일 설명자에 인접한 빈 디렉터리 요소가 사용됩니다. 속성 바이트의 비트 0-3에 1이 있다는 것은 자유 디렉토리 요소가 긴 파일 이름의 섹션을 저장하는 데 사용된다는 표시입니다(이 조합은 파일 및 디렉토리 설명자에 대해 가능하지 않음). 짧은 파일 이름과 긴 파일 이름은 고유합니다. 같은 디렉터리에서 두 번 발생하면 안 됩니다.

긴 이름은 ASCII 문자가 아닌 유니코드 형식으로 작성되며 각 국가별 알파벳은 코드 집합에 해당합니다. 유니코드의 다양성에 대한 보상은 저장 밀도의 감소입니다. 각 문자는 2바이트(16비트 워드)를 차지합니다. 디렉토리의 빈 요소에는 긴 이름이 잘린 형태로 기록됩니다(표 9 참조).

표 9긴 파일 이름의 조각을 저장하는 디렉토리 요소의 구조

긴 이름은 먼저 디렉터리에 기록되며 조각은 마지막 이름부터 역순으로 배치됩니다.

루트를 제외한 모든 디렉토리는 처음 두 요소에 파일 설명자 대신 특수 링크를 포함합니다. 요소 #0에는 디렉토리 자체에 대한 포인터가 포함되어 있으며 이름 필드에는 단일 점(".")이 포함되어 있습니다. 요소 #1에는 상위 디렉토리에 대한 포인터가 포함되어 있으며 이름 필드에는 두 개의 점("..")이 포함되어 있습니다. 항목 #1에 대한 FAT 테이블에 대한 링크가 null이면 현재 디렉토리는 루트 디렉토리에 있습니다.

디스크 정보 블록은 UNDOCUMENTED DOS 기능 32h에 의해 형성됩니다.

여기에 포함된 모든 정보는 루트 섹터를 읽고 일부 계산을 통해 다른 여러 OS 함수를 호출하여 얻을 수 있지만 정보 블록은 모든 데이터를 함께 포함한다는 점에서 편리합니다. 이것은 장치 드라이버 헤더의 주소를 반환하는 유일한 호출입니다.

표 10디스크 정보 블록 다이어그램

편견길이콘텐츠
00시1 디스크 번호(0=A, 1=B 등)
01시1 장치 헤더의 하위 장치 번호(하나의 드라이버가 여러 드라이브를 제어할 수 있음)
02시2 섹터 크기(바이트)
04시1 클러스터당 섹터 수 -1(클러스터당 최대 섹터)
05시1 클러스터를 섹터로 이동(클러스터 = 2섹터 수)(2의 거듭제곱으로 클러스터당 섹터: 4의 경우 2, 8의 경우 3)
06시2 예비 섹터 수(루트, 루트 ogl 시작)(첫 번째 FAT 섹터의 N)
08시1 FAT 테이블 수
09시2 최대 루트 목차의 항목 수
0bh2 클러스터 #2(첫 번째 데이터 클러스터)의 섹터 번호
0Dh2 총 클러스터 +2(가장 높은 클러스터 번호)
0시1 하나의 FAT가 차지하는 섹터 수
10시2 루트 TOC 시작 부분의 섹터 번호
12시4 Device_header 주소
16시1 Bearer_Descriptor 바이트
17시1 액세스 플래그: 장치에 액세스한 경우 0
18시4 다음 디스크 정보 블록의 주소
(블록이 마지막인 경우 0FFFFh)

개방 모드 비트 플래그:

  1. 0-2: 프로세스의 네트워크 권한
    000 - 읽기; 001 - 기록; 010 - 읽기와 쓰기.
  2. 4-6: 분할 모드:
    000 - 호환성 모드
    001 = 독점 파일 캡처
    010 = 쓰기 거부
    011 = 읽기 거부
    100 = 아무것도 거부하지 않음
  3. 7: 상속:
    1 - 파일은 이 프로세스 전용입니다. 0 - 자식 프로세스에 의해 상속됨

파일 특성 바이트가 읽기 전용을 나타내는 경우 이러한 플래그를 재정의합니다.

네트워크 권한 및 공유 모드 비트는 SHARE 프로그램이 설치된 경우에만 적용됩니다.