파일 시스템은 운영 체제의 일부입니까? 내 이해가 맞습니까? 그러나 Wikipedia에서 :

저장 장치의 파일 시스템이 OS의 일부인지 궁금합니다.

나는 그렇게 생각하지 않습니다. 대신 스토리지 장치의 일부이며 OS에 의해 작성되었지만 OS 외부에 존재합니다. 내 이해가 맞습니까?

그러나 Wikipedia에서 :

파일 시스템은 모든 최신 운영 체제의 필수 요소이므로 대부분의 운영 체제는 파일 시스템을 제공합니다.

LVM의 경우 OS의 일부입니까? 그렇다면 LVM에 구축 된 가상 파일 시스템은 OS의 일부입니까?



답변

스토리지 표현에 대한 물리적 정보 순서로 표시되는 파일 시스템 자체는 OS와 무관합니다. OS에는 파일 시스템과 작업 할 수있는 드라이버가 포함되어 있습니다. 일부 파일 시스템에는 통신 할 수있는 OS가 하나만있을 수 있으며 OS에는 해당 파일 시스템이 하드 코드되어 있습니다 (Novell NetWare의 원래 파일 시스템을 생각하십시오). 그러나 그것은 일부 진취적인 사람이 다른 OS 용으로 그러한 드라이버를 작성하는 것을 막지는 않습니다.

LVM은 파일 시스템이 아니며 볼륨 관리자입니다. 파일 시스템과 같은 볼륨 관리자는 논리 스토리지 프리젠 테이션에 저장된 데이터를 사용하여 추가 논리 볼륨을 위해 해당 스토리지에 액세스하는 방법을 추가로 정의합니다. LVM의 경우 Linux와 BSD는 각각의 LVM 구현에 동일한 온-스토리지 형식을 사용할 수 있습니다.

Windows 볼륨 관리자는 동적 디스크이며 일부 진취적인 사람들은 액세스하기 위해 Linux 드라이버를 만들었습니다.

디스크 세트를 가져 와서 어떤 종류의 Linux를 설치하고 LVM으로 설정하고 ext3논리 볼륨에 여러 파일 시스템을 설치 한 다음 드라이브를 FreeBSD 머신에두면 FreeBSD 머신이 디스크를 읽을 수 있습니다 . 아마. FreeBSD에는 LVM과 ext3의 물리적 레이아웃을 이해하고 필요한 in-OS 메모리와 상호 작용하는 데 필요한 액세스 구조를 구현하는 드라이버가 있기 때문입니다.

드라이버 스토리지 레이아웃을 해석하는 데 필요한 거의 항상 “는 OS에서”하지만, 실제 스토리지는 자체로 간주되지 않는다 레이아웃.


답변

ServerFault에서 이것에 대해 대답했습니다 . 다시 답이 있습니다.

여기서 문제는 “파일 시스템”이라는 단어입니다. POSIX / Unix / Linux 환경에서는 여러 가지 다른 의미로 사용됩니다.

  1. “파일 시스템”은 때때로 /운영 체제 커널에 의해 응용 프로그램 소프트웨어에 기반하고있는 파일의 전체 시스템입니다 . 이러한 의미에서 사람들 은 예를 들어 “단일 파일 시스템 트리 “를 갖는 POSIX 운영 체제에 대해 이야기 합니다.
  2. A “파일 시스템”은 종종 하나 (또는 그 이상) 인 조각은 하나 또는 단일 서식이 인접 디스크의 섹터 더 모음 – A (또는 다수의) 직접 접근 기억 장치 (들) 또는 DASD (들)의 A의 주어진 형식-일부 디스크 파티션 구성표에 의해 구분됩니다. 이러한 의미에서 사람들은 “내 /usr파일 시스템 포맷팅”에 대해 이야기 합니다.
  3. “파일 시스템”은 파일 시스템 드라이버 (예 : VFS 계층)에 의해 나머지 시스템에 제공되는 추상 결합 가능한 파일 및 디렉토리 트리입니다. 이러한 의미로 사람들 은 ” proc 파일 시스템 을 마운트하는”에 대해 이야기 /proc합니다.

Wikipedia의 산문은 # 1을 의미합니다. 이것은 실제로 운영 체제가 운영 체제의 일부이며 운영 체제에서 실행되는 응용 프로그램 소프트웨어에 제공되는 운영 체제 특정 추상화입니다.

의미 # 2는 운영 체제의 일부가 아닙니다. 하나 이상의 운영 체제가 이해할 수있는 온 디스크 데이터 구조입니다. LVM의 온 디스크 데이터 구조는 특히 하나 이상의 DASD를 하나 이상의 볼륨으로 분할하는 방법을 제공합니다. 그것들은 운영 체제 자체의 일부가 아닙니다. (그러나, 유사, “LVM은”여러 의미를 가지고 있으며, 그것은 그 드라이버와 유틸리티가 조작하는 온 디스크 데이터 구조를 의미 할만큼 운영 체제에서 LVM 드라이버 및 유틸리티를 의미 할 수있다. 예를 들어 “나는 도망 LVM를 으로부터 구조 디스크. “)

의미 # 3은 운영 체제 별 파일 시스템 드라이버가 제공하는 운영 체제 별 추상화입니다. 파일 시스템 드라이버는 실제로 운영 체제의 일부이지만 운영 체제 커널 과는 별개이며 별개입니다 .


답변

파일 시스템은 운영 체제에서 작성, 유지 보수 및 사용되지만 운영 체제와 무관하게 해당 표현이 존재할 수 있다는 결론을 내릴 수 있습니다.


답변

“운영 체제”에 대한 공식적인 정의는 없습니다. 일부는 “운영 체제”와 “파일 관리 API”가 하나이며 동일하며 OS가 명령 분석기를 제공하는 것 외에는 아무것도 할 일이 없었습니다. (이것은 원래 MS-DOS가했던 전부입니다.)

저는 항상 DOS가 실제 운영 체제가 아니라는 것을 유지했습니다. 운영 체제의 업무는 하드웨어를 추상화하고 가상화하고 하드웨어 리소스를 관리하는 것입니다. DOS는 본질적으로 아무것도하지 않았다.

파일 시스템이 OS의 일부인지 또는 “스토리지 장치”의 일부인지에 대해서는 “파일 시스템”의 의미에 따라 달라집니다. 플로피 디스크 또는 CD의 레이아웃과 같은 물리적 레이아웃이 있으며 파일 시스템 FUNCTION이 있습니다.이 기능은 디스크에서 말도 안되는 부분을 가져 오는 지능형 개체 (CPU 또는 일종의 주변 장치 프로세서)가 있어야합니다. 의미있는 바이트 시퀀스로 사용됩니다. 레이아웃은 아마도 일부 표준을 준수하므로, 한 장치에서 CD를 기록하고 다른 장치에서 읽거나 재생할 수 있습니다. 문제는이 레이아웃이 “파일 시스템”인지 또는 “시스템”이 레이아웃을 읽고 쓸만큼 영리한 장치에 있는지 여부입니다.

대부분의 컴퓨터 상황에서 “파일 시스템”이라는 용어를 사용하여 파일을 읽고 쓸 수있는 API와 일부 OS의 제어하에 작동하여 해당 API를 구현하는 CPU와 주변 장치의 조합을 말합니다. 이 용어는 일반적으로 미디어의 물리적 형식 또는 개별 미디어를 제거 할 수 있는지 여부와 관계가 없습니다.


답변

특정 구현 은 OS의 일부입니다. 추상적 인 아이디어, 사양 및 저장된 데이터는 그렇지 않습니다.


답변

디스크 드라이브 및 디스크 드라이브와 유사한 장치는 “멍청한”입니다. LBA를 요청하면 포함 된 512, 2048 또는 4096 바이트를 반환합니다. 그 반대의 경우도 마찬가지입니다.

파일 시스템 계층을 사용하면 “c : \ users \ public \ documents \ whatever.doc”이라고 말하고 스트리밍 작업 (열기, 읽기, 쓰기, 찾기, 닫기)을 수행 할 수 있습니다. 이름을 지정할 수있는 위치에서 시리즈로 변환합니다. LBA 읽기 / 쓰기 요청 수

따라서 파일 시스템 계층에는 디스크 드라이브와 같은 (또는 블록) 장치와 통신하는 한 쪽과 운영 체제와 통신하는 다른 쪽이 있습니다. 이것은 운영 체제에 대한 특이성이 작용하는 곳입니다. 일반적으로 파일 시스템의 블록 장치 쪽은 장치 드라이버이고 운영 체제 쪽은 응용 프로그램에서 사용할 수있는 API입니다. 그러나 이들은 인터페이스 일 뿐이며 실제로 파일 시스템 계층의 기본 작업에 영향을 줄 필요는 없습니다.

모든 파일 시스템은 파일에 대한 정보를 추적하기 위해 (예 : 권한, 속성 등을 기록하기 위해) 추가 데이터가 파일 데이터 외부에서 쓰여지고 읽히도록합니다.

운영 체제 파일이 파일 시스템에 저장되어 있기 때문에 부팅에 약간의 문제가 있습니다. 그러나 파일 시스템 계층이 아직 활성화되지 않은 경우 어떻게로드됩니까? Linux는 초기 램 디스크를 사용하거나 커널의 일부로 파일 시스템 코드를 빌드하여이 문제를 해결합니다. Windows는 Windows 부트 로더에 FAT 및 NTFS 파티션을 읽을 수있는 기능을 제공하여이 문제를 해결합니다. 부트 로더는 LBA 0 만로드하여 실행하고 나중에 지능적으로 그리고 UEFI, U- 부팅 등의 자체 파일 시스템 계층을 사용하여 코드를 가져올 것으로 예상하는 대부분의 기존 BIOS 부트 로더처럼 바보가 될 수 있습니다.

LVM은 파일 시스템이 아닙니다. 하나 이상의 블록 장치를 가져 와서 다른 “가상”블록 장치로 추상화합니다 ( /dev/mapper모든 /dev/mapper것이 가상 블록 장치 임). 파일 시스템을 파티션의 “맨 위에”배치하는 것과 같은 방식으로 LVM “맨 위에”파일 시스템을 배치합니다. LVM은 하나 이상의 장치 드라이버와 파일 시스템 사이에있는 다른 계층으로, 가상 블록 장치의 LBA에 대한 읽기 및 쓰기를 하나 이상의 다른 블록 장치로 변환합니다. 그렇습니다. LVM은 가상 블록 장치 일 수 있으며 캐스케이드를 연결할 수 있습니다.