2007년 3월 9일 금요일
리눅스 문제 분석과 해결, Mark Wilding/Dan Behman, 에이콘, ****
간만에 읽을 만한 책이라 판단되어 허겁지겁 읽어내려 갔지만, 결코 만만히 읽어치울 수 없어 마음을 고쳐잡고 찬찬히 읽고 있는 책. 어떤책인지 판단할 만큼 충분히 읽지는 못했지만 남은 부분이 무척이나 기대되는 책이다. 전반적으로 John Robbins가 쓴 Microsoft의 Debugging Applications 이란 책의 리눅스 버젼이라고 생각하면 크게 틀리지 않을 것 같다. 두 책 모두 stack이나 calling convenstion, Assembly level의 디버깅등 고급 디버깅 기법을 설명하고 있다. 단지 서로의 OS환경에 좀 더 의존하고 있기는 하지만, 이런 기술은 결국 하나로 통하기 마련아닌가? 여기서 어떤 책이 더 좋은지를 논할 필요는 없을 것 같다. 두 책 모두 훌륭해 보이며 둘 중 하나를 읽었다 하더라도 여전히 남은 하나를 읽을 가치가 있어 보인다.
2007년 2월 25일 일요일
임베디드 개발자를 위한 리눅스 커널 심층 분석, Robert Love, 에이콘 ****
http://www.acornpub.co.kr/book/linux-kernel 리눅스커널을 설명한 책들이 많이 나와 있지만 대부분의 책들이 소스코드를 설명하려 하다가 방대한 커널 소스 코드의 일부만을 다루고 흐지부지 끝을 맺는 경우가 대부분 이었다. 소스 코드 때문에 책의 두께는 두껍지만 별로 읽을 만한 내용도 없고 그렇다고 소스 코드에 대한 설명이 자세한 것도 아니다. 하지만 이 책에는 소스코드가 거의 없이 커널의 구현이 깔끔 단백하게 설명되어 있다. 다행이 좋은 내용의 책이 믿을 만한 출판사에서 번역되어 한글 번역도 훌륭하다. 시중에 나와 있는 리눅스 커널 설명서 중에서는 단연 추천하고 픈 책이다. 책 제목에 "임베디드 개발자를 위한" 이란 말이 들어 있는데 이것은 원저에는 없는 사족이며 출판사에서 임의로 붙인듯 하다. 사실 이 책은 임베디드 개발과 큰 관련은 없으며 실제로 같은 출판사에서 번역된 이 책의 개정판에는 "임베디드 개발자를 위한"이란 표현이 없는 것으로 알고 있다. OS 커널을 공부하거나 리눅스 커널에 관심있는 사람이라면 필독, 강추. (이 책 구매 후 개정판이 원서로 출간되었길래 개정판을 원서로 구매하였는데 얼마되지 않아서 개정판에 대한 번역서가 또 출판되었다. 아직 개정판 원서는 모두 읽지 못하였는데... 읽을때 마다 가슴이 쓰리다.)
Programming Applications for Microsoft Windows 4th ed., Jeffrey Richer, Microsoft *****
기술서적을 읽으면서 눈물을 흘려본적이 있는가? 기술서적이 재미있어 다음장에 나올 내용이 궁금해 본 적이 있는가? 이 책은 꽤 두꺼운 책이지만 책 두께가 더 두꺼웠으면 좋을 정도로 중요하고 흥미로운 내용으로 꽉 차있다. 개인적으로 이 책을 읽어보지 않은 사람들은 상용 윈도우즈 프로그램을 만들지 않았으면 하는 생각이 들 정도로 윈도우즈 개발자들이 꼭 알아야 하는 내용으로 가득 차 있다. 전산 전공이 아니라 개인적인 흥미로 프로그래밍을 시작한 나에게는 이 책을 통해서 단지 윈도우즈 환경에서의 프로그래밍 뿐만 아니라 부족했던 전산관련 지식을 업그레이드 할 수 있었고, 이 책에서 배운 내용들은 더이상 윈도우즈용 풀그림이 아닌 임베디드 환경에서의 풀그림을 작성하는데도 많은 도움이 되고 있다. 아직 이 책을 읽지 않은 개발자라면 무조건 강추. (내공이 한갑자 이상이라면 pass)
2007년 2월 20일 화요일
임베디드 시스템 펌웨어 분석, Ed Sutter, 에이콘 ***
http://www.acornpub.co.kr/book/firmware 임베디드 시스템의 펌웨어 개발자가 알아야 하는 내용을 깔끔하게 설명한 책. (너무 깔끔해서 가끔은 좀 불친절해 보임) 이책은 간단한 기능의 디버그 모니터의 소스 코드 전부를 CD로 제공하고 이 디버그 모니터의 구현을 설명하였다.
최초에 H/W팀으로 부터 받은 H/W를 어떻게 동작시키는지부터 시작하여 target보드에 기본적인 개발 환경을 어떻게 만드는지를 설명한다.
디버그 모니터 소스 코드를 통째로 지원하므로 자신의 h/w에 책에서 제공하는 디버그 모니터를 올려서 테스트 해 볼 수 도 있다. (단 당신의 target board가 책에서 지원하지 않는 CPU를 사용하여 구성되었다면 해당 CPU의 assembler를 사용하여 초기화 루틴을 직접 작성해야 한다.)
앞서 잠깐 언급했지만 이 책을 읽다보면 종종 내용이 너무 깔끔해 설명이 충분치 못하다고 느껴지는 부분이 많다. 사실 이런 부분을 모두 제대로 설명하려면 책 분량이 엄청나게 커질 것이기 때문에 저자를 비난하기는 힘들것 같다. 하지만 CD에 첨부된 PDF 문서들을 열심히 읽으면 대부분의 궁금증을 해결할 수 있을 것이다. 물론 이해하려면 약간의 내공이 필요한 문서들이지만 모두 읽고나면 뿌듯히 충만한 공력이 단전에서 느껴질 것이다.
최초에 H/W팀으로 부터 받은 H/W를 어떻게 동작시키는지부터 시작하여 target보드에 기본적인 개발 환경을 어떻게 만드는지를 설명한다.
디버그 모니터 소스 코드를 통째로 지원하므로 자신의 h/w에 책에서 제공하는 디버그 모니터를 올려서 테스트 해 볼 수 도 있다. (단 당신의 target board가 책에서 지원하지 않는 CPU를 사용하여 구성되었다면 해당 CPU의 assembler를 사용하여 초기화 루틴을 직접 작성해야 한다.)
앞서 잠깐 언급했지만 이 책을 읽다보면 종종 내용이 너무 깔끔해 설명이 충분치 못하다고 느껴지는 부분이 많다. 사실 이런 부분을 모두 제대로 설명하려면 책 분량이 엄청나게 커질 것이기 때문에 저자를 비난하기는 힘들것 같다. 하지만 CD에 첨부된 PDF 문서들을 열심히 읽으면 대부분의 궁금증을 해결할 수 있을 것이다. 물론 이해하려면 약간의 내공이 필요한 문서들이지만 모두 읽고나면 뿌듯히 충만한 공력이 단전에서 느껴질 것이다.
게임 개발자를 위한 C++, 서진택, 민커뮤니케이션 ***
도대체 왜 이 책의 제목에 굳이 "게임 개발자를 위한" 이라는 말이 들어갔는지 이해하기 힘들다. 차라리 이 책은 C++에 처음 입문하여 아직 C++에 완전히 적응하지 못한 개발자들에게 저자가 자신이 맨땅에 헤딩하며 얻은 C++관련 지식을 친절하게 알려주는 그런 책이다.
이 책의 저자는 자신이 C++에 대해서 모든 것을 아는것처럼 이 책을 기술하지 않았다. 오히려 저자는 자신도 모르고 있던 C++의 기능/정의 등이 왜? 그렇게 되었는지 끊임없이 탐구하면서 자신이 찾아낸 결과를 독자들에게 전달하여 주고 있다.
만일 C++ 문법책 한두권을 읽고 C++ 문법을 안다고 생각하는 C++ 초보 프로그래머라면 (설령 C언어의 고수라고 할지라도...) 일반적인 C++ 설명서가 놓친 부분들을 이 책의 저자와 함께 고민해보기를 권하고 싶다.
아직도 나는 헷갈리는 C++문법이 나오면(계속 C만 사용하다 보니, 때론 C++ 문법이 가물가물해진다.) 베게같은 C++ 문법책 대신에 이 책을 먼저 찾는다. 나보다 먼저 고민하고 나름대로의 모범답안을 적어놓은 선배의 족보같은 느낌... (마치 족보처럼 편집이나 구성은 별로 뛰어나지 않다. 하지만 내용은 쪽집게라는거~~ )
C만 사용하다 갑자기 10년전 대학시절에 배우고 쓰지않던 C++로 프로젝트를 수행해야 한다면 강추. 자신이 C++ 고수라고 생각한다면 통과.
P.S. 사실 C++ 문법은 평균적인 IQ의 인간이 익히기에는 너무 복잡하다. 자신이 C++의 고수라고 생각한다면 Effective C++ 과 More Effective C++을 읽어보기 바란다. 내용이 이해가 잘되신다면 당신을 고수로 인정합니다. 나는 아직도 이 두 책의 많은 부분이 이해되질 않는다. ㅠㅠ
이 책의 저자는 자신이 C++에 대해서 모든 것을 아는것처럼 이 책을 기술하지 않았다. 오히려 저자는 자신도 모르고 있던 C++의 기능/정의 등이 왜? 그렇게 되었는지 끊임없이 탐구하면서 자신이 찾아낸 결과를 독자들에게 전달하여 주고 있다.
만일 C++ 문법책 한두권을 읽고 C++ 문법을 안다고 생각하는 C++ 초보 프로그래머라면 (설령 C언어의 고수라고 할지라도...) 일반적인 C++ 설명서가 놓친 부분들을 이 책의 저자와 함께 고민해보기를 권하고 싶다.
아직도 나는 헷갈리는 C++문법이 나오면(계속 C만 사용하다 보니, 때론 C++ 문법이 가물가물해진다.) 베게같은 C++ 문법책 대신에 이 책을 먼저 찾는다. 나보다 먼저 고민하고 나름대로의 모범답안을 적어놓은 선배의 족보같은 느낌... (마치 족보처럼 편집이나 구성은 별로 뛰어나지 않다. 하지만 내용은 쪽집게라는거~~ )
C만 사용하다 갑자기 10년전 대학시절에 배우고 쓰지않던 C++로 프로젝트를 수행해야 한다면 강추. 자신이 C++ 고수라고 생각한다면 통과.
P.S. 사실 C++ 문법은 평균적인 IQ의 인간이 익히기에는 너무 복잡하다. 자신이 C++의 고수라고 생각한다면 Effective C++ 과 More Effective C++을 읽어보기 바란다. 내용이 이해가 잘되신다면 당신을 고수로 인정합니다. 나는 아직도 이 두 책의 많은 부분이 이해되질 않는다. ㅠㅠ
Inside Windows 2000, Solomon/Russinovich, Microsoft ****
수 많은 리눅스 커널 분석 책들이 있지만 의외로 Windows의 커널 동작에 대해서 설명한 서적은 찾기 힘들다. Windows가 소스 코드가 공개되지 않은 OS라는 점을 생각하면 별로 의외도 아니지만...
Windows 환경에서의 개발자 뿐만 아니라 다른 환경에서 개발을 해야 하는 개발자이더라도 OS의 동작 원리를 아는 것은 일반적으로 개발자의 내공을 높이는데 결정적인 계기를 만들어 준다. OS 마다 최종적으로 제공하는 기능은 비슷 비슷 하지만 이를 구현하기 위한 디자인은 서로 조금씩 다르기 마련이며, 이러한 디자인의 차이점을 공부하는 것은 그야말로 엄청난 내공을 쑥쑥 키우는 영양제가 될 듯하다.
기존에 OS나 전신이론에 대한 기초 지식이 없이 바로 읽기에는 약간 부담되는 내용이므로 내용이 절반 이상 이해되지 않는다면 다른 공부를 좀 더 하고 다시 도전하기 바란다.
내가 읽을 것은 Windows2000용이었으나 Windows XP나 Vista용이 나왔을지도 모르겠다. 하지만 기본 내용이 많이 바뀌었을 것 같지는 않다.
번역서도 있으나, 절.대. 추천하지 않는다. (최소한 내가 본 초판 번역서는 정말 엉망이었다.) 중급이상 개발자라고 생각한다면 강추.
Windows 환경에서의 개발자 뿐만 아니라 다른 환경에서 개발을 해야 하는 개발자이더라도 OS의 동작 원리를 아는 것은 일반적으로 개발자의 내공을 높이는데 결정적인 계기를 만들어 준다. OS 마다 최종적으로 제공하는 기능은 비슷 비슷 하지만 이를 구현하기 위한 디자인은 서로 조금씩 다르기 마련이며, 이러한 디자인의 차이점을 공부하는 것은 그야말로 엄청난 내공을 쑥쑥 키우는 영양제가 될 듯하다.
기존에 OS나 전신이론에 대한 기초 지식이 없이 바로 읽기에는 약간 부담되는 내용이므로 내용이 절반 이상 이해되지 않는다면 다른 공부를 좀 더 하고 다시 도전하기 바란다.
내가 읽을 것은 Windows2000용이었으나 Windows XP나 Vista용이 나왔을지도 모르겠다. 하지만 기본 내용이 많이 바뀌었을 것 같지는 않다.
번역서도 있으나, 절.대. 추천하지 않는다. (최소한 내가 본 초판 번역서는 정말 엉망이었다.) 중급이상 개발자라고 생각한다면 강추.
피드 구독하기:
글 (Atom)