Poziom koncepcyjny
Po uruchomieniu procesu z powłoki bieżący katalog roboczy procesu jest taki sam, jak bieżący katalog roboczy powłoki. W kontekście powłoki bieżącym katalogiem roboczym jest lokalizacja, w której aktualnie „znajdujesz się”.
Bieżący katalog roboczy dowolnego procesu służy do interpretacji ścieżek względnych. Na przykład, jeśli bieżący katalog roboczy twoja powłoka była /home/renei pobiegł ls ..z powłoki, bieżący katalog roboczy procesu, w /home/rene, byłyby wykorzystywane do zdecydowania ..się /home.
Możesz zobaczyć bieżące działające katalogi wszystkich procesów uruchomionych w twoim systemie lsof | grep '\scwd\s'(pamiętaj, że prawdopodobnie będziesz musiał być rootem, aby zobaczyć procesy innych użytkowników). To może dać ci wyobrażenie o tym, jak bieżące działające katalogi odnoszą się do procesy uruchomione w twoim systemie.
Poziom programu
Bieżący katalog roboczy powłoki jest katalog można zobaczyć i modyfikować z wbudowanym poleceniem powłoki ins pwdi cdodpowiednio. Te polecenia wywołują wywołania systemowe, takie jak getcwdi, chdirktóre działają z bieżącym katalogiem roboczym powłoki.
Używając bashjako przykładu, cdwbudowane ostatecznie uruchamia tę linię:
if (chdir (nolinks ? newdir : tdir) == 0)
a pwdwbudowane ostatecznie uruchamia tę linię:
the_current_working_directory = getcwd (0, PATH_MAX);
Powłoka jest tylko wygodnym przykładem użycia bieżącego katalogu roboczego; te same wywołania systemowe są również używane przez inne programy. Program może zmienić swój bieżący katalog roboczy na, /usra wszelkie ścieżki względne, których używa program, zaczną się od /usrkatalogu,
Poziom jądra
Bieżący katalog roboczy procesu jest przechowywany przez jądro. Linux przechowuje go w pwdelemencie fs_structwskazanym przez fsczłonka task_struct. Element pwdczłonkowski jest pathstrukturą, która wskazuje na informacje o mount ( vfsmount) i lokalizacji katalogu w systemie plików ( dentry). Każdy proces jest task_structz nim powiązany.
Te chdiri getcwdwywołań systemowych modyfikacji i pobierać informacje pwd.