고민상담입니다(리눅스와 관련되어 있습니다)

junwha0511의 이미지

너무 초보적인 질문일 수 있겠지만 양해부탁드립니다.

일단 저는 올해 18세 되는 학생입니다.
대안학교에서 11학년으로 재학중이고, 자바와 C초반부, HTML/CSS를 공부했고,
파이썬, 유니티를 공부하는 중입니다. Structed Computer Organization 6판도 읽는 중이구요.

저희 학교에서는 12학년 1학기 동안 졸업 프로젝트를 진행합니다. 프로젝트가 끝난 후에는 결과물, 논문, 발표 등이 있습니다.

제가 여기까지 설명을 드린 이유는 제가 하고 싶은 주제가 가능할지, 또 가능하려면 어떻게 해야할지 궁금해서입니다.

저는 되도록이면 리눅스를 저만의 OS로 만들어보고 싶고, 안된다면 리눅스 소스를 분석해보고 싶습니다.

현실적으로 가능한 이야기인가요?
가능하기 위해서는 현 상태에서 어떤 것을 공부해야할까요?
위의 컴퓨터 구조 책이 도움이 될까요?
리눅스는 오픈소스라고 알고있는데 아무리 찾아도 안보이더군요. 좀 무식한 질문일 수 있겠지만 소스는 어디서 찾을 수 있나요?

litdream의 이미지

https://github.com/torvalds/linux.git

정말 찾아보신거 맞나요?

삽질의 대마왕...

junwha0511의 이미지

제가 github은 얼마전에 입문해서요... github을 생각을 못했네요... 오픈소스의 대명사인데 말이죠ㅋㅋ

codebank의 이미지

책에 대해서는 제가 잘 몰라서 조언드리기가 그렇네요.

'자신만의 OS'라는 것은 한때 유행했던 프로젝트네요.
물론 그때 자료들이 아직도 남아있지는 않지만 한동안 꽤 많은
팀이나 개인이 도전했던 것으로 기억합니다.
물론 10~20년 전 이야기지만...
하이텔이나 천리안이 아직도 운영중이라면 자료를 구할 수 있을지도
모르지만... :-)

어쨌든 저 놀이에 참여했었던 경험으로 말하자면 개인의 능력에 따라서
성공과 실패가 갈립니다.
저같은 경우는 반정도만 성공했었지만 그것도 실패죠. 능력 좋은 사람은
좋은 결과물을 내놓기도 했지요.

1년여 시간이 남아있고 영어를 읽을 수 있다면 Minix를 추천해 드리고 싶네요.
대학교수가 교재로 사용하기 위해서 만든 운영체계이지만 어찌보면 LINUX도
이 운영체계를 기반으로 시작했었다고봐도 무방하겠죠.
(토발즈는 이 운영체계의 키보드 소스를 수정하면서 Linux로 발전하게 되었다는
초기 썰도 있었죠.)
어쨌든 관심이 있다면 Minix를 추천합니다. 이유는 OS소스를 설명해 놓은 책이
있다는 점이죠.
LINUX 커널을 설명한 책들도 서점에서 구할 수 있으니 그것으로 시작을 하셔도...

될 수 있으면 pdf를 받아보거나 웹에서 검색해서 컴퓨터로 보는 것 보다는
책을 구입해서 보는 것을 추천합니다.
지금 생각해보면 컴퓨터나 모바일을 이용해 본 내용은 책으로 이해한 내용보다
기억이 가물거리는게 바로 쓰고 버리려면 컴퓨터를 통해서 검색을 하는 것을
추천하지만 오래 써먹으려면 책으로 습득하는게 더 좋지 않을까 생각되네요.
물론 개인적인 의견이고 검증되지 않은 부분입니다.

------------------------------
좋은 하루 되세요.

junwha0511의 이미지

좋은 정보 감사드립니다.
http://used.kyobobook.co.kr/product/viewBookDetail.ink?cmdtBrcd=7240837523317&orderClick=LIP&Kc=SEBLBkusedsearch
이 책이 제가 읽고 있는 책과 같은 작가님이 쓰신 책이군요... 저걸 읽으면 괜찮을까요?
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788979144826&orderClick=LAG&Kc=
일단은 이 책을 도서관에서 빌려보려고 합니다.
그리고 PDF를 받아서 프린트해서 읽는 것에 대해서는 어떻게 생각하시나요?:)

스택 오버플로우에 질문을 했는데... 10년이 걸릴거라고 하더라구요ㅠㅠ 리눅스 오픈소스 분석을 하더라도 전 반드시 10년이 걸릴 것이라며...

내가왜리눅스썼지의 이미지

다 프린트 하면 종이 값이 더 들겁니다. Pdf 를 그냥 보냐와 책의 차이지.

이보게 친구, 속도는 생명이라고.
망하면 재수강. Re: 제로부터 시작하는 재수강

bt의 이미지

리눅스 커널 소스가 방대한데 그걸 단기간에 분석할 수 있겠습니까? 비현실적인 목표입니다. 10년 걸린다는 말이 농담이 아닙니다.

junwha0511의 이미지

장난으로 하는 말이 아닙니다.
6개월이라는 시간동안 학교에서 프로젝트를 진행하는 것이기 때문에 대부분의 시간을 할애할 수 있습니다.
하루에 3~4시간씩 6개월을 한다고 해도 불가능한것인가요?

내가왜리눅스썼지의 이미지

커널 관리 하는 사람은 하루에 3-4 시간씩 6 개월을 하는 사람이 여러 명 입니다.

부분적인 수정은 가능하겠지만 그 범위가 광범위해서 불가능 합니다.

이보게 친구, 속도는 생명이라고.
망하면 재수강. Re: 제로부터 시작하는 재수강

bt의 이미지

- 리눅스 코드가 2천만 라인이 넘어간다고 합니다. 말씀하신 것처럼 6개월 동안 투자한다고 해도 아무나 할 수 있는 일이 아닙니다. 단기적으로 목표를 세운다면, 전체를 보는 것을 포기하고 핵심 부분만 보는 것이 보다 현실적입니다.

- OS 코드를 분석하려면, 먼저 OS에 대한 탄탄한 이해가 있어야 합니다. 이 쪽에 기초가 없으시다면 관련 책을 먼저 읽어보시길 권합니다. 그걸 통해서 OS의 어떤 부분을 집중적으로 리뷰하고 싶으신지, 어떤 부분을 "나만의 것"으로 만들고 싶으신지 생각해 보실 수 있는 기회가 생길 것이구요.

- 코드를 본다는 것은 이론이 실제로 어떻게 구현되어 있는지를 본다는 건데, 당연히 프로그래밍 실력이 바탕이 되어야 하고, 긴 코드를 분석해 본 경험이 풍부해야 합니다. 이런 쪽에 경험이 없으시다면, 먼저 github의 linux code를 몇개 보시고 그 코드가 뭘하는지 빠른 속도로 이해하실 수 있는지 확인해 보세요.

junwha0511의 이미지

덕분에 무엇을 해나가야할지 조금은 더 상이 뚜렷해진 것 같아요

ymir의 이미지

뚜렷한 목표없이 단순히 소스를 분석하겠다는 것 만큼 공허하고 무의미한 게 없죠.
내가 어디까지 얼마나 봐야 할지 계산도 안 되고, 어떻게 하면 다 이해했다고 할 수 있을지 판단도 어렵습니다.
무엇을 위해 어느 부분을 살펴볼 건지 좀 더 구체화 시켜보세요.

모든 것은 '필요' 에 의해서 발전합니다.

흠.. 이렇게 해보면 어떨까 싶네요.

https://buildroot.org/

먼저 간단히 OS 이미지를 하나 만들어서 설치해 보세요.
Virtual Box 던 Raspberry Pi 던 갖고 놀만한 머신 있으면 좋겠죠.

툴체인이 뭔지 어떻게 만들어지는지 알아보고..
부트로더와 파일 시스템에 대해 이해하고..
busybox 에 구현된 coreutils 들에 대해 알아 보고..
패키지 관리 시스템에 대해서도 알아보고..
원하는 대로 패키지를 커스터마이징 하거나, 내가 만든 프로그램을 추가해서도 올려 보고..

이쯤되면 배포판 하나 만들기 위해 필요한게 뭔지는 어느 정도 파악할 수 있을테고..
자기 취향에 맞는 Linux 정도는 원하는 대로 만들 수 있게 될겁니다.

이제 커널에서 간단한 디바이스 드라이버부터 추가해 보면서 시작하면..
어느 정도 감이 오지 않을까 생각되네요.

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

junwha0511의 이미지

방향을 잘 잡아주신 것 같아요.
마지막 문장 큰 힘이 되었습니다.