xref: /haiku/docs/user/net/_network_intro.dox (revision 85892ec52f476b254d75e2bb2e6560e72faa567c)
1/*
2 * Copyright 2004 Philippe Houdoin
3 * Copyright 2009-2015 Haiku, Inc. All rights reserved.
4 * Distributed under the terms of the MIT License.
5 *
6 * Authors:
7 *		Philippe Houdoin
8 *		John Scipione, jscipione@gmail.com
9 */
10
11
12/*!
13	\page network_intro Introduction to the Network Kit
14
15	The Haiku Network Kit consists of:
16	- A modular, add-ons based network stack
17	- Two shared libraries, libnet.so and libnetapi.so
18	- A stack driver, acting as interface between the network stack and
19	  libnet.so
20	- Basic network apps
21	- A modular GUI preflet
22
23	The libnet.so shared library is the way that BeOS R5 provided POSIX/BSD
24	API sockets to apps. Being binary compatible with BeOS R5 has made this
25	library implementation tedious. To counter this, the libnetapi.so shared
26	library was developed. It contains thin C++ classes wrapping the C
27	sockets POSIX/BSD API into these BNet* classes we're used under BeOS.
28
29	The stack driver is the interface between libnet.so and the real stack
30	behind it, hosted by the network stack kernel modules. Its purposes
31	include:
32	-# Providing sockets to file descriptors translation support
33	-# Providing support for select() on sockets
34	-# Loading the network stack on first access, and then keeping it for
35	   further accesses
36
37	The following diagram illustrates the network stack design on Haiku:
38
39	\image html obos_net_stack_design_1.gif
40
41	The Network Kit includes a handful of useful networking related apps
42	including ping, ifconfig, route, traceroute, and arp.
43
44	See the User Guide for more information about the
45	<a href="http://haiku-os.org/docs/userguide/en/preferences/network.html">Network preferences app</a>
46	included as part of the Network Kit.
47*/
48