As the GNU C Library serves as a wrapper for Linux kernelsystem calls, so do the libraries bundled in GLib (GObject, Glib, GModule, GThread and GIO) serve as further wrappers for their specific tasks.Simplified software architecture of GTK. Pango, GDK, ATK, GIO, Cairo and GLib.
GIO (Gnome Input/Output) is a library, designed to present programmers with a modern and usable interface to a virtual file system. It allows applications to access local and remote files with a single consistent API, which was designed "to overcome the shortcomings of GnomeVFS" and be "so good that developers prefer it over raw POSIX calls."[1]
There is support for network programming, including name resolution, lowlevel socket APIs and highlevel client and server helper classes.
There is support for connecting to D-Bus, sending and receiving messages, owning and watching bus names, and making objects available on the bus.
Beyond these, GIO provides facilities for file monitoring, asynchronous I/O and filename completion. In addition to the interfaces, GIO provides implementations for the local case. Implementations for various network file systems are provided by the GVfs package as loadable modules.