Gdzie mogę znaleźć kod źródłowy komand z linuxa?

0

Mam pewien problem ponieważ, muszę skompilować z kodu źródłowego, jakąś komendę dotyczącą WE/WY (I/O), ale nie mogę nic znaleźć. Chciałbym np kod źródłowy mount, ale nie wiem gdzie go szukac.

5

A na koniec okaże się, że należy obsłużyć wywołania systemowe i przerwania:
https://man7.org/linux/man-pages/man2/syscalls.2.html
https://linux-kernel-labs.github.io/refs/heads/master/lectures/interrupts.html#lecture-objectives
Programy typu mount czy chown tak naprawdę są nakładkami na wywołania systemowe. Więcej w nich kodu odpowiedzialnego za wszystko inne, niż samo wywołanie systemowe - to akurat najczęściej można zawrzeć w jednej, dwóch linijkach kodu C albo pięciu rozkazach asemblera.

4

Jest kilka implementacji tych podstawowych narzędzi, tak więc różnie może być różnie, w zależności od dystrybucji. Wydaje mi się, że jako kanoniczną implementację można traktować GNU coreutils (te najbardziej podstawowe) i util-linux (w tym pakiecie jest mount). Też dość popularny jest busybox, on też ma swoją. W przypadku mount akurat słuszna uwaga, że większość kodu i tak jest w kernelu, a program to tylko obudowa wywołania systemowego. Niektóre polecenia (np. echo, if, while, fg, jobs, export etc) bywają też wbudowane w powłokę, więc tam trzeba ich szukać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1