2. 장치 유형

리눅스의 핵심 원칙 중 하나는 "모든 것이 파일이다"라는 것입니다. 이 철학은 하드웨어 구성 요소에도 확장되어 파일 시스템 내의 특수 파일로 표현됩니다. 이러한 리눅스 장치와 해당 파일을 이해하는 것은 시스템 관리에 매우 중요합니다. 모든 장치 파일의 전통적인 위치인 /dev 디렉터리를 탐색하는 것부터 시작하겠습니다.

/dev 에서 리눅스 장치 탐색하기

/dev 디렉터리의 파일을 나열하여 시스템이 다양한 리눅스 장치를 어떻게 표현하는지 확인할 수 있습니다.

$ ls -l /dev
brw-rw----   1 root disk      8,   0 Dec 20 20:13 sda
crw-rw-rw-   1 root root      1,   3 Dec 20 20:13 null
srw-rw-rw-   1 root root           0 Dec 20 20:13 log
prw-r--r--   1 root root           0 Dec 20 20:13 fdata

다음은 왼쪽에서 오른쪽으로 본 열에 대한 설명입니다.

  • 권한
  • 소유자
  • 그룹
  • 주 장치 번호
  • 부 장치 번호
  • 타임스탬프
  • 장치 이름

리눅스 장치 유형 식별하기

ls -l 출력의 권한 문자열에 있는 첫 번째 문자는 파일 유형을 나타냅니다. 장치 파일의 경우, 특정 리눅스 장치 유형을 식별하는 데 도움이 되는 다음 중 하나를 보게 됩니다.

  • c - 문자 (character)
  • b - 블록 (block)
  • p - 파이프 (pipe)
  • s - 소켓 (socket)

문자 장치 (Character Devices)

이러한 장치는 데이터를 한 번에 한 문자씩 전송합니다. 물리적으로 연결된 하드웨어가 아니라 필수적인 OS 기능을 제공하는 많은 가상 장치 (pseudo-devices) 가 문자 장치로 표현됩니다. 전형적인 예는 /dev/null입니다.

블록 장치 (Block Devices)

이러한 장치는 크고 고정된 크기의 블록 단위로 데이터를 전송합니다. 하드 드라이브 (/dev/sda), SSD 및 기타 대용량 저장 구성 요소와 같은 저장소 하드웨어는 블록 기반 데이터 액세스에 최적화되어 있으므로 일반적으로 블록 장치로 표현된다는 것을 알 수 있습니다.

파이프 장치 (Pipe Devices)

명명된 파이프 (Named pipes) 또는 FIFO(First-In, First-Out) 는 프로세스 간 통신을 허용합니다. 이들은 문자 장치처럼 작동하지만 출력을 물리적 장치가 아닌 다른 프로세스로 전달합니다.

소켓 장치 (Socket Devices)

소켓 장치 또한 프로세스 간 통신을 용이하게 합니다. 파이프와 달리 소켓은 더 다재다능하며 네트워크를 통해 심지어 여러 프로세스 간의 통신도 지원할 수 있습니다.

장치 번호 이해하기

리눅스 장치주 장치 번호부 장치 번호라는 두 가지 숫자로 고유하게 식별됩니다. 이 번호들은 쉼표로 구분되어 ls 출력에서 볼 수 있습니다. 번호가 8, 0인 장치의 경우:

주 번호 (8) 는 해당 장치를 담당하는 드라이버를 식별합니다. 이 경우 8 은 일반적으로 SCSI 디스크 드라이브에 사용됩니다. 부 번호 (0) 는 드라이버에게 그것이 장치의 어떤 특정 인스턴스인지를 알려줍니다. 여기서 0 은 첫 번째 드라이브 (a) 를 나타냅니다.

로그인하여 학습 진행 상황을 저장하세요

로그인

연습 문제

배운 리눅스 장치에 대해 적용하기 위해 다음 실습 랩을 권장합니다. 이 연습들은 실제 시나리오에서 장치 상호 작용 및 관리에 대한 자신감을 구축하는 데 도움이 될 것입니다.

  1. 리눅스 파티션 및 파일 시스템 관리 - 리눅스에서 기본 블록 장치인 디스크 파티션 및 파일 시스템 생성 및 관리를 연습합니다.
  2. 리눅스에서 하드웨어 장치 탐색 - 다양한 하드웨어 장치를 식별하고 검사하는 방법을 배우고 /dev 디렉터리에서 이들이 어떻게 표현되는지 이해합니다.
  3. 리눅스에서 스왑 파일 생성 및 활성화 - 가상 메모리 장치로 작동하는 스왑 파일을 생성하고 활성화하는 실습 경험을 얻습니다.

퀴즈

`ls -l` 명령에서 문자 장치 (character devices) 를 나타내는 기호는 무엇입니까? (답변으로 단일 소문자 영어 문자를 제공하십시오)