본문 바로가기
컴퓨터공학기초 개념/시스템 프로그래밍

14. shell - 소프트링크와 특수파일

by devraphy 2021. 9. 10.

1. 소프트링크

- 소프트링크는 심볼릭 링크라고도 불린다. 

- 하드링크와 마찬가지로, 소프트링크도 ln 명령어를 통해 사용한다. 

- 그러나 -s 옵션을 사용한다는 것에서 차이점이 생긴다. 

 

a) ln -s 옵션

- s 옵션을 함께 사용하면, 윈도우의 바로가기 기능과 동일한 기능을 수행한다. 

- 즉, 원본파일이 삭제되면 소프트링크도 함께 삭제되는 것이다. 

 

 

b) ls - al로 소프트링크 확인하기

- 소프트 링크와 하드링크의 차이점은 ls -al 명령어를 통해 이를 확인할 수 있다. 

- 우선 ln -s 옵션을 이용하여 소프트링크를 생성한다. 

- 다음 ls -al 옵션을 이용하여 파일의 정보를 출력한다. 

- 특이한 점은 권한정보가 다르다는 것이다. 

- 위의 사진에서 가장 좌측에 적혀져 있는 권한 부분을 살펴보자. 

- 소프트링크는 l로 시작하는 권한정보를 갖는다. l은 link를 의미하는 것이다. 

- 참고로 하드링크는 일반 파일을 표시하는 -(대시)로 시작하는 권한정보를 갖는다. 

 

 

c) 소프트링크는 원본파일과 다른 inode 번호를 갖는다. 

- 위의 사진에서 알 수 있듯이, 소프트링크는 원본 파일과 다른 inode 값을 갖는다. 

- 하드링크와는 다르게 소프트링크는 동일한 메모리주소를 가리키는 것이 아니라, 

- 원본파일 자체를 가리키는 것이기 때문이다. 

- 즉, 바로가기 파일도 하나의 파일이라고 이해할 수 있다.

 

 

d) 소프트링크는 원본파일을 삭제하면 삭제된다. 

- 앞서 설명했듯이, 소프트링크는 원본파일이 삭제되면 함께 삭제된다. 

 

 

e) 소프트링크의 연결구조

- 위의 그림은 소프트링크가 어떻게 원본파일과 연결되어 있는지를 도식화한 것이다. 

- 그림에서 알 수 있듯이, 소프트링크는 원본파일의 메모리 주소를 가리키는 것이 아니라, 

- 원본 파일의 메모리 주소에 대한 redirected path를 가리키게 된다. 

- 그러므로 원본파일이 사라지면 해당 메모리 주소도 사라지기 때문에, redirected path 또한 무용지물이 되는 것이다. 


2. 특수파일

- 특수파일은 디바이스를 가리키는 파일이다. 

- 이전 포스팅에서 디바이스는 추상화된 인터페이스(가상파일시스템)를 통해 입출력 기능을 수행한다고 배웠다. 

- 이러한 특수 파일의 디바이스는 2가지로 구분된다. 

 

a) 블럭(block) 디바이스

- 블럭 디바이스는 일정한 단위를 사용하는 저장매체를 말한다. 

- 블럭이나 섹터와 같은 고정단위를 사용하여 데이터를 전송 및 입출력하는 디바이스를 의미한다. 

- 블럭 디바이스의 특징은 IO 송수신 속도가 빠르다는 것이다. 

 

 

b) 캐릭터(character) 디바이스

- 캐릭터 디바이스는 이름에서 알 수 있듯이 문자(=character)를 사용하는 디바이스를 의미한다.

- 키보드, 마우스 등 byte단위의 데이터 전송을 사용하는 디바이스를 말한다. 

- 캐릭터 디바이스의 특징은 IO 송수신 속도가 느리다는 것이다. 

 

 

c) 실제 예시

- 아래의 사진은 /dev 디렉토리에서 ls -al 명령어를 통해 파일목록 및 정보를 출력한 것이다. 

- b로 시작하는 권한 정보가 블럭 디바이스를 의미한다. 

- c로 시작하는 권한정보가 캐릭터 디바이스를 의미한다. 


3. 파일 시스템 핵심정리

댓글