LOC에서 답을 얻고 싶습니다.
대부분의 모듈/드라이버, 가상화 개선 사항, Android 패치 등이 기본적으로 커널에서 제외될 수 있다는 것을 알고 있습니다. 하지만 제 질문은 다른 사람들에게 참고 자료가 될 수 있도록 장황하고 이론적인 답변을 요청하는 것에 가깝습니다.
그렇다면 일반 사용자에게 필요하지 않은 Linux 기능은 무엇입니까? 더 나은 방법은 일반 컴퓨터 사용자가 웹사이트를 탐색하고 사무 작업 등을 수행하는 것을 상상해 보겠습니다. 화려하거나 개발/해킹이 필요하지 않습니다.
이 입장에서는 커널의 어떤 부분과 그에 상응하는 양의 코드를 리눅스에서 제거할 수 있는지 알고 싶습니다.
이를 통해 일반인들은 리눅스가 얼마나 '단일'한지 알 수 있다.
UPD: @MatthewRock 답변에서 말씀하신 내용을 이해하며 건전한 조언입니다. 이런 식으로 이해한다면 나는 커널 사용자 정의를 옹호하지 않습니다. 기본 커널 부분의 유용한 상태에 대한 자세한 내용입니다. 나는 스스로 대답할 필요 없이 내가 완벽한 대답이라고 생각하는 것의 예를 제공하는 것이 좋겠다고 생각합니다.
다음은 필요하지 않습니다.
STM32=XXXLOC의 SPI 코드
KVM 지원 = YYYLOC
"후호 나는 양이다" 태그 = ZZZLOC
답변1
간단한 대답은 다음과 같습니다. 하드웨어와 요구 사항에 따라 다릅니다.
대부분의 배포판은 컴파일된 커널을 제공합니다. 이러한 커널은 가능한 한 많은 시스템에서 작동하도록 만들어졌습니다. 따라서 실제로 필요하지 않은 많은 항목이 포함되어 있습니다.
커널에는 많은 것들이 포함되어 있습니다. 특정 드라이버를 컴파일하려고 합니다. 안타깝게도 어떤 드라이버인지는 말씀드릴 수 없습니다. 이는 하드웨어에 따라 다릅니다. 나머지는 건너뛸 수 있습니다. 어차피 사용하지 않을 드라이버는 필요하지 않습니다.
커널은 또한 일부 파일 시스템을 지원합니다. 특정 파일 시스템을 사용하지 않을 것이라는 점을 알고 있다면 아마도 드라이버를 컴파일하지 않을 것입니다. 특정 파일 시스템을 사용해야 할 때 언제든지 커널을 다시 컴파일할 수 있습니다.
당신이 일반 Linux 사용자라고 가정합니다. 당신은 무엇을 해야 합니까?
내 제안은 다음과 같습니다커널을 변경하지 않고 유지. 일반적으로 코어는 괜찮으며 주변 조정에서 눈에 띄는 어떤 것도 얻지 못할 것입니다. 경험이 없는 경우 문제가 발생하면 혼란스러울 수도 있으므로 안전을 위해 그대로 두십시오.
당신이 "해커"이거나 "프로그래머"인 경우에도 마찬가지입니다. 더 나은 프로그래머가 되거나 프로그래밍을 더 쉽게 만들기 위해 커널을 조정할 필요는 없습니다. 결국 프로그램은 조정 없이 커널에서 실행되어야 합니다(또는 프로그램의 요점은 무엇입니까?). 커널 구성은 주로 취미생활자나 그렇게 해야 하는 사람들(예: 내장 장치의 커널)을 위한 것입니다. Gentoo 제작자의 새 프로젝트인 Funtoo도 미리 컴파일된 커널을 사용합니다.
그러나 커널을 직접 컴파일하는 것은 흥미로운 경험이 될 수 있습니다. 작동 방식과 "내부"가 무엇인지 (조금) 이해할 수 있습니다. 원하는 것을 켜고 끌 수 있습니다. Linux에 대해 자세히 알아볼 수 있습니다.
하지만 솔직히 필요하지 않다면 기본 커널을 사용해도 됩니다. 더 많은 것을 원한다면 언제든지 사전 컴파일된 강화 커널이나 기타 사용자 정의 커널을 찾아보면 괜찮을 것입니다.