달력

12

« 2024/12 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2011. 7. 8. 23:01

소프트링크와 하드링크 JAVA이야기2011. 7. 8. 23:01

내생각임..

소프트링크
ln -s [실제파일명] [바로가기파일명]
즉, 바로가기파일이 실제파일을 가르키고 있다고 생각

하드링크
ln [실제파일명] [복사될 파일명]
예) ln hello.txt world.txt
hello.txt가 이미 생성되었다.
여기서 위 명령어를 입력하였을 때,
dentry 구조체를 하나더 만들어서 같은 inode를 가르키게 된다.
결국 두 dentry구조체는 데이터가 들어있는 inode를 가르키게 된다. (참조계수 2)
따라서 둘중에 한 파일이 수정을 할 경우 두개가 변경된 파일을 보게 될것이다.
그렇다면 hello.txt가 삭제되었을 때 world.txt도 같이 삭제될까? 
world.txt는 inode를 계속 가르키고 있으므로 inode의 데이터블록을 접근할 수 있다. 그러므로 hello.txt가 삭제되더라도 영향을 받지 않는다. (참조계수 1)

$참조계수가 0이면 즉 , inode를 아무도 가르키지 않는다면 이는 삭제가 되었다고 생각할 수 있다.
따라서 운영체제는 참조계수가 0인곳에 새로운 데이터를 넣을 수가 있다.
다르게 말하면, inode가 덮어쓰여지지 않는 이상, 예전 데이터는 계속 살아있다는 뜻

내생각임...
 
:
Posted by НooпeУ


Code Start Code End