JavainEmbeddedLinuxSystems
JavainEmbeddedLinuxSystems
ThomasPetazzoni/MichaelOpdenacker FreeElectrons [Link]
CreatedwithOpenOffice.org2.x
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
Rightstocopy
Copyright20042008 FreeElectrons feedback@[Link] Documentsources,updatesandtranslations: [Link] Corrections,suggestions,contributionsand translationsarewelcome!
AttributionShareAlike2.5 Youarefree tocopy,distribute,display,andperformthework tomakederivativeworks tomakecommercialuseofthework Underthefollowingconditions [Link]. [Link],transform,orbuilduponthiswork, youmaydistributetheresultingworkonlyunderalicense identicaltothisone. Foranyreuseordistribution,youmustmakecleartoothersthe licensetermsofthiswork. Anyoftheseconditionscanbewaivedifyougetpermissionfrom thecopyrightholder. Yourfairuseandotherrightsareinnowayaffectedbytheabove. Licensetext:[Link]
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
Bestviewedwith...
ThisdocumentisbestviewedwitharecentPDFreader [Link]! Takeadvantageofinternalorexternalhyperlinks. So,donthesitatetoclickonthem! Findpagesquicklythankstoautomaticsearch Usethumbnailstonavigateinthedocumentinaquickway IfyourereadingapaperorHTMLcopy,youshouldgetyour [Link] [Link]
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
Contents
Javahistory Keyconceptsandfeatures IssueswithJava Java'sstrengthsfor embeddedsystems Glossary Javaimplementations JVMimplementations Javahardware accelerationandLinux Conclusion Usefulreading
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
Javahistory(1)
1991:Sunstartedworkingonaprojecttoanticipatethenextwave ofcomputing:theconvergenceofdigitallycontrolledconsumer devicesandcomputers. 1992:Implementedhomeentertainmentcontroldemoswitha processorindependentlanguage:Oak. 19921994:focusmovingfromdigitalcabletelevisionnetworkto theInternetasawaytopublishandsharecontent. 1994:OakrenamedasJava. 1994:HotJavawebbrowserwithdynamic,executablecontent. 1995:[Link].
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
Javahistory(2)
1995:NetscapeannouncedsupportforJava. 1996:Java1.0release. 1996:MicrosofttakesaJavalicense. 19972001:SunsuesMicrosoftfortryingviolatingitslicenseandtrying toenforceitsownJavastandard. 2001:MicrosoftlosestherighttoadvertiseitsproductsasJava [Link]'slicensedterminatedbutcancontinuetouseits ownimplementations. 1998:Java1.2.RenamedasJava2 2006:SunannouncesthereleaseofJavaundertheGPLLicense. JavaisFree!
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
Javakeyconcepts
WORE WriteOnce,RunEverywhere JavaapplicationsarecompiledinJavaVirtualMachine(JVM) [Link].
Java sourcecode
Java Compiler
JVM binary
Developer environment
JVM binary
JVM Interpreter
User environment
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
Javafeatures
See[Link]
Simple
Automaticgarbagecollection,smallfootprint Objectoriented Forwelldefined,reusableswcomponents NetworkSavvy Supportfornetworkprotocols(http,ftp...) Robust Nopointers,nomemorycorruption,true [Link]. Secure Builtforsecurityinnetworkingenvironments. Dataprotection(nopointers). Architectureneutral CoderunsanywhereaVMisavailable Portable Noarchitecturedependentdatasizes(int:32bit, float:32bit).PortableVMsourceCcode. Interpreted Ontheflyconversiontonativemachinecode Highperformance VMcodedesignedforsimplemachinecode [Link] [Link]. Multithreaded [Link] RealtimeperformancelimitedbyOSRTperf. Dynamic Upgradingaclassdoesn'tforcetorecompilethe applicationsusingit.
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
JNI:JavaNativeInterface
Helpstounderstandhowyoucanaccessthehardware withtheJVM! TheJNIletscoderunningontheJVMoperatewith applicationsandlibrarieswritteninotherlanguagessuch asC,C++orassembly. Neededtousesystemdependentroutineshandling hardwareaccess.
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
Java'sstrengthsinembeddedsystems
HidesthespecificitiesofthedeviceandtheembeddedOS ProvidesanumberoffeaturesbeyondthoseofferedbytheOS Allowstobuildnetworkinteroperableembeddedsystems,whatever theirhardwarearchitecture. [Link] onworkstationsinparallelwiththehardware. Makesitpossibletoreusecode EasyintegrationofJavaCodeandnativecode Smallerapplicationsfootprint:morecompactbytecodeandhigherlevel classavailability.
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
10
SunJavaplatforms
Sundefined3platformstargetingdifferentapplication environments JavaPlatformMicroEdition(JavaME), forenvironmentswithlimitedresources JavaPlatformStandardEdition(JavaSE),for [Link] hisworkstationtorunJavaapplicationsorapplets JavaPlatformEnterpriseEdition(JavaEE),forlarge distributedenterpriseorInternetenvironments
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
11
Javaterminology
TorunJavaapplications,aJREisrequired JavaRuntimeEnvironment ComposedofaJVM,JavaVirtualMachine, whichexecutesthebytecode AndofanimplementationofallstandardJavaclasses TodevelopJavaapplications,aJDKisneeded JavaDevelopmentKit ComposedofaJREanddevelopmenttools suchastheJavacompiler
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
12
JavaME
JavaMEspecifiestwoconfigurations,withdifferentsetofclassesandAPIs ConnectedLimitedDeviceConfiguration,thesmallestpossibleJava configurationforembeddeddevicessuchasphones. ConnectedDeviceConfiguration,amuchmorefeaturefulconfigurationfor largerembeddeddevicessuchashighendPDAs,settopboxes,etc. Eachconfigurationexistsindifferentprofiles definingexactlywhatfeaturesareavailable. Sunprovidesareferenceimplementation, butthirdpartiesoftenhavetheirownimplementation.
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
13
ImplementationsfromSun
ImplementationsoriginatingfromSun
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
14
Sun'simplementationofJavaSE
SunimplementationofJavausedtobeclosedsource Officialreasonwasthefearofincompatibleforksthatwould breaktheuniformityoftheJavaplatform. In2006,SunopenedthesourcecodeofitsJavaSEimplementation underGPLversion2. TheversionavailabletodayforLinux,WindowsandSolaris,both x86andx86_64. SomepiecesofcodecouldnotbereleasedundertheGPL,because [Link] OpenJDKprojecttoreplacethesepartswithopensourceversions.
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
15
JavaSEforembedded
WiththeincreasinglyfastCPUsandgrowingamountofmemory foundinembeddedsystems,SunisnowadverstisingJavaSEfor embeddedsystems. Suitableifyouhavemorethan32MBofmemoryandstorage, otherwiseonlyJavaMEissuitable. AvailableforARM,[Link] available,reducedfootprintoftheJRE. However,theseversionsarenotreleasedundertheGPL,and subjecttoroyaltieswhendistributed. [Link]
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
16
OpenJDK(1)
[Link] ProjectstartedbySunafteropensourcingJavainNovember2006 Goal:tocollaborateonanopensourceimplementationofthe JavaPlatform,StandardEditionandrelatedprojects Encumberedparts:audioengine,cryptographiccode,font rasterizer,colormanagement,etc. InJune2007,RedHatstartedtheIcedTeaprojecttocreate experimentalpatchestoreplacethesepartsandwasshipping IcedTeainitsdistribution. See[Link]
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
17
OpenJDK(2)
November2007,RedHatjoinsOpenJDK. December2007,JavasourcecodemovedtoMercurial. February2008,firstread/writeaccesstotherepositorytonon Sunengineers. February2008,OpenJDK6createdtoquicklyhaveafullyOpen Sourceimplementationwithasfewdifferencesaspossible. ThisversionisnowshippedinUbuntu8.04,Fedora9andRed HatEntrepriseLinux5. [Link]
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
18
OpenJDKlicense
OpenJDKisreleasedundertheGNUGeneralPublic Licenseversion2,withClasspathexception. TheClasspathexceptionhasbeendesignedfortheGNU Classpathproject(coveredlater). Itallowstocreateanddistributeproprietaryapplications ontopoffreeimplementationsofJava. [Link]
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
19
PhoneME
[Link] ProjectcreatedafteropensourcingSunimplementationofJavaME Twoversions PhoneMEfeaturesoftware(CLDC),formobilephones PhoneMEadvancedsoftware(CDC),forhigherenddevices Referenceimplementationsavailableforx86,ARMandMIPS. Portingtootherplatformsandarchitecturessaidtobeeasy. JavastillsellsitscommercialversionofJavaME
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
20
IndependentJ2SEimplementations
IndependentJ2SEimplementations
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
21
Components(1)
AusableimplementationofJavaismadeofseveral importantcomponents AJavacompiler,eithertomachineorbytecode AvirtualmachinecapableofexecutingtheJava bytecode TheclasslibraryimplementingallstandardJavaclasses andmethods
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
22
Components(2)
Developingavirtualmachineisinteresting,alotofinnovation andresearchispossible
Lotsofdifferentprojectsavailable
Developingtheclasslibraryisnotreallyinteresting,verylong andprobablyboring
Onlyoneusableproject:GNUClasspath
Thevirtualmachineandclasslibraryarenotindependent: someintegrationbetweenthemisneeded
[Link]
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
23
GNUClasspath
[Link] JavaclassesimplementationfromtheGNUproject License:GNUGPL,whichanexceptionforlinkingwiththis [Link],nolicenseissuewithproprietaryJavaprograms. ExhaustiveJavaAPIimplementation,abletorunapplications suchasEclipse. GraphicalapplicationsrelyonGTKorQt. Activeproject.
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
24
GNUcompilerforJava
[Link]
gcjcancompile:
Javasourcecodedirectlytonative machinecode JavasourcecodetoJavabytecode (classfiles) Javabytecodetonativemachine code.
libgcj:runtimeforgcj compiledapplications
coreclasslibraries garbagecollector bytecodeinterpreter
gcjcanalsobeconfiguredasa crosscompiler! gdbsupport
libgcjisnowmergedwith GNUClasspath,sothesupportis verywide. gij:bytecodeinterpreter
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
25
Usinggcj:sampleprogram
classHello{ publicstaticvoidmain(Stringargs[]){ [Link]("HelloWorld"); } };
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
26
Usinggcj:nativecode
$[Link]=Helloohello $filehello $./hello HelloWorld $lddhello [...] [Link].90=>/usr/lib/[Link].90(0xb5f5c000) [...] On a Debian system, [Link] takes ~32 MB.
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
hello:ELF32bitLSBexecutable,Intel80386,version1(SYSV),for GNU/Linux2.6.8,dynamicallylinked(usessharedlibs),notstripped
Sep15,2009
27
Usinggcj:bytecode
Compiling $[Link] $lsHello.* [Link] Executing with gij and Sun's JVM $gijHello HelloWorld $javaHello HelloWorld
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
28
Othercompilers
Jikes
InitiallycreatedbyIBM,nowacommunityproject [Link]
Eclipsecompiler
IncrementalcompilerusedinEclipse Nowusedforparsingbygcj,sincegcc4.3(March2008),in ordertosupportthelatestadditionsofJava1.5suchasgenerics [Link]
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
29
Kaffe
[Link] CleanroomJVMimplementationplusassociatedclasslibrariesneededbyaJava runtimeenvironment,takenfromtheGNUClasspathproject NotanofficiallylicensedJVMimplementation. NotfullycompatiblewithJavaspecsandlackssomekeyfeatures(security,etc.) Supportedinseveralplatforms:x86,arm,mips,m68k,ppc... GreatforVMeducationorresearch,orinaFreeSoftwareJavadistribution. Untilversion1.1.9,KaffehasadditionalgraphicalbackendsoverClasspathbut theywillbedroppedinfutureversions License:GNUGeneralPublicLicense
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
30
JikesRVM
[Link] RVM:ResearchVirtualMachine OpenSource(CommonPublicLicense)implementationfrom IBM ImplementedonJava,runningonitselfwithoutrequiringasecond virtualmachine SupportedLinuxPlatforms: x86andPowerPC ReliesonGNUClasspath.
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
31
SableVM
[Link] Arobust,clean,easytomaintainandextend,extremelyportable, efficient,andspecificationcompliantJavavirtualmachine CleanroomJVMimplementation RoughlysupportedonmostarchitecturessupportedbyLinux (ARMinparticular) CompatiblewithJVMandJavaLanguagespecifications License:GNULesserGeneralPublicLicense UsesGNUClasspath(GPLwithanexceptionforlinking)
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
32
JamVM
[Link] AcompactVirtualMachine Verycompact:~200KBonPowerPC,180KBonx86 Fullfeatured,conformingtothespecifications,contrarytoother lightweightJVMs Activelydeveloped AvailableforLinuxonPowerPC,x86,ARM,x86_64andMIPS DesignedtoworkwithGNUClasspath
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
33
Cacao
[Link] AnotherVirtualMachineusingJIT WorksonARM,MIPS,PowerPC,x86,x86_64 CanuseeitherGNUClasspath,OpenJDKorPhoneME asaJavaruntimelibrary. PackagesnowavailableinDebianunstable.
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
34
IBM'sJavaonLinux
[Link] CompleteimplementationfromIBM: J2SE,J2EE,J2ME,includingIBM'sVM. SupportedLinuxplatforms(onlyin32bitmode) IA32,AMD64,Itanium,PowerPC64bit,zSeries IBM'simplementations ReengineeredJavaMachine,IBM'sJustInTimecompiler... JavaisatthecoreofIBM'sstrategy(WebSphereinparticular)
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
35
IndependentJ2MEimplementations
IndependentJ2MEimplementations
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
36
J2MEimplementations
MIDPath JavalibrarythatprovidesaMIDP2implementation,alternativetothe [Link] CLDCversionofCacaoVM. MIDP2isaspecificprofileofCLDCfoundonmanyphones [Link] Microemu J2MEemulatorthatrunsontopofJ2SE PurelyimplementedinJava [Link]
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
37
JavahardwareaccelerationinLinux
SomeARMcoresdirectlysupportJavabytecodeexecution(Jazelletechnology): [Link] Theprocessorcandirectlyexecute~120Javabytecodeinstructions,and generateanexceptionfortherestsothattheexecutionofthebytecodecanbe emulated. Unfortunately,ARMdoesn'tpublishthespecificationsofthistechnology OnlylicenseescangetinformationaboutJazelle Sun'sJVMareJazelleaware,butthroughabinaryonlycomponent Somereverseengineeringisinprogress.
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
38
Conclusion
Javahasgreatcompetitiveadvantagesfordeveloping applicationsforoperatingsystems. FreeSoftwareimplementationsforGNU/Linuxare availablenowandsatisfymostneeds.
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
39
Usefulreading
EmbeddedJava+Linuxreference:
[Link]
Javaoverviewandhistory:
[Link]
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
40
Relateddocuments
AllthetechnicalpresentationsandtrainingmaterialscreatedandusedbyFreeElectrons, availableunderafreedocumentationlicense(morethan1500pages!). [Link]
IntroductiontoUnixandGNU/Linux EmbeddedLinuxkernelanddriverdevelopment FreeSoftwaretoolsforembeddedLinuxsystems AudioinembeddedLinuxsystems MultimediainembeddedLinuxsystems LinuxUSBdrivers RealtimeinembeddedLinuxsystems IntroductiontouClinux LinuxonTIOMAPprocessors FreeSoftwaredevelopmenttools JavainembeddedLinuxsystems IntroductiontoGNU/LinuxandFreeSoftware Linuxandecology What'snewinLinux2.6? HowtoportLinuxonanewPDA
[Link]
AdvantagesofFreeSoftwareinembeddedsystems EmbeddedLinuxoptimizations EmbeddedLinuxfromScratch...in40min!
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
41
Howtohelp
Ifyousupportthiswork,youcanhelp... Bysendingcorrections,suggestions,contributionsandtranslations Byaskingyourorganizationtoordertrainingsessionsperformedby theauthorofthesedocuments(see[Link] Byspeakingaboutittoyourfriends,colleagues andlocalFreeSoftwarecommunity. Byaddinglinkstoouronlinematerialsonyourwebsite, toincreasetheirvisibilityinsearchengineresults.
JavainEmbeddedLinuxSystems Copyright20042007,FreeElectrons, CreativeCommonsAttributionShareAlike2.5license [Link]
Sep15,2009
42
EmbeddedLinuxTraining UnixandGNU/Linuxbasics Linuxkernelanddriversdevelopment RealtimeLinux uClinux Developmentandprofilingtools Lightweighttoolsforembeddedsystems Rootfilesystemcreation Audioandmultimedia Systemoptimization
FreeElectronsservices
CustomDevelopment Systemintegration EmbeddedLinuxdemosandprototypes Systemoptimization Linuxkerneldrivers Applicationandinterfacedevelopment
Consulting Helpindecisionmaking Systemarchitecture Identificationofsuitabletechnologies Managinglicensingrequirements Systemdesignandperformancereview
TechnicalSupport Developmenttoolandapplicationsupport Issueinvestigationandsolutionfollowupwith mainstreamdevelopers Helpgettingstarted
[Link]
Relateddocuments
Allourtechnicalpresentations on[Link] Linuxkernel Devicedrivers Architecturespecifics EmbeddedLinuxsystemdevelopment
[Link],driversandembeddedLinuxdevelopment,consulting,[Link]//[Link]
Howtohelp
Youcanhelpustoimproveandmaintainthisdocument... Bysendingcorrections,suggestions,contributionsand translations Byaskingyourorganizationtoorderdevelopment,consulting andtrainingservicesperformedbytheauthorsofthese documents(see[Link] Bysharingthisdocumentwithyourfriends,colleagues andwiththelocalFreeSoftwarecommunity. Byaddinglinksonyourwebsitetoouronlinematerials, toincreasetheirvisibilityinsearchengineresults.
[Link],driversandembeddedLinuxdevelopment,consulting,[Link]//[Link]
Linuxkernel Linuxdevicedrivers Boardsupportcode Mainstreamingkernelcode Kerneldebugging EmbeddedLinuxTraining Allmaterialsreleasedwithafreelicense! UnixandGNU/Linuxbasics Linuxkernelanddriversdevelopment RealtimeLinux,uClinux Developmentandprofilingtools Lightweighttoolsforembeddedsystems Rootfilesystemcreation Audioandmultimedia Systemoptimization
FreeElectrons
Ourservices
CustomDevelopment Systemintegration EmbeddedLinuxdemosandprototypes Systemoptimization Applicationandinterfacedevelopment Consultingandtechnicalsupport Helpindecisionmaking Systemarchitecture Systemdesignandperformancereview Developmenttoolandapplicationsupport Investigatingissuesandfixingtoolbugs