system control mechanisms - santa monica...

18
1 © David Morgan 2005-17 System control mechanisms System control mechanisms David Morgan © David Morgan 2005-17 System control System control - boot and after boot and after passing kernel boot parameters sysconfig: boot process control /proc and sysctrl: tuning kernel config others – controlling default interface – running custom code at boot – setting variables at boot that persist

Upload: doanliem

Post on 27-Mar-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

1

© David Morgan 2005-17

System control mechanismsSystem control mechanisms

David Morgan

© David Morgan 2005-17

System control System control -- boot and afterboot and after

� passing kernel boot parameters

� sysconfig: boot process control

� /proc and sysctrl: tuning kernel config

� others

– controlling default interface

– running custom code at boot

– setting variables at boot that persist

Page 2: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

2

© David Morgan 2005-17

Kernel boot parametersKernel boot parameters

� passed to kernel, like command line args

� influence kernel’s behavior

� supplied by

– bootloader, from its config file

– user, at loader’s boot prompt

© David Morgan 2005-17

Boot parameter examplesBoot parameter examples

� processed by kernel

init=/bin/bash run bash as initial process

root=/dev/hda2 mount hda2 at top of tree

ro or rw mount filesystem read-only/read-write

many more

� used to set variables

foo=bar create variable foo with value bar

� passed to the init process (kernel doesn’t process)

single boot into runlevel 1 (single user mode)

5 boot into runlevel 5

Page 3: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

3

© David Morgan 2005-17

Via GRUB (Via GRUB (bootloaderbootloader) ) configconfig filefile

says GRUB will pass these to

kernel for you upon boot(edit to your liking)

says that’s

Indeed what

happened

(grub.cfg tells grub what to do when it runs; don’t edit it. Instead, you edit

/etc/default/grub, then run grub2-mkconfig. It applies your changes to latter

file, to former file)

© David Morgan 2005-17

Boot process control:Boot process control:

/etc//etc/sysconfigsysconfig

� boot process runs scripts (eg, rc.sysinit)

� scripts pick up parameter values from files…

� …to incorporate into their commands

� such files centralized in /etc/sysconfig

� edit them to feed desired values to scripts

Page 4: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

4

© David Morgan 2005-17

Boot process runs scriptsBoot process runs scripts

kernel

init rc.sysinit

rc

mingetty login

shell

kerneldnetwork

nfsfsrandom

syslogrc.local

profile.bash_profile

Starring roles

Supporting roles

Cast of Thousands

© David Morgan 2005-17

Scripts pick up values from filesScripts pick up values from files……

Initialization scripts: /etc/rc.d/init.d/network

/etc/sysconfig/network-scripts/ifup

/etc/sysconfig/network

/etc/sysconfig/network-scripts/ifcfg-ethX

informed by

Initialization script: /etc/profile.d/lang.sh

/etc/locale.conf

informed by

Page 5: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

5

© David Morgan 2005-17

……to incorporate in their commandsto incorporate in their commands

Initialization script: /etc/rc.d/init.d/network, calls

/etc/sysconfig/ifup, calls

/etc/sysconfig/ifup-eth, contains

ip route replace default via ${GATEWAY}...

NETWORKING=yes

FORWARD_IPV4=no

GATEWAY=192.168.3.2

etc/sysconfig/network

becomes gateway

© David Morgan 2005-17

/etc//etc/sysconfigsysconfig filesfiles

� keyboard – keyboard type

� mouse – mouse type

� i18n – localization (nationalization) info

� network – global network options

� networkscripts/ifcfg-eth0 – NIC specific info

Page 6: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

6

© David Morgan 2005-17

Exercising Exercising bootupbootup control with control with sysconfigsysconfig

� edit the /etc/sysconfig/* files yourself

� use admin tools that do the same thing, e.g.

– /usr/sbin/system-config-network (Fedora)

– webmin

© David Morgan 2005-17

FedoraFedora’’s systems system--configconfig--networknetwork

Front-end to the config files

goes into

/etc/sysconfig/network,

becomes gateway

Page 7: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

7

© David Morgan 2005-17

Some Some sysconfigsysconfig controls moved to controls moved to systemdsystemd

� http://0pointer.de/blog/projects/on-etc-sysinit.html

– by systemd author Lennert Pottering

– rationale for “fading out” sysconfig

© David Morgan 2005-17

Fundamental kernel data structuresFundamental kernel data structures

� used by kernel to run the show

� dynamically maintained in memory, eg:

– the task array and process descriptors

– the mem_map array and page frame descriptors

– file objects

� deep, not normally visible

Page 8: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

8

© David Morgan 2005-17

/proc /proc -- window into kernelwindow into kernel

� A pseudo directory

� dynamic, in RAM

� exposes content of kernel data structures as ifcontent of files

� accessible through filesystem interface, eg:

– ls /proc/[0-9]*

– cat /proc/cpuinfo

– echo 1 > /proc/sys/net/ipv4/ip_forward

© David Morgan 2005-17

WhatWhat’’s available?s available?

various files

various directories (global & per-process)

process 1945 is the ssh daemon

Page 9: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

9

© David Morgan 2005-17

/proc/ per/proc/ per--process subdirectoriesprocess subdirectories

� one for each running process

� reflect information from process descriptors

© David Morgan 2005-17

processes

(4 processes)

process’s code

process’s data

kernel space (OS)

user

space

process descriptor

table/array

(4 descriptors)

various per-process

structures/buffers

Process table holds descriptorsProcess table holds descriptors

Page 10: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

10

© David Morgan 2005-17

identifiers , state , resources

process descriptor table

a descriptor, for a single process; contains or points to that process’s attributes

• my process id number

• user account associated with me

• id number of my parent process

• id numbers of my children

• my state

• readiness to run

• run priority

• CPU’s state

•flags

• register values

• files I hold open

• memory locations I occupy

Process descriptor tracks a processProcess descriptor tracks a process

© David Morgan 2005-17

Process descriptor in Process descriptor in linuxlinux

Understanding the

Linux Kernel,

Bovet & Cesati

Page 11: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

11

© David Morgan 2005-17

/proc global subdirectories/proc global subdirectories

� bus/ - available buses

� driver/ - specific drivers

� fs/ - exported filesystems (“shared folders”)

� ide/ - ide devices, like disks

� irq/ - irq

� net/ - network parameters

� sys/ - parameters for you to set/query

� sysvipc/ - interprocess communication

� tty/ - terminals

The /proc/sys/ directory is different from

others in /proc/ because it not only

provides information about the system

but also allows the system administrator

to immediately enable and disable kernel

features.

RedHat Enterprise Linux Reference

Guide

© David Morgan 2005-17

/proc/sys subdirectories/proc/sys subdirectories

� dev/ - device specific information

� fs/ - filesystem parameters

� kernel/ - global kernel parameters

� net/ - networking parameters

� vm/ - virtual memory, buffer, cache management

Page 12: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

12

© David Morgan 2005-17

Methods of access to /proc infoMethods of access to /proc info

� filesystem interface (normal file commands)

� sysctl command

� utilites that reflect/employ /proc , e.g.

uptimerouteps

lspciifconfigfree

arpnetstatprocinfo

© David Morgan 2005-17

Utilities report on /procUtilities report on /proc, e.g. , e.g. psps

…number of

processes reported by ps

number of /proc’s

process subdirectories, and…

are the same (not by accident)

Page 13: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

13

© David Morgan 2005-17

Example: controlling forwardingExample: controlling forwarding

� Machine-to-machine forwarding governed by “file”

/proc/sys/net/ipv4/ip_forward

� whose content acts as a switch

– If 1, forwarding is on

– If 0, forwarding is off

© David Morgan 2005-17

Doing it with file operationsDoing it with file operations

� To query current state (read):

cat /proc/sys/net/ipv4/ip_forward

� To set forwarding on (write):

echo 1 > /proc/sys/net/ipv4/ip_forward

Page 14: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

14

© David Morgan 2005-17

Doing it with Doing it with sysctlsysctl

command manuallycommand manually

� To query current state (read):

sysctl net.ipv4.ip_forward

� To set forwarding on (write):

sysctl –w net.ipv4.ip_forward=1

© David Morgan 2005-17

Having it done withHaving it done with

automated automated sysctlsysctl commandcommand

� edit /etc/sysctl.conf

� insert “variable=value” pairs

� loaded manually by sysctl -p

� or upon boot (via “sysctl -p” in rc.sysinit)

� to have forwarding turned off insert line:

net.ipv4.ip_forward=0

Page 15: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

15

© David Morgan 2005-17

Available Available paramtersparamters and their valuesand their values

� sysctl -a to list all

� sysctl kernel/hotplug e.g., to list a particular one

© David Morgan 2005-17

/etc//etc/rc.d/rc.localrc.d/rc.local

� reserved for your custom, system-wide boot code

� comparable to old DOS autoexec.bat

� called during boot

Page 16: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

16

© David Morgan 2005-17

tip: setting variables upon boottip: setting variables upon boot

� don’t use /etc/rc.d/rc.local

– rc.local runs as a subprocess (to rc)

– vars it sets are its own, transient

– long gone by the time user gets to log in to his shell

� use /etc/profile

– profile run by the shell in the shell

– vars it sets become the shell’s, persistent

– export them (to carry into programs shell runs)

� “export LANG=french” to make your programs french

– fails if placed in rc.local

– succeeds if placed in profile

© David Morgan 2005-17

New process creation New process creation -- fork( )fork( )

code.

fork( )

.

.

.

environment(variables)

file descriptors

signal table

arguments

current dir

data

code.

fork()

.

.

.

environment(variables)

file descriptors

signal table

arguments

current dir

data

process ID #1001

process ID #1002

same dir!

same args!

same vars!

(not!)

same sigs!

same files!

even…

same code!!

some vars don’t

transfer. “export”

makes them do so

wholesale processreplication

Page 17: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

17

© David Morgan 2005-17

doc: kernel parametersdoc: kernel parameters

� The Linux BootPrompt HowTo (www.tldp.com)

� in /usr/src/linux/Documentation/ or

/usr/share/doc/kernel-doc-`uname -r`/Documentation/

– kernel-parameters.txt

� https://www.kernel.org/doc/Documentation/kernel-parameters.txt

© David Morgan 2005-17

doc: doc: sysconfigsysconfig

� /usr/share/doc/initscripts-xxx/sysconfig.txt

Page 18: System control mechanisms - Santa Monica Collegehomepage.smc.edu/morgan_david/linux/a06-systemcontrol.pdfSystem control mechanisms David Morgan © David Morgan 2005-17 System control

18

© David Morgan 2005-17

doc: /proc & doc: /proc & sytsctlsytsctl

� man sysctl, man 5 sysctl.conf

� in /usr/src/linux/Documentation/sysctl/ or

/usr/share/doc/kernel-doc-`uname -r`/Documentation/sysctl/

– fs.txt

– kernel.txt

– vm.txt