|
This article includes hints and tips for performing various administrative tasks
and changing your system without rebooting. Linux provides various ways
to change underlying operating system values and settings while keeping the system
up and running. These come in two basic forms, those that are general to all Linux
systems and are provided in the Linux kernel (you can find more information about
the Linux kernel and download kernel source at the Linux Kernel Archives; see
Resources for a link), and those that are distribution
specific and provided by the vendor. This article deals with both types.
Note: This article is written for a 2.4-level kernel. Some of the options
and features may be different for other kernel versions.
Changing running kernel parameters
Linux provides a really neat way for administrators to change the kernel while
the system is running and without the need to reboot the kernel/system. This is
done with a virtual filesystem called /proc. Linux Gazette provides
one of the simplest and easiest references on /proc I have seen.
(See Resources for a link.) Very basically, the /proc filesystem
gives you a view into the running kernel, which can be useful for monitoring performance,
discovering system information, finding out how the system is configured, and
changing that configuration. This filesystem is called a virtual filesystem,
because it is not really a filesystem at all. It's just a map provided by the
kernel that is attached to your usual filesystem structure to give you access
to it.
Join our new forums at WebProWorld! Ask your toughest questions or help your peers
solve their issues. |
|
The fact that we have some way of changing the running kernel parameters while
the system is up and running gives the system administrator great power and flexibility
in changing kernel settings. This sort of implementation was an inspired idea
on the part of the Linux kernel developers. But can too much power be a bad thing?
Sometimes. If you are going to change anything in the /proc filesystem,
you must make sure that you know what you are changing and what effect
this will have on the system. These are really useful techniques, but a wrong
move can give you some rather undesired consequences. If you are new to this sort
of thing or are not sure what effect one of your changes will have, practice on
a machine that is not important to you or your business.
How to make changes
First, think about how not to make changes to the kernel. There are two
good reasons why you should not just jump into the /proc filesystem,
open a file in your text editor, make a bunch of changes, and save the file back
out again. These are:
- Data integrity: All of these files represent the running system, and since
the kernel may change any of these files at any time, if you open an editor and
change some data while the system is changing it underneath you, whatever you
save back is unlikely to be what the kernel is expecting.
- Virtual files: All of these files do not actually exist. How would the saved
data be synchronized, etc.?
The answer to making changes to any of these files, therefore, is not to use an
editor. When making changes to anything at all in the /proc filesystem,
you should use the echo command and redirect the output from the
command line into your chosen files under /proc. For example:
echo "Your-New-Kernel-Value" > /proc/your/file
Similarly, if you wish to view information from /proc, you should
either use a command that is designed for the purpose or use the command line
cat command.
What to change
You do not need to be a kernel hacker to get good use out of /proc,
and a basic understanding of the structure of this filesystem will aid you greatly.
You may find that you don't need to know about anything in /proc,
until the day a user asks you for a certain bit of functionality that makes you
glad you bothered to learn where to look to make changes. The /proc
filesystem helps the system administrator in this respect via its structure and
file permissions.
Each file in /proc has a very particular set of file permissions
assigned to it and will be owned by a particular user ID. This is very carefully
done so that the correct functionality is presented to the administrator and to
the users. The following list summarizes what particular permissions may do on
individual files:
- Read-only: File is not changeable by any user; used for presenting system
information
- Root-write: If a file is writeable in
/proc, it is usually writeable
only by the root user
- Root-read: Some files may not be viewable to normal system users, only to
root
- Other: You may find combinations other than the common three, above, for various
reasons
A very broad generalization about /proc is that you will find most
of it read-only except for the /proc/sys directory. This directory
is the one that holds most kernel parameters (rather than information) and is
the one that is designed to be changed while the system is running. As a result,
this is the directory that this article will look mainly at.
The last thing to know about learning what to change in /proc
is what you should actually be writing to these files. You will notice as you
look at various files in /proc that some of them are human readable
and some are data files. The data files can still be read by using specific utilities
such as top, lspci, and free. You will
also notice that the human-readable files take two different formats: some are
binary switches and others contain more information. The binary switch files only
contain a zero (off) or a one (on) for that particular kernel feature.
Click
Here to Read the Full Article
First published by IBM developerWorks at http://www.ibm.com/developerWorks.
About the Author:
Graham graduated from The University of Exeter with a B.Sc. (Honors) degree in
Computer Science with Management Science in July 2000. He joined IBM as an IT
support worker in September 2000 with no previous experience and started learning
Linux. One year later, in September 2001, he was certified as a Red Hat Certified
Engineer. His work and personal interests gave him experience with many different
versions of Linux running on a wide range of platforms to support the development
community at the IBM Hursley Laboratory
in the UK. Recently, he has taken up writing articles about Linux, his first and
only other publication being a guide for the Linux
Documentation Project.
Read this newsletter at: http://www.sysadminnews.com/2003/0807.html |
|