본문 바로가기

프로그래밍/Linux

커스텀 운영체제를 향한 여정, 그 시작

반응형

개인 OS를 만들어보고 싶다는 생각이 불현듯 떠올랐다. 리눅스를 쓰거나 우분투 같은 기타 배포판을 써도 되지만 기존 운영체제의 불필요한 부분들을 전부 배제한 나만의 전용 OS를 통해 내 꿈을 실현하고자 하는 욕망이 생긴 것이다.

 

욕망은 번지르르했으나 실력은 시궁창. 지금은 커스텀 리눅스는커녕 리눅스를 제대로 운용하지도 못하는 리린이일 뿐. 일단 리눅스에 대한 공부가 시급하다. 커스텀 리눅스 배포를 위한 단계들을 한번 정리해봤다.

 

  • 기본 리눅스 공부하기
    - 리눅스 책이나 인터넷 강의를 통해 공부를 시작하자. 리눅스마스터LPIC와 같은 리눅스 관련 자격증을 취득하는 것도 좋을 듯.
    - 공부자료(https://doc.lagout.org/, https://github.com/q2dg/)

  • 리눅스 오픈소스 분석하기
    - 리눅스가 어떤 원리로 작동하는지 대략적인 분석이 필요해 보인다. C언어 공부는 덤. 다만 이 부분은 옵셔널이다.

  • 리눅스 운용
    - 리눅스나 기타 배포판을 통해 웹서비스를 운용하거나, 리눅스 내부 소프트웨어를 만들어서 배포 및 사용해보자.

  • 리눅스 배포판 만들기
    - 현재로서는 배포만을 만들기 위해 뭘 해야 하는지 아직 감도 잡히지 않는다. 여러 검색을 해보니 LFS(Linux From Scratch)라는 시스템을 통해 간편하게아주 복잡하게 커스텀 리눅스를 빌드할 수 있다고 하는데, 여기서 제공되는 문서에 따라 단계별로 시도해봐야 할 듯.

궁금하다. 과연 이 길어 보이는 여정을 무사히 마칠 수 있을지, 시간은 얼마나 걸릴지. 뭐 일단 복잡한 생각은 접어두고 리눅스 기본 명령어부터 차근차근 공부해보도록 해야겠다. 그러다 보면 답이 나오겠지. 그리고 그 과정에서 또 얻는 것들이 있겠지.

 

 

+ 추가

 

+ 확인결과 LFS는 사람이 할 짓이 아니라고 한다. 대신 Busybox라는 것을 통해 기존 배포판을 수정해서 기존 싱글보드에 flash 해버리는 방법이 있다는 것을 알았다. 이것부터 살펴봐야 할 듯.

* 관련 문서 -> https://linuxfromscratch.org/lfs/view/systemd/

* 김종민이라는 분이 LFS 문서 번역작업을 하고 계신듯! -> https://rawcdn.githack.com/NuttyJamie/LinuxFromScratch-for-Korean/88bdabae8abf2fad511b497b0dc676e6ac95b965/9.1/BOOK/HTML/index.html


+ Busybox는 확인해보니 UNIX 유틸 패키지의 용도인것 같다. 다른 툴이 더 필요할 듯.


+ Yocto, buildroot 혹은 freeWRT라는 프로그램들로도 가능해 보인다.(https://www.linkedin.com/pulse/building-custom-linux-os-raspberrypi-using-buildroot-aswin-venu) - 확인해보니 이건 임베디드 리눅스 툴이다. 배포판과 다르게 HOST OS에서 컴파일 해서 img파일을 만들어서 보드에 이식하는 방식. buildroot를 써보니 각 칩셋에 따라 디테일하게 config를 할 수 있어서 좋아보이기는 하지만 내가 원하는 배포판 리눅스랑은 좀 다르다. buildroot 빌드 관련 정보는 아래에.
https://www.linkedin.com/pulse/building-custom-linux-os-raspberrypi-using-buildroot-aswin-venu
https://codedosa.com/1253

 

+ 삽질하다 보니 결국 좀 쉬운 배포판 리눅스에 대한 정보들을 찾았다.
* https://m.cafe.daum.net/opensupport.xyz/psGH/8?
https://www.maketecheasier.com/6-tools-to-easily-create-your-own-custom-linux-distro/

* https://moordev.tistory.com/42

일단 UCK 같은 툴이 쉽다고 하는데 쉬운거 부터 차근차근 해보도록 해야겠다.

 

+ UCK는 꽤 오래전에 지원이 중단되기도 했고 GUI에서 작동하는듯 하여서 포기(docker를 통해 우분투를 돌리는 중이라..)

Ubuntu Image라는 프로그램을 써보고 있는데 잘 될진 모르겠음. 일단 차근차근 해보는 중.

* https://github.com/Distroshare/distroshare-ubuntu-imager

* https://www.maketecheasier.com/create-linux-distro/

 

 

반응형