Electronic device for executing multiple operating systems and control method thereof
By generating containers in electronic devices and executing different operating systems, dynamically allocating hardware resources, the problem that traditional devices cannot allocate resources between different OSes is solved, and high-quality service provision in multi-OS environments is achieved.
Patent Information
- Application Number
- CN201980064013.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-10-16
- Filing Date
- 2019-10-15
- Publication Date
- 2025-04-11
- Estimated Expiration
- 2039-10-15
AI Technical Summary
Traditional electronic devices cannot dynamically allocate hardware resources between different operating systems (OS), resulting in the inability to provide users with services related to programs running on different OSes.
By implementing a multi-OS execution environment in an electronic device, a container is generated using the kernel of the first OS, a second OS is executed, and a control application performs interface communication, dynamically allocating hardware resources to process program data on different OSes.
It realizes the execution of multiple operating systems on electronic devices without conflict, dynamic allocation of hardware resources, and provides high-quality services in multi-OS environments.
Smart Images

Figure CN112789597B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to an electronic device for executing multiple operating systems and a control method thereof. Background Art
[0002] Portable digital communication devices have become a must-have item for modern people. Customers want to receive various high-quality services anytime and anywhere. As the hardware resources of electronic devices used in daily life (e.g., various sensors, home appliances, or communication devices) are controlled by programs running on the electronic devices, a diversity of high-quality services can be provided.
[0003] The hardware resources included in the electronic device are controlled by the operating system executed on the electronic device. Stable allocation of hardware resources requires that there is no conflict between the hardware resources when the operating system (OS) is running. The electronic device needs to establish an environment in which the OS can run in a stable manner. Summary of the invention
[0004] Technical issues
[0005] In a conventional electronic device, one operating system (OS) (e.g., host OS) running on the electronic device allocates hardware resources (e.g., central processing unit (CPU), memory, or display) of the electronic device to programs running on the OS, and thus can provide services related to the running programs to the user. However, if a different OS (e.g., guest OS) is executed on the electronic device, since there is no function to allocate hardware resources of the electronic device to programs running on the different OS, services related to programs running on the different OS cannot be provided to the user.
[0006] The above information is presented as background information only to assist with an understanding of the present disclosure. No determination has been made, and no assertion is made, as to whether any of the above might be applicable as prior art with respect to the present disclosure.
[0007] Solution to the problem
[0008] According to aspects of the present disclosure, an electronic device is provided. The electronic device includes at least one first hardware device, at least one second hardware device, a first operating system (OS), a second OS different from the first OS, and at least one processor, the at least one processor being configured to control at least one first hardware device to process first data from a first program executed on the first OS, obtain a command for executing the second OS, generate a container for executing the second OS based on the kernel of the first OS in response to the command for executing the second OS, execute the second OS on the generated container, execute the second program on the second OS, obtain second data about the second program from the second OS via socket communication by a control application installed on the first OS, and control at least one second hardware device to process the second data about the second program based on the first OS using the installed control application.
[0009] According to another aspect of the present disclosure, a method for controlling an electronic device is provided. The method includes: controlling at least one first hardware device included in the electronic device to process first data from a first program executed on a first OS, obtaining a command for executing a second OS different from the first OS, generating a container for executing the second OS based on the kernel of the first OS in response to the command for executing the second OS, executing the second OS on the generated container, executing the second program on the second OS, obtaining second data about the second program from the second OS via socket communication through a control application installed on the first OS, and controlling at least one second hardware device included in the electronic device to process the second data about the second program based on the first OS using the installed control application.
[0010] According to another aspect of the present disclosure, an electronic device is provided. The electronic device includes a display, at least one processor operably connected to the display, and a memory operably connected to the at least one processor, wherein the memory stores instructions that are executed to enable the at least one processor to display on the display at least one first icon for executing each of at least one first application associated with a first OS and a second icon for executing a second OS different from the first OS, receive a first input for the second icon, display at least one third icon for executing each of at least one second application associated with the second OS on at least a portion of the display based on the first input, receive a second input for one of the at least one third icons, and display an execution screen of an application corresponding to the icon specified by the second input on at least a portion of the display based on the second input.
[0011] The embodiments of the present disclosure are not limited to the aforementioned objects, and those skilled in the art will easily understand other objects from the following detailed description in conjunction with the accompanying drawings.
[0012] Other aspects, advantages, and salient features of the present disclosure will become apparent to those skilled in the art from the following detailed description of various embodiments of the present disclosure, which is presented in conjunction with the accompanying drawings.
[0013] Advantageous Effects of the Invention
[0014] An aspect of the present disclosure is to solve at least the above-mentioned problems and / or disadvantages and to provide at least the following advantages. Therefore, an aspect of the present disclosure is to provide an electronic device and an operating method thereof, which can form an environment in which multiple OSs can be executed so that multiple OSs can be executed on the electronic device, and a control application running on one OS can be used to dynamically allocate hardware resources of the electronic device to programs executed on each of the multiple OSs (e.g., generate a container or allocate a namespace).
[0015] Another aspect of the present disclosure is to provide an electronic device and a method of controlling the electronic device in which a plurality of different OSs can be executed without any conflict between the different OSs.
[0016] 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. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] 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:
[0018] Figure 1 is a block diagram showing an electronic device in a network environment according to an embodiment of the present disclosure;
[0019] Figure 2A is a view illustrating a method of controlling an electronic device that executes a first OS and a second OS of the electronic device according to an embodiment of the present disclosure;
[0020] Figure 2B is a diagram showing an exemplary system structure of an electronic device according to an embodiment of the present disclosure;
[0021] Figure 3 is a flowchart illustrating an exemplary control method of executing a first OS and a second OS of an electronic device according to an embodiment of the present disclosure;
[0022] Figure 4 is a diagram showing an exemplary system structure of an electronic device according to an embodiment of the present disclosure;
[0023] Figure 5A and Figure 5BAn exemplary electronic device and an exemplary external electronic device according to an embodiment of the present disclosure are shown;
[0024] Figure 6 is a flowchart illustrating an exemplary operation for executing a second OS of an electronic device according to an embodiment of the present disclosure;
[0025] Figure 7 is a diagram showing an exemplary system structure of an electronic device according to an embodiment of the present disclosure;
[0026] Figure 8 is a flowchart illustrating an exemplary operation of controlling a second program executed on a second OS of an electronic device according to an embodiment of the present disclosure;
[0027] Fig. 9 is a diagram showing an exemplary system structure of an electronic device according to an embodiment of the present disclosure;
[0028] Fig.10 is a view showing an exemplary screen displayed on an external display connected to an electronic device, or a view showing an exemplary screen displayed on a display of an electronic device according to an embodiment of the present disclosure;
[0029] Fig.11 is a view showing a screen of an electronic device or a screen of an external electronic device according to an embodiment of the present disclosure;
[0030] Fig.12 is a view illustrating an exemplary method of controlling an electronic device to allow a first OS and a second OS to share an external storage device connected to the electronic device according to an embodiment of the present disclosure;
[0031] Fig.13 is a flowchart illustrating an exemplary operation of obtaining data related to a second program of an electronic device and transmitting the obtained data to a second OS according to an embodiment of the present disclosure;
[0032] Fig.14 is a diagram showing an exemplary system structure of an electronic device according to an embodiment of the present disclosure;
[0033] Fig.15 is a view showing execution screens of a first program and a second program according to an embodiment of the present disclosure;
[0034] Fig.16 is a flowchart illustrating an exemplary operation of an electronic device obtaining data related to a second program and executing an event related to the obtained data recognized by a first OS according to an embodiment of the present disclosure;
[0035] Fig.17is a diagram showing an exemplary system structure of an electronic device according to an embodiment of the present disclosure;
[0036] Fig.18 is a view illustrating an exemplary operation of an electronic device that executes an event recognized in a first OS of the electronic device according to an embodiment of the present disclosure;
[0037] Fig.19 is a view showing an exemplary operation of generating a user-defined event of an electronic device according to an embodiment of the present disclosure;
[0038] Fig. 20 is a flowchart illustrating an exemplary operation of an electronic device that allows data related to at least one program executed on a first OS to be processed on a second OS according to an embodiment of the present disclosure;
[0039] Fig.21 is a diagram showing an exemplary system structure of an electronic device according to an embodiment of the present disclosure;
[0040] Fig. 22 is a diagram illustrating an exemplary operation of an electronic device that allows data related to at least one program executed on a first OS to be processed on a second OS according to an embodiment of the present disclosure; and
[0041] Fig.23 is a view illustrating an exemplary operation of an electronic device that allows data related to at least one program executed on a first OS to be processed on a second OS according to an embodiment of the present disclosure.
[0042] Throughout the drawings, like reference numerals will be understood to refer to like parts, components and structures. DETAILED DESCRIPTION
[0043] 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 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, for the sake of clarity and brevity, descriptions of well-known functions and structures may be omitted.
[0044] The words and phrases used in the following description and claims are not limited to the literal 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.
[0045] 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.
[0046] Hereinafter, embodiments of the present disclosure are described with reference to the accompanying drawings. However, it should be understood that the present disclosure is not limited to the embodiments and terms used herein, and all changes and / or equivalents or substitutions thereof also belong to the scope of the present disclosure. Throughout the specification and the accompanying drawings, the same or similar reference numerals may be used to represent the same or similar elements. It should be understood that, unless the context clearly specifies otherwise, the singular forms "one", "a kind of" and "the" include plural references. As used herein, the phrases "A or B" or "at least one of A and / or B" may include all possible combinations of A and B. As used herein, the phrases "first" and "second" may modify various components, regardless of importance and / or order, and are used to distinguish a component from another component without limiting the component. It should be understood that when an element (e.g., a first element) is referred to as being (operably or communicatively) “coupled to” or “coupled to” or “connected to” or “connected to” or “connected to” another element (e.g., the second element), it may be coupled or connected to the other element directly or via a third element, or coupled or connected to the other element directly or via a third element.
[0047] As used herein, the term "configured to" may be used interchangeably with other terms, such as "suitable for," "capable of," "modified to," "made to," "adapted to," "able to," or "designed to" in the context of hardware or software. Conversely, the term "configured to" may mean that a device can perform an operation together with another device or component. For example, the term "a processor configured (or set) to perform A, B, and C" may mean a general-purpose processor (e.g., a CPU or application processor) that can perform operations by executing one or more software programs stored in a memory device, or a special-purpose processor (e.g., an embedded processor) for performing operations.
[0048] For example, examples of electronic devices or external electronic devices according to embodiments of the present disclosure may include at least one of a smart phone, a tablet personal computer (PC), a mobile phone, a video phone, an e-book reader, a desktop PC, a laptop computer, a netbook computer, a workstation, a server, a personal digital assistant (PDA), a portable multimedia player (PMP), an MP3 player, a medical device, a camera, or a wearable device. Wearable devices may include at least one of an accessory device (e.g., a watch, a ring, a bracelet, an anklet, a necklace, glasses, contact lenses, or a head-mounted device (HMD)), a fabric or clothing integrated device (e.g., electronic clothing), a body-attached device (e.g., a skin pad), or a body-implantable device. In some embodiments, examples of electronic devices or external electronic devices may include at least one of a television, a digital video disk (DVD) player, an audio player, a refrigerator, an air conditioner, a cleaner, an oven, a microwave oven, a washing machine, a dryer, an air purifier, a set-top box, a home automation control panel, a security control panel, a media box, a game console, an electronic dictionary, an electronic key, a portable camera, or an electronic photo frame.
[0049] According to an embodiment of the present disclosure, the electronic device or external electronic device may include at least one of various medical devices (for example, various portable medical measuring devices (blood sugar measuring devices, heart rate measuring devices or body temperature measuring devices), magnetic resonance angiography (MRA) devices, magnetic resonance imaging (MRI) devices, computed tomography (CT) devices, imaging devices, or ultrasonic devices), navigation devices, global navigation satellite system (GNSS) receivers, event data recorders (EDRs), flight data recorders (FDRs), car infotainment devices, navigation electronic devices (such as navigation navigation devices or gyroscopes), avionics equipment, security equipment, vehicle head units, industrial or home robots, drones, automated teller machines (ATMs), point-of-sale (POS) devices or Internet of Things (IoT) devices (for example, light bulbs, various sensors, sprinklers, fire alarms, thermostats, street lights, ovens, fitness equipment, hot water tanks, heaters or boilers). According to various embodiments of the present disclosure, examples of electronic devices or external electronic devices may be at least one of a part of furniture, a building / structure or a vehicle, an electronic board, an electronic signature receiving device, a projector, or various measuring devices (e.g., a device for measuring water, electricity, natural gas, or electromagnetic waves). According to an embodiment of the present disclosure, the electronic device or at least one or more external electronic devices may be flexible, or may be a combination of the electronic devices listed above. According to an embodiment of the present disclosure, the electronic device or at least one or more external electronic devices are not limited to the embodiments listed above. As used herein, the term "user" may refer to a human or another device using an electronic device or at least one or more external electronic devices (e.g., an artificial intelligence electronic device).
[0050] Figure 1 1 is a block diagram illustrating an electronic device 101 in a network environment 100 according to various embodiments. 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).
[0051] 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 process or calculate various data. According to one 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 resultant 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 .
[0052] 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 of the components of the electronic device 101 (e.g., display device 160, sensor module 176, or communication module 190) other than 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 of the components of the electronic device 101 (e.g., display device 160, sensor module 176, or communication module 190) 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.
[0053] 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. The non-volatile memory 134 may include an internal memory 136 and / or an external memory 138.
[0054] 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 .
[0055] The input device 150 may receive commands or data to be used by other components (eg, the processor 120) of the electronic device 101 from outside the electronic device 101 (eg, a user). The input device 150 may include, for example, a microphone, a mouse, or a keyboard.
[0056] 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.
[0057] 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.
[0058] The audio module 170 can convert sound into an electrical signal, or vice versa. According to an embodiment, the audio module 170 can obtain sound through the input device 150, or output sound through the sound output device 155 or an external electronic device (e.g., electronic device 102) (e.g., a speaker or earphone) directly or wirelessly connected to the electronic device 101.
[0059] 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.
[0060] 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.
[0061] 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).
[0062] 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 or her 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.
[0063] 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.
[0064] 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).
[0065] 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.
[0066] 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 through the established communication channel. The communication module 190 may include one or more communication processors that can operate independently from the processor 120 (e.g., an application processor (AP)) and support 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.
[0067] 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 may include an antenna including a radiator formed by a conductor or a conductive pattern formed on a substrate (e.g., a printed circuit board (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 (e.g., a first network 198 or a second network 199) may be selected from the plurality of antennas by, for example, the communication module 190. Then, a signal or power may 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, other parts (e.g., a radio frequency integrated circuit (RFIC)) other than the radiator may be further formed as a part of the antenna module 197.
[0068] 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.
[0069] 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 a server 108 connected to the second network 199. Each of the first electronic device 102 and the second 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.
[0070] Figure 2A 1 is a view illustrating a method of controlling the electronic device 101 executing the first OS and the second OS of the electronic device 101 according to an embodiment of the present disclosure.
[0071] Figure 2B is a diagram showing an exemplary system structure of the electronic device 101 according to an embodiment of the present disclosure.
[0072] Reference below Figure 2A and Figure 2B A method of controlling the electronic device 101 to execute the first OS 220 and the second OS 230 will be described.
[0073] Reference Figure 2A , the electronic device 101 (for example, at least one processor 120) can control at least one hardware device (for example, a display or an audio device) included in the electronic device 101 according to the first program 201 executed on the first OS and the second program 202 executed on the second OS. In other words, the electronic device 101 can allocate at least one hardware resource to the first program 201 executed on the first OS and the second program 202 executed on the second OS. For example, Figure 2AAs shown, the electronic device 101 can display the execution screen of the first program 201 executed on the first operation on at least a first portion of the display included in the electronic device 101, and display the execution screen of the second program 202 executed on the second OS on at least a second portion of the display. The execution screen of the first program 201 and the execution screen of the second program 202 can be displayed so that any one of the execution screen of the first program 201 and the execution screen of the second program 202 hides at least a portion of the other. Without being limited to the contents set forth herein, the electronic device 101 can control an external electronic device (e.g., an external display or an external audio device) connected to the electronic device 101. For example, the electronic device 101 can transmit data to the external display via a hub device to display the execution screen of the first program 201 executed on the first operation on at least a first portion of the external display, and display the execution screen of the second program 202 executed on the second OS on at least a second portion of the external display.
[0074] Reference Figure 2B , electronic devices (e.g. Figure 1 The electronic device 101 may include an operating system (OS) 210 and execute multiple OSs simultaneously. The OS 210 may include a first OS 220 and a second OS 230. For example, the first OS 220 may be an Android OS in an embedded environment intended for use in an electronic device, and the second OS 230 may be a Linux OS. The second OS 230 may include Ubuntu for a Linux-based OS. (R) The first OS 220 may be referred to as a host OS, and the second OS 230 may be referred to as a guest OS. The electronic device 101 may execute the guest OS (the second OS 230) based on the host OS (the first OS 220).
[0075] The first OS 220 and the second OS 230 can operate and coexist independently of each other, and when operating based on Linux, they can be dependent on each other. In other words, the first OS and the second OS can both be OS based on the Linux kernel. The first OS 220 and the second OS 230 of 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 may belong to OS 210, various types of OSs other than Android and Linux can be added or used instead. Therefore, OS 210 can include two or more different types of OS, and multiple OSs can exist independently on the same kernel 240 (or different cores / kernels). In other words, two or more different types of OS can be stored in a memory in the form of, for example, code, program or instruction to execute OS, which can be interpreted as two or more different OSs included in the electronic device 101.
[0076] The kernel 240 may allocate each resource of the electronic device by connecting and managing interactions between various middleware units of the first OS 220 and the second OS 230 of the OS 210 and physical components of the plurality of hardware units 250. For example, the kernel 240 may be a Linux kernel.
[0077] The plurality of hardware units 250 may include various types of hardware units. The plurality of hardware units 250 may be processors (eg, Figure 1 For example, the plurality of hardware units 250 may include a device connected to a processor (e.g., Figure 1 A memory (e.g., a processor 120) connected to the memory. Figure 1 The memory 130) may store computer executable instructions to perform various functions and operations to control the execution of the heterogeneous OS.
[0078] According to an embodiment, the electronic device 101 (for example, at least one processor 120) may form an environment in which the first OS and the second OS may be simultaneously executed on the electronic device 101. For example, the electronic device 101 may perform control so that resources allocated to the first OS do not conflict with resources allocated to the second OS.
[0079] Without being limited to the contents set forth herein, the electronic device 101 may run other additional OS different from the second OS based on various embodiments of the method of controlling the electronic device 101 running the second OS described below.
[0080] Various embodiments of a method of controlling the electronic device 101 running the first OS and the second OS are described below.
[0081] Figure 3 3 is a flowchart 300 illustrating an exemplary control method of executing the first OS and the second OS of the electronic device 101 according to an embodiment of the present disclosure.
[0082] Reference Figure 3 , the operation of the electronic device 101 is not limited to Figure 3 The operations of the electronic device 101 shown in the figure may be performed in a different order than shown, or may be performed simultaneously. Figure 3 Other additional operations other than the operations of the electronic device 101 shown, or may be omitted Figure 3 Some operations of the electronic device 101 are shown.
[0083] According to an embodiment, the electronic device 101 (eg, at least one processor 120 ) may execute the second program 202 on the second OS 230 while executing the first program 201 on the first OS 220 based on a control application installed on the electronic device 101 .
[0084] According to an embodiment, in operation 301 , the electronic device 101 (eg, at least one processor 120 ) may control at least one first hardware unit included in the electronic device 101 to process first data from a first program 201 running on a first OS 220 .
[0085] According to an embodiment, in operation 302, the electronic device 101 (e.g., at least one processor 120) may obtain a command to execute a second OS 230 different from the first OS 220. For example, the electronic device 101 may obtain a command to execute a control application to execute the second OS 230. As an example, the electronic device 101 may obtain an execution command of the control application by receiving an input to execute the control application from a user. As another example, when a specified condition is met, the electronic device 101 may obtain an execution command of the control application. For example, upon receiving a command to execute a specified application among a plurality of applications installed on the first OS 220, the electronic device 101 may execute the control application in response to receiving a command to execute the specified application. Upon receiving an execution command to execute a specified application on the first OS 220, the electronic device 101 may execute the specified application on the first OS 220, and may provide the user with a second OS 230, which is executed when the control application is executed in response to the execution of the specified application, thereby providing the user with a more comfortable use of the first OS 220 and the second OS 230. Upon receiving the execution command to execute the designated application on the first OS 220 , the electronic device 101 may allow data related to the display accessory to be processed using the executed control application, thereby enabling execution of the display accessory on the second OS 230 .
[0086] According to an embodiment, in operation 303, the electronic device 101 (e.g., at least one processor 120) may generate a container for executing the second OS 230 based on the kernel 240 of the first OS 220 in response to a command to execute the second OS 230, and execute the second OS 230 on the generated container.
[0087] According to an embodiment, the electronic device 101 (e.g., at least one processor 120) may execute the second OS 230 on a pre-generated container. According to an embodiment, at least one container of the shared kernel 240 may be pre-generated, and in this state, the electronic device 101 may allocate a designated one of the at least one container as a container for executing the second OS 230. The operation of allocating the designated container may control the processor of the electronic device (e.g., Figure 1 The processor 120 of the electronic device 101) allows the first OS 220 to allocate a specified container or control the allocation via a control application. As described above, when a specific container for executing the second OS 230 is allocated, the specific container can be used to isolate and operate data related to the second OS 230. According to an embodiment, a pre-generated container can be generated using the kernel 240 while the electronic device 101 is simultaneously started. After the container is generated, when the above-mentioned specified conditions are met (for example, a control application for executing the electronic device 101 or an execution command for startup), the electronic device 101 can execute the second OS 230 on one selected from at least one pre-generated container.
[0088] According to an embodiment, in operation 304 , the electronic device 101 (eg, at least one processor 120 ) may execute the second program 202 on the second OS 230 .
[0089] According to an embodiment, in operation 305, the electronic device 101 (e.g., at least one processor 120) may obtain second data about the second program 202 from the second OS 230 via socket communication by a control application installed on the first OS 220. The second data about the second program 202 may be defined as data generated when the second program 202 is executed, or data that should be processed by at least one hardware unit (e.g., the second hardware unit) among the multiple hardware units 250 included in the electronic device 101 when the second program 202 is executed. The second data about the second program 202 may include at least one or more types of data. For example, the second data related to the second program 202 may include data related to graphic information about the second program 202 and data related to audio information about the second program 202. In other words, the second data related to the second program 202 may include data that should be processed by each of the different hardware units (e.g., a display or an audio device) included in the electronic device 101 (e.g., data assumed to be processed by a display or data assumed to be processed by an audio device). The second data is not limited thereto, but may include various other types of data in addition to data about graphic information or data about audio information.
[0090] According to an embodiment, in operation 306, the electronic device 101 (e.g., at least one processor 120) may control at least one second hardware unit included in the electronic device 101 to process the obtained second data using the installed control application based on the first OS 220. In other words, the electronic device 101 (e.g., at least one processor 120) may allocate at least one resource (e.g., hardware resource) based on the first OS 220 to process the second data. For example, the electronic device 101 may control a display included in the electronic device 101 to process data related to graphic information in the obtained second data segment (e.g., displaying the execution screen of the second program 202), and control an audio device of the electronic device 101 to process data related to audio information in the obtained second data segment using the control application based on the first OS 220 (e.g., outputting audio related to the execution of the second program 202).
[0091] Operations 301 to 306 of the electronic device are described below in more detail.
[0092] refer to Figure 4 , Figure 5A and Figure 5B Operation 301 of the electronic device 101 is described.
[0093] Figure 4 is a diagram showing an exemplary system structure of the electronic device 101 according to an embodiment of the present disclosure. Figure 4The components of the kernel 240 shown in FIG. 4 (eg, 421 to 425) refer to functions available via the kernel 240. The kernel 240 is not limited to Figure 4 The functions shown are not limited to those shown, but can perform more functions.
[0094] Reference Figure 4 , the electronic device 101 may include a first OS 220 , a kernel 240 , and a plurality of hardware units 250 .
[0095] According to an embodiment, the first OS 220 may include a first program 201. The first program 201 may be various programs executable based on the first OS 220. For example, when the first OS 220 is an Android OS, the first program 201 may be, for example, a program that displays an Android home screen or various applications (e.g., a gallery program) based on the Android OS.
[0096] According to an embodiment, the kernel 240 (e.g., Linux kernel) of the first OS 220 may be a program that provides various functions for executing an OS. For example, the kernel 240 may include a namespace function 421 that allocates at least one program related to the first OS 220 (e.g., a program that executes the second OS 230) to at least one namespace isolated from the first OS 220, a security function 422, a driver function 423 that accesses hardware resources of the electronic device 101, a control group (Cgroup) function 424 that allocates at least one system resource to at least one program related to the first OS 220, or a file system function 425 that identifies files or programs stored in the electronic device 101.
[0097] According to an embodiment, the electronic device 101 may include at least one hardware resource 250. The at least one hardware resource may include at least one system hardware resource including a CPU 431 or a memory 432 (e.g., a random access memory (RAM)) and an input / output hardware unit (e.g., an audio device 433, a display 434, a touch device 435, or an external storage device 436).
[0098] According to an embodiment, at least as part of operation 301, the electronic device 101 (e.g., at least one processor 120) may control at least one first hardware unit included in the electronic device 101 to process first data from a first program 201 running on the first OS 220 using a kernel 240 of the first OS 220. For example, when executing a program that executes a home screen on the first OS 220, the electronic device 101 may process data from a program related to the home screen based on a driver of the kernel 240 (e.g., Linux kernel) of the first OS 220, so as to display the home screen on the display 434 of the electronic device 101. As another example, when executing an application on the first OS 220, the electronic device 101 may process data from a specific application based on a driver of the kernel 240 (e.g., Linux kernel) of the first OS 220, so as to display the execution screen of the application on the display 434 of the electronic device 101. The first program 201 is not limited thereto, but may be various programs executable on the first OS 220.
[0099] Figure 5A and Figure 5B An example of an electronic device 101 and external electronic devices 502 , 503 , and 504 according to an embodiment of the present disclosure is shown.
[0100] Reference Figure 5A and Figure 5B , the electronic device 101 (eg, at least one processor 120) may control a plurality of hardware units 250 included in the electronic device 101 to process the first data from the first program 201. For example, Figure 5A As shown, the electronic device 101 may transmit the first data to the display 434 of the electronic device 101 to process the first data so that the graphic information related to the first data is displayed through the display 434 of the electronic device 101. As another example, the electronic device 101 may provide the first data to the hub device 501 through the communication interface of the electronic device 101 so that Figure 5B The first data is processed as shown. The hub device 501 can perform control to send the first data to at least one external device (e.g., external display 502) among multiple external electronic devices 502, 503, and 504, and enable graphic information related to the first data to be displayed on the at least one external device. Therefore, the method of controlling at least one hardware unit included in an electronic device according to an embodiment can be applied to a method of an electronic device to control at least one of multiple external devices using the hub device 501. The method of an electronic device using the hub device 501 to control multiple external electronic devices 502, 503, and 504 according to an embodiment can be applied to a method of controlling at least one hardware unit included in an electronic device.
[0101] Reference below Figure 6 and Figure 7 Operation 303 of the electronic device 101 is described in more detail.
[0102] Figure 6 600 is a flowchart illustrating an exemplary operation of executing the second OS 230 of the electronic device 101 according to an embodiment of the present disclosure.
[0103] Reference Figure 6 , the operation of the electronic device 101 is not limited to Figure 6 The operations of the electronic device 101 are shown and may be performed in a different order than shown, or may be performed simultaneously. Figure 6 Other additional operations other than the operations of the electronic device 101 shown, or may be omitted Figure 6 Some operations of the electronic device 101 are shown.
[0104] Figure 7 is a diagram showing an exemplary system structure of the electronic device 101 according to an embodiment of the present disclosure.
[0105] Reference Figure 7 As at least part of operation 303, the electronic device 101 (eg, at least one processor) may execute Figure 6 Operation 601 to operation 604.
[0106] According to an embodiment, as in operation 601, the electronic device 101 (e.g., at least one processor 120) may identify whether the control application 710 has been installed on the electronic device 101. For example, the electronic device 101 may identify the control application 710 pre-stored in the memory of the electronic device 101 in the form of a program or instruction. As in operation 602, when it is identified that the control application 710 has not been installed on the electronic device 101, the electronic device 101 may obtain the control application 710 from the server. For example, the electronic device 101 may access a server that provides the control application 710, send a request for the control application 710 to the accessed server, obtain the control application 710 in response to the request for the control application 710, and store the obtained control application 710 in the memory 130 of the electronic device 101. The operation of the electronic device 101 obtaining the control application 710 from the server may be performed without user input or may be performed according to user input. For example, the electronic device 101 may notify the user that the control application 710 is not installed (e.g., display a notification message on the display of the electronic device 101 indicating that the control application 710 is not installed), receive user input from the user for accessing a server that provides the control application 710, receive user input for downloading the control application 710, and download the control application 710 from the accessed server.
[0107] According to an embodiment, the electronic device 101 (e.g., at least one processor 120) may display an execution icon associated with the installed control application 710. For example, the electronic device 101 may allow the execution icon associated with the installed control application 710 to be displayed on the display of the electronic device 101 or on an external display connected to the electronic device 101. For example, the electronic device 101 may display an execution icon to trigger the execution of the installed control application 710. The electronic device 101 may execute the control application 710 in response to receiving a user input for selecting the execution icon. As another example, the electronic device 101 may display an execution icon to change the execution state of the installed control application 710. For example, the electronic device 101 may display an execution icon to enable the control application 710 executed in the background to be executed in the foreground, and in response to receiving a user input for selecting the execution icon, the execution state of the control application 710 is switched from the background to the foreground.
[0108] According to an embodiment, as in Figure 6In the operation 603 shown, the electronic device 101 (e.g., at least one processor 120) may generate a container (e.g., Linux container) 720 for executing the second OS 230 based on the kernel 240 (e.g., Linux kernel) of the first OS 220. The electronic device 101 may use the container generation function of the kernel 240 (e.g., Linux kernel) of the first OS 220. The electronic device 101 may execute at least one or more OSs (e.g., second OS 230) different from the first OS 220 on the container 720.
[0109] According to an embodiment, as described above, the electronic device 101 (e.g., at least one processor 120) may execute the second OS 230 on the pre-generated container 720. The electronic device 101 may have generated at least one container (not shown) before executing the second OS 230. The electronic device 101 may select one of the at least one pre-generated container (not shown) and execute the second OS 230 on the pre-generated container (not shown).
[0110] According to an embodiment, in response to a user input for selecting execution of the second OS 230 -based application (eg, the second program 202 ), the control application 710 may allocate and provide data necessary for executing the second OS 230 -based application (eg, the second program 202 ) through the container 720 .
[0111] According to an embodiment, the container 720 may be generated not by virtualization but by isolation technology. For example, when the first OS 220 is running, only the program of the isolated second OS 230 can be processed without any startup process for executing the second OS 230. Therefore, since the image can be managed and published in file units by the control application 710 of the first OS 220 through the container 720, an OS different from the currently running OS can be executed simultaneously with minimum capacity. In addition, according to an embodiment, the container 720 can use the kernel 240 of the first OS 220 (which is the host OS) and only allocate the memory required for the application executed based on the second OS 230, so that the limitations of the virtual machine can be overcome while controlling the heterogeneous OS without overburdening the performance of the host OS.
[0112] According to an embodiment, the kernel 240 may be executed by a Linux kernel of the first OS 220 (e.g., Android OS), and a container 720 as a Linux container function may be generated to drive the guest OS (e.g., Linux OS) by the control application 710. 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 a namespace function 421 that allocates a process for executing a guest OS related to the first OS 220 to a namespace, a security function 422, a driver function 423 that accesses each of the plurality of hardware units 250, a Cgroup function 424 that allocates resources to allocate CPU cores or memory capacity, or a file system function 425 that stores and manages files.
[0113] According to an embodiment, the container 720 may be an environment for driving a virtual OS independent of the first OS 220, and may be a distributed Linux version, such as Ubuntu created based on a Linux container support kernel. (R) or Debian. The generation of container 720 is not limited to Figure 7 components, but can also be generated by Linux namespace containers.
[0114] An OS different from the first OS 220 (eg, the second OS 230) executed on the container 720 may be isolated from the first OS 220 of the electronic device 101. In other words, when the second OS 230 is executed on the container 720, the first OS 220 and the second OS 230 may be executed on the electronic device 101 at the same time.
[0115] According to an embodiment, the generation of the container 720 of the electronic device 101 can be triggered by a specified condition. For example, the control application 710 installed on the electronic device 101 can trigger the first OS 220 of the electronic device 101 to generate the container 720. As an example, when the control application 710 is executed on the electronic device 101, the control application 710 can trigger the first OS 220 to generate the container 720 using the kernel 240 of the first OS 220 in response to the execution of the control application 710. The execution of the control application 710 can be performed in response to receiving a user input for executing the control application 710 (e.g., a user input for selecting an execution icon of the control application 710) or when a condition specified for the electronic device 101 is met (e.g., when the electronic device 101 is powered on).
[0116] According to an embodiment, the second OS 230 executed on the container 720 may include a plurality of communication programs 721 and the second program 202 .
[0117] According to an embodiment, the plurality of communication programs 721 may transmit data related to the second OS 230 executed on the container 720 to the outside (e.g., the control application 710 of the first OS 220) via socket communication. Therefore, the first OS 220 may obtain data related to the second OS 230 isolated and executed from at least some of the plurality of communication programs 721, and process a process related to the second OS 230 based on the obtained data related to the second OS 230. The plurality of communication programs 721 are not limited thereto, but may transmit data related to the second OS 230 to the outside of the container 720 in a communication method capable of transmitting data to the outside of the container 720 instead of socket communication. Each of the plurality of communication programs 721 may transmit different types of data (e.g., graphic data or audio data). For example, the plurality of communication programs 721 may include a first communication program (e.g., Virtual Network Computing (VNC)) capable of transmitting graphic-related data to the outside of the container 720 and a second communication program (e.g., Pulse Audio) capable of transmitting audio information-related data to the outside of the container 720. The plurality of communication programs 721 are not limited to those described herein, but may include communication programs capable of transmitting data related to other various types of information other than graphic-related data or audio-related data to the outside of the container 720 .
[0118] According to an embodiment, the second program 202 may be a program executed based on the language of the second OS 230. For example, the second program 202 may be a program that displays an execution screen of the second OS 230 (e.g., Linux OS) executed based on the language of the second OS 230 (e.g., Linux language), or a package program (e.g., Linux package) that is published from an external server and can be executed on the second OS 230. The Linux package may include, for example, Firefox or Gimp.
[0119] According to an embodiment, as in operation 604, the electronic device 101 (eg, at least one processor 120) may form an environment for executing the second OS 230 using the control application 710. For example, Figure 6 As shown, the electronic device 101 can use the control application 710 to allocate the container 720 generated based on the namespace function 421 of the first OS 220 to the first namespace. Therefore, the container 720 allocated to the first namespace and the second OS 230 executed on the container 720 can be processed separately from the first OS 220 by the electronic device 101.
[0120] The electronic device 101 may set permissions for the first namespace. As an example, the electronic device 101 may set permissions to allow the second OS 230 executed on the container 720 to access external electronic devices via the electronic device 101. As another example, the electronic device 101 may set permissions to allow the second OS 230 executed on the container 720 to access the network via the electronic device 101. The control application 710 may map the user ID (UID) and group ID (GID) of the process generated in the first namespace assigned to the second OS 230 to at least one namespace assigned to the first OS 220 that is allowed to access the network. Therefore, the second OS 230 may use the network settings of the electronic device 101 by controlling the application to use the network adapter (not shown) of the electronic device 101, the network function (not shown) of the kernel 240, and the namespace assigned to the first OS 220. As another example, Figure 6 As shown, the electronic device 101 can use the control application 710 to allocate at least some system resources of the electronic device 101 for executing the second OS 230 based on the Cgroup function 424 of the kernel 240 of the first OS 220. As an example, the electronic device 101 can use the control application 710 to allocate at least a portion of the CPU and memory available for the container 720. Therefore, the second OS 230 can be executed based on at least a portion of the allocation of the CPU and memory.
[0121] Reference below Figures 8 to 10 Operations 304 to 306 of the electronic device 101 are described in more detail.
[0122] Figure 8 800 is a flowchart illustrating an exemplary operation of controlling the second program 202 executed on the second OS of the electronic device 101 according to an embodiment of the present disclosure.
[0123] Reference Figure 8 , the operation of the electronic device 101 is not limited to Figure 8 The operations of the electronic device 101 shown in the figure may be performed in a different order than shown, or may be performed simultaneously. Figure 8 Other additional operations other than the operations of the electronic device 101 shown, or may be omitted Figure 8 Some operations of the electronic device 101 are shown.
[0124] Fig. 9 is a diagram showing an exemplary system structure of the electronic device 101 according to an embodiment of the present disclosure.
[0125] Fig.10101 is a view illustrating an exemplary screen displayed on an external display connected to the electronic device 101 or an exemplary screen displayed on a display of the electronic device 101 according to an embodiment of the present disclosure.
[0126] According to an embodiment, as at least part of operations 304 to 306, the electronic device 101 (eg, at least one processor) may perform the following steps: Figure 8 Operations 801 to 807 of the electronic device 101 are shown.
[0127] According to an embodiment, in operation 801, the electronic device 101 (eg, at least one processor 120) may execute the second program 202 in response to receiving a command for executing the second program 202. For example, referring to Fig.10 , the electronic device 101 may receive a user input for selecting an execution icon associated with the control application 710, and execute the second program 202 for displaying the execution screen 1020 of the second OS in response to receiving the user input for selecting the execution icon. The electronic device 101 may display the execution screen 1020 of the second OS in response to the execution of the second program 202. Fig.10 , the execution screen 1020 of the second OS may be displayed on the entire area 1010 of the display (e.g., the display 434 of the electronic device 101 or an external display connected to the electronic device 101), or may be displayed in the form of a window displayed on a portion of the display. For example, the electronic device 101 may receive user input to select an icon 1030 (e.g., an icon for executing a Linux package) for executing the second program 202 on the execution screen 1020 of the second OS or for displaying the execution screen 1040 of the second program 202 on the execution screen 1020 of the second OS.
[0128] According to an embodiment, in operation 802, the electronic device 101 (eg, at least one processor 120) may identify whether second data related to the executed second program 202 is obtained. Fig. 9, the communication program 721 may obtain second data related to the second program 202 from at least some of the plurality of communication programs 721 of the second OS 230. When the second program 202 is executed on the second OS 230, the second data related to the second program 202 may be generated in the second OS 230. At least some of the plurality of communication programs 721 of the second OS 230 may obtain the second data related to the second program 202, and transmit the obtained second data related to the second program 202 to the control application 710 of the first OS 220 via socket communication. At least some of the plurality of communication programs 721 that transmit at least a portion of the second data related to the second program 202 to the outside of the container 720 may be identified from the second OS 230 according to a data type of at least a portion of the second data related to the second program 202 (e.g., graphic information related data or audio information related data). For example, a first communication program (e.g., VNC) among the multiple communication programs 721 can send at least a portion of the second data related to the graphic information to the control application 710, and a second communication program (e.g., Pulse Audio) among the multiple communication programs 721 can send at least another portion of the second data related to the audio information to the control application 710.
[0129] According to an embodiment, in operation 803, in response to obtaining the second data by the control application 710, the electronic device 101 (e.g., at least one processor 120) can use the control application 710 to identify at least one driver related to the second data of the kernel 240 of the first OS 220 (e.g., Linux kernel). For example, the electronic device 101 can identify the graphics driver of the kernel 240 of the first OS 220 (e.g., Linux kernel) corresponding to at least a portion of the second data related to the graphics information, and identify the audio device driver of the kernel 240 of the first OS 220 (e.g., Linux kernel) corresponding to at least another portion of the second data related to the audio information. As another example, when an external electronic device is connected to the electronic device 101, the electronic device 101 can identify the input / output interface driver (e.g., universal serial bus (USB) control driver) of the kernel 240 of the first OS (e.g., Linux kernel) to identify the input / output interface (e.g., 177 or 178) to connect to a hub device that can be connected to the external electronic device or transmit the second data to the external electronic device.
[0130] According to an embodiment, in operation 804, the electronic device 101 (e.g., at least one processor 120) may identify a state of at least one hardware unit (e.g., a second hardware unit) among a plurality of hardware units 250 included in the electronic device 101 based on at least one driver identified using the control application 710. In other words, the electronic device 101 may identify a state of at least one hardware unit for processing the second data among the plurality of hardware units 250 using the control application 710. For example, Fig. 9 As shown, the electronic device 101 can identify the state of the display (e.g., the display state of at least a portion of the display) based on the graphics driver identified using the control application 710, or identify the state of the audio device (e.g., the output state of the audio device) using the identified audio driver. As another example, the electronic device 101 can identify whether the electronic device 101 can access an external electronic device via an input / output interface based on the input / output interface driver identified using the control application 710.
[0131] According to an embodiment, in operation 805, the electronic device 101 (e.g., at least one processor 120) may identify whether at least a portion of at least one hardware unit (e.g., a second hardware unit) is controlled based on the state of at least one hardware unit identified using the control application 710. For example, the electronic device may identify whether at least a portion of at least one hardware unit is controlled with respect to the first OS 220 based on the state of the identified at least one hardware unit (e.g., whether at least a portion of at least one hardware unit is controlled according to the first data from the first program 201). In other words, the electronic device 101 may identify a resource allocation state of at least one hardware unit associated with the first OS 220. As an example, the electronic device 101 may identify whether an execution screen of the first program 201 being executed on the first OS 220 is being displayed on at least a portion of the display based on the display state of at least a portion of the identified display. For example, the electronic device 101 may identify whether audio associated with the execution of the first program 201 is being output via an audio device based on the audio output state of the identified audio device. As described above, the electronic device 101 can identify the hardware resource allocation status of the first OS 220 (e.g., the hardware resource allocation status for the first program 201) before allocating resources to the second OS 230, thereby preventing conflicts between the resources allocated to the second OS 230 and the hardware resources allocated to the first OS 220.
[0132] According to an embodiment, in operation 806, the electronic device 101 (e.g., at least one processor 120) may stop controlling at least a portion of at least one hardware unit in response to recognizing that at least a portion of at least one hardware unit is being controlled. In other words, when at least a portion of at least one hardware resource has been allocated, the electronic device 101 may restore at least a portion of the allocation of at least one hardware resource. For example, when the execution screen of the first program 201 is displayed on at least a portion of the display, the electronic device 101 may perform control to stop displaying the execution screen of the first program 201 on at least a portion of the display. As another example, when the audio device outputs audio related to the first program 201, the electronic device 101 may control the audio device to stop outputting audio related to the first program 201.
[0133] According to an embodiment, in operation 807, the electronic device 101 (e.g., at least one processor 120) may control at least a portion of at least one hardware unit identified based on the second data obtained using the control application 710. In other words, the electronic device 101 may use the control application 710 to allocate at least a restored portion of at least one hardware resource to the second program 202 being executed on the second OS 230. For example, the electronic device 101 may allow at least a portion of the execution screen of the second program 202 to be displayed on at least a portion of the display that stops displaying the execution screen of the first program 201, and allow at least another portion of the execution screen of the second program 202 to be displayed on at least another portion of the display. Therefore, the execution screen of the first program 201 executed on the first OS 220 and the execution screen of the second program 202 executed on the second OS 230 may be displayed on the display of the electronic device 101 at the same time. As another example, the electronic device 101 may output audio related to the second program 202 via an audio device that has stopped outputting audio related to the first program 201. Through operation 807 of the electronic device 101 as described above, the first program 201 executed on the first OS 220 and the second program 202 executed on the second OS 230 may be simultaneously executed, resulting in more usability of the electronic device 101 .
[0134] Reference below Fig.11 Operation 807 of the electronic device 101 is described.
[0135] Fig.11 is a view showing a screen of the electronic device 101 according to an embodiment of the present disclosure.
[0136] Reference Fig.11 , the electronic device 101 (eg, at least one processor 120) may simultaneously execute programs that perform the same or similar functions on the first OS 220 and the second OS 230. Fig.11As shown, the electronic device 101 can simultaneously execute a first program 201 (e.g., a gallery program) that provides a first function on the first OS 220 and a second program 202 (e.g., a Gimp program) that provides a second function similar to the first function on the second OS 230. The electronic device 101 can display the execution screen of the first program 201 executed on the first OS 220 and the execution screen of the second program 202 executed on the second OS 230 as overlapping each other on the display of the electronic device 101. The execution screen of the first program 201 can include an object related to the first program 201 (e.g., a gallery program) (e.g., a thumbnail of a stored image 1201), and the execution screen of the second program 202 can include an object related to the second program 202 (e.g., a Gimp program) (e.g., a drawing 1202 drawn according to user input). When programs providing the same or similar functions are executed on the first program 201 and the second program 202 are available on the electronic device at the same time, collaboration between the first OS 220 and the second OS 230 is possible, providing more convenience for the user.
[0137] Without being limited thereto, the electronic device 101 may simultaneously execute programs that perform different functions rather than the same or similar functions on the first OS 220 and the second OS 230 .
[0138] Without being limited thereto, at least one other hardware unit included in the electronic device (e.g., a hardware resource such as a microphone or a camera, or an external electronic device such as a keyboard, mouse, or printer that can be connected to a display for use) can also be controlled in a manner similar to the embodiments of the display output or audio output associated with the second program 202 of the second OS.
[0139] refer to Fig.12 , refer to the following Fig.12 An operation of the first OS 220 and the second OS 230 sharing the external storage device 436 connected to the electronic device is described.
[0140] Fig.12 1 is a view illustrating an exemplary method of controlling an electronic device to allow a first OS 220 and a second OS 230 to share an external storage device 436 connected to the electronic device 101 according to an embodiment of the present disclosure.
[0141] Reference Fig.12 When the external storage device 436 is connected to the electronic device 101, the first OS may mount the external storage device 436 on the file system 425 of the kernel 240 (eg, the Linux kernel) and access the file system 425. Fig.11As shown, the control application can access the file system 425 of the first OS 220 and transfer the data about the external storage device to the second OS 230 through the file system 425. Therefore, the second OS 230 can access the external storage device 436 connected to the electronic device 101 and use the data stored in the external storage device 436. For example, the second OS 230 can execute at least one program that can be executed on the second OS 230 and stored in the external storage device 436. As another example, Fig.12 As shown, the designated directory of the external storage device 436 can be mounted from the second OS 230, so that the first OS 220 and the second OS 230 can use the designated directory of the external storage device 436 as shared folders 1210 and 1211. The designated directory can be displayed on the execution screen of the first OS 220 as the execution screen of the first shared folder 1210, and displayed on the execution screen of the second OS 230 as the execution screen of the second shared folder 1211. In response to receiving a user input to move a file or program to the execution screen of the first shared folder 1210 or the execution screen of the second shared folder 1211, the electronic device 101 (e.g., at least one processor 120) can allow the file or program to be shared between the first OS 220 and the second OS 230 via the designated directory.
[0142] Operations 301 to 306 of executing the first OS 220 and the second OS 230 are described above.
[0143] Described below are various embodiments of a method of controlling the electronic device 101 to execute the first OS 220 and the second OS 230 .
[0144] According to an embodiment, the electronic device 101 (e.g., at least one processor 120) may obtain data related to the second program 202 executed on the second OS 230 through at least one hardware device, and transmit the obtained data to the second OS 230 so that the obtained data may be processed by the second OS 230.
[0145] Reference now Fig.14 and Fig.15 Described is as above combined Fig.13 The described series of operations are that the electronic device 101 obtains data related to the second program 202 executed on the second OS 230 through at least one hardware device, and transmits the obtained data to the second OS 230 so that the obtained data can be processed by the second OS 230 .
[0146] Fig.13 13 is a flowchart 1300 illustrating an exemplary operation of obtaining data related to the second program 202 of the electronic device 101 and transmitting the obtained data to the second OS according to an embodiment of the present disclosure.
[0147] Reference Fig.13 , the operation of the electronic device 101 is not limited to Fig.13 The operations of the electronic device 101 shown in the figure may be performed in a different order than shown, or may be performed simultaneously. Fig.13 Other additional operations other than the operations of the electronic device 101 shown, or may be omitted Fig.13 Some operations of the electronic device 101 are shown.
[0148] Fig.14 is a diagram showing an exemplary system structure of the electronic device 101 according to an embodiment of the present disclosure.
[0149] Fig.15 2 is a view showing execution screens of a first program 201 and a second program 202 according to an embodiment of the present disclosure.
[0150] Reference Fig.14 ,like Fig.14 As shown, in operation 1301, the control application 710 of the electronic device 101 can obtain the third data about the second program 202 through at least one hardware unit related to the second program 202 executed on the second OS 230. For example, the electronic device 101 can receive the user input through at least a part of the display 434 that displays the execution screen of the second program 202, and obtain the third data related to the received user input. As an example, the electronic device 101 can receive the third data about the user's drag input 1501 on at least a part of the display 434 that displays the execution screen of the second program 202 being executed on the second OS 230. As another example, the electronic device 101 can receive the third data about the user's touch input, which is used to select the text input box displayed on at least a part of the execution screen of the second program 202 executed on the second OS 230. Without being limited to this, the electronic device 101 can obtain the third data about the second program 202 through various other hardware units other than the display 434.
[0151] According to an embodiment, in operation 1302 , the control application 710 may obtain third data obtained through at least one hardware unit via a kernel (eg, Linux kernel) of the first OS 220 .
[0152] According to an embodiment, in operation 1303 , the electronic device 101 (eg, at least one processor 120 ) may transmit the obtained third data to the second OS 230 using the control application 710 .
[0153] According to an embodiment, in operation 1304, the second OS 230 may execute at least one event with respect to the obtained third data. Fig.15 , the second program 202 of the second OS 230 may execute an event of generating a third object 1502 (e.g., a line) in response to receiving third data regarding a user's drag input on at least a portion of the display 434 that displays an execution screen of the second program 202 executed on the second OS 230. As another example, the second program 202 of the second OS 230 may generate a text input focus in response to receiving third data related to a touch on a text input box displayed on at least a portion of the execution screen of the second program 202 executed on the second OS 230.
[0154] According to an embodiment, the electronic device 101 (e.g., at least one processor 120) may obtain fourth data related to at least one event executed by the control application 710 from at least some of the plurality of communication programs 721 of the second OS 230, and control at least one hardware unit related to the obtained fourth data. Fig.15 , in operation 1305, the electronic device 101 may obtain fourth data related to an event for generating a third object 1502 from at least some of the multiple communication programs 721 of the second OS 230 (e.g., VNC), and control at least a portion of the display of the electronic device 101 to display the third object 1502.
[0155] Without being limited thereto, at least one other hardware unit included in the electronic device (for example, hardware resources such as a microphone, camera, or audio device, or an external electronic device such as a keyboard, mouse, or printer that can be connected to a display for use) may also be controlled in a manner similar to the embodiment regarding the display output of the third program 1701.
[0156] Described below are various embodiments of a method of controlling the electronic device 101 to execute the first OS 220 and the second OS 230 .
[0157] According to an embodiment, the electronic device 101 (e.g., at least one processor 120) may obtain data related to the second program 202 executed on the second OS 230 through at least one hardware device, identify events related to the data obtained in the first OS 220, and execute the identified events on the first OS 220.
[0158] Reference below Fig.17 It is described that the electronic device 101 obtains data related to the second program 202 through at least one hardware device, identifies an event related to the data obtained in the first OS 220 , and executes a series of operations of the identified event on the first OS 220 .
[0159] Fig.16 1600 is a flowchart illustrating an exemplary operation of the electronic device 101 obtaining data related to the second program 202 and executing an event related to the obtained data recognized by the first OS 220 according to an embodiment of the present disclosure.
[0160] Reference Fig.16 , the operation of the electronic device 101 is not limited to Fig.16 The operations of the electronic device 101 shown in the figure may be performed in a different order than shown, or may be performed simultaneously. Fig.16 Other additional operations other than the operations of the electronic device 101 shown, or may be omitted Fig.16 Some operations of the electronic device 101 are shown.
[0161] Fig.17 is a diagram showing an exemplary system structure of the electronic device 101 according to an embodiment of the present disclosure.
[0162] Reference Fig.17 In operation 1601, the electronic device 101 (e.g., at least one processor 120) may obtain third data about the second program 202 through a hardware unit related to the second program 202 executed on the second OS 230, and in operation 1602, the third data may be obtained by the control application 710. Since operations 1601 and 1602 may be performed in a manner similar to the above-described operations 1301 and 1302, contents overlapping with the description of operations 1301 and 1302 are excluded from the description of operations 1601 and 1602.
[0163] According to an embodiment, in operation 1603, the electronic device 101 (e.g., at least one processor 120) may use the control application 710 to identify at least one event related to the obtained third data based on the first OS 220. For example, the electronic device 101 may use the control application 710 to identify information related to a plurality of events stored about the first OS 220, and identify at least one piece of event information (e.g., information related to an event of touching on a text box) corresponding to the obtained third data of information about at least a plurality of identified events (e.g., third data related to a touch on a text box displayed on at least a portion of an execution screen of the second program 202).
[0164] According to an embodiment, in operation 1604, the electronic device 101 (eg, at least one processor 120) may identify whether at least one event is recognized.
[0165] According to an embodiment, Fig.17As shown, in response to identifying at least one event, the electronic device 101 (eg, at least one processor 120 ) may execute a third program 1701 (eg, a soft input panel (SIP)) related to at least the identified event in operation 1605 .
[0166] Fig.18 2 is a view illustrating an exemplary operation of the electronic device 101 executing an event recognized on the first OS 220 of the electronic device 101 according to an embodiment of the present disclosure.
[0167] Reference below Fig.18 Operation 1605 of the electronic device 101 is described.
[0168] As at least part of operation 1605, the electronic device 101 may execute a third program 1701 corresponding to the received third data (e.g., data corresponding to touch 1802 on the touch input text box 1801) and control at least one hardware unit to process the executed third program 1701 (e.g., displaying an execution screen of the third program 1701 on the display of the electronic device 101).
[0169] As described above, the first OS can identify data related to the second program 202 executed on the second OS 230, and execute an event defined in the first OS 220 based on the identified data related to the second program 202. Therefore, the user of the electronic device 101 can receive services related to the first OS 220 (e.g., executing an event defined in the first OS 220) while using the second program 202 executed on the second OS 230.
[0170] According to an embodiment, in operation 1606, the electronic device 101 (eg, at least one processor 120) may generate a user-defined event in response to not recognizing at least one event.
[0171] Reference below Fig.19 Operation 1606 of the electronic device 101 is described.
[0172] Fig.19 is a view illustrating an exemplary operation of generating a user-defined event of the electronic device 101 according to an embodiment of the present disclosure.
[0173] Reference Fig.19 As at least part of operation 1606, the electronic device 101 (e.g., at least one processor 120) may display a user interface 1901 for generating a user-defined event in response to not recognizing at least one event. As an example, Fig.18As shown, the electronic device 101 may display a user interface for identifying a list of at least one application 1902 installed on the first OS 220 that may interact with the obtained third data (eg, data related to the touch 1802 on the text box 1801).
[0174] According to an embodiment, at least one application 1902 installed on the connectable first OS 220 may be determined according to the user's preference. For example, the electronic device may identify the obtained third data and identify the user's use history of previous applications related to the identified third data. The electronic device 101 may identify that at least one frequently executed application is at least one application 1902 installed on the connectable first OS 220 based on the identified use history of previous applications.
[0175] According to an embodiment, at least one application 1902 installed on the connectable first OS 220 may be identified by a deep learning algorithm or a machine learning algorithm. For example, after obtaining the specified data related to the second program 202 executed on the second OS 230 based on the deep learning algorithm or the machine learning algorithm, the electronic device 101 may learn the execution mode of the program executed by the user on the first OS 220. The electronic device 101 may identify at least one application frequently executed by the user after obtaining the third data based on the learned execution mode of the program executed by the user on the first OS 220. The electronic device 101 may identify that the identified at least one application is at least one application 1902 installed on the connectable first OS 220.
[0176] According to an embodiment, the electronic device 101 (eg, at least one processor 120) may respond to receiving a signal for transmitting the signal to the user in the following manner: Fig.19 The user input for calling the application list on the user interface 1901 shown in the figure displays at least one object related to each of at least one application 1902, and receives a user input for selecting at least one from at least one of the displayed objects.
[0177] According to an embodiment, in response to receiving a user input for selecting at least one from among the at least one displayed object, the electronic device 101 (e.g., at least one processor 120) may recognize that at least one corresponding application 1902 (e.g., a soft input panel (SIP) application) is an application related to the third data (or a third program 1701). In other words, the electronic device 101 may generate a user-defined event in which at least one application (e.g., a SIP application) is automatically executed on the first OS 220 after obtaining the third data.
[0178] According to an embodiment, when a user-defined event is generated, the electronic device 101 (e.g., at least one processor 120) may execute a third program 1701 corresponding to the user-defined event. Since the execution of the third program 1701 may be performed as in operation 1605, a repeated description related to the execution of the third program 1701 is not presented.
[0179] Without being limited thereto, at least one other hardware unit included in the electronic device (for example, a hardware resource such as a microphone or a camera, or an external electronic device such as a keyboard, a mouse, or a printer that can be connected to the display for use) may also be controlled in a manner similar to the embodiments regarding the display of executing a third program.
[0180] Described below are various embodiments of a method of controlling the electronic device 101 to execute the first OS 220 and the second OS 230 .
[0181] According to an embodiment, the electronic device 101 (for example, at least one processor 120) can obtain data related to at least one program executed on the first OS 220 through at least one hardware unit related to at least one program executed on the first OS 220, and allow the obtained data related to at least one program executed on the first OS 220 to be processed on the second OS 230.
[0182] Reference now Fig.21 A series of operations are described in which the electronic device 101 obtains data related to at least one program executed on the first OS 220 and allows the obtained data related to the at least one program executed on the first OS 220 to be processed on the second OS 230 .
[0183] Fig. 20 2000 is a flowchart illustrating an exemplary operation of the electronic device 101 allowing data related to at least one program executed on the first OS 220 to be processed on the second OS 230 according to an embodiment of the present disclosure.
[0184] Reference Fig. 20 , the operation of the electronic device 101 is not limited to Fig. 20 The operations of the electronic device 101 shown in the figure may be performed in a different order than shown, or may be performed simultaneously. Fig. 20 Other additional operations other than the operations of the electronic device 101 shown, or may be omitted Fig. 20 Some operations of the electronic device 101 are shown.
[0185] Fig.21 is a diagram showing an exemplary system structure of the electronic device 101 according to an embodiment of the present disclosure.
[0186] Reference Fig.21 , in operation 2001, the electronic device 101 (e.g., at least one processor 120) may obtain fifth data related to a program executed on the first OS 220 via a hardware unit related to the program executed on the first OS 220. For example, when at least one event executed on the first OS 220 (e.g., an event of copying an image included in a gallery program) occurs, the electronic device 101 may obtain fifth data related to at least one event regarding the first program 201. As another example, when at least one event related to the third program 1701 executed on the first OS 220 (e.g., an event of receiving a user input of a first character key for selecting a SIP) occurs, the electronic device 101 may obtain fifth data related to at least one event regarding the third program 1701.
[0187] According to an embodiment, in operation 2002 , the electronic device 101 (eg, at least one processor 120 ) may transmit fifth data to the second OS 230 using the control application 710 .
[0188] According to an embodiment, in operation 2003 , the second OS 230 may perform at least one event regarding the fifth data.
[0189] According to an embodiment, in operation 2004 , the electronic device 101 (eg, at least one processor 120 ) may obtain sixth data related to at least one event performed by the control application 710 , and control at least one hardware unit of the electronic device 101 .
[0190] Reference below Fig. 22 and Fig.23 Operations 2003 and 2004 of the electronic device 101 are described in more detail.
[0191] Fig. 22 2 is a view illustrating an exemplary operation of allowing the electronic device 101 to process data related to at least one program executed on the first OS 220 on the second OS 230 according to an embodiment of the present disclosure.
[0192] Fig.23 2 is a view illustrating an exemplary operation of the electronic device 101 allowing data related to at least one program executed on the first OS 220 to be processed on the second OS 230 according to another embodiment of the present disclosure.
[0193] Reference Fig. 22As at least part of operations 2003 and 2004, the second OS 230 may receive fifth data related to an event of copying an image 1201 included in a first program 201 (e.g., a gallery program). When an occurrence of an event associated with the fifth data (e.g., an event of pasting on the second program 202) is detected after receiving the fifth data, the second OS 230 may paste the copied image 1201 included in the first program 201 onto an execution screen of the second program 202 based on the received fifth data. The control application 710 may receive sixth data related to the image 1201 pasted to the second program 202 via at least some of the plurality of communication programs 721 of the second OS 230, and control at least a portion of the display of the electronic device 101 to display the image 1201 pasted to the execution screen of the second program 202 using the kernel 240 of the first OS 220 based on the sixth data.
[0194] Reference Fig.23 As at least part of operations 2003 and 2004, the second OS 230 may receive fifth data related to an event of receiving a user input of a first character key 2301 for selecting a third program 1701 (e.g., SIP). The second OS 230 may allow a character 2302 corresponding to the fifth data to be input to a text box 1801 of the focused second program 202. The control application 710 may receive sixth data related to the character input to the text box 1801 via at least some of the plurality of communication programs 721 of the second OS 230, and control at least a portion of the display of the electronic device 101 to display the input character 2302 on the text box 1801 of the execution screen of the second program 202 using the kernel 240 of the first OS 220 based on the sixth data.
[0195] Therefore, data related to the first program 201 executed on the first OS 220 of the electronic device 101 (e.g., image data) and tasks performed on the second program 202 executed on the second OS 230 (e.g., a second object drawn according to a user input on the second program 202) can be shared between the first program 201 executed on the first OS 220 and the second program 202 executed on the second OS 230. Therefore, more convenience can be achieved when using the first OS 220 and the second OS 230 on the electronic device 101.
[0196] Without being limited thereto, at least one other hardware unit included in the electronic device (for example, a hardware resource such as a microphone or a camera, or an external electronic device such as a keyboard, a mouse, or a printer that can be connected to the display for use) may also be controlled in a manner similar to the embodiment of the display associated with the control by the third program 1701.
[0197] According to an embodiment, the electronic device 101 may include at least one processor 120. The at least one processor 120 may be configured to control at least one first hardware unit included in the electronic device 101 to process first data from a first program 201 executed on a first OS 220, obtain a command for executing a second OS 230, generate a container 720 for executing the second OS 230 based on a kernel 240 of the first OS 220 in response to the command for executing the second OS 230, execute the second OS 230 on the generated container 720, execute the second program 202 on the second OS 230, obtain second data about the second program 202 from the second OS 230 via socket communication through a control application 710 installed on the first OS 220, and control at least one second hardware unit included in the electronic device 101 to process second data about the second program based on the first OS 220 using the installed control application 710.
[0198] According to an embodiment, at least one processor 120 may be configured to allocate the second OS 230 to the first namespace based on the kernel 240 of the first OS 220, and allocate at least some system resources of the electronic device 101 to process the second data about the second program using the installed control application. The second program 202 may be executed based on at least some of the system resources allocated to the second OS 230.
[0199] According to an embodiment, the at least one processor 120 may be configured to use the installed control application 710 to set permissions for the first namespace assigned to the second OS 230 on the electronic device 101. According to an embodiment, the second OS 230 may include a plurality of communication programs 721. As at least a part of obtaining the second data about the second program 202 from the second OS 230, the at least one processor 120 may be configured to obtain the second data about the second program 202 from at least some of the plurality of communication programs 721 by the installed control application 710 based on socket communication.
[0200] According to an embodiment, as obtaining at least a portion of the second data about the second program 202 from the second OS 230, at least one processor 120 may be configured to obtain, by the installed control application 710, at least a portion of the second data about the second program 202 related to audio information about the second program 202 from a first communication program among a plurality of communication programs 721, and at least another portion of the second data about the second program 202 related to graphic information about the second program 202 from a second communication program among the plurality of communication programs 721.
[0201] According to an embodiment, at least one processor 120 can be configured to: as at least a part of controlling at least one second hardware unit included in the electronic device 101 to process second data regarding a second program 202, use an installed control application 710 to identify at least one driver of a kernel 240 of a first OS 220 corresponding to the obtained first data, identify at least one second hardware unit included in the electronic device 101 based on the identified at least one driver of the kernel 240 of the first OS 220, and control the at least one second hardware unit based on the second data regarding the second program 202 using the installed control application 710.
[0202] According to an embodiment, as at least a part of controlling at least one second hardware unit included in the electronic device 101 to process second data regarding the second program 202, at least one processor 120 can be configured to control at least one second hardware unit while stopping at least some operations of at least one first hardware unit.
[0203] According to an embodiment, as a control of at least one second hardware unit included in the electronic device 101 to process at least a portion of second data about a second program 202, at least one processor 120 can be configured to, when at least a portion of an execution screen of the first program 201 is displayed on at least a portion of a first area of a display, stop using the installed control application 710 to display at least a portion of the execution screen of the first program 201 on at least a portion of the first area of the display, and perform control to allow at least a portion of the execution screen of the second program 202 to be displayed on at least a portion of the first area of the display and at least another portion of the execution screen of the second program 202 to be displayed on a second area.
[0204] According to an embodiment, at least one processor 120 can be configured to: use at least a portion of hardware included in the electronic device 101 to obtain third data related to the second program 202 executed on the second OS 230, obtain the third data by the installed control application 710, transmit the obtained third data to the second OS 230 using the installed control application 710, and execute at least one event regarding the third data by the second program 202.
[0205] According to an embodiment, at least one processor 120 may be configured to obtain fourth data for calling a touch panel provided from the first OS 220 using at least a portion of hardware included in the electronic device 101, obtain the fourth data by an installed control application 710, and display a touch panel corresponding to the fourth data on at least another portion of the display 160 using the installed control application 710.
[0206] According to an embodiment, at least one processor 120 may be configured to transmit information input using a touchpad to the second program 202 using the installed control application 710 and display a result of processing the information input using the touchpad of the second program 202 on at least a portion of the display 160 .
[0207] According to an embodiment, as at least a part of controlling at least one second hardware unit included in the electronic device 101 to process second data about the second program 202 based on the first OS 220 using the installed control application 710, at least one processor 120 can be configured to send the result of processing the second data about the second program 202 to the external electronic device 201 when the electronic device 101 is connected to the external electronic device 201.
[0208] According to an embodiment, a method for controlling an electronic device 101 may include: controlling at least one first hardware unit included in the electronic device 101 to process first data from a first program 201 executed on a first OS 220, obtaining a command for executing a second OS 230, generating a container 720 for executing the second OS 230 based on a kernel 240 of the first OS 220 in response to the command for executing the second OS 230, executing the second OS 230 on the generated container 720, executing the second program 202 on the second OS 230, obtaining second data about the second program 202 from the second OS 230 via socket communication by a control application 710 installed on the first OS 220, and controlling at least one second hardware unit included in the electronic device 101 to process second data about the second program based on the first OS 220 using the installed control application 710.
[0209] According to an embodiment, the control method may further include allocating the second OS 230 to the first namespace based on the kernel 240 of the first OS 220, and allocating at least some system resources of the electronic device 101 to process the second data about the second program using the installed control application. The second program 202 may be executed based on at least some of the system resources allocated to the second OS 230.
[0210] According to an embodiment, the control method may further include setting permissions assigned to the first namespace of the second OS 230 using the installed control application 710 on the electronic device 101 .
[0211] According to an embodiment, the second OS 230 may include a plurality of communication programs 721. Obtaining the second data about the second program 202 from the second OS 230 may include obtaining, by the installed control application 710, the second data about the second program 202 from at least some of the plurality of communication programs 721 based on socket communication.
[0212] According to an embodiment, obtaining the second data about the second program 202 from the second OS 230 may include: obtaining, by the installed control application 710, at least a portion of the second data about the second program 202 related to audio information about the second program 202 from a first communication program among multiple communication programs 721; and obtaining at least another portion of the second data about the second program 202 related to graphic information about the second program 202 from a second communication program among the multiple communication programs 721.
[0213] According to an embodiment, controlling at least one second hardware unit included in the electronic device 101 to process second data about the second program 202 may include: using the installed control application 710 to identify at least one driver of the kernel 240 of the first OS 220 corresponding to the obtained first data, identifying at least one second hardware unit included in the electronic device 101 based on the identified at least one driver of the kernel 240 of the first OS 220, and controlling the at least one second hardware unit based on the second data about the second program 202 using the installed control application 710.
[0214] According to an embodiment, controlling at least one second hardware unit included in the electronic device 101 to process second data about the second program 202 may control the at least one second hardware unit while stopping at least some operations of the at least one first hardware unit.
[0215] According to an embodiment, the electronic device 101 includes a display 160, at least one processor 120 operably connected to the display 160, and a memory 130 operably connected to the processor 120, wherein the memory 130 may store instructions that are executed to enable the at least one processor 120 to display on the display 160 at least one first icon for executing each of at least one first application associated with the first OS 220 and a second icon for executing a second OS 230 different from the first OS 220, receive a first input for the second icon, display at least one third icon for executing each of the at least one second application associated with the second OS 230 on at least a portion of the display 160 based on the first input, receive a second input for one of the at least one third icons, and display an execution screen of the application corresponding to the icon specified by the second input on at least a portion of the display 160 based on the second input.
[0216] In the above-described embodiments related to the user's touch input, the touch input may be replaced with a click input using a point on the user display (eg, using point control such as a mouse connected to the electronic device 101).
[0217] As is apparent from the above description, according to various embodiments of the present disclosure, an electronic device and an operating method thereof may be provided, which may form an environment in which multiple OSs may be executed so that multiple OSs may be executed on the electronic device, and in which hardware resources of the electronic device may be allocated to prevent programs running on the multiple OSs from conflicting with each other (e.g., generating containers or allocating namespaces). According to various embodiments of the present disclosure, conflicts between multiple OSs running on the electronic device may be prevented.
[0218] 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. Electronic equipment, including: at least one processor; Multiple hardware devices; as well as A memory storing instructions, which when executed by the at least one processor cause the electronic device to: operating a first operating system OS, operating a second OS while operating the first OS, the second OS including a plurality of programs, controlling a first portion of the plurality of hardware devices to process first data from a first application executed based on the first OS, executing a second application based on the second OS, obtaining at least a portion of the second data regarding the second application from a first program corresponding to at least a portion of the first type of second data among the plurality of programs of the second OS, and obtaining at least another portion of the second data from a second program corresponding to at least another portion of the second type of the second data among the plurality of programs of the second OS, and A second portion of the plurality of hardware devices is controlled to process the second data regarding the second application.
2. The electronic device according to claim 1, in, The instructions, when executed by the at least one processor, cause the electronic device to: assigning the second OS to a first namespace based on the kernel of the first OS, and allocating at least some of the system resources of the electronic device to process the second data regarding the second application, and Wherein, the second application is executed based on at least some of the system resources allocated to the second OS.
3. The electronic device according to claim 2, wherein: The instructions, when executed by the at least one processor, cause the electronic device to set permissions of the first namespace assigned to the second OS on the electronic device.
4. The electronic device according to claim 1, in, The second OS includes a plurality of communication programs, and Wherein, when the instructions are executed by the at least one processor, the electronic device obtains the second data about the second application from at least some of the multiple communication programs based on socket communication.
5. The electronic device according to claim 4, wherein: The instructions, when executed by the at least one processor, cause the electronic device to: obtaining, from a first communication program among the plurality of communication programs, at least a portion of the second data about the second application related to audio information about the second application; as well as At least another portion of the second data about the second application related to the graphic information about the second application is obtained from a second communication program among the plurality of communication programs.
6. The electronic device according to claim 1, wherein: The instructions, when executed by the at least one processor, cause the electronic device to: identifying at least one driver of a kernel of the first OS corresponding to the first data; identifying at least one second hardware device among the plurality of hardware devices based on the identified at least one driver of the kernel of the first OS; as well as The at least one second hardware device is controlled based on the second data regarding the second application.
7. The electronic device according to claim 1, wherein: The instructions, when executed by the at least one processor, cause the electronic device to control at least one second hardware device among the plurality of hardware devices while stopping control of at least one first hardware device among the plurality of hardware devices.
8. The electronic device according to claim 7, wherein: The instructions, when executed by the at least one processor, cause the electronic device to: In a case where at least a portion of the execution screen of the first application is displayed on at least a portion of a first area of the display, stopping displaying the at least a portion of the execution screen of the first application on the at least a portion of the first area of the display; as well as The execution controls at least a portion of an execution screen of the second application to be displayed on the at least a portion of the first area of the display, and controls at least another portion of the execution screen of the second application to be displayed on a second area.
9. The electronic device according to claim 1, wherein: The instructions, when executed by the at least one processor, cause the electronic device to: obtaining, using at least part of hardware included in the electronic device, third data related to the second application executed on the second OS; obtaining the third data, and transmitting the obtained third data to the second OS; as well as At least one event regarding the third data is performed by the second application.
10. The electronic device according to claim 1, wherein: The instructions, when executed by the at least one processor, cause the electronic device to: obtaining, using at least part of hardware included in the electronic device, fourth data for invoking a touch panel provided from the first OS; obtaining the fourth data; and The touch panel corresponding to the fourth data is displayed on at least another portion of the display.
11. The electronic device according to claim 10, wherein: The instructions, when executed by the at least one processor, cause the electronic device to: transmitting information inputted using the touch panel to the second application; as well as A result of processing the information input using the touch panel of the second application is displayed on at least a portion of the display.
12. The electronic device according to claim 1, wherein: When executed by the at least one processor, the instructions cause the electronic device to transmit a result of processing the second data related to the second application to an external electronic device based on the electronic device being connected to the external electronic device.
13. A method for controlling an electronic device, the method comprising: Operate the first OS; operating a second OS while operating the first OS, the second OS including a plurality of programs; controlling a first portion of the plurality of hardware devices to process first data from a first application executed based on the first OS, and executing a second application based on the second OS; obtaining at least a portion of the second data about the second application from a first program corresponding to at least a portion of the first type of second data among the plurality of programs of the second OS, and obtaining at least another portion of the second data from a second program corresponding to at least another portion of the second type of the second data among the plurality of programs of the second OS; as well as A second portion of the plurality of hardware devices is controlled to process the second data regarding the second application.
14. The method according to claim 13, further comprising: allocating the second OS to a first namespace based on a kernel of the first OS, and allocating at least some of the system resources of the electronic device to process the second data related to the second application, Wherein, the second application is executed based on at least some of the system resources allocated to the second OS.
15. The method according to claim 14, further comprising: The permissions of the first namespace assigned to the second OS are set on the electronic device.
Citation Information
Patent Citations
Method and apparatus for user interface in a system having two operating system environments
US20120278747A1
Mobile terminal
US20130027364A1
Operating System Layering
US20170269978A1