User Tools

Site Tools


dido:public:ra:1.4_req:1_func:platform:sw_arch

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dido:public:ra:1.4_req:1_func:platform:sw_arch [2020/12/10 11:37]
nick
dido:public:ra:1.4_req:1_func:platform:sw_arch [2021/08/18 10:41] (current)
murphy [About]
Line 1: Line 1:
-====== 4.1.1.3 Runtime Platforms ======+====== 4.2.1.3 Runtime Platforms ======
 [[dido:​public:​ra:​1.4_req:​1_func:​platform| Return to Platforms ]] [[dido:​public:​ra:​1.4_req:​1_func:​platform| Return to Platforms ]]
  
 ===== About ===== ===== About =====
-[[dido:​public:​ra:​1.4_req:​1_func:​platform:​sw_arch ​Return to Top]]+A **Runtime Platform** is the software components that are required to run application software that are not part of the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​a:​application|application]] itself, ​[[dido:​public:​ra:​1.4_req:​1_func:​platform:​hw_arch ​Hardware Platform]] or [[dido:​public:​ra:​1.4_req:​1_func:​platform:​os_arch | Operating Systems Platform]]. Some examples of Runtime [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​platform|Platform]] components are language specific libraries, or language specific virtual machines. ​
  
-A **Runtime Platform** ​is the software components that are required to run application ​software that are not part of the Application itself, [[dido:​public:​ra:​1.4_req:​1_func:​platform:​hw_arch ​Hardware ​Platform]] or [[dido:​public:​ra:​1.4_req:​1_func:​platform:​os_arch ​Operating Systems ​Platform]]. ​+In general, an application ​is a sequence of steps or events directed and coordinated by the application. Some of the steps are actually contained within the application ​while others ​are executed by the Runtime Platform, [[dido:​public:​ra:​1.4_req:​1_func:​platform:​os_arch ​Operating Systems ​Platform]] or the [[dido:​public:​ra:​1.4_req:​1_func:​platform:​hw_arch ​Hardware ​Platform]] ​on behalf of the application.(( 
 +Mansourov, Nikolai and Campara, Djenana; 2011, Accessed: 10 December 2020, 
 +[[https://​www.sciencedirect.com/​topics/​computer-science/​runtime-platform]] 
 +)).
  
-In general, a computation ​is a sequence of steps/​events performed ​by the system or one of the activities within the system. The computation is performed by the code, which is supported by other components of the system. Code provides ​the constraints to computations and therefore, determines which computations can occurFor example, the computation is determined by the control flow relationships between individual activities, and further by the data flow relationships describing how individual activities act as producers and consumers of data. These relationships ​are the constraints ​for the computation+When an application ​is translated into target hardware instruction set by a [[dido:​public:​ra:​xapend:​xapend.a_glossary:​c:​compiler|compiler]],​ there would be an extreme enlargement ​of the executable code if all the reused ​code from the software and hardware platforms were added to the executableAlternativelycompilers often use compiler-specific external functions in pre-compiled code and assembled into runtime libraries that are linked during execution. These libraries ​are generally optimized ​for efficiency and for segregation of functionality for improved accuracy, prevention of common runtime errors, or security concerns. ​
  
-In order to analyze a computation,​ all system components have to be considered, including ​the so-called application codebut also the runtime platform and all runtime services, as some of the key control and data flow relationships are provided by the runtime platform, as the computation flows through the application ​code into the runtime ​platform ​and services and back to the application codeApplication code alone in most cases does not provide ​an adequate picture ​of the computation,​ as some segments ​of the flow are determined by the runtime ​platform and are not visible in the application ​code. For example, ​while a large number of control flow relationships between different activities in the application code are explicit ​(such as statements in a sequence, or calls from a statement to another procedure), some control flow relations are not visible in the code, including the so-called callbacks, where the application ​code registers a certain activity with the runtime platform (for example, an event handler or an interrupt handler) ​and it is the runtime platform ​that initiates the activity. Without the knowledge ​of such implicit relationships,​ the system knowledge is not complete ​at a very fundamental level, leading to incomplete coverage ​of code analysis by vulnerability detection tools, ​and subsequently,​ to false negative and false positive report findings.+Runtime libraries provide functionality by accessing ​the underlying operating or hardware platforms. For example, the use of floating point arithmetic or array/​vector processing that use array processors or multiple cores. These considerations can often blur the boundary between standard ​application runtime ​libraries ​and language specific runtime librariesOften compilers ​provide ​copies ​of runtime libraries optimized for the features ​of the OS and the hardware. 
 + 
 +The concept of a runtime ​library should ​not be confused with an ordinary program library like those created by application ​programmers or delivered as third party such as [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​dll]] ​ or [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​so]],​ meaning a program library linked at run time. For example, ​the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​programlang|programming language]] C requires only a minimal runtime library (commonly called ''​crt0''​) but defines ​a large standard library ​(called ''​C standard library''​that each implementation delivers. 
 + 
 +Consequently, the successful execution of an application ​depends on the proper versions ​and revisions of all other the Relocatable Objects. It also means that some kinds of errors can only be caught ​at execution or run time. These kinds of errors are best caught using strategic testing methodologies ​and strategies such as [[dido:​public:​ra:​xapend:​xapend.a_glossary:​r:​regressiontesting | regression]] or [[dido:​public:​ra:​xapend:​xapend.a_glossary:​u:​unittesting| unit testing]](see:​ [[dido:​public:​ra:​1.4_req:​2_nonfunc:​20_maintainability:​testability | testability]] for more on testing).
  
-Mansourov, Nikolai, Campara, Djenana; 2011 [[https://​www.sciencedirect.com/​topics/​computer-science/​runtime-platform]] 
  
 /​**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /​**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
dido/public/ra/1.4_req/1_func/platform/sw_arch.1607618258.txt.gz · Last modified: 2020/12/10 11:37 by nick