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.
https://lmgtfy.com/?q=mount+source+code
https://github.com/karelzak/util-linux/blob/master/sys-utils/mount.c
A na podstawie tego odnalezione źródło, które wygląda na bardziej oficjalne (sam zweryfikuj czy jest oficjalne):
https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/tree/sys-utils/mount.c
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.
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ć.