순정 리눅스를 다뤄보고 싶은데 어떻게 접근을 해야 할까요?

요즘 디버깅에 관심이 많아져 운영체제 공부의 필요성을 느끼고 있습니다.

배포판이 없던 과거에는 파일시스템을 직접 만들고 리눅스 커널이 돌아갈 수 있도록 환경을 구성해야 했는데 이 작업을 한 번 해보고 싶습니다.

그런 차원에서 배포판이 아닌 순수한 리눅스 커널에 제가 필요한 프로그램만 설치해서 사용해보는 작업을 해보고 싶지만, 처음부터 이런 작업은 너무 어려운 것 같고

점차적으로 진행하기 위해 먼저 순정에 가장 가까운 배포판을 사용해봐야 겠다는 생각이 들었습니다.

슬렉웨어, 젠투, 수세 를 후보로 생각하고 있는데,

사용자의 손이 매우 많이 가는 배포판은 어떤 것이 있나요?

젠투 http://www.gentoo.org/
리눅스 프롬 스크래치 http://www.linuxfromscratch.org/
이런 걸 찾으시는지요?

우분투 클론들의 모태라면 우분투이고, 우분투의 모태라면 데비안이겠죠.

배포판이라 한다면, 젠투가 소스 컴파일 레벨이라 손이 아주 많이 갑니다.
모든 프로그램을 컴파일해서 설치해야 합니다. 물론 쉽게 컴파일 하도록 명령이 지원되지만 말입니다.
그외 대부분의 리눅스 배포판들은 고유의 패키지 관리 도구를 가지고 있고, 그것에 때라 배포판들의 큰 줄기는 나눠집니다.
dpkg를 기본으로하는 데비안계열(우분투, 우분투클론), rpm을 기본으로 하는 redhat계열(fedora, suse), archlinux, mandriva 및 클론, slackware, gentoo, tinylinux 등이 있지요.
이중 gentoo는 바이너리 패키지 관리자가 아닌, 소스컴파일을 기본으로 합니다.
컴파일을 쉽게 해주는 도구가 있지만, 어쨋든 미리 컴파일된 바이너리를 사용하는 것이 아니라서, 손이 아주 많이 갑니다.

하지만 커널은 어떤 배포판에도 무관하게 기본적인 형태를 띠고 있죠.
이런 배포판의 문제가 아닌 커널자체를 의미하는 것이라면… 약간 다른 문제지요.

데비안 계열은 debootstrap이라는 것을 지원합니다.
이것을 설치하신 후, debootstrap trusty 이런 식으로 미니멀 루트디렉토리를 구성하실 수 있습니다.
이후, 프로그램을 설치해서, 해당 디렉토리를 배포판의 루트파일시스템으로 만드시면 됩니다.
이것이 가장 추천하는 방법입니다.

그보다, 더 저수준 레벨을 원하신다면,
dd if=/dev/zero of=rootfs bs=1M count=1024
mkfs.ext4 -F rootfs
sudo apt-get install busybox-static
mkdir t
sudo mount rootfs t -o loop
sudo mkdir -p t/{boot,bin,usr/bin,usr/local/bin,sbin,usr/sbin,usr/local/sbin,lib,usr/lib,local/lib,etc,proc,sys,dev/pts}
sudo cp /bin/busybox t/bin/
sudo cp /etc/resolv.conf t/etc/
for dev in /proc /sys /dev /dev/pts; do sudo mount -B $dev t$dev
sudo chroot t /bin/busybox
export PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin
/bin/busybox --install
이렇게 하시고서, busybox 내에서, 필요한 작업을 하시면, 최소의 작업이라 할 수 있을 것입니다.
umount -a
exit
sudo umount t/{proc,sys,dev/pts,dev}
sudo umount t

결국, 배포판을 바꾸기 보다는, 기존 배포판의 편리함 위에서,
debootstrap이나 busybox를 통해서, 새로운 형식의 루트파일시스템을 만드시는 것이 좋습니다.

젠투나 archlinux 정도부터 시작해보시는게 어떨까요?

순정 리눅스를 다뤄보고 싶다는 표현 보다는 배포본이 어떻게 만들어 지는 지 알고 싶다는 표현이 적당할 것 같습니다.

리눅스를 처음 접하고 좀 시간이 지난 후 같은 이유로 [url=http://www.linuxfromscratch.org/lfs:l10aufo7]LFS[/url:l10aufo7]를 시도해 봤었고 많이 배웠습니다. 다음과 같은 것들을 그야말로 맨손으로 해보게 됩니다.

[list:l10aufo7][:l10aufo7]툴체인 설치[/:m:l10aufo7]
[:l10aufo7]커널 설치[/:m:l10aufo7]
[:l10aufo7]sysvinit 다루기[/:m:l10aufo7]
[:l10aufo7]기본 패키지들 설치[/:m:l10aufo7][/list:u:l10aufo7]

한 번 해보고 나면 각 배포본들이 어떤 일을 하는지 또 어떤 차이점이 있는지에 대해서 피부로 느끼게 됩니다.

기존의 sysvinit을 대체하는 systemd라는 패키지가 새로 개발 되어서 주요 배포본들에서 이미 채택했거나 다음 버전에서 채택하기로 결정된 상태 입니다. 그래서 그런지 LFS도 두가지 버전으로 나뉘어 있네요. 저는 systemd 버전으로 하시길 추천 합니다. sysvinit보다 사용하기가 쉽습니다.