HP-UX

링크란 무엇입니까?(왕초보)

 
장종의
신규 회원

링크란 무엇입니까?(왕초보)

초보라서 잘모릅니다.

가르쳐 주세요.
4 응답 4
고광태
중학생

링크란 무엇입니까?(왕초보)

링크? 어떤 링크를 말씀하시는지..



따로 컴파일 되거나 어셈블된 여러 개의 목적 프로그램을 모아서 하나의 목적 프로그램으로 만드는 일. 대개 주 프로그램과 부프로그램, 그리고 실행 라이브러리를 연결하여 하나의 실행가능한 목적 프로그램 모듈을 만드는 작업을 가리킵니다.-> linkage editor, loader2)



데이터 통신에서, 통신하고자 하는 두 지점을 이어 주는 모든 물리적, 논리적인 통로를 가리키는 말. 이는 그 중간에 있는 물리적인 전송 선로, 변환기 등의 통신 설비를 포함하는 개념입니다.-> communication channel, uplink
이명우
정기 조언자

링크란 무엇입니까?(왕초보)

질문이 짧아서 어떤 link를 말씀하시는지 정확히는 모르겠지만

대부분의 경우 file 이나 Directory 에 관한 link라고 생각하고

몇자 적어 보겠습니다.



file의 위치(Directory) 가 정해져 있거나 또는 여러개의 File이

하나의 file 로 관리되는 등 불가피한 경우데 link를 사용합니다.



예를 들면 /a 라는 Directory에 File이 있어야 하는데

부득이하게 (Disk 공간부족이 일반적인 이유) /b라는 Directory

에 저장을 하고 사용할 경우 물리적인 file은 /b 라는 Directory

에 있지만 /a 라는 Directory에 있는것 처럼 사용할 수 있게

할때 사용합니다. 명령어는 ln 명령어를 사용하게 됩니다.



또 다른 경우 /a라는 Directory 내에 z라는 Directory를

/b, /c, /d 등의 여러 Directory가 공유하여 써야 하는 경우에도

사용을 하게 됩니다.



간단한 명령어 예를 들면 첫번째 경우 /b directory 내에 test라는

물리적인 File을 /a Directory에 link를 걸때

ln -s /b/test /a/. 이런식으로 사용하시면 됩니다.

물론 test라는 이름이 /a Directory에 생깁니다.

다른 점은 ls -al 결과를 보시면 permission file 맨앞에

lrwx------ 보시는 것처럼 l 이 붙게 됩니다.



원하시는 내용과 맞는지 모르겠네요.

좋은 하루 되세요.
김병수
본과생

링크란 무엇입니까?(왕초보)

Hard Link vs Symbolic link





Hard Link

: Source file과 link된 파일이 서로 같은 inode number를 가진다.





Symbolic link



- Source file과 link된 파일이 같은 data block을 참조하지만, 서로 다른 inode number를 가진다.





- 한File system과 다른 file system 사이에 link을 구성할 수 있다.





- Directory에 대해서도 link를 구성할 수 있다.

? ? ?
비정기 조언자

링크란 무엇입니까?(왕초보)

* "link"의 개념:



- "link"라는 개념을 이해하는 한 방법은 filesystem의 directory가 어떻게 계층적으로 구조를 형성하고 있으며 어떻게 "cd" command로 여러 directory를 이동할 수 있는가를 이해하는 것이다.



- 각 directory는 기본적으로 최소한 두 개의 file을 가진다.



① directory 자신을 표현하는 dot(.)



② 자신의 parent directory를 표현하는 dot-dot(..)



- 이 두 file이 directory들을 연결하여 filesystem의 계층적 구조를 형성한다.

각 directory의 parent와 sub-directory를 dot(.)와 dot-dot(..) file로 연결 하는 것이다.



즉 ① 'current directory의 dot-dot(..) file'의 inode

= 'parent directory의 dot(.) file'의 inode



② 'current directory의 dot(.) file'의 inode

= 'sub directory의 dot-dot(..) file'의 inode



- sub directory가 여러 개인 directory의 경우



sub directory들의 dot-dot(..) file의 inode는 이들 parent directory의 dot(.) file의 inode와 같을 것이다.

달리 표현하면, sub directory들의 각 'drectory entry'는 current directory의 dot-dot(..) file 즉 parenet directory의 inode를 가리키는 것이다.



- 이처럼 '하나의 inode'에 '여러 개의 (direcory) file'이 '연결(link)'되어 있을 수 있고, '연결(link)된 갯수'를 'link 갯수'라 한다.



* hard link란 ?



- 위에서 directory를 들어 설명한 link의 개념서 여러개의 (directory) file들이 한 개의 inode number를 사용해 서로 연결될 수 있음을 보았다.



- hard link란 이러한 link와 같은 개념이다.



한 file의 inode에 여러 file들의 inode를 일치시킴으로써 서로를 연결(link)시키는 방식인 것이다.



- hard link는 'directory file'의 link 구조를 'ordinary file'로 확장시킨 것이다.



즉 "ln"이라는 command를 사용하여 'link라는 내부적 표현'을 실제 (hard) link된 file들로 보여 준다.



- hard link를 확인할 수 있는 방법은 symbolic link처럼 filename에서 확인할 수 있는 것이 아니고, 'link 갯수'가 2 이상인가를 확인하고 inode number가 같은 file을 찾아야 하는 것이다.



- hard link는 file이 존재할 때만 만들어 질 수 있다.



즉 inode가 미리 존재하고 있어야 '동일 inode'를 갖는 file을 만들 수 있는것.