Method for controlling execution of heterogeneous operating systems and electronic devices and storage medium thereof

By realizing interoperability and container technology of heterogeneous operating systems on smartphones, performance problems when running multiple operating systems are solved, device functions and convenience of use are expanded, and Linux applications can run in Android environment, providing the same User experience.

CN112771489BActive Publication Date: 2025-01-10SAMSUNG ELECTRONICS CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN201980063379.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-10-16
Filing Date
2019-10-14
Publication Date
2025-01-10
Estimated Expiration
2039-10-14

AI Technical Summary

Technical Problem

Prior art When multiple operating systems are run on smartphones, restarting is time-consuming and virtual machines slow down the system, limiting the availability of applications.

Method used

By enabling interoperability between heterogeneous operating systems on electronic devices, multiple applications are allowed to be output and run on the screen of one operating system, receive user selections, and output corresponding application execution screens on the same screen, using container technology to isolate And manage processes of different operating systems to avoid performance losses of virtual machines.

Benefits of technology

It realizes interoperability between heterogeneous operating systems, expands the functions and convenience of smartphones, so that applications of different operating systems can be run simultaneously on the same device, provides the same user experience, and improves user convenience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112771489B_ABST
    Figure CN112771489B_ABST
Patent Text Reader

Abstract

An electronic device is provided. The electronic device includes a display, at least one processor, and a memory operably connected to the display and the at least one processor and configured to store a plurality of applications, the plurality of applications including a first application configured to be executed using a first operating system (OS) and a second application configured to be executed using a second OS, wherein the memory stores instructions configured to cause the at least one processor to perform the following operations when executed: output a first object and a second object on a screen of the first OS, wherein the first object is related to the execution of the first application, the second object is related to the execution of the second application, and when the second object is selected, output an execution screen of the second application on the screen of the first OS. Other embodiments are also possible.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a method for controlling execution of heterogeneous operating systems and electronic devices and a storage medium therefor. Background Art

[0002] The increase in processing performance of mobile electronic devices and technologies has led to the emergence of smartphones equipped with various open operating systems and new services. Compared with other electronic devices such as desktop personal computers (PCs) and laptops, the performance of smartphones is comparable to that of personal computers, making smartphones more frequently used. More and more users are choosing smartphones instead of desktop PCs for the purpose of saving and using files. Files stored in smartphones sometimes need to be run or modified on desktop PCs. With higher performance and the ability to connect to desktop PCs or external displays, smartphones may be able to replace home and business computers.

[0003] Various technologies have been developed to connect a smartphone to a desktop PC or an external display to enable it to be used in an environment similar to a desktop PC.

[0004] Electronic devices usually run on a single operating system (OS), and to run another operating system (OS), they need virtual network computing (VNC) or restart. VNC or other virtual machines can configure the environment to enable the same hardware device to use multiple OS. For example, Android and Linux can be used by sharing a graphics processing unit (GPU) via a virtual machine. Summary of the invention

[0005]

Technical issues

[0006] However, rebooting is time-consuming and cumbersome, and using a virtual machine simultaneously can slow down the system. When another OS is running, users may be forced to use apps that only run on the other OS and not on the main OS.

[0007] The above information is presented as background information only to assist with understanding the present disclosure. No determination has been made, and no assertion is made, as to whether any of the above may be used as prior art with respect to the present disclosure.

[0008] [Solution]

[0009] When using or operating applications on heterogeneous operating systems (OS), intercommunication between heterogeneous OS may not only expand the usability of smartphone functions themselves, but also expand the usability for various other purposes.

[0010] Aspects of the present disclosure are to at least solve the above-mentioned problems and / or disadvantages, and to at least provide the following advantages. Therefore, one aspect of the present disclosure is to provide an apparatus and method for an electronic device, the electronic device comprising: a display; at least one processor; and a memory operably connected to the display and the at least one processor and configured to store a plurality of applications including a first application operated based on a first operating system and a second application operated based on a second operating system. Wherein, the memory stores instructions configured to cause the at least one processor to perform the following operations when executed: output a first object and a second object on a screen of a first OS, wherein the first object is related to the execution of the first application, the second object is related to the execution of the second application, and when the second object is selected, output the execution screen of the second application on the screen of the first OS.

[0011] Another aspect of the present disclosure is to provide an apparatus and method for controlling the execution of a heterogeneous OS on an electronic device, including outputting a first object and a second object on a screen of a first operating system (OS), wherein the first object is associated with the execution of a first application based on the operation of the first OS, and the second object is associated with the execution of a second application based on the operation of the second OS; receiving a selection of the second object among the first object and the second object; and corresponding to the selection of the second object, outputting an execution screen of the second application on at least a portion of the screen of the first OS.

[0012] Additional aspects will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the presented embodiments.

[0013] According to one aspect of the present disclosure, a storage medium is provided, which stores a command configured to be executed by at least one processor to enable the at least one processor to perform at least one operation. The storage medium includes outputting a first object associated with the execution of a first application based on the first OS operation and a second object associated with the execution of a second application based on the second OS operation on a screen of a first OS, receiving a selection of the second object from among the first object and the second object and corresponding to the selection of the second object, and outputting an execution screen of the second application on at least a portion of the screen of the first OS.

[0014] Other aspects, advantages, and salient features of the present disclosure will become apparent to those skilled in the art from the following detailed description, which, in conjunction with the accompanying drawings, discloses various embodiments of the present disclosure.

[0015] [Beneficial effects of the invention]

[0016] Various embodiments of the present disclosure may provide intercommunication between heterogeneous OSs when using or manipulating applications on the heterogeneous OSs, thereby expanding not only the usability of the smartphone's own functions but also other various purposes of the smartphone.

[0017] Various embodiments of the present disclosure may establish an environment in which applications based on different OSs may be simultaneously run on an electronic device (eg, a smart phone), resulting in greater convenience of use.

[0018] Various embodiments of the present disclosure enable Linux applications to run on an electronic device (eg, a smartphone) based on Android based on the same user experience given for the Android environment. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] The above and other aspects, features and advantages of certain embodiments of the present disclosure will become more apparent from the following description in conjunction with the accompanying drawings, in which:

[0020] Figure 1 is a block diagram of an electronic device in a network environment according to an embodiment of the present disclosure;

[0021] Figure 2 is a diagram illustrating example components of an electronic device for controlling execution of a heterogeneous operating system (OS) according to an embodiment of the present disclosure;

[0022] Figure 3 is a diagram illustrating example detailed components of an electronic device for controlling execution of a heterogeneous OS according to an embodiment of the present disclosure;

[0023] Figure 4 is a view showing an internal structure of an electronic device for controlling execution of a heterogeneous OS according to an embodiment of the present disclosure;

[0024] Figure 5 is a view showing an example screen for controlling execution of a heterogeneous OS on an electronic device according to an embodiment of the present disclosure;

[0025] Fig. 6A is a view showing an operating environment of an electronic device according to an embodiment of the present disclosure;

[0026] Figure 6B is a view showing an operating environment of an electronic device according to an embodiment of the present disclosure;

[0027] Figure 7 is a flowchart illustrating an operation of an electronic device for controlling execution of a heterogeneous OS according to an embodiment of the present disclosure;

[0028] Figure 8FIG. 4 is a flowchart illustrating a method of obtaining a Linux package according to an embodiment of the present disclosure.

[0029] Fig. 9 is a flowchart illustrating the operation of an electronic device for executing Linux according to an embodiment of the present disclosure;

[0030] Fig.10 is a view showing an example screen configuration for simultaneously executing heterogeneous OSs according to an embodiment of the present disclosure;

[0031] Fig.11 is a view showing an example screen corresponding to selecting an object for executing a second OS according to an embodiment of the present disclosure;

[0032] Fig.12 is a view showing an example screen corresponding to selecting an object for executing a second application based on a second OS according to an embodiment of the present disclosure;

[0033] Fig.13 is a diagram showing an example of comparing an execution screen of a first application based on a first OS operation and an execution screen of a second application based on a second OS operation according to an embodiment of the present disclosure;

[0034] Fig.14 are views showing various example screens when heterogeneous OSs are simultaneously executed according to an embodiment of the present disclosure;

[0035] Fig.15 are views showing various example screens when heterogeneous OSs are simultaneously executed according to an embodiment of the present disclosure;

[0036] Fig.16 are views showing various example screens when heterogeneous OSs are simultaneously executed according to an embodiment of the present disclosure;

[0037] Fig.17 are views showing various example screens when heterogeneous OSs are simultaneously executed according to an embodiment of the present disclosure;

[0038] Fig.18 are views showing various example screens when heterogeneous OSs are simultaneously executed according to an embodiment of the present disclosure; and

[0039] Fig.19 2 is a view illustrating various example screens when heterogeneous OSs are simultaneously executed according to an embodiment of the present disclosure.

[0040] Throughout the drawings, like reference numerals will be understood to refer to like parts, components and structures. DETAILED DESCRIPTION

[0041] The following description with reference to the accompanying drawings is provided to assist in a comprehensive understanding of the various embodiments of the present disclosure as defined by the claims and their equivalents. It includes various specific details to assist in understanding, but these specific details are considered to be exemplary only. Therefore, it will be appreciated by those of ordinary skill in the art that various changes and modifications may be made to the various embodiments described herein without departing from the scope and spirit of the present disclosure. In addition, descriptions of well-known functions and configurations may be omitted for clarity and brevity.

[0042] The terms and words used in the following description and claims are not limited to the bibliographical meanings, but are merely used by the inventor to enable a clear and consistent understanding of the present disclosure. Therefore, it will be apparent to those skilled in the art that the following description of various embodiments of the present disclosure is provided for illustrative purposes only and not for the purpose of limiting the present disclosure as defined by the appended claims and their equivalents.

[0043] It should be understood that the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to "a component surface" includes reference to one or more of such surfaces.

[0044] Figure 1 is a block diagram illustrating an electronic device 101 in a network environment 100 according to various embodiments.

[0045] Reference Figure 1 , the electronic device 101 in the network environment 100 may communicate with the electronic device 102 via the first network 198 (e.g., a short-range wireless communication network), or communicate with the electronic device 104 or the server 108 via the second network 199 (e.g., a long-range wireless communication network). According to an embodiment, the electronic device 101 may communicate with the electronic device 104 via the server 108. According to an embodiment, the electronic device 101 may include a processor 120, a memory 130, an input device 150, a sound output device 155, a display device 160, an audio module 170, a sensor module 176, an interface 177, a haptic module 179, a camera module 180, a power management module 188, a battery 189, a communication module 190, a user identification module (SIM) 196, or an antenna module 197. In some embodiments, at least one of the components (e.g., the display device 160 or the camera module 180) may be omitted from the electronic device 101, or one or more other components may be added to the electronic device 101. In some embodiments, some of the components may be implemented as a single integrated circuit. For example, the sensor module 176 (eg, a fingerprint sensor, an iris sensor, or an illumination sensor) may be implemented to be embedded in the display device 160 (eg, a display).

[0046] The processor 120 may run, for example, software (e.g., program 140) to control at least one other component (e.g., hardware component or software component) of the electronic device 101 connected to the processor 120, and may perform various data processing or calculations. According to an embodiment, as at least part of the data processing or calculation, the processor 120 may load a command or data received from another component (e.g., sensor module 176 or communication module 190) into the volatile memory 132, process the command or data stored in the volatile memory 132, and store the result data in the non-volatile memory 134. According to an embodiment, the processor 120 may include a main processor 121 (e.g., a central processing unit (CPU) or an application processor (AP)) and an auxiliary processor 123 (e.g., a graphics processing unit (GPU), an image signal processor (ISP), a sensor hub processor, or a communication processor (CP)) that is independent of or combined with the main processor 121 in operation. Additionally or alternatively, the auxiliary processor 123 may be adapted to consume less power than the main processor 121, or adapted to be specifically used for a specified function. The auxiliary processor 123 may be implemented separately from the main processor 121 , or as part of the main processor 121 .

[0047] When the main processor 121 is in an inactive (e.g., sleep) state, the auxiliary processor 123 may control at least some of the functions or states related to at least one component (e.g., display device 160, sensor module 176, or communication module 190) among the components of the electronic device 101 (not the main processor 121), or when the main processor 121 is in an active state (e.g., running an application), the auxiliary processor 123 may control at least some of the functions or states related to at least one component (e.g., display device 160, sensor module 176, or communication module 190) among the components of the electronic device 101 together with the main processor 121. According to an embodiment, the auxiliary processor 123 (e.g., an image signal processor or a communication processor) may be implemented as part of another component (e.g., camera module 180 or communication module 190) that is functionally related to the auxiliary processor 123.

[0048] The memory 130 may store various data used by at least one component of the electronic device 101 (e.g., the processor 120 or the sensor module 176). The various data may include, for example, software (e.g., the program 140) and input data or output data for commands related thereto. The memory 130 may include a volatile memory 132 or a non-volatile memory 134.

[0049] The program 140 may be stored as software in the memory 130 , and may include, for example, an operating system (OS) 142 , middleware 144 , or applications 146 .

[0050] The input device 150 may receive commands or data from outside the electronic device 101 (e.g., a user) to be used by other components of the electronic device 101 (e.g., the processor 120). The input device 150 may include, for example, a microphone, a mouse, a keyboard, or a digital pen (e.g., a stylus).

[0051] The sound output device 155 can output a sound signal to the outside of the electronic device 101. The sound output device 155 may include, for example, a speaker or a receiver. The speaker can be used for general purposes such as playing multimedia or playing records, and the receiver can be used for incoming calls. Depending on the embodiment, the receiver can be implemented as a separate part from the speaker, or as a part of the speaker.

[0052] The display device 160 may visually provide information to the outside of the electronic device 101 (e.g., a user). The display device 160 may include, for example, a display, a holographic device, or a projector, and a control circuit for controlling a corresponding one of the display, the holographic device, and the projector. According to an embodiment, the display device 160 may include a touch circuit adapted to detect a touch or a sensor circuit (e.g., a pressure sensor) adapted to measure the strength of a force caused by a touch.

[0053] The audio module 170 may convert sound into an electrical signal, or vice versa. According to an embodiment, the audio module 170 may obtain sound via the input device 150, or output sound via the sound output device 155 or an earphone of an external electronic device (e.g., electronic device 102) directly (e.g., wired) or wirelessly connected to the electronic device 101.

[0054] The sensor module 176 may detect an operating state (e.g., power or temperature) of the electronic device 101 or an environmental state (e.g., a user's state) outside the electronic device 101, and then generate an electrical signal or data value corresponding to the detected state. According to an embodiment, the sensor module 176 may include, for example, a gesture sensor, a gyro sensor, an atmospheric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an infrared (IR) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illumination sensor.

[0055] The interface 177 may support one or more specific protocols that will be used to connect the electronic device 101 directly (e.g., wired) or wirelessly to an external electronic device (e.g., the electronic device 102). According to an embodiment, the interface 177 may include, for example, a high-definition multimedia interface (HDMI), a universal serial bus (USB) interface, a secure digital (SD) card interface, or an audio interface.

[0056] The connection end 178 may include a connector, wherein the electronic device 101 can be physically connected to an external electronic device (e.g., the electronic device 102) via the connector. According to an embodiment, the connection end 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).

[0057] The haptic module 179 may convert the electrical signal into mechanical stimulation (eg, vibration or motion) or electrical stimulation that can be recognized by the user via his sense of touch or kinesthetic sense. According to an embodiment, the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulator.

[0058] The camera module 180 may capture still images or moving images. According to an embodiment, the camera module 180 may include one or more lenses, an image sensor, an image signal processor, or a flash.

[0059] The power management module 188 may manage power supply to the electronic device 101. According to an embodiment, the power management module 188 may be implemented as, for example, at least a part of a power management integrated circuit (PMIC).

[0060] The battery 189 may power at least one component of the electronic device 101. According to an embodiment, the battery 189 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

[0061] The communication module 190 may support establishing a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device 101 and an external electronic device (e.g., electronic device 102, electronic device 104, or server 108), and perform communication via the established communication channel. The communication module 190 may include one or more communication processors capable of operating independently from the processor 120 (e.g., an application processor (AP)) and supporting direct (e.g., wired) communication or wireless communication. According to an embodiment, the communication module 190 may include a wireless communication module 192 (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (e.g., a local area network (LAN) communication module or a power line communication (PLC) module). A corresponding one of these communication modules can communicate with an external electronic device via a first network 198 (e.g., a short-range communication network such as Bluetooth, Wireless Fidelity (Wi-Fi) Direct, or Infrared Data Association (IrDA)) or a second network 199 (e.g., a long-range communication network such as a cellular network, the Internet, or a computer network (e.g., a LAN or a wide area network (WAN))). These various types of communication modules can be implemented as a single component (e.g., a single chip), or these various types of communication modules can be implemented as multiple components separated from each other (e.g., multiple chips). The wireless communication module 192 can identify and authenticate the electronic device 101 in a communication network (such as the first network 198 or the second network 199) using user information (e.g., an International Mobile Subscriber Identity (IMSI)) stored in the user identification module 196.

[0062] The antenna module 197 may transmit or receive a signal or power to or from the outside of the electronic device 101 (e.g., an external electronic device). According to an embodiment, the antenna module 197 may include an antenna including a radiating element formed of a conductive material or a conductive pattern formed in or on a substrate (e.g., a PCB). According to an embodiment, the antenna module 197 may include a plurality of antennas. In this case, at least one antenna suitable for a communication scheme used in a communication network (such as the first network 198 or the second network 199) may be selected from the plurality of antennas by, for example, the communication module 190 (e.g., the wireless communication module 192). A signal or power may then be transmitted or received between the communication module 190 and the external electronic device via the selected at least one antenna. According to an embodiment, another component (e.g., a radio frequency integrated circuit (RFIC)) other than the radiating element may be additionally formed as part of the antenna module 197.

[0063] At least some of the above components may be connected to each other via an inter-peripheral communication scheme (e.g., a bus, general purpose input output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)) and communicatively transmit signals (e.g., commands or data) therebetween.

[0064] According to an embodiment, a command or data may be sent or received between the electronic device 101 and the external electronic device 104 via the server 108 connected to the second network 199. Each of the electronic device 102 and the electronic device 104 may be a device of the same type as the electronic device 101, or a device of a different type from the electronic device 101. According to an embodiment, all or some operations to be run on the electronic device 101 may be run on one or more of the external electronic device 102, the external electronic device 104, or the server 108. For example, if the electronic device 101 should automatically perform a function or service or should perform a function or service in response to a request from a user or another device, the electronic device 101 may request the one or more external electronic devices to perform at least part of the function or service instead of running the function or service, or the electronic device 101 may request the one or more external electronic devices to perform at least part of the function or service in addition to running the function or service. The one or more external electronic devices that receive the request may perform the requested at least part of the function or service, or perform another function or another service related to the request, and transmit the result of the execution to the electronic device 101. The electronic device 101 may provide the result as at least a partial reply to the request with or without further processing the result. To this end, cloud computing technology, distributed computing technology or client-server computing technology may be used, for example.

[0065] Figure 2 is a diagram 200 illustrating example components of an electronic device for controlling execution of heterogeneous OSs according to an embodiment of the present disclosure.

[0066] Reference Figure 2 , electronic devices (e.g. Figure 1 The electronic device 101 may include an OS 210 and execute multiple OSes simultaneously. The OS 210 may include a first OS 230 and a second OS 220. For example, the first OS 230 may be an Android OS intended for use in an embedded environment in an electronic device, and the second OS 220 may be a Linux OS. The second OS 220 may include Ubuntu (R) for a Linux-based OS. The first OS 230 may be referred to as a host OS, and the second OS 220 may be referred to as a guest OS.

[0067] The first OS 230 and the second OS 220 can operate independently of each other and coexist, and when operating based on Linux, they can depend on each other. The first OS 230 and the second OS 220 in the OS 210 can communicate with the kernel 240 and can communicate with each other as shown by the arrows. According to an embodiment, although Android and Linux are used as examples of OSs that can belong to the OS 210, various types of OSs other than Android and Linux can be added or used instead. Therefore, the OS 210 can include two or more various types of OSs, and multiple OSs can exist independently on the same kernel 240 (or different cores / kernels).

[0068] The kernel 240 may allocate each resource of the electronic device by connecting and managing interactions between respective middleware units of the first OS 230 and the second OS 220 of the OS 210 and physical components of the device hardware 250 .

[0069] The device hardware 250 may include various hardware devices. The device hardware 250 may be a processor (e.g., Figure 1 For example, device hardware 250 may include a device coupled to a processor (e.g., Figure 1 A memory (e.g., a processor 120) coupled to the processor 120. Figure 1 The memory 130) may store computer-executable instructions to perform various functions and operations to control the execution of the heterogeneous OS.

[0070] Figure 3 is a diagram 300 illustrating example detailed components of an electronic device for controlling execution of heterogeneous OSs according to an embodiment of the present disclosure. Figure 3 The detailed components can correspond to Figure 2 Components including, but not limited to Figure 2 components, various other functions and components can be added.

[0071] Reference Figure 3 , electronic devices (e.g. Figure 1 The electronic device 101 may include an OS 210 including multiple OSs, a kernel 240, and device hardware 250. The OS 210 may include multiple heterogeneous OSs, such as Figure 2 A first OS 230 and a second OS 220 are shown.

[0072] According to an embodiment, the first OS 230 may be an Android-based OS and may include a control application 231 and a first application 232. The first application 232 may be at least one application operable on the Android OS and may be referred to as an application program. For example, the first application 232 may correspond to various applications operable based on the Android OS, such as a video playback application or a web browser application.

[0073] The first OS 230 may be a main OS that operates when the electronic device boots up, and may be referred to as a host OS. The first OS 230 may execute a control application 231 to interact with one or more different OSs (eg, guest OSs), and manage system resources.

[0074] According to an embodiment, the first OS 230 may include a control application 231 for processing and controlling data based on the first OS 230 and data based on an OS different from the first OS 230 (eg, Figure 2 For example, when the first OS 230 is an Android OS and the second OS 220 is a Linux OS, the control application 231 may process and control the Android OS-based data and the Linux-based data.

[0075] According to an embodiment, the control application 231 may use the kernel 240 of the first OS 230 to communicate with the guest OS (e.g., Figure 2 The control application 231 can communicate with the running process of the second OS 220 of the guest OS. The control application 231 can transfer events occurring in the process of the guest OS to the process of the first OS 230 (for example, Android OS), or transfer events occurring in the process of the first OS 230 to the guest OS to execute or control the process. According to an embodiment, the control application 231 can be called a Linux on dex (LoD) application.

[0076] According to an embodiment, a guest OS (e.g., Figure 2The second OS 220 of the container 315 may be executed by the container 315, and may include a plurality of applications (e.g., the second application 221) operable on the guest OS. The guest OS executed by the container 315 may include at least one communication program 222. The communication program 222 may be a component for communicating with the first OS 230, and may communicate with the control application 231. For example, the communication program 222 may send data related to the guest OS executed on the container 315 via socket communication with the control application 231 outside the container (e.g., the first OS 230). Therefore, the first OS 230 may obtain data related to the operating, isolated guest OS from the communication program 222 using the container 315, and process a process related to the guest OS based on the obtained data related to the guest OS.

[0077] According to an embodiment, OS210 or the first OS230 may include a daemon 233 in a multitasking OS. According to an embodiment, the daemon 233 may be referred to as a namespace tool (NST) daemon. The daemon 233 may be a program running in the background of an electronic device for controlling an application 231. The daemon 233 may communicate with the control application 231, and may generate a container 315 for executing a guest OS and controlling various functions of the kernel 240, such as a namespace function 321 and a Cgroup 324, and support operating processes, such as installation control of a file system 325. The daemon 233 may also support operating processes of the guest OS without terminating processes of the host OS.

[0078] although Figure 3 An example is shown in which the daemon 233 is included in the OS 210 independently of the first OS 230 and the container 315 related to the second OS as the guest OS, which is only an example, and the embodiments of the present disclosure are not limited thereto. For example, the daemon 233 uses the kernel 240 of the first OS 230, and therefore can be positioned on top of the kernel 240 in view of the software hierarchy, but is not limited to this position.

[0079] According to an embodiment, the electronic device may generate a container 315 to enable simultaneous execution of heterogeneous OSs. According to an embodiment, the container 315 may be generated by the control application 231. The processor of the electronic device (e.g., Figure 1 The processor 120 of the first OS 230 may control the first OS 230 to generate a container 315 and generate the container 315 for performing the operation of the guest OS through the control application 231 installed on the first OS 230. According to an embodiment, when a user selection of an application operable based on the second OS 220 is input, the container 315 may be generated corresponding to the input. For example, when the user selects an icon for executing an application of the second OS 220, the container 315 for executing the second OS 220 may be generated.

[0080] According to an embodiment, the electronic device may use a pre-existing (or pre-generated) container (not shown) to be able to execute heterogeneous OSes simultaneously. According to an embodiment, although there is a pre-existing container of at least one shared kernel 240, a specific one of at least one container in the first OS 230 may be allocated as a container for executing the second OS 220. The operation of allocating a specific container may control a processor (e.g., Figure 1 The processor 120 of the second operating system 220 may be configured to allow the first OS 230 to allocate a specific container or control the allocation through the control application 231. As described above, when a container for executing the second operating system 220 is allocated, data related to the second OS 220 may be isolated and operated using a specific container. For example, when a user selects an icon of an application for executing the second OS 220, any one of the pre-existing containers may be designated for the purpose of executing the second OS 220.

[0081] According to an embodiment, the control application 231 may execute the second OS 220 through the container 315 (or a specific container). Therefore, the electronic device may generate a container 315 corresponding to a user input received to drive the second OS 220, and then allocate data required by the second OS 220 to the generated container 315, thereby enabling simultaneous execution of heterogeneous OSes, rather than pre-allocating or storing and then managing all data required for applications running based on the second OS 220 and data for driving the second OS 220.

[0082] According to an embodiment, corresponding to a user input for selecting an application (eg, the second application 221 ) to be executed by the second OS 220 , the control application 231 may allocate and provide data required to execute the second application 221 through the container 315 .

[0083] According to an embodiment, the container 315 may be generated not by virtualization but by isolation technology. For example, when the first OS 230 is running, only the process of the isolated second OS 220 may be processed without any boot process for executing the second OS 220. Therefore, since the image can be managed and distributed in units of files through the container 315 by the control application 231 of the first OS 230, an OS different from the currently running OS may be executed simultaneously with minimal capacity. In addition, according to an embodiment, the container 315 may use the kernel 240 of the first OS 230 as the host OS, and only allocate the memory required for the application executed based on the second OS 220, thereby overcoming the limitations of the virtual machine and being able to control heterogeneous OSes without increasing the burden on the performance of the host OS.

[0084] According to an embodiment, the kernel 240 may be executed by a Linux kernel of the first OS 230 (e.g., Android OS), and a container 315 may be generated as a Linux container function to drive a guest OS (e.g., Linux OS) by controlling the application 231. The kernel 240 may be a program that provides various functions for executing an OS. For example, the kernel 240 may include at least one of the following: a namespace function 321 for assigning a process executing a guest OS associated with the first OS 230 to a namespace; a security function 322; a driver function 323 for accessing a component of the device hardware 250 of the electronic device; a Cgroups function 324 for allocating resources to allocate CPU cores or storage capacity; or a file system function for storing and managing files.

[0085] According to an embodiment, the container 315 may be an environment that drives a virtual OS independently from the first OS 230, and may be a distributed Linux version created based on a Linux container support kernel, such as or Debian. The creation of container 315 is not limited to Figure 3 components, but can also be generated by Linux namespace containers.

[0086] According to an embodiment, the device hardware 250 may include at least one hardware component, and may include a processor (e.g., a central processing unit 331) and a memory (e.g., a random access memory 332). The device hardware 250 may further include various components and resources, such as an input device, such as a touch device 335, such as a keyboard, a mouse, and / or a touch screen; an audio device 333; an output device, such as a speaker; and / or a display 334 or an external storage device 336.

[0087] Figure 4 is a block diagram 400 illustrating an internal configuration of an electronic device according to an embodiment of the present disclosure.

[0088] Reference Figure 4 According to an embodiment, the electronic device 401 (eg, Figure 1 The electronic device 101 may be a device for controlling execution of a heterogeneous OS (eg, a smartphone or a tablet personal computer (PC)), and may include at least one processor 420 (eg, Figure 1 processor 120), memory 430 (e.g., Figure 1 Memory 130) and display 460 (e.g., Figure 1 display device 160). Figure 4 All components of the electronic device 401 are not essential components, and the electronic device 401 can be used with Figure 4 More or fewer components than shown may be implemented.

[0089] The memory 430 may store instructions to enable the processor 420 to perform various operations when executed.

[0090] According to an embodiment, the memory 430 may be operably connected with the display 460 and the processor 420 , and may store a plurality of applications including a first application operating based on a first OS and a second application operating based on a second OS.

[0091] According to an embodiment, the memory 430 may store instructions that are executed to enable the processor 420 to output a first object associated with the execution of the first application and a second object associated with the execution of the second application on the screen of the first OS. And, when the second object of the first object and the second object is selected, the execution screen of the second application is output on at least a portion of the screen of the first OS. The screen of the first OS may be a screen displayed when the first OS is running (or being driven).

[0092] According to an embodiment, the instructions may be configured to enable the processor 420 to output the screen of the first OS to an external electronic device (e.g., an external display device) while the external electronic device is connected to the electronic device, and to output the execution screen of the second application output on at least a portion of the screen of the first OS to the external electronic device in response to the selection of the second object.

[0093] According to an embodiment, the instruction may be configured to enable the processor 420 to process data for executing the second application through a control application installed on the first OS when the second object is selected. The control application may use a container to process (or control) data for executing the second application. According to an embodiment, when a request for executing the second application is received, a new container may be generated, or an existing container may be used corresponding to the reception of the request.

[0094] According to an embodiment, the instructions may be configured to enable the processor 420 to generate a container for executing the second OS through a control application installed on the first OS in response to selection of the second object, and output an execution screen of the second application when the second operating system is executed through the generated container.

[0095] According to an embodiment, the instructions may be configured to enable the processor 420 to allocate any one of the at least one containers as a specific container for executing the second OS through a control application installed on the first OS in response to selection of the second object, and execute the second OS through the allocated specific container while outputting an execution screen of the second application.

[0096] According to an embodiment, the instructions may be configured to enable the processor 420 to output an object for executing the second OS on the screen of the first OS, and execute the second OS corresponding to selection of the object for executing the second OS.

[0097] According to an embodiment, the instructions may be configured to enable the processor 420 to execute a first application based on the first OS on the first OS when a first object among a first object and a second object is selected, and, when a second object is selected while outputting the execution screen of the first application, output the execution screen of the second application to occupy all or part of the execution screen of the first application corresponding to the selection of the second object.

[0098] According to an embodiment, the second application may be a package program that is distributed from an external server (e.g., an application store) and is executable on the second OS. According to an embodiment, the package program may include at least one of a package name of the second application, permission information, and target package information about the second OS necessary for executing the second application on the screen of the first OS. According to an embodiment, the execution screen of the second application is configured based on the target package information about the second OS.

[0099] According to an embodiment, the first OS may be an Android OS, and the second OS may be a Linux OS.

[0100] Figure 5 5 is a view illustrating an example screen for controlling execution of a heterogeneous OS on an electronic device according to an embodiment of the present disclosure.

[0101] Reference Figure 5 , the electronic device 501 may output a screen of the first OS, which may be a screen in a state where the first OS is executed (or driven). According to an embodiment, the screen of the first OS may be configured based on graphic data provided from the first OS. For example, Figure 5 As shown, the home screen 560 may be output on the screen of the first OS. When an object associated with a first application operable based on the first OS is selected, the screen of the first OS may include an execution screen of the first application. The execution screen of the first application may occupy all or part of the home screen 560. When the electronic device 501 is powered on and the first OS is running, the home screen 560 may be displayed on the display (e.g., Figure 1 The display device 160 or Figure 4The home screen 560 may include an object (e.g., an icon) associated with a first application operable based on a first OS, an object 570 for driving a second OS different from the first OS, and an object 590 associated with at least one second application operable based on the second OS. The object 570 for driving the second OS may be a shortcut icon for executing an application driven using the second OS. The object 570 for driving the second OS may be formed and displayed in the form of an icon formed of an image, text, a photo, or a combination thereof.

[0102] According to an embodiment, at least one of the first application, the application for driving the second OS, or the second application may include an application stored in the electronic device 501 by the manufacturer of the electronic device 501. According to an embodiment, at least one of the application for driving the second OS and the second application may include an application downloaded from an external server (e.g., an application store) that sells applications to the electronic device 501.

[0103] In response to the user selection for driving the second OS on the object 570, the electronic device 501 can drive the second OS. In response to the selection of the object 590 associated with at least one application operable based on the second OS, the electronic device 501 can obtain data required by the application related to the object 590 selected by the container 315 in the control application 231.

[0104] For example, when a user of an electronic device selects a Linux image, such as When the screen of the Linux OS is displayed, the control application 231 of the Android OS can be used.

[0105] Fig. 6A and Figure 6B is a view illustrating an operating environment of an electronic device according to various embodiments of the present disclosure.

[0106] Reference Fig. 6A , the electronic device 601 may be connected to an external electronic device (eg, a display device) 602. Since the electronic device 601 is a mobile device, such as a smart phone, the size of the touch screen display may be limited.

[0107] like Fig. 6A As shown, the electronic device 601 can be connected to the external electronic device 602 via, for example, a USB connector, a USB-C connector or other input / output interfaces. Fig. 6AAn example is shown in which the electronic device 601 is connected to the external electronic device 602 via the input / output interface 630, but the embodiments of the present disclosure are not limited thereto, and the electronic device 601 may be connected to the external electronic device 602 via a relay device, such as a docket station, and may be wirelessly connected to the external electronic device 602, such as Figure 6B shown.

[0108] Reference Figure 6B , the electronic device 601 can communicate with the user through a communication module (eg, Figure 1 The communication module 190) is connected to the external electronic device 602.

[0109] When the electronic device 601 is connected to the external electronic device 602, the electronic device 601 can output a screen through the external electronic device 602. The electronic device 601 can reconfigure the screen displayed on the display of the electronic device 601 and output the reconfigured screen through the external electronic device 602. The electronic device 601 can provide a user interface or user experience similar to that provided when a desktop computer is used for a user through the external electronic device 602.

[0110] According to an embodiment, the electronic device 601 can execute multiple OSs at the same time, and can display multiple OSs on the screen at the same time. For example, the electronic device 601 can execute Android OS and Linux OS at the same time, and display the first window 610 and the second window 620, such as Fig. 6A and 6B The electronic device 601 may display a first window 610 and / or a second window 620, which may occupy all or part of a screen outputted through the external electronic device 602 to display an execution screen of an application.

[0111] According to an embodiment, when the electronic device 601 is connected to the external electronic device 602, an operation (e.g., dex) for outputting data from the electronic device 601 may be automatically performed through the screen of the external electronic device 602. For example, when dex is automatically performed, a screen having a layout similar to that of a desktop window or a mirrored screen may be displayed on the external electronic device 602.

[0112] According to an embodiment, when the electronic device 601 is connected to the external electronic device 602, the electronic device 601 may display an object for executing the second OS and objects related to a plurality of applications included in the external electronic device 602 in order to communicate with the external electronic device 602. Figure 5 A first application operating based on a first OS and a second application operating based on a second OS are shown in a similar manner.

[0113] The electronic device 601 may be connected to an external input device (eg, a keyboard or a mouse) by wire or wirelessly, and may receive user input through the external input device, or may receive user input through a touch screen display of the electronic device 601 .

[0114] According to an embodiment, the external electronic device 602 may be various external devices connectable to the electronic device 601. For example, the external electronic device 602 may include a desktop computer, an external monitor, a television (TV), a portable computer, or a personal computer.

[0115] Figure 7 700 is a flowchart illustrating the operation of an electronic device for controlling the execution of a heterogeneous OS according to an embodiment of the present disclosure. The operation method may include operations 710 to 740. Each step / operation of the operation method may be performed by at least one electronic device (e.g., Figure 1 or Figure 4 electronic device 101 or 401) or at least one processor (e.g., Figure 1 or Figure 2 According to an embodiment, at least one of operations 710 to 740 may be omitted or changed in order, or other operations may be added.

[0116] Reference Figure 7 In operation 710, the electronic device may include a plurality of applications including a first application operating based on a first OS and a second application operating based on a second OS.

[0117] In operation 720, the electronic device may output a first object associated with the execution of the first application and a second object associated with the execution of the second application on the screen of the first OS. According to an embodiment, various applications depending on each OS driver may be downloaded and pre-stored from an external server (e.g., an application store). Figure 7 An example is shown in which a second object associated with the execution of a second application is displayed together with the first object, but the second application may be an application installed in real time through an application search process and a download process. According to an embodiment, the second application may be a package program distributed from an external server, which will be installed on an electronic device based on the first OS when the first OS is running and is executable on the second OS. For example, the package program may be an installation file of the second application, and may include at least one of a package name of the second application necessary for executing the second application while the first OS is running, permission information, and target package information about the second OS.

[0118] In operation 730, the electronic device may determine whether the second object of the first object and the second object is selected. When the second object is selected, the electronic device may output an execution screen of the second application on at least a portion of the screen of the first OS in operation 740. According to an embodiment, although the second application operates based on the second OS, the first OS may continue to run in the background.

[0119] According to an embodiment, the operation of outputting the execution screen of the second application may include: when an external electronic device (e.g., an external display device) is connected to the electronic device, outputting the screen of the first OS to the external electronic device, and corresponding to the selection of the second object, outputting the execution screen of the second application output on at least a portion of the screen of the first OS to the external electronic device.

[0120] According to an embodiment, the method may further include: when the second object is selected, processing data for executing the second application through the control application installed on the first OS. The control application may use the container to process (or control) the data for executing the second application. According to an embodiment, when a request for executing the second application is received, a new container may be generated, or an existing container may be used corresponding to the reception of the request.

[0121] According to an embodiment, the method may further include generating a container for executing the second OS through the control application installed on the first OS in correspondence with the selection of the second object, and outputting an execution screen of the second application when the second OS is executed through the generated container.

[0122] According to an embodiment, the method may further include outputting an object for executing the second OS on a screen of the first OS, and executing the second OS through the generated container corresponding to a selection of the object for executing the second OS.

[0123] According to an embodiment, the operation of outputting the execution screen of the second application may include, when a first object among the first object and the second object is selected, executing a first application based on the first OS on the first OS, and when a second object is selected while outputting the execution screen of the first application, outputting the execution screen of the second application to occupy all or part of the execution screen of the first application corresponding to the selection of the second object.

[0124] Therefore, when the user selects the first application again while the execution screen of the second application is displayed, the execution screen of the first application can be output together with the execution screen of the second application. For example, by clicking an icon related to Linux in the Android background, it can be displayed to the user as if the Linux package is directly executed on Android. Therefore, by clicking an application actually running on Linux, the user can have the same user experience as when using an application running on Android through the Linux execution screen displayed on the Android screen.

[0125] According to an embodiment, the second application may be a program package distributed from an external server and executable on the second OS.

[0126] According to an embodiment, the package program may include at least one of a package name of the second application, permission information, and target package information about the second OS necessary for executing the second application on the screen of the first OS.

[0127] According to an embodiment, the execution screen of the second application is configured based on the target package information about the second OS.

[0128] As described above, according to the embodiments, it is possible to simultaneously access applications based on different OSs on the same screen (eg, the screen of the host OS) while being easily accessible by a single click, thereby improving user convenience.

[0129] Figure 8 8 is a flowchart 800 showing a process of obtaining a Linux package according to an embodiment of the present disclosure. The process of obtaining a Linux package may include operations 811 to 826. According to an embodiment, at least one order of operations 811 to 826 may be omitted or changed, or other operations may be added.

[0130] Reference Figure 8 , electronic devices (e.g. Figure 1 Electronic equipment 101 or Figure 4 The electronic device 401) can download an application from an external server (eg, an application store) and install the application in operation 811. Figure 8 An example is shown in which the application downloader 801 is a component for downloading an application, and this operation can be performed by a processor (eg, Figure 1 The processor 120 or Figure 2 The downloaded application may be executed by the processor 420 of the guest OS or by a component responsible for the communication, but each is not limited thereto. According to an embodiment, the downloaded application may be an application based on the guest OS operation. For example, when the guest OS is a Linux OS, the downloaded application may be referred to as a Linux package application.

[0131] When a Linux package application is downloaded, a shortcut icon for executing the Linux-based application may be generated on a home screen of the electronic device.

[0132] According to an embodiment, an external server (e.g., an application store) may distribute all data required to execute a guest OS (e.g., the second OS 220) and a downloaded application in the form of a package program. Therefore, when a user selection for executing an application corresponding to the generated shortcut icon is input in operation 812, the electronic device may start the downloaded application corresponding to the user selection in operation 813. In operation 814, the electronic device may broadcast the application package information together with the target Linux package information to the control application 802 installed on the running host OS (e.g., the first OS 230). According to an embodiment, the control application 802 may be a LoD application.

[0133] For example, the application may be a package program distributed from an external server, which is to be installed on an electronic device based on the host OS when the host OS is running, and can be executed on the guest OS. For example, the package program may be an installation file for the application, and may include at least one of the following: the package name of the application, permission information, and target package information about the guest OS required to execute the application when the host OS is running. The Linux package application downloaded from the external server may have permission information for broadcasting to the control application 802.

[0134] The control application 802 of the electronic device may determine whether permission information exists based on package information about the downloaded application executable on the guest OS, and identify whether to allow in operation 815. The permission information may be permission to allow the guest OS to access an external electronic device or use a network.

[0135] The control application 802 of the electronic device may be executed during broadcasting and may be connected to the daemon 803 using socket communication in operation 816. According to an embodiment, the daemon 803 may be referred to as an NST daemon. For example, the daemon 803 may correspond to Figure 3 daemon 233.

[0136] After connecting with the daemon 803, in operation 817, the control application 802 of the electronic device may send configuration information including the received target Linux package information, for example, information such as a file path (e.g., "xenial.img") to the daemon 803. The file xenial.img may be an image file in the Linux OS used as a guest OS on the electronic device, and may be an image of the Ubuntu 16.04 version (i.e., xenial).

[0137] In operation 818, the daemon 803 may mount the image corresponding to the selected application through the display manager 804 using the configuration information such as the xenial.img path, and update the script (eg, xstartup) for mounting the image using the target Linux package information.

[0138] In operation 819 , upon receiving a completion message indicating completion of an operation (eg, script update) from the daemon program 803 , the control application 802 may send a start request message to the daemon program 803 in operation 820 .

[0139] In operation 821, after receiving the start request message, the daemon 803 can execute the virtual network computing (VNC) server of the display manager 804 through the script. In operation 822, the VNC server can execute the necessary target package (e.g., Linux package) through the updated script information and the screen configuration process for executing the application. In operation 823, the control application 802 can communicate with the VNC server for display or input. Therefore, the user can execute the Linux package he or she needs by clicking an icon on the Android background screen. Thereafter, when the user terminates the execution of the application, in operation 824, the control application 802 can send a termination request to the daemon 803 accordingly. When the control application 802 is terminated, the daemon 803 can send a termination request to the VNC server of the display manager 804, and in operation 825, an organization can be performed to uninstall the image. Therefore, in operation 826, the connection between the control application 802 and the daemon 803 can be released.

[0140] The process of downloading and executing a Linux-based application has been described above, and in the case where, for example, the control application 802 among components required to perform an operation is not installed on the electronic device, the control application 802 may be downloaded from an external server.

[0141] Fig. 9 is a flowchart 900 illustrating the operation of an electronic device for executing Linux according to an embodiment of the present disclosure.

[0142] Fig. 9 An example preparation operation before executing Linux is shown, and the operation method may include operations 910 to 950. Each step / operation of the operation method may be performed by an electronic device (e.g., Figure 1 or Figure 4 At least one of the electronic devices 101 or 401) or at least one processor of the electronic device (for example, Figure 1 or Figure 2According to an embodiment, at least one of operations 910 to 950 may be omitted or changed in order, or other operations may be added.

[0143] Reference Fig. 9 , the electronic device may determine whether a Linux package object is selected in operation 910. For example, the Linux package object may be an icon indicating a downloaded application. When the Linux package object is selected, it may be determined in operation 920 whether a control application has been installed in the Android OS to perform control and communication through the Linux OS. When no control application has been installed, it may be downloaded from an external server.

[0144] When the control application is installed, the electronic device may start the downloaded application in operation 930 to obtain target Linux package information. Figure 3 Control Application 231 or Figure 8 The control application 802 of the embodiment of the present invention may receive the target Linux package information corresponding to the Linux package icon clicked by the user. Thereafter, in operation 940, the electronic device may configure the screen based on the target Linux package information. For example, the electronic device may install the Xenial image and update the script based on the target Linux package information. Then, in operation 950, the electronic device may execute the VNC server to run the script. Therefore, an environment for executing the Linux package application based on the updated script information may be configured.

[0145] Fig.10 1000 is a view illustrating an example screen configuration for simultaneously executing heterogeneous OSs according to an embodiment of the present disclosure.

[0146] Reference Fig.10 , when placing electronic devices (e.g. Figure 1 Electronic equipment 101 or Figure 4 The electronic device 401 is connected to an external electronic device (eg, Fig. 6A and 6B When an external electronic device 602 is displayed, a main screen 1010 is displayed on the external electronic device.

[0147] Reference Fig.10, when the electronic device detects a connection with an external electronic device (e.g., an external display device), the normal mode may switch to the extended mode. According to an embodiment, the extended mode may be a mode in which, for example, a dex program is executed, and may refer to a mode in which a screen is displayed on an external electronic device or a screen is displayed on a display of the electronic device and an external electronic device. According to an embodiment, the normal mode may refer to a mode in which, when an external electronic device is not connected to the electronic device, only the display device (e.g., Figure 1 The display device 160 or Figure 4 The screen is displayed on the display 460).

[0148] When the screen is displayed on the external electronic device, the main screen 1010 of the external electronic device can provide a layout similar to a desktop window, and the displayed applications and system functions, settings, date or time can be the content displayed in the taskbar area 1050 at the bottom of the main screen 1010, just like in the taskbar of the window computer. For example, a web browsing window 1060 can be displayed through the main screen 1010 corresponding to a user input for executing a web browsing application. The user can execute all applications installed on the electronic device by selecting an object indicating an application displayed on the main screen 1010. The running application and the running OS can be displayed in the form of icons in the taskbar area 1050.

[0149] According to an embodiment, various objects, such as shortcut icons for executing applications available in the electronic device, may be sorted and displayed on the home screen 1010. Fig.10 An example layout consisting of a first area and a second area is shown, wherein an object 1020 for executing an application based on a first OS operation is arranged in the first area, and an object 1040 for executing an application based on a second OS operation is arranged in the second area, but the layout is not limited thereto. According to an embodiment, the home screen 1010 may further include a third area in which an object 1030 for entering the second OS is arranged. According to an embodiment, the object 1030 for entering the second OS may be an object for running a Linux OS.

[0150] According to an embodiment, when a user input for selecting at least one of the objects 1040 to execute an application based on the second OS is received, the application operating on the second OS corresponding to the selected object can be executed while the second OS is running at the same time. In this way, even if only one object is selected to execute an application based on Linux, the user can run the Linux OS and use the application based on Linux without having to select to enter Linux separately.

[0151] According to an embodiment, in response to selecting an object for executing an application based on the second OS operation, the electronic device may generate a container (eg, Figure 3 The electronic device may generate a container 315 for executing the second OS and use the generated container to provide data required for executing the second OS to the control application 231 of the first OS 230. Therefore, the electronic device may simultaneously output an execution screen of an application based on the second OS operation on a screen based on the first OS operation.

[0152] According to an embodiment, an object for executing an application and an object for entering a second OS may be arranged in a matrix of columns and rows without distinguishing between OSes. Therefore, a user does not have to distinguish between Android applications and Linux applications, but can click and run a Linux application on the same screen just as he clicks on an Android application.

[0153] Fig.11 1100 is a view illustrating an example screen corresponding to selecting an object for executing a second OS according to an embodiment of the present disclosure.

[0154] Reference Fig.11 , which shows an example of displaying an object 1030 for entering the second OS on the main screen 1010. According to an embodiment, the object 1030 for entering the second OS may be an object for running the Linux OS. When the user selects the object 1030 for entering the second OS, the execution screen 1110 of the Linux OS may be displayed. The execution screen 1110 of the Linux OS may be displayed to hide all or part of the main screen 1010.

[0155] Fig.12 1200 is a view illustrating an example screen corresponding to selection of an object for executing a second application based on a second OS according to an embodiment of the present disclosure.

[0156] Fig.12 An example of displaying an object 1040 for executing at least one application that can be run on the second OS on the main screen 1010 is shown. When the user selects any one of the objects 1040, the execution screen 1220 of the application based on the Linux OS operation may be displayed. According to an embodiment, when the execution screen 1060 of the Android-based application is displayed, the application execution screen 1220 may be displayed to hide at least a portion of the Android-based application execution screen 1060. The application execution screen 1220 may be expanded to occupy the entire main screen 1010.

[0157] Reference Fig.12, which shows an example in which a Linux-based application execution screen 1220 and an Android-based application execution screen 1060 are displayed on a main screen 1010 which is an Android execution screen. When a Linux-based application is executed, the main screen 1010 may be Fig.11 The Linux execution screen 1110 is replaced, and the Linux-based application execution screen 1220 may then be displayed.

[0158] In this way, although applications of different OS are running, the execution screens of the applications can be displayed on the main screen 1010 at the same time, so the applications running on Linux can be used just like using applications in the Android environment. Therefore, user convenience can be enhanced.

[0159] Fig.13 is a diagram illustrating an example of comparing an execution screen of a first application operating based on a first OS and an execution screen of a second application operating based on a second OS according to an embodiment of the present disclosure.

[0160] Reference Fig.13 , when a user selects an icon (e.g., Debian package (.deb)) 1320 on a background screen 1310 displayed on an electronic device, such a screen may be displayed, just like executing a Linux package on Android. For example, a first execution screen 1330 is an example screen of an application executed on a Linux OS, and a second execution screen 1340 is an example screen of an application executed based on an Android OS. Fig.13 As shown, when a user clicks on an icon (e.g., a Debian package (.deb)) 1320, the Debian package is able to provide an execution screen similar to the second execution screen 1340, although operating based on the Linux OS, so that the user can easily use applications of different OSes just as he or she uses Android applications.

[0161] Figures 14 to 19 1400 , 1500 , 1600 , 1700 , 1800 , and 1900 are views illustrating respective example screens when heterogeneous OSs are simultaneously executed according to an embodiment.

[0162] Fig.14 Shown are example application execution screens based on different OSs displayed on an external electronic device connected to the electronic device.

[0163] Reference Fig.14, various application execution screens of multiple different OSs, such as a first window 1420, a second window 1430, and a third window 1440, may be simultaneously displayed on the main screen 1410. For example, an execution screen of a My Files application of the Android OS, an execution screen of a Gallery application of the Android OS, and an execution screen of a Gimp application of the Linux OS may be simultaneously displayed in the first window 1420, the second window 1430, and the third window 1440, respectively.

[0164] Reference Fig.15 , various application execution screens of multiple different OSs, such as a first window 1520, a second window 1530, and a third window 1540, may be simultaneously displayed on the main screen 1510. For example, an execution screen of an Internet application of the Android OS, an execution screen of a notepad application of the Android OS, and an execution screen of an office application (e.g., Libreoffice) of the Linux OS may be simultaneously displayed in the first window 1520, the second window 1530, and the third window 1540, respectively.

[0165] Reference Fig.16 , various application execution screens of multiple different OSs, such as a first window 1620 and a second window 1630, can be displayed simultaneously on the main screen 1610. For example, the execution screen of the shared folder application of the Android OS and the execution screen of the shared folder application of the Linux OS can be displayed in the first window 1620 and the second window 1630, respectively, at the same time.

[0166] Reference Fig.17 , various application execution screens of multiple different OSs, such as a first window 1720 and a second window 1730, may be simultaneously displayed on the main screen 1710. For example, an execution screen of a video / audio application of an Android OS (e.g., YouTube) and an execution screen of a video / audio application of a Linux OS may be simultaneously displayed in the first window 1720 and the second window 1730, respectively.

[0167] Reference Fig.18 , various application execution screens of multiple different OSs, such as a first window 1820 and a second window 1830, can be simultaneously displayed on the main screen 1810. For example, the execution screen of the Linux OS can be displayed on the main screen 1810. Fig.18 The first window 1820 on the full screen is shown. After clicking the input window in the Linux OS, an Android-based keyboard may be displayed in the second window 1830.

[0168] Although Fig.18An example is shown in which a keyboard is displayed in a small size on at least a portion of the first window 1820 and the second window 1830, and the first window 1820 displays an execution screen of the Linux OS and is displayed on the entire screen, but Fig.19 As shown, by clicking an input window on a first window 1920 as an execution screen of a Linux OS displayed on a main screen 1910, an Android-based keyboard 1930 may be displayed in a larger size.

[0169] As described above, according to various embodiments of the present disclosure, a user can use Linux applications on Android via a screen for selecting various applications operable on a guest OS on a screen based on a host OS, and thus can use Linux applications on the screen with the same user experience as that of an Android environment. Therefore, more user convenience can be achieved.

[0170] The electronic device according to various embodiments may be one of various types of electronic devices. The electronic device may include, for example, a portable communication device (e.g., a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a household appliance. According to an embodiment of the present disclosure, the electronic device is not limited to those electronic devices described above.

[0171] It should be understood that the various embodiments of the present disclosure and the terms used therein are not intended to limit the technical features set forth herein to specific embodiments, but include various changes, equivalents or alternative forms for the corresponding embodiments. For the description of the accompanying drawings, similar reference numerals may be used to refer to similar or related elements. It will be understood that the nouns in the singular form corresponding to the term may include one or more things unless the relevant context clearly indicates otherwise. As used herein, each of the phrases such as "A or B", "at least one of A and B", "at least one of A or B", "A, B or C", "at least one of A, B and C" and "at least one of A, B or C" may include all possible combinations of items listed together with the corresponding one of the multiple phrases. As used herein, terms such as "1st" and "2nd" or "first" and "second" may be used to simply distinguish the corresponding component from another component, and do not limit the component in other aspects (e.g., importance or order). It will be understood that if an element (e.g., a first element) is referred to as being “combined with another element (e.g., the second element)”, “combined to another element (e.g., the second element)”, “connected with another element (e.g., the second element)”, or “connected to another element (e.g., the second element)” when the terms “operably” or “communicatively” are used or when the terms “operably” or “communicatively” are not used, it means that the element may be directly (e.g., wired) connected to the other element, wirelessly connected to the other element, or connected to the other element via a third element.

[0172] As used herein, the term "module" may include units implemented in hardware, software, or firmware, and may be used interchangeably with other terms (e.g., "logic," "logic block," "portion," or "circuit"). A module may be a single integrated component adapted to perform one or more functions or a minimum unit or portion of the single integrated component. For example, according to an embodiment, a module may be implemented in the form of an application specific integrated circuit (ASIC).

[0173] The various embodiments described herein may be implemented as software (e.g., program 140) including one or more instructions stored in a storage medium (e.g., internal memory 136 or external memory 138) that can be read by a machine (e.g., electronic device 101). For example, under the control of a processor, a processor (e.g., processor 120) of the machine (e.g., electronic device 101) may call at least one of the one or more instructions stored in the storage medium and execute the at least one instruction with or without the use of one or more other components. This enables the machine to operate to perform at least one function according to the at least one instruction called. The one or more instructions may include code generated by a compiler or code that can be run by an interpreter. A machine-readable storage medium may be provided in the form of a non-transitory storage medium. Among them, the term "non-transitory" only means that the storage medium is a tangible device and does not include a signal (e.g., an electromagnetic wave), but the term does not distinguish between data being semi-permanently stored in a storage medium and data being temporarily stored in a storage medium.

[0174] According to an embodiment, the method according to various embodiments of the present disclosure may be included and provided in a computer program product. The computer program product may be traded between a seller and a buyer as a product. The computer program product may be published in the form of a machine-readable storage medium (e.g., a compact disk read-only memory (CD-ROM)), or may be published online (e.g., downloaded or uploaded) via an application store (e.g., Play StoreTM), or may be distributed (e.g., downloaded or uploaded) directly between two user devices (e.g., smart phones). If published online, at least part of the computer program product may be temporarily generated, or at least part of the computer program product may be at least temporarily stored in a machine-readable storage medium (such as a manufacturer's server, an application store's server, or a memory of a forwarding server).

[0175] According to various embodiments, each component (e.g., module or program) in the above-mentioned components may include a single entity or multiple entities. According to various embodiments, one or more components in the above-mentioned components may be omitted, or one or more other components may be added. Alternatively or additionally, multiple components (e.g., module or program) may be integrated into a single component. In this case, according to various embodiments, the integrated component may still perform the one or more functions of each component in the multiple components in the same or similar manner as a corresponding component in the multiple components before integration. According to various embodiments, the operations performed by a module, program or another component may be performed sequentially, in parallel, repeatedly or in a heuristic manner, or one or more operations in the operations may be run or omitted in different orders, or one or more other operations may be added.

[0176] According to an embodiment, a storage medium is provided that stores commands configured to be executed by at least one processor to enable the at least one processor to perform at least one operation, the at least one operation including outputting a first object associated with execution of a first application based on the first OS operation and a second object associated with execution of a second application based on the second OS operation on a screen of a first OS, receiving a selection of the second object between the first object and the second object, and outputting an execution screen of the second application on at least a portion of the screen of the first OS in response to the selection of the second object.

[0177] As is apparent from the foregoing description, various embodiments of the present disclosure may provide intercommunication between heterogeneous OSes when using or manipulating applications on the heterogeneous OSes, thereby expanding not only the usability of the smartphone's own functions but also the usability of the smartphone.

[0178] Various embodiments of the present disclosure may establish an environment in which applications based on different OSs may be simultaneously run on an electronic device (eg, a smart phone), resulting in greater convenience of use.

[0179] Various embodiments of the present disclosure enable Linux applications to run on electronic devices (eg, smart phones) based on Android and have the same user experience as the Android environment.

[0180] While the present disclosure has been shown and described with reference to various embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made without departing from the spirit and scope of the present disclosure as defined by the appended claims and their equivalents.

Claims

1. An electronic device, comprising: monitor; at least one processor; and a memory operably connected to the display and the at least one processor and configured to store a plurality of applications, including a first application configured to be executed using a first operating system (OS), a second application configured to be executed using a second OS, and a control application installed on the first OS and configured to process data based on the first OS and data based on the second OS via a container using a kernel of the first OS, The memory stores instructions that, when executed by the at least one processor, cause the electronic device to: displaying a first object and a second object on a screen of the first OS, wherein the first object is related to the execution of the first application and the second object is related to the execution of the second application, receiving a selection of a second object, In response to receiving a selection of the second object, generating a container for executing the second OS based on configuration information sent by a control application installed on the first OS, assigning data associated with the second OS to the container, The second OS is executed using the container, and while the second OS is executed using the container, an execution screen of the second application is displayed on a screen of the first OS via a control application installed on the first OS.

2. The electronic device according to claim 1, wherein: The instructions are also configured to cause the electronic device to perform the following operations: while the electronic device is connected to the external electronic device, displaying the screen of the first OS to the external electronic device; and In response to the selection of the second object, an execution screen of the second application is displayed to the external electronic device.

3. The electronic device according to claim 1, wherein: The instructions are also configured to cause the electronic device to perform the following operations: In response to the selection of the second object, generating a container for executing the second OS using the control application installed on the first OS, and While the second OS is executed using the container, an execution screen of the second application is output.

4. The electronic device according to claim 3, wherein: The instructions are also configured to cause the electronic device to perform the following operations: displaying a third object for executing the second OS on the screen of the first OS, and In response to selection of the third object, the second OS is executed using the container.

5. The electronic device according to claim 1, wherein: The instructions are also configured to cause the electronic device to perform the following operations: In response to selection of the second object, allocating a container in the pre-existing containers to execute the second OS using the control application installed on the first OS, and While the second OS is executed using the allocated container, an execution screen of the second application is displayed.

6. The electronic device according to claim 1, wherein: The instructions are also configured to cause the electronic device to perform the following operations: When the first object is selected, a first application based on the first OS is executed on the screen of the first OS, and When the second object is selected while the execution screen of the first application is displayed, the execution screen of the second application is displayed to occupy all or at least a portion of the execution screen of the first application.

7. The electronic device according to claim 1, in, The second application corresponds to a package program distributed from an external server to be executed on the second operating system, The package program includes a package name of the second application, at least one of permission information of the second OS required to execute the second application using the first OS and target package information, and Herein, the execution screen of the second application is configured based on the target package information of the second OS.

8. The electronic device according to claim 1, wherein: The first OS is an Android OS, and the second OS is a Linux OS.

9. A method for controlling execution in an electronic device, the method comprising: displaying a first object and a second object on a screen of a first operating system (OS), wherein the first object is associated with execution of a first application using the first OS and the second object is associated with execution of a second application using a second OS; receiving a selection of a second object; In response to receiving a selection of the second object, generating a container for executing the second OS based on configuration information sent by a control application installed on the first OS; assigning data associated with the second OS to the container; Execute the second OS using the container; and while executing the second OS using the container, display the execution screen of the second application on the screen of the first OS via a control application installed on the first OS and configured to use the kernel of the first OS to process data based on the first OS and data based on the second OS via the container.

10. The method according to claim 9, further comprising: while the electronic device is connected to the external electronic device, displaying the screen of the first OS to the external electronic device; and In response to the selection of the second object, an execution screen of the second application is displayed to the external electronic device.

11. The method according to claim 9, further comprising: In response to the selection of the second object, generating a container for executing the second OS using the control application installed on the first OS; and While the second OS is executed using the container, an execution screen of the second application is displayed.

12. The method according to claim 11, further comprising: displaying a third object for executing the second OS on the screen of the first OS, and In response to selection of the third object, the second OS is executed using the container.

13. The method according to claim 9, further comprising: In response to selection of the second object, allocating a container in the pre-existing containers to execute the second OS using the control application installed on the first OS; and While the second OS is executed using the allocated container, an execution screen of the second application is displayed.

14. The method according to claim 9, wherein: The output of the execution screen of the second application includes: When the first object is selected, a first application based on the first OS is executed on the screen of the first OS, and When the second object is selected while the execution screen of the first application is displayed, the execution screen of the second application is displayed to occupy all or at least a portion of the execution screen of the first application.

15. The method according to claim 9, in, The second application corresponds to a package program distributed from an external server to be executed on the second operating system, The package program includes a package name of the second application, at least one of permission information of the second OS required to execute the second application using the first OS and target package information, and Herein, the execution screen of the second application is configured based on the target package information of the second OS.

Citation Information

Patent Citations

  • User interaction support across cross-environment applications

    US20120089992A1

  • Duo operating system for android security, mobile device having the same, method of securing mobile device having the same

    US20180137308A1