예전에 OS개발30일프로젝트 책보고 어느정도 진행하다가 커서띄우기?까지인가 하다가 말았던적이 있다.

os만들길할까 언어만들기해볼까 고민하다가 

가장 생각없이 할수있을것같은 책이어서 이 책을 진행해보려고함.

 

근데 이 책이 15년도 전에 나온 책이라 자료들링크가 안된다.

 

이 링크에 들어가도 안나오는데

http://www.zob.ne.jp/~c.mos/soft/bz.html

 

다행이 우리나라분이 따로블로그에 파일올려둠

https://m.blog.naver.com/websearch/70029495287

 

바이너리 에디터 (2진수 편집기)

"OS구조와 원리" 란 책을 읽다가 알게된 프로그램인데 바이너리 파일 작성 및 수정에 좋은 프로그램인 것...

blog.naver.com

 

나도 백업삼아서 여기다 추가로도올림

Bz162.zip
0.05MB

 

 

바이너리 헥스 에디터인데

키보드입력하면 좌측에는 헥스값이 우측에는 실제값이 나온다.

숫자 1 하면 31

0은 30

a는 61

b는 62식으로 찍힘

 

다시 돌아와서 책이 시키느데로 다시찍어보자

 

일단 000037까지 적긴했는데

90이후부터 168000까지 0누르면된다고한다.

그러면 37~90까진 뭘까?

 

별 내용이없으니 그냥 복붙으로 168000까지내려왓다.

 

 

중간에 0001F0과 001400에 00을하면안된다고해서 그부분들좀 고쳐주자

 

 

뭔진모르겟지만 디스크이미지를 만들었다!

설명대로 크기는 1,474,560 바이트(1440 x1024)

이름은 helloos.img로 저장

 

원래같으면 플로피디스크에다가 이걸 넣어서 부팅시켜 확인해야하는데 플로피디스켓이 없다.

예전에 내가 어떻게 했나 다시보면

 

https://throwexception.tistory.com/628

 

os만들기 - 2. 에뮬레이터에서 돌리기 삽질기 feat.msys

자료에서보면 boshs에 방금 만든 이미지를 돌리더라 바로 돌릴수 있는줄 알고 해봤지만 - 부팅가능한 이미지가 아니라고 아무것도 뜨지 않는다. 다시 잘보니 toolset으로 부팅 가능 이미지로 만들

throwexception.tistory.com

 

 

대충 이 사람이 만든걸 썻던것같다.

 

https://github.com/fakefish/OSASK/tree/master

 

GitHub - fakefish/OSASK: 30天自制操作系统的学习

30天自制操作系统的学习. Contribute to fakefish/OSASK development by creating an account on GitHub.

github.com

 

 

 

위 깃헙 파일 tolset 폴더에

helloos0 폴더만들고 내가 만든 이미지 복사

z_new_w에 있는 cons_9x와 cons_nt.bat 가져오고

 

install.bat과 run.bat 작성

 

 

 

 

 

cons_nt.bat 실행후 run 명령을 주면

qemu가 돌아가는데 이미지를 잘못 만들었는지 not a bootable disk가 뜬다. 

 

 

 

 

내가 뭘 잘못했는가 이해가안갓는데

위에서 아까 안쓴부분이 문제인것같았다.

다행이 이전에 내가 뭘보고 만든건진 모르겟지만 전체 작성한 기록이 있어서 참고해서 따라만듬

 

https://throwexception.tistory.com/629

 

os만들기 - 3. 글자찍히는 부팅가능한 바이너리 이미지 만들기

os만들기 - 2에서 한 모든 일들은 다 쓸모없는 짓이었다. 나중에 다시보니 지금 하는 바이너리 파일 만드는건 모든 바이너리 코드들을 내 마음대로가 아니라 똑같이 만들어야 부팅가능한 이미지

throwexception.tistory.com

 

 

 

 

 

 

 

다행이 이전 링크에 내가 처음 만든 이미지파일도 올려놔서 따라서 보고 뭐가 문젠지 찾아 고ㅕ쳤다.

바이너리 에디터로 부팅하는 이미지 만듦

helloos.img
1.41MB

 

 

 

 

시리얼 통신 책 읽은 다음에 본 책은

임베디드 하드웨어 이해와 설계

2006년도에나온 대충 20년전 책이다.

 

이 책을 왜 봤느냐

임베디드 보드를 어떻게 만드는지 궁금해서 봤다

 

기본적인 컴퓨터 개념부터 어셈블리어, 전기전자, 주변장치를 다룬 후

마이크로컨트롤러로 간단한 컴퓨터 만드는 내용을 다룬다.

 

사실 내가 바란건 ARM 코어 A 시리즈로 어떻게 임베디드 리눅스 보드 만드는지 궁금하기도 했지만

그것보다 낮은 레벨(이 책 내용도 제대로 이해못하고 대충 넘어갔으나) 의 내용이지만 보게되었음

 

앞에 컴퓨터 구조나 전기전자 내용은 잘 이해하는건 아니지만 이전에 공부하면서 여러번 봤던 개념이라 대충 넘어갈수 있어고

주변장치 시리얼, USB, 네트워크 부분은 꽤 유익하게 볼수 있엇다

마이크로 컨트롤러에 주변장치를 어떻게 연결해서 사용하는지를 대강 파악하는데 도움은 되었음

 

뒷부분에 실제 컴퓨터 만드는 내용들이 있는데 내가 이해하기 힘들어서 AVR 파트만 대충 보고 말았다.

ATTINY15 는 내장 오실레이터가 있으니 따로 진동자 안달고 어떻게 프로그래밍하는지 

이 책의 전체 내용중 10~20% 정도 이해한것같긴하지만 처음 이만큼 읽은게 어딘가싶다.

 

 

다음에 볼 책은

보안에 미쳐라에서 소개했던 운영체제만들기 보려고하는데 걱정이다.

 

https://www.yes24.com/Product/Goods/2143795

 

임베디드 하드웨어 이해와 설계 - 예스24

이 책의 가장 큰 특징은 소프트웨어 개발자가 임베디드 하드웨어를 공부할 때 저자의 도움으로 쉽고 재미있게 하드웨어를 학습할 수 있다. 한마디로 임베디드 분야로 영역을 넓히는 소프트웨어

www.yes24.com

오랜만에 본 책은 시리얼 통신 핸드북

 

볼 책은 많이 찾아두긴 했는데 영 읽히지가 않아서 뒤적뒤적하다가

데이터 통신하는쪽이 그나마 덜 부담스러워서 본 책이다.

 

시리얼 통신이라 함믄

uart, spi, i2c가 어떻게 생겨있는지 정도만 이해하고 있었지

 

ttl 레벨을 증폭시켜서 쓴다느니 하는 내용은 잘 감이 잡히지 않은 상태였다.

그리고 컴퓨터는 병렬로 처리하는대 어떻게 직렬통신을 한다는것인가 잘 이해안가는 부분이 많았는데

 

이런 궁금했던 부분들을 해소해준 책이다.

 

직렬 통신은

데이터 처리부 - UART - 라인트렌시버 - 케이블 - 라인트렌시버 - uart - 데이터 처리부 

같은 식으로 구성되어있는데

 

데이터 처리부에서 병렬 데이터를 uart 가밭아 직렬로 만들고

라인트렌시버를통해 ttl, cmos 전압 레벨을 띄워서 통신해주는 거더라 

 

그리고 각 기기간 통신 속도를 맞춰줘도 속도가 안맞으면 어떻게 처리하는건가 싶엇느ㅡㄴ데

이걸 오버런 에러라 부르며 별도의 핀을통해 하드웨어적인 방법이나 소프트웨어 적인 방법으로 조절하는걸 알았다.

 

그리고 rs-232에 사용하는 db-9 커넥터의 경우 핀이 9개인데 아두이노 에서 쓰는 직렬통신은 핀을 3개만 써서 왜 이런건가 싶엇는데 핀 3개 쓰는경우 5개 쓰는경우 9개쓰는 경우 등 다 에러 조절을 위해서 이렇게 늘려서쓸수있는거더라

 

rs-232, rs-422, rs-485도 구분이 좀됬다.

232의 경우 언발랜스드 신호로 그라운드 기준으로 했다면

422, 485는 차동 신호로 거리를 늘린점

422는 1:N이지만 485는 N:N 차이 정도

 

중간에 회로 구성에 대한 부분은 대충 넘어가기도 했고

마지막에 커넥터나 무선 통신 부분도 

와이파이, 블루투스, 지그비, 로라 등 표로 간략하게 정리된게 좋았음.

 

국내에 직렬통신에 이만큼 진심인 책은 없을듯싶다

 

 

https://www.yes24.com/Product/Goods/102907829

 

[전자책]시리얼통신 핸드북 - 예스24

시리얼통신 반도체 ASIC 및 하드웨어 개발자가 쓴 상세 표준 내용과 현장 실무 노하우를 담은 시리얼통신 핸드북비동기 시리얼통신 RS-232, RS-422, RS-485 통신방식과 종단저항, 아이솔레이션, 접지

www.yes24.com

 

 

+ Recent posts