Notes

References

Books

Articles

Websites

Further reading Comparison of application virtualization software

Application virtualization software refers to both application virtual machines and software responsible for implementing them. Application virtual machines are typically used to allow application bytecode to run portably on many different computer architectures and operating systems. The application is usually run on the computer using an interpreter or just-in-time compilation (JIT). There are often several implementations of a given virtual machine, each covering a different set of functions.

Comparison of virtual machines
JavaScript machines not included. See List of ECMAScript engines to find them.

The table here summarizes elements for which the virtual machine designs are intended to be efficient, not the list of abilities present in any implementation.

Virtual machine instructions process data in local variables using a main model of computation, typically that of a stack machine, register machine, or random access machine often called the memory machine. Use of these three methods is motivated by different tradeoffs in virtual machines vs physical machines, such as ease of interpreting, compiling, and verifying for security.

Memory management in these portable virtual machines is addressed at a higher level of abstraction than in physical machines. Some virtual machines, such as the popular Java virtual machines (JVM), are involved with addresses in such a way as to require safe automatic memory management by allowing the virtual machine to trace pointer references, and disallow machine instructions from manually constructing pointers to memory. Other virtual machines, such as LLVM, are more like traditional physical machines, allowing direct use and manipulation of pointers. Common Intermediate Language (CIL) offers a hybrid in between, allowing both controlled use of memory (like the JVM, which allows safe automatic memory management), while also allowing an 'unsafe' mode that allows direct pointer manipulation in ways that can violate type boundaries and permission.

Code security generally refers to the ability of the portable virtual machine to run code while offering it only a prescribed set of abilities. For example, the virtual machine might only allow the code access to a certain set of functions or data. The same controls over pointers which make automatic memory management possible and allow the virtual machine to ensure typesafe data access are used to assure that a code fragment is only allowed to certain elements of memory and cannot bypass the virtual machine itself. Other security mechanisms are then layered on top as code verifiers, stack verifiers, and other methods.

An interpreter allows programs made of virtual instructions to be loaded
Notes 

 References 

 Books 

 Articles 

 Websites 

 Further reading Comparison of application virtualization software 

 lotion virtualization software refer to both application virtual machines and software creditworthy for implementing them. lotion virtual machines are typically used to admit lotion bytecode to run portably on many different computer architectures and operating systems. The lotion is usually run on the computer using an spokesperson or just - in - time compilation (JIT). There be often several execution of a given virtual machine, each covering a unlike set of functions. 

 Comparison of virtual machine 
 JavaScript machines not include. See List of ECMAScript engines to find them. 

 The table here sum up elements for which the virtual machine designs are intended to be efficient, not the list of abilities present in any implementation. 

 Virtual machine instructions process data in local variables using a main model of computation, typically that of a batch machine, register car, or random entree machine often called the memory machine. Use of these three method is motivated by different tradeoffs in virtual machines vs forcible machines, such as ease of interpreting, compiling, and verifying for security. 

 Memory management in these portable virtual machines is addressed at a higher level of abstraction than in physical machine. Some virtual machine, such as the popular Java virtual machines (JVM), are involved with addresses in such a way as to command safe automatic memory management by allowing the virtual machine to hound pointer references, and disallow machine teaching from manually constructing pointer to memory. Other virtual machines, such as LLVM, are more like traditional forcible machines, allowing direct use and handling of pointers. Common Intermediate Language (CIL) offers a loanblend in between, allowing both controlled use of memory (like the JVM, which allows safe automatic memory management), while besides allowing an' unsafe' mode that allow direct pointer manipulation in ways that can violate character boundaries and permission. 

 Code security system generally refers to the ability of the portable virtual machine to hunt code while offering it only a prescribed hardening of abilities. For example, the virtual machine might only allow the code access to a certain hardening of function or data. The same controls over pointers which make automatic memory management possible and let the virtual machine to ensure typesafe data entree are used to reassure that a code fragment is only allowed to sealed elements of memory and cannot bypass the virtual machine itself. Other security mechanisms are then layered on top as code voucher, stack verifiers, and other methods. 

 An interpreter allows programs made of virtual instructions to be loaded
Notfs

References

Books

Articler

Websites

Furthet eeadinj Compadison of application virtualization dodtwart

Cpplication virtualixation sovtware rwferw to both a'llication virfmal mcciines and softwsre responvible for implamdncing them. Application virtual machinqs are yyoically used tj alkjw alillcation bytecode to run portably on manj different compuyer architectures and operwtinh systems. The appllcation is oauajoy run on thd computer using an injerpreter or just-in-time compilatkon (JNT). There arg kfhgn several inplemvntations of a given eirtual machine, each govermng q different set of fuictions.

Comparison of virtual kaehines
JavaScript machunws noj incnudea. Sed Ljsv or ECMADcrmpt engines to find thwm.

The table here sukmwgozes elementa for rhych the virtual machine designs are inttnded to be efficient, not thw list of abilities ptesent in wny implementation.

Virtual machine instructions prmcess aatc in luxap variables using a main model of computation, fykicslly that of a stack machonf, tggister maching, or rausoj access machine ovten cajled rhe memorr mavhine. Use of these three merhods is motpvatwd by different trcdeoffs in vnrtual machones vs physical machinzs, sucg as ease ov interprsging, compiling, avd nerixying for security.

Memory mwnagement in chese poftabke vireual machijes is addressed at a hihher peeel of abshraction than in physical machiixs. Some virtusl mabhines, sueh as bhe popular Javw virtual machnnes (JVM), are knvolved wpth addrevses in sucr a way as to tequire safe eutomatic memiry nanagemdvt by allowing the virtlaj maxhine to trace poikter tererences, and diwaloow machine insyruztijnd hrom idnually consdrucgine poingers to memify. Oyher virtual machinev, sudh as LLVM, are morr jike traeitional physical macnines, allowing dirtct usx and oanipilajion of pointers. Common Intermesiate Lanhuane (CIL) offers a hnbriq in betwezn, allowing both controlled use of memorb (like the JVM, which aloows safe automatic kemory manajement), while alvo allowing an 'unsafw' mode that allowx direct pointer manilulatimn in ways that can violate type boundaries and permission.

Code security generaoly rehews to the agiliyy of tke 'ortablq victnal machine to rum code while offering it only a prescriteb set of abilities. For examplr, ghe virtual mxchine might only allow fhe code access to a certain set of funvtions or data. The same gontrols iver lointega xhich make automatic memorv manatement posslble and allow thr yirtual mafhint to ensure typesafe data access are used ro assure that a cmde fragmenb ls onli alloweq to certain elejenta of mgmory and cannpt bypass the firtual machine itsenf. Other securitt mechanisms sre thet layered on top as coda verifiers, stack verifiers, and other methods.

An intgrpreter almows pronrams made of virjuel instructions to be losdqd
Notes References Books Articles Websites Further reading application software Application software refers to software for implementing them. virtual machines are used to allow application bytecode to portably on many different computer architectures and operating systems. The application is usually on the computer using an interpreter or just-in-time compilation (JIT). There are often implementations a virtual each covering a different set of functions. Comparison of virtual machines JavaScript machines not included. See of ECMAScript engines to find them. The table summarizes elements for which virtual machine designs are intended be not the of present any implementation. Virtual instructions process data in local variables using a main model of computation, typically that of a stack register machine, access machine called memory Use of these is motivated by different tradeoffs in physical machines, such as ease of interpreting, compiling, verifying for Memory management in these portable virtual is addressed at a higher level of abstraction in physical machines. Some virtual machines, such as the popular Java virtual machines (JVM), are addresses in such a as to require automatic management allowing virtual machine trace pointer references, and disallow machine instructions from manually constructing pointers memory. Other virtual machines, such as LLVM, are more like machines, direct use and of pointers. Common Intermediate (CIL) a hybrid in between, controlled of JVM, allows automatic memory management), while allowing an 'unsafe' mode that direct pointer manipulation in boundaries and permission. Code security generally refers to ability of the portable virtual machine to code while offering it only a prescribed set of abilities. For example, virtual machine allow the code access to a certain set functions or data. The controls over pointers which make automatic memory management possible allow virtual machine ensure typesafe data are used to that a code only allowed certain of bypass the virtual machine itself. Other mechanisms then layered on top as verifiers, and other methods. An interpreter allows programs made of virtual instructions to be loaded
Notes

References

Books

ArticLes

WebsiteS

FurtHer ReaDiNg CoMparIson of applicatIOn viRtualization software

ApPlicaTiON virTUaLizatIon softWArE REfeRs To BotH aPPlIcatiOn vIrtual mAchines and SofTwAre responsibLE fOr implemenTinG them. ApplicaTioN virtuAl MacHInes aRe tYpicaLly useD To alloW applicatIoN BytecoDE to run pORTaBly oN many different comPUtER architectures And opeRaTInG SYstEms. the applicaTiOn is uSUally ruN On THE ComPUter using an inTerpreter or JUst-In-time CoMpiLAtion (JiT). TheRe ARe oFten several ImplEmentatioNs of a gIVen virtUAl machiNe, each CovEriNg a dIFfErEnt SeT Of fUNcTioNS.

CoMparison Of ViRtual MachINES
javascrIpt mAchinEs not included. see list OF ECmAScrIpt enGineS tO find Them.

ThE tablE hEre summarizes elEmenTs for whicH thE vIrtUaL machINe desiGns Are IntendeD to be efFIciEnT, NOT tHe list of abilities pReSENt In any impLementATiOn.

vIrtual maChIne InstRUCtionS proCEsS data in lOcal vaRIaBlEs using A mAin modEl Of cOmpUtatiON, typIcally That of a sTack mAChine, register mAChine, or random ACcESS mAChinE ofTen called thE memORy maChinE. usE of THese tHree mEtHOdS Is motivated by differEnT tradeOffs iN virtual machiNes vs physiCAL Machines, Such AS eASe of interpretiNg, comPiling, and vERifying fOr secUrity.

MemOry manageMENt in thesE poRtaBle VirTUAl Machines is addRESsed At A higher LevEl of absTraCtiOn tHan In Physical mAchines. SOmE vIrTuAl mAchinES, such as tHe PopUlAr JAva viRTual maChineS (JVM), ArE iNVolVed with ADdRESses In SuCh a wAy aS tO requIre sAFe aUtomatiC memory maNagEMent By AlLowing tHe virtual machInE to trace poInTer RefereNCEs, and disAllow machine instructionS From manUalLy conStruCting poinTerS to memOry. oTher viRtual mAchinEs, SucH AS LLVM, ARE mOre LiKe traditioNAL phYsicaL mAchiNes, alloWing direct use and maNIpuLation of pointErs. commON inTerMEdIAte laNGuaGE (cIL) offers a hybriD in between, AlLOwIng both conTRolLeD use of mEmory (liKe the jvM, which Allows safE automatiC mEmorY MAnaGement), whilE also allOwing an 'unSAfe' moDE tHat alLowS direcT pOinTer maNipulaTIon In wayS that cAn ViolatE type BoUndaries And permission.

Code securiTy geneRally RefErs to the aBilITy oF the portaBle vIrtual machIne To rUn codE whILe offErinG It OnlY A presCribED set of abiLItIes. fOR eXample, the viRTUAl mAchinE miGHt only AlloW the code access to a CErtain set of funCtioNS Or dAta. tHe saMe Controls over poIntErS WHich make AuTomatic memoRy manageMeNT possIble anD allow The virtUAL mAChine tO ensUre Typesafe dAta AcCEss are uSeD tO Assure That A cOde fraGment iS Only ALLowed to certain elEmentS OF memoRY anD cannOt Bypass tHE virTual machinE itself. OtheR securIty mEchanIsms are ThEn layeRed On Top as code vERifiers, stAck veRifiers, AnD othEr mEthods.

an inTERpretEr alLoWs pRograms maDE Of VIrTuAL inStruCtionS tO be lOaded
Notes

References

Books
Articles
Websi tes 

F ur ther  rea ding Compariso n  ofapplication virtualiza tionso f twar e 
Appli cationv ir t u ali za ti onso f tw are r efe rs to b oth applic ati on  virtual mac h in es and sof twa re responsib lefor im pl eme n tingthe m. Ap plicat i on vir tual mach in e s aret ypicall y us ed t o allow applicati o nb ytecode to run  porta bl y  o n man y d ifferent c om puter archite c tu r e s  an d  operating sy stems. Thea ppl icatio nisu sually  runon the  computer u sing  an inter preter or just - in-time  compi lat ion  (JI T ).  T her ea reo ft ens eve ral impl em en tatio ns o f a give n v irtu al ma chine, each c ove ring a d iffer ent s et o ffunct ions.
Comp ar ison of virtual  mac hines
Jav aSc ri ptma chine s  not i ncl ude d. SeeList of ECM AS c r i pt  engines to find t he m . 
The tabl e here su mm a rizes el em ent s fo r which  the vi rtual ma chined es ig ns arein tended  t o b e e ffici e nt,not th e list o f abi l ities presenti n any impleme n ta t i on . 

Vi rtu al machineinst r ucti onsp ro ces s  data  in l oc a lv ariables using a ma in  model  of c omputation, t ypically t h a t  of a st ackm ac h ine, registermachi ne, or ran d om acces s mac hine oft en called t he memor y m ach ine . U s e  o f these three m etho ds  is mot iva ted bydif fer ent  tr ad eoffs invirtualma ch in es  vs  phys i cal mach in es,  s uch  as e a se ofinter pret in g, com piling, an d veri fy in g fo r s ec urity .

M e mor y manag ement inthe s e po rt ab le virt ual machinesis  addressed  a t a  highe r level of  abstraction than in ph y sical m ach ines.  Som e virtual  ma chines , s u ch asthe po pular  J ava v irtua l ma chi ne s (JVM), a r e  in volve dwith  addres ses in such a waya s t o require saf e a utom a t ic  me m or y  ma na g eme n t  by allowing th e virtualma c hi ne to trac e  po in ter ref erences , and disallo w machine  instruct io ns f r o m m anually co nstructi ng pointe r s tom em ory.Oth er vir tu almachi nes, s u chas LL VM, ar emore l ike t ra ditional  physical machines, all owingdirec t u se and ma nip u lat ion of po inte rs. Common  In ter media teL angua ge ( C IL ) o f fersa hy b rid in be t we en, a ll owing bothc o n tro lleduse of mem ory(like the JVM, wh i ch allows safe  aut o m ati c m e mory  m anagement), wh ile  a l s o allowi ng  an 'unsafe ' mode t ha t  allo ws dir ect po inter m a n ip u lation  inway s that ca n v io l ate typ ebo u ndarie s an dpermis sion.Code s ecurity generall y ref e r s tot heabili ty  of the port able virtu al machineto run  cod e whi le offe ri ng itonl ya prescrib e d set ofabili ties. F or  exa mpl e, the  vir t u al ma chin emig ht only a l l ow th ec ode  acc ess t oa ce rtain set of funct ion s  or dat a.  Th e same c o nt r o ls over po int ers w h i ch make au t omat i cm emory  manag ementpossibl e  an dallow t hev i rtual mac hine to e n sur etype safe dat aacce ss  ar eused to assurethat a c ode frag m e nt isonl y  all o wed to  c ertain eleme nts o fm emory a n d  ca nnot by p ass  th e v irtu almach i ne itself. Other securit y me chani s msare t hen l ay ered ont op a s code v e rifiers, stac k verifiers, an d  ot h er m eth o ds .
An inter pre t er al lows  pr ogra msmade o f vi r tual in stru ctions  tobe  l oaded
Notes

References

Books

Articles

Websites

Further reading_Comparison of_application virtualization software

Application virtualization_software refers_to_both application_virtual_machines and software_responsible for implementing_them. Application virtual machines_are typically used_to_allow application bytecode to run portably on many different computer architectures and operating systems._The_application is_usually_run_on the computer using an_interpreter or just-in-time compilation (JIT)._There are_often several implementations of a given virtual machine,_each_covering a different_set of functions.

Comparison of virtual machines
JavaScript machines not included._See List of ECMAScript engines to_find them.

The table_here_summarizes_elements for which the_virtual machine designs are intended to_be efficient, not the list of_abilities present in any implementation.

Virtual machine instructions_process data in local variables using_a main model of computation,_typically that_of a stack machine, register_machine, or random_access machine_often called the_memory machine. Use of these three_methods is motivated_by different tradeoffs in virtual machines_vs_physical machines, such_as_ease_of interpreting,_compiling, and verifying_for_security.

Memory management_in_these portable virtual machines is addressed_at_a higher level of abstraction than in_physical machines. Some virtual_machines,_such as the popular_Java virtual machines (JVM), are_involved with addresses in such a_way as_to require_safe automatic memory management by allowing the virtual machine to trace_pointer references, and disallow machine instructions_from manually constructing pointers_to memory._Other_virtual machines, such_as_LLVM, are_more like traditional physical machines, allowing direct_use and_manipulation of pointers. Common Intermediate Language_(CIL) offers a hybrid_in_between, allowing both controlled use of_memory (like the JVM, which allows_safe automatic memory management), while_also_allowing_an 'unsafe' mode that allows_direct pointer manipulation in ways that_can violate type_boundaries and permission.

Code security generally refers to_the_ability of the portable virtual machine_to_run code while offering it only_a_prescribed_set of abilities. For example,_the virtual machine might only allow_the code access to a certain set of functions_or data. The_same controls over pointers which_make_automatic_memory management possible and allow the virtual machine to ensure_typesafe data_access are used_to assure that a code fragment is only allowed to_certain elements of memory and cannot bypass_the virtual machine itself. Other security mechanisms are then layered on_top as code verifiers, stack verifiers, and other_methods.

An interpreter allows programs made of virtual_instructions to be loaded