To pytanie na niskim poziomie i rozumiem, że może nie być to najlepsze miejsce do zadawania pytań. Ale to wydawało się bardziej odpowiednie niż jakakolwiek inna strona SE, więc proszę.
Wiem, że w systemie plików Linux niektóre pliki faktycznie istnieją , na przykład: /usr/bin/bash
jest taki, który istnieje. Jednak (o ile dobrze rozumiem), niektóre także w rzeczywistości nie istnieją jako takie i są bardziej wirtualnych plików, np: /dev/sda
, /proc/cpuinfo
, itd. Moje pytania są (są dwa, ale zbyt ściśle związane odrębne pytania):
- W jaki sposób jądro Linuksa sprawdza, czy te pliki są prawdziwe (i dlatego odczytują je z dysku), czy nie po wydaniu polecenia odczytu (lub takiego)?
- Jeśli plik nie jest prawdziwy: na przykład odczyt z
/dev/random
zwróci losowe dane, a odczyt z/dev/null
zwróciEOF
. Jak to działa, jakie dane należy odczytać z tego pliku wirtualnego (a zatem co zrobić, gdy / jeśli dane zapisane również do pliku wirtualnego) - czy istnieje jakaś mapa ze wskaźnikami do oddzielania poleceń odczytu / zapisu odpowiednich dla każdego pliku, a nawet sam katalog wirtualny? Więc wpis dla/dev/null
może po prostu zwrócićEOF
.