가공데이터 · 한국어 지식관계

심볼릭 링크 document_id A220623090077

분류
IT_과학
라벨 상태 (label_status)
draft
문맥 (context)
컴퓨팅에서 심볼릭 링크(symbolic link) 또는 기호화된 링크는 절대 경로 또는 상대 경로의 형태로 된 다른 파일이나 디렉터리에 대한 참조를 포함하고 있는 특별한 종류의 파일이다. 심볼릭 링크는 이미 1978년까지 DEC와 데이터 제너럴의 RDOS의 미니 컴퓨터 운영 체제에 존재했다. 오늘날 이들은 FreeBSD, GNU/리눅스, OS X과 같은 대부분의 유닉스 계열 운영 체제인 POSIX 운영 체제 표준과 윈도우 비스타, 윈도우 7, 또 바로 가기 파일의 형태로서 윈도우 2000, 윈도우 XP에 이르는 윈도 운영 체제를 통해 지원되고 있다. 심볼릭 링크는 대부분의 작업에 투명하게 동작한다. 심볼릭 링크로 이름이 지정된 파일에 읽고 쓰는 프로그램들은 마치 운영 체제가 직접 대상 파일에 작용하는 것처럼 수행한다. 그러나 심볼릭 링크들을 특별하게 다루어야 하는 프로그램들(이를테면 백업 유틸리티)은 이들을 직접 식별하고 조작할 수도 있다. 심볼릭 링크는 다른 파일이나 디렉터리에 대한 경로로서 운영 체제가 자동으로 해석하고 추적하는 텍스트 문자열을 포함한다. 이러한 다른 파일이나 디렉터리를 대상(target)으로 부른다. 심볼릭 링크는 대상으로부터 독립적으로 존재하는 두 번째 파일이다. 심볼릭 링크가 삭제되면 대상은 영향을 받지 않는다. 심볼릭 링크가 대상을 지시하면 나중에 대상이 이동되거나 이름이 바뀌거나 지워지더라도 심볼릭 링크는 자동으로 업데이트되거나 삭제되지는 않지만 지속적으로 오래된 대상(현재는 존재하지 않는 위치나 파일)을 가리킨 채로 존재한다. 이동되었거나 존재하지 않는 대상을 가리키는 심볼릭 링크들은 broken, orphaned, dead, dangling 등의 용어로 불리기도 한다. 심볼릭 링크는 하드 링크와는 차이가 있다. 하드 링크는 다른 볼륨이나 파일 시스템 상의 경로를 연결하지 않지만 심볼릭 링크는 링크와 대상이 존재하는 볼륨의 어느 파일이나 디렉터리라도 가리킬 수 있다. 하드 링크는 무조건 기존의 파일만을 가리키는 반면 심볼릭 링크는 어느 것을 가리키지 않는 임의의 경로를 포함할 수도 있다. <heading>POSIX 및 유닉스 계열 운영 체제 </heading> POSIX 호환 운영 체제에서 심볼릭 링크는 <code>symlink</code> 시스템 호출을 사용하여 만든다. ln이라는 셸 명령은 보통 하드 링크를 만들어내는 <code>link</code>라는 시스템 호출을 사용한다. <code>ln -s</code> 플래그가 지정되면 <code>symlink()</code> 시스템 호출이 대신 사용되면서 심볼릭 링크를 만들어낸다. 심링크는 U.C. 버클리의 4.2BSD 유닉스에 도입되었다. 대상 경로는 심볼릭 링크가 가리키는 상대 경로나 절대 경로이다. 일반적으로 대상은 존재하지만 심볼릭 링크는 존재하지 않는 대상을 가리키는데 사용할 수도 있다. 링크 경로는 심볼릭 링크의 경로이다. 심볼릭 링크를 만들면 이 링크는 대상에 대한 별명(alias)으로 취급되는 것이 보통이다. cp, rm 따위의 시스템 관리 명령들은 심볼릭 링크에 사용할 수 있다. 읽고 쓰는 명령을 사용하면 대상 파일의 내용에 접근하게 된다. 그러나 파일을 지우는 rm 명령은 대상 파일이 아닌 링크 그 자신을 제거한다. 긴 디렉터리 보기 옵션 (-l)과 함께 POSIX의 디렉터리를 나열하는 프로그램 ls을 사용하면 심볼릭 링크가 이름 뒤의 화살표를 통해 가리키고 있음을 볼 수 있다. (아래의 예제 참고) 디렉터리를 가리키는 심볼릭 링크의 디렉터리 나열을 요청하면 링크 그 자체만 표시된다. 링크된 디레터리를 나열하려면 경로 뒤에 / 구분 문자를 추가하여야 한다. <heading>마이크로소프트 윈도 >> 윈도 심볼릭 링크 </heading> 윈도우 비스타, 윈도우 7, 윈도우 8 이상의 운영 체제는 명령 줄 유틸리티 <code>mklink</code>를 사용하여 파일과 디렉터리에 대한 심볼릭 링크를 지원한다. 정션 포인트와 달리 심볼릭 링크는 파일이나 원격 서버 메시지 블록(SMB) 네트워크 경로를 가리킬 수도 있다. 뿐만 아니라 NTFS 심볼릭 링크는 파일 시스템 간 연결을 완전히 지원한다. 그러나 호스트 간 심볼릭 링크를 활성화하는 기능을 사용하려면 이들을 지원하는 원격 시스템이 필요하며 그 지원은 윈도 비스타 이후 윈도 운영 체제로 한정된다. 심볼릭 링크는 POSIX 운영 체제와의 마이그레이션, 응용 프로그램 호환성을 보조하도록 설계되었다. 마이크로소프트는 비스타의 심볼릭 링크가 "유닉스 링크와 같은 기능"을 하도록 목표로 정했다. 그러나 이러한 구현은 여러 방면에서 유닉스 심볼릭 링크와 다르다. 이를테면 비스타 사용자들은 심볼릭 링크를 만들 때 그것이 파일인지 디렉터리인지 수동으로 지시해 주어야 한다. 비스타는 단일 경로에 31개의 심볼릭 링크로 그 수를 제한하고 있다. 기본적으로 관리자만이 소유하고 있는, 새로운 "심볼릭 링크 만들기" 권한이 있는 사용자들만 심볼릭 링크를 만들 수 있다. 이러한 권한이 마음에 들지 않으면 로컬 보안 정책 관리 콘솔에서 설정을 변경하여야 한다. 비스타, 윈도 7, 윈도 8에서 작업 디렉터리 경로가 심볼릭 링크로 끝날 때 현재의 부모 경로 참조 ..는 대상의 경로가 아닌 심볼릭 링크의 부모 경로를 가리키게 된다. 이러한 동작은 리눅스와 같은 일부 POSIX 시스템의 셸 수준에서 볼 수 있지만 운영 체제 호출을 통해 파일과 디렉터리로 접근해서는 볼 수 없다. 이를테면 bash 내장 명령 'pwd'와 'cd'는 현재의 논리 디렉터리에서 동작한다. '/bin/pwd'는 현재의 실제 작업 디렉터리를 결정하기 위해 스크립트에서 종종 사용된다. 특정 경로가 시스템 호출과 함께 사용될 때 '..'를 사용하면 '..' 가짜 디렉터리 엔트리를 포함하는 디렉터리의 실제 파일 시스템의 부모 디렉터리를 사용하게 된다. 그러므로 "cd ..; cat 특정_항목"을 입력했을 때와 "cat ../특정_항목"을 입력했을 때의 결과는 완전히 다르다. 윈도 XP에서도 심볼릭 링크 활성화를 가능하게 하는 타사 드라이버가 존재한다.
지시문 (instruction)
주어진 문맥에서 원인이나 근거를 찾아 설명하라. 답은 문맥의 내용을 종합하여 자연스러운 문장으로 재구성하라.
질문 (question)
윈도우 운영 체제에서 심볼릭 링크가 설계된 핵심적인 목적은 무엇인가?
추론 과정 (compact_reasoning)
  1. 1과제 해석task_interpretation

    윈도우 심볼릭 링크의 설계 목적(main significance)을 묻는 질문임을 파악한다.

  2. 2정보 추출information_extraction

    윈도우 심볼릭 링크 섹션에서 설계 의도와 관련된 문장을 탐색한다.

    • 심볼릭 링크는 POSIX 운영 체제와의 마이그레이션, 응용 프로그램 호환성을 보조하도록 설계되었다.
  3. 3근거 선택evidence_selection

    설계 목적을 직접적으로 명시한 구절을 근거로 선택한다.

    • 심볼릭 링크는 POSIX 운영 체제와의 마이그레이션, 응용 프로그램 호환성을 보조하도록 설계되었다.
  4. 4논리 통합logical_integration

    추출된 정보를 바탕으로 설계 목적이 마이그레이션 보조와 호환성 지원에 있음을 연결한다.

  5. 5결론 도출conclusion_formulation

    POSIX 운영 체제로의 마이그레이션을 돕고 응용 프로그램의 호환성을 보조하기 위함이라는 결론을 도출한다.

    • 심볼릭 링크는 POSIX 운영 체제와의 마이그레이션, 응용 프로그램 호환성을 보조하도록 설계되었다.
  6. 6답변 생성answer_generation

    질문에 적합하도록 문장을 정리하여 최종 답변을 작성한다.

    • POSIX 운영 체제와의 마이그레이션 및 응용 프로그램 호환성을 보조하기 위해 설계되었습니다.
최종 답변 (final_answer)
POSIX 운영 체제와의 마이그레이션을 돕고, 응용 프로그램의 호환성을 보조하기 위해 설계되었다.
핵심 해석 (core_interpretation)
윈도우 심볼릭 링크의 존재 이유와 기능적 지향점