ip-noise / site / wml / links.html.wml

#!wml
#include 'template.wml'
<subject "IP-Noise Project: Links and Reference Material">

<h2>Tools we can use for the project</h2>

<p>
<a href="http://user-mode-linux.sourceforge.net/">User-mode Linux</a> - 
a version of the Linux kernel that runs as a standard Linux process. Thus,
it can be debugged with gdb, and the system doesn't hang when there's a 
problem in the kernel code.
</p>

<p>
<b>Writing an IP firewalling driver in user-mode</b> - I was told that
using the Linux' IP Firewalling mechanism it would be possible to write
the entire noise simulator in user-mode. Of course, we should write the code
so it can also be compiled as a module. However, running the whole thing
as user-level will make for an easier debugging.
</p>

<p>
<a href="http://oss.sgi.com/projects/kdb/">SGI's kdb</a> - A kernel debugger
from SGI that enables setting breakpoints, examining contents and debugging
kernel code. Should prove useful at the times when we have to work in 
kernel-mode.
</p>

<p>
<a href="http://pice.sourceforge.net/">Private ICE</a> - A system-level 
symbolic source debugger for Linux, not unlike Soft-ICE for Windows. Should
prove useful too.
</p>

<p>
<a href="http://www.vmware.com/">VMWare</a> - An emulator of an i386 that runs
above Linux. We can use it to test experimental kernels without having to 
reboot constantly. There's a free alternative in the making called 
<a href="http://www.plex86.org/">Plex86</a>, but it is still not as complete
or as usable.
</p>

<p>
<a href="http://www.gnu.org/directory/ksymoops.html">ksymoops</a> - In case
OOPS faults do happen (and the kernel debuggers don't trap them) we can use 
this tool to diagnose them.
</p>

<h2>Reference Material</h2>

<p>
<a href="http://plasma-gate.weizmann.ac.il/Linux/maillists/01/07/msg00363.html">
Linux-IL's thread on the subject</a>
</p>

<p>
<a href="http://www.kernelnewbies.org/documents/ipnetworking/linuxipnetworking.html">
The Kernel-Newbies IP Networking tutorial</a> - contains a packet filter 
example.
</p>

<p>
<a href="http://www.linuxdoc.org/">The Linux Documentation Project</a> -
contains some in-depth guides and HOWTOs which may prove useful.
</p>

<p>
<a href="http://www.oreilly.com/catalog/linuxdrive2/chapter/book/index.html">
Linux Device Drivers 2nd edition</a> - this book is available online
for free, too.
</p>

<h2>Kernel 2.4 Firewalling</h2>

<p>
<a href="http://netfilter.samba.org/">The Netfilter/IP-Tables Homepage</a> 
- contains the most up-to-date iptables package as well as many documents
and stuff for hacking it.
</p>

<p>
<a href="http://www.intercode.com.au/jmorris/perlipq/">Perl-IPQ</a> -
perl bindings for the user-space IP filtering. Good for experiencing.
</p>

<p>
<a href="http://netfilter.samba.org/unreliable-guides/packet-filtering-HOWTO/packet-filtering-HOWTO.linuxdoc-7.html">
Filtering Packets in user-space using the QUEUE directive</a>
</p>

<h2>Perl-Related</h2>

<p>
<a href="http://aspn.activestate.com/ASPN/Reference/Products/ASPNTOC-ACTIVEPERL-002">
The Perl Man Pages
</a> - can be used for perl learning and reference. However, a-priory 
knowledge of other programming languages is required.
</p>

<p>
<a href="http://vipe.technion.ac.il/~shlomif/lecture/Perl/Newbies/">
Perl for Perl Newbies</a> - a lecture series which I gave to the Haifa
Linux Club.
</p>

<p>
<a href="http://packages.debian.org/unstable/devel/perl-byacc.html">Perl
Berkeley Yacc</a> - A version of byacc with support for generating perl code.
</p>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.