지난번에 NAND2TETRIS를 쭉 훑어보고 나서

계속 OS만들어보고 싶었는데 영 의욕이 생기지가 않았다.

 

그렇게 책을 찾아보다가 관심가는 책을 찾았는데

한승훈 저자님의  64비트 멀티코어 OS 원리와 구조 라는 책이다.

http://jsandroidapp.cafe24.com/xe/

https://github.com/kkamagui/mint64os-examples

 

 

책 두권 합쳐서 3000page 정도 되는데

개발환경 구축 부터가 심상치가 않다.

 

 

지금처럼 WSL이 제공되지 않던 시절에

윈도우에서 리눅스 환경을 제공해주는 cygwin을 설치하면서

추가로 설치가능 목록들이 있는데 저자분이 어떤걸 설치해야하는지 알려주시지만 적지는 않다

 

책에서는 시그윈x86을 기준으로 얘기하고 있으나

사이트에서 다운받아도 실행되지않아

중간에 잘못될수 있으나 그냥 x86_64 용으로 다운받아서 진행했다.

 

 

설치 완료 후

교차 컴파일러 만들기전에 환경변수를 설정해야한다고 하는데

64비트용 시그윈을 다운받았으니 

환경변수 이름이 조금 다른건 고려해서 설정해줬다.

 

시그윈 바이너리 경로는 그렇다쳐도

문제는 교차컴파일러 바이너리 파일 경로인데

usr 폴더에 cross는 없고 대신 i686과 x86_64가 보인다.

 

i686이 뭔고 하니 i386 그러니까 32비트랑 동일한 의미라고 하는데

지금 64비트 운영체제를 만드는거니 x86_64-pc-시그윈의 바이너리 폴더를 환경변수에 등록해서 써봐야겠다.

ref : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=cestlavie_01&logNo=40208336534

 

 

시그윈 설치하고, 필요한것도 다운받았겠다.

gcc 설치 확인을 하려고 시그윈 터미널을 키고

gcc -v로 확인했더니 방금 환경변수로 지정한 경로의 gcc가 잘 실행된듯하다.

 

그런데 시그윈 실행한건 좋은데 홈디렉토리가 이상하게 Roaming의 카덴스사 관련 폴더로 지정되어있었다.

 

 

 

시그윈 터미널에서 계속 작업하지는 않을테니 그냥 넘어가고 gcc 빌드 테스트해보면

64비트용은 잘 빌드가 되는데

 

32비트로는 빌드를 실패했다.

 

 

내가 x86_64용 gcc를 썻기 때문인거같은데,

-m64, -m32가 뭐하는건지 찾아보니 32비트, 64비트 환경에 맞게 빌드하는걸로 같아보인다.

https://stackoverflow.com/questions/40612218/whats-the-differences-between-m32-m64-and-nothing-in-gccs-options

 

원래는 32, 64비트 둘다로 빌드할수 있어야하는데, 잘못된걸 골라서 이런듯하다.

싶다가 깃헙 다큐먼트 보다가 뭔가 잘못된거같다 싶더니

 

괜히 cygwin 붙은걸 설치한거같다.

다시 binutils와 gcc-core를 설치하고 도 그렇지만

내가 아무 생각이 없었나보다

 

어짜피 교차 컴파일러 만들건데

원래 책 내용대로 따라가면 /usr/cross에 이미 설치가 되는건지

아니면 교차컴파일러를 만들어서 해당 경로에 만들어진건지

 

 

아무튼 바이너리 유틸즈 만들기부터하면

x86이니 x86_64니 gcc니 하는걸 지금까지 너무 안한게 후회되면서도  뭐가뭔지 모르겠지만

 

타겟이랑, 프리픽스 설정해서 컨피그를 하려했지만

설정이 되지 않았다.

알고보니 엉뚱한 디렉토리에서 했더라

 

 

 

깃헙에서 말하는것과는 다르지만 경로이동해서 설정 진행하자

여기서 사용한 configure가 뭔가 싶긴한데

autoconfig랑 관련있는거같다.

 

어짜피 개발 환경이야 64비트에서 하고 타겟은 똑같으니 상관없겠거니해서 그냥 진행했다.

 

 

중간에 사진찍지 않아서 놓쳤는데

 

깃헙에 나온 내용데로 진행해서 바이너리 유틸즈 빌드랑 인스톨까지 마쳤고,

 

gcc도 x86_64-pc-linux로 타겟 설정해서 빌드하는데

바이너리 유틸즈도 한참걸렷지만

GCC는 장난아니게 오래걸려서 그냥 중지하고 내일 마저 진행해야되겠다.

 

 

 

 

 

 

 

 

QEMU는 저자분이 올리신 옛날버전으로 설치하고, 

잘 찾아보면 qemu 테스트용 리눅스 커널을 실행시켜볼수 있다.

 

그리고 개발환경 툴로

이클립스도 설치하고 끝

https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2022-06/R/eclipse-cpp-2022-06-R-win32-x86_64.zip 

+ Recent posts