DOC PREVIEW
NU EECS 340 - Tools For Development And Exploration

This preview shows page 1 out of 3 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 3 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 3 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CS 340 Tools for Development and Exploration Dinda Page 1 of 3 Tools For Development And Exploration This document describes the development tools available on the TLAB machines, as well as tools that you can use to explore the local network and the Internet. Your code will be expected to compile with these tools and work on the TLAB machines. If you decide to do development somewhere else, make sure you use the same versions of the tools. This is especially important in the case of GCC, especially if you are using C++. All of these tools are included with most Linux distributions or are quite easy to install. Help The “man” command provides access to manual pages. “man gcc” will show you the man page for the gcc compiler. “man –k packet” will find man pages that have something to do with packets. “man man” will tell you how to use man. Some help in Linux is in GNU’s texinfo format. Run “info” to see all the installed info documents. You can also via man and info pages graphically using “gnome-help-browser”. Shells We assume that you will use /bin/bash as your shell. Minet scripts (the .sh files) are all written with that assumption. If you are using some other kind of shell, you can start a bash shell just by running /bin/bash. If you want to change your shell permanently to bash, use chsh. Paths It is important to note that two versions of certain tools are available on the TLAB machines, a default Red Hat 7.3 version in /usr/bin and (possibly) an upgraded version in /usr/local/bin. Please make sure that /usr/bin is first on your path, and that /usr/local/bin is somewhere on your path. On the TLAB machines, the default configuration should work fine for you. You will also want to add your Minet directory: export PATH=$PATH:/home/you/minet-whatever You may want to do this permanently in your ~/.bashrc. Editors An editor such as XEmacs (“xemacs”), GNU Emacs (“emacs”), vi, or others is essential. All are installed on the TLAB machines. Both Emacs editors integrate with make, GCC, and GDB to form a relatively powerful integrated development environment. GNU Make Make is the core tool for build management in Minet and many other programs. Make is covered in a separate document, and the GNU Make manual is available from the web page. CVS We will use CVS for version management during the class. Each of you will have read access to the Minet repository. If and when we release bug fixes, we’ll ask you to use CVS to update your local copy of Minet. The CVS commands you will have to understand are “checkout” and “update”. A pointer to the very helpful CVS Bubbles web site is on the web page.CS 340 Tools for Development and Exploration Dinda Page 2 of 3 GCC Compiler System The TLAB machines include GCC 2.96. If you use another machine, please be sure that your gcc’s version is the following: $ gcc -v Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-110) Other versions of GCC, such as 2.95.2 may also work, but we will compile and test your code on the TLAB machines. Minet currently does not compile on GCC 3.0 or later. GDB Debugger The TLAB machines include GDB 5.1. If you are having strange problems in debugging C++ code, make sure you are running the 5.0 version or later. Promiscuous mode and the Berkeley Packet Filter Your kernel must be able to run the Ethernet card in promiscuous mode and it must have Berkeley Packet Filter support enabled. The default Red Hat 7.3 kernel permits this if you are root or you are running a binary that is suid root or via sudo. On the TLAB machines, we have set up things up so that you’ll be able to run Minet and the other various tools described below. Libpcap Libpcap is an interface that program can use to access an Ethernet card running in promiscuous mode. Make sure you have version 0.4 or later. To find out your version, you can use rpm. You should see the following output: $ rpm -q -a | grep libpcap libpcap-0.6.2-12 Libnet Libnet is an interface for injecting raw Ethernet packets into the network. You should have version 1.1 or later. Tcpdump and Ethereal Tcpdump is a program for printing the traffic that your Ethernet card sees in a human readable form. If you are running the Ethernet card in promiscuous mode, then you can see all of the traffic that passes by. Running tcpdump without arguments will spew all the traffic that can be seen. You can supply tcpdump with a packet filter to limit what is printed to what you are specifically interested in. For example, $ /usr/sbin/tcpdump src scratchy and tcp will show you TCP traffic originating from the host “scratchy.” /usr/local/sbin/ethereal.sh is a graphical version of tcpdump. You will find these programs essential to debugging your code. Ifconfig /sbin/ifconfig –a gives you information about the interfaces in a machine. Route /sbin/route will show you the routing table of the machine. We have added the following route to our machines in order to make Minet 10-net addresses work correctly:CS 340 Tools for Development and Exploration Dinda Page 3 of 3 route add –net 10.10.0.0/16 eth0 Ping Ping is a program (and a duck) that you can use to see if the TCP/IP stack on a remote machine is actually functioning, provided that the stack supports ICMP. Minet is pingable. Traceroute Traceroute lets you discover the path that an IP packet takes from your local machine to some remote host, provided the intervening routers support ICMP. For example, here is the route from one Northwestern machine to www.wisc.edu: $ /usr/sbin/traceroute www.wisc.edu traceroute to www.wisc.edu (144.92.104.37), 30 hops max, 38 byte packets 1 birl-idf-eth-3.nwu.edu (129.105.100.170) 0.818 ms 0.715 ms 0.729 ms 2 lev-mdf-5-gig-3-0-1.nwu.edu (129.105.253.53) 0.958 ms 0.874 ms 0.795 ms 3 lev-mdf-rtr-1.nwu.edu (129.105.253.238) 1.556 ms 1.290 ms 1.281 ms 4 lev-mdf-rtr-2.nwu.edu (199.249.169.65) 1.941 ms 1.984 ms 2.804 ms 5 206.220.243.35 (206.220.243.35) 8.204 ms 7.681 ms 7.440 ms 6 r-macc.net.wisc.edu (144.92.128.129) 7.977 ms 8.865 ms 8.772 ms 7 gopher.adp.wisc.edu (144.92.104.37) 9.245 ms 8.048 ms 9.038 ms Netcat Netcat, or “nc”, is a tool for sending or receiving data using UDP or TCP. It is very handy for testing servers and things like the Minet protocol stack. Nslookup, Dig, and Whois


View Full Document

NU EECS 340 - Tools For Development And Exploration

Download Tools For Development And Exploration
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Tools For Development And Exploration and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Tools For Development And Exploration 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?