Linux의 문자 및 블록 장치 권한

Linux의 문자 및 블록 장치 권한

리눅스 파일 권한을 배우려고합니다. 이 경우 crwxrwxrwx의 (문자 장치) "c"와 brwxrwxrwx의 (블록 장치) "b"를 제외하고는 대부분의 사항이 명확합니다. Wikipedia에서는 문자 장치를 다음과 같이 설명합니다.

문자 특수 파일 또는 문자 장치는 하드웨어 장치에 대한 버퍼링되지 않은 직접 액세스를 제공합니다. 프로그램이 한 번에 하나의 문자를 읽거나 쓰는 것을 반드시 허용하는 것은 아닙니다. 이는 해당 장치에 따라 다릅니다.

블록 장치 정보:

블록 특수 파일 또는 블록 장치는 하드웨어 장치에 대한 버퍼링된 액세스를 제공하고 해당 세부 사항에 대한 일부 추상화를 제공합니다. [5] 문자 장치와 달리 블록 장치를 사용하면 프로그래머는 항상 모든 크기(단일 문자/바이트 포함) 및 모든 정렬의 블록을 읽거나 쓸 수 있습니다.

이 설명은 나에게 너무 기술적입니다. 누구든지 이것을 더 간단한 방법으로 설명할 수 있습니까? 인사

답변1

모든문자 장치와 블록 장치,

  • 문자('c') 장치는 드라이버가 개별 문자(바이트, 옥텟)를 보내고 받음으로써 통신하는 장치입니다.
  • 블록("b") 장치는 드라이버가 전체 데이터 블록을 전송하여 통신하는 장치입니다.

예를 들어, 터미널에 텍스트를 입력하면 문자가 사용되는 반면, 하드 드라이브를 분할하면 문자가 사용됩니다.조각.

답변2

b = 블록 장치는 기본적으로 디스크(sata, sas, scsi, pata, ide 연결 장치)입니다(그러나 다른 컨테이너/디스크의 일부일 수도 있음).

테이프 장치는 문자 기반 장치일 수 있지만(그러나 sas/scsi/sata/ide/pata/fc/iSCSI(일종)를 사용하여 연결됩니다...)

모든 블록 장치는 소비 프로세스에 의해 더 작거나 더 큰 수의 바이트/옥텟으로 읽고 쓰여집니다.

c = 문자 장치: 한 번에 1바이트/옥텟.

대부분의 장치는 일반적으로 커널(예: 커널에서 실행되는 파일 시스템 코드)에 의해 액세스되지만 디스크(블록 지향)는 dd?에 의해 테이프에 덤프됩니다.

팁: 한 블록은 프로세스 메모리로 읽혀진 다음 한 번에 한 바이트씩 테이프에 덤프되고 다른 블록은 메모리로 읽혀집니다.

테이프가 제대로 작동하려면 시스템이 쓰기 속도를 따라잡을 수 있어야 합니다. 즉, 원시적인 테이프 하위 시스템이라도 테이프 전송 속도를 일정하게 유지하면서 테이프가 진행되는 속도만큼 빠르게 데이터를 전송할 수 있습니다. 즉, 데이터 쓰기가 가능합니다. ) 이 경우 dd를 실행하는 프로세스는 각 파일 자체를 열고 덤프하는 대신 파일 시스템에 직접 액세스합니다.

tar를 사용하는 경우 프로세스는 일반적인 열기/읽기/닫기 시스템 호출을 사용하여 각 파일이나 디렉터리를 읽습니다.

답변3

당신이보고있는 것은 파일 모드입니다 :

스키마는 권한,파일 형식(관심 있는 부분)그리고 능력. 파일 형식은 권한과 아무 관련이 없으며 권한을 알기 위해 파일 형식을 알 필요가 없습니다. 시스템을 사용하기 위해 c및 유형을 알 필요조차 없으며 b일반적으로 장치 유형을 아는 것으로 충분합니다.

바라보다Gnu/linux에서 파일 권한 등을 설정하는 다른 방법은 무엇입니까?권한 및 모드에 대한 추가 정보

관련 정보