*** Welcome to piglix ***

NetworkManager

NetworkManager
Linux desktop system daemons and their graphical front-ends.svg
NetworkManager is a system daemon, with various graphical front-ends are available
Original author(s) Red Hat
Initial release November 19, 2004; 12 years ago (2004-11-19)
Stable release
1.6.2 / February 15, 2017; 11 days ago (2017-02-15)
Repository cgit.freedesktop.org/NetworkManager/NetworkManager/
Written in C with GObject
Operating system SUS/POSIX
Platform Unix-like
Type
License GNU GPL
Website

NetworkManager is a daemon that sits on top of libudev and other Linux kernel interfaces (and a couple of other daemons) and provides a high-level interface to network interface configuration and setup and is accessible via dbus to apps.

NetworkManager is a software utility that aims to simplify the use of computer networks on Linux-based and other Unix-like operating systems.

The device drivers for hardware network interfaces, are typically part of the operating system kernel. User space tools such as ifconfig or ip (from the iproute2-bundle) are used to configure the addresses and other characteristics of these network interfaces. Traditionally, during the operating system startup process, programs such as System V init or systemd have run shell scripts or other programs which configure the network interfaces based on fixed information from the host's configuration files.

However, dynamic configurations (i.e., not stored in a static configuration file but taken from outside the host, and potentially changing after boot) have been an increasingly more common configuration, especially as we've moved from physically large servers to more portable hosts that may be plugged and unplugged (or moved from WiFi hotspot to WiFi hotspot) at the will of the user. Bootp was an early protocol used for this, and to this day its descendant DHCP is still very common. Many Unix-like systems include a program called dhclient to handle this dynamic configuration.

Given a relatively static or simple dynamic configuration, static configuration modified by dhclient works well. However, as networks and their topologies get more complex, a central manager for all the network configuration information becomes more essential.

Red Hat initiated a NetworkManager project in 2004 with the goal of enabling Linux users to deal more easily with modern networking needs, particularly wireless networking. NetworkManager takes an opportunistic approach to network selection, attempting to use the best available connection as outages occur, or as the user roams between wireless networks. It prefers Ethernet connections over “known” wireless networks, which are preferred over wireless networks with SSIDs to which the user has never connected. The user is prompted for WEP or WPA keys as needed.


...
Wikipedia

...