달력

112017  이전 다음

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  

'mint64'에 해당되는 글 3건

  1. 2015.03.01 3부 마무리했다.
  2. 2015.02.19 드디어 IA-32e모드로 넘어갔다!!!!
  3. 2015.01.25 BootLoader test

와~!!! 콘솔쉘 마무으리!!!



키보드, 인터럽트, 타이머에서 원하는 동작을 하기위해 해당 포트에 정의된 데이타를 주고 받는다.
디바이스 드라이버에 대해 자세히는 몰라도 대략적으로 어떻게 코드를 짜야되는지 맛을 봤던 좋은 시간이었다.


읽을때는 이해했는데 시간 지나고 다시 읽으려고하니 기억이 나질 않는다. 양도 많고, 기억력도 썩 좋질 않아서...
4부 가기전에 1, 2, 3부 정리 좀 하고 가야지


하나 아쉬운건 CS, DS와 실제 코드나 데이타가 메모리에 올라가는 관계에 대하여 명확하지가 않다...

써놓고도 뭔말인지...우선 직진이다!! ㅋㅋㅋㅋ

저작자 표시 비영리
신고
Posted by 오산돌구

아~!! 드디어 IA-32e 모드로 넘어갔다.



의지가 약해서 듬성듬성 하다보니까 오래걸렸다. 이젠 놀만큼 놀았다고 생각해서 우직하게 준비해야되는데 동기부여가
아직 덜 됐나보다. ImageMaker때문에 이틀정도 걸렸다... WriteKernelInformation 함수에 lseek부분에서 오류가 발생!
이틀동안 삽질하다가 포기하는 마음으로 #include <unistd.h> 추가해줬더니 정상동작했다!! : )


asm이나 간단한 C소스는 직접 입력했는데 ImageMaker, makefile, elf_xxx.x파일은 복붙했다.   앞으로 뭐가 있나 다시 봤는데...타이핑하는게 더 줄것같다ㅋㅋㅋㅋㅋ



10장에서 IA-32e 모드에 스택을 지정하는 부분이 있는데 Stack segment 를 0x10으로 설정하고 주석은 다음과 같았다.

; 스택을 0x600000~0x6FFFFF 영역에 1MB 크기로 생성

응!!  0x10이랑 0x600000 은 뭔 관계지? 했는데 딱맞는 글이!!  http://jsandroidapp.cafe24.com/xe/4588

즉 16비트 리얼모드만 하한선을 정하고 32/64에서는 의미없다. 0x10은 세그먼터 셀렉터의 개념으로 

세그먼트 디스크립터를 가리킨다.

저작자 표시 비영리
신고
Posted by 오산돌구

BootLoader test

개발하면서 2015.01.25 20:06

책산지는 거의 2년정도 된것같다. 혼자 커널을 공부하자니 막막해서 따라하기 식으로 하면 될것같아
덜컥 사버렸다. 1년전 시도했던것 같은데 환경 세팅하다가 흐지부지 됐던...으악!!! 진득하게 좀 하자!!
실습하면서 생긴 이슈나 깨달은것들을 남기기로 했다 나중을 위한것도 있지만 나 스스로에게 동기부여를 위해서?;;;


이번 포스트는 p.131까지 진행했다.


p.59에 binutils 빌드를 하는데 아래와 같은 오류가 발생했다.

intl이라는 라이브러리를 못찾겠다고 한다. 3년도 더 된 책이라 버젼이 많이 달라졌다.
뜨끔하면서 세월 더 지나가기전에 책 한번 봐야겠다는 의지가 생긴다.
binutils빌드는 책보다 http://jsandroidapp.cafe24.com/xe/3171 보면서 하고, intl라이브러리가 없다고 하는건
아래 그림과 같이 libintl-devel, libintl8 바이너리 설치를 해주면 된다.



qemu는 공식 사이트보다 http://kkamagui.tistory.com/attachment/cfile9.uf@113BF3354EA8233D2B1020.zip 로
하는게 좋은것같다.


부트로더 테스트 성공!



레지스터가 익숙하지 않아서 진행하다가 레지스터 얘기 나오면 3.2장을 펼쳐보게 된다.
짧은 호흡으로 계속 가서 좀 익숙해져야겠다.


====================== 2015/01/29 추가 ======================

@gnutel님 만나서 얻은 꿀팁  virtual box에서 설치한 리눅스 환경에서 64비트 멀티코어 OS원리와 구조 실습하기


1. 우선 Xming을 설치한다. http://sourceforge.net/projects/xming/

2. putty 설정을 수정한다.


3. apt-get, aptitude같은걸로 qemu, nasm 설치

4. windows에서 작업한 Disk.img 복사해서 테스트(이미지는 5장꺼...ㅋㅋㅋ)



작업한걸 옮기자니 그게 귀찮아서 윈도우로 실습 하고있는건 모순....ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ



저작자 표시 비영리
신고
Posted by 오산돌구