haiku/docs/develop/net/apps.html

147 lines
4.4 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML>
<HEAD>
<TITLE>OpenBeOS Network Kit</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<STYLE type="text/css">
body
{
text-indent: 0in;
font-stretch: normal;
text-align: left;
font-weight: normal;
text-decoration: none;
font-variant: normal;
color: #000000;
font-size: 12pt;
font-style: normal;
widows: 2;
font-family: "Century Gothic", "Trebuchet MS", "Trebuchet", "Arial", "Helvetica";
background-color: #ffffff;
}
</STYLE>
</HEAD>
<BODY text=#000000 vLink=#0000a0 aLink=#0000ff link=#0000c0 bgColor=#ffffff>
<H1>OpenBeOS Network Kit</H1>
<P>
<UL>
<LI><A href="overview.html">Overview</A>
<LI>Implementation:
<UL>
<LI><A href="libs.html">The shared libraries</A>
<UL>
<LI><A href="libs.html#libnet">libnet.so</A>
<UL>
<LI><A href="libs.html#sockets_api">POSIX/BSD sockets support</A>
<LI><A href="libs.html#dns_resolver">DNS resolver</A>
<LI><A href="libs.html#libnet_misc">Misc functions</A>
</UL>
<LI><A href="libs.html#libnetapi">libnetapi.so</A>
</UL>
<LI><A href="stack_driver.html">The stack driver</A>
<LI><A href="stack.html">The network stack</A>
<UL>
<LI><A href="stack.html#core">Core module
<LI><A href="stack.html#interfaces">Interfaces modules</A>
<LI><A href="stack.html#protocols">Protocols modules</A>
</UL>
<LI><A href="apps.html">Network apps</A>
<UL>
<LI><A href="apps.html#preflet">The Network GUI preference app</A>
<LI><A href="apps.html#ping">ping</A>
<LI><A href="apps.html#ifconfig">ifconfig</A>
<LI><A href="apps.html#route">route</A>
<LI><A href="apps.html#traceroute">traceroute</A>
<LI><A href="apps.html#arp">arp</A>
</UL>
</UL>
</UL>
</P>
<HR>
<!-------------------->
<A name="overview">
<H2>Overview</H2>
<P>The OpenBeOS Network Kit consists of:
<UL>
<LI>a modular, add-ons based <A href="#stack">network stack</A>
<LI>two shared libraries, <A href="#libnet">libnet.so</A> and <A href="#libnetapi">libnetapi.so</A>
<LI>a <A href="#stack_driver">stack driver</A>, acting as interface between the
<A href="#stack">network stack</A> and <A href="#libnet">libnet.so</A>
<LI>basic network utilities
<LI>a modular GUI <A href="#preflet">preflet</A>
</UL>
</P>
<H3>Let's picture(s) talk</H3>
<P>The following image shows the overall network design:</P>
<IMG ALT="OpenBeOS Network Kit block diagram" SRC="obos_net_stack_design_1.gif"><BR>
<HR>
<H2>Implementation</H2>
<UL>
<LI><A name="stack">
<H3>The network stack</H3>
<I>Location</I>: <CODE>src/add-ons/kernel/network</CODE>
<P>Todo...</P>
<LI><A name="stack_driver">
<H3>The stack driver</H3>
<I>Location</I>: <CODE>src/add-ons/kernel/drivers/net/stack</CODE>
<P>The stack driver is the interface between <A href="#libnet">libnet</A> and the real stack behind him,
host by the <A href="#stack">network stack</A> kernel modules.</P>
His purpose is multiple:
<OL>
<LI>Provide the sockets == file descriptors support
<LI>Provide a support for select() on sockets
<LI>Load the network stack at first access, and keep it that way then...
</OL>
</P>
<LI><A name="libnet">
<H3>The libnet.so shared library</H3>
<I>Location</I>: <CODE>src/kits/net/libnet</CODE>
<P>This shared library is the way BeOS R5 provide the sockets POSIX/BSD API to apps. Being
binary compatible with R5 make this library implementation tedious.</P>
<LI><A name="libnetapi">
<H3>The libnetapi.so shared library</H3>
<I>Location</I>: <CODE>src/kits/net/libnetapi</CODE>
<P>This shared library contains thin C++ classes wrapping the C sockets POSIX/BSD API into
these BNet* classes we're used under BeOS: look at them in your <A href="file:///boot/beos/documentation/Be%20Book/The%20Network%20Kit/index.html">
BeBook</A></P>
<LI><A name="bin">
<H3>Basic network utilities</H3>
<UL>
<LI><B>ping</B><BR>
<I>Location</I>: <CODE>src/apps/bin/ping</CODE>
<LI><B>ifconfig</B><BR>
<I>Location</I>: <CODE>src/apps/bin/ifconfig</CODE>
<LI><B>route</B><BR>
<I>Location</I>: <CODE>src/apps/bin/route</CODE>
<LI><B>traceroute</B><BR>
<I>Location</I>: <CODE>src/apps/bin/traceroute</CODE>
<LI><B>arp</B><BR>
<I>Location</I>: <CODE>src/apps/bin/arp</CODE>
</UL>
</UL>
<HR>
<H6>Philippe Houdoin, March 24rd, 2003</H6>
</BODY>
</HTML>