블록 장치란 무엇입니까? [복사]

블록 장치란 무엇입니까? [복사]

나는 블록 장치(HDD, SSD, 파일...)에 대한 많은 예를 알고 있지만 이에 대한 간단한 정의를 들어본 적이 없습니다. 특히 정의에는 파일이 당연히 포함되어 있기 때문에 조금 헷갈리는데요...

답변1

어쩌면 당신은 결코 간단한 정의를 찾지 못할 수도 있습니다. 그러나 가장 일반적이고 간단한 방법으로 문자 장치를 블록 장치와 비교하면 바이트를 입력하면 해당 바이트가 하드웨어에 액세스할 수 있는 것처럼 문자 장치는 하드웨어에 대한 직접 액세스를 제공한다고 말할 수 있습니다. 물론 요즘처럼 간단하지는 않습니다.) 반면에 블록 장치는 다양한 크기의 블록으로 장치를 읽고 씁니다. 블록 크기를 지정할 수 있으나, 통신이 한 번에 한 블록씩 이루어지기 때문에 버퍼링 시간이 소요됩니다.

블록 장치는 한 번에 한 블록씩 데이터를 읽고 쓰는 하드 드라이브인 반면, 문자 장치는 직렬 포트입니다. 1바이트의 데이터를 보내면 상대방이 해당 바이트를 받은 후 다음 바이트 등을 받습니다.

다시 말하지만, 이것은 설명하기 쉬운 개념이 아닙니다. 내가 제공하는 예는 대략적인 일반화이며 각 예의 특정 구현에 대해 쉽게 반증될 수 있습니다.

답변2

블록 특수 파일 또는 블록 장치는:

장치를 참조하는 파일입니다. 블록 특수 파일은 일반적으로 다음과 연결됩니다.캐릭터 특수 파일장치의 하드웨어 기능을 보이지 않게 만드는 방식으로 장치에 대한 액세스를 제공합니다.

정확한 하드웨어 특성은 커널 또는 드라이버 수준 캐시를 통해 추상화됩니다. 블록 장치는 일반적으로 디스크 드라이브와 같은 하드웨어를 나타내지만 이는 플랫폼에 따라 다릅니다. FreeBSD블록 장치가 전혀 없습니다, 예를 들어.

일반적으로 파일은 장치가 아닙니다.

파일을 참조할 때 "블록 장치"는 (아마도) 그 안에 있는 특정 장치 파일을 나타냅니다 /dev. 이는 대부분 드라이버에 의해 노출되는 인터페이스를 포함하는 사용자 수준의 구현 세부 사항입니다. 많은 유형의 하드웨어가 내부적으로 블록 구조로 되어 있지만 블록 장치와 문자 장치를 모두 사용하여 액세스할 수 있습니다.

관련 정보