1. A computer-implemented method of updating a firmware package executing on a computer, the method comprising: receiving, by a firmware updating module comprising a module of automated computing machinery that includes an aggregation of computer hardware and executing computer program instructions, an update package for the firmware package, the firmware package comprising one or more currently installed components, each of the currently installed components supporting one of a plurality of software layers, wherein the plurality of software layers comprises an operating system layer, the update package comprising one or more update components that correspond to the currently installed components of the firmware package, each of the update components supporting one of the plurality of software layers; retrieving, by the firmware updating module from the firmware package during operation of the firmware package, information describing a state of the currently installed components; comparing, by the firmware updating module, the information describing the state of the currently installed components to information describing a state of the corresponding update components; constructing, by the firmware updating module without user intervention, a revised update package that includes only a subset of the update components, wherein the subset of the update components each have a state more recent than the state of the corresponding currently installed components; and updating, by the firmware updating module, the currently installed components with corresponding update components of the revised update package, wherein updating the currently installed components with corresponding update components of the revised update package comprises: for each software layer including the operating system layer of the plurality of software layers supported by one of the subset of update components of the revised update package: halting operation of the software layer while at least one of the plurality of software layers supported by at least one of the subset of update components continues to operate uninterrupted includes: halting one or more update components of the subset of update components supporting the software layer without halting the entire software layer; and halting one or more software layers other than the software layer supported by the one or more update components of the subset of update components that are operationally dependent between components in various software layers; replacing, with all update components supporting the software layer, corresponding currently installed components; and restarting operation of the software layer includes restarting the one or more update components of the subset of update components supporting the software layer; wherein the revised update package includes two or more update components supporting two or more software layers.