운영 체제 대신 내 프로그램을 로드하는 시스템에서 Linux 커널만 실행할 수 있습니까?
Linux 커널과 함께 Raspberry Pi를 사용하고 싶습니다. 저는 Raspberry Pi에서 서버 및 클라이언트 프로그램을 만들려고 합니다. 이를 위해서는 네트워크 드라이버에서 실행되는 커널만 있으면 됩니다.
Raspberry Pi가 켜져 있을 때만 내 프로그램을 실행하도록 하고 싶습니다. 나는 운영 체제의 나머지 부분을 원하지 않습니다.
답변1
Linux 커널이 부팅되면 이 프로그램이 실행됩니다 /sbin/init
. (이건 이후초기화 프로그램또는파일 시스템 초기화) 사용 가능한 경우 다음 구성 위치를 사용할 수 있습니다.init
범위. 이것내부에이 프로그램에는 특별한 효과가 있습니다. 영원히 실행됩니다(SIGKILL을 사용하더라도 프로그램이 종료되는 것을 방지하는 특별한 규칙이 있습니다).고아 프로세스, 물론 다른 프로그램을 시작(및 모니터링)해야 합니다.
자신의 프로그램을 init로 지정할 수 있습니다. 그렇다면 그것은 모두 당신이 무엇을 실행하는지에 달려 있습니다.
그러나 이렇게 하면 많은 것을 잃을 수 있습니다. 예를 들어 물리적 액세스 없이는 프로그램을 제공하지 않는 한 어떤 방식(예: 네트워크 구성 변경, 부트로더 설정 수정 등)으로 장치를 재구성할 수 없습니다. 최소한의 도구 세트를 실행하는 것이 좋습니다.
- 바쁜 상자, 초기화 구현, 셸 및 기타 명령줄 도구를 포함한 시스템 도구 세트입니다. 그럼에도 불구하고 시작 시 네트워크를 설정하려면 적어도 일부 BusyBox 도구가 필요할 것입니다(
ifconfig
,route
, ...). - IP 테이블, BusyBox에 포함되지 않은 기본 방화벽 구성 도구입니다.
- 물방울곰, 장치에 원격으로 로그인할 수 있는 SSH 서버입니다.
- 가능한기타 가젯,특히NTP클라이언트(시계 설정) 및DNS, DNS 캐시.
이러한 도구는 모두 설치 공간이 작습니다. 약 10MB의 RAM과 3MB의 압축 저장 공간에 적합하며 이는 Raspberry Pi에서는 무시할 수 있는 수준입니다. RPi에서는 시스템을 기본 임베디드 Linux보다 낮은 수준으로 낮추는 데 아무런 이점이 없습니다. Linux 커널만 사용하여 프로그램을 부팅하는 것은 매우 제한된 수의 장치에 유용하지만 RPi는 그보다 최소 2배 이상 높습니다.
가장 쉬운 방법은 다양한 방법 중 하나를 사용하는 것입니다.임베디드 Linux 배포판. 또는 다음과 같은 도구를 사용할 수 있습니다.루트 구축맞춤형 시스템 구축 – 이는 소규모 시스템에 적합하지만 Raspberry Pi에는 약간 과잉입니다.