친구가 물어봤다. cpu가 뇌인건 알겠는데 그래서 어떻게 된다고?

Labda-dev·2021년 11월 10일
6
post-thumbnail

친구 녀석이 펌웨어 개발 쪽으로 취업을 하고 나서 이것저것 많이 물어본다.

그러더니 근본적으로 cpu랑 커널, 실행 바이너리(파일) 간의 관계에 대한 의문을 가졌다.
이것저것 설명해주다보니 바이너리 컴파일까지 가버렸다. ㅋㅋㅋㅋㅋㅋ

설명을 들은 친구가 자료찾기 힘들다고 포스팅 같은 거 좀 해보라고 하길래 이 참에(드디어) 전반적으로 정리해서 블로그를 시작해보기로 마음먹었다.

  • 일반 사용자에게 가까운 마우스를 움직여서 프로그램 아이콘 더블 클릭하기까지.
  • 그 프로그램이 파일에서부터 메모리에 올라가면서 어떻게 프로세스로 실행되는지.
  • 거기에 그 파일은 서로 다른 cpu는 왜 호환이 되지 않는지, 똑같은 cpu이더라도 호환되지 않는건 왜인지.
  • 그럼 그 프로그램이 만들어지는 과정은 어떤지, 똑같은 프로그램을 여러 아키텍처에서 동작하게 하려면 어떻게 하는지.

이런 과정들 속에서 어떤 다양한 일들이 일어나는지!

사실 다루려고 하는 주제들에 들어간 여러 기술들은 하나하나가 되게 큰 항목들이다.

그리고 각 항목에 대한 디테일은 똑똑하신 분들께서 책이나 각종 자료에 너무 잘 정리해두셨다. ㅋㅋㅋㅋㅋㅋ

그러므로 이 시리즈에서는 상기의 주제를 기반으로 각 기술들이 어떻게 연결되는지, 언제 쓰이는지 알아보고자 한다.
(열심히 운영체제와 컴퓨터 구조를 공부해서 각 기술은 알겠으나 그래서 실제 컴퓨터를 할 때 어떻게 쓰이는지 감이 오지 않을 때!)

물론 내가 흥미있는 항목들의 디테일은 다른 시리즈로 열심히 올려보겠다!


좀 쉽게 말해보자면 다음과 같은 느낌이다.

  • 롤 아이콘을 더블클릭하면 어떻게 롤이 실행될까
  • 왜 롤은 윈도우용/맥용 클라이언트가 따로 있을까? 어차피 인텔 cpu인데 (왜 롤을 리눅스에서 바로 실행할 수 없을까?)
  • 그럼 윈도우용/맥용 롤 클라이언트를 어떻게 따로 만들까?

하나하나 정리하면서 내가 잘 모르는 비어있는 부분도 채워보려 한다.

잘못된 내용 혹은 특정 아키텍처에 종속적인 내용이 있을 수 있습니다. ㅎㅎ
피드백은 언제든 환영입니다!!!

profile
아는거 없는 찌끄레기가 끄적끄적

1개의 댓글

comment-user-thumbnail
2021년 11월 16일

마침 CS 쪽에 대해 관심이 생겼는데 좋은글을 찾았네요 ㅎㅎ 응원합니다!

답글 달기