Olhando rapidamente para o código-fonte nmcli
( $ apt-get source network-manager
), parece que a estrutura que contém as informações do AP ( src/devices/wifi/nm-wifi-ap.c
) é armazenada na memória volátil (não tenho certeza se a estrutura está centralizada ou alocada estaticamente, mas iria para o primeiro).
A estrutura é essa (na verdade, existem duas):
typedef struct {
char *supplicant_path; /* D-Bus object path of this AP from wpa_supplicant */
/* Scanned or cached values */
GByteArray * ssid;
char * address;
NM80211Mode mode;
guint8 strength;
guint32 freq; /* Frequency in MHz; ie 2412 (== 2.412 GHz) */
guint32 max_bitrate; /* Maximum bitrate of the AP in Kbit/s (ie 54000 Kb/s == 54Mbit/s) */
NM80211ApFlags flags; /* General flags */
NM80211ApSecurityFlags wpa_flags; /* WPA-related flags */
NM80211ApSecurityFlags rsn_flags; /* RSN (WPA2) -related flags */
/* Non-scanned attributes */
bool fake:1; /* Whether or not the AP is from a scan */
bool hotspot:1; /* Whether the AP is a local device's hotspot network */
gint32 last_seen; /* Timestamp when the AP was seen lastly (obtained via nm_utils_get_monotonic_timestamp_s()) */
} NMWifiAPPrivate;
struct _NMWifiAP {
NMExportedObject parent;
NMWifiAPPrivate _priv;
};
Eu não gravei o código profundamente, portanto, posso estar errado, mas suponho que essa estrutura seja alocada e atendida quando chamarmos nmcli device wifi list
e, em seguida, destruídos quando o comando sair. Talvez existam recursos mais complicados, o que implica um "estado de salvamento" em algum tipo de arquivo ou despejo de memória, mas não posso dizer agora.
Eu não posso dizer para o iwlist (na verdade, não olhei para o código).
Eu teria postado isso como um comentário, pois não é realmente uma resposta, mas é obviamente muito longo.
UPDATE
Olhando para página do nmcli github , ele afirma:
The NetworkManager daemon runs as a privileged service (since it must access and control hardware), but provides a D-Bus interface on the system bus to allow for fine-grained control of networking. NetworkManager does not store connections or settings, it is only the mechanism by which those connections are selected and activated.
To store pre-defined network connections, two separate services, the "system settings service" and the "user settings service" store connection information and provide these to NetworkManager, also via D-Bus. Each settings service can determine how and where it persistently stores the connection information; for example, the GNOME applet stores its configuration in GConf, and the system settings service stores it's config in distro-specific formats, or in a distro- agnostic format, depending on user/administrator preference.