- Introduction
- Abbreviated Boot
- The Boot Process
- Startup and Run Levels
- Initialization Scripts
- Runlevel Scripts
- Login Process
- Bash Shell
- Filesystems
- LILO, Kernel and Root Filesystem
- The Kernel
- Passwords, Users, Groups, and Quotas
- The Environment
- The /etc/sysconfig directory
- The /proc filesystem
- Process Control
- Devices
- Daemons Services
- Inetd and Network Services
- Programs and Libraries
- Security and PAM
- The printer services
- Mouse support with gpm
- Mail
- News
- UUCP
- LDAP
- NFS and RPC
- Samba, NetBIOS, WINS, nmbd
- Identd (auth)
- Telnet and FTP
- Apache web server
- DNS and named
- How X Works
- X Scripts
- Support for Text
- Keymapping for Programs
- Keycode Table
- Example Keymap File
- Terminfo Commands
- VT100 ESC sequences
- Kernel Revisited
- Configuration Files
- Credits
|
Linux System Configuration and the proc filesystem
The /proc filesystem
The /proc filesystem is used to store many system configuration parameters. It is a virtual filesystem that resides in the kernels memory. Some of the areas in this filesystem cannot be written to by the root user including /proc/sys. Much information here is based on the proc man page. Fro more information refer to that page. Elements of the proc filesystem include:
- Numerical subdirectories exist for every process. The following files or directories are contained in each processes directory:
- cmdline - The command line the process was invoked with
- cwd - A link to the current working directory of the process
- environ - The process environment
- exe - A pointer appearing as a symbolic link to the binary that was executed.
- fd - A subdirectory with one entry per file that the process has open. 0-std input, 1-std output, 2-std err.
- maps - Contains the currently mapped memory regions and their access permissions. The format is:
address perms offset dev idnode filename
08048000-0804e000 r-xp 00000400 0302 192233 /sbin/init
0804e000-0804f000 rw-p 00005000 0302 192233 /sbin/init
Permission s=private, s=shared
- mem - The memory of the process that accesses the /dev/mem device
- root - Points to the root filesystem
- stat - Status information about the process used by the ps(1) command. Fields are:
- pid - Process id
- comm - The executable filename
- state - R (running), S(sleeping interruptable), D(sleeping), Z(zombie), or T(stopped on a signal).
- ppid - Parent process ID
- pgrp - Process group ID
- session - The process session ID.
- tty - The tty the process is using
- tpgid - The process group ID of the owning process of the tty the current process is connected to.
- flags - Process flags, currently with bugs
- minflt - Minor faults the process has made
- cminflt - Minor faults the process and its children have made.
- majflt
- cmajflt
- utime - The number of jiffies (processor time) that this process has been scheduled in user mode
- stime - in kernel mode
- cutime - This process and its children in user mode
- cstime - in kernel mode
- counter - The maximum time of this processes next time slice.
- priority - The priority of the nice(1) (process priority) value plus fifteen.
- timeout - The time in jiffies of the process's next timeout.
- itrealvalue - The time in jiffies before the next SIGALRM is sent to the process because of an internal timer.
- starttime - Time the process started after system boot
- vsize - Virtual memory size
- rlim - Current limit in bytes of the rss of the process.
- startcode - The address above which program text can run.
- endcode - The address below which program text can run.
- startstack - The address of the start of the stack
- kstkesp - The current value of esp for the process as found in the kernel stack page.
- kstkeip - The current 32 bit instruction pointer, EIP.
- signal - The bitmap of pending signals
- blocked - The bitmap of blocked signals
- sigignore - The bitmap of ignored signals
- sigcatch - The bitmap of catched signals
- wchan - The channel in which the process is waiting. The "ps -l" command gives somewhat of a list.
- apm - A file containing the string "1.9 1.2 0x07 0x01 0xff 0x80 -1% -1 ?" on my system.
- bus - A directory
- cmdline - The command line at system startup. My file contains "auto BOOT_IMAGE=rhl ro root=302".
- cpuinfo - CPU architecture information
- devices - Text listing of major numbers and device groups
- dma - A list of ISA direct memory access channels in use.
- fb - On my system, this file is empty
- filesystems - A text listing of the filesystems compiled into the kernel. The file on my system:
ext2
nodev proc
iso9660
nodev autofs
nodev devpts
vfat
nodev ncpfs
- fs - A directory
- nfs - A directory
- exports - A file containing information similar to that in the /etc/exports file. My listing:
# Version 1.0
# Path Client(Flags) # IPs
/tftpboot/lts/ltsroot linux1(ro,no_root_squash,async,wdelay) # 192.168.200.201
/tftpboot/lts/ltsroot linux3(ro,no_root_squash,async,wdelay) # 192.168.200.203
/tftpboot/lts/ltsroot linux2(ro,no_root_squash,async,wdelay) # 192.168.200.202
- time-diff-margin - A file containing a numerical string value. On my system it is "10".
- ide - A directory containing information on ide devices.
- interrupts - The number of interrupts per IRQ.
- ioports - A list of currently registered input-output port regions that are in use.
- kcore - Represents the physical memory of the system stored in the core format.
- kmsg - This file can be used to log system messages.
- ksyms - Holds the kernel exported symbol definitions used by the modules(X) tools to dynamically link and bind loadable modules.
- loadavg - Load average numbers
- malloc - Present if CONFIGDEBUGMALLOC was defined during kernel compilation.
- locks - The file on my system:
1: POSIX ADVISORY WRITE 853 03:02:260062 0 2147483647 c228ba40 00000000 c228b5c0 00000000 00000000
2: POSIX ADVISORY WRITE 766 03:02:324064 0 0 c228b5c0 c228ba40 c228b560 00000000 00000000
3: POSIX ADVISORY WRITE 755 03:02:323503 0 0 c228b560 c228b5c0 c3ef6de0 00000000 00000000
4: POSIX ADVISORY WRITE 735 03:02:260034 0 2147483647 c3ef6de0 c228b560 c3ef6ba0 00000000 c3103f44
4: -> POSIX ADVISORY WRITE 734 03:02:260034 0 2147483647 c3103f44 00000000 00000000 00000000 c2837f44
4: -> POSIX ADVISORY WRITE 733 03:02:260034 0 2147483647 c2837f44 00000000 00000000 00000000 c2345f44
4: -> POSIX ADVISORY WRITE 737 03:02:260034 0 2147483647 c2345f44 00000000 00000000 00000000 c233bf44
4: -> POSIX ADVISORY WRITE 738 03:02:260034 0 2147483647 c233bf44 00000000 00000000 00000000 c2331f44
4: -> POSIX ADVISORY WRITE 739 03:02:260034 0 2147483647 c2331f44 00000000 00000000 00000000 c2325f44
4: -> POSIX ADVISORY WRITE 740 03:02:260034 0 2147483647 c2325f44 00000000 00000000 00000000 c2305f44
4: -> POSIX ADVISORY WRITE 743 03:02:260034 0 2147483647 c2305f44 00000000 00000000 00000000 c230ff44
4: -> POSIX ADVISORY WRITE 742 03:02:260034 0 2147483647 c230ff44 00000000 00000000 00000000 c231bf44
4: -> POSIX ADVISORY WRITE 741 03:02:260034 0 2147483647 c231bf44 00000000 00000000 00000000 c3ef6de0
5: FLOCK ADVISORY WRITE 0 03:02:51547 0 2147483647 c3ef6ba0 c3ef6de0 c3ef6a80 00000000 00000000
6: FLOCK ADVISORY WRITE 0 03:02:259912 0 2147483647 c3ef6a80 c3ef6ba0 c3ef6a20 00000000 00000000
7: POSIX ADVISORY WRITE 459 03:02:259911 0 2147483647 c3ef6a20 c3ef6a80 00000000 00000000 00000000
- mdstat - The file on my system:
Personalities :
read_ahead not set
md0 : inactive
md1 : inactive
md2 : inactive
md3 : inactive
- meminfo - Used by free(1) to report memory usage.
- misc - The file on my system:
135 rtc
134 apm
1 psaux
- modules - A list of kernel modules loaded by the system
- mounts - Shows mounted filesystems. Shows device, mount point, filesystem type, permissions, and two flags. The file on my system:
/dev/root / ext2 rw 0 0
/proc /proc proc rw 0 0
/dev/hdb1 /data vfat rw 0 0
/dev/hda1 /dos vfat rw 0 0
/dev/hda3 /slackw ext2 rw 0 0
none /dev/pts devpts rw 0 0
automount(pid640) /mnt autofs rw 0 0
ENG_SRV/MYUSER /eng_srv ncpfs rw 0 0
- mtrr - The file on my system:
reg00: base=0x000a0000 ( 0MB), size= 128kB: write-combining, count=1
reg01: base=0x000c0000 ( 0MB), size= 256kB: uncachable, count=1
reg03: base=0x000a8000 ( 0MB), size= 32kB: write-combining, count=1
reg07: base=0x00000000 ( 0MB), size= 64MB: write-back, count=1
- net - Various network pseudo files. The netstat(8) command suite provides cleaner access to these files. Files:
- arp - The kernel address resolution protocol table.
- dev - Network device status information
- ipx
- ipx_route
- rarp - used to provide rarp(8) services.
- raw - A dump of the RAW socket table
- route - Looks like route(8).
- snmp - Holds the ASCII databases used for the IP, ICMP, TCP, and UDP management information bases for an snmp agent.
- tcp - A dump of the TCP socket table.
- udp - A dump of the UDP socket table
- unix - Lists UNIX domain sockets and their status.
- partitions - Lists the partitions and their device major and minor numbers. The file on my system:
major minor #blocks name
3 0 6250230 hda
3 1 208813 hda1
3 2 3068415 hda2
3 3 2843505 hda3
3 4 128520 hda4
3 64 6250230 hdb
3 65 6249253 hdb1
22 64 1073741823 hdd
- pci - A listing of all PCI devices that the system is aware of.
- rtc - A file containing clock information. The file on my system:
rtc_time : 20:15:03
rtc_date : 2000-05-07
rtc_epoch : 1900
alarm : 16:29:44
DST_enable : no
BCD : yes
24hr : yes
square_wave : no
alarm_IRQ : no
update_IRQ : no
periodic_IRQ : no
periodic_freq : 1024
batt_status : okay
- scsi - A directory with scsi files and driver directories.
- scsi - A list of all scsi devices known to the kernel
- drivername - Various scsi driver brand names
- self - Refers to the /proc filesystem.
- slabinfo - The file on my system
slabinfo - version: 1.0
kmem_cache 29 42
pio_request 0 0
tcp_tw_bucket 0 42
tcp_bind_bucket 41 127
tcp_open_request 0 0
skbuff_head_cache 64 147
sock 150 242
dquot 0 0
filp 1505 1512
signal_queue 0 0
buffer_head 566 1428
mm_struct 65 93
vm_area_struct 2527 3528
dentry_cache 4704 4743
files_cache 72 99
uid_cache 4 127
size-131072 0 0
size-65536 0 0
size-32768 0 0
size-16384 16 16
size-8192 0 1
size-4096 3 8
size-2048 151 176
size-1024 20 32
size-512 37 72
size-256 33 70
size-128 546 700
size-64 192 210
size-32 1080 1197
slab_cache 78 126
- stat - kernel statistics subdirectory
- cpu - Jiffies spent in user mode, user mode with low priority, system mode, and idle.
- disk - Four disk entries not yet implemented
- page - The number of pages the system paged in and out.
- swap - Swap pages that have been brought in and out.
- intr - The number of interrupts received form the system boot
- ctxt - The number of context switches that the system underwent.
- btime - Boot time in seconds since Jan 1, 1970.
- swaps - A file defining swap partitions. The file on my system:
Filename Type Size Used Priority
/dev/hda4 partition 128516 7600 -1
- sys - Directory corresponding to kernel variables
- debug
- dev
- fs
- kernel
- domainname
- file-max
- file-nr
- hostname
- inode-max
- inode-nr
- osrelease
- ostype
- panic
- real-root-dev
- securelevel
- version
- net
- proc
- sunrpc
- vm
- tty
- uptime
- version
|
|
The sysctl tool
This tool is worth mentioning in this section since it is used to manipulate kernel parameters. If you type "sysctl -a |more" you will see a long list of kernel parameters. You can use this sysctl program to modify these parameters. However, I have been unable to add new parameters.
|
|