system call 2

[System Programming] who 공부

`who` 명령어는 누가 현재 접속 중인지를 출력한다. 이걸 차근차근 구현해보자. (중간중간 유용한 정보 많음) 우선 who 명령어가 어떤 명령어인지 알아보려면, `man who` 명령어를 통해 who의 manual page를 볼 수 있다. 읽다보면 who 명령어가 `/var/run/utmp` 파일을 사용해 정보를 읽어와 출력한다는 것을 알 수 있다.(구체 경로는 아마 환경따라 다를거임) 교수님께서 알려주셨는데, 보통 `/var`에 시스템 로그 관련 파일들이 있다. utmp가 이젠 궁금하니, `man utmp` 명령어를 통해 utmp의 manual page를 보자. 참고로 utmp라는 keyword가 나오는 모든 manual page를 검색하고 싶다면, `man -k utmp` 명령어를 이용하면 된다. ..

[System Programming] ls 공부

directory 내의 files을 출력하는 ls를 구현하기위해선 우선 directory가 무엇인지 알아야한다. UNIX/LINUX에서 "file"은 byte들이 모인 것일뿐이다. 어떤 프로그램으로 해석을 하느냐가 그것에 의미를 부여할 뿐이다.(매우 당연한 관점같지만 UNIX에서부터 시작된 것이다.) LINUX에선 directory도 file로 취급한다. directory file엔 해당 directory 내부 정보나 다른 하위 directory 정보가 담긴다. 각 directory들은 tree구조로 엮인다.(뭐 node만들어서 엮고 하는 그런 특별한게 아니라 그냥 하위 directory 정보를 포함할 뿐이지 상위 directory 정보를 포함하진 않으니 tree 구조란 얘기인듯) 이제 System Ca..