내가 아는 한 Busybox는 일련의 Unix 명령/유틸리티가 포함된 실행 파일입니다.
내 질문은 이를 실행하려면 기본 운영 체제가 필요한지, 아니면 커널 없이 컴퓨터에서 직접 실행할 수 있는지입니다. 명시적인 운영 체제 없이 실행될 수 있다면 CPU 스케줄링, 사용자 및 역할 관리 등과 같은 작업을 누가 처리할 것인가? 기본 운영 체제가 필요한 경우 어떻게 플랫폼에 구애받지 않을 수 있습니까?
여기서 내가 무엇을 놓치고 있는지 이해하도록 도와주세요.
편집하다:
그래서 혼란의 원인은 작은 임베디드 장치에 설치된다는 것입니다. 내 결론은 이러한 장치에는 비지박스를 사용하여 기본적인 유닉스 기능을 추가할 수 있는 경량 운영 체제가 설치되어 있어야 한다는 것입니다.
또한 위의 내용은 플랫폼에 구애받지 않습니다. 즉, 기본 OS에 구애받지 않는다는 의미입니다. 예를 들어 Windows에서 BusyBox를 실행할 수 있나요? 그렇다면 이것이 어떻게 가능합니까?
답변1
운영 체제 정의에 따라 다릅니다.
커널이 필요하지만 나머지 운영 체제는 필요하지 않습니다. 커널(Linux)은 운영 체제(Linux를 사용하는 대부분의 Unix 계열 시스템에서 Gnu/Linux)의 작은 부분입니다. busybox/Linux를 사용할 수 있습니다. 이것은 단지 busybox와 Linux입니다(Gnu도 없고 아무것도 없습니다).
답변2
명시적인 운영 체제 없이 실행될 수 있다면 CPU 스케줄링, 사용자 및 역할 관리와 같은 작업을 누가 처리하게 될까요?
이것은 이미 첫 번째 질문에 대한 답이 될 것입니다. 이것은 커널이 수행하는 작업이며 커널 없이는 busybox를 포함하여 이러한 기능에 의존하는 프로그램을 실행할 수 없습니다.
플랫폼 독립적인 커널을 사용하면 이는 말처럼 쉽지 않습니다. 플랫폼이란 프로세서 아키텍처를 의미한다고 가정합니다. 즉, 실행 파일이 가상 머신 없이 모든 프로세서에서 실행되기를 원한다는 의미입니다. 이는 불가능합니다.
당신이 원하는 것에 가장 가까운 것은 아마도 코어 리눅스(단지 11MB)와 같은 최소한의 리눅스 배포판일 것입니다.
부팅 후 사용자 상호 작용을 원하지 않으면 OS에서 더 많은 항목을 제거할 수도 있지만 시스템과 상호 작용하려면 최소한 터미널이 필요할 것 같습니다.
그래서 혼란의 원인은 작은 임베디드 장치에 설치된다는 것입니다. 내 결론은 이러한 장치에는 비지박스를 사용하여 기본적인 유닉스 기능을 추가할 수 있는 경량 운영 체제가 설치되어 있어야 한다는 것입니다.
이 문제에는 여러 가지 측면이 있습니다.
임베디드 장치란 무엇입니까? 요즘에는 기술적으로 여전히 "소형 임베디드 장치"인 Raspberry Pi에서 전체 Linux 배포판을 쉽게 실행할 수 있으며, 비지박스를 실행하여 더 가벼운 크기로 만들 수도 있습니다. 나는 그것이 그 인용문이 말하는 것이라고 생각합니다.
커널 없이 실행되도록 busybox를 수정할 수 있습니다. 작업의 난이도는 작업이 커널 호출에 얼마나 의존하는지, 모든 기능을 작동할지 아니면 일부만 작동할지 여부에 따라 다릅니다.
얼마나 중요한가요? Busybox는 UNIX 계열 커널과 함께 사용하도록 고안된 POSIX 표준에 설명된 여러 프로그램을 구현합니다. 예를 들어,
chroot
루트 디렉터리는 고사하고 파일 시스템도 없다면 무슨 의미가 있습니까?
또한 위의 내용은 플랫폼에 구애받지 않습니다. 즉, 기본 OS에 구애받지 않는다는 의미입니다. 예를 들어 Windows에서 BusyBox를 실행할 수 있나요? 그렇다면 이것이 어떻게 가능합니까?
예, 하지만 아니요. Windows에는 프로그램이 커널과 상호 작용할 수 있는 다양한 API가 있습니다. 또한 실행 파일에 대해 다른 바이너리 형식을 사용합니다. 일종의 호환성 레이어 없이는 Windows에서 busybox를 실행할 수 없습니다.
일반적으로 Linux API를 기본 해당 Windows API로 리디렉션하여 이 작업을 수행하는 mingw와 같은 것을 사용합니다. 이를 통해 소스 코드를 크게 수정하지 않고도 간단한 Linux 프로그램을 컴파일하고 실행할 수 있습니다.
Windows 10부터 Microsoft 자체적으로 이러한 호환성 레이어를 제공했습니다.Linux용 Windows 하위 시스템,내가 아는 한. 이제 전체 가상화된 Linux 커널을 실행해 보세요.창 안에서Linux 애플리케이션을 "기본적으로" 실행합니다.