1. A method of updating an execution environment of a programmable logic controller, the method comprising: reading a controller type of the programmable logic controller and version information of an operating system thereof; reading update information corresponding to the controller type and the version information, wherein the update information is a hierarchically organized data structure comprising: a renewed H/W value indicating whether a hardware update is required for the programmable logic controller, and a layered operating system (OS) upgrade data structure comprising a value for each layer of the operating system, each said value indicating whether or not an update software is present for said layer of the operating system; determining a part of the execution environment to be updated based on the read update information, wherein the determining comprises, for each layer of the OS of the programmable logic controller, determining whether an upgrade is necessary based on the read value of the corresponding layer in the upgrade information; and updating the determined part of the execution environment by retrieving the update software from an external apparatus and replacing corresponding portions of the different layers in the programmable logic controller with the update software.