Generation of the community structure of kernel

Generation of the community structure of kernel

As typical software system, kernel of Android OS could have a community structure. There are two main approaches to analyze the community structure: one is based on code repositories and the other is based on topology analysis. The community structure analysis based on code repositories is generated by developers. For instance, there are several folders in directory of kernel source code: arch, drivers, documentation, init, kernel and so on, while different folders represent different features. This approach to analyze community structure is convenient for operation. Meanwhile, classification by developers may not reflect essence of interaction between communities if the code repositories designed improperly. The community structure analysis based on topology analysis is more complicated, however, it can steadily help researchers comprehend the community structure. We use Louvain algorithm [14] based on modularity to analyze the community structure of android OS kernel.

Focus on the mesoscopic level of network structure, a network can be divided into different clusters by utilizing the modularity as a metric [15]. Modularity defined as follows: (3) Where ijA is the adjacency matrix of the network, iijjkA= is the degree of iv, ic is the community ivbelongs to, and 12ijijmA=is the total number of edges. According to this algorithm, We eventually reveal the kernel’s community structure with 242 components to build a community-interaction network code shoppy

To analyze the interaction of the communities in kernel, we model the network of community-interaction, whose nodes and edges are communities and the interactions between communities respectively. In the function-call network, 457 nodes which can form 162 communities are not connected to maximal connected subgroup, i.e. the communities built by those 457 nodes cannot interact to the communities in maximal connected subgroup so that we only analyze 80 communities which have interactions. The weights of edges are the total call times between two communities. We finally get a directed-weighted community-interaction network which can be visualized in Fig.3. The diameter of a node reflects the quantity of functions contained in this community. The nodes of darker color have a higher degree than those of light color. In addition, the weight of the edges is measured by the number of function-calls between different communities which is in proportion to the width of links. The network features are shown in TABLE 2. Strength iS is an indicator to measure the information-exchange strength of the node iv[16]

The topological structure of function-call network in the kernel of Android OS has been analyzed in global scale. We conduct the community analysis to abstract the network and establish of the community-interaction network revealing the function interaction in the large scale. To understand the network reliability, the percolation theory is applied to analyze both function-call level and community-interaction networks. In this way we can identify the critical nodes and communities. This finding may help the system design and reliability testing to understand the different role of function in the viewpoint of the whole software system https://codeshoppy.com/php-projects-titles-topics.html