$Packages gives a list of the contexts corresponding to all packages which have been loaded in your current Mathematica session.
$Packages is updated when BeginPackage is executed.
$Packages is used by Needs to determine whether a particular package needs to be loaded explicitly.
See Section 2.7.9.
See also: Contexts, $ContextPath, DeclarePackage, $ExportFormats.
New in Version 2.