<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=System.map</id>
	<title>System.map - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=System.map"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=System.map&amp;action=history"/>
	<updated>2026-04-30T10:57:31Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=System.map&amp;diff=1644288&amp;oldid=prev</id>
		<title>imported&gt;Frap: /* Internals */</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=System.map&amp;diff=1644288&amp;oldid=prev"/>
		<updated>2025-04-30T12:38:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Internals&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Symbol table used by the Linux kernel}}&lt;br /&gt;
In [[Linux]], the {{mono|&amp;#039;&amp;#039;&amp;#039;System.map&amp;#039;&amp;#039;&amp;#039;}} file is a [[symbol table]] used by the [[kernel (operating system)|kernel]].&lt;br /&gt;
&lt;br /&gt;
A symbol table is a look-up between symbol names and their addresses in memory. A symbol name may be the name of a variable or the name of a function. The System.map is required when the address of a symbol name, or the symbol name of an address, is needed. It is especially useful for debugging [[kernel panic]]s and [[Linux kernel oops|kernel oops]]es. The kernel does the address-to-name translation itself when &amp;lt;code&amp;gt;CONFIG_KALLSYMS&amp;lt;/code&amp;gt; is enabled so that tools like ksymoops are not required.&amp;lt;ref&amp;gt;{{cite web|url=https://kernelnewbies.org/FAQ/System.map |title=FAQ/System.map - Linux Kernel Newbies |publisher=kernelnewbies.org |date=2006-04-14 |access-date=2014-04-06}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Internals==&lt;br /&gt;
The following is part of a &amp;lt;code&amp;gt;System.map&amp;lt;/code&amp;gt; file:&amp;lt;ref&amp;gt;{{cite web|author=Peter Jay Salzman |url=https://rlworkman.net/system.map/ |title=The system.map File |publisher=Rlworkman.net |date=2003-05-28 |access-date=2014-04-06}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
c041bc90 b packet_sklist&lt;br /&gt;
c041bc94 b packet_sklist_lock&lt;br /&gt;
c041bc94 b packet_socks_nr&lt;br /&gt;
c041bc98 A __bss_stop&lt;br /&gt;
c041bc98 A _end&lt;br /&gt;
c041c000 A pg0&lt;br /&gt;
ffffe400 A __kernel_vsyscall&lt;br /&gt;
ffffe410 A SYSENTER_RETURN&lt;br /&gt;
ffffe420 A __kernel_sigreturn&lt;br /&gt;
ffffe440 A __kernel_rt_sigreturn&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Because addresses may change from one build to the next, a new &amp;lt;code&amp;gt;System.map&amp;lt;/code&amp;gt; is generated for each build of the kernel.&amp;lt;ref&amp;gt;{{cite web|url=http://www.faqs.org/docs/Linux-HOWTO/Kernel-HOWTO.html#systemmap |title=Kernel-HOWTO |publisher=faqs.org |access-date=2014-04-06}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Symbol types===&lt;br /&gt;
The character between the address and the symbol (separated by spaces) is the &amp;#039;&amp;#039;type&amp;#039;&amp;#039; of a symbol. The &amp;lt;code&amp;gt;[[nm (Unix)|nm]]&amp;lt;/code&amp;gt; utility program on [[Unix system]]s lists the symbols from object files. The &amp;lt;code&amp;gt;System.map&amp;lt;/code&amp;gt; is directly related to it, in that this file is produced by &amp;lt;code&amp;gt;nm&amp;lt;/code&amp;gt; on the whole kernel program{{snd}} just like &amp;lt;code&amp;gt;nm&amp;lt;/code&amp;gt; lists the symbols and their types for any small object programs.&amp;lt;ref name=&amp;quot;nm-man&amp;quot;&amp;gt;{{cite web|url=https://linux.die.net/man/1/nm |title=nm(1): symbols from object files - Linux man page |publisher=Linux.die.net |access-date=2014-04-06}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some of these types are:&amp;lt;ref name=&amp;quot;nm-man&amp;quot; /&amp;gt;&lt;br /&gt;
{{Div col|colwidth=30em}}&lt;br /&gt;
* &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; for absolute&lt;br /&gt;
* &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; for uninitialized data section (called BSS)&lt;br /&gt;
* &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt; for initialized data section&lt;br /&gt;
* &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt; for initialized data section for small objects (global)&lt;br /&gt;
* &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; for sections specific to DLLs&lt;br /&gt;
* &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; for debugging symbol&lt;br /&gt;
* &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; for stack unwind section&lt;br /&gt;
* &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; for read only data section&lt;br /&gt;
* &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; for uninitialized data section for small objects&lt;br /&gt;
* &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; for text (code) section&lt;br /&gt;
* &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt; for undefined&lt;br /&gt;
* &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; for weak object&lt;br /&gt;
* &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; for weak objects which have not been tagged so&lt;br /&gt;
* &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; for stabs symbol in an a.out object file&lt;br /&gt;
* &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; for &amp;quot;symbol type unknown&amp;quot;&lt;br /&gt;
{{Div col end}}&lt;br /&gt;
&lt;br /&gt;
==Filesystem location==&lt;br /&gt;
After building the [[Linux kernel]], &amp;lt;code&amp;gt;System.map&amp;lt;/code&amp;gt; is located in the root of the source directory. However, some further software installation steps expect to locate the file elsewhere:&amp;lt;ref&amp;gt;{{cite web|url=http://linuxmafia.com/faq/Kernel/systemmap.html |title=Peter&amp;#039;s Notes: System.map |publisher=Linuxmafia.com |date=2003-05-29 |access-date=2014-04-06}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* as &amp;lt;code&amp;gt;[[/boot/]]System.map-$([[uname]] -r)&amp;lt;/code&amp;gt;&lt;br /&gt;
* building [[SVGALib|SVGAlib]] expects to find &amp;lt;code&amp;gt;/lib/modules/$(uname -r)/build/System.map&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Portal|Linux}}&lt;br /&gt;
* [[Linux kernel oops]]&lt;br /&gt;
* [[Kernel panic]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
{{Linux}}&lt;br /&gt;
{{Linux kernel}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Executable file formats]]&lt;br /&gt;
[[Category:Linux kernel]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Frap</name></author>
	</entry>
</feed>