- Spend some time on forums and blogs dedicated to Android, you will see many references to this term. But the core is not something unique, used only in Android. iOS and MacOS, Windows, BlackBerry's QNXVse and other operating systems use it. Since the Android uses the Linux kernel, the more will be discussed is about it.
The Linux kernel, which uses your Android device is different from that use different operating systems. It contains a set of special codes. Manufacturers are also involved in the process, as should issue the driver used for iron under the current version of the kernel. For this reason, independent developers takes some time out to make a new version of the work on the old device without a premium. Drivers written by Gingerbread, may well not work on the core Ice Cream Sandwich. And this is very important, because one of the main functions of the kernel is that it is necessary for iron control. Inside Continuation Android kernel.
For any action of iron and software necessary to the kernel. For example, you click on the Search button on your phone, so you give the command to open the corresponding application. The following occurs: you touch a certain point digitizer, which transmits information about a software touch the screen at certain coordinates. Software knows that when exposed to a certain point it is necessary to open the search window. The core of this situation causes the digitizer to perceive touch, find their location, and to talk about the system of implementation of this action. Ultimately, when the system receives information about the touch from the core (through the driver), she knows what needs to be out on the screen. Software and hardware are connected to the core, which allows the phone to perform the necessary actions. Incoming information on the one hand becomes outgoing and the other leads to action.
Without the nucleus, which sends and receives information, developers would have to create codes for each event and for each element of iron in your device. With the core of it all so much easier. Developers only need to tie all the elements together.Linux script
- as a rule executable file written in the command language shell (shell) linux and having an extension sh. It is a sign of the presence of characters #! / Bin / sh at the beginning of the file. Because in Linux for security reasons the current directory is not considered as such for the executable file, the script is always executed with the prefix of the current directory ./skript.sh. I draw your attention that the script is necessary for him to do exactly so, it must be assigned to an attribute of the executable file "x". In addition Ubuntu for this attribute is the command chmod + x skript.sh. I draw your attention that, in contrast to the many Linux distributions, Ubuntu uses the default shell dash, rather than bash (bourne again shell). For scripting compatibility is sometimes necessary to explicitly register at the beginning of the script #! / Bin / bash. Bootloader
- the operating system loader. We exist a huge number of different downloaders. When any device is activated, the processor must immediately transfer control to some point in accordance with the initial values вЂ‹вЂ‹of the registers. As a result, execution jumps to the boot loader or boot loader, which has already passed certain parameters of the core operating system and load it into memory management transfer. In such SGSIII kernel loader is secondary bootloader (Secondary Bootloader), which is stitched file sbl.bin. Governor
- regulator of processor behavior. Sets the algorithm for which the processor will change the frequency with increasing / decreasing load. There are many different algorithms: conservative, interactive, ondemand, lulzactive, smartass, etc. It is installed either by the program or through a script in some kernels.
Brief description of controls
- while the description is not found. All that is known is based on interactive. Almost the same as Smartass. ondemand
- Available in almost all kernels and in many is default (by default). When the CPU load reaches a certain upper threshold, this control quickly raises the frequency of the processor to respond to the request, then gradually reduces the frequency of the CPU when it is no longer needed. ondemandX
- changed sensitivity and added sleep mode. conservative
- Available in some cores. It is similar to the ondemand regulator, but will increase the frequency of the CPU more gradually (not so fast) to better fit the request. This regulator provides less sharp response, but may save the battery better. interactive
- it has a different approach. Instead of the CPU to sample at a specific frequency (level), it will raise the rate when the processor exits the idle mode. When the CPU goes from idle timer configured to ensure that run for 1-2 ticks (CPU cycle of operation). If during this time (from the time the output from the processor idle mode to start the timer) is loaded on the CPU 100%, it is considered enough distilled and the frequency rises to a maximum value. If the CPU was not 100% occupied, while the regulator assesses the CPU usage for the last 'min_sample_rate' (default 50,000 ms) to reduce the frequency to the desired level. This control is considered more interactively responds to different CPU. The only configurable parameter - the time during which the processor will remain at a particular frequency before you will start to decline (50,000 microseconds). interactiveX
- supplemented with interactive code that blocks the CPU at the minimum frequency when the device screen is turned off. It has a sleep + wake profile, meaning that you donвЂ™t have to manually set the Screen Off profile in SetCPU. lazy
- in ondemand basis min_time_state with an additional parameter to indicate the minimum time during which the CPU is at the frequency before a decrease / increase in the latter. The idea - to remove any instability caused by the rapid change of frequency ondemand. This control state polls more often than ondemand, but changes the frequency by one step only after min_time_state. Screenoff_maxfreq also has a parameter that can be set to determine the maximum frequency of screen-off. lagfree
- quite similar to ondemand in source code and its design and purpose. The difference in its optimization for better stability and "sharpened" in a loaded environment. The frequency delicately decreases and increases, instead of immediately jumping to 100% when speed is needed. lulzactive
- default in the core Lulz. Based on interactive. With the profile of the disabled screen as interactiveX and some features of smartass.
cpu work load>= 60%
cpu frequency changes from (Lx) to (Lx -1)
up sampling time = 24000us (from smartass governor)
(L0) 1200 - (L1) 1000 - (L2) 800 - (L3) 500 - (L4) 200
cpu_load = 60%, current frequency = (L2) 800>>frequency = (L1) 1000
cpu_load = 60%, current frequency = (L1) 1000>>frequency = (L0) 1200
cpu work load< 60%
cpu frequency keeps (lx) to (lx + 1)
down sampling time = 49000us (from smartass governor)
cpu frequency is locked at scaling min freqeuncy.
default min freq of Galaxy S II is 200MHz.
"screen off" profile of SetCPU.
- Conservative adaptation, but with very good performance. A very nice regulator with a good battery life. performance
- Available in some cores. Will keep the CPU at the maximum set frequency all the time. This is more efficient than setting min and max at the same frequency and leaving the ondemand regulator, because the system will not waste resources on checking the CPU utilization rate. powersave
- Available in some cores. Will keep the CPU at the minimum set value all the time. userspace
- Allows a user or program with root rights (works with UID 0 - root) to install the processor at a specific frequency via the file scaling_setspeed in a specific directory. SavagedZen
- while the description is not found. All that is known is based on interactive. Another one is very good and balanced modification Smartass. smartass
- (erasmux @ xda). Fully rewritten interactive control. The CPU spends more time at lower frequencies to improve battery life. Also gives the Screen Off profile, staying at the minimum frequency when the phone is not active (in idle mode). smartassV2
- A lot of customizable parameters. Quickly responding to changes in CPU utilization, based on the idea of вЂ‹вЂ‹interactive. The threshold of the "ideal frequency" is also adjusted (as in lulzactive) and the controller above this frequency behaves more aggressively than in the lower zone. In sleep mode, another, also customizable, вЂњideal frequencyвЂќ is used.
Description of the repository with the source (English):
+ The CPUfreq governor "smartassV2", like other governors, aims to balance
+ Performance vs battery life by using low frequencies when load is low and
+ Ramping the frequency when necessary, fast enough to ensure responsiveness.
+ The implementation of the governor is roughtly based on the idea of вЂ‹вЂ‹interactive.
+ The idle loop is used to track when the CPU has idle cycles. The idle loop will
+ Set a relatively high rate timer to sample the load when appropriate, the timer
+ Will measure the load since it was set and schedule a work queue task to do the
+ Actual frequency change when necessary.
+ The most important tunable is the "ideal" frequency: this governor will aim
+ For this frequency, in the sense that it will ramp towards this frequency much
+ More aggresively than beyond it - both when ramping up from below this frequency
+ And when ramping down from above this frequency. Still, note, that when load is
+ Low enough the governor should choose the lowest available frequency regardless
+ Of the ideal frequency and similarly when load is consistently high enough the
+ Highest available frequency will be used.
+ Smartass also tracks the state of the screen, and when screen is off (a.k.a
+ Sleep or suspended in the terms of this governor) a different ideal frequency
+ Is used. This is the only difference between the screen on and screen off
+ States. Proper tuning of the awake_ideal_freq and sleep_ideal_freq should
+ Allow both high responsiveness when screen is on and utilizing the low
+ Frequency range when load is low, especially when screen is off.
+ Finally, smartass is a highly customizable governor with almost everything
+ Tweakable through the sysfs.
- a little more aggressive smartass
(Abbreviation of the English Initial RAM Disk, the disk in memory for initialization.) - a temporary file system used by the Linux kernel at boot time. Initrd commonly used for initialization before mounting the "real" file system. The Linux Kernel HOWTO (manual about compiling the kernel), write that initrd is intended to solve the problem of chicken and egg for modular kernel: for mounting the file system module is required for the disk and the file system, and requires a file system for reading the module with which the module read. Initramfs
The Linux 2.6 kernel has a new concept of boot disk Initrd - it is a compressed cpio-archive gzip.I / O Scheduler
- scheduler I / O operations. Responsible for planning the read / write block devices (flash card, hard drive, etc.). Task - the most efficient use of memory. The following schedulers (in order of appearance in the Light): noop (Linus Elevator), Deadline I / O Scheduler, Anticipatory I / O Scheduler, and "fair" scheduler - CFQ - Complete Fair Queuing I / O Scheduler. There are more recent - VВ®, SIO (Simple) and BFQ (Budget Fair Queuing). Overclocking (OC)
- increasing processor frequency limit (acceleration), which causes additional power consumption and heat generation. Degree of acceleration is highly dependent on the cooling and crystal quality. Undervolting (UV)
- lowering the power supply voltage that whatsoever. May refer to the CPU (usually) - CPU, graphics - GPU or system bus. It can significantly reduce the energy consumption of the whole system. The degree of UV stability and secure also depends on the quality of the crystal and is chosen for each telephone individually.