UNIX 시스템의 문자 특수 파일과 블록 특수 파일이란 무엇입니까? [복사]

UNIX 시스템의 문자 특수 파일과 블록 특수 파일이란 무엇입니까? [복사]

Unix 계열 시스템의 문자 특수 파일과 블록 특수 파일은 일반 파일과 어떻게 다릅니까? 왜 각각 "캐릭터 스페셜"과 "블록 스페셜"이라고 부르나요?

답변1

프로그램이 파일에서 데이터를 읽거나 쓸 때 요청은 커널 드라이버로 전송됩니다. 파일이 일반 파일인 경우 데이터는 파일 시스템 드라이버에 의해 처리되어 일반적으로 디스크나 기타 저장 매체의 특정 영역에 저장되며, 파일에서 읽어오는 데이터는 이전에 해당 위치에 기록된 데이터입니다. 다양한 상황이 발생하는 다른 파일 형식이 있습니다.

장치 파일에서 데이터를 읽거나 쓸 때 해당 요청은 장치 드라이버에 의해 처리됩니다. 각 장치 파일에는 사용할 드라이버를 식별하는 관련 번호가 있습니다. 장치가 데이터를 처리하는 방식은 장치 자체의 문제입니다.

블록 장치(블록 특수 파일이라고도 함)는 일반적으로 일반 파일과 매우 유사하게 동작합니다. 즉, 바이트 배열이고 지정된 위치에서 읽은 값은 해당 위치에 기록된 마지막 값입니다. 블록 장치의 데이터는 메모리에 캐시될 수 있으며 쓰기는 캐시에서 다시 읽을 수 있습니다. 블록 장치는 일반적으로 검색 가능합니다. 즉, 애플리케이션은 파일 내의 위치 개념을 변경할 수 있습니다. "블록 장치"라는 이름은 해당 하드웨어가 일반적으로 전체 블록(예: 하드 디스크의 섹터)을 한 번에 읽고 쓴다는 사실에서 유래되었습니다.

문자 장치(문자 특수 파일이라고도 함)는 파이프, 직렬 포트 등과 같이 작동합니다. 쓰거나 읽는 것은 즉각적인 작업입니다. 운전자가 데이터를 처리하는 방법은 운전자 자신의 사업입니다. 문자 장치에 바이트를 쓰면 화면에 표시되고 직렬 포트에 출력되고 사운드로 변환될 수 있습니다. 장치에서 바이트를 읽으면 직렬 포트가 입력을 기다리게 되어 임의의 숫자를 반환할 수 있습니다. byte ( /dev/urandom), ... "문자 장치"라는 이름은 각 문자를 개별적으로 처리한다는 사실에서 유래되었습니다.

바라보다위키피디아그리고/dev, 하위 디렉터리 및 파일 이해더 많은 정보를 알고 싶습니다.

답변2

이는 드라이버를 가리키며 다음에 의해 생성될 수 있습니다.mknod. 매뉴얼 페이지를 보면 블록 장치는 버퍼링되어 있는 반면 문자 장치는 버퍼링되지 않은 것으로 보입니다. 블록 장치에는 액세스 가능한 블록의 크기를 나타내는 "블록 크기"가 있습니다. (저장 장치의 경우 블록 크기는 일반적으로 512B에서 4KiB 사이입니다.) 저장 장치와 메모리는 일반적으로 블록 장치로 액세스되는 반면 직렬 포트 및 터미널과 같은 장치는 일반적으로 문자 장치로 액세스됩니다.

일반적으로 위치에 있습니다 /dev( nodev옵션(또는 이에 상응하는 항목)으로 설치된 파티션에서는 실행할 수 없습니다).

ls -l일반적으로 크기가 검색되는 장치에 대해 쉼표로 구분된 두 개의 숫자를 표시합니다 . 이는 드라이버를 가리키는 메이저 및 마이너 번호입니다. 해당 유형은 출력의 권한 열에도 "c" 또는 "b" 로 표시됩니다 ls -l.

/dev다양한 방법으로 채워질 수 있습니다. 최신 Linux 커널 버전우데브/devices일반적으로 사용되는 Solaris에서는 가상 devfs 파일 시스템에 대한 링크를 포함합니다 .

답변3

Unix/Linux의 파일 형식:일반 또는 일반 파일, 디렉토리, 장치(특수) 파일, 링크, 명명된 파이프 및 소켓.

장치(특수) 파일장치 드라이버에 대한 인터페이스이며 마치 일반 파일인 것처럼 파일 시스템에 나타납니다. 이는 문자 장치, 블록 장치 및 의사 장치(예: /dev/null)입니다.

캐릭터 중심한 번에 한 캐릭터씩 전송되기 때문에 작은 페이로드를 운반해야 하지만 많은 요청을 해야 합니다.블록 드라이버즉, 많은 문자(데이터)를 얻으므로 로드는 더 커지지만 더 적은 요청을 수행해야 합니다.직유:기본적으로 탄산음료를 병이나 상자로 구입하는 것과 같습니다.

블록 드라이브는 예상할 수 있는 데이터 양을 알고 있는 경우 유용하며, 이는 디스크에 있는 파일의 경우에 흔히 발생합니다.

문자 기반은 데이터가 언제 중지될지 알 수 없을 때 더 실용적이므로 더 이상 문자가 나오지 않을 때까지 데이터를 계속 실행할 수 있습니다. 예를 들어 인터넷 연결은 서버에서 수신할 데이터 스트림의 크기를 모르기 때문입니다.

예를 들어:

  • 문자 장치 드라이버는 운영 체제가 입/출력 장치와 통신할 수 있도록 하는 특수 파일입니다.예:키보드, 마우스, 모니터, 오디오 또는 그래픽 카드, 점자.
  • 블록 장치는 출력을 버퍼링하고 나중에 검색하기 위해 데이터를 저장할 수 있는 저장 장치와 통신하는 데 사용됩니다.예:하드 드라이브, 메모리.

예의 바른

관련 정보