WEEK 10 PintOS TIL(5월20일 화요일)

Devkty·2025년 5월 21일

[목표]
argu 구현하고 코드 어떻게 구현했는지 정리하기

09:50 ~ 11:08

일단 어제 다 못한 벨로그를 정리하고 있다.

내가 프로젝트 연결을 afp 방식으로 하고 있는데 맥을 킬때마다 수동으로 접속해야되서 스크립트 편집기를 통해 부팅할 때마다 시도하게끔 자동으로 바꿔보았다. 나중에 실제로 작동하는지 확인을 해봐야겠다.

11:08 ~ 12:00

어제에 이어서 argu를 구현해보겠다. 파싱까지는 잘되는것 같다.
pintos 작업할 날이 많이 남아서 ssh 연결시 접속 폴더를 pintos 폴더로 지정해뒀다. vi ~/.bashrc 에서 수정 가능하다.

12:00 ~ 13:20

식사진행

13:20 ~ 14:00

더 자세한 printf 디버거 방법을 알아보았다. 그결과, 파싱은 잘되지만 filename을 넣으면 바로 커널 패닉이 온다.

13:00 ~ 14:00

잠을 잤다. 너무 피곤했다.

14:00 ~ 15:00

파싱을 수정시도해보고 있다. 잘되지가 않는다.

15:00 ~ 17:00

운동(가슴)을 하고 샤워를 하고 복귀했다.

17:00 ~ 18:40

파싱이 일반 string은 되는데 제일 중요한 file_name이 안되서 확인 중에 있다. 일단 미뤄두고hex_dump 를 통해 스택 빈공간이 띄워지는지 확인을 해봐야겠다.

18:40 ~ 19:40

팀원분들이 늦게 와서 늦게 먹고 휴식을 했다.

19:40 ~ 03:30

파싱을 해결하기위해 다른 동료분과 디버깅을 해봤는데, 파싱한 곳의 위치를 load() 함수에 위치 시켜뒀는데, 위치를 함수내 위쪽으로 바꾸니 정상적으로 출력이 되었다. file_name 인자를 잘 못가져와서 그런것 같은데 명확한 이유는 나중에 조사해봐야겠다. 파싱은 해결을 해결을 했고, 스택 쌓는 것을 해봐야될 것 같다.

하루종일 스택을 구현해보았다. 현재 스택이 출력이되긴하는데, 패딩하고 NULL 블럭 설정이 잘못됐는지 출력이 제대로 되지 않는다…

테스트 코드들

  • make tests/userprog/args-single.result VERBOSE=1
  • pintos --fs-disk=10 -p tests/userprog/args-multiple:args-multiple -- -q -f run 'args-multiple onearg'

03:30 ~ 04:00

몇번의 시도 끝에 자료형과 패딩을 건드리니, 정상적으로 잘 나왔다. 불완전한 것 같아서 내일 코드를 분석하며 정리하면서 부족한 부분은 보충을 해보겠다.

profile
모든걸 기록하며 성장하고 싶은 개발자입니다. 현재 크래프톤 정글 8기를 수료하고 구직활동 중입니다.

0개의 댓글