~에 따르면이 문제, 시스템 프로그래밍을 배우는 좋은 방법은 기존 도구를 구현하는 것입니다. 나는 다시 쓰기로 결정 ls
하고 ps
.
내 질문은 그러한 문서를 계속 얻으려면 어떻게 해야 합니까?
커널, 파일 시스템 등을 쿼리하는 데 필요한 시스템 호출 API는 어디서 찾을 수 있나요?
나는 GNU 도구의 소스 코드를 살펴볼 수 있을 것이라고 생각했습니다. 어디서 찾을 수 있나요?
어디서부터 시작해야 할지에 대한 좋은 문서화에 대한 권장 사항(온라인에서 무료로 제공되기를 바랍니다)이 있습니까?
답변1
당신은 그것을 사용할 수 있습니다glibc 매뉴얼참조. 완전 초보자를 위한 것은 아니지만, C에 능숙하다면 일부를 읽고 작동하는 프로그램을 작성할 수 있을 것입니다.
다음에서 GNU 도구의 소스 코드를 찾을 수 있습니다.GNU 웹사이트;이를 얻는 가장 쉬운 방법은 Linux 배포판에서 소스 코드 패키지를 얻는 것입니다(예: apt-get source coreutils
배포판이 Debian 패키징 유틸리티를 사용하는 경우). 부터 시작하는 것을 추천합니다바쁜 상자GNU 도구보다는 BusyBox는 임베디드 Linux 시스템용 유틸리티 세트입니다. GNU 유틸리티보다 작고 간단합니다.
실행하여 어떤 시스템 호출이 이루어지고 있는지 strace ls
확인할 수 있습니다 . ls
프로그램을 작성할 때 시스템 호출을 직접 호출하는 것이 아니라 시스템 호출을 만드는 C 라이브러리의 함수를 호출한다는 점에 유의하세요. 파일 작업과 같은 경우 C 라이브러리 함수는 시스템 호출 open
과 매우 유사합니다.read
공부에는 책(종이)이 도움이 되는 경우가 많습니다.UNIX® 환경의 고급 프로그래밍(아푸에)은 고전이다. 구하시면 초판이 이미 만료되었으므로 제2판을 구하시기 바랍니다. 이 책은 참고서이지만 다른 책이 초보자에게 더 적합할 수 있습니다.
답변2
존재하다운영 체제, 명령은 정보를 읽어서 구현 됩니다 ps
.free
top
프로세스파일 시스템.
The proc file system is a pseudo-file system which is used as an inter-
face to kernel data structures. It is commonly mounted at /proc. Most
of it is read-only, but some files allow kernel variables to be
changed.
첫째 man 5 proc
, 이러한 유틸리티는 모두 오픈 소스이므로 확인해 볼 수도 있다는 점을 잊지 마세요.암호.