US20060075388A1 - Cross-platform software development with and software development peripheral - Google Patents

Cross-platform software development with and software development peripheral Download PDF

Info

Publication number
US20060075388A1
US20060075388A1 US11/283,783 US28378305A US2006075388A1 US 20060075388 A1 US20060075388 A1 US 20060075388A1 US 28378305 A US28378305 A US 28378305A US 2006075388 A1 US2006075388 A1 US 2006075388A1
Authority
US
United States
Prior art keywords
software development
computing device
peripheral
operating system
host computing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/283,783
Inventor
David Kelley
Larry Morris
Sridhar Mandyam
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to US11/283,783 priority Critical patent/US20060075388A1/en
Publication of US20060075388A1 publication Critical patent/US20060075388A1/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Definitions

  • This invention relates to software development and, in particular, to cross-platform development of software applications and operating systems with a software development peripheral device.
  • Cross-platform development involves developing software, such as operating systems or application programs, such that the software operates with computers having different central processing units (CPUs) from one central processor unit type to another.
  • Cross-platform development is typically accomplished by using a computer system to emulate different processors, or with a software development board connected to a computer system.
  • FIG. 1 illustrates a conventional cross-platform development system 100 that includes a computer system 102 having processor emulation components.
  • Computer system 102 includes a central processing unit 104 , an operating system 106 , and a cross-platform development application 108 that includes a processor emulator 110 .
  • Processor emulator 110 emulates a virtual processor inside of central processing unit 104 , where the virtual processor is of a different type than processor 104 .
  • the cross-platform development application 108 includes components or application tools, such as processor emulator 110 , that enable software developers to configure, build, and debug new software applications and operating systems.
  • processor emulator 110 With components of the cross-platform development application 108 , a developer can design a new operating system, such as for a personal digital assistant or hand-held computing device, and include various features and device drivers. An image 112 of the new operating system can then be downloaded to processor emulator 110 that appears as an independent processor, but is actually a virtual processor.
  • a developer can utilize processor emulation for cross-platform development to view and debug a new software application or operating system in a window displayed on a display device 114 connected to, or integrated with, computer system 102 . Additionally, a developer can debug the new software application or operating system with a keyboard 116 and mouse 118 connected to computer system 102 .
  • Cross-platform development with processor emulation is simplified because external hardware to run and test a new software application or operating system does not need to be connected to computer system 102 .
  • existing peripheral input/output devices such as display 114 , keyboard 116 , and mouse 118 , connected to computer system 102 , can be utilized to interact with the software application or operating system being developed.
  • processor emulation Although cross-platform development with processor emulation is simplified for a developer, a virtual processor only emulates one type of processor and runs up to ten-times slower than an actual central processing unit. Processor emulation does not provide a realistic representation of how a new software application or operating system will perform when executed with the actual central processing unit that the virtual processor is emulating. Consequently, processor emulation is not reliable as a software debug tool for a final version of a product.
  • a software development board can be configured with different processors from different manufacturers, and can be configured with many different hardware options and configurations.
  • FIG. 2 illustrates a conventional cross-platform development system 200 that includes a computer system 202 connected to a software development board 204 .
  • Computer system 202 includes a central processing unit 206 , an operating system 208 , and a debug transport layer 210 .
  • the debug transport layer 210 is a connection interface for a physical connection 212 to software development board 204 .
  • transport layer 210 is implemented as an Ethernet debug transport, and physical connection 212 is an Ethernet connection.
  • Software development board 204 includes a central processing unit 214 , a read only memory (ROM) 216 , and a random access memory (RAM) 218 .
  • Conventional software development board 204 also includes a system of connections 220 for peripheral input/output devices, such as a keyboard input/output 222 for an external keyboard 224 , a mouse input/output 226 for an external mouse 228 , and a display input/output 230 for an external display device 232 .
  • Software development boards also typically include additional debug connectors, debug indicators such as LEDs, and expansion slots for variable hardware configurations. These additional components also add to the expense a software development board.
  • Software development board 204 maintains a bootloader application 234 in ROM 216 .
  • a bootloader 234 is the only software code that is maintained on software development board 204 when the board is first set up for testing.
  • the bootloader 234 communicates with computer system 202 via physical connection 212 , or simply waits to receive an operating system image from computer system 202 .
  • an image 236 of the new operating system is downloaded to RAM 218 on software development board 204 via the debug transport layer 210 and physical connection 212 .
  • bootloader 234 transfers execution of the software development board 204 to the new operating system which executes on central processing unit 214 .
  • the developer can debug with the new operating system with the keyboard 224 , mouse 228 , and display device 232 connected to the software development board 204 .
  • peripheral input/output devices such as a keyboard, a mouse, and/or a display, that are connected directly to the boards for user interaction.
  • peripheral input/output devices such as a keyboard, a mouse, and/or a display
  • a cross-platform software development system includes a computing device that generates an image of an operating system, and a software development peripheral connected to the computing device that executes the operating system corresponding to the image.
  • the software development peripheral communicates information, such as image data, generated by the operating system back to the computing device where the information is displayed on a display device connected to the computing device.
  • the computing device includes a cross-platform development component that recognizes a configuration identification of the software development peripheral when the software development peripheral is communicatively linked with the computing device via a debug transport.
  • the cross-platform development component generates the image of the operating system corresponding to the configuration identification of the software development peripheral.
  • the computing device also includes a virtual input/output system to communicate the information generated by the operating system between the computing device and virtual device drivers of the software development peripheral.
  • FIG. 1 illustrates a conventional cross-platform development system that includes a processor emulator.
  • FIG. 2 illustrates a conventional cross-platform development system that includes a software development board.
  • FIG. 3 illustrates an exemplary cross-platform development system with a software development peripheral.
  • FIG. 4 illustrates the cross-platform development system shown in FIG. 3 with network communication components.
  • FIG. 5 illustrates the cross-platform development system shown in FIG. 3 with an expansion component to connect peripheral input/output components.
  • FIG. 6 is a flow diagram of a method for cross-platform development with a software development peripheral.
  • FIG. 7 is a diagram of computing systems, devices, and components in an environment that can be used to implement the invention described herein.
  • the cross-platform development system includes a software development peripheral that can also be utilized to test different central processing units from different manufacturers along with the with many different hardware options and configurations.
  • the cross-platform development system provides an easy to use development resource, and also provides accurate and real-time operating system analysis.
  • FIG. 3 illustrates a cross-platform development system 300 having components that can be implemented within a computing device, or the components can be distributed within a computing system having more than one computing device.
  • the cross-platform development system 300 includes a computing device 302 coupled with a software development peripheral 304 via a communication link 306 . See the description of “Exemplary Computing System and Environment” below for specific examples and implementations of networks, computing systems, computing devices, and components that can be used to implement the invention described herein.
  • Computing device 302 includes a central processing unit 308 , an operating system 310 , and a system of peripheral input/output components 312 , such as device drivers and connectors, to couple and support external input/output devices for computing device 302 .
  • the peripheral input/output components 312 include a keyboard input/output 314 for an external keyboard 316 , a mouse input/output 318 for an external mouse 320 , and a display input/output 322 for an external display device 324 and/or external touch screen device 326 .
  • Computing device 302 also includes a cross-platform development component 328 , a virtual input/output system 330 , and a debug transport layer 332 .
  • the debug transport layer 332 is a connection interface for the communication link 306 between computing device 302 and the software development peripheral 304 .
  • Communication link 306 can be implemented as a USB (universal serial bus), or Ethernet connection, for example.
  • Software development peripheral 304 includes a central processing unit 334 , a read only memory (ROM) 336 , a random access memory (RAM) 338 , and a configuration identification component 340 .
  • the configuration identification component 340 can be an independent component of software development peripheral 304 , or component 340 can be a software component and/or a unique identifier component stored in bootloader application 342 in ROM 336 .
  • the bootloader application 342 is the only software code that is maintained on the software development peripheral 304 when the peripheral device is first initialized. The bootloader application 342 communicates with computing device 302 , or simply waits to receive an operating system image from computing device 302 .
  • an image 344 of the new operating system is downloaded to RAM 338 on software development peripheral 304 via the debug transport layer 332 and communication link 306 .
  • the operating system image 344 is a self contained binary file that contains embedded operating system 346 and associated components, such as virtual device drivers 348 .
  • bootloader 342 transfers execution of the software development peripheral 304 to the new operating system 346 which executes on central processing unit 334 .
  • the software development peripheral 304 communicates information, such as debug information and image data, generated by operating system 346 to the virtual input/output system 330 at computing device 302 via communication link 306 and debug transport layer 332 .
  • Information such as debug information and image data
  • Keyboard, mouse, and display information is remoted to computing device 302 with virtual device drivers 348 that are included as part of the operating system image 344 when the image is downloaded from computing device 302 to the software development peripheral 304 .
  • the virtual drivers 348 communicate input/output information and data to the computing device 302 .
  • operating system 346 generates image data that is communicated to the virtual input/output system 330 at computing device 302 via a virtual display device driver 348 , communication link 306 , and debug transport layer 332 to display device 324 .
  • the software development peripheral 304 is a resource that can be used as a development tool to develop software applications and operating systems for a particular platform that is different from the computing device 302 platform. From a developer's perspective, the software development peripheral 304 appears as a processor emulator in that it is easy to implement and interface with. A developer can debug and execute the new operating system 346 that is executing software development peripheral 304 with the keyboard 316 , mouse 320 , display device 324 , and/or touch screen device 326 connected to computing device 302 .
  • the virtual input/output system 330 is an application that runs on computing device 302 and is the interface component between computing device 302 and the virtual drivers 348 on the software development peripheral 304 .
  • the virtual input/output system 330 receives the information generated by operating system 346 from the virtual drivers 348 . Additionally, the virtual input/output system 330 generates an associated virtual input/output display, such as a debugging window, on display device 324 , or touch screen device 326 .
  • an associated virtual input/output display such as a debugging window, on display device 324 , or touch screen device 326 .
  • a virtual input/output display can still be displayed in the background to display changes and updates generated by operating system 346 on software development peripheral 304 .
  • the software development peripheral 304 facilitates operating system kernel level debugging and testing. That is, a kernel level debugging program stops the execution of an entire system running on software development board 304 and no threads are scheduled. Debugging at the kernel level requires the low level support features such as the bootloader 342 , and a kernel-independent transport layer 332 .
  • the software development peripheral 304 can be implemented as a recognizable plug-and-play device.
  • the cross-platform development component 328 of computing device 302 recognizes the configuration identification 340 of the software development peripheral 304 when the software development peripheral is communicatively linked with computing device.
  • the cross-platform development component 328 recognizes central processing unit 334 on the software development peripheral 304 as a pre-defined processor type, such as an Intel, Hitachi, Motorola, SHX, or other type of processor.
  • the cross-platform development component 328 When a developer configures and builds a new operating system, for example, the cross-platform development component 328 generates the operating system image 344 to include processor specific components, such as the virtual drivers 348 . In a build environment, decisions about which drivers and other components to include with a new operating system 346 are automated by the cross-platform development component 328 .
  • FIG. 4 illustrates a cross-platform development system 400 having network communication components to remote network connectivity, such as to the Internet 402 .
  • Computing device 302 includes a network communication driver 404 that communicates information with virtual input/output system 330 and communicates with a bus and/or network interface 408 .
  • the bus and/or network interface 408 communicates with the network 402 .
  • the software development peripheral 304 includes a virtual network communication driver 408 that communicates information from software development peripheral 304 to the virtual input/output system 330 of computing device 302 .
  • Network connectivity information generated by operating system 346 on software development peripheral 304 is communicated from the virtual network communication driver 408 via communication link 306 and via the network communication components of computing device 302 to network 402 .
  • FIG. 5 illustrates a cross-platform development system 500 having an expansion component 502 to connect input/output devices to software development peripheral 304 .
  • External input/output devices and components are connected to the software development peripheral 304 via expansion cards 504 .
  • the expansion cards 504 connect components to test with new operating system 346 and/or with variations of central processing unit 334 , such as a video or display device 506 , a keypad input 508 such as for a cellular phone, a wireless input/output such as a Bluetooth component 510 , and other input/output devices.
  • FIG. 6 illustrates a method for cross-platform development with a software development peripheral.
  • the order in which the method is described is not intended to be construed as a limitation.
  • the method can be implemented in any suitable hardware, software, firmware, or combination thereof.
  • a computing device is communicatively linked with a software development peripheral via debug transport.
  • the software development peripheral provides a configuration identification to a cross-platform development component of the computing device.
  • the cross-platform development component of the computing device recognizes the configuration identification.
  • an image of an operating system is generated.
  • the image of the operating system can be generated with the cross-platform development component of the computing device, and the image can be generated to correspond to the configuration identification of the software development peripheral.
  • the image of the operating system is communicated to the software development peripheral.
  • the operating system corresponding to the image is executed with the software development peripheral.
  • information generated by the operating system is communicated to the computing device.
  • the information is communicated from the software development peripheral with a virtual device driver to a virtual input/output system of the computing device via the debug transport.
  • the information generated by the operating system at the software development peripheral is displayed with the computing device.
  • the information can include image data, for example, that is displayed with a display device connected to the computing device.
  • the information generated by the operating system is debugged with the cross-platform development component of the computing device.
  • the software development peripheral is connected to a network via a network communication driver of the computing device.
  • the network communication driver is communicatively linked with the network and with a virtual network communication driver of the software development peripheral.
  • the software development peripheral receives a device input from a virtual input/output system of the computing device.
  • the software development peripheral can receive a keyboard or pointing device input, for example, from the virtual input/output system of the computing device, where the keyboard or pointing device is connected to the computing device.
  • FIG. 7 illustrates an example of a computing environment 700 within which the computer, network, and system architectures described herein can be either fully or partially implemented.
  • Exemplary computing environment 700 is only one example of a computing system and is not intended to suggest any limitation as to the scope of use or functionality of the network architectures. Neither should the computing environment 700 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary computing environment 700 .
  • the computer and network architectures can be implemented with numerous other general purpose or special purpose computing system environments or configurations.
  • Examples of well known computing systems, environments, and/or configurations that may be suitable for use include, but are not limited to, personal computers, server computers, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, gaming consoles, distributed computing environments that include any of the above systems or devices, and the like.
  • Methods for cross-platform development with a software development peripheral may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • the systems and methods for cross-platform development with a software development peripheral may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote computer storage media including memory storage devices.
  • the computing environment 700 includes a general-purpose computing system in the form of a computer 702 .
  • the components of computer 702 can include, by are not limited to, one or more processors or processing units 704 , a system memory 706 , and a system bus 708 that couples various system components including the processor 704 to the system memory 706 .
  • the system bus 708 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures.
  • bus architectures can include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnects (PCI) bus also known as a Mezzanine bus.
  • Computer system 702 typically includes a variety of computer readable media. Such media can be any available media that is accessible by computer 702 and includes both volatile and non-volatile media, removable and non-removable media.
  • the system memory 706 includes computer readable media in the form of volatile memory, such as random access memory (RAM) 710 , and/or non-volatile memory, such as read only memory (ROM) 712 .
  • RAM random access memory
  • ROM read only memory
  • a basic input/output system (BIOS) 714 containing the basic routines that help to transfer information between elements within computer 702 , such as during start-up, is stored in ROM 712 .
  • BIOS basic input/output system
  • RAM 710 typically contains data and/or program modules that are immediately accessible to and/or presently operated on by the processing unit 704 .
  • Computer 702 can also include other removable/non-removable, volatile/non-volatile computer storage media.
  • FIG. 7 illustrates a hard disk drive 716 for reading from and writing to a non-removable, non-volatile magnetic media (not shown), a magnetic disk drive 718 for reading from and writing to a removable, non-volatile magnetic disk 720 (e.g., a “floppy disk”), and an optical disk drive 722 for reading from and/or writing to a removable, non-volatile optical disk 724 such as a CD-ROM, DVD-ROM, or other optical media.
  • a hard disk drive 716 for reading from and writing to a non-removable, non-volatile magnetic media (not shown)
  • a magnetic disk drive 718 for reading from and writing to a removable, non-volatile magnetic disk 720 (e.g., a “floppy disk”)
  • an optical disk drive 722 for reading from and/or writing to a removable, non-volatile optical disk
  • the hard disk drive 716 , magnetic disk drive 718 , and optical disk drive 722 are each connected to the system bus 708 by one or more data media interfaces 726 .
  • the hard disk drive 716 , magnetic disk drive 718 , and optical disk drive 722 can be connected to the system bus 708 by a SCSI interface (not shown).
  • the disk drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules, and other data for computer 702 .
  • a hard disk 716 a removable magnetic disk 720
  • a removable optical disk 724 it is to be appreciated that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes or other magnetic storage devices, flash memory cards, CD-ROM, digital versatile disks (DVD) or other optical storage, random access memories (RAM), read only memories (ROM), electrically erasable programmable read-only memory (EEPROM), and the like, can also be utilized to implement the exemplary computing system and environment.
  • RAM random access memories
  • ROM read only memories
  • EEPROM electrically erasable programmable read-only memory
  • Any number of program modules can be stored on the hard disk 716 , magnetic disk 720 , optical disk 724 , ROM 712 , and/or RAM 710 , including by way of example, an operating system 726 , one or more application programs 728 , other program modules 730 , and program data 732 .
  • Each of such operating system 726 , one or more application programs 728 , other program modules 730 , and program data 732 may include an embodiment of the systems and methods for cross-platform development with a software development peripheral.
  • Computer system 702 can include a variety of computer readable media identified as communication media.
  • Communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
  • modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above are also included within the scope of computer readable media.
  • a user can enter commands and information into computer system 702 via input devices such as a keyboard 734 and a pointing device 736 (e.g., a “mouse”).
  • Other input devices 738 may include a microphone, joystick, game pad, satellite dish, serial port, scanner, and/or the like.
  • input/output interfaces 740 are coupled to the system bus 708 , but may be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB).
  • a monitor 742 or other type of display device can also be connected to the system bus 708 via an interface, such as a video adapter 744 .
  • other output peripheral devices can include components such as speakers (not shown) and a printer 746 which can be connected to computer 702 via the input/output interfaces 740 .
  • Computer 702 can operate in a networked environment using logical connections to one or more remote computers, such as a remote computing device 748 .
  • the remote computing device 748 can be a personal computer, portable computer, a server, a router, a network computer, a peer device or other common network node, and the like.
  • the remote computing device 748 is illustrated as a portable computer that can include many or all of the elements and features described herein relative to computer system 702 .
  • Logical connections between computer 702 and the remote computer 748 are depicted as a local area network (LAN) 750 and a general wide area network (WAN) 752 .
  • LAN local area network
  • WAN wide area network
  • Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet.
  • the computer 702 When implemented in a LAN networking environment, the computer 702 is connected to a local network 750 via a network interface or adapter 754 .
  • the computer 702 When implemented in a WAN networking environment, the computer 702 typically includes a modem 756 or other means for establishing communications over the wide network 752 .
  • the modem 756 which can be internal or external to computer 702 , can be connected to the system bus 708 via the input/output interfaces 740 or other appropriate mechanisms. It is to be appreciated that the illustrated network connections are exemplary and that other means of establishing communication link(s) between the computers 702 and 748 can be employed.
  • program modules depicted relative to the computer 702 may be stored in a remote memory storage device.
  • remote application programs 758 reside on a memory device of remote computer 748 .
  • application programs and other executable program components, such as the operating system are illustrated herein as discrete blocks, although it is recognized that such programs and components reside at various times in different storage components of the computer system 702 , and are executed by the data processor(s) of the computer.
  • the illustrated and described systems and methods for cross-platform development with a software development peripheral is a resource that provides seamless operating system development from a desktop computing device while utilizing already available peripheral input/output devices such as a display device, touch screen, keyboard, mouse, and similar input/output devices connected to the desktop computing device.
  • Development results for an operating system running on a software development peripheral can be remotely displayed onto a display device connected to the desktop computing device for easier development interface.

Abstract

A cross-platform development system includes a computing device that generates an image of an operating system, and a software development peripheral connected to the computing device that runs the operating system corresponding to the image. The software development peripheral communicates information, such as image data, generated by the operating system back to the computing device where the information is displayed on a display device connected to the computing device.

Description

    RELATED APPLICATIONS
  • This application is a continuation and claims priority to related co-pending U.S. patent application Ser. Nos. 11/027,453 and 11/027,732 each entitled “Cross-Platform Software Development with a Software Development Peripheral” filed Dec. 30, 2004 to Kelley et al., the disclosures of which are incorporated by reference herein.
  • U.S. patent application Ser. Nos. 11/027,453 and 11/027,732 are each divisionals of and claim priority to U.S. patent application Ser. No. 10/044,505 entitled “Cross-Platform Software Development with a Software Development Peripheral” filed Jan. 10, 2002 to Kelley et al., the disclosure of which is incorporated by reference herein.
  • TECHNICAL FIELD
  • This invention relates to software development and, in particular, to cross-platform development of software applications and operating systems with a software development peripheral device.
  • BACKGROUND
  • Cross-platform development involves developing software, such as operating systems or application programs, such that the software operates with computers having different central processing units (CPUs) from one central processor unit type to another. Cross-platform development is typically accomplished by using a computer system to emulate different processors, or with a software development board connected to a computer system.
  • FIG. 1 illustrates a conventional cross-platform development system 100 that includes a computer system 102 having processor emulation components. Computer system 102 includes a central processing unit 104, an operating system 106, and a cross-platform development application 108 that includes a processor emulator 110. Processor emulator 110 emulates a virtual processor inside of central processing unit 104, where the virtual processor is of a different type than processor 104.
  • The cross-platform development application 108 includes components or application tools, such as processor emulator 110, that enable software developers to configure, build, and debug new software applications and operating systems. With components of the cross-platform development application 108, a developer can design a new operating system, such as for a personal digital assistant or hand-held computing device, and include various features and device drivers. An image 112 of the new operating system can then be downloaded to processor emulator 110 that appears as an independent processor, but is actually a virtual processor.
  • A developer can utilize processor emulation for cross-platform development to view and debug a new software application or operating system in a window displayed on a display device 114 connected to, or integrated with, computer system 102. Additionally, a developer can debug the new software application or operating system with a keyboard 116 and mouse 118 connected to computer system 102. Cross-platform development with processor emulation is simplified because external hardware to run and test a new software application or operating system does not need to be connected to computer system 102. Additionally, existing peripheral input/output devices, such as display 114, keyboard 116, and mouse 118, connected to computer system 102, can be utilized to interact with the software application or operating system being developed.
  • Although cross-platform development with processor emulation is simplified for a developer, a virtual processor only emulates one type of processor and runs up to ten-times slower than an actual central processing unit. Processor emulation does not provide a realistic representation of how a new software application or operating system will perform when executed with the actual central processing unit that the virtual processor is emulating. Consequently, processor emulation is not reliable as a software debug tool for a final version of a product.
  • Cross-platform development of a new software application or operating system with a software development board is an alternative to processor emulation. A software development board can be configured with different processors from different manufacturers, and can be configured with many different hardware options and configurations. When a developer is first creating a new software application or operating system, hardware and processor components are unknown design variables because features of the new software application or operating system can influence which hardware and processor components are ultimately selected by the developer.
  • FIG. 2 illustrates a conventional cross-platform development system 200 that includes a computer system 202 connected to a software development board 204. Computer system 202 includes a central processing unit 206, an operating system 208, and a debug transport layer 210. The debug transport layer 210 is a connection interface for a physical connection 212 to software development board 204. Typically, transport layer 210 is implemented as an Ethernet debug transport, and physical connection 212 is an Ethernet connection.
  • Software development board 204 includes a central processing unit 214, a read only memory (ROM) 216, and a random access memory (RAM) 218. Conventional software development board 204 also includes a system of connections 220 for peripheral input/output devices, such as a keyboard input/output 222 for an external keyboard 224, a mouse input/output 226 for an external mouse 228, and a display input/output 230 for an external display device 232. Software development boards also typically include additional debug connectors, debug indicators such as LEDs, and expansion slots for variable hardware configurations. These additional components also add to the expense a software development board.
  • Software development board 204 maintains a bootloader application 234 in ROM 216. A bootloader 234 is the only software code that is maintained on software development board 204 when the board is first set up for testing. The bootloader 234 communicates with computer system 202 via physical connection 212, or simply waits to receive an operating system image from computer system 202.
  • When a developer configures and builds a new operating system, an image 236 of the new operating system is downloaded to RAM 218 on software development board 204 via the debug transport layer 210 and physical connection 212. When the operating system image 236 is downloaded and stored in RAM 218, bootloader 234 transfers execution of the software development board 204 to the new operating system which executes on central processing unit 214. The developer can debug with the new operating system with the keyboard 224, mouse 228, and display device 232 connected to the software development board 204.
  • Software development boards that are configurable for different processors and the many different possible hardware components and configurations are expensive and require considerable user setup before any new software application or operating system can be tested. Initial setup can be tedious because software development boards are designed to be configurable. For example, some boards are sold new without a ROM component, and some boards require setup and configuration of a data input/output EPROM program, binary files, dip switch settings, and other similar configuration requirements.
  • Additionally, software development boards are designed to use peripheral input/output devices, such as a keyboard, a mouse, and/or a display, that are connected directly to the boards for user interaction. The additional requirement of direct-connect peripheral input/output devices adds to the already expensive initial cost of a software development board.
  • SUMMARY
  • A cross-platform software development system includes a computing device that generates an image of an operating system, and a software development peripheral connected to the computing device that executes the operating system corresponding to the image. The software development peripheral communicates information, such as image data, generated by the operating system back to the computing device where the information is displayed on a display device connected to the computing device.
  • The computing device includes a cross-platform development component that recognizes a configuration identification of the software development peripheral when the software development peripheral is communicatively linked with the computing device via a debug transport. The cross-platform development component generates the image of the operating system corresponding to the configuration identification of the software development peripheral. The computing device also includes a virtual input/output system to communicate the information generated by the operating system between the computing device and virtual device drivers of the software development peripheral.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The same numbers are used throughout the drawings to reference like features and components.
  • FIG. 1 illustrates a conventional cross-platform development system that includes a processor emulator.
  • FIG. 2 illustrates a conventional cross-platform development system that includes a software development board.
  • FIG. 3 illustrates an exemplary cross-platform development system with a software development peripheral.
  • FIG. 4 illustrates the cross-platform development system shown in FIG. 3 with network communication components.
  • FIG. 5 illustrates the cross-platform development system shown in FIG. 3 with an expansion component to connect peripheral input/output components.
  • FIG. 6 is a flow diagram of a method for cross-platform development with a software development peripheral.
  • FIG. 7 is a diagram of computing systems, devices, and components in an environment that can be used to implement the invention described herein.
  • DETAILED DESCRIPTION
  • The following describes systems and methods for a cross-platform development system that can be utilized to configure, build, and debug new software applications and operating systems. The cross-platform development system includes a software development peripheral that can also be utilized to test different central processing units from different manufacturers along with the with many different hardware options and configurations. For an operating system developer, the cross-platform development system provides an easy to use development resource, and also provides accurate and real-time operating system analysis.
  • FIG. 3 illustrates a cross-platform development system 300 having components that can be implemented within a computing device, or the components can be distributed within a computing system having more than one computing device. The cross-platform development system 300 includes a computing device 302 coupled with a software development peripheral 304 via a communication link 306. See the description of “Exemplary Computing System and Environment” below for specific examples and implementations of networks, computing systems, computing devices, and components that can be used to implement the invention described herein.
  • Computing device 302 includes a central processing unit 308, an operating system 310, and a system of peripheral input/output components 312, such as device drivers and connectors, to couple and support external input/output devices for computing device 302. The peripheral input/output components 312 include a keyboard input/output 314 for an external keyboard 316, a mouse input/output 318 for an external mouse 320, and a display input/output 322 for an external display device 324 and/or external touch screen device 326.
  • Computing device 302 also includes a cross-platform development component 328, a virtual input/output system 330, and a debug transport layer 332. The debug transport layer 332 is a connection interface for the communication link 306 between computing device 302 and the software development peripheral 304. Communication link 306 can be implemented as a USB (universal serial bus), or Ethernet connection, for example.
  • Software development peripheral 304 includes a central processing unit 334, a read only memory (ROM) 336, a random access memory (RAM) 338, and a configuration identification component 340. The configuration identification component 340 can be an independent component of software development peripheral 304, or component 340 can be a software component and/or a unique identifier component stored in bootloader application 342 in ROM 336. The bootloader application 342 is the only software code that is maintained on the software development peripheral 304 when the peripheral device is first initialized. The bootloader application 342 communicates with computing device 302, or simply waits to receive an operating system image from computing device 302.
  • When a developer configures and builds a new operating system, an image 344 of the new operating system is downloaded to RAM 338 on software development peripheral 304 via the debug transport layer 332 and communication link 306. The operating system image 344 is a self contained binary file that contains embedded operating system 346 and associated components, such as virtual device drivers 348. When the operating system image 344 is downloaded and stored in RAM 338, bootloader 342 transfers execution of the software development peripheral 304 to the new operating system 346 which executes on central processing unit 334.
  • The software development peripheral 304 communicates information, such as debug information and image data, generated by operating system 346 to the virtual input/output system 330 at computing device 302 via communication link 306 and debug transport layer 332. Keyboard, mouse, and display information is remoted to computing device 302 with virtual device drivers 348 that are included as part of the operating system image 344 when the image is downloaded from computing device 302 to the software development peripheral 304. The virtual drivers 348 communicate input/output information and data to the computing device 302. For example, operating system 346 generates image data that is communicated to the virtual input/output system 330 at computing device 302 via a virtual display device driver 348, communication link 306, and debug transport layer 332 to display device 324.
  • The software development peripheral 304 is a resource that can be used as a development tool to develop software applications and operating systems for a particular platform that is different from the computing device 302 platform. From a developer's perspective, the software development peripheral 304 appears as a processor emulator in that it is easy to implement and interface with. A developer can debug and execute the new operating system 346 that is executing software development peripheral 304 with the keyboard 316, mouse 320, display device 324, and/or touch screen device 326 connected to computing device 302.
  • The virtual input/output system 330 is an application that runs on computing device 302 and is the interface component between computing device 302 and the virtual drivers 348 on the software development peripheral 304. The virtual input/output system 330 receives the information generated by operating system 346 from the virtual drivers 348. Additionally, the virtual input/output system 330 generates an associated virtual input/output display, such as a debugging window, on display device 324, or touch screen device 326. When a developer is interfacing with the software development peripheral system from the virtual input/output display window, all of the keyboard, mouse, display, and touch screen input/outputs are routed to and from the software development peripheral 304.
  • When a different window is selected on the computing device display 324, the focus of the input/outputs from the keyboard, mouse, display, and touch screen peripheral devices switches back to computing device 302. It is to be appreciated that a virtual input/output display can still be displayed in the background to display changes and updates generated by operating system 346 on software development peripheral 304.
  • The software development peripheral 304 facilitates operating system kernel level debugging and testing. That is, a kernel level debugging program stops the execution of an entire system running on software development board 304 and no threads are scheduled. Debugging at the kernel level requires the low level support features such as the bootloader 342, and a kernel-independent transport layer 332.
  • The software development peripheral 304 can be implemented as a recognizable plug-and-play device. The cross-platform development component 328 of computing device 302 recognizes the configuration identification 340 of the software development peripheral 304 when the software development peripheral is communicatively linked with computing device. The cross-platform development component 328 recognizes central processing unit 334 on the software development peripheral 304 as a pre-defined processor type, such as an Intel, Hitachi, Motorola, SHX, or other type of processor. When a developer configures and builds a new operating system, for example, the cross-platform development component 328 generates the operating system image 344 to include processor specific components, such as the virtual drivers 348. In a build environment, decisions about which drivers and other components to include with a new operating system 346 are automated by the cross-platform development component 328.
  • FIG. 4 illustrates a cross-platform development system 400 having network communication components to remote network connectivity, such as to the Internet 402. Computing device 302 includes a network communication driver 404 that communicates information with virtual input/output system 330 and communicates with a bus and/or network interface 408. The bus and/or network interface 408 communicates with the network 402.
  • The software development peripheral 304 includes a virtual network communication driver 408 that communicates information from software development peripheral 304 to the virtual input/output system 330 of computing device 302. Network connectivity information generated by operating system 346 on software development peripheral 304 is communicated from the virtual network communication driver 408 via communication link 306 and via the network communication components of computing device 302 to network 402.
  • FIG. 5 illustrates a cross-platform development system 500 having an expansion component 502 to connect input/output devices to software development peripheral 304. External input/output devices and components are connected to the software development peripheral 304 via expansion cards 504. The expansion cards 504 connect components to test with new operating system 346 and/or with variations of central processing unit 334, such as a video or display device 506, a keypad input 508 such as for a cellular phone, a wireless input/output such as a Bluetooth component 510, and other input/output devices.
  • FIG. 6 illustrates a method for cross-platform development with a software development peripheral. The order in which the method is described is not intended to be construed as a limitation. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof.
  • At block 600, a computing device is communicatively linked with a software development peripheral via debug transport. At block 602, the software development peripheral provides a configuration identification to a cross-platform development component of the computing device. At block 604, the cross-platform development component of the computing device recognizes the configuration identification.
  • At block 606, an image of an operating system is generated. The image of the operating system can be generated with the cross-platform development component of the computing device, and the image can be generated to correspond to the configuration identification of the software development peripheral. At block 608, the image of the operating system is communicated to the software development peripheral.
  • At block 610, the operating system corresponding to the image is executed with the software development peripheral. At block 612, information generated by the operating system is communicated to the computing device. The information is communicated from the software development peripheral with a virtual device driver to a virtual input/output system of the computing device via the debug transport.
  • At block 614, the information generated by the operating system at the software development peripheral is displayed with the computing device. The information can include image data, for example, that is displayed with a display device connected to the computing device. At block 616, the information generated by the operating system is debugged with the cross-platform development component of the computing device.
  • At block 618, the software development peripheral is connected to a network via a network communication driver of the computing device. The network communication driver is communicatively linked with the network and with a virtual network communication driver of the software development peripheral.
  • At block 620, the software development peripheral receives a device input from a virtual input/output system of the computing device. The software development peripheral can receive a keyboard or pointing device input, for example, from the virtual input/output system of the computing device, where the keyboard or pointing device is connected to the computing device.
  • FIG. 7 illustrates an example of a computing environment 700 within which the computer, network, and system architectures described herein can be either fully or partially implemented. Exemplary computing environment 700 is only one example of a computing system and is not intended to suggest any limitation as to the scope of use or functionality of the network architectures. Neither should the computing environment 700 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary computing environment 700.
  • The computer and network architectures can be implemented with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use include, but are not limited to, personal computers, server computers, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, gaming consoles, distributed computing environments that include any of the above systems or devices, and the like.
  • Methods for cross-platform development with a software development peripheral may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The systems and methods for cross-platform development with a software development peripheral may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
  • The computing environment 700 includes a general-purpose computing system in the form of a computer 702. The components of computer 702 can include, by are not limited to, one or more processors or processing units 704, a system memory 706, and a system bus 708 that couples various system components including the processor 704 to the system memory 706.
  • The system bus 708 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, such architectures can include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnects (PCI) bus also known as a Mezzanine bus.
  • Computer system 702 typically includes a variety of computer readable media. Such media can be any available media that is accessible by computer 702 and includes both volatile and non-volatile media, removable and non-removable media. The system memory 706 includes computer readable media in the form of volatile memory, such as random access memory (RAM) 710, and/or non-volatile memory, such as read only memory (ROM) 712. A basic input/output system (BIOS) 714, containing the basic routines that help to transfer information between elements within computer 702, such as during start-up, is stored in ROM 712. RAM 710 typically contains data and/or program modules that are immediately accessible to and/or presently operated on by the processing unit 704.
  • Computer 702 can also include other removable/non-removable, volatile/non-volatile computer storage media. By way of example, FIG. 7 illustrates a hard disk drive 716 for reading from and writing to a non-removable, non-volatile magnetic media (not shown), a magnetic disk drive 718 for reading from and writing to a removable, non-volatile magnetic disk 720 (e.g., a “floppy disk”), and an optical disk drive 722 for reading from and/or writing to a removable, non-volatile optical disk 724 such as a CD-ROM, DVD-ROM, or other optical media. The hard disk drive 716, magnetic disk drive 718, and optical disk drive 722 are each connected to the system bus 708 by one or more data media interfaces 726. Alternatively, the hard disk drive 716, magnetic disk drive 718, and optical disk drive 722 can be connected to the system bus 708 by a SCSI interface (not shown).
  • The disk drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules, and other data for computer 702. Although the example illustrates a hard disk 716, a removable magnetic disk 720, and a removable optical disk 724, it is to be appreciated that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes or other magnetic storage devices, flash memory cards, CD-ROM, digital versatile disks (DVD) or other optical storage, random access memories (RAM), read only memories (ROM), electrically erasable programmable read-only memory (EEPROM), and the like, can also be utilized to implement the exemplary computing system and environment.
  • Any number of program modules can be stored on the hard disk 716, magnetic disk 720, optical disk 724, ROM 712, and/or RAM 710, including by way of example, an operating system 726, one or more application programs 728, other program modules 730, and program data 732. Each of such operating system 726, one or more application programs 728, other program modules 730, and program data 732 (or some combination thereof) may include an embodiment of the systems and methods for cross-platform development with a software development peripheral.
  • Computer system 702 can include a variety of computer readable media identified as communication media. Communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above are also included within the scope of computer readable media.
  • A user can enter commands and information into computer system 702 via input devices such as a keyboard 734 and a pointing device 736 (e.g., a “mouse”). Other input devices 738 (not shown specifically) may include a microphone, joystick, game pad, satellite dish, serial port, scanner, and/or the like. These and other input devices are connected to the processing unit 704 via input/output interfaces 740 that are coupled to the system bus 708, but may be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB).
  • A monitor 742 or other type of display device can also be connected to the system bus 708 via an interface, such as a video adapter 744. In addition to the monitor 742, other output peripheral devices can include components such as speakers (not shown) and a printer 746 which can be connected to computer 702 via the input/output interfaces 740.
  • Computer 702 can operate in a networked environment using logical connections to one or more remote computers, such as a remote computing device 748. By way of example, the remote computing device 748 can be a personal computer, portable computer, a server, a router, a network computer, a peer device or other common network node, and the like. The remote computing device 748 is illustrated as a portable computer that can include many or all of the elements and features described herein relative to computer system 702.
  • Logical connections between computer 702 and the remote computer 748 are depicted as a local area network (LAN) 750 and a general wide area network (WAN) 752. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet. When implemented in a LAN networking environment, the computer 702 is connected to a local network 750 via a network interface or adapter 754. When implemented in a WAN networking environment, the computer 702 typically includes a modem 756 or other means for establishing communications over the wide network 752. The modem 756, which can be internal or external to computer 702, can be connected to the system bus 708 via the input/output interfaces 740 or other appropriate mechanisms. It is to be appreciated that the illustrated network connections are exemplary and that other means of establishing communication link(s) between the computers 702 and 748 can be employed.
  • In a networked environment, such as that illustrated with computing environment 700, program modules depicted relative to the computer 702, or portions thereof, may be stored in a remote memory storage device. By way of example, remote application programs 758 reside on a memory device of remote computer 748. For purposes of illustration, application programs and other executable program components, such as the operating system, are illustrated herein as discrete blocks, although it is recognized that such programs and components reside at various times in different storage components of the computer system 702, and are executed by the data processor(s) of the computer.
  • The illustrated and described systems and methods for cross-platform development with a software development peripheral is a resource that provides seamless operating system development from a desktop computing device while utilizing already available peripheral input/output devices such as a display device, touch screen, keyboard, mouse, and similar input/output devices connected to the desktop computing device. Development results for an operating system running on a software development peripheral can be remotely displayed onto a display device connected to the desktop computing device for easier development interface.
  • Although the systems and methods have been described in language specific to structural features and/or methodological steps, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or steps described. Rather, the specific features and steps are disclosed as preferred forms of implementing the claimed invention.

Claims (16)

1. One or more computer readable media comprising computer executable instructions that, when executed, direct a software development system to:
generate an image of an operating system with a host computing device;
communicate the image of the operating system from the host computing device to a software development peripheral;
execute the operating system corresponding to the image with the software development peripheral;
communicate test information generated by the operating system corresponding to the image from the software development peripheral to the host computing device; and
display the test information generated by the operating system at the host computing device.
2. One or more computer readable media as recited in claim 1, further comprising computer executable instructions that, when executed, direct the software development system to recognize a configuration identification of the software development peripheral with a cross-platform development component of the host computing device when the software development peripheral is communicatively linked with the host computing device.
3. One or more computer readable media as recited in claim 1, further comprising computer executable instructions that, when executed, direct the software development system to generate the image of the operating system with a cross-platform development component of the host computing device.
4. One or more computer readable media as recited in claim 1, further comprising computer executable instructions that, when executed, direct the software development system to recognize a configuration identification of the software development peripheral with a cross-platform development component of the host computing device, and generate the image of the operating system with the cross-platform development component, the image of the operating system corresponding to the configuration identification of the software development peripheral.
5. One or more computer readable media as recited in claim 1, further comprising computer executable instructions that, when executed, direct the software development system to debug the test information generated by the operating system with a cross-platform development component of the host computing device.
6. One or more computer readable media as recited in claim 1, further comprising computer executable instructions that, when executed, direct the software development system to communicate the test information generated by the operating system to the host computing device via a debug transport.
7. One or more computer readable media as recited in claim 1, further comprising computer executable instructions that, when executed, direct the software development system to communicate the test information generated by the operating system to the host computing device with a virtual device driver of the software development peripheral.
8. One or more computer readable media as recited in claim 1, further comprising computer executable instructions that, when executed, direct the software development system to communicate image data generated by the operating system to a virtual input/output system of the host computing device with a virtual device driver of the software development peripheral.
9. One or more computer readable media as recited in claim 1, further comprising computer executable instructions that, when executed, direct the software development system to receive a keyboard input with the software development peripheral from a virtual input/output system of the host computing device, the keyboard input generated with a keyboard connected to the host computing device.
10. One or more computer readable media as recited in claim 1, further comprising computer executable instructions that, when executed, direct the software development system to receive a pointing device input with the software development peripheral from a virtual input/output system of the host computing device, the pointing device input generated with a pointing device connected to the host computing device.
11. A software development peripheral, comprising:
means for receiving an image of an operating system generated with a host computing device;
means for executing the operating system corresponding to the image at the software development peripheral;
means for communicating test information generated by the operating system corresponding to the image from the software development peripheral to the host computing device where the test information displayed.
12. A software development peripheral as recited in claim 11, further comprising means for recognizing a configuration identification of the software development peripheral with a cross-platform development component of the host computing device when the software development peripheral is communicatively linked with the host computing device.
13. A software development peripheral as recited in claim 11, further comprising means for recognizing a configuration identification of the software development peripheral with a cross-platform development component of the host computing device, the image of the operating system corresponding to the configuration identification of the software development peripheral.
14. A software development peripheral as recited in claim 11, further comprising means for debugging the test information generated by the operating system with a cross-platform development component of the host computing device.
15. A software development peripheral as recited in claim 11, further comprising means for receiving a keyboard input with the software development peripheral from a virtual input/output system of the host computing device, the keyboard input generated with a keyboard connected to the host computing device.
16. A software development peripheral as recited in claim 11, further comprising receiving a pointing device input with the software development peripheral from a virtual input/output system of the host computing device, the pointing device input generated with a pointing device connected to the host computing device.
US11/283,783 2002-01-10 2005-11-21 Cross-platform software development with and software development peripheral Abandoned US20060075388A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/283,783 US20060075388A1 (en) 2002-01-10 2005-11-21 Cross-platform software development with and software development peripheral

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/044,505 US6978439B2 (en) 2002-01-10 2002-01-10 Cross-platform software development with a software development peripheral
US11/027,732 US20050125779A1 (en) 2002-01-10 2004-12-30 Cross-platform software development with a software development peripheral
US11/027,453 US7707551B2 (en) 2002-01-10 2004-12-30 Cross-platform software development with a software development peripheral
US11/283,783 US20060075388A1 (en) 2002-01-10 2005-11-21 Cross-platform software development with and software development peripheral

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
US11/027,732 Continuation US20050125779A1 (en) 2002-01-10 2004-12-30 Cross-platform software development with a software development peripheral
US11/027,453 Continuation US7707551B2 (en) 2002-01-10 2004-12-30 Cross-platform software development with a software development peripheral

Publications (1)

Publication Number Publication Date
US20060075388A1 true US20060075388A1 (en) 2006-04-06

Family

ID=21932742

Family Applications (4)

Application Number Title Priority Date Filing Date
US10/044,505 Expired - Fee Related US6978439B2 (en) 2002-01-10 2002-01-10 Cross-platform software development with a software development peripheral
US11/027,453 Expired - Fee Related US7707551B2 (en) 2002-01-10 2004-12-30 Cross-platform software development with a software development peripheral
US11/027,732 Abandoned US20050125779A1 (en) 2002-01-10 2004-12-30 Cross-platform software development with a software development peripheral
US11/283,783 Abandoned US20060075388A1 (en) 2002-01-10 2005-11-21 Cross-platform software development with and software development peripheral

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US10/044,505 Expired - Fee Related US6978439B2 (en) 2002-01-10 2002-01-10 Cross-platform software development with a software development peripheral
US11/027,453 Expired - Fee Related US7707551B2 (en) 2002-01-10 2004-12-30 Cross-platform software development with a software development peripheral
US11/027,732 Abandoned US20050125779A1 (en) 2002-01-10 2004-12-30 Cross-platform software development with a software development peripheral

Country Status (1)

Country Link
US (4) US6978439B2 (en)

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120335A1 (en) * 2002-01-10 2005-06-02 Microsoft Corporation Cross-platform software development with a software development peripheral
US20100210240A1 (en) * 2009-02-17 2010-08-19 Flexilis, Inc. System and method for remotely securing or recovering a mobile device
US20110047620A1 (en) * 2008-10-21 2011-02-24 Lookout, Inc., A California Corporation System and method for server-coupled malware prevention
US20110047033A1 (en) * 2009-02-17 2011-02-24 Lookout, Inc. System and method for mobile device replacement
US20110047597A1 (en) * 2008-10-21 2011-02-24 Lookout, Inc., A California Corporation System and method for security data collection and analysis
US20110119765A1 (en) * 2009-11-18 2011-05-19 Flexilis, Inc. System and method for identifying and assessing vulnerabilities on a mobile communication device
US20110145920A1 (en) * 2008-10-21 2011-06-16 Lookout, Inc System and method for adverse mobile application identification
US20120084864A1 (en) * 2008-10-21 2012-04-05 Lookout, Inc. System and method for a mobile cross-platform software system
US8365252B2 (en) 2008-10-21 2013-01-29 Lookout, Inc. Providing access levels to services based on mobile device security state
US8381303B2 (en) 2008-10-21 2013-02-19 Kevin Patrick Mahaffey System and method for attack and malware prevention
US8505095B2 (en) 2008-10-21 2013-08-06 Lookout, Inc. System and method for monitoring and analyzing multiple interfaces and multiple protocols
US8510843B2 (en) 2008-10-21 2013-08-13 Lookout, Inc. Security status and information display system
US8655307B1 (en) 2012-10-26 2014-02-18 Lookout, Inc. System and method for developing, updating, and using user device behavioral context models to modify user, device, and application state, settings and behavior for enhanced user security
US8738765B2 (en) 2011-06-14 2014-05-27 Lookout, Inc. Mobile device DNS optimization
US8788881B2 (en) 2011-08-17 2014-07-22 Lookout, Inc. System and method for mobile device push communications
US8855601B2 (en) 2009-02-17 2014-10-07 Lookout, Inc. System and method for remotely-initiated audio communication
US8855599B2 (en) 2012-12-31 2014-10-07 Lookout, Inc. Method and apparatus for auxiliary communications with mobile communications device
US9042876B2 (en) 2009-02-17 2015-05-26 Lookout, Inc. System and method for uploading location information based on device movement
US9043919B2 (en) 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
CN104834519A (en) * 2015-04-04 2015-08-12 杭州中焯信息技术股份有限公司 Cross-platform application software development system
US9208215B2 (en) 2012-12-27 2015-12-08 Lookout, Inc. User classification based on data gathered from a computing device
US9215074B2 (en) 2012-06-05 2015-12-15 Lookout, Inc. Expressing intent to control behavior of application components
US9235704B2 (en) 2008-10-21 2016-01-12 Lookout, Inc. System and method for a scanning API
US9367680B2 (en) 2008-10-21 2016-06-14 Lookout, Inc. System and method for mobile communication device application advisement
US9374369B2 (en) 2012-12-28 2016-06-21 Lookout, Inc. Multi-factor authentication and comprehensive login system for client-server networks
US9424409B2 (en) 2013-01-10 2016-08-23 Lookout, Inc. Method and system for protecting privacy and enhancing security on an electronic device
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US9642008B2 (en) 2013-10-25 2017-05-02 Lookout, Inc. System and method for creating and assigning a policy for a mobile communications device based on personal data
US9753796B2 (en) 2013-12-06 2017-09-05 Lookout, Inc. Distributed monitoring, evaluation, and response for multiple devices
US9779253B2 (en) 2008-10-21 2017-10-03 Lookout, Inc. Methods and systems for sharing risk responses to improve the functioning of mobile communications devices
US9955352B2 (en) 2009-02-17 2018-04-24 Lookout, Inc. Methods and systems for addressing mobile communications devices that are lost or stolen but not yet reported as such
US10122747B2 (en) 2013-12-06 2018-11-06 Lookout, Inc. Response generation after distributed monitoring and evaluation of multiple devices
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
US10540494B2 (en) 2015-05-01 2020-01-21 Lookout, Inc. Determining source of side-loaded software using an administrator server

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7188062B1 (en) * 2002-12-27 2007-03-06 Unisys Corporation Configuration management for an emulator operating system
US7372371B2 (en) * 2003-05-05 2008-05-13 Microsoft Corporation Notification lights, locations and rules for a computer system
US7443971B2 (en) * 2003-05-05 2008-10-28 Microsoft Corporation Computer system with do not disturb system and method
US20040222978A1 (en) * 2003-05-05 2004-11-11 Bear Eric Gould Control and communications panel for a computer system
US7827232B2 (en) * 2003-05-05 2010-11-02 Microsoft Corporation Record button on a computer system
US20040240650A1 (en) * 2003-05-05 2004-12-02 Microsoft Corporation Real-time communications architecture and methods for use with a personal computer system
US7424740B2 (en) * 2003-05-05 2008-09-09 Microsoft Corporation Method and system for activating a computer system
US7221331B2 (en) * 2003-05-05 2007-05-22 Microsoft Corporation Method and system for auxiliary display of information for a computing device
US20040235520A1 (en) 2003-05-20 2004-11-25 Cadiz Jonathan Jay Enhanced telephony computer user interface allowing user interaction and control of a telephone using a personal computer
US20050049847A1 (en) * 2003-08-29 2005-03-03 Oki Electric Industry Co., Ltd. Software development environment and method for measuring software performance
US7548255B2 (en) * 2003-09-30 2009-06-16 Microsoft Corporation Method and system for capturing video on a personal computer
US7216221B2 (en) 2003-09-30 2007-05-08 Microsoft Corporation Method and system for unified audio control on a personal computer
US7440556B2 (en) 2003-09-30 2008-10-21 Microsoft Corporation System and method for using telephony controls on a personal computer
US7337427B2 (en) * 2004-01-08 2008-02-26 International Business Machines Corporation Self-healing cross development environment
US7716640B2 (en) * 2004-05-21 2010-05-11 Sap Portals Israel Ltd. Techniques for developing portal snippets using an integrated development environment (IDE)
US7634780B2 (en) * 2004-11-23 2009-12-15 Microsoft Corporation Method and system for exchanging data between computer systems and auxiliary displays
US7711868B2 (en) 2004-11-23 2010-05-04 Microsoft Corporation Waking a main computer system to pre-fetch data for an auxiliary computing device
US7784065B2 (en) 2005-02-07 2010-08-24 Microsoft Corporation Interface for consistent program interaction with auxiliary computing devices
US20080007522A1 (en) * 2005-03-09 2008-01-10 Rhett Howard E Multiple-evaluator input device
US7752633B1 (en) * 2005-03-14 2010-07-06 Seven Networks, Inc. Cross-platform event engine
US20060259896A1 (en) * 2005-05-16 2006-11-16 Microsoft Corporation Maintaining reproducibility across multiple software builds
US7791238B2 (en) 2005-07-25 2010-09-07 Hamilton Sundstrand Corporation Internal thermal management for motor driven machinery
US20070294337A1 (en) * 2006-03-31 2007-12-20 Maria Gaos Client-side information processing system, apparatus and methods
US10838714B2 (en) * 2006-04-24 2020-11-17 Servicenow, Inc. Applying packages to configure software stacks
US8443348B2 (en) 2006-06-20 2013-05-14 Google Inc. Application program interface of a parallel-processing computer system that supports multiple programming languages
US8146066B2 (en) * 2006-06-20 2012-03-27 Google Inc. Systems and methods for caching compute kernels for an application running on a parallel-processing computer system
US8375368B2 (en) * 2006-06-20 2013-02-12 Google Inc. Systems and methods for profiling an application running on a parallel-processing computer system
US8024708B2 (en) * 2006-06-20 2011-09-20 Google Inc. Systems and methods for debugging an application running on a parallel-processing computer system
US8136104B2 (en) 2006-06-20 2012-03-13 Google Inc. Systems and methods for determining compute kernels for an application in a parallel-processing computer system
US8381202B2 (en) * 2006-06-20 2013-02-19 Google Inc. Runtime system for executing an application in a parallel-processing computer system
US8136102B2 (en) 2006-06-20 2012-03-13 Google Inc. Systems and methods for compiling an application for a parallel-processing computer system
US7814486B2 (en) * 2006-06-20 2010-10-12 Google Inc. Multi-thread runtime system
US8261270B2 (en) * 2006-06-20 2012-09-04 Google Inc. Systems and methods for generating reference results using a parallel-processing computer system
US8108844B2 (en) 2006-06-20 2012-01-31 Google Inc. Systems and methods for dynamically choosing a processing element for a compute kernel
JP2010522370A (en) * 2007-03-20 2010-07-01 サンギュ イ Mobile virtual machine image
US8332610B2 (en) * 2007-04-17 2012-12-11 Marvell World Trade Ltd. System on chip with reconfigurable SRAM
US8938735B2 (en) * 2007-08-31 2015-01-20 Thomson Reuters Global Resources Bootstrapper and software download manager
US8793652B2 (en) * 2012-06-07 2014-07-29 International Business Machines Corporation Designing and cross-configuring software
US9280335B2 (en) 2010-09-30 2016-03-08 International Business Machines Corporation Semantically rich composable software image bundles
US20100125554A1 (en) * 2008-11-18 2010-05-20 Unisys Corporation Memory Recovery Across Reboots of an Emulated Operating System
US20110191787A1 (en) * 2010-02-02 2011-08-04 Sun Microsystems, Inc. System and method for providing sensor data from embedded device to software development environment
WO2011105714A2 (en) 2010-02-23 2011-09-01 Bang Inn-Sung Remote application development intermediation system for intermediating program's development contract and development using client's virtual development configuration and method for intermediating remote program development
JP5350428B2 (en) * 2011-04-12 2013-11-27 株式会社日立製作所 Automatic program generation apparatus, method and computer program
JP5719244B2 (en) 2011-06-29 2015-05-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Method, program, and computer apparatus for constructing a safely managed virtual machine execution environment
CN102306099A (en) * 2011-08-23 2012-01-04 上海网达软件有限公司 Cross-platform graphic display method and graphic display system on handheld terminal equipment
US8938712B2 (en) * 2011-12-22 2015-01-20 International Business Machines Corporation Cross-platform virtual machine and method
US9329976B1 (en) * 2013-06-24 2016-05-03 Amazon Technologies, Inc. Application development via a multi-unit device
US10725890B1 (en) * 2017-07-12 2020-07-28 Amazon Technologies, Inc. Program testing service
CN109032576A (en) * 2018-06-26 2018-12-18 珠海宏桥高科技有限公司 A kind of cross-platform generation method and device based on configuration
US10705825B2 (en) * 2018-09-20 2020-07-07 Hewlett Packard Enterprise Development Lp Creation of images
CN117631939A (en) * 2022-08-19 2024-03-01 华为技术有限公司 Touch input method, system, electronic equipment and storage medium

Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581740A (en) * 1994-10-04 1996-12-03 Dell Usa, L.P. System for reading CD ROM data from hard disks
US5594903A (en) * 1991-02-26 1997-01-14 Lynx Real-Time Systems, Inc. Operating System architecture with reserved memory space resident program code identified in file system name space
US5604906A (en) * 1995-02-06 1997-02-18 Apple Computer, Inc. Method and apparatus for installing software block-by block via an image of the target storage device
US5666334A (en) * 1994-11-01 1997-09-09 Hitachi, Ltd. Storage device capable of using both optical and magnetic disk units for storing information data
US5794052A (en) * 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
US5889988A (en) * 1995-01-03 1999-03-30 Intel Corporation Debugger for debugging tasks in an operating system virtual device driver
US5937189A (en) * 1996-11-12 1999-08-10 International Business Machines Corporation Object oriented framework mechanism for determining configuration relations
US5940613A (en) * 1996-05-01 1999-08-17 Sun Microsystems, Inc. Method for creating a single binary virtual device driver for a windowing operating system
US6078967A (en) * 1998-02-25 2000-06-20 Hewlett-Packard Company System for upgrading functionality of a peripheral device utilizing a removable ROM having relocatable object code
US6080207A (en) * 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6098184A (en) * 1998-05-08 2000-08-01 Spotware Technologies, Inc. Method for improving mouse performance and virtual device driver therefor
US6247140B1 (en) * 1998-07-07 2001-06-12 International Business Machines Corporation Parallel remote administration of mirrored and alternate volume groups in a distributed data processing system
US6253209B1 (en) * 1998-07-07 2001-06-26 International Business Machines Corporation Method for parallel, remote administration of mirrored and alternate volume groups in a distributed data processing system
US20020056047A1 (en) * 2000-09-15 2002-05-09 Lehman Larry L. System and method for communicating software debug, diagostic and maintenance information between devices
US6536037B1 (en) * 1999-05-27 2003-03-18 Accenture Llp Identification of redundancies and omissions among components of a web based architecture
US6640278B1 (en) * 1999-03-25 2003-10-28 Dell Products L.P. Method for configuration and management of storage resources in a storage network
US6718436B2 (en) * 2001-07-27 2004-04-06 Electronics And Telecommunications Research Institute Method for managing logical volume in order to support dynamic online resizing and software raid and to minimize metadata and computer readable medium storing the same
US6721713B1 (en) * 1999-05-27 2004-04-13 Andersen Consulting Llp Business alliance identification in a web architecture framework
US6772192B1 (en) * 2000-02-29 2004-08-03 Hewlett-Packard Development Company, L.P. Software download and distribution via image building and multicast
US6775830B1 (en) * 1999-09-24 2004-08-10 Hitachi, Ltd. Computer system and a program install method thereof
US6845466B2 (en) * 2000-10-26 2005-01-18 Hewlett-Packard Development Company, L.P. Managing disk drive replacements on mulitidisk headless appliances
US6892383B1 (en) * 2000-06-08 2005-05-10 International Business Machines Corporation Hypervisor function sets
US20050120335A1 (en) * 2002-01-10 2005-06-02 Microsoft Corporation Cross-platform software development with a software development peripheral
US7191445B2 (en) * 2001-08-31 2007-03-13 Texas Instruments Incorporated Method using embedded real-time analysis components with corresponding real-time operating system software objects

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032219B2 (en) * 2000-02-25 2006-04-18 Wind River Systems, Inc. System and method for implementing a project facility
WO2002025438A1 (en) * 2000-09-22 2002-03-28 Patchlink.Com Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method

Patent Citations (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594903A (en) * 1991-02-26 1997-01-14 Lynx Real-Time Systems, Inc. Operating System architecture with reserved memory space resident program code identified in file system name space
US5581740A (en) * 1994-10-04 1996-12-03 Dell Usa, L.P. System for reading CD ROM data from hard disks
US5666334A (en) * 1994-11-01 1997-09-09 Hitachi, Ltd. Storage device capable of using both optical and magnetic disk units for storing information data
US5889988A (en) * 1995-01-03 1999-03-30 Intel Corporation Debugger for debugging tasks in an operating system virtual device driver
US5604906A (en) * 1995-02-06 1997-02-18 Apple Computer, Inc. Method and apparatus for installing software block-by block via an image of the target storage device
US5794052A (en) * 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
US5940613A (en) * 1996-05-01 1999-08-17 Sun Microsystems, Inc. Method for creating a single binary virtual device driver for a windowing operating system
US5937189A (en) * 1996-11-12 1999-08-10 International Business Machines Corporation Object oriented framework mechanism for determining configuration relations
US6078967A (en) * 1998-02-25 2000-06-20 Hewlett-Packard Company System for upgrading functionality of a peripheral device utilizing a removable ROM having relocatable object code
US6098184A (en) * 1998-05-08 2000-08-01 Spotware Technologies, Inc. Method for improving mouse performance and virtual device driver therefor
US6080207A (en) * 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6253209B1 (en) * 1998-07-07 2001-06-26 International Business Machines Corporation Method for parallel, remote administration of mirrored and alternate volume groups in a distributed data processing system
US6247140B1 (en) * 1998-07-07 2001-06-12 International Business Machines Corporation Parallel remote administration of mirrored and alternate volume groups in a distributed data processing system
US6640278B1 (en) * 1999-03-25 2003-10-28 Dell Products L.P. Method for configuration and management of storage resources in a storage network
US6721713B1 (en) * 1999-05-27 2004-04-13 Andersen Consulting Llp Business alliance identification in a web architecture framework
US6536037B1 (en) * 1999-05-27 2003-03-18 Accenture Llp Identification of redundancies and omissions among components of a web based architecture
US6775830B1 (en) * 1999-09-24 2004-08-10 Hitachi, Ltd. Computer system and a program install method thereof
US6772192B1 (en) * 2000-02-29 2004-08-03 Hewlett-Packard Development Company, L.P. Software download and distribution via image building and multicast
US6892383B1 (en) * 2000-06-08 2005-05-10 International Business Machines Corporation Hypervisor function sets
US20020056047A1 (en) * 2000-09-15 2002-05-09 Lehman Larry L. System and method for communicating software debug, diagostic and maintenance information between devices
US6845466B2 (en) * 2000-10-26 2005-01-18 Hewlett-Packard Development Company, L.P. Managing disk drive replacements on mulitidisk headless appliances
US6718436B2 (en) * 2001-07-27 2004-04-06 Electronics And Telecommunications Research Institute Method for managing logical volume in order to support dynamic online resizing and software raid and to minimize metadata and computer readable medium storing the same
US7191445B2 (en) * 2001-08-31 2007-03-13 Texas Instruments Incorporated Method using embedded real-time analysis components with corresponding real-time operating system software objects
US20050120335A1 (en) * 2002-01-10 2005-06-02 Microsoft Corporation Cross-platform software development with a software development peripheral
US20050125779A1 (en) * 2002-01-10 2005-06-09 Microsoft Corporation Cross-platform software development with a software development peripheral
US6978439B2 (en) * 2002-01-10 2005-12-20 Microsoft Corporation Cross-platform software development with a software development peripheral

Cited By (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120335A1 (en) * 2002-01-10 2005-06-02 Microsoft Corporation Cross-platform software development with a software development peripheral
US20050125779A1 (en) * 2002-01-10 2005-06-09 Microsoft Corporation Cross-platform software development with a software development peripheral
US7707551B2 (en) * 2002-01-10 2010-04-27 Microsoft Corporation Cross-platform software development with a software development peripheral
US8561144B2 (en) 2008-10-21 2013-10-15 Lookout, Inc. Enforcing security based on a security state assessment of a mobile device
US9407640B2 (en) 2008-10-21 2016-08-02 Lookout, Inc. Assessing a security state of a mobile communications device to determine access to specific tasks
US9740852B2 (en) 2008-10-21 2017-08-22 Lookout, Inc. System and method for assessing an application to be installed on a mobile communications device
US20110047597A1 (en) * 2008-10-21 2011-02-24 Lookout, Inc., A California Corporation System and method for security data collection and analysis
US11080407B2 (en) 2008-10-21 2021-08-03 Lookout, Inc. Methods and systems for analyzing data after initial analyses by known good and known bad security components
US20110145920A1 (en) * 2008-10-21 2011-06-16 Lookout, Inc System and method for adverse mobile application identification
US20120084864A1 (en) * 2008-10-21 2012-04-05 Lookout, Inc. System and method for a mobile cross-platform software system
US8271608B2 (en) * 2008-10-21 2012-09-18 Lookout, Inc. System and method for a mobile cross-platform software system
US8347386B2 (en) 2008-10-21 2013-01-01 Lookout, Inc. System and method for server-coupled malware prevention
US8365252B2 (en) 2008-10-21 2013-01-29 Lookout, Inc. Providing access levels to services based on mobile device security state
US8381303B2 (en) 2008-10-21 2013-02-19 Kevin Patrick Mahaffey System and method for attack and malware prevention
US9779253B2 (en) 2008-10-21 2017-10-03 Lookout, Inc. Methods and systems for sharing risk responses to improve the functioning of mobile communications devices
US9781148B2 (en) 2008-10-21 2017-10-03 Lookout, Inc. Methods and systems for sharing risk responses between collections of mobile communications devices
US8683593B2 (en) 2008-10-21 2014-03-25 Lookout, Inc. Server-assisted analysis of data for a mobile device
US8510843B2 (en) 2008-10-21 2013-08-13 Lookout, Inc. Security status and information display system
US8533844B2 (en) 2008-10-21 2013-09-10 Lookout, Inc. System and method for security data collection and analysis
US9367680B2 (en) 2008-10-21 2016-06-14 Lookout, Inc. System and method for mobile communication device application advisement
US9100389B2 (en) 2008-10-21 2015-08-04 Lookout, Inc. Assessing an application based on application data associated with the application
US9043919B2 (en) 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
US20110047620A1 (en) * 2008-10-21 2011-02-24 Lookout, Inc., A California Corporation System and method for server-coupled malware prevention
US8505095B2 (en) 2008-10-21 2013-08-06 Lookout, Inc. System and method for monitoring and analyzing multiple interfaces and multiple protocols
US9860263B2 (en) 2008-10-21 2018-01-02 Lookout, Inc. System and method for assessing data objects on mobile communications devices
US10509910B2 (en) 2008-10-21 2019-12-17 Lookout, Inc. Methods and systems for granting access to services based on a security state that varies with the severity of security events
US8745739B2 (en) 2008-10-21 2014-06-03 Lookout, Inc. System and method for server-coupled application re-analysis to obtain characterization assessment
US8752176B2 (en) 2008-10-21 2014-06-10 Lookout, Inc. System and method for server-coupled application re-analysis to obtain trust, distribution and ratings assessment
US9294500B2 (en) 2008-10-21 2016-03-22 Lookout, Inc. System and method for creating and applying categorization-based policy to secure a mobile communications device from access to certain data objects
US10417432B2 (en) 2008-10-21 2019-09-17 Lookout, Inc. Methods and systems for blocking potentially harmful communications to improve the functioning of an electronic device
US8826441B2 (en) 2008-10-21 2014-09-02 Lookout, Inc. Event-based security state assessment and display for mobile devices
US9245119B2 (en) 2008-10-21 2016-01-26 Lookout, Inc. Security status assessment using mobile device security information database
US9235704B2 (en) 2008-10-21 2016-01-12 Lookout, Inc. System and method for a scanning API
US9223973B2 (en) 2008-10-21 2015-12-29 Lookout, Inc. System and method for attack and malware prevention
US8875289B2 (en) 2008-10-21 2014-10-28 Lookout, Inc. System and method for preventing malware on a mobile communication device
US8881292B2 (en) 2008-10-21 2014-11-04 Lookout, Inc. Evaluating whether data is safe or malicious
US10509911B2 (en) 2008-10-21 2019-12-17 Lookout, Inc. Methods and systems for conditionally granting access to services based on the security state of the device requesting access
US8984628B2 (en) 2008-10-21 2015-03-17 Lookout, Inc. System and method for adverse mobile application identification
US8997181B2 (en) 2008-10-21 2015-03-31 Lookout, Inc. Assessing the security state of a mobile communications device
US9996697B2 (en) 2008-10-21 2018-06-12 Lookout, Inc. Methods and systems for blocking the installation of an application to improve the functioning of a mobile communications device
US9344431B2 (en) 2008-10-21 2016-05-17 Lookout, Inc. System and method for assessing an application based on data from multiple devices
US9065846B2 (en) 2008-10-21 2015-06-23 Lookout, Inc. Analyzing data gathered through different protocols
US10623960B2 (en) 2009-02-17 2020-04-14 Lookout, Inc. Methods and systems for enhancing electronic device security by causing the device to go into a mode for lost or stolen devices
US9100925B2 (en) 2009-02-17 2015-08-04 Lookout, Inc. Systems and methods for displaying location information of a device
US9042876B2 (en) 2009-02-17 2015-05-26 Lookout, Inc. System and method for uploading location information based on device movement
US9167550B2 (en) 2009-02-17 2015-10-20 Lookout, Inc. Systems and methods for applying a security policy to a device based on location
US9179434B2 (en) 2009-02-17 2015-11-03 Lookout, Inc. Systems and methods for locking and disabling a device in response to a request
US9955352B2 (en) 2009-02-17 2018-04-24 Lookout, Inc. Methods and systems for addressing mobile communications devices that are lost or stolen but not yet reported as such
US8929874B2 (en) 2009-02-17 2015-01-06 Lookout, Inc. Systems and methods for remotely controlling a lost mobile communications device
US10419936B2 (en) 2009-02-17 2019-09-17 Lookout, Inc. Methods and systems for causing mobile communications devices to emit sounds with encoded information
US9232491B2 (en) 2009-02-17 2016-01-05 Lookout, Inc. Mobile device geolocation
US8855601B2 (en) 2009-02-17 2014-10-07 Lookout, Inc. System and method for remotely-initiated audio communication
US8825007B2 (en) 2009-02-17 2014-09-02 Lookout, Inc. Systems and methods for applying a security policy to a device based on a comparison of locations
US8774788B2 (en) 2009-02-17 2014-07-08 Lookout, Inc. Systems and methods for transmitting a communication based on a device leaving or entering an area
US8682400B2 (en) 2009-02-17 2014-03-25 Lookout, Inc. Systems and methods for device broadcast of location information when battery is low
US8635109B2 (en) 2009-02-17 2014-01-21 Lookout, Inc. System and method for providing offers for mobile devices
US8538815B2 (en) 2009-02-17 2013-09-17 Lookout, Inc. System and method for mobile device replacement
US8467768B2 (en) 2009-02-17 2013-06-18 Lookout, Inc. System and method for remotely securing or recovering a mobile device
US9569643B2 (en) 2009-02-17 2017-02-14 Lookout, Inc. Method for detecting a security event on a portable electronic device and establishing audio transmission with a client computer
US20110047033A1 (en) * 2009-02-17 2011-02-24 Lookout, Inc. System and method for mobile device replacement
US20100210240A1 (en) * 2009-02-17 2010-08-19 Flexilis, Inc. System and method for remotely securing or recovering a mobile device
USRE46768E1 (en) 2009-11-18 2018-03-27 Lookout, Inc. System and method for identifying and assessing vulnerabilities on a mobile communications device
USRE49634E1 (en) 2009-11-18 2023-08-29 Lookout, Inc. System and method for determining the risk of vulnerabilities on a mobile communications device
USRE47757E1 (en) 2009-11-18 2019-12-03 Lookout, Inc. System and method for identifying and assessing vulnerabilities on a mobile communications device
US20110119765A1 (en) * 2009-11-18 2011-05-19 Flexilis, Inc. System and method for identifying and assessing vulnerabilities on a mobile communication device
USRE48669E1 (en) 2009-11-18 2021-08-03 Lookout, Inc. System and method for identifying and [assessing] remediating vulnerabilities on a mobile communications device
US8397301B2 (en) 2009-11-18 2013-03-12 Lookout, Inc. System and method for identifying and assessing vulnerabilities on a mobile communication device
US8738765B2 (en) 2011-06-14 2014-05-27 Lookout, Inc. Mobile device DNS optimization
US9319292B2 (en) 2011-06-14 2016-04-19 Lookout, Inc. Client activity DNS optimization
US8788881B2 (en) 2011-08-17 2014-07-22 Lookout, Inc. System and method for mobile device push communications
US10181118B2 (en) 2011-08-17 2019-01-15 Lookout, Inc. Mobile communications device payment method utilizing location information
US11336458B2 (en) 2012-06-05 2022-05-17 Lookout, Inc. Evaluating authenticity of applications based on assessing user device context for increased security
US9940454B2 (en) 2012-06-05 2018-04-10 Lookout, Inc. Determining source of side-loaded software using signature of authorship
US9215074B2 (en) 2012-06-05 2015-12-15 Lookout, Inc. Expressing intent to control behavior of application components
US9992025B2 (en) 2012-06-05 2018-06-05 Lookout, Inc. Monitoring installed applications on user devices
US10256979B2 (en) 2012-06-05 2019-04-09 Lookout, Inc. Assessing application authenticity and performing an action in response to an evaluation result
US10419222B2 (en) 2012-06-05 2019-09-17 Lookout, Inc. Monitoring for fraudulent or harmful behavior in applications being installed on user devices
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US8655307B1 (en) 2012-10-26 2014-02-18 Lookout, Inc. System and method for developing, updating, and using user device behavioral context models to modify user, device, and application state, settings and behavior for enhanced user security
US9769749B2 (en) 2012-10-26 2017-09-19 Lookout, Inc. Modifying mobile device settings for resource conservation
US9408143B2 (en) 2012-10-26 2016-08-02 Lookout, Inc. System and method for using context models to control operation of a mobile communications device
US9208215B2 (en) 2012-12-27 2015-12-08 Lookout, Inc. User classification based on data gathered from a computing device
US9374369B2 (en) 2012-12-28 2016-06-21 Lookout, Inc. Multi-factor authentication and comprehensive login system for client-server networks
US8855599B2 (en) 2012-12-31 2014-10-07 Lookout, Inc. Method and apparatus for auxiliary communications with mobile communications device
US9424409B2 (en) 2013-01-10 2016-08-23 Lookout, Inc. Method and system for protecting privacy and enhancing security on an electronic device
US10452862B2 (en) 2013-10-25 2019-10-22 Lookout, Inc. System and method for creating a policy for managing personal data on a mobile communications device
US10990696B2 (en) 2013-10-25 2021-04-27 Lookout, Inc. Methods and systems for detecting attempts to access personal information on mobile communications devices
US9642008B2 (en) 2013-10-25 2017-05-02 Lookout, Inc. System and method for creating and assigning a policy for a mobile communications device based on personal data
US9753796B2 (en) 2013-12-06 2017-09-05 Lookout, Inc. Distributed monitoring, evaluation, and response for multiple devices
US10742676B2 (en) 2013-12-06 2020-08-11 Lookout, Inc. Distributed monitoring and evaluation of multiple devices
US10122747B2 (en) 2013-12-06 2018-11-06 Lookout, Inc. Response generation after distributed monitoring and evaluation of multiple devices
CN104834519A (en) * 2015-04-04 2015-08-12 杭州中焯信息技术股份有限公司 Cross-platform application software development system
US10540494B2 (en) 2015-05-01 2020-01-21 Lookout, Inc. Determining source of side-loaded software using an administrator server
US11259183B2 (en) 2015-05-01 2022-02-22 Lookout, Inc. Determining a security state designation for a computing device based on a source of software
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
US11038876B2 (en) 2017-06-09 2021-06-15 Lookout, Inc. Managing access to services based on fingerprint matching

Also Published As

Publication number Publication date
US20050120335A1 (en) 2005-06-02
US6978439B2 (en) 2005-12-20
US20050125779A1 (en) 2005-06-09
US7707551B2 (en) 2010-04-27
US20030131148A1 (en) 2003-07-10

Similar Documents

Publication Publication Date Title
US7707551B2 (en) Cross-platform software development with a software development peripheral
KR100876607B1 (en) Heterogeneous program interworking method and device
Abbott Linux for embedded and real-time applications
US5732266A (en) Storage medium storing application programs and application initialization files and automatic launching of computer applications stored on the storage medium
US7736231B2 (en) Common controller
US5918048A (en) Booting an operating system using soft read-only storage (ROS) for firmware emulation
CN106445630A (en) Android simulator and method for realizing Android simulator
US20070169111A1 (en) Identification of software execution data
US20220107882A1 (en) Rendering engine component abstraction system
Sally Pro Linux embedded systems
CN111459606A (en) Method for quickly creating virtual machine under virtualization and server
US7188062B1 (en) Configuration management for an emulator operating system
US20070250814A1 (en) Debugging in an operating system with multiple subsystems
CA3055859A1 (en) Method and system for operating a software application on a processor of a mobile device
CN105550046B (en) Virtual control method, device and system
CN115237735A (en) Method, device, equipment and medium for collecting logs of serial port of virtual machine
US7162624B2 (en) System and method for initializing hardware coupled to a computer system based on a board support package (BSP)
CN110968519A (en) Game testing method, device, server and storage medium
Fosdick Rexx programmer's reference
EP1439464A2 (en) Java interface for accessing graphical user interface-based java tools
CN112905233B (en) Peripheral transplanting method of embedded firmware based on Linux kernel
WO2006132931A3 (en) Efficient software development and porting system and method for wireless devices
Studio Getting Started Guide
Devi et al. Developing Device Driver for Raspberry Pi
Tijms Binary translation: Classification of emulators

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034766/0001

Effective date: 20141014