[정글 89일차]Pintos Project 4 (Subdirectories and Soft Links)

김희산·2022년 12월 16일
  • 계층적인 이름 공간을 구현해야함. 기본 파일 시스템의 경우, 모든 파일이 단일 디렉토리 (루트) 에 저장되었음
  • 이제 디렉토리 엔트리가 파일 또는 다른 디렉토리를 가리키도록 수정해야 함.
  • 다른 파일들처럼, 디렉토리 또한 원래 크기를 초과하여 확장될 수 있도록 만들어야 함
  • 기본 파일 시스템에서는 파일 이름에 14자 제한이 있고, 각각의 이름에 대해서 이 제한을 유지하거나 확장할 수 있음
  • 전체 경로 이름은 14자를 넘을 수 있게 만들어야 함
  • 각 프로세스에 대해 별도의 현재 디렉토리 유지해야함
  • 시작 시, 루트 디렉토리를 시작 프로세스의 현재 디렉토리로 설정해야함
  • 한 프로세스가 fork 시스템콜로 다른 프로세스를 시작할 때 하위 프로세스는 상위 프로세스의 현재 디렉토리를 상속받는다.
  • 상속 받은 후에는 두 프로세스의 현재 디렉토리가 서로 독립적이기 때문에 각 디렉토리의 대한 변경은 서로에게 영향을 미치지 않음
  • 호출자가 파일 이름을 제공하는 모든 위치에서 절대 또는 상대 경로 이름을 사용할 수 있도록 기존 시스템 호출을 업데이트 해야함
  • 디렉토리 구분 기호는 슬래시( ‘/’ )
  • 유닉스와 동일하게, 특수한 파일 이름 ‘.’와 ‘..’를 지원해야 함
  • 디렉토리를 열 수 있도록 open 시스템 콜을 업데이트해야함
  • 기존 시스템 콜들 중에서, close만 디렉토리에 대한 file descriptor를 받을 수 있도록 해야함
  • 일반 파일 뿐 아니라, (루트 디렉토리를 제외한) 빈 디렉토리를 삭제할 수 있도록 remove 시스템 콜을 업데이트 해야함
  • 당신은 ‘프로세스에 의해 열려있는 디렉토리’ 또는 ‘프로세스의 현재 작업 디렉토리’의 삭제를 허용할 것인지 결정할 수 있음
  • 이것들을 허용하는 경우, 삭제된 디렉토리에서 파일(’.’ 및 ‘..’ 포함)을 열거나 새 파일을 만드는 시도는 허용되지 않아야 함

출처 : kaist pintos 공식 깃북(https://casys-kaist.github.io/pintos-kaist/)

profile
성공은 제로섬 게임이 아니라 주변인들과 함께 나아가는 것이다.

0개의 댓글