리눅스 (및 1980 시대 유닉스), 기억 장치 (자주 A의 디스크 파티션 일부에 하드 디스크 , 또는 일부에 SSD ) 블록 인 디바이스 (참조 이것을 ) 때문에 [서브] 서열 인 블록 (어느 것이 인 물리적 I / O 의 기본 단위 ). 물리적 블록 크기는 하드웨어 (오래된 IDE 디스크의 블록 크기는 512 바이트, 새로운 대형 SATA 디스크의 블록 크기는 4KB, 고급 형식 위키 페이지 읽기 ) 및 파일 시스템을 만들 때 (예 : mke2fsmkfs
참조)에 따라 다릅니다. (8)) 물리적 블록 크기의 배수 (종종 1을 포함하여 2의 작은 거듭 제곱) 인 논리적 블록 크기를 지정할 수 있습니다. 논리 블록 주소 지정에 대해서도 읽으십시오 .
과거 (1990 년대의 Sun3 워크 스테이션을 생각할 때) 디스크는 섹터를 구성하고 ( CHS 위키 페이지 읽기 ) 섹터가 블록을 포함하는 실린더로 만들어졌습니다 . 오늘날에도 여전히 남아 있지만 하드 디스크 컨트롤러 (디스크 자체의 회로)에서 제공하는 인공 인공물입니다. 일부 OS에서 블록 장치 드라이버는 디스크 헤드 이동 및 회전 대기 시간 을 최소화하기 위해 IO 요청을 다시 예약하고 순서를 변경했습니다 .
이렇게하면 파일 시스템이 모든 유형의 저장 장치 (일반 하드 디스크, SSD, USB 플래시 드라이브 등)와 작동 할 수 있으며 저장 장치의 장치 드라이버 만 변경됩니다.
그렇습니다. 그러나 악한 내용은 세부 사항에 있습니다 (예 : SSD에 대한 TRIM 및 Write Amplification 에 대해 읽어보십시오 ). 그리고 세부 사항이 중요하므로 실제 구현은 그림보다 간단하지 않습니다. 파일 시스템 에 대해 자세히 알아보십시오 ( SMB 및 NFS를 포함한 클러스터 및 원격 파일 시스템을 생각 하십시오 . 또한 Logical Volume Manager에 대해서도 읽으십시오 ).
읽기 운영 체제 : 세 가지 쉬운 조각 (및 그 지속성 부분).
통지 블록 장치가 FreeBSD의에 사라 (실제로는 문자와 블록 장치에 대한 공통의 추상화를 제공한다). Windows에서도 OS가 파티션, 블록 크기 등에 대해 알고 있다고 생각하지만 확인해야합니다.