65 lines
3.6 KiB
HTML
65 lines
3.6 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title>Overview: Libgtop Reference Manual</title>
|
|
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
|
|
<link rel="home" href="index.html" title="Libgtop Reference Manual">
|
|
<link rel="up" href="libgtop-white-paper.html" title="White paper">
|
|
<link rel="prev" href="libgtop-white-paper.html" title="White paper">
|
|
<link rel="next" href="libgtop-lib.html" title="Libgtop Library Reference">
|
|
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
|
|
<link rel="stylesheet" href="style.css" type="text/css">
|
|
</head>
|
|
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
|
|
<td width="100%" align="left" class="shortcuts"></td>
|
|
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
|
|
<td><a accesskey="u" href="libgtop-white-paper.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
|
|
<td><a accesskey="p" href="libgtop-white-paper.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
|
|
<td><a accesskey="n" href="libgtop-lib.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
|
|
</tr></table>
|
|
<div class="sect1">
|
|
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
|
<a name="libgtop-white-paper-overview"></a>Overview</h2></div></div></div>
|
|
<p>This section should give you a short overview on how LibGTop
|
|
was developed, which things needed to be considered and how it
|
|
works.</p>
|
|
<div class="sect2">
|
|
<div class="titlepage"><div><div><h3 class="title">
|
|
<a name="libgtop-white-paper-overview-design"></a>Interface Design: Things that need to be considered</h3></div></div></div>
|
|
<p>
|
|
At the very beginning, it was necessary to collect all the data the library part
|
|
should provide and put them into some C structures. This was not that easiy as it
|
|
might sound since LibGTop should be portable to any modern UNIX system with a common
|
|
library part on all those systems, but the data that should be returned vary from
|
|
system to system. For instance some systems support shared memory, but some others
|
|
may not.</p>
|
|
<p>
|
|
The header files where we define these C structures (which are system-independent) are
|
|
shared between client and server. This way we can call the system dependent code
|
|
directly where we do not need any special privileges to do so.</p>
|
|
<p>
|
|
All of those structures contain a @code{flags} member which is interpreted as a bit
|
|
mask and tells the caller of the library functions which of the fields in the returned
|
|
structure are valid and which are not.</p>
|
|
</div>
|
|
<div class="sect2">
|
|
<div class="titlepage"><div><div><h3 class="title">
|
|
<a name="libgtop-white-paper-overview-server"></a>Server Implementation: The LibGTop "server"</h3></div></div></div>
|
|
<p>
|
|
The LibGTop @dfn{server} is a setgid/setuid binary which contains all the system
|
|
dependent code which needs special privileges. It is only build if it's required
|
|
on the current system (for instance, the Linux kernel provides all the required
|
|
data via its @file{/proc} filesystem so we do not need the server at all) and it
|
|
only contains the @dfn{features} which need privileges.</p>
|
|
<p>
|
|
Whenever we do not need any privileges to get all the data for some of the requested
|
|
structures (here called @dfn{features}) the library calls the sysdeps code directly
|
|
rather than using the server.</p>
|
|
</div>
|
|
</div>
|
|
<div class="footer">
|
|
<hr>Generated by GTK-Doc V1.33.1</div>
|
|
</body>
|
|
</html> |