<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6890082870695526561</id><updated>2012-02-07T16:24:26.490+05:30</updated><category term='system call'/><category term='manpages'/><category term='kbuild'/><category term='lnit'/><category term='Upstart'/><category term='linux signal'/><category term='linux tricks'/><category term='Process States'/><category term='C'/><category term='command Hacks'/><category term='ssh'/><category term='systemd'/><category term='make target'/><category term='programming tips'/><category term='signal'/><category term='UsrMove'/><category term='Interview'/><category term='fork'/><category term='sed'/><category term='chose user'/><category term='Linux modules'/><category term='मराठी'/><category term='android'/><category term='vfork'/><category term='shell'/><category term='subnet'/><category term='linux tips'/><category term='vim'/><category term='linux system calls'/><category term='ifconfig'/><title type='text'>beparas</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-5651868625724646957</id><published>2012-02-07T16:24:00.001+05:30</published><updated>2012-02-07T16:24:26.502+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='UsrMove'/><title type='text'>UsrMove</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="https://fedoraproject.org/wiki/Features/UsrMove"&gt;https://fedoraproject.org/wiki/Features/UsrMove&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge"&gt;http://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge&lt;/a&gt;&lt;br /&gt;&lt;a href="http://lists.busybox.net/pipermail/busybox/2010-December/074114.html" target="_blank"&gt;http://lists.busybox.net/pipermail/busybox/2010-December/074114.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-5651868625724646957?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/5651868625724646957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=5651868625724646957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/5651868625724646957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/5651868625724646957'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2012/02/usrmove.html' title='UsrMove'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-6214329930869160390</id><published>2011-12-28T15:51:00.002+05:30</published><updated>2011-12-30T12:54:31.889+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Android Link's</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Android Booting &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.androidenea.com/2009/06/android-boot-process-from-power-on.html"&gt;http://www.androidenea.com/2009/06/android-boot-process-from-power-on.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.androidenea.com/2009/08/init-process-and-initrc.html"&gt;http://www.androidenea.com/2009/08/init-process-and-initrc.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vogella.de/articles/AndroidInternals/article.html"&gt;http://www.vogella.de/articles/AndroidInternals/article.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.csdn.net/loughsky/article/details/3293922"&gt;&amp;nbsp;http://blog.csdn.net/loughsky/article/details/3293922&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://honeypod.blogspot.com/2007/12/initialize-libc-for-android.html"&gt;http://honeypod.blogspot.com/2007/12/initialize-libc-for-android.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://discuz-android.blogspot.com/search/label/Bionic%20libc"&gt;http://discuz-android.blogspot.com/search/label/Bionic%20libc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-6214329930869160390?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/6214329930869160390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=6214329930869160390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6214329930869160390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6214329930869160390'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2011/12/android-booting.html' title='Android Link&apos;s'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-7392129411083380724</id><published>2011-12-16T12:37:00.001+05:30</published><updated>2011-12-16T12:37:39.048+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>Evolution of shells in Linux</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Pointing and clicking is fine for most day-to-day computing tasks, but    to really take advantage of the strengths of Linux over other environments, you eventually    need to crack the shell and enter the command line.  Lots of command shells are available, from    Bash and Korn to C shell and various exotic and strange shells. Learn which shell is    right for you.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.ibm.com/developerworks/linux/library/l-linux-shells/index.html?ca=drs-"&gt;read more...&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-7392129411083380724?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/7392129411083380724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=7392129411083380724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/7392129411083380724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/7392129411083380724'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2011/12/evolution-of-shells-in-linux.html' title='Evolution of shells in Linux'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-1838712126896466613</id><published>2011-12-14T12:18:00.000+05:30</published><updated>2012-02-03T16:21:47.596+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='systemd'/><category scheme='http://www.blogger.com/atom/ns#' term='Upstart'/><category scheme='http://www.blogger.com/atom/ns#' term='lnit'/><title type='text'>Manage System Startup and Boot Processes on Linux with Upstart</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Want to start, stop, and manage services on your Linux box? Then you need to familiarize yourself with Upstart and take control of your startup and boot processes on Linux.&lt;br /&gt;When Linux boots up, the first process that runs is called &lt;code&gt;init&lt;/code&gt;. From there, &lt;code&gt;init&lt;/code&gt; takes the task of starting up system processes. But which &lt;code&gt;init&lt;/code&gt;? Turns out, there are several flavors of &lt;code&gt;init&lt;/code&gt;, and it depends on which Linux distribution you're using and how modern the release is. Let's take a look at some of the backstory.&lt;br /&gt;&lt;h3&gt; BSD, System V, Upstart and systemd &lt;code&gt;init&lt;/code&gt;, Oh My...&lt;/h3&gt;You might think that the way that the system starts would be fairly well-agreed upon between Linux distributions. Unfortunately, that's not been the case and may not be the case for some time.&lt;br /&gt;&lt;br /&gt;Linux isn't directly derived from UNIX, but it takes a lot of ideas from UNIX, including the way that the system starts. Some Linux distros, most notably Slackware, used the &lt;a href="http://en.wikipedia.org/wiki/Init#BSD-style"&gt;BSD-style&lt;/a&gt; init. Slackware (and its derivatives) is the lone holdout for this style these days, and it includes a &lt;a href="http://www.slackware.com/config/init.php"&gt;System V init compatibility&lt;/a&gt; workaround so that applications that expect to support System V init scripts can install them normally.&lt;br /&gt;System V (from UNIX System V), the precursor to was the standard for most Linux distros for many years. Distros using SysV init would have several directories under &lt;code&gt;/etc&lt;/code&gt; such as &lt;code&gt;rc0.d&lt;/code&gt;, &lt;code&gt;rc1.d&lt;/code&gt;, through &lt;code&gt;rc6.d&lt;/code&gt; for each runlevel — though many of the runlevels are not really implemented.&lt;br /&gt;What's a &lt;i&gt;runlevel&lt;/i&gt;, you ask? Essentially this is the grouping of services that are run by init. For example, runlevel 0 is "halt," runlevel 1 or S are the "single user mode," and runlevel 6 is reboot. On Fedora/Red Hat systems, runlevel 3 is a full set of services to run a multiuser system (networking, etc.), and runlevel 5 includes multiuser services &lt;i&gt;and&lt;/i&gt; X11 with the display manager. You'll notice I didn't mention 2 or 4, because those runlevels are rarely used and runlevel 4 isn't even defined by default.&lt;br /&gt;Note that you can switch between runlevels using the &lt;code&gt;telinit&lt;/code&gt; command, like so: &lt;code&gt;telinit 3&lt;/code&gt; would switch to runlevel 3, and &lt;code&gt;telinit 6&lt;/code&gt; would tell the system to reboot. Note that you would usually want to just use &lt;code&gt;reboot&lt;/code&gt; instead to reboot, but &lt;code&gt;telinit 6&lt;/code&gt; would also work.&lt;br /&gt;Under each of the directories, you'd have a set of symbolic links that point back to scripts that include startup and shutdown directives for services like Apache and the SSH daemon. Each link has a name like &lt;code&gt;K&lt;i&gt;NN&lt;/i&gt;sshd&lt;/code&gt; or &lt;code&gt;S&lt;i&gt;NN&lt;/i&gt;cups&lt;/code&gt;, where the &lt;code&gt;&lt;i&gt;NN&lt;/i&gt;&lt;/code&gt; determines the order in which services are killed (K) or started (S). This became tricky with laptops and mobile systems, because the state of a computer might determine the order in which services should be started. See the &lt;a href="https://wiki.ubuntu.com/ReplacementInit"&gt;rationale&lt;/a&gt; for Upstart by Scott James Remnant for more detail — but the short of it is that the SysV style init that served Linux well for many years became rather fragile and creaky when Linux adapted to use as a notebook OS as much as a server OS.&lt;br /&gt;So now we have, or had, Upstart as the emerging standard. For now, Upstart is the sort-of standard for several distros. Upstart is used by Ubuntu, current Fedora releases, and openSUSE 11.3 includes it as an optional package. But the Fedora folks are working on a replacement for Upstart called &lt;a href="http://fedoraproject.org/wiki/Features/systemd"&gt;systemd&lt;/a&gt;, which is a "system and session manager" that is meant to be a "drop-in replacement for sysvinit." There's a &lt;a href="http://0pointer.de/blog/projects/systemd.html"&gt;very detailed discussion&lt;/a&gt; of the rationale behind systemd by Lennart Poettering that is an interesting read if you're interested in the deep details. So at some point, you'll need to know Upstart or systemd, or both if you are managing systems using Upstart and systemd.&lt;br /&gt;For now, we're going to look at Upstart.&lt;br /&gt;&lt;h3&gt; Managing Startup Services&lt;/h3&gt;Now, when we're talking about startup services, I mean the system-wide services like SSH and Apache, not the applications started up by your desktop. That's a whole different kettle of fish, and depends on the desktop that you're using. For example, if you're running a recent Linux distro with GNOME, you'll look at &lt;b&gt;System -&amp;gt; Preferences -&amp;gt; Startup Applications&lt;/b&gt;.&lt;br /&gt;For applications managed with Upstart, you'll first want to look at the &lt;code&gt;initctl&lt;/code&gt; command. This allows you to work with Upstart's &lt;code&gt;init&lt;/code&gt; daemon. Naturally, you're going to need to use &lt;code&gt;sudo&lt;/code&gt; to run &lt;code&gt;initctl&lt;/code&gt; or be logged in as root.&lt;br /&gt;To see what's running on your system, use &lt;code&gt;initctl list&lt;/code&gt;. You'll see something like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;alsa-mixer-save stop/waiting&lt;br /&gt;avahi-daemon start/running, process 690&lt;br /&gt;mountall-net stop/waiting&lt;br /&gt;rc stop/waiting&lt;br /&gt;rsyslog start/running, process 482&lt;br /&gt;screen-cleanup stop/waiting&lt;br /&gt;tty4 start/running, process 859&lt;br /&gt;udev start/running, process 334&lt;br /&gt;upstart-udev-bridge start/running, process 304&lt;br /&gt;ureadahead-other stop/waiting&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;This is from a system running Ubuntu 10.10, you'll see a different list of jobs on Fedora 14 or another distro. The first field is the name of the job — like &lt;code&gt;rsyslog&lt;/code&gt;. The second field is the "goal" of the job, followed by the state of the job.&lt;br /&gt;To stop a job that's running, use &lt;code&gt;initctl stop &lt;i&gt;job&lt;/i&gt;&lt;/code&gt;. To start a job, run &lt;code&gt;initctl start &lt;i&gt;job&lt;/i&gt;&lt;/code&gt;. You can also request status of jobs with &lt;code&gt;initctl status &lt;i&gt;job&lt;/i&gt;&lt;/code&gt;. Finally you can restart or reload jobs with the &lt;code&gt;restart&lt;/code&gt; and &lt;code&gt;reload&lt;/code&gt; commands. What's the difference between restarting and reloading? Restarting does what it says on the tin — stops the job and then restarts it. The &lt;code&gt;reload&lt;/code&gt; command sends the &lt;code&gt;SIGHUP&lt;/code&gt; signal to the job, which can be used to tell a daemon to re-read its configuration.&lt;br /&gt;For jobs that are managed by Upstart, you can edit their configuration file under &lt;code&gt;/etc/init&lt;/code&gt;. They will have a few lines that describe which runlevels to start/stop on like so:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;start on runlevel [2345]&lt;br /&gt;stop on runlevel [!2345]&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;Change the runlevels as necesary.&lt;br /&gt;If you're using a desktop system, you'll want to install the Boot-up Manager — a GUI tool for handling runlevel configuration. The package is &lt;code&gt;bum&lt;/code&gt;, and it will let you manage jobs and configure services by runlevel. It's simple to use, and shouldn't require a lot of guidance.&lt;br /&gt;Note that Fedora uses Upstart in SysV compatibility mode, which means that a lot of jobs on Fedora are not managed with native Upstart scripts. For those jobs you'll want to use the &lt;code&gt;service&lt;/code&gt; command.&lt;br /&gt;To see the status of all jobs on Fedora using &lt;code&gt;service&lt;/code&gt; run:&lt;br /&gt;&lt;code&gt;service --status-all&lt;/code&gt;&lt;br /&gt;This will show which jobs are stopped, running, and in a few instances much more information. For example, iptables will spit out its entire set of policies that are running at the moment.&lt;br /&gt;To manage a job with &lt;code&gt;service&lt;/code&gt; use &lt;code&gt;service &lt;i&gt;servicename&lt;/i&gt; &lt;i&gt;command&lt;/i&gt;&lt;/code&gt;. The &lt;code&gt;&lt;i&gt;servicename&lt;/i&gt;&lt;/code&gt; is the name of the configuration script under &lt;code&gt;/etc/init.d&lt;/code&gt;. For example, to start and stop the openSSH daemon, you'll use &lt;code&gt;service sshd start&lt;/code&gt; or &lt;code&gt;service sshd stop&lt;/code&gt;.&lt;br /&gt;If you want to tweak the services by runlevel, use the &lt;code&gt;chkconfig&lt;/code&gt; command. You'd use something like &lt;code&gt;chkconfig --level 35 cups on&lt;/code&gt; to tell &lt;code&gt;chkconfig&lt;/code&gt; to make sure that cups is started in runlevels 3 and 5.&lt;br /&gt;What if you want to add a service or modify the scripts for existing services? One quick and dirty way is to use &lt;code&gt;/etc/rc.local&lt;/code&gt;. The script should be run during any startup or change of runlevel. Another way is to modify the scripts under &lt;code&gt;/etc/init.d&lt;/code&gt; (for SysV compatibility) or &lt;code&gt;/etc/init&lt;/code&gt; (native Upstart scripts) or write your own for a new service.&lt;br /&gt;Typically, this is unnecessary — almost any service that you'll be using should have init scripts pre-written. Writing an init script, whether for Upstart or for SysV, is a bit outside the scope of this tutorial.&lt;br /&gt;Since many users are going to be transitioning to systemd, we'll take a longer look at managing jobs with systemd when Fedora 15 comes out.&lt;br /&gt;Most of the time, your interaction with managing services should be minimal unless you're working with Linux as a full-time admin. If you are doing system administration, or planning to, you should already be familiar with the init system that your distros are using. If not, now's a good time to learn. If you're a desktop Linux user, you probably won't be managing services very often, but it's a good to know the basics that we've covered here in case you need to do any troubleshooting or just want to fine-tune your system.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ref:&amp;nbsp; https://www.linux.com/learn/tutorials/404619-manage-system-startup-and-boot-processes-on-linux-with-upstart&lt;br /&gt;&lt;br /&gt;https://www.linux.com/learn/tutorials/524577&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-1838712126896466613?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/1838712126896466613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=1838712126896466613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/1838712126896466613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/1838712126896466613'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2011/12/manage-system-startup-and-boot.html' title='Manage System Startup and Boot Processes on Linux with Upstart'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-4444724018377985367</id><published>2011-10-31T11:14:00.003+05:30</published><updated>2011-10-31T11:14:54.567+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>Vim Tips</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;1.I always wished that as a programmer , I should not waste my time in &lt;br /&gt;&amp;nbsp;writing the trivial stuff, the one I require every time I sit to write the &lt;br /&gt;&amp;nbsp;program. For example, while writing any C-program, we have the general &lt;br /&gt;&amp;nbsp;format of #include&amp;lt;...&amp;gt; &amp;amp; then main() {&amp;nbsp; ... return 0 ; } &lt;br /&gt;&amp;nbsp;What if every time I start writing the program, this format is ready for me &lt;br /&gt;&amp;nbsp;?? Well thats possible, atleast with "vim". &lt;br /&gt;&lt;br /&gt;Create the standard format of the file you want , lets say at &amp;lt;~/format&amp;gt; is &lt;br /&gt;&amp;nbsp;the path. &lt;br /&gt;&lt;br /&gt;Now start vim : vim &lt;file_name.c&gt; ,&amp;amp; then type , in command-mode ---&amp;gt; :r &lt;br /&gt;&amp;nbsp;~/format ,thats all , whatever is in the file &amp;lt;~/format&amp;gt; will be simply &lt;br /&gt;&amp;nbsp;pasted . &lt;br /&gt;&lt;br /&gt;I have created the file : &amp;lt;~/lic.c&amp;gt; , it contains the GNU GPL disclaimer. &lt;br /&gt;&amp;nbsp;Now after I finish writing the program , I just have to say ( in command &lt;br /&gt;&amp;nbsp;mode ) --&amp;gt; :r ~/lic.c , thats all, the license-terms get pasted . &lt;br /&gt;&amp;nbsp;It looks like this : &lt;br /&gt;&amp;nbsp;/* ######################################################################## &lt;br /&gt;&amp;nbsp; * &lt;br /&gt;&amp;nbsp; *LAST UPDATED : &lt;br /&gt;&lt;br /&gt;&amp;nbsp;*Copyright (C) 2011 Lokesh Walase &lt;lokesh...@gmail.com&gt; &lt;br /&gt;&amp;nbsp; * &lt;br /&gt;&amp;nbsp; * Released under GNU General Public License v2.0+ . &lt;br /&gt;&amp;nbsp; * FOR DETAILED LICENSE, SEE THE END OF THIS PROGRAM. &lt;br /&gt;&amp;nbsp; * &lt;br /&gt;&amp;nbsp; *######################################################################## &lt;br /&gt;&amp;nbsp; */ &lt;br /&gt;&lt;br /&gt;/*#################################################################################################################### &lt;br /&gt;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;*This program is free software; you can redistribute it and/or modify &lt;br /&gt;&amp;nbsp;*it under the terms of the GNU General Public License as published by &lt;br /&gt;&amp;nbsp;*the Free Software Foundation; either version 2 of the License, or &lt;br /&gt;&amp;nbsp;*(at your option) any later version. &lt;br /&gt;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;*This program is distributed in the hope that it will be useful, &lt;br /&gt;&amp;nbsp;*but WITHOUT ANY WARRANTY; without even the implied warranty of &lt;br /&gt;&amp;nbsp;*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&amp;nbsp; See the &lt;br /&gt;&amp;nbsp;*GNU General Public License for more details. &lt;br /&gt;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;* Visit &lt;http: copyleft="" gpl.html="" www.gnu.org=""&gt; &lt;br /&gt;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;*To&amp;nbsp; receive a copy of the GNU General Public License &lt;br /&gt;&amp;nbsp;* write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, &lt;br /&gt;&amp;nbsp;*Boston, MA&amp;nbsp; 02110-1301&amp;nbsp; USA &lt;br /&gt;&lt;br /&gt;*The GNU General Public License does not permit incorporating this program &lt;br /&gt;&amp;nbsp;*into proprietary programs. &lt;br /&gt;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;######################################################################################################################## &lt;br /&gt;&amp;nbsp;*/ &lt;br /&gt;&lt;br /&gt;2.As you might have noticed , the &amp;lt;~/lic.c&amp;gt; has the field --&amp;gt; LAST UPDATED &lt;br /&gt;&amp;nbsp;:&amp;nbsp; , now to put the date &amp;amp; time here , go to that line, &amp;amp; in command mode &lt;br /&gt;&amp;nbsp;---&amp;gt; :r !date . &lt;br /&gt;&lt;br /&gt;3.Well, if that didnt really raise your eyebrows, here's somemore . What is &lt;br /&gt;&amp;nbsp;the best thing of the "terminal" ?? Yes, it "auto-completes" the commands &lt;br /&gt;&amp;nbsp;by '\t' key. Now what if the same feature of "auto-completion" is present &lt;br /&gt;&amp;nbsp;everywhere &amp;amp; not only in the "terminal" ?? Well thats possible, (again) &lt;br /&gt;&amp;nbsp;atleast with "vim" . &lt;br /&gt;&lt;br /&gt;Create a new &amp;lt;.vimrc&amp;gt; file in your home-folder . Say : vim .vimrc , at your &lt;br /&gt;&amp;nbsp;home-folder &amp;amp; then copy paste this code( I found it on net ) : &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *function! Tab_Or_Complete() &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if col('.')&amp;gt;1 &amp;amp;&amp;amp; strpart( getline('.'), col('.')-2, 3 ) =~ '^\w' &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "\&lt;c-n&gt;" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "\&lt;tab&gt;" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endif &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endfunction &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :inoremap &lt;tab&gt; &lt;c-r&gt;=Tab_Or_Complete()&lt;cr&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :set dictionary="/usr/dict/words" &lt;br /&gt;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;Pls be sure of the indentation ,everything has to be strictly indented . I &lt;br /&gt;&amp;nbsp;dont know what exactly it is doing . &lt;br /&gt;&amp;nbsp;Now vim will "auto-complete" any words you type , press '\t' for the same . &lt;br /&gt;&amp;nbsp;Its indeed cool ........proud to be a "vimmer" !! ;) &lt;br /&gt;&lt;br /&gt;4.Now whats next ?? Well, enough of vim. Recently I came to know of the &lt;br /&gt;&amp;nbsp;command that can convert .pdf files to text-files, post-script files , &lt;br /&gt;&amp;nbsp;html-files &amp;amp; many more. Just type &lt;pdf&gt; in the terminal &amp;amp; then you press &lt;br /&gt;&amp;nbsp;'\t' twice to see all the options . &lt;br /&gt;&amp;nbsp;Reading man pages is boring , so u may convert a lengthy man-page to a html &lt;br /&gt;&amp;nbsp;file &amp;amp; get a nice look &amp;amp; feel to read it , I did it for "info flex" . &lt;br /&gt;&amp;nbsp;Type : info flex &amp;gt; flex.odt . Now open flex.odt &amp;amp; get its pdf format , &amp;amp; &lt;br /&gt;&amp;nbsp;then use command --&amp;gt; pdftohtml flex.pdf flex.html&lt;/pdf&gt;&lt;/cr&gt;&lt;/c-r&gt;&lt;/tab&gt;&lt;/tab&gt;&lt;/c-n&gt;&lt;/http:&gt;&lt;/lokesh...@gmail.com&gt;&lt;/file_name.c&gt;&lt;br /&gt;&lt;br /&gt;Ref : &lt;a href="http://groups.google.com/group/cofsug/browse_thread/thread/d5edacf343486d03?hl=en-GB"&gt;http://groups.google.com/group/cofsug/browse_thread/thread/d5edacf343486d03?hl=en-GB&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-4444724018377985367?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/4444724018377985367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=4444724018377985367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/4444724018377985367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/4444724018377985367'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2011/10/vim-tips.html' title='Vim Tips'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-8111017712059912111</id><published>2011-10-19T10:48:00.000+05:30</published><updated>2011-10-19T11:15:21.573+05:30</updated><title type='text'>How do I make changes to a package and capture them using ltib</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;1. Unpack the sources and apply all current patches:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;./ltib -m prep -p u-boot&lt;package&gt;&lt;/package&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;2. Edit/add files under &lt;b&gt;rpm/BUILD/package/&lt;/b&gt;&lt;br /&gt;3. Build the package with your changes:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;./ltib -m scbuild -p u-boot&lt;package&gt;&lt;/package&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;4. Once the package builds successfully, check the install phase:&lt;br /&gt;&lt;pre&gt;./ltib -m scinstall -p u-boot&lt;package&gt;&lt;/package&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;5. Test your package before committing the changes:&lt;br /&gt;&lt;pre&gt;./ltib -m scdeploy -p u-boot&lt;package&gt;&lt;/package&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;6. Repeat steps 2 -&amp;gt; 5  until you are satisfied with your results.&amp;nbsp;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;Ref:  http://ltib.org/documentation-LtibFaq&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-8111017712059912111?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/8111017712059912111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=8111017712059912111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/8111017712059912111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/8111017712059912111'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2011/10/how-do-i-make-changes-to-package-and.html' title='How do I make changes to a package and capture them using ltib'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-7234059638665487500</id><published>2011-09-26T13:20:00.001+05:30</published><updated>2011-09-26T13:20:17.264+05:30</updated><title type='text'></title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Linux kernel's Suspend/Resume mode.&lt;br /&gt;Ref:&lt;br /&gt; &lt;a href="http://kzjblog.appspot.com/2010/11/20/suspend-en.html"&gt;http://kzjblog.appspot.com/2010/11/20/suspend-en.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://technothirst.blogspot.com/2010/11/turn-off-android-power-management-from.html"&gt;http://technothirst.blogspot.com/2010/11/turn-off-android-power-management-from.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-7234059638665487500?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/7234059638665487500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=7234059638665487500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/7234059638665487500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/7234059638665487500'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2011/09/linux-kernels-suspendresume-mode.html' title=''/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-3469069807658264918</id><published>2011-09-16T10:01:00.000+05:30</published><updated>2011-12-30T12:38:27.150+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming tips'/><title type='text'>Programming tips</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Why not to use gets() in Linux ?&lt;br /&gt;Ans:&amp;nbsp; &lt;a href="http://c.ittoolbox.com/groups/technical-functional/c-l/store-character-string-containing-spaces-using-structure-4414903"&gt;http://c.ittoolbox.com/groups/technical-functional/c-l/store-character-string-containing-spaces-using-structure-4414903&lt;/a&gt;&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Command to change vdi's uuid.&lt;br /&gt;$ VBoxManage internalcommands setvdiuuid disk.vdi&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/martinezjavier/ldd3"&gt;LDD3 examples&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;C Programming&lt;br /&gt; &lt;br /&gt; &lt;a href="http://codingrelic.geekhold.com/search/label/C%20Programming"&gt;http://codingrelic.geekhold.com/search/label/C%20Programming&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-3469069807658264918?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/3469069807658264918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=3469069807658264918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/3469069807658264918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/3469069807658264918'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2011/09/programming-tips.html' title='Programming tips'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-6050623720284460998</id><published>2011-07-25T10:42:00.001+05:30</published><updated>2011-07-25T10:49:06.420+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><title type='text'>ssh login problem</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;Problem:&lt;/b&gt; When I try to connect target board using ssh, it gives me error of 'password has expired'. The log is given below.&lt;br /&gt;&lt;br /&gt;-------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;$&amp;nbsp; ssh root@192.168.1.142&lt;br /&gt;root@192.168.1.142's password: &lt;br /&gt;WARNING: Your password has expired.&lt;br /&gt;You must change your password now and login again!&lt;br /&gt;Changing password for root&lt;br /&gt;New password:&lt;br /&gt;Bad password: too short&lt;br /&gt;Retype password:&lt;br /&gt;Password for root changed by root&lt;br /&gt;Connection to 192.168.1.142 closed.&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Soln:&lt;/b&gt; change the entry in shadow file,&lt;br /&gt;old entry: root:$1$bmWHS8dA$cWZORf5md8ecQbEvL.Ule.:0:0:99999:7:::&lt;br /&gt;new entry: root:$1$bmWHS8dA$cWZORf5md8ecQbEvL.Ule.:11851:0:99999:7:::&lt;br /&gt;&lt;br /&gt;The problem is in shadow file, in this 'days since last password changed' field is set 0, so change modify it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ref: &lt;a href="http://lists.busybox.net/pipermail/buildroot/2011-March/042165.html"&gt;http://lists.busybox.net/pipermail/buildroot/2011-March/042165.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-6050623720284460998?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/6050623720284460998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=6050623720284460998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6050623720284460998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6050623720284460998'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2011/07/ssh-login-problem.html' title='ssh login problem'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-4349228000943459394</id><published>2011-05-20T19:21:00.002+05:30</published><updated>2011-11-03T12:24:44.595+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Interview'/><title type='text'>Interview</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span id="goog_1002300664"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span id="goog_1002300665"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://drdobbs.com/open-source/229502480"&gt;Ken Thompson's Interview&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://spectrum.ieee.org/at-work/innovation/inventing-unix?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+IeeeSpectrum+%28IEEE+Spectrum%29"&gt;Dennis Ritchie's Interview&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color: purple;"&gt;Linus Torvalds&lt;/div&gt;&lt;br /&gt;@ LinuxCon Europe 2011&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.muktware.com/news/2855"&gt;http://www.muktware.com/news/2855&lt;/a&gt;&lt;br /&gt;&lt;span id="goog_1002300662"&gt;&lt;/span&gt;&lt;span id="goog_1002300663"&gt;&lt;/span&gt;&lt;a href="http://www.blogger.com/"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-4349228000943459394?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/4349228000943459394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=4349228000943459394' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/4349228000943459394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/4349228000943459394'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2011/05/ken-thompson-interview.html' title='Interview'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-8278843989884111528</id><published>2011-05-20T11:34:00.000+05:30</published><updated>2011-05-20T11:34:49.185+05:30</updated><title type='text'>ioctl</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Q] Why ioctl() operation is removed form Linux Kernel 2.6.36?&lt;br /&gt;Ans: When &lt;code&gt;ioctl&lt;/code&gt; was executed, it took the &lt;a href="http://en.wikipedia.org/wiki/Giant_lock" rel="nofollow"&gt;Big Kernel Lock&lt;/a&gt;  (BKL), so nothing else could execute at the same time. This is very bad  on a multiprocessor machine, so there was a big effort to get rid of  the BKL. First, &lt;code&gt;unlocked_ioctl&lt;/code&gt; was introduced. It lets each  driver writer choose what lock to use instead. This can be difficult,  so there was a period of transition during which old drivers still  worked (using &lt;code&gt;ioctl&lt;/code&gt;) but new drivers could use the improved interface (&lt;code&gt;unlocked_ioctl&lt;/code&gt;). Eventually all drivers were converted and &lt;code&gt;ioctl&lt;/code&gt; could be removed.&lt;br /&gt;&lt;code&gt;compat_ioctl&lt;/code&gt; is actually unrelated, even though it was added at the same time. Its purpose is to allow 32-bit userland programs to make &lt;code&gt;ioctl&lt;/code&gt; calls on a 64-bit kernel. The meaning of the last argument to &lt;code&gt;ioctl&lt;/code&gt; depends on the driver, so there is no way to do a driver-independent conversion&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-8278843989884111528?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://unix.stackexchange.com/questions/4711/what-is-the-difference-between-ioctl-unlocked-ioctl-and-compat-ioctl' title='ioctl'/><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/8278843989884111528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=8278843989884111528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/8278843989884111528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/8278843989884111528'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2011/05/ioctl.html' title='ioctl'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-6468454299876398192</id><published>2011-01-14T16:48:00.001+05:30</published><updated>2011-01-14T16:50:18.680+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='मराठी'/><title type='text'>मराठी भाषेची ताकद</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;tt&gt;&lt;span lang="HI" style="color: black; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 14pt;"&gt;खालील&amp;nbsp;&lt;/span&gt;&lt;/tt&gt;&lt;span lang="MR" style="color: black; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 14pt;"&gt;२&lt;/span&gt;&lt;span style="color: black; font-size: 14pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: black; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 14pt;"&gt;लेखात, प्रत्येक   शब्द&amp;nbsp;&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: black; font-size: 14pt;"&gt;'&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: black; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 14pt;"&gt;क&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: black; font-size: 14pt;"&gt;'&amp;nbsp;&lt;/span&gt;&lt;/tt&gt;&lt;span lang="MR" style="color: black; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 14pt;"&gt;आणि&amp;nbsp;&lt;/span&gt;&lt;span style="color: black; font-size: 14pt;"&gt;'&lt;/span&gt;&lt;span lang="MR" style="color: black; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 14pt;"&gt;प&lt;/span&gt;&lt;span style="color: black; font-size: 14pt;"&gt;'&amp;nbsp;&lt;/span&gt;&lt;tt&gt;&lt;span style="color: black; font-size: 14pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: black; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 14pt;"&gt;पासून   सुरु करुन   येवढा मोठा&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: black; font-size: 14pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: black; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 14pt;"&gt;परिच्छेद   लिहिला आहे.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: black; font-size: 14pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;﻿&amp;nbsp;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;----------------------------------------------&lt;wbr&gt;&lt;/wbr&gt;--&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;---------------------------&lt;wbr&gt;&lt;/wbr&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span style="color: black;"&gt;   &lt;/span&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;केव्हातरी   कोल्हापूरच्या   कर्तव्यतत्पर   केळकर   काकांबद्दल   काकांच्याच   कचेरीतल्या   केशवने   काकूंसमोर&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;   &lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कागाळी   केली. काकू   कावल्या.   काकूंनी   कपाटातून   कात्री   काढून काकांच्या   कामाचे कोरे   करकरीत &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कागद   कचाकचा   कापले.   काकांचे   कापलेले   कागद केशवानेच   कचऱ्यात   कोंबून   काकांच्याच   किचनमध्ये&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt; '&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कजरारे-कजरारे&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;'&amp;nbsp;&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कवितेवर   कोळीनृत्य   केले.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;काकूंनी   कागद   कापल्याचे   कळताच काका   कळवळले. काकांनीही   कमालच केली.   काकांनी   काकूंचे   काळे&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt; &lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कुळकुळीत   केस   कात्रीने   कराकरा   कापले. काका काय   करताहेत   काकूंना   कळेनाच!   काकूंनी   कर्कश्श &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;किंचाळून   कलकलाट केला.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;काका   काकूंची   कसली काळजी   करणार!   काकांना कामाची   काळजी.   काकूंच्या   कर्णकर्कश्श &lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कोलाहलातही&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;केशवाने   कचऱ्यात   कोंबलेले   कागदाचे   कपटेन कपटे   काढून   काकांनी   कचेरीकडे   कूच केले.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कचेरीच्या   कामासाठी   काकांनी   कंबर कसली.   कागदाच्या   कापलेल्या   कपट्यांचे   काकांनी&amp;nbsp;&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;'&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कोलाज&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;'&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;करून   कामकाज   कार्यान्वयित   केले.   केशवाचे कारनामे   कळताच   काकांनी   काट्यानेच   काटा काढला.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;काकांनी   केशवालाच   कोलाजचे काम   करण्यासाठी कुथवला.   कपटी केशवने   काकांवरच   कामचुकारपणाचा&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कांगावा   करून कामाचा   कंटाळा केला.   काकांनी कठोरपणे   केशवाला   कामावरून   काढले. &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कासावीस   काकूंनी   कालच्या कडू   कारल्याची   कोशिंबीर   कटाप करून   काकांसाठी   कच्च्या   कैरीचे कोय &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;काढून   कालवण केले.   काकांनीही   करुणेने   काकूंचे   कृत्रिम केस   कुरवाळले. &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;केळकरांच्या   कोकणस्थ   कुटुंबात   कर्तव्यापुढे   कर्मकांड   केव्हाही   कनिष्ठच.   कर्तव्यदक्ष   काकांच्या &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कार्यकाळात   कचेरीने   कर्मरूपी   किल्ल्याचे कीर्तिशिखर   काबीज केले.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कामावरून   काढलेल्या   केशवाने   कितीतरी   काबाडकष्ट   काढल्यावर   कोल्हापूरच्या   कॉम्रेड कणेकर&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कॉलेजने   केशवाला कबड्डीचा   कर्णधार   केला.   क्रिडापटू   केशवाने कबड्डीतच   करियर केले.   कालच्या&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&amp;nbsp;   &lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कागाळीखोर   केशवाला   काळानेच   केला&amp;nbsp;&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;'&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कबड्डीतल्या   किचकट   कसरतींचा   कर्ता&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;'!&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कथासार&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;-&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;क्रियेविण   करिता कथन&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;किंवा   कोरडेची   कीर्तन&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;,&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;कितीक   किताब   कष्टाविण&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: #4f6228; font-size: 13pt;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #4f6228; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;काय   कामाचे&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span style="color: #1f497d;"&gt;------------------------------------------------&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;---------------------------------&lt;wbr&gt;&lt;/wbr&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;परवा   पुराण-प्रसिद्ध   पखवाज पंडित   पुरोहित पंतांची   पिवळी पगडी   पुरंदरच्या   पंधराशेव्या&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;   &lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पायरीवरून   पुण्यात   पर्वतीच्या   पाचव्या पायरीपाशी   पर्णकुटीपासून   पंधरा   पावलांवर पहुडलेल्या &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पंकजच्या   पोटावर पटकन   पडली. पगडी   पडलेली पाहताच   पंत   पुरंदरच्या   पायथ्याशी   पोलिसठाण्यात &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पळाले.   पुरंदरच्या   पोलिसांनी   पंतांना   पुण्याच्या   पोलिसांकडे   पाठवले.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पंत   पुण्यात   पोहोचताच   पोलिसांवर   पेटले. पंत पेटल्यामुळे   पोलिस पटकन   पर्वतीकडे   पळाले. पांढर्‍या&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt; &lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पोषाखातल्या   पोलिसांना   पाहून पंकज   पर्वतीच्या   पलिकडे   पळाला.   पोलिसांनी   पंकजचा   पिच्छा&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&amp;nbsp;   &lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पुरवला.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पळता पळता   पंकज   पाण्याच्या   पाँडमध्ये   पडला. पंतांनीच   पाण्यात   पोहून   पंकजला   पकडले. पिवळी&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पगडी पण   पकडली.   पोलिसांनी   पंकजला   पोलिसठाण्याकडे   पिटाळले.   पकडणारा   पोलिस   पदपथावर&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पाय पसरून   पडला. पोलिस   पडलेला   पाहून पंकज   पाठीवर पांघरूण   पांघरून   पळाला.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पंतांनी   पुरंदरला   पोहोचताच   पगडीत   पंकजचे पैशांचे   पाकिट   पाहिले.   पाकिटातले   पुष्कळ पैसे   पंतांनी&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पनवेलला   पुत्राला   पोस्टाने   पाठवले.   पंतांच्या   पाजी   पुत्राने   पैशांच्या   प्राप्तीतून   पोटात   पंजाबी &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पदार्थ पचवले.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पंतांना   परमेश्वरच   पावला!&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पंकजला   पकडण्यासाठी   पंतांसोबत   पुण्यात पोहोचलेली   पंतांची   पोरगी   प्राची   पंकजला पहिल्यांदा&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt; &lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पाहताच   पंकजच्या   प्रेमात   पडली.   प्राचीने पंकज&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;,&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पोलिसांची   पकडा पकडी   पाहिली.   पंकजचा &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पदपथावरून   पोबाराही   पाहिला.   पानशेतच्या   पुराच्या   पाण्यामुळे   पुनर्वसित   पंकज परत   पर्णकुटीत &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पोहोचला.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पित्यासमवेत   प्राची   पुरंदरला   परतली&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पण   पंतांनी   पंकजच्या   पाकिटातल्या   पैशांबाबत   पंक्ति-प्रपंच&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पाळला.   पुष्कळ पैसे   पुत्राला   पाठवले.   पंतांच्या   पुन्हा   पुन्हा   पिडणार्‍या   पुराणांच्या   पोपटपंचीमुळे &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;प्राची   पेटली.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पंकजच्या   प्रेमाखातर   प्राची   पुण्यास   परतली.   प्राचीनेच पंकजवरच्या   पोलिसांच्या   पंचनाम्याला&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&amp;nbsp;   &lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पाने   पुसली.   पंकजला   पहायला   प्राची परत   पर्णकुटीपाशी   पोहोचली. पण   पर्णकुटीत   पहुडलेल्या &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पंकजचे   पाय पळून   पळून पांढरे   पडलेले!   प्राचीने   पंकजच्या   पायावर   पिवळे   पुरळही   पाहिले.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पंकजची   परिस्थिती   पाहून प्राण   पिळवटलेल्या   प्राचीने   पदर पाण्यात   पिळून   पंकजचे पाय   पुसले.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;प्राचीचा   प्रथमोपचार   पाहून   पंकजला   पोरगी पसंत   पडली. पंकजने   प्राचीला   पर्णकुटीतच   पटवले.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;    &lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पर्णकुटीतील   प्रेम-प्रकरण   पाहून   पर्णकुटीच्या   पायर्‍यांवर   पत्ते   पिसणारी   पोरे   पूर्व-पश्चिमेला &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पांगली.   प्राचीने   पंकजचे   पा़किट   पैशांविनाच   परतवले.   परंतू   प्रेमात   पारंगत   पंकजने   प्राचीस पाच &lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पाप्या   परतवल्या.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पंतांना   परमेश्वर   पावला&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;/tt&gt;&lt;tt&gt;&lt;span lang="HI" style="color: #984806; font-family: &amp;quot;Mangal&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt;"&gt;पण   पंकजला   पंतांची   पायाळू पोर   पावली.&lt;/span&gt;&lt;/tt&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: none repeat scroll 0% 0% white;"&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: none repeat scroll 0% 0% white;"&gt;&lt;span style="color: #984806; font-size: 13pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-6468454299876398192?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/6468454299876398192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=6468454299876398192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6468454299876398192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6468454299876398192'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2011/01/blog-post.html' title='मराठी भाषेची ताकद'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-3352352945470133096</id><published>2010-08-09T11:55:00.003+05:30</published><updated>2011-07-20T18:35:38.714+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>Translation Limits</title><content type='html'>The term "translation limits" refers to the minimum numbers of various element that a C compiler must be able to handle. These include such things as the length of identifiers, levels of nesting, number of case statements, and a number of member allowed in structure or union. C99 has increased several of these limits beyond the already generous ones specified by C89. Here are some examples:&lt;br /&gt;&lt;br /&gt;Limit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C89&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C99&lt;br /&gt;Nesting levels of blocks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 127&lt;br /&gt;Nesting levels of conditional inclusion&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 63&lt;br /&gt;Significant characters in an internal identifier&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 63&lt;br /&gt;Significant characters in an external identifier&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31&lt;br /&gt;Members of a structure or union&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 127&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1023&lt;br /&gt;Arguments in a function call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 127&lt;br /&gt;Numbers of case statement in switch&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 257&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1023&lt;br /&gt;&lt;br /&gt;Ref: C, The Complete Reference by Herbert Schildt (Fourth Edition)&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Some good c-examples&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cquestionbank.blogspot.com/2010/07/c-program-examples.html"&gt;c_program_examples&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-3352352945470133096?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/3352352945470133096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=3352352945470133096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/3352352945470133096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/3352352945470133096'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2010/08/translation-limits.html' title='Translation Limits'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-8337530605044973729</id><published>2010-03-13T09:58:00.000+05:30</published><updated>2010-03-13T09:58:28.423+05:30</updated><title type='text'>NAND Types</title><content type='html'>&lt;div&gt;There are various types of NAND Flash available. &lt;span style="font-weight: bold;"&gt;Bare NAND chips, SmartMediaCards, DiskOnChip.&lt;/span&gt;&lt;br /&gt;SmartMediaCards are bare NAND chips covered by thin plastic. They are very common in digital cameras and MP3 players. The card itself contains nothing smart at all. It gets smart by software.&lt;br /&gt;DiskOnChip is NAND Flash with additional glue logic as a drop in replacement for NOR  Flash chips. The glue logic provides direct memory access to a small address window,   which contains a boot loader stub, which loads the real boot code from the NAND device.  The logic contains also control registers for the static NAND chip control lines and a   hardware ECC generator.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ref: &lt;a href="http://www.linux-mtd.infradead.org/doc/nand.html"&gt;http://www.linux-mtd.infradead.org/doc/nand.html&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-8337530605044973729?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/8337530605044973729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=8337530605044973729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/8337530605044973729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/8337530605044973729'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2010/03/nand-types.html' title='NAND Types'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-6070897530286327982</id><published>2010-01-28T12:34:00.001+05:30</published><updated>2010-01-28T12:39:33.502+05:30</updated><title type='text'>Linux in Hollywood</title><content type='html'>&lt;a href="http://digitalcontentproducer.com/dcc/revfeat/video_linux_hollywood/"&gt;&lt;br /&gt;http://digitalcontentproducer.com/dcc/revfeat/video_linux_hollywood/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dslreports.com/forum/r23640073-Avatar-Movie-Made-Possible-With-Linux"&gt;http://www.dslreports.com/forum/r23640073-Avatar-Movie-Made-Possible-With-Linux&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-6070897530286327982?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/6070897530286327982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=6070897530286327982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6070897530286327982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6070897530286327982'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2010/01/linux-in-hollywood.html' title='Linux in Hollywood'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-6583131534389460689</id><published>2009-09-05T16:33:00.006+05:30</published><updated>2009-09-05T17:29:19.074+05:30</updated><title type='text'>Video Links</title><content type='html'>&lt;h3&gt;&lt;a href="http://www.linuxjournal.com/video/schedule-notifications-libnotify-and"&gt;Schedule Notifications With Libnotify and At&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;h3&gt;&lt;a href="http://www.linuxjournal.com/video/using-regular-ftp-konqueror"&gt;Using Regular ftp With Konqueror&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;h3&gt;&lt;a href="http://www.linuxjournal.com/video/advanced-firefox-configuration"&gt;Advanced Firefox Configuration&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;h3&gt;&lt;a href="http://www.linuxjournal.com/video/protect-files-chattr"&gt;Protect Files with chattr&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;h3&gt;&lt;a href="http://www.linuxjournal.com/video/disabling-root-account-your-ssh-server"&gt;Disabling the Root Account on Your SSH Server&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;h3&gt;&lt;a href="http://www.linuxjournal.com/video/access-remote-gui-programs-using-ssh-forwarding"&gt;Access Remote GUI Programs Using SSH Forwarding&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;h3&gt;&lt;a href="http://www.linuxjournal.com/video/configuring-cups-printers-using-web-browser"&gt;Configuring CUPS Printers Using a Web Browser&lt;/a&gt;&lt;/h3&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-6583131534389460689?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/6583131534389460689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=6583131534389460689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6583131534389460689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6583131534389460689'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2009/09/video-links.html' title='Video Links'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-4797596615943646401</id><published>2009-06-11T11:19:00.008+05:30</published><updated>2009-06-11T11:35:32.547+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='chose user'/><title type='text'>Welcome script</title><content type='html'>This is simple welcome script, asking for User selection.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;dialog --title "Welcome to Messung System&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt; " --menu "\nChose the user" 11 30 2 1 "messung" 2 "root"  2&gt;.welcome&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);"&gt;Q_MU&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;SI&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;C=$(cat .welcome)&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XJq8zETWRso/SjCbqkIK1pI/AAAAAAAACSI/zNIl7HiCQ0s/s1600-h/chose_user.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 351px; height: 300px;" src="http://3.bp.blogspot.com/_XJq8zETWRso/SjCbqkIK1pI/AAAAAAAACSI/zNIl7HiCQ0s/s400/chose_user.jpeg" alt="" id="BLOGGER_PHOTO_ID_5345943913243530898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;This dialog box gives you two option, one is enter as Messung user or switch to Root user.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;&lt;br /&gt;if [ "$Q_MUSIC" = "1" ]; then&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);"&gt;dialog --msgbo&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;x "Hit Enter to continue" 5 25&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;clear&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;else&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);"&gt;#dialog --passwordbox "Enter the Password :" 12 25&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);"&gt;dialog --infobox "Enter the Password " 3 25&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);"&gt;su -l&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);"&gt;&lt;br /&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you go for first option, then you login as a Messung user. Then welcome dialog box will appear, given below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XJq8zETWRso/SjCdD40yGZI/AAAAAAAACSQ/CisoTO1ze4I/s1600-h/welcome_messung.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 224px; height: 150px;" src="http://4.bp.blogspot.com/_XJq8zETWRso/SjCdD40yGZI/AAAAAAAACSQ/CisoTO1ze4I/s400/welcome_messung.jpeg" alt="" id="BLOGGER_PHOTO_ID_5345945447807719826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;If you go for second option, then it will ask for password.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XJq8zETWRso/SjCdlHCLrLI/AAAAAAAACSY/SXaivpeST7o/s1600-h/ask_passwd.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 213px; height: 101px;" src="http://2.bp.blogspot.com/_XJq8zETWRso/SjCdlHCLrLI/AAAAAAAACSY/SXaivpeST7o/s400/ask_passwd.jpeg" alt="" id="BLOGGER_PHOTO_ID_5345946018557701298" border="0" /&gt;&lt;/a&gt;The welcome window for Root user is given below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XJq8zETWRso/SjCeAGill4I/AAAAAAAACSg/45DC6GQLXec/s1600-h/welcome_root.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 254px; height: 164px;" src="http://4.bp.blogspot.com/_XJq8zETWRso/SjCeAGill4I/AAAAAAAACSg/45DC6GQLXec/s400/welcome_root.jpeg" alt="" id="BLOGGER_PHOTO_ID_5345946482281650050" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-4797596615943646401?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/4797596615943646401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=4797596615943646401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/4797596615943646401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/4797596615943646401'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2009/06/welcome-script.html' title='Welcome script'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XJq8zETWRso/SjCbqkIK1pI/AAAAAAAACSI/zNIl7HiCQ0s/s72-c/chose_user.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-6846971536734894346</id><published>2009-06-03T11:14:00.000+05:30</published><updated>2009-06-03T11:34:34.571+05:30</updated><title type='text'>NAND Types</title><content type='html'>&lt;div&gt; &lt;p&gt;There are various types of NAND Flash available. &lt;span style="font-weight: bold;"&gt;Bare NAND chips, SmartMediaCards, DiskOnChip.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;SmartMediaCards are bare NAND chips covered by thin plastic. They are very common in digital cameras and MP3 players. The card itself contains nothing smart at all. It gets smart by software.&lt;/p&gt; &lt;p&gt;DiskOnChip is NAND Flash with additional glue logic as a drop in replacement for NOR  Flash chips. The glue logic provides direct memory access to a small address window,   which contains a boot loader stub, which loads the real boot code from the NAND device.  The logic contains also control registers for the static NAND chip control lines and a   hardware ECC generator.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Ref: &lt;a href="http://www.linux-mtd.infradead.org/doc/nand.html"&gt;http://www.linux-mtd.infradead.org/doc/nand.html&lt;/a&gt;&lt;br /&gt;&lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-6846971536734894346?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/6846971536734894346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=6846971536734894346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6846971536734894346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6846971536734894346'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2009/06/nand-types.html' title='NAND Types'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-752220237108180646</id><published>2009-05-18T12:34:00.046+05:30</published><updated>2012-01-23T13:52:11.796+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='linux tips'/><category scheme='http://www.blogger.com/atom/ns#' term='sed'/><title type='text'>Tips &amp; Tricks</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="color: red; font-size: 130%; font-weight: bold;"&gt;Console-based calculator&lt;/span&gt;&lt;br /&gt;To build a terminal-based calculator, add the following function to your &lt;span style="font-weight: bold;"&gt;~/.bashrc&lt;/span&gt; file:&lt;br /&gt;&lt;span style="color: #009900; font-family: webdings; font-weight: bold;"&gt;function calc&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900; font-family: webdings; font-weight: bold;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900; font-family: webdings; font-weight: bold;"&gt;echo “${1}”|bc -l;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900; font-family: webdings; font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;Reload Bash profile using the following command:&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;$source .bashrc&lt;/span&gt;&lt;br /&gt;Now run calc from terminal as:&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;$ calc 4+7*9-10/5&lt;/span&gt;&lt;br /&gt;You will get the following output:&lt;br /&gt;65.00000000000000000000&lt;br /&gt;Easy enough?&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: red; font-size: 130%; font-weight: bold;"&gt;When did I execute a command?&lt;/span&gt;&lt;br /&gt;Here is a tip that will help you understand when you did what. history will give the list of commands which your have executed earlier. If you want information on when you executed these commands, you need to do the following.&lt;br /&gt;Open the &lt;span style="font-weight: bold;"&gt;/etc/bashrc&lt;/span&gt; file in a text editor and add&lt;br /&gt;the following:&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;export HISTTIMEFORMAT=”%h/%d - %H:%M:%S “&lt;/span&gt;&lt;br /&gt;After adding this line, re-login and execute the history command again. Now you will see the commands along with their time of execution.&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;&lt;span style="color: red;"&gt;Encrypt your file with Vim&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Did you know Vim can help you encrypt your file so that no one can open it without knowing the encryption key? Well, all you need to do is to create a file&lt;br /&gt;with the -x flag:&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;vim -x filename&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The above command will prompt you for an encryption key. Provide the key and remember it, as you will need it to open the file from now on.&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;&lt;span style="color: red;"&gt;Using Vi’s .exrc file&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;As you know the &lt;span style="font-weight: bold;"&gt;~/.exrc&lt;/span&gt; file is used for making permanent settings to your Vi editor. If you place the following commands in this file, these commands will&lt;br /&gt;be available to all your subsequent Vi sessions:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) :abb is for abbreviation&lt;/span&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;:abb etl Elitecore Technologies Limited, Ahmedabad&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So whenever you type etl in your Vi editor and press ENTER, SPACE or TAB, etl will be replaced by&lt;br /&gt;“Elitecore Technologies Limited, Ahmedabad”&lt;br /&gt;I use it to create templates for C and C++ programs, like:&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;:abb CPP #include&lt;iostream&gt;^M using namespace std;^M int&lt;/iostream&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #33ccff;"&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;main()^M {^M return0;^M }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Here ^M is for a new line. Note that to make sure you do not type ^M, for a new line you have to:&lt;br /&gt;a) ctrl+v&lt;br /&gt;b) press ENTER&lt;br /&gt;It will display ^M as above but it means a new line.&lt;br /&gt;So, now every time I need a C++ template, I just type CPP and press ENTER, SPACE or TAB.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) :map is for mapping some command to some&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;shortcut.&lt;/span&gt;&lt;br /&gt;For example, the vi command :set number is used to display line numbers in a file for every new line. Let’s say we want to set a shortcut for it, say, F2. To map this command to shortcut key, the Vi setting will be:&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;:map #2 :set number^M&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Same for :set nonumber; let’s set it to F3:&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;:map #3 :set nonumber^M&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) set tabstop=2&lt;/span&gt; is for setting TAB. I want TAB to be equal to 2 spaces, so I set it to 2.&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="color: red; font-weight: bold;"&gt;Read a CD volume label&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;To read the volume label of a CD-ROM from the terminal:&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;$ dd if=/dev/cdwriter bs=1 skip=32808 count=32&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;LFYCD_MARCH08 32+0 records in&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;32+0 records out&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;32 bytes (32 B) copied, 4.02731 seconds, 0.0 kB/s&lt;/span&gt;&lt;br /&gt;Note: The value, /dev/cdwriter depends on your device file.&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: red; font-size: 130%; font-weight: bold;"&gt;Disabling ‘shutdown’ with Ctrl+Alt+Del&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you get annoyed, when you accidentally reboot the system by pressing the three magic keys, comment out the following line in your &lt;span style="font-weight: bold;"&gt;/etc/inittab&lt;/span&gt; file:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;ca::ctrlaltdel:/sbin/shutdown -t3 -r now&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You may alternatively allow specific users with this capability by changing the line as below and adding the specific login ids in ‘/etc/shutdown.allow’,&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;ca::ctrlaltdel:/sbin/shutdown -a -t3 -r now&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: red; font-size: 130%; font-weight: bold;"&gt;More passwd flags&lt;/span&gt;&lt;br /&gt;You can change user account details using the passwd command—yes, it can do more than changing just the password. Open the new terminal and enter the&lt;br /&gt;following commands:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;passwd -d [user_name]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;where -d deletes the user’s password.&lt;br /&gt;Some other useful flags are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;-l locks the user account&lt;/li&gt;&lt;li&gt;-u unlocks the user’s account&lt;/li&gt;&lt;li&gt;-? is to get help&lt;/li&gt;&lt;/ul&gt;Ref: Linux For You May 2009&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: red; font-size: 130%; font-weight: bold;"&gt;Extract the contents of an RPM&lt;/span&gt;&lt;br /&gt;Sometimes we are required to extract the files inside an RPM file instead of installing the RPM. A good example is when we take binaries from one distribution and to use on another distribution, where RPM is not the default&lt;br /&gt;package manager. The rpm2cpio command comes in handy under these circumstances. For example:&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;$rpm2cpio coreutils-6.9-2.fc7.i386.rpm |cpio -idv&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;./bin/basename&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;./bin/cat&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;./bin/chgrp&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;./bin/chmod&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;[...]&lt;/span&gt;&lt;br /&gt;This command can be used for source RPMs also.&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: #cc0000; font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;Checking memory and I/O&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The vmstat utility provides interesting information about processes, memory, I/O and CPU activity. When you run this utility without any arguments, the output looks similar to the following:&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;procs memory swap io system cpu&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;rbw swpd free buff cache si so bi bo in cs us sy id&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;000 8 8412 45956 52820 0 0 0 0 104 11 66 0 33&lt;/span&gt;&lt;br /&gt;Here, the ‘procs’ fields show the number of&lt;br /&gt;processes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Waiting for run time (r)&lt;/li&gt;&lt;li&gt;Blocked (b)&lt;/li&gt;&lt;li&gt;Swapped out (w)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The 'memory' fields show the KBs of:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Swap memory&lt;/li&gt;&lt;li&gt;Free memory&lt;/li&gt;&lt;li&gt;Buffered memory&lt;/li&gt;&lt;li&gt;Cached memory&lt;/li&gt;&lt;/ul&gt;The 'swap' fields show the KBps of memory:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Swapped in from disk (si)&lt;/li&gt;&lt;li&gt;Swapped out to disk (so)&lt;/li&gt;&lt;/ul&gt;The 'io' fields show the number of blocks per second:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sent to block devices (bi)&lt;/li&gt;&lt;li&gt;Received from block devices (bo)&lt;/li&gt;&lt;/ul&gt;The 'system' field shows the number of:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Interrupts per second (in)&lt;/li&gt;&lt;li&gt;Context switches per second (cs)&lt;/li&gt;&lt;/ul&gt;The 'cpu' field shows the percentage of total CPU&lt;br /&gt;time as:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;User time (us)&lt;/li&gt;&lt;li&gt;System time (sy)&lt;/li&gt;&lt;li&gt;Idle (id) time&lt;/li&gt;&lt;/ul&gt;If you want &lt;span style="font-style: italic;"&gt;vmstat&lt;/span&gt; to update informationautomatically, you can run it as &lt;span style="font-style: italic;"&gt;vmstat nsec&lt;/span&gt;, where &lt;span style="font-style: italic;"&gt;nsec&lt;/span&gt; is the number of seconds you want it to wait before&lt;br /&gt;another update.&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;span style="font-size: 130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: red; font-size: 130%;"&gt;Displays information about ELF files.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;$readelf --segments /bin/ls&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;$readelf --segments /lib/libc.so.6&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="color: red;"&gt;Execute a program periodically&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;$watch -n1 "cat /proc/interrupts"&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: red; font-size: 130%;"&gt;Find the memory used by a program / process using pmap command&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can find the memory used by a program / process by looking into /proc/[process pid]/maps.&lt;br /&gt;You can use pamp command for same.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;$pmap pid &lt;/span&gt;&lt;span style="color: #33cc00;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: #cc0000; font-size: 130%;"&gt;Run your script at boot time&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To run your script at boot time you need to first copy your script to the /etc/init.d directory&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #33cc00;"&gt;$ cp &lt;myscript&gt; /etc/init.d&lt;/myscript&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now make it executable as follows.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #33ff33;"&gt;$chmod +x &lt;myscript&gt;&lt;/myscript&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create a link to script for all run levels that you want your script to run.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #33ff33;"&gt;$ ln -s /etc/init.d/&lt;myscript&gt; /etc/rc.d/rc5.d/S85&lt;myscript&gt;&lt;/myscript&gt;&lt;/myscript&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #33ff33;"&gt;$ ln -s /etc/init.d/&lt;myscript&gt; /etc/rc.d/rc5.d/K85&lt;myscript&gt;&lt;/myscript&gt;&lt;/myscript&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The name of each symbolic link begins with either a K or S. K links are process that are killed on that runlevel, while those beginning with S are started. The S85 tells the system to start the script after starting all scripts with a lower no. &amp;amp; so is the case while killing at shutdown.&lt;br /&gt;&lt;br /&gt;Ref: Q &amp;amp; A section, Linux For You, July 2009.&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: #cc0000; font-size: 130%;"&gt;In Shell Scripting, How to find the length of variable.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #33ff33;"&gt;$ test="Hello World"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #33ff33;"&gt;$ echo ${#test}&lt;/span&gt;&lt;br /&gt;11................................................. o/p&lt;br /&gt;&lt;br /&gt;Ref: Linux Journal, May 2009.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://www.thegeekstuff.com/2009/09/ubuntu-tips-how-to-login-using-su-command-su-gives-authentication-failure-error-message/"&gt;&lt;span style="color: red; font-size: 130%;"&gt;How To Enable Root User ( Super User ) in Ubuntu&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.thegeekstuff.com/2009/07/enable-automatic-login-in-ubuntu-kubuntu/"&gt;&lt;span style="color: red; font-size: 130%;"&gt;How To Login Without Entering Username and Password&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red; font-size: 130%;"&gt;&lt;a href="http://www.thegeekstuff.com/2009/09/the-ultimate-wget-download-guide-with-15-awesome-examples/"&gt;&lt;/a&gt;&lt;/span&gt;&lt;a href="http://www.thegeekstuff.com/2009/09/the-ultimate-wget-download-guide-with-15-awesome-examples/"&gt;&lt;span style="color: red; font-size: 130%;"&gt;wet tips&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: #000099; font-size: 130%; font-style: italic; font-weight: bold;"&gt;Internet &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.thegeekstuff.com/2009/05/how-to-identify-the-speed-of-my-internet-connection/"&gt;&lt;span style="color: red; font-size: 130%;"&gt;Find the internet connection speed.&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.thegeekstuff.com/2009/08/3-websites-to-identify-public-ip-address-of-your-internet-connection-and-isp-details/"&gt;&lt;span style="color: red; font-size: 130%;"&gt;How to identify Public IP address of your internet connection and ISP details.&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000099; font-style: italic; font-weight: bold;"&gt;VIM&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.thegeekstuff.com/2009/03/8-essential-vim-editor-navigation-fundamentals/" style="color: red;"&gt;8 Essential Vim Editor Navigation Fundamentals&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;a href="http://www.thegeekstuff.com/2010/03/find-empty-directories-and-files/?utm_source=feedburner&amp;amp;utm_medium=email&amp;amp;utm_campaign=Feed%3A+TheGeekStuff+%28The+Geek+Stuff%29"&gt;How to find and delete empty directories and files&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Find empty directories in the current directory using find -empty&lt;br /&gt;&lt;pre style="color: lime;"&gt;$ find . -type d -empty&lt;/pre&gt;&lt;br /&gt;Remove all empty directories under the current directory&lt;br /&gt;&lt;pre style="color: lime;"&gt;$ find . -type d -empty -exec rmdir {} \;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;span style="font-size: small;"&gt;Find empty files in the current directory using find -empty&lt;/span&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;pre style="color: lime;"&gt;$ find . -type f -empty&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;span style="font-size: small;"&gt;How many empty files are located under the current directory&lt;/span&gt;&lt;br /&gt;&lt;pre style="color: lime;"&gt;$ find . -type f -empty | wc -l&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;How many non-empty files are located under the current directory&lt;br /&gt;&lt;pre style="color: lime;"&gt;$ find . -type f -not -empty | wc -l &lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Find dead symbolic links&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: lime;"&gt;$ find . -type l | perl -lne 'print if ! -e'&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;h1 class="entry-title" style="color: blue; font-weight: normal;"&gt;&lt;a href="http://www.cyberciti.biz/faq/linux-unix-creating-a-manpage/"&gt;&lt;span style="font-size: large;"&gt;HowTo: Linux / UNIX Create a Manpage&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;-----------------------------------------------------------&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;View information about the motherboard and CPU &lt;/pre&gt;&lt;pre&gt;$ dmidecode | more&lt;/pre&gt;&lt;pre&gt;demdecode's purpose is to report "information&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;about your system's hardware as described in your&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;system BIOS"&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;h2 style="color: red; font-weight: normal;"&gt;&lt;span style="font-size: large;"&gt;How to count how many processes each user is running in Linux&lt;/span&gt;&lt;/h2&gt;&lt;h2 style="color: red; font-weight: normal;"&gt;&lt;/h2&gt;&lt;pre style="color: lime;"&gt;&lt;b&gt;&lt;code&gt;$ ps hax -o user | sort | uniq -c&lt;/code&gt;&lt;/b&gt;&lt;/pre&gt;&lt;div style="text-align: left;"&gt;ps will list the processes, h will remove the header,&lt;br /&gt;-o user prints only the user column,&lt;br /&gt;sort sorts in alphabetical order, so uniq can count each &lt;br /&gt;occurrence and show the number of occurrences instead of all &lt;br /&gt;the occurrences themselves.&lt;br /&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="color: red;"&gt;&lt;span style="font-size: large;"&gt;How to find which process is eating RAM&lt;/span&gt;&lt;/pre&gt;&lt;pre style="color: red;"&gt;&lt;span style="font-size: large;"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="color: red;"&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="color: lime;"&gt;&lt;code&gt;$ ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 20&lt;/code&gt;&lt;/pre&gt;&lt;pre style="color: lime;"&gt;&lt;span style="color: black;"&gt;-----------------------------------------------------------&lt;/span&gt;&lt;code&gt; &lt;/code&gt;&lt;/pre&gt;&lt;pre style="color: lime;"&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="color: red;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; Sed tutorials&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="color: red;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="color: red;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;a href="http://unstableme.blogspot.com/search/label/Sed"&gt;http://unstableme.blogspot.com/search/label/Sed&lt;/a&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="color: red;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="color: red;"&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;cross compiling&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;&lt;a href="http://www.gnu.org/s/hello/manual/libc/Configuring-and-compiling.html"&gt;http://www.gnu.org/s/hello/manual/libc/Configuring-and-compiling.html&lt;/a&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;Using Vim as a hex editor&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;Open a file in vim as usual, hit escape and type:&lt;/pre&gt;&lt;pre&gt;: &lt;code&gt;%!xxd to switch into hex mode&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;exit from hex mode&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;:%!xxd -r&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&lt;/code&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;h1 id="blog_title" style="font-weight: normal; margin: 0px;"&gt;&lt;span style="font-size: small;"&gt;How to see what is in an RPM without installing it?&lt;/span&gt;&lt;/h1&gt;&lt;h1 id="blog_title" style="font-size: 10pt; font-weight: normal; margin: 0px;"&gt;&amp;nbsp;1. Create a temp directory&lt;/h1&gt;&lt;h1 id="blog_title" style="font-size: 10pt; font-weight: normal; margin: 0px;"&gt;&amp;nbsp;&lt;/h1&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin-right: -99999px; margin: 0px; overflow: auto; padding: 3px; text-align: left; width: 98%;"&gt;# mkdir x&lt;/pre&gt;&lt;h1 id="blog_title" style="font-size: 10pt; font-weight: normal; margin: 0px;"&gt;&amp;nbsp;&lt;/h1&gt;&lt;h1 id="blog_title" style="font-size: 10pt; font-weight: normal; margin: 0px;"&gt;&amp;nbsp;2. Change directory&lt;/h1&gt;&lt;h1 id="blog_title" style="font-size: 10pt; font-weight: normal; margin: 0px;"&gt;&amp;nbsp;&lt;/h1&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin-right: -99999px; margin: 0px; overflow: auto; padding: 3px; text-align: left; width: 98%;"&gt;# cd x&lt;/pre&gt;&lt;h1 id="blog_title" style="font-size: 10pt; font-weight: normal; margin: 0px;"&gt;&amp;nbsp;3. Now extract the RPM&lt;/h1&gt;&lt;h1 id="blog_title" style="font-size: 10pt; font-weight: normal; margin: 0px;"&gt;&amp;nbsp;&lt;/h1&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin-right: -99999px; margin: 0px; overflow: auto; padding: 3px; text-align: left; width: 98%;"&gt;# rpm2cpio /path/of/ur/RPM/file.rpm | cpio -dmi&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&amp;nbsp;Ref:  http://www.linuxquestions.org/questions/blog/hi2arun-520846/&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;how-to-see-what-is-in-an-rpm-without-installing-it-4062/&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&lt;/code&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;How to change the  sudo timeout length in Ubuntu&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;https://help.ubuntu.com/community/RootSudoTimeout&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;-----------------------------------------------------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;h2 class="title"&gt;Disable/Enable Auto-Mount in Ubuntu 10.04/10.10&lt;/h2&gt;&lt;h2 class="title"&gt;&lt;a href="http://www.liberiangeek.net/2010/09/disableenable-auto-mount-ubuntu-10-0410-10-maverick-meerkat/"&gt;&amp;nbsp;&lt;b&gt;http://www.liberiangeek.net/2010/09/disableenable-auto-mount-ubuntu-10-0410-10-maverick-meerkat/&lt;/b&gt; &lt;/a&gt;&lt;/h2&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-752220237108180646?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/752220237108180646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=752220237108180646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/752220237108180646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/752220237108180646'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2009/05/tips-tricks.html' title='Tips &amp; Tricks'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-4257703929715333761</id><published>2009-04-06T12:15:00.002+05:30</published><updated>2009-04-06T12:29:13.074+05:30</updated><title type='text'>Maximum On-Disk Sizes of the Filesystems</title><content type='html'>Filesystem                                   File Size Limit    Filesystem Size Limit&lt;br /&gt;ext2 with 1 KiB blocksize         16448 MiB                  2048 GiB (= 2 TiB)&lt;br /&gt;                                                    (~ 16 GiB)&lt;br /&gt;&lt;br /&gt;ext2 with 2 KiB blocksize        256 GiB                        8192 GiB (= 8 TiB)&lt;br /&gt;&lt;br /&gt;ext2 with 4 KiB blocksize        2048 GiB (= 2 TiB)      16384 GiB (= 16 TiB)&lt;br /&gt;&lt;br /&gt;ext2 with 8 KiB blocksize (1)    65568 GiB (~ 64 TiB)  32768 GiB (= 32 TiB)&lt;br /&gt;&lt;br /&gt;ReiserFS 3.5 (Linux 2.2)             4 GiB                            16384 GiB (= 16 TiB)&lt;br /&gt;&lt;br /&gt;ReiserFS 3.6 (Linux 2.4)             1 EiB                            16384 GiB (= 16 TiB)&lt;br /&gt;&lt;br /&gt;XFS                                              8 EiB                             8 EiB&lt;br /&gt;&lt;br /&gt;JFS with 512 Bytes blocksize   8 EiB                               512 TiB&lt;br /&gt;&lt;br /&gt;JFS with 4KiB blocksize            8 EiB                              4 PiB&lt;br /&gt;&lt;br /&gt;NFSv2 (Client side)                   2 GiB                              8 EiB&lt;br /&gt;&lt;br /&gt;NFSv3 (Client side)                   8 EiB                               8 EiB&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Reference&lt;br /&gt;&lt;a href="http://linuxreviews.org/sysadmin/filesystems/"&gt;http://linuxreviews.org/sysadmin/filesystems/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-4257703929715333761?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/4257703929715333761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=4257703929715333761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/4257703929715333761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/4257703929715333761'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2009/04/maximum-on-disk-sizes-of-filesystems.html' title='Maximum On-Disk Sizes of the Filesystems'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-3322390548741120519</id><published>2009-03-03T15:25:00.001+05:30</published><updated>2009-03-03T15:31:29.728+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux modules'/><category scheme='http://www.blogger.com/atom/ns#' term='kbuild'/><title type='text'>Kbuild</title><content type='html'>Linux Kernel Makefiles&lt;br /&gt;&lt;br /&gt;This document describes the Linux kernel Makefiles.&lt;br /&gt;&lt;br /&gt;=== Table of Contents&lt;br /&gt;&lt;br /&gt;    === 1 Overview&lt;br /&gt;    === 2 Who does what&lt;br /&gt;    === 3 The kbuild files&lt;br /&gt;       --- 3.1 Goal definitions&lt;br /&gt;       --- 3.2 Built-in object goals - obj-y&lt;br /&gt;       --- 3.3 Loadable module goals - obj-m&lt;br /&gt;       --- 3.4 Objects which export symbols&lt;br /&gt;       --- 3.5 Library file goals - lib-y&lt;br /&gt;       --- 3.6 Descending down in directories&lt;br /&gt;       --- 3.7 Compilation flags&lt;br /&gt;       --- 3.8 Command line dependency&lt;br /&gt;       --- 3.9 Dependency tracking&lt;br /&gt;       --- 3.10 Special Rules&lt;br /&gt;       --- 3.11 $(CC) support functions&lt;br /&gt;&lt;br /&gt;    === 4 Host Program support&lt;br /&gt;       --- 4.1 Simple Host Program&lt;br /&gt;       --- 4.2 Composite Host Programs&lt;br /&gt;       --- 4.3 Defining shared libraries&lt;br /&gt;       --- 4.4 Using C++ for host programs&lt;br /&gt;       --- 4.5 Controlling compiler options for host programs&lt;br /&gt;       --- 4.6 When host programs are actually built&lt;br /&gt;       --- 4.7 Using hostprogs-$(CONFIG_FOO)&lt;br /&gt;&lt;br /&gt;    === 5 Kbuild clean infrastructure&lt;br /&gt;&lt;br /&gt;    === 6 Architecture Makefiles&lt;br /&gt;       --- 6.1 Set variables to tweak the build to the architecture&lt;br /&gt;       --- 6.2 Add prerequisites to archprepare:&lt;br /&gt;       --- 6.3 List directories to visit when descending&lt;br /&gt;       --- 6.4 Architecture specific boot images&lt;br /&gt;       --- 6.5 Building non-kbuild targets&lt;br /&gt;       --- 6.6 Commands useful for building a boot image&lt;br /&gt;       --- 6.7 Custom kbuild commands&lt;br /&gt;       --- 6.8 Preprocessing linker scripts&lt;br /&gt;&lt;br /&gt;    === 7 Kbuild Variables&lt;br /&gt;    === 8 Makefile language&lt;br /&gt;    === 9 Credits&lt;br /&gt;    === 10 TODO&lt;br /&gt;&lt;br /&gt;=== 1 Overview&lt;br /&gt;&lt;br /&gt;The Makefiles have five parts:&lt;br /&gt;&lt;br /&gt;    Makefile        the top Makefile.&lt;br /&gt;    .config            the kernel configuration file.&lt;br /&gt;    arch/$(ARCH)/Makefile    the arch Makefile.&lt;br /&gt;    scripts/Makefile.*    common rules etc. for all kbuild Makefiles.&lt;br /&gt;    kbuild Makefiles    there are about 500 of these.&lt;br /&gt;&lt;br /&gt;The top Makefile reads the .config file, which comes from the kernel&lt;br /&gt;configuration process.&lt;br /&gt;&lt;br /&gt;The top Makefile is responsible for building two major products: vmlinux&lt;br /&gt;(the resident kernel image) and modules (any module files).&lt;br /&gt;It builds these goals by recursively descending into the subdirectories of&lt;br /&gt;the kernel source tree.&lt;br /&gt;The list of subdirectories which are visited depends upon the kernel&lt;br /&gt;configuration. The top Makefile textually includes an arch Makefile&lt;br /&gt;with the name arch/$(ARCH)/Makefile. The arch Makefile supplies&lt;br /&gt;architecture-specific information to the top Makefile.&lt;br /&gt;&lt;br /&gt;Each subdirectory has a kbuild Makefile which carries out the commands&lt;br /&gt;passed down from above. The kbuild Makefile uses information from the&lt;br /&gt;.config file to construct various file lists used by kbuild to build&lt;br /&gt;any built-in or modular targets.&lt;br /&gt;&lt;br /&gt;scripts/Makefile.* contains all the definitions/rules etc. that&lt;br /&gt;are used to build the kernel based on the kbuild makefiles.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;=== 2 Who does what&lt;br /&gt;&lt;br /&gt;People have four different relationships with the kernel Makefiles.&lt;br /&gt;&lt;br /&gt;*Users* are people who build kernels.  These people type commands such as&lt;br /&gt;"make menuconfig" or "make".  They usually do not read or edit&lt;br /&gt;any kernel Makefiles (or any other source files).&lt;br /&gt;&lt;br /&gt;*Normal developers* are people who work on features such as device&lt;br /&gt;drivers, file systems, and network protocols.  These people need to&lt;br /&gt;maintain the kbuild Makefiles for the subsystem they are&lt;br /&gt;working on.  In order to do this effectively, they need some overall&lt;br /&gt;knowledge about the kernel Makefiles, plus detailed knowledge about the&lt;br /&gt;public interface for kbuild.&lt;br /&gt;&lt;br /&gt;*Arch developers* are people who work on an entire architecture, such&lt;br /&gt;as sparc or ia64.  Arch developers need to know about the arch Makefile&lt;br /&gt;as well as kbuild Makefiles.&lt;br /&gt;&lt;br /&gt;*Kbuild developers* are people who work on the kernel build system itself.&lt;br /&gt;These people need to know about all aspects of the kernel Makefiles.&lt;br /&gt;&lt;br /&gt;This document is aimed towards normal developers and arch developers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;=== 3 The kbuild files&lt;br /&gt;&lt;br /&gt;Most Makefiles within the kernel are kbuild Makefiles that use the&lt;br /&gt;kbuild infrastructure. This chapter introduces the syntax used in the&lt;br /&gt;kbuild makefiles.&lt;br /&gt;The preferred name for the kbuild files are 'Makefile' but 'Kbuild' can&lt;br /&gt;be used and if both a 'Makefile' and a 'Kbuild' file exists, then the 'Kbuild'&lt;br /&gt;file will be used.&lt;br /&gt;&lt;br /&gt;Section 3.1 "Goal definitions" is a quick intro, further chapters provide&lt;br /&gt;more details, with real examples.&lt;br /&gt;&lt;br /&gt;--- 3.1 Goal definitions&lt;br /&gt;&lt;br /&gt;    Goal definitions are the main part (heart) of the kbuild Makefile.&lt;br /&gt;    These lines define the files to be built, any special compilation&lt;br /&gt;    options, and any subdirectories to be entered recursively.&lt;br /&gt;&lt;br /&gt;    The most simple kbuild makefile contains one line:&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        obj-y += foo.o&lt;br /&gt;&lt;br /&gt;    This tell kbuild that there is one object in that directory, named&lt;br /&gt;    foo.o. foo.o will be built from foo.c or foo.S.&lt;br /&gt;&lt;br /&gt;    If foo.o shall be built as a module, the variable obj-m is used.&lt;br /&gt;    Therefore the following pattern is often used:&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        obj-$(CONFIG_FOO) += foo.o&lt;br /&gt;&lt;br /&gt;    $(CONFIG_FOO) evaluates to either y (for built-in) or m (for module).&lt;br /&gt;    If CONFIG_FOO is neither y nor m, then the file will not be compiled&lt;br /&gt;    nor linked.&lt;br /&gt;&lt;br /&gt;--- 3.2 Built-in object goals - obj-y&lt;br /&gt;&lt;br /&gt;    The kbuild Makefile specifies object files for vmlinux&lt;br /&gt;    in the $(obj-y) lists.  These lists depend on the kernel&lt;br /&gt;    configuration.&lt;br /&gt;&lt;br /&gt;    Kbuild compiles all the $(obj-y) files.  It then calls&lt;br /&gt;    "$(LD) -r" to merge these files into one built-in.o file.&lt;br /&gt;    built-in.o is later linked into vmlinux by the parent Makefile.&lt;br /&gt;&lt;br /&gt;    The order of files in $(obj-y) is significant.  Duplicates in&lt;br /&gt;    the lists are allowed: the first instance will be linked into&lt;br /&gt;    built-in.o and succeeding instances will be ignored.&lt;br /&gt;&lt;br /&gt;    Link order is significant, because certain functions&lt;br /&gt;    (module_init() / __initcall) will be called during boot in the&lt;br /&gt;    order they appear. So keep in mind that changing the link&lt;br /&gt;    order may e.g. change the order in which your SCSI&lt;br /&gt;    controllers are detected, and thus your disks are renumbered.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #drivers/isdn/i4l/Makefile&lt;br /&gt;        # Makefile for the kernel ISDN subsystem and device drivers.&lt;br /&gt;        # Each configuration option enables a list of files.&lt;br /&gt;        obj-$(CONFIG_ISDN)             += isdn.o&lt;br /&gt;        obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o&lt;br /&gt;&lt;br /&gt;--- 3.3 Loadable module goals - obj-m&lt;br /&gt;&lt;br /&gt;    $(obj-m) specify object files which are built as loadable&lt;br /&gt;    kernel modules.&lt;br /&gt;&lt;br /&gt;    A module may be built from one source file or several source&lt;br /&gt;    files. In the case of one source file, the kbuild makefile&lt;br /&gt;    simply adds the file to $(obj-m).&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #drivers/isdn/i4l/Makefile&lt;br /&gt;        obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o&lt;br /&gt;&lt;br /&gt;    Note: In this example $(CONFIG_ISDN_PPP_BSDCOMP) evaluates to 'm'&lt;br /&gt;&lt;br /&gt;    If a kernel module is built from several source files, you specify&lt;br /&gt;    that you want to build a module in the same way as above.&lt;br /&gt;&lt;br /&gt;    Kbuild needs to know which the parts that you want to build your&lt;br /&gt;    module from, so you have to tell it by setting an&lt;br /&gt;    $(&lt;module_name&gt;-objs) variable.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #drivers/isdn/i4l/Makefile&lt;br /&gt;        obj-$(CONFIG_ISDN) += isdn.o&lt;br /&gt;        isdn-objs := isdn_net_lib.o isdn_v110.o isdn_common.o&lt;br /&gt;&lt;br /&gt;    In this example, the module name will be isdn.o. Kbuild will&lt;br /&gt;    compile the objects listed in $(isdn-objs) and then run&lt;br /&gt;    "$(LD) -r" on the list of these files to generate isdn.o.&lt;br /&gt;&lt;br /&gt;    Kbuild recognises objects used for composite objects by the suffix&lt;br /&gt;    -objs, and the suffix -y. This allows the Makefiles to use&lt;br /&gt;    the value of a CONFIG_ symbol to determine if an object is part&lt;br /&gt;    of a composite object.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #fs/ext2/Makefile&lt;br /&gt;            obj-$(CONFIG_EXT2_FS)        += ext2.o&lt;br /&gt;        ext2-y                       := balloc.o bitmap.o&lt;br /&gt;            ext2-$(CONFIG_EXT2_FS_XATTR) += xattr.o&lt;br /&gt;&lt;br /&gt;    In this example, xattr.o is only part of the composite object&lt;br /&gt;    ext2.o if $(CONFIG_EXT2_FS_XATTR) evaluates to 'y'.&lt;br /&gt;&lt;br /&gt;    Note: Of course, when you are building objects into the kernel,&lt;br /&gt;    the syntax above will also work. So, if you have CONFIG_EXT2_FS=y,&lt;br /&gt;    kbuild will build an ext2.o file for you out of the individual&lt;br /&gt;    parts and then link this into built-in.o, as you would expect.&lt;br /&gt;&lt;br /&gt;--- 3.4 Objects which export symbols&lt;br /&gt;&lt;br /&gt;    No special notation is required in the makefiles for&lt;br /&gt;    modules exporting symbols.&lt;br /&gt;&lt;br /&gt;--- 3.5 Library file goals - lib-y&lt;br /&gt;&lt;br /&gt;    Objects listed with obj-* are used for modules, or&lt;br /&gt;    combined in a built-in.o for that specific directory.&lt;br /&gt;    There is also the possibility to list objects that will&lt;br /&gt;    be included in a library, lib.a.&lt;br /&gt;    All objects listed with lib-y are combined in a single&lt;br /&gt;    library for that directory.&lt;br /&gt;    Objects that are listed in obj-y and additionally listed in&lt;br /&gt;    lib-y will not be included in the library, since they will&lt;br /&gt;    be accessible anyway.&lt;br /&gt;    For consistency, objects listed in lib-m will be included in lib.a.&lt;br /&gt;&lt;br /&gt;    Note that the same kbuild makefile may list files to be built-in&lt;br /&gt;    and to be part of a library. Therefore the same directory&lt;br /&gt;    may contain both a built-in.o and a lib.a file.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/lib/Makefile&lt;br /&gt;        lib-y    := checksum.o delay.o&lt;br /&gt;&lt;br /&gt;    This will create a library lib.a based on checksum.o and delay.o.&lt;br /&gt;    For kbuild to actually recognize that there is a lib.a being built,&lt;br /&gt;    the directory shall be listed in libs-y.&lt;br /&gt;    See also "6.3 List directories to visit when descending".&lt;br /&gt;&lt;br /&gt;    Use of lib-y is normally restricted to lib/ and arch/*/lib.&lt;br /&gt;&lt;br /&gt;--- 3.6 Descending down in directories&lt;br /&gt;&lt;br /&gt;    A Makefile is only responsible for building objects in its own&lt;br /&gt;    directory. Files in subdirectories should be taken care of by&lt;br /&gt;    Makefiles in these subdirs. The build system will automatically&lt;br /&gt;    invoke make recursively in subdirectories, provided you let it know of&lt;br /&gt;    them.&lt;br /&gt;&lt;br /&gt;    To do so, obj-y and obj-m are used.&lt;br /&gt;    ext2 lives in a separate directory, and the Makefile present in fs/&lt;br /&gt;    tells kbuild to descend down using the following assignment.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #fs/Makefile&lt;br /&gt;        obj-$(CONFIG_EXT2_FS) += ext2/&lt;br /&gt;&lt;br /&gt;    If CONFIG_EXT2_FS is set to either 'y' (built-in) or 'm' (modular)&lt;br /&gt;    the corresponding obj- variable will be set, and kbuild will descend&lt;br /&gt;    down in the ext2 directory.&lt;br /&gt;    Kbuild only uses this information to decide that it needs to visit&lt;br /&gt;    the directory, it is the Makefile in the subdirectory that&lt;br /&gt;    specifies what is modules and what is built-in.&lt;br /&gt;&lt;br /&gt;    It is good practice to use a CONFIG_ variable when assigning directory&lt;br /&gt;    names. This allows kbuild to totally skip the directory if the&lt;br /&gt;    corresponding CONFIG_ option is neither 'y' nor 'm'.&lt;br /&gt;&lt;br /&gt;--- 3.7 Compilation flags&lt;br /&gt;&lt;br /&gt;    EXTRA_CFLAGS, EXTRA_AFLAGS, EXTRA_LDFLAGS, EXTRA_ARFLAGS&lt;br /&gt;&lt;br /&gt;    All the EXTRA_ variables apply only to the kbuild makefile&lt;br /&gt;    where they are assigned. The EXTRA_ variables apply to all&lt;br /&gt;    commands executed in the kbuild makefile.&lt;br /&gt;&lt;br /&gt;    $(EXTRA_CFLAGS) specifies options for compiling C files with&lt;br /&gt;    $(CC).&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        # drivers/sound/emu10k1/Makefile&lt;br /&gt;        EXTRA_CFLAGS += -I$(obj)&lt;br /&gt;        ifdef DEBUG&lt;br /&gt;            EXTRA_CFLAGS += -DEMU10K1_DEBUG&lt;br /&gt;        endif&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    This variable is necessary because the top Makefile owns the&lt;br /&gt;    variable $(CFLAGS) and uses it for compilation flags for the&lt;br /&gt;    entire tree.&lt;br /&gt;&lt;br /&gt;    $(EXTRA_AFLAGS) is a similar string for per-directory options&lt;br /&gt;    when compiling assembly language source.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/x86_64/kernel/Makefile&lt;br /&gt;        EXTRA_AFLAGS := -traditional&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    $(EXTRA_LDFLAGS) and $(EXTRA_ARFLAGS) are similar strings for&lt;br /&gt;    per-directory options to $(LD) and $(AR).&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/m68k/fpsp040/Makefile&lt;br /&gt;        EXTRA_LDFLAGS := -x&lt;br /&gt;&lt;br /&gt;    CFLAGS_$@, AFLAGS_$@&lt;br /&gt;&lt;br /&gt;    CFLAGS_$@ and AFLAGS_$@ only apply to commands in current&lt;br /&gt;    kbuild makefile.&lt;br /&gt;&lt;br /&gt;    $(CFLAGS_$@) specifies per-file options for $(CC).  The $@&lt;br /&gt;    part has a literal value which specifies the file that it is for.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        # drivers/scsi/Makefile&lt;br /&gt;        CFLAGS_aha152x.o =   -DAHA152X_STAT -DAUTOCONF&lt;br /&gt;        CFLAGS_gdth.o    = # -DDEBUG_GDTH=2 -D__SERIAL__ -D__COM2__ \&lt;br /&gt;                     -DGDTH_STATISTICS&lt;br /&gt;        CFLAGS_seagate.o =   -DARBITRATE -DPARITY -DSEAGATE_USE_ASM&lt;br /&gt;&lt;br /&gt;    These three lines specify compilation flags for aha152x.o,&lt;br /&gt;    gdth.o, and seagate.o&lt;br /&gt;&lt;br /&gt;    $(AFLAGS_$@) is a similar feature for source files in assembly&lt;br /&gt;    languages.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        # arch/arm/kernel/Makefile&lt;br /&gt;        AFLAGS_head-armv.o := -DTEXTADDR=$(TEXTADDR) -traditional&lt;br /&gt;        AFLAGS_head-armo.o := -DTEXTADDR=$(TEXTADDR) -traditional&lt;br /&gt;&lt;br /&gt;--- 3.9 Dependency tracking&lt;br /&gt;&lt;br /&gt;    Kbuild tracks dependencies on the following:&lt;br /&gt;    1) All prerequisite files (both *.c and *.h)&lt;br /&gt;    2) CONFIG_ options used in all prerequisite files&lt;br /&gt;    3) Command-line used to compile target&lt;br /&gt;&lt;br /&gt;    Thus, if you change an option to $(CC) all affected files will&lt;br /&gt;    be re-compiled.&lt;br /&gt;&lt;br /&gt;--- 3.10 Special Rules&lt;br /&gt;&lt;br /&gt;    Special rules are used when the kbuild infrastructure does&lt;br /&gt;    not provide the required support. A typical example is&lt;br /&gt;    header files generated during the build process.&lt;br /&gt;    Another example are the architecture specific Makefiles which&lt;br /&gt;    need special rules to prepare boot images etc.&lt;br /&gt;&lt;br /&gt;    Special rules are written as normal Make rules.&lt;br /&gt;    Kbuild is not executing in the directory where the Makefile is&lt;br /&gt;    located, so all special rules shall provide a relative&lt;br /&gt;    path to prerequisite files and target files.&lt;br /&gt;&lt;br /&gt;    Two variables are used when defining special rules:&lt;br /&gt;&lt;br /&gt;    $(src)&lt;br /&gt;    $(src) is a relative path which points to the directory&lt;br /&gt;    where the Makefile is located. Always use $(src) when&lt;br /&gt;    referring to files located in the src tree.&lt;br /&gt;&lt;br /&gt;    $(obj)&lt;br /&gt;    $(obj) is a relative path which points to the directory&lt;br /&gt;    where the target is saved. Always use $(obj) when&lt;br /&gt;    referring to generated files.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #drivers/scsi/Makefile&lt;br /&gt;        $(obj)/53c8xx_d.h: $(src)/53c7,8xx.scr $(src)/script_asm.pl&lt;br /&gt;            $(CPP) -DCHIP=810 - &lt; $&lt; | ... $(src)/script_asm.pl&lt;br /&gt;&lt;br /&gt;    This is a special rule, following the normal syntax&lt;br /&gt;    required by make.&lt;br /&gt;    The target file depends on two prerequisite files. References&lt;br /&gt;    to the target file are prefixed with $(obj), references&lt;br /&gt;    to prerequisites are referenced with $(src) (because they are not&lt;br /&gt;    generated files).&lt;br /&gt;&lt;br /&gt;--- 3.11 $(CC) support functions&lt;br /&gt;&lt;br /&gt;    The kernel may be built with several different versions of&lt;br /&gt;    $(CC), each supporting a unique set of features and options.&lt;br /&gt;    kbuild provide basic support to check for valid options for $(CC).&lt;br /&gt;    $(CC) is usually the gcc compiler, but other alternatives are&lt;br /&gt;    available.&lt;br /&gt;&lt;br /&gt;    as-option&lt;br /&gt;    as-option is used to check if $(CC) -- when used to compile&lt;br /&gt;    assembler (*.S) files -- supports the given option. An optional&lt;br /&gt;    second option may be specified if the first option is not supported.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/sh/Makefile&lt;br /&gt;        cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),)&lt;br /&gt;&lt;br /&gt;    In the above example, cflags-y will be assigned the option&lt;br /&gt;    -Wa$(comma)-isa=$(isa-y) if it is supported by $(CC).&lt;br /&gt;    The second argument is optional, and if supplied will be used&lt;br /&gt;    if first argument is not supported.&lt;br /&gt;&lt;br /&gt;    ld-option&lt;br /&gt;    ld-option is used to check if $(CC) when used to link object files&lt;br /&gt;    supports the given option.  An optional second option may be&lt;br /&gt;    specified if first option are not supported.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/kernel/Makefile&lt;br /&gt;        vsyscall-flags += $(call ld-option, -Wl$(comma)--hash-style=sysv)&lt;br /&gt;&lt;br /&gt;    In the above example vsyscall-flags will be assigned the option&lt;br /&gt;    -Wl$(comma)--hash-style=sysv if it is supported by $(CC).&lt;br /&gt;    The second argument is optional, and if supplied will be used&lt;br /&gt;    if first argument is not supported.&lt;br /&gt;&lt;br /&gt;    as-instr&lt;br /&gt;    as-instr checks if the assembler reports a specific instruction&lt;br /&gt;    and then outputs either option1 or option2&lt;br /&gt;    C escapes are supported in the test instruction&lt;br /&gt;&lt;br /&gt;    cc-option&lt;br /&gt;    cc-option is used to check if $(CC) supports a given option, and not&lt;br /&gt;    supported to use an optional second option.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/Makefile&lt;br /&gt;        cflags-y += $(call cc-option,-march=pentium-mmx,-march=i586)&lt;br /&gt;&lt;br /&gt;    In the above example cflags-y will be assigned the option&lt;br /&gt;    -march=pentium-mmx if supported by $(CC), otherwise -march=i586.&lt;br /&gt;    The second argument to cc-option is optional, and if omitted,&lt;br /&gt;    cflags-y will be assigned no value if first option is not supported.&lt;br /&gt;&lt;br /&gt;   cc-option-yn&lt;br /&gt;    cc-option-yn is used to check if gcc supports a given option&lt;br /&gt;    and return 'y' if supported, otherwise 'n'.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/ppc/Makefile&lt;br /&gt;        biarch := $(call cc-option-yn, -m32)&lt;br /&gt;        aflags-$(biarch) += -a32&lt;br /&gt;        cflags-$(biarch) += -m32&lt;br /&gt;&lt;br /&gt;    In the above example, $(biarch) is set to y if $(CC) supports the -m32&lt;br /&gt;    option. When $(biarch) equals 'y', the expanded variables $(aflags-y)&lt;br /&gt;    and $(cflags-y) will be assigned the values -a32 and -m32,&lt;br /&gt;    respectively.&lt;br /&gt;&lt;br /&gt;    cc-option-align&lt;br /&gt;    gcc versions &gt;= 3.0 changed the type of options used to specify&lt;br /&gt;    alignment of functions, loops etc. $(cc-option-align), when used&lt;br /&gt;    as prefix to the align options, will select the right prefix:&lt;br /&gt;    gcc &lt; 3.00&lt;br /&gt;        cc-option-align = -malign&lt;br /&gt;    gcc &gt;= 3.00&lt;br /&gt;        cc-option-align = -falign&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        CFLAGS += $(cc-option-align)-functions=4&lt;br /&gt;&lt;br /&gt;    In the above example, the option -falign-functions=4 is used for&lt;br /&gt;    gcc &gt;= 3.00. For gcc &lt; 3.00, -malign-functions=4 is used.&lt;br /&gt;&lt;br /&gt;    cc-version&lt;br /&gt;    cc-version returns a numerical version of the $(CC) compiler version.&lt;br /&gt;    The format is &lt;major&gt;&lt;minor&gt; where both are two digits. So for example&lt;br /&gt;    gcc 3.41 would return 0341.&lt;br /&gt;    cc-version is useful when a specific $(CC) version is faulty in one&lt;br /&gt;    area, for example -mregparm=3 was broken in some gcc versions&lt;br /&gt;    even though the option was accepted by gcc.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/Makefile&lt;br /&gt;        cflags-y += $(shell \&lt;br /&gt;        if [ $(call cc-version) -ge 0300 ] ; then \&lt;br /&gt;            echo "-mregparm=3"; fi ;)&lt;br /&gt;&lt;br /&gt;    In the above example, -mregparm=3 is only used for gcc version greater&lt;br /&gt;    than or equal to gcc 3.0.&lt;br /&gt;&lt;br /&gt;    cc-ifversion&lt;br /&gt;    cc-ifversion tests the version of $(CC) and equals last argument if&lt;br /&gt;    version expression is true.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #fs/reiserfs/Makefile&lt;br /&gt;        EXTRA_CFLAGS := $(call cc-ifversion, -lt, 0402, -O1)&lt;br /&gt;&lt;br /&gt;    In this example, EXTRA_CFLAGS will be assigned the value -O1 if the&lt;br /&gt;    $(CC) version is less than 4.2.&lt;br /&gt;    cc-ifversion takes all the shell operators:&lt;br /&gt;    -eq, -ne, -lt, -le, -gt, and -ge&lt;br /&gt;    The third parameter may be a text as in this example, but it may also&lt;br /&gt;    be an expanded variable or a macro.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;=== 4 Host Program support&lt;br /&gt;&lt;br /&gt;Kbuild supports building executables on the host for use during the&lt;br /&gt;compilation stage.&lt;br /&gt;Two steps are required in order to use a host executable.&lt;br /&gt;&lt;br /&gt;The first step is to tell kbuild that a host program exists. This is&lt;br /&gt;done utilising the variable hostprogs-y.&lt;br /&gt;&lt;br /&gt;The second step is to add an explicit dependency to the executable.&lt;br /&gt;This can be done in two ways. Either add the dependency in a rule,&lt;br /&gt;or utilise the variable $(always).&lt;br /&gt;Both possibilities are described in the following.&lt;br /&gt;&lt;br /&gt;--- 4.1 Simple Host Program&lt;br /&gt;&lt;br /&gt;    In some cases there is a need to compile and run a program on the&lt;br /&gt;    computer where the build is running.&lt;br /&gt;    The following line tells kbuild that the program bin2hex shall be&lt;br /&gt;    built on the build host.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        hostprogs-y := bin2hex&lt;br /&gt;&lt;br /&gt;    Kbuild assumes in the above example that bin2hex is made from a single&lt;br /&gt;    c-source file named bin2hex.c located in the same directory as&lt;br /&gt;    the Makefile.&lt;br /&gt;&lt;br /&gt;--- 4.2 Composite Host Programs&lt;br /&gt;&lt;br /&gt;    Host programs can be made up based on composite objects.&lt;br /&gt;    The syntax used to define composite objects for host programs is&lt;br /&gt;    similar to the syntax used for kernel objects.&lt;br /&gt;    $(&lt;executable&gt;-objs) lists all objects used to link the final&lt;br /&gt;    executable.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #scripts/lxdialog/Makefile&lt;br /&gt;        hostprogs-y   := lxdialog&lt;br /&gt;        lxdialog-objs := checklist.o lxdialog.o&lt;br /&gt;&lt;br /&gt;    Objects with extension .o are compiled from the corresponding .c&lt;br /&gt;    files. In the above example, checklist.c is compiled to checklist.o&lt;br /&gt;    and lxdialog.c is compiled to lxdialog.o.&lt;br /&gt;    Finally, the two .o files are linked to the executable, lxdialog.&lt;br /&gt;    Note: The syntax &lt;executable&gt;-y is not permitted for host-programs.&lt;br /&gt;&lt;br /&gt;--- 4.3 Defining shared libraries&lt;br /&gt;&lt;br /&gt;    Objects with extension .so are considered shared libraries, and&lt;br /&gt;    will be compiled as position independent objects.&lt;br /&gt;    Kbuild provides support for shared libraries, but the usage&lt;br /&gt;    shall be restricted.&lt;br /&gt;    In the following example the libkconfig.so shared library is used&lt;br /&gt;    to link the executable conf.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #scripts/kconfig/Makefile&lt;br /&gt;        hostprogs-y     := conf&lt;br /&gt;        conf-objs       := conf.o libkconfig.so&lt;br /&gt;        libkconfig-objs := expr.o type.o&lt;br /&gt;&lt;br /&gt;    Shared libraries always require a corresponding -objs line, and&lt;br /&gt;    in the example above the shared library libkconfig is composed by&lt;br /&gt;    the two objects expr.o and type.o.&lt;br /&gt;    expr.o and type.o will be built as position independent code and&lt;br /&gt;    linked as a shared library libkconfig.so. C++ is not supported for&lt;br /&gt;    shared libraries.&lt;br /&gt;&lt;br /&gt;--- 4.4 Using C++ for host programs&lt;br /&gt;&lt;br /&gt;    kbuild offers support for host programs written in C++. This was&lt;br /&gt;    introduced solely to support kconfig, and is not recommended&lt;br /&gt;    for general use.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #scripts/kconfig/Makefile&lt;br /&gt;        hostprogs-y   := qconf&lt;br /&gt;        qconf-cxxobjs := qconf.o&lt;br /&gt;&lt;br /&gt;    In the example above the executable is composed of the C++ file&lt;br /&gt;    qconf.cc - identified by $(qconf-cxxobjs).&lt;br /&gt;&lt;br /&gt;    If qconf is composed by a mixture of .c and .cc files, then an&lt;br /&gt;    additional line can be used to identify this.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #scripts/kconfig/Makefile&lt;br /&gt;        hostprogs-y   := qconf&lt;br /&gt;        qconf-cxxobjs := qconf.o&lt;br /&gt;        qconf-objs    := check.o&lt;br /&gt;&lt;br /&gt;--- 4.5 Controlling compiler options for host programs&lt;br /&gt;&lt;br /&gt;    When compiling host programs, it is possible to set specific flags.&lt;br /&gt;    The programs will always be compiled utilising $(HOSTCC) passed&lt;br /&gt;    the options specified in $(HOSTCFLAGS).&lt;br /&gt;    To set flags that will take effect for all host programs created&lt;br /&gt;    in that Makefile, use the variable HOST_EXTRACFLAGS.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #scripts/lxdialog/Makefile&lt;br /&gt;        HOST_EXTRACFLAGS += -I/usr/include/ncurses&lt;br /&gt;&lt;br /&gt;    To set specific flags for a single file the following construction&lt;br /&gt;    is used:&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/ppc64/boot/Makefile&lt;br /&gt;        HOSTCFLAGS_piggyback.o := -DKERNELBASE=$(KERNELBASE)&lt;br /&gt;&lt;br /&gt;    It is also possible to specify additional options to the linker.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #scripts/kconfig/Makefile&lt;br /&gt;        HOSTLOADLIBES_qconf := -L$(QTDIR)/lib&lt;br /&gt;&lt;br /&gt;    When linking qconf, it will be passed the extra option&lt;br /&gt;    "-L$(QTDIR)/lib".&lt;br /&gt;&lt;br /&gt;--- 4.6 When host programs are actually built&lt;br /&gt;&lt;br /&gt;    Kbuild will only build host-programs when they are referenced&lt;br /&gt;    as a prerequisite.&lt;br /&gt;    This is possible in two ways:&lt;br /&gt;&lt;br /&gt;    (1) List the prerequisite explicitly in a special rule.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #drivers/pci/Makefile&lt;br /&gt;        hostprogs-y := gen-devlist&lt;br /&gt;        $(obj)/devlist.h: $(src)/pci.ids $(obj)/gen-devlist&lt;br /&gt;            ( cd $(obj); ./gen-devlist ) &lt; $&lt;&lt;br /&gt;&lt;br /&gt;    The target $(obj)/devlist.h will not be built before&lt;br /&gt;    $(obj)/gen-devlist is updated. Note that references to&lt;br /&gt;    the host programs in special rules must be prefixed with $(obj).&lt;br /&gt;&lt;br /&gt;    (2) Use $(always)&lt;br /&gt;    When there is no suitable special rule, and the host program&lt;br /&gt;    shall be built when a makefile is entered, the $(always)&lt;br /&gt;    variable shall be used.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #scripts/lxdialog/Makefile&lt;br /&gt;        hostprogs-y   := lxdialog&lt;br /&gt;        always        := $(hostprogs-y)&lt;br /&gt;&lt;br /&gt;    This will tell kbuild to build lxdialog even if not referenced in&lt;br /&gt;    any rule.&lt;br /&gt;&lt;br /&gt;--- 4.7 Using hostprogs-$(CONFIG_FOO)&lt;br /&gt;&lt;br /&gt;    A typical pattern in a Kbuild file looks like this:&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #scripts/Makefile&lt;br /&gt;        hostprogs-$(CONFIG_KALLSYMS) += kallsyms&lt;br /&gt;&lt;br /&gt;    Kbuild knows about both 'y' for built-in and 'm' for module.&lt;br /&gt;    So if a config symbol evaluate to 'm', kbuild will still build&lt;br /&gt;    the binary. In other words, Kbuild handles hostprogs-m exactly&lt;br /&gt;    like hostprogs-y. But only hostprogs-y is recommended to be used&lt;br /&gt;    when no CONFIG symbols are involved.&lt;br /&gt;&lt;br /&gt;=== 5 Kbuild clean infrastructure&lt;br /&gt;&lt;br /&gt;"make clean" deletes most generated files in the obj tree where the kernel&lt;br /&gt;is compiled. This includes generated files such as host programs.&lt;br /&gt;Kbuild knows targets listed in $(hostprogs-y), $(hostprogs-m), $(always),&lt;br /&gt;$(extra-y) and $(targets). They are all deleted during "make clean".&lt;br /&gt;Files matching the patterns "*.[oas]", "*.ko", plus some additional files&lt;br /&gt;generated by kbuild are deleted all over the kernel src tree when&lt;br /&gt;"make clean" is executed.&lt;br /&gt;&lt;br /&gt;Additional files can be specified in kbuild makefiles by use of $(clean-files).&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #drivers/pci/Makefile&lt;br /&gt;        clean-files := devlist.h classlist.h&lt;br /&gt;&lt;br /&gt;When executing "make clean", the two files "devlist.h classlist.h" will&lt;br /&gt;be deleted. Kbuild will assume files to be in same relative directory as the&lt;br /&gt;Makefile except if an absolute path is specified (path starting with '/').&lt;br /&gt;&lt;br /&gt;To delete a directory hierarchy use:&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #scripts/package/Makefile&lt;br /&gt;        clean-dirs := $(objtree)/debian/&lt;br /&gt;&lt;br /&gt;This will delete the directory debian, including all subdirectories.&lt;br /&gt;Kbuild will assume the directories to be in the same relative path as the&lt;br /&gt;Makefile if no absolute path is specified (path does not start with '/').&lt;br /&gt;&lt;br /&gt;Usually kbuild descends down in subdirectories due to "obj-* := dir/",&lt;br /&gt;but in the architecture makefiles where the kbuild infrastructure&lt;br /&gt;is not sufficient this sometimes needs to be explicit.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/boot/Makefile&lt;br /&gt;        subdir- := compressed/&lt;br /&gt;&lt;br /&gt;The above assignment instructs kbuild to descend down in the&lt;br /&gt;directory compressed/ when "make clean" is executed.&lt;br /&gt;&lt;br /&gt;To support the clean infrastructure in the Makefiles that builds the&lt;br /&gt;final bootimage there is an optional target named archclean:&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/Makefile&lt;br /&gt;        archclean:&lt;br /&gt;            $(Q)$(MAKE) $(clean)=arch/i386/boot&lt;br /&gt;&lt;br /&gt;When "make clean" is executed, make will descend down in arch/i386/boot,&lt;br /&gt;and clean as usual. The Makefile located in arch/i386/boot/ may use&lt;br /&gt;the subdir- trick to descend further down.&lt;br /&gt;&lt;br /&gt;Note 1: arch/$(ARCH)/Makefile cannot use "subdir-", because that file is&lt;br /&gt;included in the top level makefile, and the kbuild infrastructure&lt;br /&gt;is not operational at that point.&lt;br /&gt;&lt;br /&gt;Note 2: All directories listed in core-y, libs-y, drivers-y and net-y will&lt;br /&gt;be visited during "make clean".&lt;br /&gt;&lt;br /&gt;=== 6 Architecture Makefiles&lt;br /&gt;&lt;br /&gt;The top level Makefile sets up the environment and does the preparation,&lt;br /&gt;before starting to descend down in the individual directories.&lt;br /&gt;The top level makefile contains the generic part, whereas&lt;br /&gt;arch/$(ARCH)/Makefile contains what is required to set up kbuild&lt;br /&gt;for said architecture.&lt;br /&gt;To do so, arch/$(ARCH)/Makefile sets up a number of variables and defines&lt;br /&gt;a few targets.&lt;br /&gt;&lt;br /&gt;When kbuild executes, the following steps are followed (roughly):&lt;br /&gt;1) Configuration of the kernel =&gt; produce .config&lt;br /&gt;2) Store kernel version in include/linux/version.h&lt;br /&gt;3) Symlink include/asm to include/asm-$(ARCH)&lt;br /&gt;4) Updating all other prerequisites to the target prepare:&lt;br /&gt;   - Additional prerequisites are specified in arch/$(ARCH)/Makefile&lt;br /&gt;5) Recursively descend down in all directories listed in&lt;br /&gt;   init-* core* drivers-* net-* libs-* and build all targets.&lt;br /&gt;   - The values of the above variables are expanded in arch/$(ARCH)/Makefile.&lt;br /&gt;6) All object files are then linked and the resulting file vmlinux is&lt;br /&gt;   located at the root of the obj tree.&lt;br /&gt;   The very first objects linked are listed in head-y, assigned by&lt;br /&gt;   arch/$(ARCH)/Makefile.&lt;br /&gt;7) Finally, the architecture specific part does any required post processing&lt;br /&gt;   and builds the final bootimage.&lt;br /&gt;   - This includes building boot records&lt;br /&gt;   - Preparing initrd images and thelike&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- 6.1 Set variables to tweak the build to the architecture&lt;br /&gt;&lt;br /&gt;    LDFLAGS        Generic $(LD) options&lt;br /&gt;&lt;br /&gt;    Flags used for all invocations of the linker.&lt;br /&gt;    Often specifying the emulation is sufficient.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/s390/Makefile&lt;br /&gt;        LDFLAGS         := -m elf_s390&lt;br /&gt;    Note: EXTRA_LDFLAGS and LDFLAGS_$@ can be used to further customise&lt;br /&gt;    the flags used. See chapter 7.&lt;br /&gt;&lt;br /&gt;    LDFLAGS_MODULE    Options for $(LD) when linking modules&lt;br /&gt;&lt;br /&gt;    LDFLAGS_MODULE is used to set specific flags for $(LD) when&lt;br /&gt;    linking the .ko files used for modules.&lt;br /&gt;    Default is "-r", for relocatable output.&lt;br /&gt;&lt;br /&gt;    LDFLAGS_vmlinux    Options for $(LD) when linking vmlinux&lt;br /&gt;&lt;br /&gt;    LDFLAGS_vmlinux is used to specify additional flags to pass to&lt;br /&gt;    the linker when linking the final vmlinux image.&lt;br /&gt;    LDFLAGS_vmlinux uses the LDFLAGS_$@ support.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/Makefile&lt;br /&gt;        LDFLAGS_vmlinux := -e stext&lt;br /&gt;&lt;br /&gt;    OBJCOPYFLAGS    objcopy flags&lt;br /&gt;&lt;br /&gt;    When $(call if_changed,objcopy) is used to translate a .o file,&lt;br /&gt;    the flags specified in OBJCOPYFLAGS will be used.&lt;br /&gt;    $(call if_changed,objcopy) is often used to generate raw binaries on&lt;br /&gt;    vmlinux.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/s390/Makefile&lt;br /&gt;        OBJCOPYFLAGS := -O binary&lt;br /&gt;&lt;br /&gt;        #arch/s390/boot/Makefile&lt;br /&gt;        $(obj)/image: vmlinux FORCE&lt;br /&gt;            $(call if_changed,objcopy)&lt;br /&gt;&lt;br /&gt;    In this example, the binary $(obj)/image is a binary version of&lt;br /&gt;    vmlinux. The usage of $(call if_changed,xxx) will be described later.&lt;br /&gt;&lt;br /&gt;    AFLAGS        $(AS) assembler flags&lt;br /&gt;&lt;br /&gt;    Default value - see top level Makefile&lt;br /&gt;    Append or modify as required per architecture.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/sparc64/Makefile&lt;br /&gt;        AFLAGS += -m64 -mcpu=ultrasparc&lt;br /&gt;&lt;br /&gt;    CFLAGS        $(CC) compiler flags&lt;br /&gt;&lt;br /&gt;    Default value - see top level Makefile&lt;br /&gt;    Append or modify as required per architecture.&lt;br /&gt;&lt;br /&gt;    Often, the CFLAGS variable depends on the configuration.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/Makefile&lt;br /&gt;        cflags-$(CONFIG_M386) += -march=i386&lt;br /&gt;        CFLAGS += $(cflags-y)&lt;br /&gt;&lt;br /&gt;    Many arch Makefiles dynamically run the target C compiler to&lt;br /&gt;    probe supported options:&lt;br /&gt;&lt;br /&gt;        #arch/i386/Makefile&lt;br /&gt;&lt;br /&gt;        ...&lt;br /&gt;        cflags-$(CONFIG_MPENTIUMII)     += $(call cc-option,\&lt;br /&gt;                        -march=pentium2,-march=i686)&lt;br /&gt;        ...&lt;br /&gt;        # Disable unit-at-a-time mode ...&lt;br /&gt;        CFLAGS += $(call cc-option,-fno-unit-at-a-time)&lt;br /&gt;        ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    The first example utilises the trick that a config option expands&lt;br /&gt;    to 'y' when selected.&lt;br /&gt;&lt;br /&gt;    CFLAGS_KERNEL    $(CC) options specific for built-in&lt;br /&gt;&lt;br /&gt;    $(CFLAGS_KERNEL) contains extra C compiler flags used to compile&lt;br /&gt;    resident kernel code.&lt;br /&gt;&lt;br /&gt;    CFLAGS_MODULE    $(CC) options specific for modules&lt;br /&gt;&lt;br /&gt;    $(CFLAGS_MODULE) contains extra C compiler flags used to compile code&lt;br /&gt;    for loadable kernel modules.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- 6.2 Add prerequisites to archprepare:&lt;br /&gt;&lt;br /&gt;    The archprepare: rule is used to list prerequisites that need to be&lt;br /&gt;    built before starting to descend down in the subdirectories.&lt;br /&gt;    This is usually used for header files containing assembler constants.&lt;br /&gt;&lt;br /&gt;        Example:&lt;br /&gt;        #arch/arm/Makefile&lt;br /&gt;        archprepare: maketools&lt;br /&gt;&lt;br /&gt;    In this example, the file target maketools will be processed&lt;br /&gt;    before descending down in the subdirectories.&lt;br /&gt;    See also chapter XXX-TODO that describe how kbuild supports&lt;br /&gt;    generating offset header files.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- 6.3 List directories to visit when descending&lt;br /&gt;&lt;br /&gt;    An arch Makefile cooperates with the top Makefile to define variables&lt;br /&gt;    which specify how to build the vmlinux file.  Note that there is no&lt;br /&gt;    corresponding arch-specific section for modules; the module-building&lt;br /&gt;    machinery is all architecture-independent.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    head-y, init-y, core-y, libs-y, drivers-y, net-y&lt;br /&gt;&lt;br /&gt;    $(head-y) lists objects to be linked first in vmlinux.&lt;br /&gt;    $(libs-y) lists directories where a lib.a archive can be located.&lt;br /&gt;    The rest lists directories where a built-in.o object file can be&lt;br /&gt;    located.&lt;br /&gt;&lt;br /&gt;    $(init-y) objects will be located after $(head-y).&lt;br /&gt;    Then the rest follows in this order:&lt;br /&gt;    $(core-y), $(libs-y), $(drivers-y) and $(net-y).&lt;br /&gt;&lt;br /&gt;    The top level Makefile defines values for all generic directories,&lt;br /&gt;    and arch/$(ARCH)/Makefile only adds architecture specific directories.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/sparc64/Makefile&lt;br /&gt;        core-y += arch/sparc64/kernel/&lt;br /&gt;        libs-y += arch/sparc64/prom/ arch/sparc64/lib/&lt;br /&gt;        drivers-$(CONFIG_OPROFILE)  += arch/sparc64/oprofile/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- 6.4 Architecture specific boot images&lt;br /&gt;&lt;br /&gt;    An arch Makefile specifies goals that take the vmlinux file, compress&lt;br /&gt;    it, wrap it in bootstrapping code, and copy the resulting files&lt;br /&gt;    somewhere. This includes various kinds of installation commands.&lt;br /&gt;    The actual goals are not standardized across architectures.&lt;br /&gt;&lt;br /&gt;    It is common to locate any additional processing in a boot/&lt;br /&gt;    directory below arch/$(ARCH)/.&lt;br /&gt;&lt;br /&gt;    Kbuild does not provide any smart way to support building a&lt;br /&gt;    target specified in boot/. Therefore arch/$(ARCH)/Makefile shall&lt;br /&gt;    call make manually to build a target in boot/.&lt;br /&gt;&lt;br /&gt;    The recommended approach is to include shortcuts in&lt;br /&gt;    arch/$(ARCH)/Makefile, and use the full path when calling down&lt;br /&gt;    into the arch/$(ARCH)/boot/Makefile.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/Makefile&lt;br /&gt;        boot := arch/i386/boot&lt;br /&gt;        bzImage: vmlinux&lt;br /&gt;            $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@&lt;br /&gt;&lt;br /&gt;    "$(Q)$(MAKE) $(build)=&lt;dir&gt;" is the recommended way to invoke&lt;br /&gt;    make in a subdirectory.&lt;br /&gt;&lt;br /&gt;    There are no rules for naming architecture specific targets,&lt;br /&gt;    but executing "make help" will list all relevant targets.&lt;br /&gt;    To support this, $(archhelp) must be defined.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/Makefile&lt;br /&gt;        define archhelp&lt;br /&gt;          echo  '* bzImage      - Image (arch/$(ARCH)/boot/bzImage)'&lt;br /&gt;        endif&lt;br /&gt;&lt;br /&gt;    When make is executed without arguments, the first goal encountered&lt;br /&gt;    will be built. In the top level Makefile the first goal present&lt;br /&gt;    is all:.&lt;br /&gt;    An architecture shall always, per default, build a bootable image.&lt;br /&gt;    In "make help", the default goal is highlighted with a '*'.&lt;br /&gt;    Add a new prerequisite to all: to select a default goal different&lt;br /&gt;    from vmlinux.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/Makefile&lt;br /&gt;        all: bzImage&lt;br /&gt;&lt;br /&gt;    When "make" is executed without arguments, bzImage will be built.&lt;br /&gt;&lt;br /&gt;--- 6.5 Building non-kbuild targets&lt;br /&gt;&lt;br /&gt;    extra-y&lt;br /&gt;&lt;br /&gt;    extra-y specify additional targets created in the current&lt;br /&gt;    directory, in addition to any targets specified by obj-*.&lt;br /&gt;&lt;br /&gt;    Listing all targets in extra-y is required for two purposes:&lt;br /&gt;    1) Enable kbuild to check changes in command lines&lt;br /&gt;       - When $(call if_changed,xxx) is used&lt;br /&gt;    2) kbuild knows what files to delete during "make clean"&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/kernel/Makefile&lt;br /&gt;        extra-y := head.o init_task.o&lt;br /&gt;&lt;br /&gt;    In this example, extra-y is used to list object files that&lt;br /&gt;    shall be built, but shall not be linked as part of built-in.o.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- 6.6 Commands useful for building a boot image&lt;br /&gt;&lt;br /&gt;    Kbuild provides a few macros that are useful when building a&lt;br /&gt;    boot image.&lt;br /&gt;&lt;br /&gt;    if_changed&lt;br /&gt;&lt;br /&gt;    if_changed is the infrastructure used for the following commands.&lt;br /&gt;&lt;br /&gt;    Usage:&lt;br /&gt;        target: source(s) FORCE&lt;br /&gt;            $(call if_changed,ld/objcopy/gzip)&lt;br /&gt;&lt;br /&gt;    When the rule is evaluated, it is checked to see if any files&lt;br /&gt;    needs an update, or the command line has changed since the last&lt;br /&gt;    invocation. The latter will force a rebuild if any options&lt;br /&gt;    to the executable have changed.&lt;br /&gt;    Any target that utilises if_changed must be listed in $(targets),&lt;br /&gt;    otherwise the command line check will fail, and the target will&lt;br /&gt;    always be built.&lt;br /&gt;    Assignments to $(targets) are without $(obj)/ prefix.&lt;br /&gt;    if_changed may be used in conjunction with custom commands as&lt;br /&gt;    defined in 6.7 "Custom kbuild commands".&lt;br /&gt;&lt;br /&gt;    Note: It is a typical mistake to forget the FORCE prerequisite.&lt;br /&gt;    Another common pitfall is that whitespace is sometimes&lt;br /&gt;    significant; for instance, the below will fail (note the extra space&lt;br /&gt;    after the comma):&lt;br /&gt;        target: source(s) FORCE&lt;br /&gt;    #WRONG!#    $(call if_changed, ld/objcopy/gzip)&lt;br /&gt;&lt;br /&gt;    ld&lt;br /&gt;    Link target. Often, LDFLAGS_$@ is used to set specific options to ld.&lt;br /&gt;&lt;br /&gt;    objcopy&lt;br /&gt;    Copy binary. Uses OBJCOPYFLAGS usually specified in&lt;br /&gt;    arch/$(ARCH)/Makefile.&lt;br /&gt;    OBJCOPYFLAGS_$@ may be used to set additional options.&lt;br /&gt;&lt;br /&gt;    gzip&lt;br /&gt;    Compress target. Use maximum compression to compress target.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/boot/Makefile&lt;br /&gt;        LDFLAGS_bootsect := -Ttext 0x0 -s --oformat binary&lt;br /&gt;        LDFLAGS_setup    := -Ttext 0x0 -s --oformat binary -e begtext&lt;br /&gt;&lt;br /&gt;        targets += setup setup.o bootsect bootsect.o&lt;br /&gt;        $(obj)/setup $(obj)/bootsect: %: %.o FORCE&lt;br /&gt;            $(call if_changed,ld)&lt;br /&gt;&lt;br /&gt;    In this example, there are two possible targets, requiring different&lt;br /&gt;    options to the linker. The linker options are specified using the&lt;br /&gt;    LDFLAGS_$@ syntax - one for each potential target.&lt;br /&gt;    $(targets) are assigned all potential targets, by which kbuild knows&lt;br /&gt;    the targets and will:&lt;br /&gt;        1) check for commandline changes&lt;br /&gt;        2) delete target during make clean&lt;br /&gt;&lt;br /&gt;    The ": %: %.o" part of the prerequisite is a shorthand that&lt;br /&gt;    free us from listing the setup.o and bootsect.o files.&lt;br /&gt;    Note: It is a common mistake to forget the "target :=" assignment,&lt;br /&gt;          resulting in the target file being recompiled for no&lt;br /&gt;          obvious reason.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- 6.7 Custom kbuild commands&lt;br /&gt;&lt;br /&gt;    When kbuild is executing with KBUILD_VERBOSE=0, then only a shorthand&lt;br /&gt;    of a command is normally displayed.&lt;br /&gt;    To enable this behaviour for custom commands kbuild requires&lt;br /&gt;    two variables to be set:&lt;br /&gt;    quiet_cmd_&lt;command&gt;    - what shall be echoed&lt;br /&gt;          cmd_&lt;command&gt;    - the command to execute&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #&lt;br /&gt;        quiet_cmd_image = BUILD   $@&lt;br /&gt;              cmd_image = $(obj)/tools/build $(BUILDFLAGS) \&lt;br /&gt;                                             $(obj)/vmlinux.bin &gt; $@&lt;br /&gt;&lt;br /&gt;        targets += bzImage&lt;br /&gt;        $(obj)/bzImage: $(obj)/vmlinux.bin $(obj)/tools/build FORCE&lt;br /&gt;            $(call if_changed,image)&lt;br /&gt;            @echo 'Kernel: $@ is ready'&lt;br /&gt;&lt;br /&gt;    When updating the $(obj)/bzImage target, the line&lt;br /&gt;&lt;br /&gt;    BUILD    arch/i386/boot/bzImage&lt;br /&gt;&lt;br /&gt;    will be displayed with "make KBUILD_VERBOSE=0".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- 6.8 Preprocessing linker scripts&lt;br /&gt;&lt;br /&gt;    When the vmlinux image is built, the linker script&lt;br /&gt;    arch/$(ARCH)/kernel/vmlinux.lds is used.&lt;br /&gt;    The script is a preprocessed variant of the file vmlinux.lds.S&lt;br /&gt;    located in the same directory.&lt;br /&gt;    kbuild knows .lds files and includes a rule *lds.S -&gt; *lds.&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;        #arch/i386/kernel/Makefile&lt;br /&gt;        always := vmlinux.lds&lt;br /&gt;&lt;br /&gt;        #Makefile&lt;br /&gt;        export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH)&lt;br /&gt;&lt;br /&gt;    The assignment to $(always) is used to tell kbuild to build the&lt;br /&gt;    target vmlinux.lds.&lt;br /&gt;    The assignment to $(CPPFLAGS_vmlinux.lds) tells kbuild to use the&lt;br /&gt;    specified options when building the target vmlinux.lds.&lt;br /&gt;&lt;br /&gt;    When building the *.lds target, kbuild uses the variables:&lt;br /&gt;    CPPFLAGS    : Set in top-level Makefile&lt;br /&gt;    EXTRA_CPPFLAGS    : May be set in the kbuild makefile&lt;br /&gt;    CPPFLAGS_$(@F)  : Target specific flags.&lt;br /&gt;                      Note that the full filename is used in this&lt;br /&gt;                      assignment.&lt;br /&gt;&lt;br /&gt;    The kbuild infrastructure for *lds file are used in several&lt;br /&gt;    architecture specific files.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;=== 7 Kbuild Variables&lt;br /&gt;&lt;br /&gt;The top Makefile exports the following variables:&lt;br /&gt;&lt;br /&gt;    VERSION, PATCHLEVEL, SUBLEVEL, EXTRAVERSION&lt;br /&gt;&lt;br /&gt;    These variables define the current kernel version.  A few arch&lt;br /&gt;    Makefiles actually use these values directly; they should use&lt;br /&gt;    $(KERNELRELEASE) instead.&lt;br /&gt;&lt;br /&gt;    $(VERSION), $(PATCHLEVEL), and $(SUBLEVEL) define the basic&lt;br /&gt;    three-part version number, such as "2", "4", and "0".  These three&lt;br /&gt;    values are always numeric.&lt;br /&gt;&lt;br /&gt;    $(EXTRAVERSION) defines an even tinier sublevel for pre-patches&lt;br /&gt;    or additional patches.    It is usually some non-numeric string&lt;br /&gt;    such as "-pre4", and is often blank.&lt;br /&gt;&lt;br /&gt;    KERNELRELEASE&lt;br /&gt;&lt;br /&gt;    $(KERNELRELEASE) is a single string such as "2.4.0-pre4", suitable&lt;br /&gt;    for constructing installation directory names or showing in&lt;br /&gt;    version strings.  Some arch Makefiles use it for this purpose.&lt;br /&gt;&lt;br /&gt;    ARCH&lt;br /&gt;&lt;br /&gt;    This variable defines the target architecture, such as "i386",&lt;br /&gt;    "arm", or "sparc". Some kbuild Makefiles test $(ARCH) to&lt;br /&gt;    determine which files to compile.&lt;br /&gt;&lt;br /&gt;    By default, the top Makefile sets $(ARCH) to be the same as the&lt;br /&gt;    host system architecture.  For a cross build, a user may&lt;br /&gt;    override the value of $(ARCH) on the command line:&lt;br /&gt;&lt;br /&gt;        make ARCH=m68k ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    INSTALL_PATH&lt;br /&gt;&lt;br /&gt;    This variable defines a place for the arch Makefiles to install&lt;br /&gt;    the resident kernel image and System.map file.&lt;br /&gt;    Use this for architecture specific install targets.&lt;br /&gt;&lt;br /&gt;    INSTALL_MOD_PATH, MODLIB&lt;br /&gt;&lt;br /&gt;    $(INSTALL_MOD_PATH) specifies a prefix to $(MODLIB) for module&lt;br /&gt;    installation.  This variable is not defined in the Makefile but&lt;br /&gt;    may be passed in by the user if desired.&lt;br /&gt;&lt;br /&gt;    $(MODLIB) specifies the directory for module installation.&lt;br /&gt;    The top Makefile defines $(MODLIB) to&lt;br /&gt;    $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE).  The user may&lt;br /&gt;    override this value on the command line if desired.&lt;br /&gt;&lt;br /&gt;    INSTALL_MOD_STRIP&lt;br /&gt;&lt;br /&gt;    If this variable is specified, will cause modules to be stripped&lt;br /&gt;    after they are installed.  If INSTALL_MOD_STRIP is '1', then the&lt;br /&gt;    default option --strip-debug will be used.  Otherwise,&lt;br /&gt;    INSTALL_MOD_STRIP will used as the option(s) to the strip command.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;=== 8 Makefile language&lt;br /&gt;&lt;br /&gt;The kernel Makefiles are designed to be run with GNU Make.  The Makefiles&lt;br /&gt;use only the documented features of GNU Make, but they do use many&lt;br /&gt;GNU extensions.&lt;br /&gt;&lt;br /&gt;GNU Make supports elementary list-processing functions.  The kernel&lt;br /&gt;Makefiles use a novel style of list building and manipulation with few&lt;br /&gt;"if" statements.&lt;br /&gt;&lt;br /&gt;GNU Make has two assignment operators, ":=" and "=".  ":=" performs&lt;br /&gt;immediate evaluation of the right-hand side and stores an actual string&lt;br /&gt;into the left-hand side.  "=" is like a formula definition; it stores the&lt;br /&gt;right-hand side in an unevaluated form and then evaluates this form each&lt;br /&gt;time the left-hand side is used.&lt;br /&gt;&lt;br /&gt;There are some cases where "=" is appropriate.  Usually, though, ":="&lt;br /&gt;is the right choice.&lt;br /&gt;&lt;br /&gt;=== 9 Credits&lt;br /&gt;&lt;br /&gt;Original version made by Michael Elizabeth Chastain, &lt;mailto:mec@shout.net&gt;&lt;br /&gt;Updates by Kai Germaschewski &lt;kai@tp1.ruhr-uni-bochum.de&gt;&lt;br /&gt;Updates by Sam Ravnborg &lt;sam@ravnborg.org&gt;&lt;br /&gt;Language QA by Jan Engelhardt &lt;jengelh@gmx.de&gt;&lt;br /&gt;&lt;br /&gt;=== 10 TODO&lt;br /&gt;&lt;br /&gt;- Describe how kbuild supports shipped files with _shipped.&lt;br /&gt;- Generating offset header files.&lt;br /&gt;- Add more variables to section 7?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ref: kernel Documentation/kbuild/makefiles.txt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-3322390548741120519?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/3322390548741120519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=3322390548741120519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/3322390548741120519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/3322390548741120519'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2009/03/kbuild.html' title='Kbuild'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-7365552616465664460</id><published>2009-02-09T12:54:00.001+05:30</published><updated>2009-02-09T12:56:42.262+05:30</updated><title type='text'>What is the difference between tty &amp; ttyS</title><content type='html'>/dev/tty ar the loginshells on your &lt;a id="KonaLink0" target="undefined" class="kLink" style="text-decoration: underline ! important; position: static;" href="http://www.linuxquestions.org/questions/#"&gt;&lt;span style="color: blue ! important; font-family: Verdana,Arial,Helvetica,sans-serif; font-weight: 400; font-size: 13.3333px; position: static;color:blue;" &gt;&lt;span class="kLink" style="color: blue ! important; font-family: Verdana,Arial,Helvetica,sans-serif; font-weight: 400; font-size: 13.3333px; position: static;"&gt;computer&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; (/dev/tty1-6 representing alt+F1-6)&lt;br /&gt;/dev/ttyS0-n on the other hand are the seriel ports on you computer (Typically known as com 1-4 on a windows machine)&lt;br /&gt;&lt;br /&gt;Ref:&lt;br /&gt;&lt;a href="http://www.linuxquestions.org/questions/linux-hardware-18/difference-between-tty-and-ttys-605986/"&gt;http://www.linuxquestions.org/questions/linux-hardware-18/difference-between-tty-and-ttys-605986/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-7365552616465664460?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.linuxquestions.org/questions/linux-hardware-18/difference-between-tty-and-ttys-605986/' title='What is the difference between tty &amp; ttyS'/><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/7365552616465664460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=7365552616465664460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/7365552616465664460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/7365552616465664460'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2009/02/what-is-difference-between-tty-ttys.html' title='What is the difference between tty &amp; ttyS'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-5716180313911107650</id><published>2008-11-26T13:49:00.002+05:30</published><updated>2008-11-26T13:52:34.619+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ifconfig'/><title type='text'>IP Networking Control Files</title><content type='html'>&lt;p&gt;Different linux distribution vendors put their networking configuration       files in different places in the filesystem.  Here is a brief summary       of the locations of the IP networking configuration information under       a few common linux distributions along with links to further       documentation.     &lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;p class="title"&gt;&lt;b&gt;Location of networking configuration files&lt;/b&gt;&lt;/p&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;p&gt;           RedHat (and Mandrake)         &lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="circle"&gt;&lt;li&gt;&lt;p&gt;               Interface definitions               &lt;a xmlns="http://www.w3.org/TR/xhtml1/transitional" class="nonlocal" href="http://www.redhat.com/support/resources/howto/sysconfig.html" target="_top"&gt;&lt;code xmlns="http://www.w3.org/1999/xhtml" class="filename"&gt;/etc/sysconfig/network-scripts/ifcfg-*&lt;/code&gt;&lt;/a&gt;             &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;               Hostname and default gateway definition               &lt;a xmlns="http://www.w3.org/TR/xhtml1/transitional" class="nonlocal" href="http://www.redhat.com/support/resources/howto/sysconfig.html" target="_top"&gt;&lt;code xmlns="http://www.w3.org/1999/xhtml" class="filename"&gt;/etc/sysconfig/network&lt;/code&gt;&lt;/a&gt;             &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;               Definition of static routes               &lt;a xmlns="http://www.w3.org/TR/xhtml1/transitional" class="nonlocal" href="http://www.redhat.com/support/resources/howto/sysconfig.html" target="_top"&gt;&lt;code xmlns="http://www.w3.org/1999/xhtml" class="filename"&gt;/etc/sysconfig/static-routes&lt;/code&gt;&lt;/a&gt;             &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;           SuSe (version &gt;= 8.0)         &lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="circle"&gt;&lt;li&gt;&lt;p&gt;               Interface definitions               &lt;a xmlns="http://www.w3.org/TR/xhtml1/transitional" class="nonlocal" href="http://sdb.suse.de/en/sdb/html/mmj_network80.html" target="_top"&gt;&lt;code xmlns="http://www.w3.org/1999/xhtml" class="filename"&gt;/etc/sysconfig/network/ifcfg-*&lt;/code&gt;&lt;/a&gt;             &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;               Static route definition               &lt;a xmlns="http://www.w3.org/TR/xhtml1/transitional" class="nonlocal" href="http://sdb.suse.de/en/sdb/html/mmj_network80.html" target="_top"&gt;&lt;code xmlns="http://www.w3.org/1999/xhtml" class="filename"&gt;/etc/sysconfig/network/routes&lt;/code&gt;&lt;/a&gt;             &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;                Interface specific static route definition               &lt;a xmlns="http://www.w3.org/TR/xhtml1/transitional" class="nonlocal" href="http://sdb.suse.de/en/sdb/html/mmj_network80.html" target="_top"&gt;&lt;code xmlns="http://www.w3.org/1999/xhtml" class="filename"&gt;/etc/sysconfig/network/ifroute-*&lt;/code&gt;&lt;/a&gt;             &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;           SuSe (version &lt;= 8.0)         &lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="circle"&gt;&lt;li&gt;&lt;p&gt;               Interface and route definitions               &lt;code class="filename"&gt;/etc/rc.config&lt;/code&gt;             &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;           Debian         &lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="circle"&gt;&lt;li&gt;&lt;p&gt;               Interface and route definitions               &lt;a xmlns="http://www.w3.org/TR/xhtml1/transitional" class="nonlocal" href="http://documents.made-it.com/Debian_Internet_Server/Debian_Internet_Server-5.html" target="_top"&gt;&lt;code xmlns="http://www.w3.org/1999/xhtml" class="filename"&gt;/etc/network/interfaces&lt;/code&gt;&lt;/a&gt;             &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;           Gentoo         &lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="circle"&gt;&lt;li&gt;&lt;p&gt;               Interface and route definitions               &lt;a xmlns="http://www.w3.org/TR/xhtml1/transitional" class="nonlocal" href="http://www.gentoo.org/doc/en/rc-scripts.xml" target="_top"&gt;&lt;code xmlns="http://www.w3.org/1999/xhtml" class="filename"&gt;/etc/conf.d/net&lt;/code&gt;&lt;/a&gt;             &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;           Slackware         &lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="circle"&gt;&lt;li&gt;&lt;p&gt;               Interface and route definitions               &lt;a xmlns="http://www.w3.org/TR/xhtml1/transitional" class="nonlocal" href="http://www.slackware.com/config/network.php" target="_top"&gt;&lt;code xmlns="http://www.w3.org/1999/xhtml" class="filename"&gt;/etc/rc.d/rc.inet1&lt;/code&gt;&lt;/a&gt;             &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;       The format of the networking configuration       files differs significantly from distribution to distribution, yet        the tools used by these scripts are the same.  This documentation will       focus on these tools and how they instruct the kernel       to alter interface and route information.       Consult the distribution's documentation for questions of file format       and order of operation.     &lt;/p&gt;&lt;a href="http://linux-ip.net/html/basic-control-files.html"&gt;Ref: http://linux-ip.net/html/basic-control-files.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-5716180313911107650?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/5716180313911107650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=5716180313911107650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/5716180313911107650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/5716180313911107650'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2008/11/ip-networking-control-files.html' title='IP Networking Control Files'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-2339148028759709044</id><published>2008-11-25T12:10:00.024+05:30</published><updated>2010-07-13T11:33:25.070+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='command Hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='subnet'/><category scheme='http://www.blogger.com/atom/ns#' term='ifconfig'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='sed'/><title type='text'>Command Hacks</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;man 4 console_codes&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;mount -t ntfs-3g /dev/sda6 /mnt/ -o force&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="color: red;"&gt;Set the file system to particular partition&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;$mkfs.ext2 /dev/hda8&lt;br /&gt;$mkfs.ext3 /dev/hda8&lt;br /&gt;$tune2fs -j /dev/hda8  ---&amp;gt; ext2 to ext3&lt;br /&gt;$blkid  ----&amp;gt; you can use it to check the filetype of block device&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red; font-size: 100%;"&gt;How to create a partition from command line&lt;/span&gt;&lt;br /&gt;$fdisk /dev/hda&lt;br /&gt;&amp;gt;command(m for help): n&lt;br /&gt;n for add new partition&lt;br /&gt;&amp;gt;commandaction&lt;br /&gt;&amp;gt;e extended&lt;br /&gt;&amp;gt;p primary partition (1-4)&lt;br /&gt;:p&lt;br /&gt;&amp;gt;partition number(1-4):3&lt;br /&gt;we are creating hda3&lt;br /&gt;&amp;gt;First Cylender(1341-2438, default 1341):&lt;br /&gt;to chose default just press Enter key&lt;br /&gt;&amp;gt;Last cylinder or +size or +sizeM or +sizeK(1341-2438, default 2438): +56B&lt;br /&gt;size is 56B&lt;br /&gt;&amp;gt;p&lt;br /&gt;&amp;gt; t&lt;br /&gt;change a partition`s system id&lt;br /&gt;&amp;gt;partition no(1-4):3&lt;br /&gt;&amp;gt;Hexcode(type L to list codes): L&lt;br /&gt;shows list&lt;br /&gt;&amp;gt;hexcode(type L to list codes): 83&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1 class="KBgroups_h1message" style="color: red; margin-bottom: -2px;"&gt;&lt;span style="font-size: 78%;"&gt;How to set IP address, Subnet mask , and gateway&lt;/span&gt;&lt;/h1&gt;&lt;br /&gt;The&lt;span style="font-size: 100%;"&gt; &lt;a class="kLink" href="http://unix.ittoolbox.com/groups/technical-functional/solaris-l/how-to-set-ip-address-subnet-mask-and-gateway-464377#" id="KonaLink0" style="position: static; text-decoration: underline ! important;" target="undefined"&gt;&lt;span style="color: #b00000; font-family: &amp;quot;arial&amp;quot;; font-weight: 400; position: static;"&gt;&lt;span class="kLink" style="color: #b00000; font-family: &amp;quot;arial&amp;quot;; font-weight: 400; position: static;"&gt;ip &lt;/span&gt;&lt;span class="kLink" style="color: #b00000; font-family: &amp;quot;arial&amp;quot;; font-weight: 400; position: static;"&gt;address&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;can be assigned using ifconfig command&lt;br /&gt;ifconfig "interface type" "ip address" "subnet mask" "broadcast address"&lt;br /&gt;Ex:&lt;br /&gt;&lt;span style="color: #000099;"&gt;ifconfig hme0 10.192.10.18 netmask 255.255.255.0 broadcast 10.192.10.255&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;ifconfig hme0 up&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and the default gateway can be assigned in the /etc/defaultrouter file:&lt;br /&gt;&lt;br /&gt;vi defaultrouter&lt;br /&gt;10.192.10.1&lt;br /&gt;:wq!&lt;br /&gt;&lt;br /&gt;2) reset bootprom " " (just confirm using boot ? at OK prompt and to&lt;br /&gt;come toOK prompt do init0)&lt;br /&gt;&lt;br /&gt;Ref: &lt;a href="http://unix.ittoolbox.com/groups/technical-functional/solaris-l/how-to-set-ip-address-subnet-mask-and-gateway-464377"&gt;http://unix.ittoolbox.com/groups/technical-functional/solaris-l/how-to-set-ip-address-subnet-mask-and-gateway-464377&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="color: red;"&gt;Passwordless ssh login &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 85%;"&gt;1) Suppose you are login on 192.168.1.109&lt;br /&gt;Type the following command to generate key&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000099; font-family: &amp;quot;arial&amp;quot;; font-size: 85%;"&gt;$ ssh-keygen -t dsa&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 85%;"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Generating public/private dsa key pair.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Enter file in which to save the key (/root/.ssh/id_dsa): /root/.ssh/id_dsa&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Enter passphrase (empty for no passphrase):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Enter same passphrase again:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Your identification has been saved in /root/.ssh/id_dsa.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Your public key has been saved in /root/.ssh/id_dsa.pub.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The key fingerprint is:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;9f:7c:6c:a4:98:a7:25:03:cd:3c:4d:57:0e:c8:db:47 root@localhost.localdomain&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2) Now copy this key to any computer.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000099; font-family: &amp;quot;arial&amp;quot;; font-size: 85%;"&gt;$ssh-copy-id  -i /root/.ssh/id_dsa root@192.168.1.31&lt;/span&gt;&lt;span style="font-family: &amp;quot;arial&amp;quot;; font-size: 85%;"&gt;&lt;br /&gt;root@192.168.1.31's password:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Now try logging into the machine, with "ssh 'root@192.168.1.31'", and check in:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;.ssh/authorized_keys&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to make sure we haven't added extra keys that you weren't expecting.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;Ref: &lt;a href="http://www.linuxjournal.com/video/ssh-logins-without-passwords"&gt;http://www.linuxjournal.com/video/ssh-logins-without-passwords&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="color: red;"&gt;Displays information about ELF files.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;$readelf --segments /bin/ls&lt;br /&gt;$readelf --segments /lib/libc.so.6&lt;br /&gt;$readelf -a /bin/ls&lt;br /&gt;&amp;nbsp;-------------------------------------------------------------------------------------------------- &lt;br /&gt;&lt;span style="color: red; font-size: 130%;"&gt;&lt;a href="http://tuxtraining.com/2009/11/09/an-overview-of-the-find-command"&gt;find command &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: 85%;"&gt;--------------------------------------------------------------------------------------------------- &lt;span style="font-size: 130%; font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="color: #cc0000;"&gt;Sed -----------&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.thegeekstuff.com/2009/09/unix-sed-tutorial-printing-file-lines-using-address-and-patterns/"&gt;Printing File Lines using Address and Patterns&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.thegeekstuff.com/2009/09/unix-sed-tutorial-delete-file-lines-using-address-and-patterns/"&gt;Delete File Lines Using Address and Patterns&lt;/a&gt;&lt;span id="formatbar_Buttons" style="display: block;"&gt;&lt;span class=" on" id="formatbar_CreateLink" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);" onmouseout="ButtonHoverOff(this);" onmouseover="ButtonHoverOn(this);" onmouseup="" style="display: block;" title="Link"&gt;&lt;img alt="Link" border="0" class="gl_link" src="http://www.blogger.com/img/blank.gif" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.thegeekstuff.com/2009/09/unix-sed-tutorial-replace-text-inside-a-file-using-substitute-command/"&gt;Find and Replace Text Inside a File Using RegEx&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.thegeekstuff.com/2009/10/unix-sed-tutorial-how-to-write-to-a-file-using-sed/"&gt;How To Write to a File Using Sed&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.thegeekstuff.com/2009/11/unix-sed-tutorial-append-insert-replace-and-count-file-lines/"&gt;Append, Insert, Replace, and Count File Lines&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.thegeekstuff.com/2009/10/unix-sed-tutorial-how-to-execute-multiple-sed-commands/"&gt;How To Execute Multiple Sed Commands&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.thegeekstuff.com/2009/11/unix-sed-tutorial-multi-line-file-operation-with-6-practical-examples/?utm_source=feedburner&amp;amp;utm_medium=email&amp;amp;utm_campaign=Feed%3A+TheGeekStuff+%28The+Geek+Stuff%29"&gt;Multi-Line File Operation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.thegeekstuff.com/2009/12/unix-sed-tutorial-7-examples-for-sed-hold-and-pattern-buffer-operations/?utm_source=feedburner&amp;amp;utm_medium=email&amp;amp;utm_campaign=Feed%3A+TheGeekStuff+%28The+Geek+Stuff%29"&gt;Examples for Sed Hold and Pattern Buffer Operations&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ref: www.thegeekstuff.com&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: 85%;"&gt;---------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: 85%;"&gt;Q. How to display a list of all manual pages containing the keyword "date", what command would you type?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: 85%;"&gt;Ans: &amp;nbsp;man -k date or apropos date&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-2339148028759709044?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/2339148028759709044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=2339148028759709044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/2339148028759709044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/2339148028759709044'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2008/11/commands.html' title='Command Hacks'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-5938704661538527552</id><published>2008-08-21T12:41:00.002+05:30</published><updated>2008-08-21T12:50:04.833+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='system call'/><category scheme='http://www.blogger.com/atom/ns#' term='linux system calls'/><title type='text'>Linux System Calls Details </title><content type='html'>&lt;font style="color: rgb(204, 51, 204);" size="4"&gt;Linux System Calls Details&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  	&lt;meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt; 	&lt;title&gt;&lt;/title&gt; 	&lt;meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)"&gt; 	&lt;meta name="CREATED" content="20080820;17020500"&gt; 	&lt;meta name="CHANGED" content="20080820;19542500"&gt; 	&lt;style type="text/css"&gt; 	&lt;!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		TD P { margin-bottom: 0in } 		P { margin-bottom: 0.08in } 	--&gt; 	&lt;/style&gt;  &lt;table width="100%" border="1" bordercolor="#000000" cellpadding="4" cellspacing="0"&gt; 	&lt;col width="16"&gt; 	&lt;col width="45"&gt; 	&lt;col width="121"&gt; 	&lt;col width="74"&gt; 	&lt;tbody&gt;&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p&gt;No&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;Function Name&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;Description&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;Source&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p&gt;1&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt; exit&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;terminate the current process&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt; kernel/exit.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p&gt;2  			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;fork&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;create a child process  			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;arch/i386/kernel/process.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p&gt;3&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;read&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;read from a file descriptor  			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;fs/read_write.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p&gt;4&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;write&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt; write to a file descriptor&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;fs/read_write.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p&gt;5&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt; open&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;open a file or device  			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;fs/open.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p&gt;6&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt; close&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;close  a file descriptor&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;fs/open.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p&gt;7&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;waitpid&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;wait for process termination&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;kernel/exit.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p&gt;8&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;creat&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt; &lt;span style=""&gt;create a file or device &lt;/span&gt; 			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;fs/open.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p&gt;9&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;link&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;make a new name for a file  			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;fs/namei.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p&gt;10&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;unlink&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;delete a name and possibly the file 			it refers to  			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;fs/namei.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;11  			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;execve&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;execute program&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;arch/i386/kernel/process.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;12&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;chdir&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;change working directory   			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;fs/open.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;13&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;time&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;get time in seconds   			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;kernel/time.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;14&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;mknod&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;create a special or ordinary file  			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;fs/namei.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;15&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;chmod&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;change permissions of a file   			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;fs/open.c&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;16&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;lchown&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;change 			ownership of a file&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/open.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;18&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;stat&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get 			file status&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/stat.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;19&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;lseek&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;reposition 			read/write file offset&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/read_write.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;20&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getpid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get 			process identification&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;21 &lt;/font&gt;&lt;/font&gt; 			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;mount&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;mount 			filesystems&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/super.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;22&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;umount&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;unmount 			filesystems&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/super.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;23&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setuid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set 			real user ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;24&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getuid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get 			real user ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;25&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;stime&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set 			&lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt; 			time and date&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/time.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;26&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;ptrace&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;span style=""&gt;allows 			a parent process to control the execution of &lt;/span&gt;a child 			process&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/ptrace.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;27&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;alarm&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set 			an alarm clock for delivery of a signal&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;28&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;fstat&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get 			file status&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/stat.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;29&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;pause&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;suspend 			process until signal&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/sys_i386.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;30&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;utime&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set 			file access and modification times&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/open.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;33&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;access&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;check 			user's permissions for a file&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/open.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;34&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;nice&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;change 			process priority&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;    	&lt;meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt; 	&lt;title&gt;&lt;/title&gt; 	&lt;meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)"&gt; 	&lt;meta name="CREATED" content="20080820;17020500"&gt; 	&lt;meta name="CHANGED" content="20080820;19542500"&gt; 	&lt;style type="text/css"&gt; 	&lt;!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		TD P { margin-bottom: 0in } 		P { margin-bottom: 0.08in } 	--&gt;&lt;/style&gt;   	&lt;meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt; 	&lt;title&gt;&lt;/title&gt; 	&lt;meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)"&gt; 	&lt;meta name="CREATED" content="20080820;17020500"&gt; 	&lt;meta name="CHANGED" content="20080820;19542500"&gt; 	&lt;style type="text/css"&gt; 	&lt;!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		TD P { margin-bottom: 0in } 		P { margin-bottom: 0.08in } 	--&gt; 	&lt;/style&gt;  &lt;table width="100%" border="1" bordercolor="#000000" cellpadding="4" cellspacing="0"&gt; 	&lt;col width="16"&gt; 	&lt;col width="45"&gt; 	&lt;col width="121"&gt; 	&lt;col width="74"&gt; 	&lt;tbody&gt;&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;36&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sync&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;update the super block&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/buffer.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;37&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;kill&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;send signal to a process&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;38&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;rename&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;change the name or location of 			a file&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/namei.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;39&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;mkdir&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;create a directory&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/namei.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;40&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;rmdir&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;remove a directory&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/namei.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;41&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;dup&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;duplicate an open file 			descriptor&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/fcntl.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;42&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;pipe&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;create an interprocess channel&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/sys_i386.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;43&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;times&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get process times&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;45&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;brk&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;change 			the amount of space allocated for the&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;calling process's data segment&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;mm/mmap.c`&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;46&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setgid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set real group ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;47&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getgid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get real group ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;48&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sys_signal&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;ANSI C signal handling&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;49&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;geteuid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get effective user ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;50&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getegid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get effective group ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;51&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;acct&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;enable or disable process 			accounting&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/acct.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;52&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;umount2&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;unmount a file &lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/super.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;54&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;ioctl&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;control device&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/ioctl.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;55&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;fcntl&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;file control&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/fcntl.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;56&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;mpx&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;(unimplemented)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;57&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setpgid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set process group ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;58&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;ulimit&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;(unimplemented)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;59&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;olduname&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;obsolete uname&lt;font color="#000000"&gt; 			&lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;system&lt;/span&gt;&lt;/span&gt; 			&lt;/font&gt;call&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/sys_i386.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;60&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;umask&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set file creation mask&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;61&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;chroot&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;change root directory&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/open.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;62&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;ustat&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get file &lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt; 			s&lt;/span&gt;tatistics&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/super.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;63&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;dup2&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;duplicate a file descriptor&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/fcntl.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;64&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getppid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get parent process ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;65&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getpgrp&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get the process group ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;66&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setsid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;creates a session and sets the 			process group ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;67&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sigaction&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;POSIX signal handling functions&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="6%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;68&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sgetmask&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;ANSI C signal handling&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="29%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;    	&lt;meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt; 	&lt;title&gt;&lt;/title&gt; 	&lt;meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)"&gt; 	&lt;meta name="CREATED" content="20080820;17020500"&gt; 	&lt;meta name="CHANGED" content="20080820;19542500"&gt; 	&lt;style type="text/css"&gt; 	&lt;!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		TD P { margin-bottom: 0in } 		P { margin-bottom: 0.08in } 	--&gt; 	&lt;/style&gt;  &lt;table width="100%" border="1" bordercolor="#000000" cellpadding="4" cellspacing="0"&gt; 	&lt;col width="10"&gt; 	&lt;col width="39"&gt; 	&lt;col width="120"&gt; 	&lt;col width="87"&gt; 	&lt;tbody&gt;&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;69&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;ssetmask&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;ANSI C signal handling&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;70&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setreuid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set real and effective user IDs&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;71&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setregid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set real and effective group 			IDs&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;72&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sigsuspend&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;install a signal mask and 			suspend caller until signal&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;73&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sigpending&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;examine signals that are 			blocked and pending&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;74&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sethostname&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set hostname&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;75&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setrlimit&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set maximum &lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 			resource con sumption&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;76&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getrlimit&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get maximum &lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 			resource con sumption&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;77&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getrusage&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get maximum&lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;b&gt; 			&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; resource con 			sumption&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;78&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;gettimeofday&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get the date and time&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/time.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;79&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;settimeofday&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set the date and time&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/time.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;80&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getgroups&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get list of supplementary group 			IDs&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;81&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setgroups&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set list of supplementary group 			IDs&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;82&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;old_select&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sync. I/O multiplexing&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/sys_i386.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;83&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;symlink&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;make a symbolic link to a file&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/namei.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;84&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;lstat&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get file status&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/stat.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;85&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;readlink&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;read the contents of a symbolic 			link&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/stat.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;86&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;uselib&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;select shared library&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/exec.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;87&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;swapon&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;start swapping to file/device&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;mm/swapfile.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;88&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;reboot&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;reboot or enable/disable 			Ctrl-Alt-Del&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td height="17" width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;89&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;old_readdir&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;read directory entry&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/readdir.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;90&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;old_mmap&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;map pages of memory&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/sys_i386.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;91&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;munmap&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;unmap pages of memory&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;mm/mmap.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;92&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;truncate&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set a file to a specified 			length&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/open.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;93&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;ftruncate&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set a file to a specified 			length&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/open.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;94&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;fchmod&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;change access permission mode 			of file&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/open.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;95&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;fchown&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;change owner and group of a 			file&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/open.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;96&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getpriority&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get program scheduling priority&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="4%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;97&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setpriority&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="47%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set program scheduling priority&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;    	&lt;meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt; 	&lt;title&gt;&lt;/title&gt; 	&lt;meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)"&gt; 	&lt;meta name="CREATED" content="20080820;17020500"&gt; 	&lt;meta name="CHANGED" content="20080820;19542500"&gt; 	&lt;style type="text/css"&gt; 	&lt;!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		TD P { margin-bottom: 0in } 		P { margin-bottom: 0.08in } 	--&gt; 	&lt;/style&gt;  &lt;table width="100%" border="1" bordercolor="#000000" cellpadding="4" cellspacing="0"&gt; 	&lt;col width="13"&gt; 	&lt;col width="37"&gt; 	&lt;col width="118"&gt; 	&lt;col width="87"&gt; 	&lt;tbody&gt;&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;98&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;profil&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;execution time profile&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;99&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;statfs&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Times"&gt;get file &lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 			statistics&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/open.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;100&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;fstatfs&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Times"&gt;get file &lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 			statistics&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/open.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;101&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;ioperm&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set port input/output 			permissions&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/ioport.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;102&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;socketcall&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Times"&gt;socket &lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt;&lt;b&gt; 			&lt;/b&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;calls&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;net/socket.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;103&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;syslog&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;read and/or clear kernel 			message ring buffer&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/printk.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;104&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setitimer&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set value of interval timer&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/itimer.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;105&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getitimer&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get value of interval timer&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/itimer.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;106&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sys_newstat&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get file status&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/stat.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;107&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt; &lt;font face="Times"&gt;&lt;font size="3"&gt;sys_newlstat&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get file status&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/stat.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;108&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sys_newfstat&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get file status&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/stat.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;109&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;olduname&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get name and information about 			current kernel&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/sys_i386.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;110&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;iopl&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;change I/O privilege level&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/ioport.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;111&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;vhangup&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;virtually hangup the current 			tty&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/open.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;112&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;idle&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;make process 0 idle&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/process.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;113&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;vm86old&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;enter virtual 8086 mode&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/vm86.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;114&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;wait4&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;wait for process termination, 			BSD style&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/exit.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;115&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;swapoff&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;stop swapping to file/device&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;mm/swapfile.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;116&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sysinfo&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;returns information on overall 			&lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 			statistics&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/info.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;117&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;ipc&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;System&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 			V IPC &lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 			&lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;calls&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/sys_i386.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;118&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;fsync&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;synchronize a file's complete 			in-core state with that  on disk&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/buffer.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;119&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sigreturn&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;return 			from signal handler and cleanup stack&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;frame&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;120&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;clone&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;create a child process&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/process.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;121&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setdomain-name&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set domain name&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;122&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;uname&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get name and information about 			current kernel&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;123&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;modify_ldt&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get or set ldt&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/ldt.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;124&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;adjtimex&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;tune kernel clock&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/time.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;125&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="14%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;mprotect&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set protection of memory 			mapping&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;mm/mprotect.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;    	&lt;meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt; 	&lt;title&gt;&lt;/title&gt; 	&lt;meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)"&gt; 	&lt;meta name="CREATED" content="20080820;17020500"&gt; 	&lt;meta name="CHANGED" content="20080820;19542500"&gt; 	&lt;style type="text/css"&gt; 	&lt;!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		TD P { margin-bottom: 0in } 		P { margin-bottom: 0.08in } 	--&gt; 	&lt;/style&gt;  &lt;table width="100%" border="1" bordercolor="#000000" cellpadding="4" cellspacing="0"&gt; 	&lt;col width="13"&gt; 	&lt;col width="45"&gt; 	&lt;col width="111"&gt; 	&lt;col width="87"&gt; 	&lt;tbody&gt;&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;126&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sigprocmask&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;POSIX signal handling functions&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;127&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;create_module&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;create a loadable module entry&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/module.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;128&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;init_module&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;initialize a loadable module 			entry&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/module.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;129&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;delete_module&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;delete a loadable module entry&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/module.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;130&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get_kernel_syms&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;retrieve exported kernel and 			module symbols&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/module.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;31&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;quotactl&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;manipulate disk quotas&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/dquot.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;132&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getpgid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get process group ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;133&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;fchdir&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;change working directory&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/open.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;134&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;bdflush&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;start, flush, or tune 			buffer-dirty-flush daemon&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/buffer.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;135&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sysfs&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get file &lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 			type information&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/super.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;136&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;personality&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set the process execution 			domain&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/exec_domain.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;137&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;afs_syscall&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;(unimplemented)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;138&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setfsuid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p align="left"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set user identity 			used for file &lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 			checks&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;139&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setfsgid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set group identity used for 			file &lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 			checks&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;140&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sys_llseek&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;move extended read/write file 			pointer&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/read_write.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;141&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getdents&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;read directory entries&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/readdir.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;142&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;select&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sync. I/O multiplexing&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/select.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;143&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;flock&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;apply or remove an advisory 			lock on an open file&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/locks.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;144&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;msync&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;synchronize a file with a 			memory map&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;mm/filemap.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;145&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;readv&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;read data into multiple buffers&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/read_write.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;146&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;writev&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;write data into multiple 			buffers&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/read_write.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;147&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sys_getsid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get process group ID of session 			leader&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;148&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;fdatasync&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;synchronize a file's in-core 			data with that on disk&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/buffer.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;149&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sysctl&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;read/write &lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;&lt;font color="#000000"&gt;system&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; 			parameters&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sysctl.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;150&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;mlock&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;lock pages in memory&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;mm/mlock.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font color="#000000"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;151&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;munlock&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;unlock pages in memory&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;mm/mlock.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;    	&lt;meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt; 	&lt;title&gt;&lt;/title&gt; 	&lt;meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)"&gt; 	&lt;meta name="CREATED" content="20080820;17020500"&gt; 	&lt;meta name="CHANGED" content="20080820;19542500"&gt; 	&lt;style type="text/css"&gt; 	&lt;!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		TD P { margin-bottom: 0in } 		P { margin-bottom: 0.08in } 	--&gt; 	&lt;/style&gt;  &lt;table width="100%" border="1" bordercolor="#000000" cellpadding="4" cellspacing="0"&gt; 	&lt;col width="13"&gt; 	&lt;col width="39"&gt; 	&lt;col width="117"&gt; 	&lt;col width="87"&gt; 	&lt;tbody&gt;&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;152&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;mlockall&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;disable paging for calling 			process&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;mm/mlock.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;153&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;munlockall&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;reenable paging for calling 			process&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;mm/mlock.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;154&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sched_set-param&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set 			scheduling parameters&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;155&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sched_get-param&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get 			scheduling parameters&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;156&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sched_set-scheduler&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set scheduling algorithm 			parameters&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;157&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sched_get-scheduler&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get scheduling algorithm 			parameters&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;158&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sched_yield&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;yield the processor&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;159&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sched_get_p-riority_max&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get 			max static priority range&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;160&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sched_get_p-riority_min&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get 			min static priority range&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;161&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sched_rr_get_inter-val&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get 			the SCHED_RR interval for the named process&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;162&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;nanosleep&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;pause execution for a specified 			time (nano seconds) &lt;/font&gt;&lt;/font&gt; 			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sched.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;163&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;mremap&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;re-map a virtual memory address&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;mm/mremap.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;164&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setresuid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set real, effective and saved 			user or group ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;165&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getresuid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get real, effective and saved 			user or group ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;166&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;vm86&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;enter virtual 8086 mode&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/vm86.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;167&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;query_module&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;query 			the kernel for various bits pertain ing to &lt;/font&gt;&lt;/font&gt; 			&lt;/p&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;modules&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p style="margin-bottom: 0in;"&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/module.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;168&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;poll&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;wait for some event on a file 			descriptor&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/select.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;169&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;nfsservctl&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;syscall interface to kernel nfs 			daemon&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/filesystems.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;170&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;setresgid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set real, effective and saved 			user or group ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;171&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getresgid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get real, effective and saved 			user or group ID&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;172&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;prctl&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;operations on a process&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/sys.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;173&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;rt_sigreturn&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;174&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="15%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;rt_sigaction&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="46%"&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;    	&lt;meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt; 	&lt;title&gt;&lt;/title&gt; 	&lt;meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)"&gt; 	&lt;meta name="CREATED" content="20080820;17020500"&gt; 	&lt;meta name="CHANGED" content="20080820;19542500"&gt; 	&lt;style type="text/css"&gt; 	&lt;!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		TD P { margin-bottom: 0in } 		P { margin-bottom: 0.08in } 	--&gt; 	&lt;/style&gt;  &lt;table width="100%" border="1" bordercolor="#000000" cellpadding="4" cellspacing="0"&gt; 	&lt;col width="13"&gt; 	&lt;col width="46"&gt; 	&lt;col width="109"&gt; 	&lt;col width="87"&gt; 	&lt;tbody&gt;&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;175&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;rt_sigprocmask&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;176&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;rt_sigpending&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;177&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;rt_sigtimedwait&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;178&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;rt_sigqueueinfo&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;179&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;rt_sigsuspend&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;180&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;pread&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;read from a file descriptor at 			a given offset&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/read_write.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;181&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sys_pwrite&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;write to a file descriptor at a 			given offset&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/read_write.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;182&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;chown&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;change ownership of a file&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/open.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;183&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getcwd&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;Get current working directory&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;fs/dcache.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;184&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;capget&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;get process capabilities&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/capability.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;185&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;capset&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set process capabilities&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;kernel/capability.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;186&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sigaltstack&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;set/get signal stack context&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/signal.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;187&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;sendfile&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;transfer data between file 			descriptors&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;mm/filemap.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;188&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;getpmsg&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;(unimplemented)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;189&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;putpmsg&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;(unimplemented)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;br /&gt;			&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr valign="top"&gt; 		&lt;td width="5%"&gt; 			&lt;p style=""&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;190&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="18%"&gt; 			&lt;p style=""&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;vfork&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="43%"&gt; 			&lt;p&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;create a child process and 			block parent&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 		&lt;td width="34%"&gt; 			&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font face="Times"&gt;&lt;font size="3"&gt;&lt;i&gt;arch/i386/kernel/process.c&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 		&lt;/td&gt; 	&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-5938704661538527552?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/5938704661538527552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=5938704661538527552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/5938704661538527552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/5938704661538527552'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2008/08/linux-system-calls-details.html' title='Linux System Calls Details '/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-6849403253559946325</id><published>2008-08-13T18:43:00.003+05:30</published><updated>2008-08-13T19:10:30.784+05:30</updated><title type='text'>Control Keys</title><content type='html'>Control keys-those that you type by holding down the CONTROL (or CTRL) key and hitting another key-are another&lt;br /&gt;type of special character. These normally don't print anything on your screen, but the operating system interprets a few&lt;br /&gt;of them as special commands. You already know one of them: RETURN is actually the same as [CTRL-M] (try it and&lt;br /&gt;see). You have probably also used the BACKSPACE or DEL key to erase typos on your command line.&lt;br /&gt;Perhaps the most difficult thing about control keys is that they can differ from system to system. The usual arrangement&lt;br /&gt;is shown in Table which lists the control keys that all major modern versions of UNIX support. Note that [CTRL-\] and [CTRL-|] (control-backslash and control-pipe) are the same character notated two different ways; the same is true of DEL and [CTRL-?].&lt;br /&gt;You can use the &lt;span style="font-weight: bold;font-size:130%;" &gt;stty&lt;/span&gt; command to find out what your settings are and change them if you wish;&lt;br /&gt;If the version of UNIX on your system is one of those that derive from BSD (such as SunOS and Ultrix), type &lt;span style="font-weight: bold;font-size:130%;" &gt;stty --all&lt;/span&gt;  or&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt; stty -a&lt;/span&gt;&lt;/span&gt; to see your control-key settings; you will see something like this:&lt;br /&gt;       erase kill           werase rprnt flush lnext susp                     intr      quit      stop       eof&lt;br /&gt;       ^?         ^U        ^W        ^R        ^O          ^V       ^Z/^Y ^C           ^|        ^S/^Q ^D&lt;br /&gt;&lt;br /&gt;Control Key                        stty                 Name Function Description&lt;br /&gt;CTRL-C                               intr                   Stop current command&lt;br /&gt;CTRL-D                               eof                    End of input&lt;br /&gt;[CTRL-\] or [CTRL-|]      quit                  Stop current command, if [CTRL-C] doesn't work&lt;br /&gt;CTRL-S                               stop                  Halt output to screen&lt;br /&gt;CTRL-Q                                                        Restart output to screen&lt;br /&gt;DEL or [CTRL-?]               erase                Erase last character&lt;br /&gt;CTRL-U                               kill                    Erase entire command line&lt;br /&gt;CTRL-Z                               susp                  Suspend current command&lt;br /&gt;&lt;br /&gt;  The ^X notation stands for CTRL-X. If your UNIX version derives from System III or System V (this includes AIX,&lt;br /&gt;HP/UX, SCO, and Xenix), type stty -a; the resulting output will include this information:&lt;br /&gt;       intr = ^c; quit = ^|; erase = DEL; kill = ^u; eof = ^d; eol = ^`; swtch = ^`&lt;br /&gt;       susp = ^z; dsusp &lt;undef&gt;;&lt;br /&gt;&lt;br /&gt;The control key you will probably use most often is [CTRL-C], sometimes called the interrupt key. This stops-or tries to stop-the command that is currently running. You will want to use this when you enter a command and find that it's taking too long, you gave it the wrong arguments by mistake, you change your mind about wanting to run it, or whatever.&lt;br /&gt;&lt;br /&gt;Sometimes [CTRL-C] doesn't work; in that case, if you really want to stop a job, try [CTRL-\]. But don't just type CTRL-\; always try [CTRL-C] first! Chapter 8 explains why in detail. For now, suffice it to say that [CTRL-C] gives the running job more of a chance to clean up before exiting, so that files and other resources are not left in funny states.&lt;br /&gt;&lt;br /&gt;We've already seen an example of [CTRL-D]. When you are running a command that accepts standard input from your keyboard, [CTRL-D] tells the process that your input is finished-as if the process were reading a file and it reached the end of the file. mail is a utility in which this happens often. When you are typing in a message, you end by typing [CTRL-D]. This tells mail that your message is complete and ready to be sent. Most utilities that accept standard input&lt;br /&gt;understand [CTRL-D] as the end-of-input character, though many such programs accept commands like q, quit, exit, etc. The shell itself understands [CTRL-D] as the end-of-input character: as we saw earlier in this chapter, you can normally end a login session by typing [CTRL-D] at the shell prompt. You are just telling the shell that its command input is finished.&lt;br /&gt;&lt;br /&gt;CTRL-S and [CTRL-Q] are called flow-control characters. They represent an antiquated way of stopping and restarting the flow of output from one device to another (e.g., from the computer to your terminal) that was useful when the speed of such output was low. They are rather obsolete in these days of high-speed local networks and dialup lines. In fact, under the latter conditions, CTRL-S and [CTRL-Q] are basically a nuisance. The only thing you really need to know&lt;br /&gt;about them is that if your screen output becomes "stuck," then you may have hit [CTRL-S] by accident. Type [CTRL-Q] to restart the output; any keys you may have hit in between will then take effect.&lt;br /&gt;&lt;br /&gt;The final group of control characters gives you rudimentary ways to edit your command line. DEL acts as a backspace key (in fact, some systems use the actual BACKSPACE or [CTRL-H] key as "erase" instead of DEL); [CTRL-U] erases the entire line and lets you start over. Again, these are outmoded. [13] Instead of using these, go to the next chapter and read about Korn shell's editing modes, which are among its most exciting features.&lt;br /&gt;       [13] Why are so many outmoded control keys still in use? They have nothing to do with the shell per se; instead, they are recognized by the tty driver, an old and hoary part of the operating system's lower depths that controls input and output to/from your terminal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-6849403253559946325?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/6849403253559946325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=6849403253559946325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6849403253559946325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6849403253559946325'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2008/08/control-keys.html' title='Control Keys'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-6389399401249799974</id><published>2008-08-13T11:21:00.002+05:30</published><updated>2009-02-03T11:10:28.112+05:30</updated><title type='text'>env command</title><content type='html'>&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Environment Variable&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt; &lt;tt&gt;BASH&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Path of the BASH executable file&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;BASH_ENV&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Path of the BASH environment file, which specifies BASH options&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;BASH_VERSION&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Version of BASH&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;COLUMNS&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Width, in characters, of console window&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;EUID&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Effective user ID&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;HISTFILE&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Path of the BASH command history file&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;HISTFILESIZE&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Maximum number of lines recorded in history file&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;HISTSIZE&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Maximum number of commands recorded in history file&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;HOME&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Path of user’s home directory&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;HOSTNAME&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Name of the host&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;IFS&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Field separator (white space) characters&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;LINES&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Length, in lines, of console window&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;LOGNAME&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; User’s log in name&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;LS_COLORS&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Options for  &lt;tt&gt;ls&lt;/tt&gt; command&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;OSTYPE&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Operating system name (”Linux”)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;PATH&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Program path&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;PPID&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Process ID of the shell’s parent process&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;PS1&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Command prompt string&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;PS2&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Continuation prompt string&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;PS4&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Execution trace string&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;PWD&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Current working directory&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;SHELL&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Path of the shell executable&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;SHLVL&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Number of nested shell invocations&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;TERM&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; Terminal type&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;UID&lt;/tt&gt;&lt;/td&gt;&lt;td&gt;User ID&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(102, 0, 204);"&gt;&lt;tt&gt;USER&lt;/tt&gt;&lt;/td&gt;&lt;td&gt; User name&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Ref:&lt;a href="http://www.linux-mag.com/id/803"&gt;http://www.linux-mag.com/id/803&lt;/a&gt;&lt;br /&gt;&lt;a href="http://linux.about.com/od/ttl_howto/a/hwtttl16t06.htm"&gt;http://linux.about.com/od/ttl_howto/a/hwtttl16t06.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-6389399401249799974?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/6389399401249799974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=6389399401249799974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6389399401249799974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6389399401249799974'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2008/08/env-command.html' title='env command'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-3209172372577859382</id><published>2008-05-20T16:42:00.014+05:30</published><updated>2008-05-20T17:26:56.268+05:30</updated><title type='text'>Linux History</title><content type='html'>Take some serious time to read through and understand the history lecture, it has been             structured to give you a fuller understanding of the roots of the Unix and Linux             operating systems.&lt;p&gt;Unix has managed to influence every operating system available today.&lt;/p&gt;&lt;p&gt;It seems that most of the people who want to work in, or who actually work in Linux do             not know the history of the operating system and as you will see, it will give you&lt;/p&gt;&lt;p&gt; a             greater understanding of the software.&lt;/p&gt;&lt;p&gt;In short, Linux is an operating system based on UNIX (Developed by             AT&amp;amp;T's Bell Labs division), which is based on MULTICS.&lt;/p&gt;&lt;p&gt;The following timeline will explain the main events that have affected the UNIX family             of operating systems, of which Linux is one.&lt;/p&gt; &lt;p&gt;We pick up our history in the 1950s, when the first important event that affected UNIX             took place.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Figure 1.1. PDP 7 with teletypewriter&lt;/b&gt;&lt;/p&gt;&lt;h2 class="title" style="clear: both;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XJq8zETWRso/SDKyyMLwpII/AAAAAAAAADk/hOHDKdIQIao/s1600-h/pdp7.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XJq8zETWRso/SDKyyMLwpII/AAAAAAAAADk/hOHDKdIQIao/s320/pdp7.jpg" alt="" id="BLOGGER_PHOTO_ID_5202417094900098178" border="0" /&gt;&lt;/a&gt;&lt;/h2&gt; Note&lt;p&gt;TTYs and Line-oriented Text Display which was the general input and output devices                 of the PDP 7&lt;/p&gt;&lt;p&gt;The term "tty" stands for "teletypewriter", which             was an early form of terminal.&lt;/p&gt;&lt;p&gt;Teletypewriters, such as the one shown in the picture of the PDP-7 REF, were merely             automatic typewriters producing hard-copy line-based output on continuous paper.&lt;/p&gt;&lt;p&gt;In these early days of computing, this kind of terminal output did not allow screen or             cursor-based programs to function.&lt;/p&gt;&lt;p&gt;Hence the first text editors were "line-oriented", such as             "ed" and later "ex". "Vi" was             developed later, based on "ex", and was screen-oriented. It used the             redrawable ability of cathode ray tube (CRT) displays to show text one screen at a time.&lt;/p&gt;&lt;h3 class="title"&gt;1955&lt;/h3&gt;&lt;p&gt;The US government passed a decree imposing a restraint of trade against                 AT&amp;amp;T. The company was not permitted to make money from                 non-telecommunications business.&lt;/p&gt;&lt;p&gt;This is significant, because until 1982 (when the US Government finally broke up                 the AT&amp;amp;T telecommunications monopoly into smaller companies), AT&amp;amp;T                 could not sell operating systems, i.e. UNIX, for profit.&lt;/p&gt;&lt;p&gt;This had a great impact on the distribution of Unix as you will see throughout the                 rest of the History section, as AT&amp;amp;T chose to use the product internally                 first, and then distributed it to computer research institutions such as                 Universities.&lt;/p&gt;&lt;h3 class="title"&gt;1966&lt;/h3&gt;&lt;p&gt;The Multiplexed Time Sharing and Computing System or MULTICS project was a joint                 attempt by General Electric (GE), AT&amp;amp;T Bell Labs and the Massachusetts                 Institute of Technology (MIT) at developing a stable multiuser operating system&lt;/p&gt;&lt;p&gt;The aim is to create an operating system that could support a lot of simultaneous                 users (thousands!).&lt;/p&gt;&lt;p&gt;Multics stands for Multiplexed Information and Computer service. &lt;/p&gt;&lt;p&gt;The people involved in the project at this time are Ken Thompson, Dennis Ritchie,                 Joseph Ossanna, Stuart Feldman, Doug McIIroy and Bob Morris. &lt;/p&gt;&lt;p&gt;Although a very simple version of MULTICS could now run on a GE645 computer, it                 could only support 3 people and therefore the original goals of this operating                 system had not been met, the research and development is just so expensive and Bell                 Labs withdraws their sponsorship. This meant that the other interested parties could                 not afford to carry the project on their own and so they also withdrew. &lt;/p&gt;&lt;p&gt;Dennis Ritchie and Ken Thompson now decide to continue this project on their             own.&lt;/p&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;&lt;a name="d0e222"&gt;&lt;/a&gt;1969 to 1970&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Ken Thompson Dennis Ritchie wrote a Space Travel Game that was actually a serious                 scientific astronomical simulation program. However the game was a disaster as the                 spaceship was hard to maneuver and used a lot of resources to run.&lt;/p&gt;&lt;p&gt;After developing the Space Travel Program they had learnt a lot more. With Canaday                 involved as well they were able to create the design for a new file system, which                 they built on PDP-7, called UNICS (Uniplexed Information and Computing Service), and                 this later became UNIX.&lt;/p&gt;&lt;p&gt;A note to UNIX traditionalists: We use the spelling "Unix"                 rather than "UNIX" in this course only for the sake of                 readability.&lt;/p&gt;&lt;p&gt;They attempted using a Fortran program to further develop Unix, but they found                 that it was not what they were looking for and so they turned to BCPL (Basic                 Combined Programming Language).&lt;/p&gt;&lt;p&gt;B was developed from BCPL and it was the first high-level language to be used on                 Unix with a PDP11/20.&lt;/p&gt;&lt;/div&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;&lt;a name="ass_comp_hwarch"&gt;&lt;/a&gt;Assembler/ compilers / hardware architecture &lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Lets draw a diagram of three different machines and then lets take a look at why                 developing in assembler is not always the best idea:&lt;/p&gt;&lt;div class="orderedlist"&gt;&lt;ol type="1"&gt;&lt;li&gt;&lt;p&gt;Remember that all a computer actually does is mathematics.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Am operating system is a "resource allocator" and a                         "controlling of operations" program.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;When computers first started becoming popular we had to use punch cards or                         load the programs directly into memory manually.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Assembler is machine code and is specific to the machine type and hardware                         that you are working with. The instruction written for one machine cannot                         work for another machine at this low level.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A computer has registers and instruction sets, and the instructions are                         binary coded, the assembly program talks to the machine in assembler which                         is translated to binary code.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="figure"&gt;&lt;a name="d0e256"&gt;&lt;/a&gt;&lt;p class="title"&gt;&lt;b&gt;Figure 1.2. Relationship between hardware, assembler and a compiler&lt;/b&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XJq8zETWRso/SDK4acLwpNI/AAAAAAAAAEM/IPuTBdCT95U/s1600-h/diagram29.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="mediaobject"&gt;&lt;img style="width: 615px; height: 244px;" src="http://learnlinux.tsf.org.za/courses/build/images/diagram29.png" alt="Relationship between hardware, assembler and a compiler" /&gt;&lt;/div&gt;&lt;div class="mediaobject"&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;So, if writing a program for a PDP-7 and using assembler, when wanting to move the                 program to a PDP-11 you would have to rewrite the entire assembler program, this                 time to suit the machine and hardware type for a PDP-11.&lt;/p&gt;&lt;p&gt;To remedy this, developers invented compilers for application programming tools.                 In other words if using Pascal to develop, the Pascal compiler for a PDP-7 would                 translate your program into assembly program and then assembler code for a PDP-7.&lt;/p&gt;&lt;p&gt;If wanting to port that program to a PDP-11, then get the Pascal compiler for a                 PDP-11 and recompile the original program on the PDP-11. It will then work as above.&lt;/p&gt;&lt;p&gt;This explains why the higher-level languages started being used, such as Pascal,                 Fortran etcetera. They are there to provide libraries between program and assembler.                 A compiler would be needed for each specific machine.&lt;/p&gt;&lt;p&gt;These days a compiler automatically generates the assembler code.&lt;/p&gt;&lt;a name="d0e272"&gt;&lt;/a&gt;&lt;p class="title"&gt;&lt;b&gt;Figure 1.3. Dennis Richie and Ken Thompson working on a PDP-11.&lt;/b&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XJq8zETWRso/SDK0IcLwpKI/AAAAAAAAAD0/ZgV9LIar62w/s1600-h/pdp11.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XJq8zETWRso/SDK0IcLwpKI/AAAAAAAAAD0/ZgV9LIar62w/s320/pdp11.jpg" alt="" id="BLOGGER_PHOTO_ID_5202418576663815330" border="0" /&gt;&lt;/a&gt;&lt;p class="title"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;So, the first Unix was written in the Assembler program of a PDP-7 machine, as we                 have now discussed though this is not going to make it easily portable to another                 type of architecture.&lt;/p&gt;&lt;p&gt;At this stage and because of the success of Unix Bell Labs now chooses to                 re-sponsor the project.&lt;/p&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;&lt;a name="d0e283"&gt;&lt;/a&gt;1971 - 1973&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;B is still considered too slow, so the team worked to develop Unix in a faster                 development program called New B or NB. They could now also afford to upgrade to a                 later model of the PDP range called a PDP11/45.&lt;/p&gt;&lt;p&gt;The C Programming language was developed in 1972 as a result of Ken Thompson and                 his team wanting to have a language to write Unix in. Although Ken Thompson worked                 with C initially eventually they needed more functionality which Dennis Ritchie then                 added.&lt;/p&gt;&lt;p&gt;It is also at this time that Unix "pipes" are also now                 developed, and this is seen as a milestone because of the power it added to the                 system &lt;sup&gt;[&lt;a name="d0e292" href="http://learnlinux.tsf.org.za/courses/build/internals/internals-all.html#ftn.d0e292"&gt;1&lt;/a&gt;]&lt;/sup&gt;             &lt;/p&gt;&lt;p&gt;Unix now had its own language and philosophy. Its power was generated by stringing                 programs together not by any one individual program.&lt;/p&gt;&lt;p&gt;A quote from "A quarter Century of Unix" by P Salus"                 states:&lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;p&gt;write programs that do one thing and do it well.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;write programs that work together&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;write programs that handle text streams, because that is a universal                         interface.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;&lt;a name="d0e310"&gt;&lt;/a&gt;1973 - 1974&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;More and more requests are coming in to AT&amp;amp;T to allow other companies and                 users to use the Unix system. &lt;/p&gt;&lt;p&gt;At this stage Unix is firmly entrenched at Universities and Colleges and                 AT&amp;amp;T refusing to supply bug-fixes and support on the system forced users to                 work together. (The start of Unix User Groups.)&lt;/p&gt;&lt;p&gt;Unix had been sold as a text processing system at AT&amp;amp;T internally and here                 the developers and users were the same community and therefore got direct feedback                 for new product and for bugs etcetera, Support was right there in same company,                 maybe even on the same office floor.&lt;/p&gt;&lt;p&gt;By using research organizations at Universities the bright varsity students got                 sucked up into this type of company after their studying, this was beneficial to                 research organizations and they continued to give the system to students.&lt;/p&gt;&lt;p&gt;Unix is still used these days used to teach students computer science.&lt;/p&gt;&lt;p&gt;The US patent office held the rights at this stage.&lt;/p&gt;&lt;/div&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;&lt;a name="d0e325"&gt;&lt;/a&gt;1974 - 1975&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;There are now 500 installations throughout the United States, mainly at                 Universities.&lt;/p&gt;&lt;p&gt;After 1974 military and commercial enterprises started demanding licenses to use                 Unix and AT&amp;amp;T decided to close the source and supply only binary                 distributions.&lt;/p&gt;&lt;p&gt;Berkley UCB did a lot of development on DARPA TCP/IP (bright brains for a good                 price), and the students also started adding on various other utilities, ultimately                 deciding to write Unix from scratch. (BSD Unix)&lt;/p&gt;&lt;p&gt;BSD3 utilities are available in System V Unix, when installing the operating                 system you should be asked if you would like to install the BSD Utilities, they will                 be installed into the /usr/ucb directory.&lt;/p&gt;&lt;h3 class="title"&gt;1976 - 1978&lt;/h3&gt;&lt;p&gt;Unix, is able to be ported to an IBM 360, an Interdata 7/32 and an Interdata 8/32                 proving that Unix is portable to systems other than those manufactured by DEC.&lt;/p&gt;&lt;p&gt;1978 "The C Programming Language" by Ritchie is published.&lt;/p&gt;&lt;p&gt;1978 Bill Joy creates "the "vi" editor a full screen                 editor, and at the same time he sees the need "to optimize the code for                 several different types of terminals, he decided to consolidate screen management by                 using an interpreter to redraw the screen. The interpreter was driven by the                 terminal's characteristics - termcap was born,". P Sulcas&lt;/p&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;&lt;a name="d0e345"&gt;&lt;/a&gt;1979&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;All other Unixs' branch from these two variants of the Unix code,                 AT&amp;amp;T Unix and BSD Unix. (See timeline below).&lt;/p&gt;&lt;p&gt;The release of AT&amp;amp;T Version 7 was the start of many of the Unix ports, the                 32 bit ports and a product called Xenix, (an SCO and Microsoft joint product, and                 the fist Unix port that could run on an 8086 chip).&lt;/p&gt;&lt;/div&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;&lt;a name="d0e352"&gt;&lt;/a&gt;1980&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;By 1980, AT&amp;amp;T found that the operating system was a viable option for                 commercial development. Microprocessors were becoming very popular, and many other                 companies were allowed to license UNIX from AT&amp;amp;T. These companies ported                 UNIX to their machines. The simplicity and clarity of UNIX tempted many developers                 to enhance the product with their own improvements, which resulted in several                 varieties of UNIX.&lt;/p&gt;&lt;/div&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;&lt;a name="d0e357"&gt;&lt;/a&gt;1977 to 1983&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;From 1977 to 1982, Bell Labs combined features from the AT&amp;amp;T versions of                 UNIX into a single system called UNIX System 3.&lt;/p&gt;&lt;p&gt;Bell Labs then enhanced System 3 into System 4, a system that was only used                 internally at Bell Labs.&lt;/p&gt;&lt;p&gt;After further enhancements, System V was released and in 1983, AT&amp;amp;T                 officially announced their support for System V.&lt;/p&gt;&lt;p&gt;1982 Sun developed the Sparc processor, licensed BSD Unix called it SUN OS.&lt;/p&gt;&lt;p&gt;1983/4 Then licensed AT&amp;amp;T System V, made their changes and called that                 version Solaris. There is a lot of cross coding and an interesting note is that if                 though if doing the "uname" (uname is a command that supplies                 details of the current operating system for your interest) command on Solaris the                 report says SunOS is the operating system.&lt;/p&gt;&lt;p&gt;1985 - Some quotable quotes - "Xenix is the operating system                 future" and "640 KB memory is enough for anyone"&lt;/p&gt;&lt;/div&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;&lt;a name="d0e372"&gt;&lt;/a&gt;1989&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;In 1989, AT&amp;amp;T organized that System V, SUNOS, XENIX, and Berkeley 4xBSD                 were combined into one product called System V Release 4.0. This new product was                 created to ensure that there was one version of UNIX that would work on any machine                 available at that time.&lt;/p&gt;&lt;p&gt;The different versions of UNIX prompted AT&amp;amp;T to form a UNIX International                 Consortium. The aim of this consortium was to improve the marketing of UNIX, since                 the market was starting to demand clarity on standardizing the product.&lt;/p&gt;&lt;/div&gt;&lt;div class="sect2" lang="en"&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;&lt;a name="d0e379"&gt;&lt;/a&gt;1992 to 1998&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;By 1992, UNIX was readily available on an Intel platform, providing mainframe-type                 processing power on a PC. This made UNIX appealing to the end-user market.&lt;/p&gt;&lt;table summary="Major vendors/ hardware and related operating systems." border="1"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="left"&gt;Vendor&lt;/th&gt;&lt;th align="left"&gt;Hardware&lt;/th&gt;&lt;th align="left"&gt;Operating System (Unix based)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left"&gt;HP&lt;/td&gt;&lt;td align="left"&gt;PARisc&lt;/td&gt;&lt;td align="left"&gt;HP-UX&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;IBM&lt;/td&gt;&lt;td align="left"&gt;RS6000 / Power PC&lt;/td&gt;&lt;td align="left"&gt;AIX&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;Digital / DEC / Compaq&lt;/td&gt;&lt;td align="left"&gt;Alpha&lt;/td&gt;&lt;td align="left"&gt;Digital Unix &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;NCR&lt;/td&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="left"&gt;DG-UX&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;SCO&lt;/td&gt;&lt;td align="left"&gt;Intel PC Compatible&lt;/td&gt;&lt;td align="left"&gt;SCO Xenix, SCO Unix, SCO Open Server 5, UnixWare 7&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Source code has changed hands a few times:&lt;br /&gt;&lt;table border="1"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="left"&gt;year&lt;/th&gt;&lt;th align="left"&gt;Owner of Source code&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left"&gt;1969&lt;/td&gt;&lt;td align="left"&gt;AT&amp;amp;T&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;1993&lt;/td&gt;&lt;td align="left"&gt;Novell&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;1995&lt;/td&gt;&lt;td align="left"&gt;SCO&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;2001&lt;/td&gt;&lt;td align="left"&gt;Caldera, which started trading under the name "The SCO                                 Group" in 2002&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table summary="Note" border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td rowspan="2" align="center" valign="top" width="25"&gt;&lt;img alt="[Note]" src="http://learnlinux.tsf.org.za/courses/build/images/admon/note.png" /&gt;&lt;/td&gt;&lt;th align="left"&gt;&lt;br /&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class="title"&gt;&lt;a name="d0e207"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 class="title"&gt;&lt;a name="d0e198"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;table summary="Note" border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th align="left"&gt;Note&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2" align="left" valign="top"&gt;&lt;p&gt;                     &lt;/p&gt;&lt;div class="orderedlist"&gt;&lt;ol type="1"&gt;&lt;li&gt;&lt;p&gt;Besides licensing Unix System V to vendors, Novell marketed its                                 own flavor of Unix to the consumer market, called UnixWare.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;When Novell sold the Unix business to SCO, it transferred the Unix                                 trademark to X/Open Company Ltd. now the Open Group &lt;a href="http://learnlinux.tsf.org.za/courses/build/internals/www.opengroup.org" target="_top"&gt;www.opengroup.org&lt;/a&gt;                             &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;SCO inherited UnixWare 2 from Novell and continued selling it                                 under the SCO brand.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;p&gt;                 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="titlepage"&gt;&lt;div&gt;&lt;div&gt;&lt;h2 class="title" style="clear: both;"&gt;&lt;a name="d0e486"&gt;&lt;/a&gt;This is the story of Linux&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;a name="d0e489"&gt;&lt;/a&gt;&lt;p class="title"&gt;&lt;b&gt;Figure 1.4. Professor Andy Tannebaum&lt;/b&gt;&lt;/p&gt;&lt;img src="http://learnlinux.tsf.org.za/courses/build/images/tanenbaum.jpg" alt="Professor Andy Tannebaum" height="354" /&gt;&lt;br /&gt;&lt;br /&gt;985 Professor Andy Tanenbaum wrote a Unix like operating system from scratch, based             on System V standards POSIX and IEEE, called MINIX for i386 for Intel PC aimed at             university computer science research students.&lt;p&gt;MINIX was also bundled with a popular computer science operating system study book by             that author. Although the operating system was free the book was to be purchased.&lt;/p&gt;&lt;p&gt;A Finnish student called Linus Torvald first came into contact with Unix like systems             through his use of this MINIX at the university of Helsinki Finland in Computer Science.&lt;/p&gt;&lt;p&gt;Linus Torvald wanted to upgrade MINIX and put in features and improvements, but Andrew             Tanenbaum wanted Minix the way it was and so Linus decided write his own kernel.&lt;/p&gt;&lt;p&gt;He released Linux on the Internet as an Open Source product and under his own license             and then later in 1991 under the GPL.&lt;/p&gt;&lt;div class="blockquote"&gt;&lt;table class="blockquote" summary="Block quote" border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="10%"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td valign="top" width="80%"&gt;&lt;p&gt;If you want to travel around the world and be invited to speak at a lot of                 different places, just write a Unix operating system.&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="10%"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2" align="right" valign="top"&gt;--&lt;span class="attribution"&gt;                 &lt;span class="author"&gt;&lt;span class="firstname"&gt;Linus&lt;/span&gt; &lt;span class="surname"&gt;Torvald&lt;/span&gt;&lt;/span&gt;             &lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="10%"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="figure"&gt;&lt;a name="d0e516"&gt;&lt;/a&gt;&lt;p class="title"&gt;&lt;b&gt;Figure 1.5. Linus Torvald&lt;/b&gt;&lt;/p&gt;&lt;div class="mediaobject"&gt;&lt;table summary="manufactured viewport for HTML img" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr style="height: 177px;"&gt;&lt;td&gt;&lt;img src="http://learnlinux.tsf.org.za/courses/build/images/torvald.jpg" alt="Linus Torvald" height="177" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The FSF (Free Software Foundation), started by Richard Stallman, as a development             effort to promote the use of Free Software, Stallman recognized the need to write a free             and open source Unix-like operating system so that people could have a Unix system under             a non-propriety non-restrictive commercial license&lt;/p&gt;&lt;p&gt;The FSF started a project called GNU to fulfill this aim GNU stands for "GNU             is not Unix" (a recursive acronym).&lt;/p&gt;&lt;p&gt;By 1991 GNU had already amassed a compiler (GCC- GNU C Compiler), a C library, both             very critical components of an operating system, and all associated generic Unix base             programs (ls, cat, chmod etcetera).&lt;/p&gt;&lt;p&gt;They were missing a kernel, which was going to be called the GNU HURD (HURD is not yet             complete 2004 April).&lt;/p&gt;&lt;p&gt;The FSF naturally adopted the Linux kernel to complete the GNU system to produce what             is known as the GNU/Linux operating system, which is the correct term for all             distributions of Linux like Red Hat Linux and SuSE Linux.&lt;/p&gt;&lt;p&gt;1994 Linux 1.0 release&lt;/p&gt;&lt;a name="d0e534"&gt;&lt;/a&gt;&lt;p class="title"&gt;&lt;b&gt;Figure 1.6. Tux, the Linux mascot&lt;/b&gt;&lt;/p&gt;&lt;img src="http://learnlinux.tsf.org.za/courses/build/images/tux.gif" alt="Tux, the Linux mascot" height="177" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ref: &lt;a href="http://learnlinux.tsf.org.za/courses/build/internals/internals-all.html#history"&gt;http://learnlinux.tsf.org.za/courses/build/internals/internals-all.html#history&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-3209172372577859382?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/3209172372577859382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=3209172372577859382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/3209172372577859382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/3209172372577859382'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2008/05/linux-history.html' title='Linux History'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XJq8zETWRso/SDKyyMLwpII/AAAAAAAAADk/hOHDKdIQIao/s72-c/pdp7.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-2304380093727047907</id><published>2008-05-12T14:11:00.002+05:30</published><updated>2008-05-12T14:21:22.846+05:30</updated><title type='text'>Null Pointer</title><content type='html'>&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt;  What is this infamous null pointer, anyway? &lt;/p&gt;&lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; The language definition states that for each pointer type,  there is a special value--the ``null pointer''--which is distinguishable from all other pointer values and which is ``guaranteed to compare unequal to a pointer to any object or function.''  That is, a null pointer points definitively nowhere; it is not the address of  any object or function. The address-of operator &lt;tt&gt;&amp;amp;&lt;/tt&gt; will never yield a null pointer, nor will a successful call to &lt;tt&gt;malloc&lt;/tt&gt;.&lt;a href="http://c-faq.com/null/nullsuccess.html" rel="subdocument"&gt;[footnote]&lt;/a&gt; (&lt;tt&gt;malloc&lt;/tt&gt; does return a null pointer when it fails, and this is a typical use of null pointers: as a ``special'' pointer value with some other meaning, usually ``not allocated'' or ``not pointing anywhere yet.'') &lt;/p&gt;&lt;p&gt; A null pointer is conceptually different from an uninitialized pointer. A null pointer is known not to point to any object or function; an uninitialized pointer might point anywhere. See also questions &lt;a href="http://c-faq.com/decl/initval.html"&gt;1.30&lt;/a&gt;, &lt;a href="http://c-faq.com/malloc/malloc1.html"&gt;7.1&lt;/a&gt;, and &lt;a href="http://c-faq.com/malloc/calloc.html"&gt;7.31&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;As mentioned above, there is a null pointer for each pointer type, and the internal values of null pointers for different types may be different. Although programmers need not know the internal values, the compiler must always be informed which type of null pointer is required, so that it can make the distinction if necessary (see questions &lt;a href="http://c-faq.com/null/null2.html"&gt;5.2&lt;/a&gt;, &lt;a href="http://c-faq.com/null/machnon0.html"&gt;5.5&lt;/a&gt;, and &lt;a href="http://c-faq.com/null/safermacs.html"&gt;5.6&lt;/a&gt;).&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt;  How do I get a null pointer in my programs? &lt;/p&gt;&lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; With a &lt;a href="http://c-faq.com/sx1/index.html#null%20pointer%20constant"&gt;&lt;dfn&gt;null pointer constant&lt;/dfn&gt;&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;According to the language definition, an ``integral constant expression with the value 0'' in a pointer context is converted into a null pointer at compile time. That is, in an initialization, assignment, or comparison   when one side is a variable or expression of pointer type, the compiler can tell that a constant &lt;tt&gt;0&lt;/tt&gt; on the other side requests a null pointer, and generate the correctly-typed null pointer value. Therefore, the following fragments are perfectly legal: &lt;/p&gt;&lt;pre&gt; char *p = 0;&lt;br /&gt; if(p != 0)&lt;br /&gt;&lt;/pre&gt; (See also question &lt;a href="http://c-faq.com/null/ptrtest.html"&gt;5.3&lt;/a&gt;.) &lt;p&gt;However, an argument being passed to a function is not necessarily  recognizable as a pointer context, and the compiler may not be able to tell that an unadorned &lt;tt&gt;0&lt;/tt&gt; ``means''  a null pointer. To generate a null pointer in a function call context, an explicit cast may be required, to force the &lt;tt&gt;0&lt;/tt&gt; to be recognized as a pointer. For example, the Unix system call &lt;tt&gt;execl&lt;/tt&gt; takes a variable-length, null-pointer-terminated list of character pointer arguments, and is correctly called like this: &lt;/p&gt;&lt;pre&gt; execl("/bin/sh", "sh", "-c", "date", (char *)0);&lt;br /&gt;&lt;/pre&gt;  If the &lt;tt&gt;(char *)&lt;/tt&gt; cast on the last argument were omitted, the compiler would not know to pass a null pointer, and would pass an integer &lt;tt&gt;0&lt;/tt&gt; instead. (Note that many Unix manuals  get this example wrong; see also question &lt;a href="http://c-faq.com/null/nullreq.html"&gt;5.11&lt;/a&gt;.)&lt;br /&gt;&lt;p&gt;When function prototypes are in scope, argument passing becomes an ``assignment context,'' and most casts may safely be omitted, since the prototype tells the compiler that a pointer is required, and of which type, enabling it  to correctly convert an unadorned &lt;tt&gt;0&lt;/tt&gt;. Function prototypes cannot provide the types for variable arguments in variable-length argument lists however, so explicit casts are still required for those arguments. (See also question &lt;a href="http://c-faq.com/varargs/proto2.html"&gt;15.3&lt;/a&gt;.) It is probably safest to properly cast all null pointer constants in function calls, to guard against varargs functions or those without prototypes.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt; Is the abbreviated pointer comparison ``&lt;tt&gt;if(p)&lt;/tt&gt;'' to test for non-null pointers valid? What if the internal representation for null pointers is nonzero? &lt;/p&gt;&lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; It is always valid. &lt;/p&gt;&lt;p&gt;When C requires the Boolean  value of an expression, a false value is inferred   when the expression compares equal to zero, and a true value otherwise. That is, whenever one writes &lt;/p&gt;&lt;pre&gt; if(expr)&lt;br /&gt;&lt;/pre&gt; where ``expr'' is any expression at all, the compiler essentially acts as if it had been written as &lt;pre&gt; if((expr) != 0)&lt;br /&gt;&lt;/pre&gt; Substituting the trivial pointer expression ``p'' for ``expr'', we have &lt;pre&gt; if(p) is equivalent to if(p != 0)&lt;br /&gt;&lt;/pre&gt; and this is a comparison context, so the compiler can tell that the (implicit) &lt;tt&gt;0&lt;/tt&gt; is actually a null pointer constant,  and use the correct null pointer value. There is no trickery involved here; compilers do work this way, and generate identical code for both constructs. The internal representation of a null pointer does &lt;em&gt;not&lt;/em&gt; matter. &lt;p&gt; The boolean negation operator, &lt;tt&gt;!&lt;/tt&gt;, can be described  as follows: &lt;/p&gt;&lt;pre&gt; !expr is essentially equivalent to (expr)?0:1&lt;br /&gt;  or to ((expr) == 0)&lt;br /&gt;&lt;/pre&gt; which leads to the conclusion that &lt;pre&gt; if(!p) is equivalent to if(p == 0)&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;``Abbreviations'' such as &lt;tt&gt;if(p)&lt;/tt&gt;, though perfectly legal&lt;a href="http://c-faq.com/null/assertptr.html" rel="subdocument"&gt;[footnote]&lt;/a&gt; , are considered by some to be bad style (and by others to be good style; see question &lt;a href="http://c-faq.com/style/stylewars.html"&gt;17.10&lt;/a&gt;). &lt;/p&gt;See also question &lt;a href="http://c-faq.com/bool/bool2.html"&gt;9.2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt; What is &lt;tt&gt;NULL&lt;/tt&gt; and how is it defined? &lt;/p&gt;&lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; As a matter of style, many programmers prefer not to have unadorned &lt;tt&gt;0&lt;/tt&gt;'s scattered through their programs, some representing numbers and some representing pointers. Therefore, the preprocessor macro &lt;tt&gt;NULL&lt;/tt&gt; is defined (by several headers, including &lt;tt&gt;&lt;stdio.h&gt;&lt;/tt&gt; and &lt;tt&gt;&lt;stddef.h&gt;&lt;/tt&gt;)      as a null pointer constant, typically &lt;tt&gt;0&lt;/tt&gt; or &lt;tt&gt;((void *)0)&lt;/tt&gt; (see also  question &lt;a href="http://c-faq.com/null/safermacs.html"&gt;5.6&lt;/a&gt;).  A programmer who wishes to make explicit the distinction between &lt;tt&gt;0&lt;/tt&gt; the integer and &lt;tt&gt;0&lt;/tt&gt; the null pointer constant can then use &lt;tt&gt;NULL&lt;/tt&gt; whenever a null pointer is required. &lt;/p&gt;&lt;p&gt;Using &lt;tt&gt;NULL&lt;/tt&gt; is a stylistic convention only; the preprocessor turns &lt;tt&gt;NULL&lt;/tt&gt; back into  &lt;tt&gt;0&lt;/tt&gt; which is then recognized by the compiler, in pointer contexts, as before. In particular, a cast may still be necessary before &lt;tt&gt;NULL&lt;/tt&gt; (as before &lt;tt&gt;0&lt;/tt&gt;) in a function call argument. The table under question &lt;a href="http://c-faq.com/null/null2.html"&gt;5.2&lt;/a&gt;  above applies for  &lt;tt&gt;NULL&lt;/tt&gt; as well as &lt;tt&gt;0&lt;/tt&gt; (an unadorned &lt;tt&gt;NULL&lt;/tt&gt; is equivalent to an unadorned 0). &lt;/p&gt;&lt;tt&gt;NULL&lt;/tt&gt; should be used &lt;em&gt;only&lt;/em&gt; as a pointer constant;  see question &lt;a href="http://c-faq.com/null/nullor0.html"&gt;5.9&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt; How should &lt;tt&gt;NULL&lt;/tt&gt; be defined on a machine which uses a nonzero bit pattern as the internal representation of a null pointer? &lt;/p&gt;&lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; The same as on any other machine: as &lt;tt&gt;0&lt;/tt&gt; (or some version of &lt;tt&gt;0&lt;/tt&gt;; see question &lt;a href="http://c-faq.com/null/macro.html"&gt;5.4&lt;/a&gt;). &lt;/p&gt;&lt;p&gt;Whenever a programmer requests a null pointer,  either by writing ``&lt;tt&gt;0&lt;/tt&gt;'' or ``&lt;tt&gt;NULL&lt;/tt&gt;'',  it is the compiler's  responsibility to generate whatever bit pattern the machine uses for that null pointer. (Again, the compiler can tell that an unadorned  &lt;tt&gt;0&lt;/tt&gt; requests a null pointer when the &lt;tt&gt;0&lt;/tt&gt; is in a pointer context; see question &lt;a href="http://c-faq.com/null/null2.html"&gt;5.2&lt;/a&gt;.)  Therefore, #defining &lt;tt&gt;NULL&lt;/tt&gt; as &lt;tt&gt;0&lt;/tt&gt; on a machine for which internal null pointers are nonzero is as valid as on any other: the compiler must always be able to  generate the machine's correct null pointers in response to unadorned &lt;tt&gt;0&lt;/tt&gt;'s seen in pointer contexts. A constant &lt;tt&gt;0&lt;/tt&gt; is a null pointer constant; &lt;tt&gt;NULL&lt;/tt&gt; is just a convenient name for it (see also question &lt;a href="http://c-faq.com/null/varieties.html"&gt;5.13&lt;/a&gt;). &lt;/p&gt;&lt;p&gt;(Section 4.1.5 of the C Standard states that &lt;tt&gt;NULL&lt;/tt&gt; ``expands to an implementation-defined null pointer constant,'' which means that the implementation gets to choose which form of &lt;tt&gt;0&lt;/tt&gt; to use and whether to use a &lt;tt&gt;void *&lt;/tt&gt; cast; see questions &lt;a href="http://c-faq.com/null/safermacs.html"&gt;5.6&lt;/a&gt; and &lt;a href="http://c-faq.com/null/long0.html"&gt;5.7&lt;/a&gt;. ``Implementation-defined'' here does &lt;em&gt;not&lt;/em&gt; mean that &lt;tt&gt;NULL&lt;/tt&gt; might be &lt;tt&gt;#define&lt;/tt&gt;d to match some implementation-specific nonzero internal null pointer value.)&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt; If &lt;tt&gt;NULL&lt;/tt&gt; were defined as follows: &lt;/p&gt;&lt;pre&gt; #define NULL ((char *)0)&lt;br /&gt;&lt;/pre&gt; wouldn't that make function calls which pass an uncast &lt;tt&gt;NULL&lt;/tt&gt; work? &lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; Not in the most general case. The complication is that there are machines which use different internal  representations for pointers to different types of data. The suggested definition would make uncast &lt;tt&gt;NULL&lt;/tt&gt; arguments to functions expecting pointers to characters work correctly, but pointer arguments of other types could still (in the absence of prototypes) require explicit casts. Furthermore, legal constructions such as &lt;/p&gt;&lt;pre&gt; FILE *fp = NULL;&lt;br /&gt;&lt;/pre&gt; could fail. &lt;p&gt;Nevertheless, ANSI C allows the alternate definition &lt;/p&gt;&lt;pre&gt; #define NULL ((void *)0)&lt;br /&gt;&lt;/pre&gt; for &lt;tt&gt;NULL&lt;/tt&gt;. &lt;a href="http://c-faq.com/null/voidpassign.html" rel="subdocument"&gt;[footnote]&lt;/a&gt; Besides potentially  helping   incorrect programs to  work (but only on machines with homogeneous pointers, thus  questionably valid assistance), this definition may catch programs which use &lt;tt&gt;NULL&lt;/tt&gt; incorrectly (e.g. when the ASCII NUL character was really intended; see question &lt;a href="http://c-faq.com/null/nullor0.html"&gt;5.9&lt;/a&gt;). See also question &lt;a href="http://c-faq.com/null/long0.html"&gt;5.7&lt;/a&gt;. &lt;p&gt;At any rate, ANSI function prototypes ensure that most (though not quite all; see question &lt;a href="http://c-faq.com/null/null2.html"&gt;5.2&lt;/a&gt;) pointer arguments are converted correctly when passed as function arguments, so the question is largely moot. &lt;/p&gt;&lt;p&gt;Programmers who are accustomed to modern, ``flat'' memory architectures may find the idea of ``different kinds of pointers'' very difficult to accept. See question &lt;a href="http://c-faq.com/null/machexamp.html"&gt;5.17&lt;/a&gt; for some   examples.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt; My vendor provides header files that &lt;tt&gt;#define&lt;/tt&gt; &lt;tt&gt;NULL&lt;/tt&gt; as &lt;tt&gt;0L&lt;/tt&gt;. Why? &lt;/p&gt;&lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; Some programs carelessly attempt to generate null pointers by using the &lt;tt&gt;NULL&lt;/tt&gt; macro,  without casts, in non-pointer contexts. (Doing so is not guaranteed to work; see questions  &lt;a href="http://c-faq.com/null/null2.html"&gt;5.2&lt;/a&gt; and &lt;a href="http://c-faq.com/null/nullreq.html"&gt;5.11&lt;/a&gt;.) On machines which have pointers larger than integers (such as PC compatibles in ``large'' model; see also question &lt;a href="http://c-faq.com/null/machexamp.html"&gt;5.17&lt;/a&gt;), a   particular definition of &lt;tt&gt;NULL&lt;/tt&gt; such as &lt;tt&gt;0L&lt;/tt&gt; can help these incorrect programs to  work. (&lt;tt&gt;0L&lt;/tt&gt; is a perfectly valid definition of &lt;tt&gt;NULL&lt;/tt&gt;; it is an ``integral constant expression with value 0.'')  Whether it is wise to coddle incorrect programs  is debatable.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt; Is &lt;tt&gt;NULL&lt;/tt&gt; valid for pointers to functions? &lt;/p&gt;&lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; Yes (but see question &lt;a href="http://c-faq.com/ptrs/generic.html"&gt;4.13&lt;/a&gt;).&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt; If &lt;tt&gt;NULL&lt;/tt&gt; and &lt;tt&gt;0&lt;/tt&gt; are equivalent as null pointer constants, which should I use? &lt;/p&gt;&lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; Many programmers believe that &lt;tt&gt;NULL&lt;/tt&gt; should be used in all pointer contexts, as a reminder that the value is to be thought of as a pointer. Others feel that the confusion surrounding &lt;tt&gt;NULL&lt;/tt&gt; and &lt;tt&gt;0&lt;/tt&gt; is only compounded by hiding &lt;tt&gt;0&lt;/tt&gt; behind a macro, and prefer to use unadorned &lt;tt&gt;0&lt;/tt&gt; instead. There is no one right answer. (See also questions &lt;a href="http://c-faq.com/bool/macros.html"&gt;9.4&lt;/a&gt; and &lt;a href="http://c-faq.com/style/stylewars.html"&gt;17.10&lt;/a&gt;.)  C programmers must understand that &lt;tt&gt;NULL&lt;/tt&gt; and &lt;tt&gt;0&lt;/tt&gt; are interchangeable in pointer contexts, and that an uncast &lt;tt&gt;0&lt;/tt&gt; is perfectly acceptable. Any usage of &lt;tt&gt;NULL&lt;/tt&gt; (as opposed to &lt;tt&gt;0&lt;/tt&gt;) should be considered a gentle reminder that a pointer is involved; programmers should not depend on it (either for their own understanding or the compiler's) for distinguishing pointer &lt;tt&gt;0&lt;/tt&gt;'s from integer &lt;tt&gt;0&lt;/tt&gt;'s. &lt;/p&gt;&lt;p&gt;It is only in pointer contexts that &lt;tt&gt;NULL&lt;/tt&gt; and 0 are equivalent. &lt;tt&gt;NULL&lt;/tt&gt; should &lt;em&gt;not&lt;/em&gt; be used when another kind of &lt;tt&gt;0&lt;/tt&gt; is required, even though it might work, because doing so sends the wrong stylistic message. (Furthermore, ANSI allows the definition of &lt;tt&gt;NULL&lt;/tt&gt; to be &lt;tt&gt;((void *)0)&lt;/tt&gt;, which will not work at all in non-pointer contexts.) In particular, do not use &lt;tt&gt;NULL&lt;/tt&gt; when the ASCII  null character (NUL) is desired. Provide your own definition &lt;/p&gt;&lt;pre&gt; #define NUL '\0'&lt;br /&gt;&lt;/pre&gt; if you must.&lt;br /&gt;&lt;br /&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt; But wouldn't it be better to use &lt;tt&gt;NULL&lt;/tt&gt; (rather than  &lt;tt&gt;0&lt;/tt&gt;), in case the value of &lt;tt&gt;NULL&lt;/tt&gt; changes, perhaps on a machine with nonzero internal null pointers? &lt;/p&gt;&lt;hr /&gt;  &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; No. (Using &lt;tt&gt;NULL&lt;/tt&gt; may be preferable, but not for this reason.) Although symbolic constants are often used in place of numbers because the numbers might change, this is &lt;em&gt;not&lt;/em&gt; the reason that &lt;tt&gt;NULL&lt;/tt&gt; is used in place of &lt;tt&gt;0&lt;/tt&gt;. Once again, the language guarantees that source-code &lt;tt&gt;0&lt;/tt&gt;'s  (in pointer contexts) generate null pointers. &lt;tt&gt;NULL&lt;/tt&gt; is used only as a stylistic convention.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/span&gt; I once used a compiler that wouldn't work unless &lt;tt&gt;NULL&lt;/tt&gt; was used. &lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; Unless the code being compiled was nonportable, that compiler was probably broken. &lt;/p&gt;&lt;p&gt;Perhaps the code used something like this nonportable version of an  example from question &lt;a href="http://c-faq.com/null/null2.html"&gt;5.2&lt;/a&gt;: &lt;/p&gt;&lt;pre&gt; execl("/bin/sh", "sh", "-c", "date", NULL); /* WRONG */&lt;br /&gt;&lt;/pre&gt; Under a compiler which defines &lt;tt&gt;NULL&lt;/tt&gt; to &lt;tt&gt;((void *)0)&lt;/tt&gt; (see question &lt;a href="http://c-faq.com/null/safermacs.html"&gt;5.6&lt;/a&gt;), this code will happen to work. &lt;a href="http://c-faq.com/null/voidpcharp.html" rel="subdocument"&gt;[footnote]&lt;/a&gt; However, if pointers and integers have different sizes or representations, the (equally incorrect) code &lt;pre&gt; execl("/bin/sh", "sh", "-c", "date", 0); /* WRONG */&lt;br /&gt;&lt;/pre&gt; may not work. &lt;p&gt;Correct, portable code uses an explicit cast: &lt;/p&gt;&lt;pre&gt; execl("/bin/sh", "sh", "-c", "date", (char *)NULL);&lt;br /&gt;&lt;/pre&gt; With the cast, the code works correctly no matter what the machine's integer and pointer representations are, and no matter which form of null pointer constant the compiler has chosen as the definition of &lt;tt&gt;NULL&lt;/tt&gt;. (The code fragment in question &lt;a href="http://c-faq.com/null/null2.html"&gt;5.2&lt;/a&gt;, which used 0 instead of &lt;tt&gt;NULL&lt;/tt&gt;, is equally correct; see also question &lt;a href="http://c-faq.com/null/nullor0.html"&gt;5.9&lt;/a&gt;.) (In general, making decisions about a language based on the behavior of one particular compiler is likely to be counterproductive.)&lt;br /&gt;&lt;br /&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt;  I use the preprocessor macro &lt;/p&gt;&lt;pre&gt;#define Nullptr(type) (type *)0&lt;/pre&gt;  to help me build null pointers of the correct type. &lt;hr /&gt;  &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; This trick, though popular and superficially attractive,  does not buy much. It is not needed in assignments or comparisons; see question &lt;a href="http://c-faq.com/null/null2.html"&gt;5.2&lt;/a&gt;. (It does not even save keystrokes.)  See also questions &lt;a href="http://c-faq.com/bool/booltype.html"&gt;9.1&lt;/a&gt; and &lt;a href="http://c-faq.com/cpp/slm.html"&gt;10.2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt; This is strange. &lt;tt&gt;NULL&lt;/tt&gt; is guaranteed to be &lt;tt&gt;0&lt;/tt&gt;, but the null pointer is not? &lt;/p&gt;&lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; When the term ``null'' or ``&lt;tt&gt;NULL&lt;/tt&gt;'' is casually used, one of several things may be meant: &lt;/p&gt;&lt;ol&gt;&lt;li&gt;The conceptual null pointer, the abstract language concept defined in question &lt;a href="http://c-faq.com/null/null1.html"&gt;5.1&lt;/a&gt;. It is implemented with... &lt;/li&gt;&lt;li&gt;The internal (or run-time) representation of a null pointer, which may or may not be all-bits-0 and which may be different for different pointer types. The actual values should be of concern only to compiler writers. Authors of C programs never see them, since they  use... &lt;/li&gt;&lt;li&gt;The null pointer constant, which is a constant integer 0  &lt;a href="http://c-faq.com/null/fn22.html" rel="subdocument"&gt;[footnote]&lt;/a&gt; (see question &lt;a href="http://c-faq.com/null/null2.html"&gt;5.2&lt;/a&gt;). It is often hidden behind... &lt;/li&gt;&lt;li&gt;The &lt;tt&gt;NULL&lt;/tt&gt; macro, which is &lt;tt&gt;#define&lt;/tt&gt;d to be &lt;tt&gt;0&lt;/tt&gt; (see question &lt;a href="http://c-faq.com/null/macro.html"&gt;5.4&lt;/a&gt;). Finally, as red herrings, we have... &lt;/li&gt;&lt;li&gt;The ASCII null character (NUL), which does have all bits zero, but has no necessary relation to the null pointer except in name; and... &lt;/li&gt;&lt;li&gt;The ``null string,'' which is another name for the empty string  (&lt;tt&gt;""&lt;/tt&gt;). Using the term ``null string'' can be confusing in C, because an empty string involves a null (&lt;tt&gt;'\0'&lt;/tt&gt;) character, but &lt;em&gt;not&lt;/em&gt; a null pointer, which brings us full circle... &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;In other words, to paraphrase the White Knight's description of his song in &lt;i&gt;Through the Looking-Glass&lt;/i&gt;, the name of the null pointer is ``&lt;tt&gt;0&lt;/tt&gt;'', but the name of the null pointer is called ``&lt;tt&gt;NULL&lt;/tt&gt;'' (and we're not sure what the null pointer &lt;em&gt;is&lt;/em&gt;). &lt;/p&gt;&lt;p&gt;This document uses the phrase ``null pointer'' (in lower case) for sense 1,  the token ``&lt;tt&gt;0&lt;/tt&gt;'' or the phrase ``null pointer constant'' for sense 3, and the capitalized word ``&lt;tt&gt;NULL&lt;/tt&gt;'' for sense 4.&lt;a href="http://c-faq.com/null/precise.html" rel="subdocument"&gt;[footnote]&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Additional links: &lt;a href="http://c-faq.com/null/bull.html" rel="subdocument"&gt;mnemonic device&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt; Why is there so much confusion surrounding null pointers? Why do these questions come up so often? &lt;/p&gt;&lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; C programmers traditionally like to know a lot (perhaps more than they need to) about the underlying machine implementation. The fact that null pointers are represented both in source code,   and internally to most machines,  as zero invites unwarranted assumptions. The use of a preprocessor macro (&lt;tt&gt;NULL&lt;/tt&gt;) may seem to suggest that the value could change some day, or on some weird machine.  The construct ``&lt;tt&gt;if(p == 0)&lt;/tt&gt;'' is easily misread as calling for conversion of &lt;tt&gt;p&lt;/tt&gt; to an integral type, rather than &lt;tt&gt;0&lt;/tt&gt; to a pointer type, before the comparison. Finally, the distinction between the several uses of the term ``null'' (listed in question &lt;a href="http://c-faq.com/null/varieties.html"&gt;5.13&lt;/a&gt;) is often overlooked. &lt;/p&gt;&lt;p&gt;One good way to wade out of the confusion is to imagine that C used a keyword (perhaps &lt;tt&gt;nil&lt;/tt&gt;, like Pascal) as a null pointer constant. The compiler could either turn &lt;tt&gt;nil&lt;/tt&gt; into the appropriate type of null pointer when it could unambiguously determine that type from the source code,  or complain when it could not. Now in fact, in C the keyword for a null pointer constant is not &lt;tt&gt;nil&lt;/tt&gt; but &lt;tt&gt;0&lt;/tt&gt;, which works almost as well, except that an uncast &lt;tt&gt;0&lt;/tt&gt; in a non-pointer context generates an integer zero instead of an error message, and if that uncast &lt;tt&gt;0&lt;/tt&gt; was supposed to be a null pointer constant, the resulting program may not work.  &lt;/p&gt;&lt;p&gt;Additional links: an     &lt;a href="http://c-faq.com/null/nullvs0.rs.html"&gt;article by Richard Stamp&lt;/a&gt; with another angle on the NULL/0 distinction&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt; I'm confused. I just can't understand all this null pointer stuff. &lt;/p&gt;&lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; Here are two simple rules you can follow: &lt;/p&gt;&lt;ol&gt;&lt;li&gt;When you want a null pointer constant in source code, use ``&lt;tt&gt;0&lt;/tt&gt;'' or ``&lt;tt&gt;NULL&lt;/tt&gt;''. &lt;/li&gt;&lt;li&gt;If the usage of ``&lt;tt&gt;0&lt;/tt&gt;'' or ``&lt;tt&gt;NULL&lt;/tt&gt;'' is an argument in a function call, cast it to the pointer type expected by the function being called. &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;The rest of the discussion has to do with other people's misunderstandings, with the internal representation of null pointers (which you shouldn't need to know), and with the complexities of function prototypes. (Taking those complexities into account, we find that rule 2 is conservative&lt;a href="http://c-faq.com/null/ptrargcast.html" rel="subdocument"&gt;[footnote]&lt;/a&gt; , of course; but it doesn't hurt.) Understand questions &lt;a href="http://c-faq.com/null/null1.html"&gt;5.1&lt;/a&gt;, &lt;a href="http://c-faq.com/null/null2.html"&gt;5.2&lt;/a&gt;, and &lt;a href="http://c-faq.com/null/macro.html"&gt;5.4&lt;/a&gt;, and consider &lt;a href="http://c-faq.com/null/ptrtest.html"&gt;5.3&lt;/a&gt;, &lt;a href="http://c-faq.com/null/nullor0.html"&gt;5.9&lt;/a&gt;, &lt;a href="http://c-faq.com/null/varieties.html"&gt;5.13&lt;/a&gt;, and &lt;a href="http://c-faq.com/null/confusion.html"&gt;5.14&lt;/a&gt;, and you'll do fine.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt; Is a run-time integral value of 0, cast to a pointer, guaranteed to be a null pointer? &lt;/p&gt;&lt;hr /&gt; &lt;p&gt; &lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;A:&lt;/b&gt;&lt;/span&gt; No. Only &lt;em&gt;constant&lt;/em&gt; integral expressions with value 0 are guaranteed to indicate null pointers. See also questions &lt;a href="http://c-faq.com/ptrs/int2ptr.html"&gt;4.14&lt;/a&gt;, &lt;a href="http://c-faq.com/null/null2.html"&gt;5.2&lt;/a&gt;, and &lt;a href="http://c-faq.com/null/accessloc0.html"&gt;5.19&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Ref: &lt;a href="http://c-faq.com/null/"&gt;http://c-faq.com/null/&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-2304380093727047907?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/2304380093727047907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=2304380093727047907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/2304380093727047907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/2304380093727047907'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2008/05/null-pointer.html' title='Null Pointer'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-5768676307497838194</id><published>2008-05-02T12:07:00.008+05:30</published><updated>2008-12-30T12:53:52.175+05:30</updated><title type='text'>Bookmarks</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="FONT-WEIGHT: bold; COLOR: rgb(204,51,204)"&gt;GCC &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.cfdvs.iitb.ac.in/~amv/gcc-int-docs/#gccdocs"&gt;http://www.cfdvs.iitb.ac.in/~amv/gcc-int-docs/#gccdocs&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gcc.gnu.org/wiki/StructureOfGCC"&gt;http://gcc.gnu.org/wiki/StructureOfGCC&lt;/a&gt;&lt;br /&gt;&lt;h1 style="COLOR: rgb(204,51,204)"&gt;&lt;span style="font-size:130%;"&gt;Filesystem Hierarchy Standard&lt;/span&gt;&lt;/h1&gt;&lt;a href="http://www.pathname.com/fhs/"&gt;http://www.pathname.com/fhs/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="COLOR: rgb(153,51,153)"&gt;Process Virtual Memory&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linux-tutorial.info/modules.php?name=MContent&amp;amp;pageid=322#pagetop"&gt;http://www.linux-tutorial.info/modules.php?name=MContent&amp;amp;pageid=322#pagetop&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Procfs&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/library/l-proc.html"&gt;http://www.ibm.com/developerworks/library/l-proc.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.linuxforums.org/misc/procfs_from_the_inside.html"&gt;http://www.linuxforums.org/misc/procfs_from_the_inside.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;GNU Toolchain&lt;br /&gt;&lt;br /&gt;&lt;a href="http://webusers.npl.uiuc.edu/~yangrz/Make.html"&gt;http://webusers.npl.uiuc.edu/~yangrz/Make.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sources.redhat.com/autobook/autobook/autobook_toc.html#SEC_Contents"&gt;http://sources.redhat.com/autobook/autobook/autobook_toc.html#SEC_Contents&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.seul.org/docs/autotut/#intro"&gt;http://www.seul.org/docs/autotut/#intro&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.pma.caltech.edu/~physlab/ph21_winter06/make.html"&gt;http://www.pma.caltech.edu/~physlab/ph21_winter06/make.html&lt;/a&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#990000;"&gt;Socket Programming&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.tenouk.com/cnlinuxsockettutorials.html"&gt;&lt;span style="color:#000099;"&gt;http://www.tenouk.com/cnlinuxsockettutorials.html&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-5768676307497838194?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/5768676307497838194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=5768676307497838194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/5768676307497838194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/5768676307497838194'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2008/05/bookmarks.html' title='Bookmarks'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-5753567412367741639</id><published>2007-12-27T17:58:00.000+05:30</published><updated>2007-12-29T19:43:03.490+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fork'/><category scheme='http://www.blogger.com/atom/ns#' term='vfork'/><title type='text'>Difference betn vfork &amp; fork</title><content type='html'>&lt;div class="main"&gt;   &lt;div class="snap_preview"&gt;&lt;p&gt;quick question: what’s the difference between fork() and vfork() system calls ?&lt;/p&gt; &lt;p&gt;quick answer: vfork() system call creates a process that shares the memory address space of its parent.&lt;/p&gt; &lt;p&gt;details:&lt;/p&gt; &lt;p&gt;fork() is implemented by linux as a clone() system call whose flags parameter specifies both a SIGCHLD signal and all the clone flags cleared and whose child_stack parameter is 0.&lt;/p&gt; &lt;p&gt;vfork() is implemented by linux as a clone() system call whose flags parameter specifies both a SGCHLD signal and flags CLONE_VM and CLONE_VFORK and whose second parameter is 0.&lt;/p&gt; &lt;p&gt;[ discussion: copy on write ]&lt;/p&gt; &lt;p&gt;This is a concept of making the process creation using fork() efficient in that instead of copying the parent’s address space while process creation, it is shared but as soon as either of them write on the page, kernel allocates a new page and assigns it to the writer process.&lt;/p&gt; &lt;p&gt;Most of the time, forking is required just to run a new process in which case it’s a waste to copy the whole parent address space.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="color: rgb(51, 102, 255);"&gt;source*  http://whatilearned2day.wordpress.com/2007/02/05/fork-and-vfork/&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt; Some systems have a system call &lt;code&gt;vfork()&lt;/code&gt;, which was originally&lt;br /&gt;designed as a lower-overhead version of &lt;code&gt;fork()&lt;/code&gt;. Since&lt;br /&gt;&lt;code&gt;fork()&lt;/code&gt; involved copying the entire address space of the process,&lt;br /&gt;and was therefore quite expensive, the &lt;code&gt;vfork()&lt;/code&gt; function was&lt;br /&gt;introduced (in 3.0BSD).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;However&lt;/strong&gt;, since &lt;code&gt;vfork()&lt;/code&gt; was introduced, the&lt;br /&gt;implementation of &lt;code&gt;fork()&lt;/code&gt; has improved drastically, most notably&lt;br /&gt;with the introduction of `copy-on-write', where the copying of the&lt;br /&gt;process address space is transparently faked by allowing both processes&lt;br /&gt;to refer to the same physical memory until either of them modify&lt;br /&gt;it. This largely removes the justification for &lt;code&gt;vfork()&lt;/code&gt;; indeed, a&lt;br /&gt;large proportion of systems now lack the original functionality of&lt;br /&gt;&lt;code&gt;vfork()&lt;/code&gt; completely. For compatibility, though, there may still be&lt;br /&gt;a &lt;code&gt;vfork()&lt;/code&gt; call present, that simply calls &lt;code&gt;fork()&lt;/code&gt; without&lt;br /&gt;attempting to emulate all of the &lt;code&gt;vfork()&lt;/code&gt; semantics.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;As a result, it is &lt;em&gt;very&lt;/em&gt; unwise to actually make use of any of the&lt;br /&gt;differences between &lt;code&gt;fork()&lt;/code&gt; and &lt;code&gt;vfork()&lt;/code&gt;. Indeed, it is&lt;br /&gt;probably unwise to use &lt;code&gt;vfork()&lt;/code&gt; at all, unless you know exactly&lt;br /&gt;&lt;em&gt;why&lt;/em&gt; you want to.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The basic difference between the two is that when a new process is&lt;br /&gt;created with &lt;code&gt;vfork()&lt;/code&gt;, the parent process is temporarily&lt;br /&gt;suspended, and the child process might borrow the parent's address&lt;br /&gt;space. This strange state of affairs continues until the child process&lt;br /&gt;either exits, or calls &lt;code&gt;execve()&lt;/code&gt;, at which point the parent&lt;br /&gt;process continues.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;This means that the child process of a &lt;code&gt;vfork()&lt;/code&gt; must be careful to&lt;br /&gt;avoid unexpectedly modifying variables of the parent process. In&lt;br /&gt;particular, the child process must &lt;strong&gt;not&lt;/strong&gt; return from the function&lt;br /&gt;containing the &lt;code&gt;vfork()&lt;/code&gt; call, and it must &lt;strong&gt;not&lt;/strong&gt; call&lt;br /&gt;&lt;code&gt;exit()&lt;/code&gt; (if it needs to exit, it should use &lt;code&gt;_exit()&lt;/code&gt;;&lt;br /&gt;actually, this is also true for the child of a normal &lt;code&gt;fork()&lt;/code&gt;).&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;Source*  http://www.unixguide.net/unix/programming/1.1.2.shtml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;During the fork() system call the Kernel makes a copy of the parent process�s address space and attaches it to the child process.But the vfork() system call do not makes any copy of the parent�s address space, so it is faster than the fork() system call. The child process as a result of the vfork() system call executes exec() system call. The child process from vfork() system call executes in the parent�s address space (this can overwrite the parent�s data and stack ) which suspends the parent process until the child process exits. &lt;/p&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;Source*  http://www.kyapoocha.com/unix-interview-questions/difference-between-the-fork-and-vfork-system-call/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;During the fork() system call the Kernel makes a copy of the parent process’s address space and attaches it to the child process.&lt;br /&gt;But the vfork() system call do not makes any copy of the parent’s address space, so it is faster than the fork() system call. The child process as a result of the vfork() system call executes exec() system call. The child process from vfork() system call executes in the parent’s address space (this can overwrite the parent’s data and stack ) which suspends the parent process until the child process exits.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;Source*   http://www.technicalinterview.info/difference-between-the-fork-and-vfork-system-call/&lt;/span&gt;&lt;br /&gt;&lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-5753567412367741639?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/5753567412367741639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=5753567412367741639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/5753567412367741639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/5753567412367741639'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2007/12/difference-betn-vfork-fork.html' title='Difference betn vfork &amp; fork'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-6156850524738187737</id><published>2007-12-22T17:48:00.000+05:30</published><updated>2007-12-22T17:58:45.093+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='make target'/><title type='text'>Kernel Compiletion (make target)</title><content type='html'>&lt;meta equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt;&lt;title&gt;&lt;/title&gt;&lt;meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)"&gt;&lt;meta name="CREATED" content="20071222;17183000"&gt;&lt;meta name="CHANGED" content="20071222;18021700"&gt;          &lt;style type="text/css"&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   TD P { margin-bottom: 0in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0in; color: rgb(153, 51, 153);"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Informational Targets&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;table style="color: rgb(0, 0, 0);" border="1" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="64*"&gt;  &lt;col width="192*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p&gt;&lt;span style="font-size:100%;"&gt;Target&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p&gt;&lt;span style="font-size:100%;"&gt;Description&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p&gt;                 &lt;/p&gt;    &lt;p&gt;&lt;span style="font-size:100%;"&gt;kernelrelease &lt;/span&gt;    &lt;/p&gt;    &lt;p&gt;                  &lt;/p&gt;    &lt;p&gt;                  &lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p&gt;&lt;span style="font-size:100%;"&gt;Displays the current kernel version, as determined    by the build system.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p&gt;                  &lt;/p&gt;    &lt;p&gt;&lt;span style="font-size:100%;"&gt;kernelversion &lt;/span&gt;    &lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p&gt;&lt;span style="font-size:100%;"&gt;Displays the current kernel version, as told by    the main Makefile. This differs from the kernelrelease target in    that it doesn’t use any additional version information based on    configuration options or localversion files.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in; color: rgb(153, 51, 153);"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Cleaning Targets&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;table style="color: rgb(0, 0, 0);" border="1" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="64*"&gt;  &lt;col width="192*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p&gt;&lt;span style="font-size:100%;"&gt;Target&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p&gt;&lt;span style="font-size:100%;"&gt;Description&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;clean&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Removes    most of the files generated by the kernel build system, but keeps    the kernel configuration.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;mrproper&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Removes    all of the generated files by the kernel build system, including    the configuration and some various backup files.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;distclean&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Does    everything &lt;span style=""&gt;mrproper    &lt;/span&gt;does and removes some editor backup and patch leftover    files.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in; color: rgb(153, 51, 153);" align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Configuration Targets&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;table style="color: rgb(0, 0, 0);" border="1" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="64*"&gt;  &lt;col width="192*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Target&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;config&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Updates    the current kernel configuration by using a line-oriented program.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;menuconfig&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Updates    the current kernel configuration by using a text-based menu    program.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;xconfig&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Updates    the current kernel configuration by using a QT-based graphical    program.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;gconfig&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Updates    the current kernel configuration by using a GTK+-based graphical    program.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;oldconfig&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Updates    the current kernel configuration by using the current &lt;span style=""&gt;.config    &lt;/span&gt;file and prompting for any new options that have been added    to the kernel.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;silentoldconfig&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Just    like &lt;span style=""&gt;oldconfig&lt;/span&gt;,    but prints nothing to the screen except when a question needs to    be answered.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;randconfig&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Generates    a new kernel configuration with random answers to all of the    different options.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;defconfig&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Generates    a new kernel configuration with the default answer being used for    all options. The default values are taken from a file located in    the &lt;span style=""&gt;arch/&lt;/span&gt;&lt;span style=""&gt;$ARCH&lt;/span&gt;&lt;span style=""&gt;/defconfig    &lt;/span&gt;file, where &lt;span style=""&gt;$ARCH&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;refers    to the specific architecture for which the kernel is being built.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;allmodconfig&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Generates    a new kernel configuration in which modules are enabled whenever    possible.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table style="color: rgb(0, 0, 0);" border="1" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="63*"&gt;  &lt;col width="193*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;allyesconfig&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Generates    a new kernel configuration with all options set to &lt;span style=""&gt;yes&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;allnoconfig&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Generates    a new kernel configuration with all options set to &lt;span style=""&gt;no&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in; color: rgb(153, 51, 153);" align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Build Targets&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;table style="color: rgb(0, 0, 0);" border="1" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="64*"&gt;  &lt;col width="192*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Target&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;all&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    all of the different targets needed for this kernel to be able to    be used. This includes both the modules and the static portion of    the kernel.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;vmlinux&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    just the static portion of the kernel, not any loadable modules.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;modules&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    all of the loadable kernel modules for this configuration.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;modules_install&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Installs    all of the modules into the specified location. If no location is    specified with the &lt;span style=""&gt;INSTALL_MODULE_PATH    &lt;/span&gt;environment variable, they are installed in the default    root&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;directory    of the machine.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;dir/&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    all of the files in the specified directory and in all    subdirectories below it.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;dir/file.[o|i|s]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    only the specified file.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;dir/file.ko&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    all of the needed files and links them together to form the    specified module.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;tags&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    all of the needed tags that most common text editors can use while    editing the source code.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;TAGS&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    all of the needed tags that most common text editors can use while    editing the source code.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="25%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;cscope&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="75%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    a &lt;span style=""&gt;cscope &lt;/span&gt;image,    useful in source tree searches, of the source tree for the    architecture specified by the configuration file (not all of the    kernel source files).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in; color: rgb(153, 51, 153);" align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Environment variables&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;table style="color: rgb(0, 0, 0); width: 654px; height: 478px;" border="1" cellpadding="4" cellspacing="0"&gt;  &lt;col width="25*"&gt;  &lt;col width="23*"&gt;  &lt;col width="209*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Variable&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="9%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Value&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="81%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;V&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="9%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="81%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;This    tells the build system to run in a quiet manner, showing only the    file that is currently being built, and not the entire command    that is running in order to build that file. This is the default    option for the build system.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;V&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="9%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="81%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;This    tells the build system to operate in a verbose way, showing the    full command that is being used to generate each of the specific    files.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;O&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="9%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;dir&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="81%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;This    tells the build system to locate all output files in the &lt;span style=""&gt;dir    &lt;/span&gt;directory, including the kernel configuration files. This    allows the kernel to be built from a read-only filesystem and have    the output placed in another location.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="9%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="81%"&gt;    &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;This    checks all C files that are about to be built with the &lt;span style=""&gt;sparse    &lt;/span&gt;tool, which detects common programming errors in the kernel    source files. &lt;span style=""&gt;sparse    &lt;/span&gt;can be downloaded using &lt;span style=""&gt;git    &lt;/span&gt;from&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=""&gt;git://git.kernel.org/pub/scm/devel/sparse/sparse.git&lt;/span&gt;.    Nightly snapshots can be found at&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=""&gt;http://www.codemonkey.org.uk/projects/git-snapshots/sparse/.    &lt;/span&gt;More information on how&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;to    use &lt;span style=""&gt;sparse &lt;/span&gt;can    be found in the &lt;span style=""&gt;Documentation/sparse.txt    &lt;/span&gt;file in the kernel source tree.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="9%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="81%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;This    forces all C files to be checked with the &lt;span style=""&gt;sparse    &lt;/span&gt;tool, even if they did not need to be built.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in; color: rgb(153, 51, 153);" align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Packaging Targets&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;table style="color: rgb(0, 0, 0);" border="1" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="52*"&gt;  &lt;col width="204*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Target&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;rpm&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    the kernel first and then packages it up as a RPM package that can    be installed.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;rpm-pkg&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    a source RPM package containing the base kernel.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;binrpm-pkg&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    a RPM package that contains a compiled kernel and modules.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;deb-pkg&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    a Debian package that contains the compiled kernel and modules.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;tar-pkg&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    a tarball that contains the compiled kernel and modules.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;targz-pkg&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    a &lt;span style=""&gt;gzip&lt;/span&gt;-compressed    tarball that contains the compiled kernel and modules.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;tarbz2-pkg&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    a &lt;span style=""&gt;bzip2&lt;/span&gt;-compressed    tarball that contains the compiled kernel and modules.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in; color: rgb(153, 51, 153);" align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Documentation Targets&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;table style="color: rgb(0, 0, 0);" border="1" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="52*"&gt;  &lt;col width="204*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Target&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;xmldocs&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    the kernel documentation as XML DocBook files.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;psdocs&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    the kernel documentation as PostScript files.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;pdfdocs&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    the kernel documentation as PDF files.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;htmldocs&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    the kernel documentation as HTML files.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;mandocs&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Builds    the kernel documentation as a set of manpages, which can then be    installed with the &lt;span style=""&gt;installmandocs    &lt;/span&gt;target.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; color: rgb(153, 51, 153);" align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Architecture-Specific Targets&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;table style="color: rgb(0, 0, 0);" border="1" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="52*"&gt;  &lt;col width="204*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Target&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;bzImage&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Creates    a compressed kernel image and places it in the    &lt;span style=""&gt;arch/i386/boot/bzImage    &lt;/span&gt;file. This is the default target for the i386 kernel build.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;install&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Installs    the kernel image using the distribution-specific    &lt;span style=""&gt;/sbin/installkernel    &lt;/span&gt;program. Note that this does not install the kernel    modules; that must be done with the &lt;span style=""&gt;modules_install    &lt;/span&gt;target.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;bzdisk&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Creates    a boot floppy image and writes it to the &lt;span style=""&gt;/dev/fd0    &lt;/span&gt;device.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;fdimage&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Creates    a boot floppy image and places it in the file    &lt;span style=""&gt;arch/i386/boot/fdimage&lt;/span&gt;.    The &lt;span style=""&gt;mtools &lt;/span&gt;package    must be present on your system in order for this to work properly.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;isoimage&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Creates    a CD-ROM boot image and places it in the file    &lt;span style=""&gt;arch/i396/boot/image.iso&lt;/span&gt;.    The &lt;span style=""&gt;syslinux    &lt;/span&gt;package must be present on your system in order for this to    work properly.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in; color: rgb(153, 51, 153);" align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Analysis Targets&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;table style="color: rgb(0, 0, 0);" border="1" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="52*"&gt;  &lt;col width="204*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Target&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;checkstack&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Generate    a list of the functions that use the most of the kernel stack    space.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="20%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;namespacecheck&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="80%"&gt;    &lt;p align="left"&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Generate    a list of all of the kernel symbols and their namespaces. This    will be a large list.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-6156850524738187737?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/6156850524738187737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=6156850524738187737' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6156850524738187737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/6156850524738187737'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2007/12/kernel-compiletion-make-target.html' title='Kernel Compiletion (make target)'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-2263697597691449428</id><published>2007-12-21T18:43:00.000+05:30</published><updated>2007-12-21T18:49:24.688+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Process States'/><title type='text'>Process States</title><content type='html'>R ------&gt;          running.&lt;br /&gt;S -----&gt;      sleeping in an interruptible wait.&lt;br /&gt;D ------&gt;  waiting in interruptible   disk sleep.&lt;br /&gt;Z ------&gt;   zombie.&lt;br /&gt;T ----&gt;     traced or stopped (on a signal).&lt;br /&gt;W ----&gt;  paging.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-2263697597691449428?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/2263697597691449428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=2263697597691449428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/2263697597691449428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/2263697597691449428'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2007/12/process-states.html' title='Process States'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-3055832613068944022</id><published>2007-12-03T13:14:00.002+05:30</published><updated>2008-06-06T12:23:53.477+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux signal'/><category scheme='http://www.blogger.com/atom/ns#' term='signal'/><title type='text'>Linux Signals</title><content type='html'>&lt;meta equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt;&lt;title&gt;&lt;/title&gt;&lt;meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)"&gt;&lt;meta name="CREATED" content="20071203;12455600"&gt;&lt;meta name="CHANGED" content="20071203;13172200"&gt;          &lt;style type="text/css"&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   TD P { margin-bottom: 0in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;table style="width: 615px; height: 2168px;" border="1" bordercolor="#000000" cellpadding="4" cellspacing="0"&gt;  &lt;col width="77*"&gt;  &lt;col width="94*"&gt;  &lt;col width="85*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;Signal&lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Description&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Default Action&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGABRT        &lt;/p&gt;    &lt;p&gt;         &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Generated by the abort system call  (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates and dumps core&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGALRM            &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;A timer signal generated by the alarm system call (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGBUS           &lt;/p&gt;    &lt;p&gt;        &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt; Process attempted to use mis-or&lt;/p&gt;    &lt;p&gt;unaligned memory (4.2 BSD)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates and dumps core.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGCHLD     &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt; A child has stopped or terminated  (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Ignore&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGCONT            &lt;/p&gt;    &lt;p&gt;                                     &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Process continues if it is stopped&lt;/p&gt;    &lt;p&gt;(POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Continue (ignore if process is not&lt;/p&gt;    &lt;p&gt;stopped)&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGEMT&lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Bus (hardware) error&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates and dumps core&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGFPE          &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Floating-point exception (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates and dumps core&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGHUP                &lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Process received a hang-up on its controlling terminal or its    controlling process died     &lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGILL           &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt; Illegal instruction (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates and dumps core&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGINFO           &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;The same as SIGPWR&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Ignore&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGINT          &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt; User generated a keyboard interrupt (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGIO           &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Asynchronous I/O received (4.2 BSD)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Ignore&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGIOT           &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;I/O trap. Same as SIGABRT (4.2 BSD)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt; Process terminates and dumps core&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGKILL            &lt;/p&gt;    &lt;p&gt;                    &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Kill (POSIX)     &lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates, cannot catch or ignore&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGLOST            &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Process lost a file lock&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGPIPE          &lt;/p&gt;    &lt;p&gt;            &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Process attempted to write to a pipe with no readers (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGPOLL             &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Pollable event occured (System V)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGPROF            &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;    &lt;p&gt;            &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Profiling alarm clock set on a segment of code expired (4.2    BSD)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGPWR           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;System detected a power failure (System V)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Ignore&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGQUIT            &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;User generated a keyboard quit  (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates and dumps core&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGSEGV            &lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Process attempted to reference  inaccessible memory (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates and dumps core&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGSTKFLT              &lt;/p&gt;    &lt;p&gt;             &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Process generated a stack fault ("blew  the stack")&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGSTOP           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Stop signal (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Stop, cannot catch or ignore&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGSYS          &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Bad argument to routine&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates and dumps core&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGTERM            &lt;/p&gt;    &lt;p&gt;          &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Process received a termination signal  (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGTRAP           &lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Process hit a trace or breakpoint trap (usually during    debugging) (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates and dumps core&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGTSTP            &lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;User generated a stop from the  keyboard (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Stop&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGTTIN            &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;    &lt;p&gt;            &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt; Process attempted to read from stdin  while running in the    background (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Stop&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGTTOU            &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;    &lt;p&gt;            &lt;/p&gt;    &lt;p&gt;            &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Process attempted to write Stop to stdout while running in the    background (POSIX)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGUNUSED              &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Unused signal     &lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGURG           &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Urgent condition on socket (4.2 BSD)     &lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Ignore&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGUSR1          &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;User-defined signal 1 (POSIX)     &lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGUSR2            &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;User-defined signal 2 (POSIX)     &lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGVTALRM             &lt;/p&gt;    &lt;p&gt;              &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Interval alarm clock expired (4.2 BSD)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt; Process terminates&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGWINCH     &lt;/p&gt;    &lt;p&gt;             &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;The size of a terminal window changed (4.3 BSD, Sun)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Ignore&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGXCPU            &lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Process exceeded the amount of CPU  time it can use (4.2 BSD)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates and dumps core&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="30%"&gt;    &lt;p&gt;SIGXFSZ             &lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;    &lt;p&gt;            &lt;/p&gt;   &lt;/td&gt;   &lt;td width="37%"&gt;    &lt;p&gt;Process tried to access or manipulate a   file larger than the    syste file size limit (4.2 BSD)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="33%"&gt;    &lt;p&gt;Process terminates and dumps core                                             &lt;br /&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);font-size:130%;" &gt;bits/signum.h&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-3055832613068944022?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/3055832613068944022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=3055832613068944022' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/3055832613068944022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/3055832613068944022'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2007/12/signal-description-default-action.html' title='Linux Signals'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-5250894745478025925</id><published>2007-12-03T11:54:00.000+05:30</published><updated>2007-12-07T16:12:53.550+05:30</updated><title type='text'>System Call Error Codes</title><content type='html'>&lt;meta equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt;&lt;title&gt;&lt;/title&gt;&lt;meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)"&gt;&lt;meta name="CREATED" content="20071204;17054500"&gt;&lt;meta name="CHANGED" content="20071207;16172700"&gt;          &lt;style type="text/css"&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   TD P { margin-bottom: 0in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;table border="1" bordercolor="#000000" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="27*"&gt;  &lt;col width="34*"&gt;  &lt;col width="195*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;Error No.&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;Error&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;Description&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;1&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EPERM          &lt;/p&gt;    &lt;p&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;The process lacks sufficient permissions to perform the    operation it is attempting to perform.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;2&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ENOENT           &lt;/p&gt;    &lt;p&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;The process is attempting to access a file or directory that    does not exist.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;3&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ESRCH          &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;No such process exists.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;4&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EINTR          &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A system call was interrupted.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;5&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EIO        &lt;/p&gt;    &lt;p&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;Some sort of (usually hardware-related) I/O error occurred.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;6&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ENXIO         &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;The I/O device or address does not exist.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;7&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;E2BIG          &lt;/p&gt;    &lt;p&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;The argument list passed to an exec call was too long.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;8&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ENOEXEC            &lt;/p&gt;    &lt;p&gt;&lt;br /&gt;   &lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;The format of a binary that a process attempted to execute was    incorrect  (such as trying to run a SPARC binary on an x86    processor).&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;9&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EBADF          &lt;/p&gt;    &lt;p&gt;          &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;An invalid file number was passed to a function that    opens/close/reads/writes a file.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;10&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ECHILD           &lt;/p&gt;    &lt;p&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;The process had no child process on which to wait.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;11&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EAGAIN           &lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A process attempted to perform non-blocking I/O when no input    was available.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;12&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ENOMEM           &lt;/p&gt;    &lt;p&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;Insufficient memory is available for the requested operation.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;13&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EACCESS            &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;Access to a file or other resource would be denied.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;14&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EFAULT           &lt;/p&gt;    &lt;p&gt;          &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A bad pointer (one that points to inaccessible memory) was    passed to a  system call.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;15&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ENOTBLK&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A process attempted to mount a device that is not a block    device.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;16&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EBUSY&lt;/p&gt;    &lt;p&gt;          &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A process attempted to mount a device that is already mounted    or attempted to unmount a filesystem currently in use.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;17&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EEXIST&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;Returned when you try to create a file that already exists.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;18&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EXDEV&lt;/p&gt;    &lt;p&gt;          &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt; Returned by the link call if the source and destination files    are not on the same filesystem.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;19&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ENODEV&lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A process attempted to use a filesystem type that the kernel    does not support.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;20&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ENOTDIR&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A directory component in a pathname is not, in fact, a    directory.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;21&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EISDIR&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;The filename component of a pathname is a directory, not a    filename.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;22&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EINVAL&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A process passed an invalid argument to a system call.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;23&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ENFILE&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;The system has reached the maximum number of open files it    supports.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;24&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EMFILE&lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;The calling process cannot open any more files because it has    already opened the maximum number allowed.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;25&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ENOTTY&lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A process attempted to do terminal style I/O on a device or    file that is not a terminal. This error is the famous "not a    typewriter" message.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;26&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ETXTBSY&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A process attempted to open a binary or library file that is    currently in use.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;27&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EFBIG&lt;/p&gt;    &lt;p&gt;          &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;The calling process attempted to write a file longer than the    system maximum or the process's resource limits permit.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;28&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ENOSPC&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A filesystem or device is full.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;29&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ESPIPE&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A process attempted to lseek on a non-seekable file.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;30&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EROFS&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A process attempted to write on a read-only filesystem.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;31&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EMLINK&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;The file being linked has reached the maximum number of links    allowed.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;32&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EPIPE&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;The read end of a pipe is closed and SIGPIPE is being ignored    or trapped.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;33&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;EDOM&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;Set by math functions when an argument exceeds the function's    domain.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;34&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ERANGE&lt;/p&gt;    &lt;p&gt;           &lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;Set by math functions when the result of the function can't be    represented by the function's return type.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;36&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ENAMETOOLONG&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A path or filename is too long.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;38&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ENOSYS&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;The system call invoked has not been implemented.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;39&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ENOTEMPTY&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A directory on which rmdir was called is not empty.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;40&lt;/p&gt;   &lt;/td&gt;   &lt;td width="13%"&gt;    &lt;p&gt;ELOOP&lt;/p&gt;   &lt;/td&gt;   &lt;td width="76%"&gt;    &lt;p&gt;A path involves too long a chain of symbolic links.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-5250894745478025925?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/5250894745478025925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=5250894745478025925' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/5250894745478025925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/5250894745478025925'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2007/12/system-call-error-codes.html' title='System Call Error Codes'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-3132226231088654826</id><published>2007-12-01T14:46:00.000+05:30</published><updated>2007-12-22T11:55:14.341+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='manpages'/><title type='text'>Manpages</title><content type='html'>&lt;style type="text/css"&gt;!--   @page { size: 8.5in 11in; margin: 0.79in }   TD P { margin-bottom: 0in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;   &lt;table border="1" bordercolor="#000000" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="27*"&gt;  &lt;col width="229*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;Number     &lt;/p&gt;   &lt;/td&gt;   &lt;td width="90%"&gt;    &lt;p&gt; Description&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;1&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90%"&gt;    &lt;p&gt;Executable programs or shell commands.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;2&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90%"&gt;    &lt;p&gt;System calls (functions provided by the kernel)&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;3&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90%"&gt;    &lt;p&gt;Library calls (functions within program libraries)&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;4&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90%"&gt;    &lt;p&gt;Special files (usually found in /dev)&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;5&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90%"&gt;    &lt;p&gt;File formats and conventions (/etc/fstab, /proc)&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;6&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90%"&gt;    &lt;p&gt;Games&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;7&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90%"&gt;    &lt;p&gt;Miscellaneous (including macro packages and conventions), for    example, man(7), groff(7)&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;8&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90%"&gt;    &lt;p&gt;System administration commands (usually only for root)&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="10%"&gt;    &lt;p&gt;9&lt;/p&gt;   &lt;/td&gt;   &lt;td width="90%"&gt;    &lt;p&gt;Kernel routines (nonstandard)&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6890082870695526561-3132226231088654826?l=beparas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beparas.blogspot.com/feeds/3132226231088654826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6890082870695526561&amp;postID=3132226231088654826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/3132226231088654826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6890082870695526561/posts/default/3132226231088654826'/><link rel='alternate' type='text/html' href='http://beparas.blogspot.com/2007/12/manpages.html' title='Manpages'/><author><name>beparas</name><uri>http://www.blogger.com/profile/04931146496103981254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6890082870695526561.post-7377018413563741029</id><published>2007-11-26T20:01:00.000+05:30</published><updated>2007-11-27T12:46:54.827+05:30</updated><title type='text'></title><content type='html'>Applying Patches To The Linux Kernel&lt;br /&gt;  ------------------------------------&lt;br /&gt;&lt;br /&gt;  Original by: Jesper Juhl.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A frequently asked question on the Linux Kernel Mailing List is how to apply&lt;br /&gt;a patch to the kernel or, more specifically, what base kernel a patch for&lt;br /&gt;one of the many trees/branches should be applied to. Hopefully this document&lt;br /&gt;will explain this to you.&lt;br /&gt;&lt;br /&gt;In addition to explaining how to apply and revert patches, a brief&lt;br /&gt;description of the different kernel trees (and examples of how to apply&lt;br /&gt;their specific patches) is also provided.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What is a patch?&lt;br /&gt;---&lt;br /&gt;A patch is a small text document containing a delta of changes between two&lt;br /&gt;different versions of a source tree. Patches are created with the `diff'&lt;br /&gt;program.&lt;br /&gt;To correctly apply a patch you need to know what base it was generated from&lt;br /&gt;and what new version the patch will change the source tree into. These&lt;br /&gt;should both be present in the patch file metadata or be possible to deduce&lt;br /&gt;from the filename.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;How do I apply or revert a patch?&lt;br /&gt;---&lt;br /&gt;You apply a patch with the `patch' program. The patch program reads a diff&lt;br /&gt;(or patch) file and makes the changes to the source tree described in it.&lt;br /&gt;&lt;br /&gt;Patches for the Linux kernel are generated relative to the parent directory&lt;br /&gt;holding the kernel source dir.&lt;br /&gt;&lt;br /&gt;This means that paths to files inside the patch file contain the name of the&lt;br /&gt;kernel source directories it was generated against (or some other directory&lt;br /&gt;names like "a/" and "b/").&lt;br /&gt;Since this is unlikely to match the name of the kernel source dir on your&lt;br /&gt;local machine (but is often useful info to see what version an otherwise&lt;br /&gt;unlabeled patch was generated against) you should change into your kernel&lt;br /&gt;source directory and then strip the first element of the path from filenames&lt;br /&gt;in the patch file when applying it (the -p1 argument to `patch' does this).&lt;br /&gt;&lt;br /&gt;To revert a previously applied patch, use the -R argument to patch.&lt;br /&gt;So, if you applied a patch like this:&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;    patch -p1 &lt; ../patch-x.y.z&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can revert (undo) it like this:&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;    patch -R -p1 &lt; ../patch-x.y.z&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;How do I feed a patch/diff file to `patch'?&lt;br /&gt;---&lt;br /&gt;This (as usual with Linux and other UNIX like operating systems) can be&lt;br /&gt;done in several different ways.&lt;br /&gt;In all the examples below I feed the file (in uncompressed form) to patch&lt;br /&gt;via stdin using the following syntax:&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;    patch -p1 &lt;&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;If you just want to be able to follow the examples below and don't want to&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;know of more than one way to use patch, then you can stop reading this&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;section here.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Patch can also get the name of the file to use via the -i argument, like&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;this:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;    patch -p1 -i path/to/patch-x.y.z&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;If your patch file is compressed with gzip or bzip2 and you don't want to&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;uncompress it before applying it, then you can feed it to patch like this&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;instead:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;    zcat path/to/patch-x.y.z.gz | patch -p1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;    bzcat path/to/patch-x.y.z.bz2 | patch -p1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;If you wish to uncompress the patch file by hand first before applying it&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(what I assume you've done in the examples below), then you simply run&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;gunzip or bunzip2 on the file -- like this:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;    gunzip patch-x.y.z.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;    bunzip2 patch-x.y.z.bz2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Which will leave you with a plain text patch-x.y.z file that you can feed to&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;patch via stdin or the -i argument, as you prefer.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;A few other nice arguments for patch are -s which causes patch to be silent&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;except for errors which is nice to prevent errors from scrolling out of the&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;screen too fast, and --dry-run which causes patch to just print a listing of&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;what would happen, but doesn't actually make any changes. Finally --verbose&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;tells patch to print more information about the work being done.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Common errors when patching&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;---&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;When patch applies a patch file it attempts to verify the sanity of the&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;file in different ways.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Checking that the file looks like a valid patch file &amp;amp; checking the code&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;around the bits being modified matches the context provided in the patch are&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;just two of the basic sanity checks patch does.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;If patch encounters something that doesn't look quite right it has two&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;options. It can either refuse to apply the changes and abort or it can try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;to find a way to make the patch apply with a few minor changes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;One example of something that's not 'quite right' that patch will attempt to&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;fix up is if all the context matches, the lines being changed match, but the&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;line numbers are different. This can happen, for example, if the patch makes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a change in the middle of the file but for some reasons a few lines have&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;been added or removed near the beginning of the file. In that case&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;everything looks good it has just moved up or down a bit, and patch will&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;usually adjust the line numbers and apply the patch.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Whenever patch applies a patch that it had to modify a bit to make it fit&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;it'll tell you about it by saying the patch applied with&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;'fuzz'&lt;/span&gt;.&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;You should be wary of such changes since even though patch probably got it&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;right it doesn't /always/ get it right, and the result will sometimes be&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;wrong.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;When patch encounters a change that it can't fix up with fuzz it rejects it&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;outright and leaves a file with a .rej extension (a reject file).&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;You can&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;read this file to see exactly what change couldn't be applied, so you can&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;go fix it up by hand if you wish.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;If you don't hav
