FIG. 3 is a block diagram of a program module according to various embodiments. According to an embodiment, the program module 310 (for example, the program 140) may include an Operating System (OS) that controls resources relating to an electronic device (for example, the electronic device 101) and/or various applications (for example, the applications 147) that are driven on the operating system. The operating system may include, for example, Android?, iOS?, Windows?, Symbian?, Tizen?, or Bada?. Referring to FIG. 3, the program module 310 may include a kernel 320 (for example, the kernel 141), middleware 330 (for example, the middleware 143), an API 360 (for example, the API 145), and/or applications 370 (for example, the applications 147). At least a part of the program module 310 may be preloaded on the electronic device, or may be downloaded from an external electronic device (for example, the electronic device 102 or 104 or the server 106).
The kernel 320 may include, for example, a system resource manager 321 and/or a device driver 323. The system resource manager 321 may control, allocate, or retrieve system resources. According to an embodiment, the system resource manager 321 may include a process manager, a memory manager, or a file system manager. The device driver 323 may include, for example, a display driver, a camera driver, a Bluetooth driver, a shared memory driver, a USB driver, a keypad driver, a Wi-Fi driver, an audio driver, or an inter-process communication (IPC) driver.