/sbin/init, inittab, daemon, tmpfs, fstab

markyang92·2024년 2월 2일
0

embedded_linux

목록 보기
7/7
post-thumbnail

/sbin/init, inittab

  • /sbin/init은 커널에의해 실행되는 첫 User space program
    • init프로그램은 /etc/inittab 설정을 읽으며 시작한다.
  • yocto core-image-minimal이미지에서 /etc/inittab
root@qemux86-64:/etc# cat inittab
# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $

# The default runlevel.
id:5:initdefault:

# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS

# What to do in single-user mode.
~~:S:wait:/sbin/sulogin

# /etc/init.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.

l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin
S0:12345:respawn:/bin/start_getty 115200 ttyS0 vt102
S1:12345:respawn:/bin/start_getty 115200 ttyS1 vt102
# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
#  <id>:<runlevels>:<action>:<process>
#

1:12345:respawn:/sbin/getty 38400 tty1
  • /etc/init.d/rcS를 실행한다.

/etc/init.d/rcS

root@qemux86-64:/etc/init.d# cat rcS
#!/bin/sh
#
# rcS           Call all S??* scripts in /etc/rcS.d in
#               numerical/alphabetical order.
#
# Version:      @(#)/etc/init.d/rcS  2.76  19-Apr-1999  miquels@cistron.nl
#

PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel

#       Make sure proc is mounted
#
[ -d "/proc/1" ] || mount /proc

#
#       Source defaults.
#
. /etc/default/rcS

#
#       Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
#
trap ":" INT QUIT TSTP

#
#       Call all parts in order.
#
exec /etc/init.d/rc S
  • /proc를 마운트 시킨다.

daemon

  • startup 시, background process를 실행하게 한다.
    • /etc/inittab 파일에 등록한다.
# /etc/inittab 파일
::respawn:/bin/userdamon -n
  • respawn: 프로그램이 종료되면, 자동 재시작해라
    • -n: foreground process로 실행해라

tmpfs

  • tmpfs (temporary file system)은 dynamic (volatile) memory/RAM에 저장하기위해 생성되는 virtual filesystem이다.
    • tmpfs는 모든 것을 커널 캐시에 저장하고 포함된 파일에 맞게 커졌다 작아졌다 한다.
    • tmpfs는 더 많은 공간이 필요할 때, 미리 설정된 최대값에 도달할 때까지 동적으로 확장할 수 있다.
      • 그 이후엔 swap공간을 사용한다.
    • 주로 /tmp, /var/lock, /var/run 경로를 사용한다.
    • kernel config CONFIG_TMPFS가 필요하다.
  • 마운트
$ mount -t tmpfs tmpfs /tmp
profile
pllpokko@alumni.kaist.ac.kr

0개의 댓글