suckless를 사용하는 실제 "sinit" 초기화 [닫기]

suckless를 사용하는 실제 "sinit" 초기화 [닫기]

설정하려고 하는데사인Linux 로 init(PC에서..). 이제 내 목표는 tty/bash그것 중 하나를 실행하는 것입니다. 커널이 root=/dev/sda2이미 cmdline.

sinit바이너리 파일이 있는데 /sbin/init다음에 무엇을 해야 할지 모르겠습니다. 일부 스크립트를 제자리에 배치해야 한다는 것을 알고 있지만 sinit스크립트를 어떻게 실행하거나 bash.

답변1

포함된 sinit.8 매뉴얼 페이지와 readme 파일은 저에게 매우 도움이 됩니다. 하지만 소스 코드를 보면 간략한 개요를 알려 드리겠습니다.

  • /sbin/initpid 1로 커널에 의해 시작되는 sinit 기본 실행 파일
  • /bin/rc.init스크립트를 별도의 하위 프로세스로 실행하기 위한 초기 환경을 준비합니다.
  • /bin/rc.init별도의 프로세스로 실행되므로 해당 /bin/rc.init시점 이후에 시스템을 초기화하는 명령이 포함되어 있습니다.
  • 무한 루프에 빠져 좀비 프로세스를 포착하고 종료 코드를 아무데도 읽지 않습니다.
  • 무한 루프에 있을 때 신호에 의해 중단될 수 있습니다. 수신할 신호가 SIGUSR1 및 SIGINT임을 정의합니다. SIGUSR1은 init가 /bin/rc.shutdown스크립트 이름으로 실행되도록 강제하는 poweroff반면, SIGINT는 init가 reboot이름으로 동일한 스크립트를 실행하도록 강제하여 스크립트 내의 작동 모드를 구별합니다. 이 두 신호는 init가 듣는 신호일 뿐입니다.포함하다SIGKILL 및 SIGSTOP을 무시합니다. 그리고 슈퍼유저만이 init에 신호를 보낼 수 있습니다. SIGINT는 Ctrl-Alt-Delete를 누를 때 커널에 의해 생성되지만 그렇게 표시된 경우에만 생성됩니다(init 프로세스는 일반적으로 CAD에서 SIGINT 전송을 활성화하기 위해 특수 시스템 호출을 수행합니다).

그래서, 게다가, sinit사용 불가:

  • 초기화 스크립트(직접 작성하거나 배포판에서 제공한 스크립트를 조정해야 함)
  • 제어 모드(예: 실행 수준), 두 개의 간단한 명령만 있음

그러나 sinit은 훌륭하고 귀여운 작은 init입니다. 현대 데스크탑 환경의 번거로움 없이 단순한 데스크탑 시스템뿐만 아니라 임베디드 시스템에서도 훌륭하게 작동할 것이라고 확신합니다.

답변2

리눅스 커널이분석하다이것셰르본그 자체를 통해.

따라서 모든 "Shebanged" 스크립트(바이너리의 전체 경로 포함)를 와 함께 사용할 수 있습니다 sinit.

관련 정보