{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,3]],"date-time":"2026-05-03T03:16:41Z","timestamp":1777778201953,"version":"3.51.4"},"reference-count":28,"publisher":"SAGE Publications","issue":"3","license":[{"start":{"date-parts":[[2018,2,1]],"date-time":"2018-02-01T00:00:00Z","timestamp":1517443200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/journals.sagepub.com\/page\/policies\/text-and-data-mining-license"}],"content-domain":{"domain":["journals.sagepub.com"],"crossmark-restriction":true},"short-container-title":["Information Visualization"],"published-print":{"date-parts":[[2019,7]]},"abstract":"<jats:p>The Linux kernel has grown to 20\u2009million lines of code, which have been contributed by almost 14,000 programmers. The complexity of the Linux kernel challenges the kernel maintenance and makes comprehending the kernel more difficult for developers learning the kernel. Automated tool support is crucial for comprehending such a large-scale program involving a high volume of code. In this article, we present KernelGraph, which enhances understanding of the Linux kernel by providing a visual representation of kernel internals. KernelGraph resembles online map systems and facilitates kernel code navigation in an intuitive and interactive way. We describe the key techniques used in KernelGraph to process the vast amount of information in the kernel codebase quickly. We also implemented two applications built atop KernelGraph to enhance kernel comprehension. KernelGraph was presented to 30 participants, who were asked several questions about their kernel comprehension in a controlled study. Our experimental results show that, compared with other source code comprehension tools, KernelGraph improves kernel comprehension by enabling people to visually browse the kernel code and by providing an effective means for exploring the kernel structure. The ability to switch seamlessly between high-level views and source code significantly reduces the gap between source code and high-level mental representation. KernelGraph can be easily extended to support visualizations of other large-scale codebases.<\/jats:p>","DOI":"10.1177\/1473871617743239","type":"journal-article","created":{"date-parts":[[2018,2,1]],"date-time":"2018-02-01T09:03:40Z","timestamp":1517475820000},"page":"283-296","update-policy":"https:\/\/doi.org\/10.1177\/sage-journals-update-policy","source":"Crossref","is-referenced-by-count":2,"title":["KernelGraph: Understanding the kernel in a graph"],"prefix":"10.1177","volume":"18","author":[{"given":"Jianjun","family":"Shi","sequence":"first","affiliation":[{"name":"School of Computer Science and Technology, Beijing Institute of Technology, Beijing, P.R. China"}]},{"given":"Weixing","family":"Ji","sequence":"additional","affiliation":[{"name":"School of Computer Science and Technology, Beijing Institute of Technology, Beijing, P.R. China"}]},{"given":"Jingjing","family":"Zhang","sequence":"additional","affiliation":[{"name":"School of Computer Science and Technology, Beijing Institute of Technology, Beijing, P.R. China"}]},{"given":"Zhiwei","family":"Gao","sequence":"additional","affiliation":[{"name":"School of Computer Science and Technology, Beijing Institute of Technology, Beijing, P.R. China"}]},{"given":"Yizhuo","family":"Wang","sequence":"additional","affiliation":[{"name":"School of Computer Science and Technology, Beijing Institute of Technology, Beijing, P.R. China"}]},{"given":"Feng","family":"Shi","sequence":"additional","affiliation":[{"name":"School of Computer Science and Technology, Beijing Institute of Technology, Beijing, P.R. China"}]}],"member":"179","published-online":{"date-parts":[[2018,2,1]]},"reference":[{"key":"bibr1-1473871617743239","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-6423(99)00036-2"},{"key":"bibr2-1473871617743239","first-page":"329","volume-title":"Proceedings of the first IEEE international conference on cognitive informatics","author":"Klemola T"},{"key":"bibr3-1473871617743239","first-page":"96","volume-title":"Proceedings of the IEEE 3rd working conference on software visualization (VISSOFT)","author":"Hawes N"},{"key":"bibr4-1473871617743239","doi-asserted-by":"publisher","DOI":"10.1145\/102377.115768"},{"key":"bibr5-1473871617743239","unstructured":"Shulyupin C. The interactive map of Linux kernel, http:\/\/www.makelinux.net\/kernel_map (2007, accessed 20 April 2017)."},{"key":"bibr6-1473871617743239","doi-asserted-by":"publisher","DOI":"10.1109\/2.488299"},{"key":"bibr7-1473871617743239","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2006.10.041"},{"key":"bibr8-1473871617743239","first-page":"38","volume-title":"Proceedings of the IEEE symposium on information visualization (InfoVis \u201997)","author":"Storey MAD"},{"key":"bibr9-1473871617743239","unstructured":"Source Dynamics, Inc. Source insight, http:\/\/www.sourceinsight.com (2017, accessed 11 March 2017)."},{"key":"bibr10-1473871617743239","unstructured":"Scientific Toolworks, Inc. Understand, http:\/\/scitools.com (1996, accessed 11 March 2017)."},{"key":"bibr11-1473871617743239","unstructured":"Project G. Gcc, the GNU compiler collection, http:\/\/gcc.gnu.org (1987, accessed 25 March 2017)."},{"key":"bibr12-1473871617743239","unstructured":"Poznyakoff S. GNU cflow, http:\/\/www.gnu.org\/software\/cflow (2011, accessed 25 March 2017)."},{"key":"bibr13-1473871617743239","unstructured":"Lattner C. clang: a C language family frontend for LLVM, http:\/\/clang.llvm.org (2007, accessed 25 March 2017)."},{"key":"bibr14-1473871617743239","unstructured":"Van Heesch D. Doxygen, http:\/\/www.doxygen.org (1997, accessed 20 April 2017)."},{"key":"bibr15-1473871617743239","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-49487-6_4"},{"key":"bibr16-1473871617743239","unstructured":"Karypis G. METIS\u2014serial graph partitioning and fill-reducing matrix ordering, http:\/\/glaros.dtc.umn.edu\/gkhome\/views\/metis (2013, accessed 12 April 2017)."},{"key":"bibr17-1473871617743239","doi-asserted-by":"publisher","DOI":"10.1002\/j.1538-7305.1970.tb01770.x"},{"key":"bibr18-1473871617743239","doi-asserted-by":"publisher","DOI":"10.1145\/1290672.1290682"},{"key":"bibr19-1473871617743239","doi-asserted-by":"publisher","DOI":"10.1007\/BF01386390"},{"key":"bibr20-1473871617743239","unstructured":"Baidu, Inc. ECharts, http:\/\/echarts.baidu.com.cn (2016, accessed 20 April 2017)."},{"issue":"14","key":"bibr21-1473871617743239","first-page":"22","volume":"40","author":"Mohanta K","year":"2012","journal-title":"Int J Comput Appl T"},{"key":"bibr22-1473871617743239","unstructured":"Opdenacker M, Petazzoni T. Free electrons, http:\/\/elixir.free-electrons.com\/linux\/v3.19\/ident (2004, accessed 20 May 2017)."},{"key":"bibr23-1473871617743239","first-page":"26","volume-title":"Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering (Sigsoft\/fse\u201911)","author":"Yin Z"},{"key":"bibr24-1473871617743239","unstructured":"Torvalds L. Linux kernel archives, http:\/\/www.kernel.org (1991, accessed 20 April 2017)."},{"key":"bibr25-1473871617743239","first-page":"117","volume-title":"Proceedings of the IEEE symposium on information visualization (InfoVis\u201902)","author":"Fekete JD"},{"key":"bibr26-1473871617743239","unstructured":"Russell R. Free Code Graphing Project, http:\/\/fcgp.sourceforge.net (2004, accessed 20 April 2017)."},{"key":"bibr27-1473871617743239","first-page":"1","volume-title":"Proceedings of the 2015 symposium and bootcamp on the science of security (HotSoS \u201915)","author":"Ferreira G"},{"key":"bibr28-1473871617743239","first-page":"93","volume-title":"Proceedings of the symposium and bootcamp on the science of security (HotSos \u201916)","author":"Malik MM"}],"container-title":["Information Visualization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/1473871617743239","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/full-xml\/10.1177\/1473871617743239","content-type":"application\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/1473871617743239","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,29]],"date-time":"2026-04-29T19:18:55Z","timestamp":1777490335000},"score":1,"resource":{"primary":{"URL":"https:\/\/journals.sagepub.com\/doi\/10.1177\/1473871617743239"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,2,1]]},"references-count":28,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2019,7]]}},"alternative-id":["10.1177\/1473871617743239"],"URL":"https:\/\/doi.org\/10.1177\/1473871617743239","relation":{},"ISSN":["1473-8716","1473-8724"],"issn-type":[{"value":"1473-8716","type":"print"},{"value":"1473-8724","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,2,1]]}}}