리눅스를 공부하려고 LFS를 들여다 보고 있습니다.

solar-beam의 이미지

비전공자로서 학교에서 2년 동안 프로그래밍을 배워, 이번 학기에는 안드로이드 다중 채팅방 어플 프로젝트를 진행했습니다.
아마존 ec2 우분투 서버의 NodeJS 어플리케이션에서 채팅 메시지를 중계하고, 웹소켓을 바인딩해 방을 구분하는 형식으로 구현했습니다.
프로젝트를 직접 진행해보니 부족한 부분이 한 눈에 들어왔습니다.
네트워크와 컴퓨터시스템의 기본 지식이 부족해, API문서를 보고도 이해하지 못하곤 했습니다.
이번 방학 동안 리눅스를 소스코드 단계부터 차근차근 경험해보며 부족한 공부를 하고 싶습니다.

  1. From Power Up To Bash Prompt
  2. http://users.cecs.anu.edu.au/~okeefe/p2b/power2bash/power2bash.html 말그대로 전원이 들어올 때부터 배시 프롬프트가 뜰 때까지 과정을 설명해주는 문서입니다. KLDP 위키에도 이미 번역되어 있었습니다.

  3. How To Build a Minimal Linux System from Source Code
  4. http://users.cecs.anu.edu.au/~okeefe/p2b/buildMin/buildMin.html 최소 규모의 리눅스 시스템을 직접 소스코드 단계부터 구성하도록 돕는 문서입니다. 역시나 이미 번역되어 있었습니다.

  5. Linux From Scratch
  6. http://www.linuxfromscratch.org/lfs/view/stable/ 2번 문서보다는 조금더 실용적인 용도로 리눅스 시스템을 직접 빌드하도록 돕는 문서입니다. 지금까지도 활발하게 활동하고 있는 커뮤니티이고, 6개월에 한번씩 가이드가 갱신됩니다. 현재 버전은 7.10이고 위키에는 2013년 7.2버전이 번역되어 있습니다.

곧바로 3번 문서로 가서 리눅스를 빌드해보고, 리눅스 커뮤니티에도 참여해보면 좋겠지만
1, 2번 문서에서 기본적인 지식은 습득해야겠다는 생각이 들었습니다.
기본기 없이 그대로 따라만 했다가는 좋지 않은 습관이나 오해가 생길 수도 있을 것 같았습니다.
하지만 1, 2번 문서는 2000년 초반에 작성되어, 최소한 10년도 더 지난 내용이었습니다.
이후에 갱신된 적도 없었고, 정말 이 문서로 공부하는 게 좋은 공부가 될까 고민되었습니다.

제 질문 요지는 이렇습니다.
1) 리눅스, 운영체제 등 서버사이드 개발 공부를 하고 싶은데 어떤 문서를 봐야할지 모르겠습니다.
2) 위에 말씀드린 문서로도 충분할까요? 아니면 역시나 운영체제 공룡책을 구해다 읽어야 할까요?

아직 진로를 탐색하는 중이지만, 정말 개발자가 된다고 하면 이런 기본 이론 공부가 많은 도움이 될 거라 생각했습니다. 질문 드린 것 외에 조언해주실 부분 있다면 정말 감사드리겠습니다 ㅜㅜ 개인적인 사정으로 내년 상반기에 휴학을 해야 하는데, 그동안 계획을 세우질 못했습니다. 인턴이나 개인 프로젝트를 해보는 게 좋을까요?

세벌의 이미지

영어를 공부하세요. 구글 검색을 할 때 컴퓨터 치나 computer 치나 마찬가지일까요?
영어가 부담스럽다면 10년된 번역문서 보는 것도 괜찮습니다. 바뀐 내용도 많겠지만 기본적은 것은 바뀌지 않은 것도 많으니까요.
책을 좋아하시면 대형 서점 들러보시는 것도 좋겠고요.

solar-beam의 이미지

네 정말 영어 공부가 필수적인 것 같아요. 최신 버전이 있다면 직접 한글화하면서 영어공부도 하고 싶었는데, 자그마치 10년이라니 ㅜㅜㅠ 그래서 차라리 공부할 수 있는 다른 사이트나 정리된 문서가 있는지 여쭤보고 싶었습니다. 내일은 한번 서점에도 들러봐야겠어요. 컴파일러, 리눅스 프로젝트 중심으로 찾아보려고 해요. 조언 감사합니다 !!

bt의 이미지

글을 아주 보기 좋게 잘 정리하시네요. 꼼꼼하고 신중한 성격이 보입니다.

지금 하시는 방향이 다 맞습니다. 원리를 깨닫고 + 영어 공부 하시고. 핵심적인 부분은 10년전과 크게 다르지 않으니 당연히 저걸로 시작하셔도 좋습니다.

좋은 개발자가 되실 것 같네요.

solar-beam의 이미지

조언 감사합니다!! 어제부터 천천히 읽어나가고 있습니다.

freestyle의 이미지

전공자라도 운영체제 다 이해 못하는 경우도 많고, 리눅스 내부를 이해하는 것과 서버 프로그래밍에 필요한 API 수준을 이해하는 것은 거리가 좀 있습니다.
비전공자라서 리눅스에 대해서 더 공부하고 싶으신 마음은 알겠습니다만, 목표지향적인 접근방식이 더 도움이 될 거라는 말씀을 드리고 싶습니다.

물론 운영체제 이론 공부 해두면 좋지만, 주관심사가 아니라면 공룡책을 보기에는 시간 투자가 과다할 것으로 보이네요.

마음에 드는 오픈소스를 하나 파서 메인테이너, 커미터 활동을 하셔도 좋구요.
알고리즘 트레이닝을 꾸준히 하는 것이 좋습니다.

----------------------------------------------------------------------------------------
Don't Feed the Trolls!
----------------------------------------------------------------------------------------

solar-beam의 이미지

다시 고민해보니 그렇네요ㅜㅜ 먼저 목표가 없어서 너무 멀리 돌아가는 느낌이었는데 ㅜㅜㅜ 알고리즘은 스터디 그룹을 만들어 온라인저지 사이트 통해 꾸준히 공부하고 있고, 오픈소스는 netty를 추천받았지만 네트워크 기본 개념을 몰라 헤매는 중입니다. 인턴 모집 공고를 찾아보고, 작은 거라도 프로젝트로 직접 만들어보면서 공부해야겠습니다 ㅜㅜ 조언 감사합니다!

codebank의 이미지

혹시나 아직도 Linux에 관심있다면

debian이나 gentoo같은 것을 설치해보는게 재밌지 않을까요?

재미있는 이유는 하드웨어도 알아야하고 설치하는 소프트웨어가 어떤것인지도
알아야 하니까요.
code를 분석해서 OS의 내부구조를 분석하는 것도 재미있긴하지만 일단 외형을
둘더싼 것이들 무슨일을 하는지를 찾아보는 것도 재미있거든요.

참고로 Linux를 설치하면서 현재 설치되는 프로그램이 무슨역할을 하는지 검색해
보는 것도 좋은 공부가 될거라고 생각합니다.

글쓴이와는 다르게 저는 조금 산만한 성격이라 글도 대충썼네요. 뭐 핵심만 보세요. :-)

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

solar-beam의 이미지

조언 감사합니다! 터미널에 익숙해지고 싶고, 리눅스도 공부하고 싶어서, 노트북에 윈도우 밀고 우분투 데스크탑 깔아서 사용하고 있어요. 몇 달 지나도 공부한 것은 많이 없는데 ㅜㅜ 다행히 리눅스 자체에 익숙해져서 다행이에요. 이제 gentoo처럼 컴파일해서 올리는 리눅스도 욕심내보려구요. arch가 문서화가 잘 되어 있어서 일단은 ㅜㅜarch를 가상머신에 올려서 하나씩 공부 중입니다. 꾸준히 공부해서 다시 이곳에 후기 올릴 수 있으면 좋겠네요 :)

dontdieych의 이미지

15년도 넘은 것 같은데 저도 LFS를 따라해보고 젠투 배포본을 사용해 보면서 운영체제(배포본)이 어떻게 만들어지는지에 대해서 많이 배웠습니다. 이후 타 배포본을 사용해도 그 때 습득했던 지식은 많은 도움이 되고 있습니다.

추가로 아치(Arch) 리눅스도 사용해 보시길 추천 합니다.

solar-beam의 이미지

넵넵 조언 감사합니다. ㅜㅜ 리눅스 시스템 프로그래밍이라는 책으로 기본 개념 공부하고, 아치는 가상머신에 올려서 설치해보고 있어요. 그런데 ㅜㅜㅜ 혼자서 공부하다보니 진도가 빠르게 나가질 않네요. 고시 공부하는 것 같아요. 막연하고 공부할 거리는 잔뜩이고.. 혹시 공부하실 때 어떻게 소소한 재미를 느끼며 공부하시나요? 안드로이드는 필요한 앱 구상해보고, 직접 만들어보면서 공부하니 재밌었어요.