You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

301 lines
13 KiB

4 years ago
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.12">
<meta name="description" content="Intro and Install">
<meta name="keywords" content="Linux, apt">
<meta name="author" content="Apostolos rootApostolos@swarmlab.io">
<title>An Introduction to Linux !</title>
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/asciidoctor.js/1.5.9/css/asciidoctor.min.css">
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.3/styles/github.min.css">
</head>
<body class="article toc2 toc-right">
<div id="header">
<h1>An Introduction to Linux !</h1>
<div class="details">
<span id="author" class="author">Apostolos rootApostolos@swarmlab.io</span><br>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Table of contents</div>
<ul class="sectlevel1">
<li><a href="#_the_proc_filesystem">1. The /proc Filesystem</a></li>
<li><a href="#_cpu_info">2. cpu info</a></li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><br></p>
</div>
<div class="sidebarblock">
<div class="content">
<div class="title">procfs</div>
<div class="paragraph">
<p>The proc filesystem (<strong>procfs</strong>) is a special filesystem in Unix-like operating systems that presents information about processes and other system information in a hierarchical file-like structure,
<strong>providing</strong> a more convenient and <strong>standardized method for dynamically accessing process</strong> data held in the kernel than traditional tracing methods or direct access to kernel memory.</p>
</div>
<div class="paragraph">
<p>Typically</p>
</div>
<div class="ulist">
<ul>
<li>
<p>it is mapped to a mount point named /proc at boot time.</p>
</li>
<li>
<p>The proc file system acts as an interface to internal data structures in the kernel.</p>
</li>
<li>
<p>It can be used to obtain information about the system and to change certain kernel parameters at runtime (sysctl).</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_the_proc_filesystem">1. The /proc Filesystem</h2>
<div class="sectionbody">
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The proc filesystem provides a method of communication between <strong>kernel space</strong> and <strong>user space</strong>. For example, the GNU version of the process reporting utility <strong>ps</strong> uses the proc file system to obtain its data, without using any specialized system calls.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>The directory /proc contains (among other things) one subdirectory for each process running on the system, which is named after the process ID (PID).</p>
</div>
<div class="paragraph">
<p>The link ‘self’ points to the process reading the file system. Each process subdirectory has the entries listed in: ls /proc/&lt;pid&gt;</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">cat /proc/meminfo
MemTotal: 8174328 kB
MemFree: 6186516 kB
MemAvailable: 7535332 kB
Buffers: 146740 kB
Cached: 1294156 kB
SwapCached: 0 kB
Active: 967184 kB
Inactive: 606252 kB
Active(anon): 135620 kB
Inactive(anon): 85064 kB
Active(file): 831564 kB
Inactive(file): 521188 kB
Unevictable: 3652 kB
Mlocked: 3652 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 68 kB
Writeback: 0 kB
AnonPages: 136188 kB
Mapped: 113344 kB
Shmem: 85724 kB
Slab: 340236 kB
SReclaimable: 302048 kB
SUnreclaim: 38188 kB
KernelStack: 3792 kB
PageTables: 4888 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 4087164 kB
Committed_AS: 901432 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 51200 kB
CmaTotal: 0 kB
CmaFree: 0 kB
...</code></pre>
</div>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 1. Main entries in /proc</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">File</th>
<th class="tableblock halign-left valign-top">Content</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/cmdline</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Kernel command line information.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/console</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Information about current consoles including tty.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/crypto</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">- a list of available cryptographic modules</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/devices</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Device drivers currently configured for the running kernel.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/diskstats</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">- giving some information (including device numbers) for each of the logical disk devices</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/dma</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Info about current DMA channels.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/fb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Framebuffer devices.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/filesystems</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Current filesystems supported by the kernel.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/interrupts, /proc/iomem, /proc/ioports and the directory /proc/irq</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">- giving some self-explanatory details about the devices (physical or logical) using the various system resources</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/iomem</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Current system memory map for devices.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/ioports</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Registered port regions for input output communication with device.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/loadavg</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– System load average.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/locks</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Files currently locked by kernel.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/meminfo</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Info about system memory (see above example).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/misc</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Miscellaneous drivers registered for miscellaneous major device.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/modules</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">- one of the most important files in /proc, containing a list of the kernel modules currently loaded . It gives some indication (not always entirely correct) of dependencies.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/mounts</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– List of all mounts in use by system.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/mounts</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">- a symlink to self/mounts which contains a list of the currently mounted devices and their mount points (and which file system is in use and what mount options are in use).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/net</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">- a directory containing useful information about the network stack, in particular /proc/net/nf_conntrack, which lists existing network connections (particularly useful for tracking routing when iptables FORWARD is used to redirect network connections)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/partitions</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Detailed info about partitions available to the system.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/pci</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Information about every PCI device.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/stat</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Record or various statistics kept from last reboot.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/swap</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Information about swap space.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/scsi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">- giving information about any devices connected via a SCSI or RAID controller</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/sysvipc</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">- containing memory-sharing and inter-process communication (IPC) information.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/tty</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">- containing information about the current terminals; /proc/tty/driver looks to be[original research?] a list of the different types of tty available - each of which is a list of those of each type</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/uptime</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Uptime information (in seconds).</p></td>
</tr>
</tbody>
<tfoot>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/proc/version</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">– Kernel version, gcc version, and Linux distribution installed.</p></td>
</tr>
</tfoot>
</table>
</div>
</div>
<div class="sect1">
<h2 id="_cpu_info">2. cpu info</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 16
model : 6
model name : AMD Athlon(tm) II X2 270 Processor
stepping : 3
microcode : 0x10000c8
cpu MHz : 2000.000
cache size : 1024 KB
...
processor : 1
vendor_id : AuthenticAMD
cpu family : 16
model : 6
model name : AMD Athlon(tm) II X2 270 Processor
stepping : 3
microcode : 0x10000c8
cpu MHz : 800.000
cache size : 1024 KB</code></pre>
</div>
</div>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.3/highlight.min.js"></script>
<script>
if (!hljs.initHighlighting.called) {
hljs.initHighlighting.called = true
;[].slice.call(document.querySelectorAll('pre.highlight > code')).forEach(function (el) { hljs.highlightBlock(el) })
}
</script>
</body>
</html>