Serial Line IP Implementation for Linux Kernel TCP/IP Stack | ||
---|---|---|
<<< Previous | Next >>> |
Platform used is GNU Linux. Linux operating system provides simple and easy way to do system level programming by manipulating the kernel. In order to accomplish this project, it is required to insert the network drivers into the kernel. Hence Linux is perhaps our best choice.
1. make : The Make utility automatically determines which pieces of large program need to be recompiled and issues command to recompile them. Make can be used to describe any task where some files must be automatically updated when others change. All these rules must be specified in the file 'Makefile'. Make has got a number of runtime options. To use make, we must write a file called the 'makefile' that describes the relationships among files in our program, and the states the commands for updating each file. In a program, typically the executable file is updated from object files, which are in turn made by compiling source files. Once a suitable makefile exists, each time we change some source files, this simple shell command: make suffices to perform all necessary recompilations. The make program uses the makefile data base and the last-modification times of the files to decide which of the files need to be updated. For each of those files, it issues the commands recorded in the data base.
2. gdb : GNU Debugger (gdb) is the standard debugger on modern Unix systems. A Debugger is a program, which helps to troubleshoot code, mainly by allowing to execute the code line by line and examining or modifying the values of variables. If we want to use gdb to debug our program, we should compile it in a particular way. We should give the option -g to the compiler.
3. gprof : Profiling refers to finding out how your program has been spending its time. Profiling helps you identify the hot spots in the program, those sections of code, which gets executed most often. Improving the efficiency of these hot spots will speed up the program considerably.
4. insmod : insmod installs a loadable module in the running kernel. insmod tries to link a module into the running kernel by resolving all symbols from the kernel exported symbol table.If the module file name is given without directories or extension, insmod will search for the module in some common default directories. The environment variable MODPATH can be used to override this default. If a module configuration file such as /etc/modules.conf exists, it will override the paths defined in MODPATH. The -f option of insmod can be used to forcefully insert the module into the kernel.
5. lsmod : lsmod is used to view all the loaded modules. It also displays the use count of that module. User count indicates the number of programs that uses a particular module.
6. rmmod : rmmod tries to unload a set of modules from the kernel, with the restriction that they are not in use and that they are not referred to by other modules. If more than one module is named on the command line, the modules will be removed in the given order. This supports unloading of stacked modules.
7. ifconfig : Ifconfig is used to configure the kernel-resident network interfaces. It is used at boot time to set up interfaces as necessary. After that, it is usually only needed when debugging or when system tuning is needed. If no arguments are given, ifconfig displays the status of the currently active interfaces. If a single interface argument is given, it displays the status of the given interface only; if a single -a argument is given, it displays the status of all interfaces, even those that are down. Otherwise, it configures an interface. Ifconfig is also used to assign a particular IP address to an interface.
8. route : Route manipulates the kernel IP routing tables. Its primary use is to set up static routes to specific hosts or networks via an interface after it has been configured with the ifconfig program. When the add or del options are used, route modifies the routing tables. Without these options, route displays the current content of the routing tables.
<<< Previous | Home | Next >>> |
Introduction | System Overview |