임베디드 리눅스 관련 사이트 목록

목차

1. 임베디드 시스템과 리눅스

1. 임베디드 시스템

2. 리눅스

3. 임베디드 리눅스

4. 실시간 운영체제

5. 윈도우 시스템

2. 임베디드 리눅스 개발 방법론

6. 제품 기획 단계에서 고려할 사항

7. 타겟 보드 선정 방법

8. 장치 선정과 드라이버 구현

9. 임베디드 리눅스 이식 절차

10. 임베디드 리눅스 환경에서 응용 프로그램 개발 절차

11. 개발 상용 제품을 위한 패키징

3. 리눅스 개발 환경 구축과 이식

12. 교차 개발 환경 구축

13. 네트워크와 디버깅 환경 구축

14. 부트 스트랩 로더 이식

15. 리눅스 커널 환경 설정과 컴파일

16. 루트 파일시스템 구축

17. 실시간 리눅스 커널 이식

18. 윈도우 시스템 환경 이식

19. 부팅과 설치 확인

20. 상용 제품을 위한 패키징

 

1부. 임베디드 시스템과 리눅스

1. 임베디드 시스템

□ 『C, C++로 작성하는 임베디드 시스템 프로그래밍』, 마이클 바 저, 이석주 역, 한빛미디어, 2000

C와 C++ 프로그래밍 언어를 사용하여 임베디드 시스템을 제작하는 방법을 기술하고 있다. 아쉽게도 이 책에 나오는 보드를 국내에서 구하기가 어렵기 때문에 본격적인 실습이 불가능하다는 단점이 있다. 하지만 임베디드 시스템에 대한 개념을 단기간에 잡기에는 적당하다.

□ 『네트워크 프린팅』, 토드 레이더마커, 매튜 개스트 저, 박재호, 이영미 역, 한빛미디어, 2001

리눅스와 유닉스를 서버로, 윈도우, 맥, 넷웨어를 클라이언트로 구성한 네트워크 환경에서 인쇄하는 방법을 기술한다. BOOTP, DHCP와 같은 네트워크 프로토콜을 사용해 프린터를 부팅하는 방법도 소개한다.

http://wombat.doc.ic.ac.uk/foldoc/index.html

FOLDOC 컴퓨터 용어 전문 사전이다.

http://www.linuxdevices.com/articles/AT4936596231.html

임베디드 리눅스를 탑재하고 있는 임베디드 장치를 소개하는 페이지이다. PDA를 제외한 여러 장치를 종류별로 제시하고 있다.

http://www.linuxdevices.com/articles/AT8728350077.html

임베디드 리눅스를 탑재했거나 탑재할 수 있는 PDA를 소개하는 페이지이다.

http://www.linuxdevices.com/articles/AT4313418436.html
임베디드 리눅스를 탑재할 수 있는 SOC(System-On-Chip)을 소개하는 페이지이다.

http://www.classicgaming.com/
고전 게임을 소개하는 페이지이다. MSX와 애플을 비롯한 각종 플랫폼을 흉내낸 애뮬레이터와 게임용 롬 이미지를 다운로드할 수 있다.

http://quest.arc.nasa.gov/mars/ask/about-mars-path/pathfinder_computer.txt
패스파인더에 탑재한 컴퓨터 사양을 설명하는 기사이다.

http://quest.arc.nasa.gov/mars/ask/about-mars-path/Assembly_language_programming_used_in_Pathfinder.txt
패스파인더 개발을 위해 사용한 어셈블리어에 대해 설명하는 기사이다.

http://quest.arc.nasa.gov/mars/ask/about-mars-path/Selection_of_programming_languages.txt
패스파인더 개발을 위해 사용한 프로그래밍 언어 선택과 관련한 기사이다.

http://www.windriver.com/customer/html/jpl.html
VxWorks를 만든 윈드리버에서 만든 제트추진연구소에 대한 기사이다.

http://www.iews.na.baesystems.com/space/pdf/0887.pdf
패스파인더에 탑재한 마이크로프로세서를 소개하는 기사이다.

목차

 

 

2. 리눅스

『리눅스 그냥 재미로: 우연한 혁명에 대한 이야기』, 리누스 토발즈, 데이비드 다이아몬드 저, 안진환 역, 한겨례신문사, 2001

리누스 토발즈가 집필한 리눅스에 대한 일종의 자서전으로 리눅스 개발의 이면에 숨겨진 배경 이야기를 허심탄회하게 풀어내고 있다. 예상과는 달리 내용이 따분하지 않고 재미있기 때문에(제목을 한번 보라!) 언제 어디서나 부담 없이 읽을 수 있는 책이다.

□ 『Operating System Concepts 6th edition』, A. Silberschatz, J. Peterson, P. Galvin, John Wiley & Sons, 2001
일명 '공룡책'이라고 불리며 운영체제에 대한 일반 내용을 다루는 기본서이다. 운영체제라는 세계에 첫 걸음을 내딛도록 도와준다. 대학교에서 운영체제 과목 교과서로 많이 사용하고 있으며, 대학 3학년 이상 학생이 읽기에 적합하다.

□ 『리눅스 커널의 이해』, 다니엘 보베이, 마르코 체사티 저, 이 호, 심마로 역, 한빛미디어, 2001
오라일리 Understanding the Linux Kerne』의 번역판이다. 리눅스 커널 내부를 탐험하고 싶은 사람에게 등불이 될 책으로 리눅스나 유닉스 운영체제에 대해 중급 이상의 지식을 확보한 개발자에게 적합하다.

□ 『러닝 리눅스 3판』, 매트 웰시, 라 카우프만, 칼레 딜하이머 저, 이만용 역, 한빛미디어, 2001

오라일리 『Running Linux 3rd Edition』의 번역판이다. 리눅스를 처음 접하는 독자가 고민하면서 읽을 가치가 있는 ‘정보를 위한 정보를 담은 메타북(meta-book)’으로 리눅스라는 운영체제에 철학적으로 접근하는 구성 방식이 돋보인다. 운영체제를 전혀 모르는 완전 초보자에게는 다소 어려울 수도 있다.

□ 『오픈 소스』에릭 레이몬드 외 저, 송창훈 외 역, 한빛미디어, 2000
오라일리 Open Source: Voice from the Open Source Revolutions』의 번역판이다. 공개 소스와 관련한 여러 선구자들이 수필식으로 적은 글을 묶어놓은 책으로 리눅스를 비롯한 공개 소스 소프트웨어가 어떤 식으로 발전해왔으며 앞으로 어떻게 발전할지 전반적인 구도를 제시한다.

□ 『Operating Systems: Design and Implementation』 Andrew S. Tanenbaum, Prentice-Hall, 1987
타넨바움 교수가 지은 MINIX 운영체제를 소개하는 책이다. 리누스도 이 책을 접합 후부터 스스로 운영체제를 만들 생각을 했다니까, 실제 운영체제가 어떻게 돌아가는지 구체적인 동작 원리에 관심있는 독자는 한 번씩 읽어보면 도움이 될 것이다.

http://www.linuxhq.com/
리눅스 커널에 대한 각종 정보를 체계적으로 정리한 본부 사이트이다. 각 커널 버전에 따라 무엇이 어떻게 변했으며, 패치가 어떻게 이뤄지는지 잘 정리하고 있다.

http://www.kernel.org
리눅스 커널을 배포하는 공식 사이트이다. 과거부터 현재까지 모든 리눅스 커널을 유지하고 있으므로, 이 사이트에 들러 필요한 버전을 가져오기 바란다.

http://www.livinginternet.com/?i/iw_unix_linux.htm
리눅스 역사를 간략하게 기술하는 사이트이다. 간결하면서도 있어야 하는 내용은 모두 자리잡고 있다.

http://www.li.org/linuxhistory.php
리누스 토발즈가 유즈넷(USENET)에 올린 글을 토대로 초창기 리눅스 역사를 재조명하는 사이트이다.

http://www.memalpha.cx/Linux/Kernel/
리눅스 커널 버전과 관련한 역사를 한눈에 살펴볼 수 있다. 각 버전별로 리눅스 커널이 정확하게 몇 월 몇 일 몇 시에 나왔는지 궁금하면 이 사이트를 방문해보기 바란다.

http://lwn.net/2001/features/Timeline/
2001년 한해동안 리눅스와 관련한 각종 사건을 월 단위로 정리하고 있다. 아쉽게도 1998년부터 추적할 수 있다. 연도별 시간띠를 보면서 과거에 어떤 일이 있었는지 기억을 한번 더듬어보기 바란다.

http://www.nwfusion.com/newsletters/linux/2001/01086735.html
아마존이 리눅스를 웹서버로 채택했다는 소식을 담은 기사이다.

http://www.computer.org/computer/homepage/0202/ec/
리눅스가 헐리우드에서 맹활약하는 사례를 제시하고 있다. 블록버스터 영화에서 리눅스를 어떻게 사용하는지 실례를 들어 설명하고 있다.

http://www.fsf.org
자유 소프트웨어 재단 홈페이지이다. GNU 프로젝트에 대한 여러 가지 내용을 담고 있다.

http://www.fsf.org/software/software.html
GNU에서 개발한 GPL과 LGPL을 따르는 각종 소프트웨어 목록과 기타 공개 소스 소프트웨어 목록을 제공하고 있다. 그냥 심심풀이로 훑어보기만 해도 리눅스에 얼마만큼 많은 응용 프로그램이 존재하는지 확인할 수 있다.

http://www.pcmag.com/article/0,2997,ss%253D1490%2526s%253D25068%2526a%253D17930,00.asp
리누스 오른팔인 알란 콕스가 커널 2.4 유지 보수를 더 이상 맡지 않는다는 기사를 담은 페이지이다.

http://www.marcelothewonderpenguin.com/
알란 콕스 뒤를 이은 새로운 커널 2.4 유지보수 펭귄(maintainer)인 마르첼로(Marcelo Wormsbecker Tosatti)의 신상정보를 담은 페이지이다.

http://www.linuxdoc.org/
리눅스 문서 프로젝트(LDP, Linux Document Project)와 관련한 결과 문서를 제공하는 홈페이지이다. 리눅스와 관련한 HOW-TO, FAQ를 위시하여 도움이 될만한 각종 문서를 체계적으로 제공한다.

http://www.kldp.org
리눅스 한글 문서 프로젝트 홈페이지이다. 리눅스 관련 각종 번역 문서와 창작 문서를 분류별/주제별로 제공한다. 또한 팁 게시판과 사용기도 정리해놓았다.

http://kldp.org/root/cathedral-bazaar/cathedral-bazaar.html#toc10
에릭 레이먼드씨가 작성한 시장과 성당을 번역한 글이다. 이 글이 인터넷에 오른 이후부터 공개 소스 소프트웨어 운동이 한층 활기를 띄게 된다.

http://www-903.ibm.com/developerworks/kr/index.html
IBM에서 운영하는 리눅스 개발 사이트(developerWorks 한글판)로서 리눅스와 관련한 여러 유용한 정보를 제공한다.

http://safari.informit.com/mainhom.asp?home
InformIT에서 운영하는 사파리 서비스 홈페이지이다. 사파리 서비스는 구매에 앞서 책 내용을 온라인으로 검색할 수 있도록 지원하는 서비스이다. 아쉽게도 유료이다. 사파리 멤버 중 하나인 오라일리 출판사 홈페이지에서도 바로 사파리 서비스에 접근할 수 있다.

http://www.google.com/grphp?hl=en
유즈넷 기사를 검색할 수 있는 구글(Google) 검색엔진 홈페이지이다. 구글에 앞서 이러한 서비스를 제공하던 데자뉴스(deja.com)시절부터 현재까지 엄청난 분량의 기사를 담고 있다. ISP에서 제공하는 뉴스그룹 서비스에 불만을 품고 있다면 반드시 한번 사용해보기 바란다.

목차

 

 

3. 실시간 운영체제

□ 『리눅스 커널의 이해』, 다니엘 보베이, 마르코 체사티 저, 이 호, 심마로 역, 한빛미디어, 2001
오라일리 『Understanding the Linux Kernel』의 번역판이다. 리눅스 커널 내부를 탐험하고 싶은 사람에게 등불이 되어줄 책으로 리눅스나 유닉스 운영체제에 대해 중급 이상 지식을 확보한 개발자에게 적합하다.

□ 『러닝 리눅스 3판』, 매트 웰시, 라 카우프만, 칼레 딜하이머 저, 이만용 역, 한빛미디어, 2001

오라일리 『Running Linux 3rd Edition』의 번역판이다. 리눅스를 처음 접하는 독자가 고민하면서 읽을 가치가 있는 ‘정보를 위한 정보를 담은 메타북(meta-book)’으로 리눅스라는 운영체제에 철학적으로 접근하는 구성 방식이 돋보인다. 운영체제를 전혀 모르는 완전 초보자에게는 다소 어려울 수도 있다.

□ 『오픈 소스』, 에릭 레이몬드 외 저, 송창훈 외 역, 한빛미디어, 2000
오라일리 『Open Source: Voice from the Open Source Revolutions』의 번역판이다. 공개 소스와 관련한 여러 선구자가 에세이 형식으로 적은 글을 묶은 책으로 리눅스를 비롯한 공개 소스 소프트웨어가 어떤 식으로 발전해왔으며 앞으로 어떻게 발전할지 전반적인 구도를 제시한다.

□ 『Embedded Linux』, John Lombardo, New Riders, 2002

x86 플랫폼에서 리눅스를 최소한으로 패키징하는 방법을 기술한다. 아주 뛰어나거나 새로운 내용은 담고 있지 않지만, x86에서 임베디드 리눅스를 재미로 탑재해보려는 초보자에게는 도움을 줄 수 있다.

http://www.linuxdevices.com/articles/AT9888936014.html
임베디드 리눅스와 관련한 요약 가이드를 제공하는 기사이다. 여러 가지 읽을 거리에 대한 링크를 제공한다.

http://www.linuxdevices.com/articles/AT3620938516.html
임베디드 리눅스를 위한 요구 사항을 분석한 기사이다. PDA와 같은 특정 분야에 치우치지 않고 전반적인 흐름을 잘 짚고 있다.

http://www.linuxdevices.com/articles/AT9202043619.html
임베디드 리눅스에서 동작하는 여러 윈도우 시스템을 소개하는 기사이다. 윈도우 시스템을 공개 소스와 상용 제품으로 나누어 정리하였다.

http://www.linuxdevices.com/articles/AT2760742655.html
다양한 임베디드 리눅스 배포판을 소개한 기사이다. 공개 소스와 상업적 지원 배포판의 특징과 URL을 간략하게 정리하고 있다.

http://www.linuxdevices.com/files/article011/index.html
임베디드 리눅스에 대한 현재 상태(시장 상황, 향후 전망)를 제시한 기사이다. 다양한 도표와 그래프를 통해 통계 자료를 제공하므로 전략적인 결정에 참고하기 바란다.

http://www-903.ibm.com/developerworks/kr/linux/library/l-emb.html?dwzone=linux
리눅스가 임베디드 시장을 석권할 수 있는 이유를 제시한 기사이다.

http://www-903.ibm.com/developerworks/kr/linux/library/l-embl.html?dwzone=linux
임베디드 리눅스 애플리케이션에 대한 개요를 소개하는 기사이다. 임베디드 리눅스와 관련한 기본 사항을 잘 요약하고 있다.

http://www.uclinux.org/
임베디드 리눅스 마이크로 컨트롤러 프로젝트이다. MMU 없는 CPU에서 동작하는 리눅스에 대한 이식 작업 성과를 볼 수 있다.

http://www.linux-mtd.infradead.org/
리눅스를 위한 MTD(Memory Technology Device) 서브 시스템과 관련있는 각종 사항을 정리한 홈페이지이다.

http://www.microsoft.com/Windows/embedded/xp/evaluation/compare/notlinux.asp
임베디드 환경에서 동작하는 윈도우계열 운영체제와 리눅스계열 운영체제를 비교한 자료이다.  마이크로소프트사에서 작성했으므로 윈도우계열에 높은 점수를 주고 있다.

http://www.lineo.com/news_events/announcements/2001/12.20.html
마이크로소프트사에서 발표한 임베디드 윈도우 계열 운영체제와 임베디드 리눅스 계열 운영체제 비교 문건을 반박하는 내용을 담고 있다.

http://www.lynuxworks.com/products/whitepapers/xp-vs-linux.php3
임베디드 환경에서 동작하는 윈도우계열과 리눅스계열 운영체제를 비교한 자료이다. 리눅스웍스에서 작성했으므로 리눅스계열에 높은 점수를 주고 있다.

목차

 

 

4. 실시간 운영체제

□ 『Operating System Concepts 6th edition』, A. Silberschatz, J. Peterson, P. Galvin, John Wiley & Sons 2001
일명 '공룡책'이라 불리며 운영체제에 대한 일반 내용을 다루는 기본서이다. 운영체제라는 세계에 첫 걸음을 내딛도록 도와준다. 대학에서 운영체제 과목 교재로 많이 사용하며, 대학교 3학년 이상이 읽기에 적합하다.

□ 『리눅스 커널의 이해』, 다니엘 보베이, 마르코 체사티 저, 이 호, 심마로 역, 한빛미디어 2001년
오라일리 『Understanding the Linux Kernel』의 번역판이다. 리눅스 커널 내부를 탐험하고 싶은 사람에게 등불이 되는 책으로 리눅스나 유닉스 운영체제에 대해 중급 이상의 지식을 확보한 개발자가 읽기에 적합하다.

□ 『The Design of the UNIX Operating System』, Maurice J. Bach, PTR/PH 1990
유닉스 운영체제 설계 사상을 담고 있는 가장 기본적인 바이블이다. 유닉스 내부 구조를 꿰뚫어야 할 필요성이 있다면 이 책부터 시작하기 바란다. 대학교 4학년 이상이 읽기에 적합하다.

□ 『UNIX Internals: The New Frontiers』, Uresh Vahalia, Prentice Hall 1996            
앞서 『The Design of the UNIX Operating System』이 유닉스 내부 구조에 대한 바이블이라면 이 책은 다양한 유닉스 변종에 대한 주해서로 볼 수 있다. 명쾌한 설명과 풍부한 예제는 이 책을 손에서 떼기 어렵게 만든다. 대학교 4학년 이상이 읽기에 적합하다.

http://dictionary.cambridge.org/
캠브리지 온라인 사전이다.

http://wombat.doc.ic.ac.uk/foldoc/index.html
FOLDOC 컴퓨터 용어 전문 사전이다.

http://research.microsoft.com/~mbj/Mars_Pathfinder/Authoritative_Account.html
화성 탐사선인 패스파인더가 문제를 일으켰던 원인과 해결책을 설명한 글이다.

http://qdn.qnx.com/articles/dec1200/realtime.html
실시간과 실시간 운영체제에 대한 기본 소개가 나온 글이다.

http://www.faqs.org/faqs/realtime-computing/faq/
실시간에 대해 자주 나오는 각종 질문을 정리한 FAQ를 제공한다.

http://www.linuxdevices.com/files/elecjun00/yodaiken/yodaiken.pdf
FSMLabs에서 개발한 RTLinux에 대한 발표 자료이다. 하드 실시간을 리눅스에서 어떻게 구현했는지 설계 사상이 잘 나타나 있다.

http://fsmlabs.com/community/
FSMLabs에서 지원하는 RTLinux 커뮤니티 사이트이다. 설치 방법, FAQ, 백서와 같은 자료가 있다.

http://www.aero.polimi.it/projects/rtai/
리니오에서 지원하는 RTAI 커뮤니티 사이트이다. 설치 방법, FAQ, 백서와 같은 자료가 있다.

http://www.mvista.com/realtime/
몬타비스타에서 개발한 실시간 리눅스 커널 패치에 대한 홈페이지이다. 실시간 리눅스 커널 패치와 관련한 여러 자료가 있다.

http://www.mech.kuleuven.ac.be/~bruyninc/rthowto/rtHOWTO/rtHOWTO.html
실시간과 임베디드에 대한 How-to 문서로써, 기본 내용을 간결하면서도 체계적으로 정리하고 있다.

http://www.wired.com/news/print/0,1294,13987,00.html
윈도우 NT를 탑재한 미해군 USS 요크타운호가 두 시간 동안 바다에서 표류할 수 밖에 없었던 원인을 분석한 기사이다.

http://www.pasc.org/
포직스 표준을 제정하는 PASC(Portable Application Standards Committee) 홈페이지로, 포직스에 대한 정보도 얻을 수 있다.

http://www.delphion.com/details?pn=US05995745__
FSMLabs에서 출원한 RTLinux 관련 특허를 설명하는 페이지이다. 세부 내용을 모두 보려면 subscription이 필요하다.

목차

 

 

5. 윈도우 시스템

□ 『러닝 리눅스 3판』, 매트 웰시, 라 카우프만, 칼레 딜하이머 저, 이만용 역, 한빛미디어, 2001

오라일리 『Running Linux 3rd Edition』의 번역판이다. 리눅스를 처음 접하는 독자가 고민하면서 읽을 가치가 있는 ‘정보를 위한 정보를 담은 메타북(meta-book)’으로 리눅스라는 운영체제에 철학적으로 접근하는 구성 방식이 돋보인다. 운영체제를 전혀 모르는 완전 초보자에게는 다소 어려울 수도 있다.

□ 『Introduction to the X Window System』, Oliver Jones, Prentice-Hall, 1989
X 윈도우에 대한 고전적인 입문서이다. 1989년에 나왔기 때문에 편집 스타일은 상당히 볼품없지만 내용 자체만 놓고 보면 아주 훌륭하다. 페졸드가 지은 마이크로소프트 윈도우 프로그래밍 입문서와 비견할 만하다.

□ 『X Window System 2nd Edition』, Robert W. Scheifler & James Gettys, Digital Press, 1990
X를 만든 아버지인 세이플러와 게티스가 지은 X 윈도우 시스템에 대한 바이블이다. 최신 버전에 대한 내용은 X 윈도우 패키지 내부에서 온라인 문서 형식으로 찾을 수 있다.

□ 『The X Toolkit Cookbook』, Paul E. Kimball, PTR/PH, 1995
현재 나와있는 X 윈도우 툴킷 책 중에 가장 정리가 잘되어있으며, 숨겨진 몇몇 비밀을 명쾌하게 해설하고 있다. 모티프나 아데나 위젯을 사용하는 개발자라면 누구나 한번 정도 이 책을 읽을 필요가 있다.

□ 『Volume 1: Xlib Programming Manual』, Adrian Nye, O’Reilly, 1992
오늘날의 오라일리가 존재하도록 만든 초기 역작이다. X 환경에서 프로그램을 작성하는 방법에 대해 간결 명료하게 설명하고 있다.

http://wombat.doc.ic.ac.uk/foldoc/index.html
FOLDOC 컴퓨터 용어 전문 사전이다.

http://www.linuxdevices.com/articles/AT9202043619.html
임베디드 리눅스에서 사용하는 여러 공개/상용 윈도우 시스템을 소개하는 기사이다. 윈도우 시스템을 상당히 체계적으로 정리하고 있으므로 특히 첫 단추를 꿰는 개발자에게 적당하다.

http://www.linuxdevices.com/articles/AT9035650492.html
임베디드 리눅스에서 X 윈도를 적용함에 있어 고려할 여러 사항을 소개하는 발표 자료이다. 다른 기사와는 달리 상당히 정량적인 방법으로 접근하고 있으므로, 비교 자료로 사용하기에 부족함이 없다.

http://www.linuxdevices.com/links/LK4761626139.html
마이크로 윈도우 프로젝트에 대해 간략하게 소개하는 기사이다.

http://www.linuxdevices.com/links/LK7730481424.html
피코구이 프로젝트에 대해 간략하게 소개하는 기사이다.

http://www.xfree86.org
x86, MacOS, 기타 임베디드 시스템에서 동작하는 공개소스 X 윈도우 환경을 개발하기 위해 설립한 XFree86 프로젝트 홈페이지이다. XFree86 소프트웨어를 자유롭게 다운로드할 수 있다.

http://www.x.org
X 컨소시움 후속인 오픈 그룹 홈페이지이다. X 윈도우 시스템 원본 소스와 각종 응용 프로그램을 자유롭게 다운로드할 수 있다.

http://www.rahul.net/kenton/xsites.framed.html
필자가 본 인터넷에서 가장 뛰어난 X 윈도우와 모티프 정리 사이트이다. 그야말로 주옥 같은 자료들이 실려있으므로, X 윈도나 모티프 개발자라면 필요할 때마다 이 사이트에 들러서 필요한 정보를 얻기 바란다.

http://www.openmotif.org/
공개용 모티프 툴킷을 다운로드할 수 있는 홈페이지이다. 이 페이지는 현재 BX라는 사용자 인터페이스 생성도구로 유명한 ICS 사에서 관리하고 있다.

http://www.opengroup.org/openmotif/
오픈 그룹에서 관리하는 오픈 모티프 공식 홈페이지이다. 공개용 모티프 툴킷 최신 버전을 다운로드할 수 있으며, 모티프 개발자를 위한 공간도 마련하고 있다. 임베디드 모티프에 대한 정보도 찾을 수 있다.

http://www.motifdeveloper.com/news/news12.html
오라일리의 모티프 프로그래밍 매뉴얼과 레퍼런스 매뉴얼을 온라인 문서로 받아볼 수 있도록 지원하는 홈페이지이다.

http://www.lesstif.org/
모티프를 자유롭게 쓸 목적으로 시작한 레스티프 프로젝트 홈페이지이다. 레스티프는 라이센스에 제한이 있는 공개용 모티프와는 달리 LGPL 라이센스를 따르므로 완벽한 공개 소스 소프트웨어이다. 레스티프는 모티프와 원시 코드 단계에서 거의 99% 호환성을 유지하므로, 각종 공개 소스 소프트웨어 개발자가 즐겨 사용하는 라이브러리이기도 하다.

http://www.gtk.org/
Gtk+ 공식 홈페이지이다. 다양한 프로젝트에 걸친 여러 자료를 얻을 수 있으며 최신 버전 라이브러리를 다운로드할 수도 있다.

http://www.efalk.org/Widgets/
X에서 사용할 수 있는 각종 위젯 집합을 비교한 기사이다. 다양한 위젯 집합을 기능과 외양면에서 분석하고 있으므로, 개발에 필요한 툴킷을 선택할 때 참조하기 바란다.

http://www.microwindows.org/
마이크로 윈도우 공식 홈페이지이다. 원시 코드를 다운로드할 수 있으며, 각종 매뉴얼과 학습서도 얻을 수 있다.

http://www.fltk.org
X11, 마이크로소프트 윈도우, 마이크로 윈도우에서 쓸 수 있는 FLTK 프로젝트 공식 홈페이지이다.

http://tinywidgets.sourceforge.net/
마이크로 윈도우에서 쓸 수 있는 타이니 위젯 프로젝트 공식 홈페이지이다.

http://www.trolltech.com/
Qt와 Qt/임베디드를 만든 트롤테크 홈페이지이다.

http://pgui.sourceforge.net/
피코구이 공식 홈페이지이다. 각종 기사와 문서를 얻을 수 있으며, 피코구이 패키지도 다운로드할 수 있다.

목차

 

 

2부. 임베디드 리눅스 개발 방법론

6. 제품 기획 단계에서 고려할 사항

□ 『C∙C++로 작성하는 임베디드 시스템 프로그래밍』, 마이클 바 저, 이석주 역, 한빛미디어, 2000
C와 C++ 프로그래밍 언어를 사용해 임베디드 시스템을 제작하는 방법을 기술한다. 아쉽게도 이 책에 나오는 보드를 국내에서 구하기 어려워 본격적인 실습이 불가능하다. 하지만 임베디드 시스템에 대한 개념을 단기간에 잡기에는 적당하다.

□ 『Embedded Linux』, John Lombardo, New Riders, 2002

x86 플랫폼에서 리눅스를 최소한으로 패키징하는 방법을 기술한다. 아주 뛰어나거나 새로운 내용은 담고 있지 않지만, x86에서 임베디드 리눅스를 재미로 탑재해보려는 초보자에게는 도움을 줄 수 있다.

 

 

7. 타겟 보드 선정 방법

□ 『C, C++로 작성하는 임베디드 시스템 프로그래밍』, 마이클 바 저, 이석주 역, 한빛미디어, 2000

C와 C++ 프로그래밍 언어를 사용하여 임베디드 시스템을 제작하는 방법을 기술하고 있다. 아쉽게도 이 책에 나오는 보드를 국내에서 구하기가 어렵기 때문에 본격적인 실습이 불가능하다는 단점이 있다. 하지만 임베디드 시스템에 대한 개념을 단기간에 잡기에는 적당하다.

SWAN-II 사용자 설명서

아이트로닉스(제품에 포함)

http://www.linuxdevices.com/articles/AT4548672342.html
포스트-PC 시대를 도래해 임베디드 리눅스를 동작시킬 수 있는 SOC에 대해 소개하는 홈페이지이다.

http://www.linuxdevices.com/articles/AT4313418436.html
리눅스를 적용할 수 있는 각종 SOC(System On Chip)에 대한 정보를 모아놓은 홈페이지이다. ARM, MIPS, MPC, x86을 기반으로 각종 제품을 소개한다.

http://www.uclinux.org/
MMU가 없는 CPU를 위한 리눅스인 uClinux 공식 홈페이지이다.

http://www.advantech.com/products/PCM-5824.asp
어드밴텍에서 만든 Geode 기반 SBC(Single Board Computer)인 PCM-5824에 대한 각종 자료를 제공한다.

http://www.national.com/appinfo/solutions/0,2062,239,00.html
네셔날 세미컨덕터에서 만든 SOC인 Geode에 대한 각종 자료를 제공한다.

http://www.linuxdevices.com/products/PD7399900675.html
인텔에서 만든 SA-1110 마이크로프로세스 개발 참조 보드에 대한 간략한 정보를 제공한다.

http://developer.intel.com/design/pca/applicationsprocessors/manuals/index.htm
인텔에서 만든 각종 마이크로프로세스에 대한 문서를 모아놓은 홈페이지이다.

http://developer.intel.com/design/strong/datashts/278241.htm
인텔에서 만든 SA-1110 마이크로 프로세스에 대한 간략한 데이터시트를 제공하는 홈페이지이다.

http://developer.intel.com/design/strong/guides/278278.htm
인텔에서 만든 SA-1110 마이크로 프로세스 개발 참조 보드인 아사벳에 대한 각종 자료를 제공하는 홈페이지이다.

http://www.linfos.co.kr/htm/pro_li01.htm
린포스에서 만든 SA-1110 마이크로 프로세스 개발 참조 보드인 TBEL1110에 대한 각종 자료를 제공하는 홈페이지이다.

http://developer.intel.com/design/intelxscale/
인텔에서 개발한 StrongARM 후속 버전인 XScale에 대한 공식 홈페이지이다.

http://www.ipaqlinux.com/
StrongARM을 탑재한 PDA인 iPAQ에 리눅스를 탑재하는 데 필요한 정보와 링크를 모아놓은 홈페이지이다.

http://www.handhelds.org/
StrongARM을 탑재한 PDA인 iPAQ을 위한 리눅스 배포판과 설치 노하우를 모아놓은 홈페이지이다.

http://www.arm.com/
가장 널리 사용하는 32비트 RISC 방식 임베디드 CPU를 설계한 ARM 본사 홈페이지이다.

http://www.itronixit.co.kr/products_cpu_swan2.html
아이트로닉스에서 만든 MPC860 기반 SBC(Single Board Computer)인 SWAN-II에 대한 각종 자료를 제공하는 홈페이지이다.

http://e-www.motorola.com/webapp/sps/site/prod_summary.jsp?code=MPC860&nodeId=01M0ypBDKCb
모토로라에서 만든 파워PC 계열 SOC인 MPC860에 대한 각종 자료를 제공한다.

http://e-www.motorola.com/brdata/PDFDB/docs/MPC860EC.pdf
MPC860에 대한 상세 정보를 제공하는 PDF 파일이다.

http://e-www.motorola.com/webapp/sps/site/taxonomy.jsp?nodeId=01M0ypBDKCb
모토로라에서 파워PC 코어 기반으로 만든 MPC8xx 계열 CPU에 대한 비교 정보를 제공한다.

http://penguinppc.org/embedded/
파워PC를 채택한 임베디드 시스템을 위한 각종 자료를 제공한다.

http://www.macraigor.com/zenofbdm.pdf
BDM에 대한 멋진 소개서이다. BDM에 대한 역사와 간략한 디버깅 방법을 기술하고 있다.

[통계] http://www.linuxdevices.com/files/article011/sld023.html
임베디드 개발자가 향후 채택하리라 예상되는 CPU 비율을 보여주는 자료이다.

[통계] http://www.linuxdevices.com/files/article011/sld024.html
임베디드 개발자가 향후 채택하리라 예상되는 하드웨어 플랫폼 비율을 보여주는 자료이다.

[통계] http://www.linuxdevices.com/files/article011/sld025.html
임베디드 개발자가 향후 채택하리라 예상되는 주변 장치를 보여주는 자료이다.

[통계] http://www.linuxdevices.com/files/article011/sld026.html
임베디드 개발자가 향후 채택하리라 예상되는 운영체제를 올리기 위해 사용하는 장치를 보여주는 자료이다.

목차

 

 

8. 장치 선정과 드라이버 구현

□ 『리눅스 장치 드라이버』, 알렉산드로 루비니 저, 김인성/류태중 역, 한빛미디어, 2000

리눅스에서 장치 드라이버를 제작하는지 방법을 구체적으로 소개한다. 리눅스 커널에 대해 어느 정도 지식이 있어야 하므로 초보자가 읽기에는 적합하지 않다. 단점은 커널 2.2에 대해서 다룬다는 점이다.

□ 『Linux Device Driver 2nd Ed』, Alessandro Rubini, O’Reilly, 2001
『리눅스 장치 드라이버』 원서 2판으로 커널 2.4를 다룬다. 인쇄 버전은 물론이고 일부 발췌가 아닌 완벽한 온라인 버전까지 나와 있으므로 큰 부담 없이 읽을 수 있다.

□ 『네트워크 프린팅』, 토드 레이더마커, 매튜 개스트 저, 박재호, 이영미 역, 한빛미디어, 2001

리눅스와 유닉스를 서버로, 윈도우, 맥, 넷웨어를 클라이언트로 구성한 네트워크 환경에서 인쇄하는 방법을 기술한다. BOOTP, DHCP와 같은 네트워크 프로토콜을 사용해 프린터를 부팅하는 방법도 소개한다.

□ 리눅스 커널 내부 /Documentation/devices.txt
리눅스에서 제공하는 각종 장치에 대한 간략한 소개와 장치 번호를 정의한 문서이다. 리눅스에서 장치 드라이버를 사용하거나 만들기 위해 반드시 참조해야 하는 표준 문서이다.

http://lhd.datapower.com/
리눅스에서 사용할 수 있는 각종 하드웨어 데이터베이스를 제공하는 홈페이지이다. 제품 이름이나 제품 카테고리로 검색할 수 있다.

http://www.tldp.org/HOWTO/Hardware-HOWTO/
리눅스 하드웨어 호환성과 관련한 HOW-TO 문서이다. 다양한 주변 장치에 대한 호환성 여부를 알려준다. 제품 이름이나 카테고리를 통한 검색은 불가능하며, 목차에서 찾아 들어가기 바란다.

http://www.tldp.org/HOWTO/HOWTO-INDEX/hardware.html
리눅스에서 사용할 수 있는 하드웨어에 대한 HOW-TO를 집대성한 색인을 제공하는 홈페이지이다.

http://www.torque.net/linux-pp.html
리눅스에서 사용할 수 있는 외장 주변 장치(PC와 병렬 포트로 통신)에 대한 링크와 제품 목록을 제공하는 홈페이지이다.

http://www.redhat.com/support/hardware/
가장 대표적인 배포판 회사인 레드햇을 위한 리눅스 호환 하드웨어 목록을 제공하는 홈페이지이다. 다양한 방법(제조사/카테고리/하드웨어 클래스/배포판 종류/인증 상태)으로 하드웨어를 검색할 수 있다.

http://www.linuxhardware.net/
리눅스 관련 각종 하드웨어와 장치 드라이버를 검색할 수 있도록 데이터베이스를 제공하는 홈페이지이다. 일반 사용자 참여로 데이터베이스를 갱신하고 있다는 사실이 흥미롭다.

http://www.linux-usb.org/
리눅스에 탑재한 USB 스택에 대한 정보를 제공하는 홈페이지이다. FAQ와 유용한 링크를 담고 있다.

ftp://ftp.compaq.com/pub/supportinformation/papers/ecg0480997_a4.pdf
OHCI와 UHCI 차이점을 설명한 문서이다. 상당히 깔끔하게 정리되어 있으므로, USB에 대한 개념을 잡는 데 도움을 받을 수 있다.

http://usb.cs.tum.edu/usbdoc/
리눅스에서 USB 장치 드라이버를 작성하는 방법을 설명하는 홈페이지이다.

http://whatis.techtarget.com/definition/0,,sid9_gci537791,00.html
I2C에 대한 사전적인 정의를 소개하는 홈페이지이다.

http://www.connectworld.net/cable-length.html

직렬/병렬/스카시 포트에 연결할 수 있는 케이블 길이 제한에 대해 소개하는 홈페이지이다.

http://www.pcisig.com/news_room/faqs
다양한 PCI 규약에 대한 질문과 응답을 싣고 있는 홈페이지이다.

http://pcmcia-cs.sourceforge.net/
리눅스에서 PCMCIA를 사용하는 데 필요한 각종 정보를 제공하는 홈페이지이다. 리눅스에서 PCMCIA 장치를 사용하고 싶다면 여기를 먼저 방문하기 바란다.

http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-PROG.html
리눅스에서 PCMCIA용 장치 드라이버를 개발하는 데 도움을 주는 프로그래머 가이드이다.

http://linux1394.sourceforge.net/hcl.php
리눅스에서 사용할 수 있는 IEEE 1394(파이어와이어) 주변 장치 목록을 제공하는 홈페이지이다.

http://www.skipstone.com/wizard.html
IEEE 1394와 관련한 FAQ 모음집이다.

http://irda.sourceforge.net/
리눅스에서 IrDA용 장치 드라이버를 설치하고 사용하는 데 도움이 되는 정보를 제공하는 홈페이지이다.

http://mobilix.org/ir_misc.html
리눅스에서 사용할 수 있는 IrDA 주변 장치를 소개하는 홈페이지이다. 데이터베이스 검색은 불가능하며 전체 목록이 한꺼번에 나온다.

http://www.lirc.org
리눅스에서 IrDA로 여러 주변 장치를 제어할 수 있는 패키지를 소개하는 홈페이지이다.

http://delbert.matlock.com/linux-bluetooth.htm#howto
리눅스에서 블루투스를 사용하는데 필요한 각종 정보를 제공하는 홈페이지이다. 다양한 드라이버와 문서를 싣고 있으므로 블루투스에 관심이 많은 개발자라면 반드시 여기를 방문하기 바란다.

http://www.microsoft.com/hwdev/bus/1394/1394tech.asp
마이크로소프트사에서 만든 IEEE1394 관련 특장점을 설명하는 홈페이지이다. 윈도우 관련 내용이 많이 있지만, 일반적인 특성을 파악하는 데 큰 무리가 없을 것이다.

http://www.linux-mtd.infradead.org/
리눅스를 위한 MTD(Memory Technology Device) 서브 시스템과 관련있는 각종 사항을 정리한 홈페이지이다.

목차

 

 

9. 임베디드 리눅스 이식 절차

□ 『Embedded Linux: Hardware, Software, and Interfacing』, Dr. Craig Hollabaugh, Addison-Wesley, 2002

임베디드 리눅스에 대해 체계적으로 잘 구성된 책이다. 절반 이상이 인터페이스하는 방법에 대한 소개이므로, 일정 수준 이상의 개발자가 보기에 적당하다.

□ 『삼바 활용하기』, 로버트 에크슈타인, 데이비드 칼리어-브라운, 피터 켈리 저, 박재호/이영미 역, 한빛미디어, 2001
리눅스나 유닉스 환경에서 네트워크로 윈도우 클라이언트에 공유 파일과 프린팅 서비스를 해주는 소프트웨어인 삼바를 소개한다. 삼바를 사용하면 네트워크로 물린 이기종 컴퓨터 사이에 자원을 쉽게 공유할 수 있으므로, 윈도우쪽으로 기울어진 개발 환경을 리눅스쪽으로 돌리는 데 도움을 줄 수 있다.

□ 『네트워크 프린팅』, 토드 레이더마커, 매튜 개스트 저, 박재호, 이영미 역, 한빛미디어, 2001

리눅스와 유닉스를 서버로, 윈도우, 맥, 넷웨어를 클라이언트로 구성한 네트워크 환경에서 인쇄하는 방법을 기술한다. BOOTP, DHCP와 같은 네트워크 프로토콜을 사용해 프린터를 부팅하는 방법도 소개한다.

□ 『러닝 리눅스 3판』, 매트 웰시, 라 카우프만, 칼레 딜하이머 저, 이만용 역, 한빛미디어, 2001

오라일리 『Running Linux 3rd Edition』의 번역판이다. 리눅스를 처음 접하는 독자가 고민하면서 읽을 가치가 있는 ‘정보를 위한 정보를 담은 메타북(meta-book)’으로 리눅스라는 운영체제에 철학적으로 접근하는 구성 방식이 돋보인다. 운영체제를 전혀 모르는 완전 초보자에게는 다소 어려울 수도 있다.

□ 『Embedded Linux』, John Lombardo, New Riders, 2002

x86 플랫폼에서 리눅스를 최소한으로 패키징하는 방법을 기술한다. 아주 뛰어나거나 새로운 내용은 담고 있지 않지만, x86에서 임베디드 리눅스를 재미로 탑재해보려는 초보자에게는 도움을 줄 수 있다.

□ 『GNU 소프트웨어로 프로그래밍 하기』, 마이크 루키디스, 앤디 오람 저, 이기동 역, 한빛미디어, 2000

오라일리 『Programming with GNU Software』의 번역판이다. 문서 편집기인 이맥스, C/C++ 컴파일러인 gcc, 디버거인 gdb, 컴파일 자동화 도구인 make, 소스 관리 시스템인 RCS에 대해 입문하는 병아리 개발자에게 안내자 구실을 한다. 아쉽게도 중급 개발자에게는 부적합하다.

http://www.aleph1.co.uk/armlinux/devboards/Assabet-HOWTO/t1.html
아사벳에 임베디드 리눅스를 이식하는 절차를 일목요연하게 정리한 HOW-TO 문서이다. 아사벳에 임베디드 리눅스를 이식해야 한다면 꼭 살펴보기 바란다.

http://www-2.cs.cmu.edu/~wearable/software/assabet.html
역시 아사벳에 임베디드 리눅스를 이식하기 위해 필요한 자료를 모아놓은 홈페이지이다. 각종 링크가 이식 순서에 맞춰 잘 나와있으므로 이식 과정에서 필요한 소프트웨어를 구할 경우에 많은 도움을 받을 수 있다. 다른 홈페이지에 비해 최신 버전으로 갱신하는 속도이 빠르다는 장점이 있다.

http://www-2.cs.cmu.edu/~wearable/software/docs/assabet-linux-report/intel-report.html
인텔 아사벳 참조 보드에 ARM 리눅스를 올리는 방법을 체계적으로 기술한 기술 보고서이다. 미국립 과학재단에서 발주하고 미국 카네기 멜론 대학교의 웨어러블(Wearable) 그룹에서 수행한 프로젝트 결과 보고를 위해 만든 문서이다.

http://www.aleph1.co.uk/armlinux/thebook.html
다양한 ARM 임베디드 시스템에 임베디드 리눅스를 이식하는 방법을 소개하는 온라인 책이다. 원래 StrongARM을 사용한 참조 보드인 LART를 위해 만든 책이지만, 아사벳에 대해서도 충분히 참조할만한 가치가 있는 내용을 담고 있다.

http://penguinppc.org/embedded/howto/PowerPC-Embedded-HOWTO.html
MPC 플랫폼을 위한 교차 개발 환경 구축 방법, PPCBOOT 설치와 사용법, 부팅에 필요한 각종 설정, 패키징 관련 내용을 체계적으로 소개하는 문서이다.

http://developer.intel.com/design/strong/applnots/sa1100lx/sa1100lx.htm
인텔에서 만든 자료로, 아사벳을 위한 교차 참조 개발 환경을 구축하는 방법을 소개한다.

http://sources.redhat.com/binutils/
GNU binutils에 대한 홈페이지이다. 들어있는 프로그램과 각 프로그램 구실을 간략하게 설명한다.

http://www.astonlinux.com/
윈도우 환경에서 임베디드 리눅스를 개발할 수 있게 지원하는 툴인 코드메이커 개발사 홈페이지이다.

http://www.linux.org/docs/ldp/howto/Glibc2-HOWTO.html
glibc 버전 2를 리눅스 시스템에 설치하고 활용하는 방법/하는 HOW-TO 문서이다.

http://www.linuxdoc.org/HOWTO/mini/Partition/
리눅스에서 스왑 영역을 잡는 방법을 친절하게 설명하는 HOW-TO 문서이다.

http://kldp.org/HOWTO/html/Kernel/Kernel-HOWTO.html
리눅스에서 커널 환경을 설정하고 컴파일하는 방법을 설명하는 HOW-TO 문서이다. 2.2.x 계열 설명이므로 시대에 조금 뒤떨어졌다고 생각할 수도 있으나 기본 사항을 충분히 잘 설명하고 있다.

http://kldp.org/KoreanDoc/html/2.4Kernel_Compile-KLDP/2.4Kernel_Compile-KLDP.html

리눅스 커널 2.4를 환경 설정하고 컴파일하는 방법을 소개하는 HOW-TO 문서이다.

http://kldp.org/KoreanDoc/html/Kernel_Compile_Guide-KLDP/Kernel_Compile_Guide-KLDP.html
리눅스 커널을 컴파일하는 기본 절차를 소개하는 문서이다. 역시 커널 2.2 계열이라서 조금 낡았다는 느낌이 들지만 전반적인 감을 잡기에는 부족함이 없다.

http://option.kernel.pe.kr/
리눅스 커널 환경 설정 도움말을 한글로 이식하는 프로젝트를 위한 홈페이지이다. 최신 커널 버전을 꾸준히 쫓아오고 있으므로, 리눅스 커널을 설정하다 지쳐버린 사람들에게 많은 도움을 줄 수 있으리라 확신한다.

http://kldp.org/HOWTO/mini/html/LILO/LILO.html
실례를 들어 리눅스 표준 부트 스트랩 로더인 LILO를 어떻게 설정하는지 설명하고 있는 문서이다.

http://penguinppc.org/embedded/cross-compiling/
MPC용 교차 개발 환경 컴파일 방법이다. 잘못된 내용이 들어있기 때문에, 단순히 참고용으로만 활용하기 바란다

http://www.armlinux.org/docs/toolchain/toolchHOWTO/x183.html
ARM용 교차 개발 환경 컴파일 방법이다. 조금 잘못된 내용이 들어있기 때문에, 단순히 참고용으로만 활용하기 바란다.

http://www.delorie.com/gnu/docs/glibc/libc_toc.html
GNU에서 개발한 기본 라이브러리인 glibc에 대한 온라인 북이다.

http://sources.redhat.com/newlib/
레드햇에서 만든 glibc를 대체할 경량 기본 라이브러리인 newlib에 대한 홈페이지이다.

http://www.uclibc.org/
임베디드 리눅스 시스템을 위한 경량 기본 라이브러리인 uclibc에 대한 홈페이지이다.

http://www.fefe.de/dietlibc/
크기에 신경을 써서 만든 기본 라이브러리인 diet libc에 대한 홈페이지이다.

http://www.embedded.com/story/OEG20011220S0058
경량 라이브러리인 newlib에 대해 소개하는 홈페이지이다.

http://www.netsonic.fi/~walker/minicom.html
유닉스에서 사용할 수 있는 직렬 통신을 지원하는 터미널 흉내내기 프로그램인 minicom 홈페이지이다.

http://www.tldp.org/HOWTO/mini/LILO.html
가장 널리 알려진 x86용 부트 스트랩 로더인 LILO를 설명하는 미니 HOW-TO이다. LILO 환경 설정과 주의 사항을 소개한다.

http://www.linuxgazette.com/issue64/kohli.html
강력한 x86용 부트 스트랩 로더인 GNU GRUB를 소개하는 홈페이지이다. GRUB이 무엇인지, 설치를 어떻게 하는지, 환경 설정을 어떻게 하는지 설명한다.

http://www.aleph1.co.uk/armlinux/docs/ARMbooting/t1.html
ARM에서 동작하는 각종 부트 스트랩 로더를 소개하는 온라인 기사이다.

http://armboot.sourceforge.net/
강력한 ARM와 StrongARM용 부트 스트랩 로더인 ARMBOOT에 대해 소개하는 홈페이지이다. 여기서 원시 코드를 다운로드할 수도 있고 간단한 설명도 읽을 수 있다.

http://sourceforge.net/projects/blob/
SA11x0(StrongARM)용 부트 스트랩 로더인 BLOB를 소개하는 홈페이지이다. 여기서 원시 코드를 다운로드할 수도 있고 간단한 설명도 읽을 수 있다.

http://www.handhelds.org/z/wiki/bootldr
컴팩에서 만든 StrongARM을 사용한 PDA인 iPAQ에서 동작하는 부트 스트랩 로더인 bootldr를소개하는 홈페이지이다.

http://www.wearablegroup.org/software/bootldr/
iPAQ용 부트 스트랩 로더인 bootldr을 간략하게 설명하는 홈페이지이다.

http://ppcboot.sourceforge.net/
임베디드 파워PC를 위한 부트 스트랩 로더인 PPCBOOT를 소개하는 홈페이지이다. 프로젝트 진행에 따른 변경 사항과 간략한 설명을 한눈에 확인할 수 있다.

http://www.redhat.com/embedded/technologies/redboot/
다중 플랫폼을 지원하는 강력한 부트 스트랩 로더인 REDBOOT를 소개하는 홈페이지이다. 레드햇답게 문서 정리를 깔끔하게 잘 해놓았다.

http://tinylogin.busybox.net/
경량급이면서도 필요한 기능을 모두 갖추고 있는 임베디드 리눅스에서 동작하는 로그인 프로그램인 tinylogin 홈페이지이다.

http://www.busybox.net/
GNU fileutils, shellutils에 들어있는 각종 프로그램을 하나로 묶어놓은 임베디드 리눅스를 위한 맥가이버 칼(스위스 군용 칼이 정확한 표현이지만 여기서는 편의상 맥가이버 칼로 지칭한다)인 busybox 홈페이지이다.

http://www.wearablegroup.org/software/ramdisk/
ARM(특히 아사벳)을 위한 램디스크를 제공하는 홈페이지이다.

ftp://ftp.denx.de/pub/LinuxPPC/usr/src/
MPC를 위한 램디스크를 제공하는 홈페이지이다.

http://kpreempt.sourceforge.net/
x86, 리눅스 커널 선점 확장 프로젝트 공식 홈페이지이다.

http://www.ittc.ku.edu/kurt/
또 다른 x86 리눅스 커널 선점 확장 프로젝트인 KURT 공식 홈페이지이다.

http://www.aero.polimi.it/~rtai/
RTAI 실시간 리눅스 확장 프로젝트 공식 홈페이지이다.

http://www.fsmlabs.com/community/
RTLinux 커뮤니티 공식 홈페이지이다.

http://www.linux-fbdev.org/
리눅스 프레임 버퍼, 프레임 버퍼 장치, 관련 사이트를 체계적으로 정리한 홈페이지이다.

http://gtf.org/garzik/video/
리눅스 비디오 드라이버와 프레임 버퍼에 대한 링크를 체계적으로 정리한 홈페이지이다.

http://www.tldp.org/HOWTO/Framebuffer-HOWTO.html
리눅스 프레임 버퍼 HOW-TO 문서로, 프레임 버퍼에 대한 일반론과 플랫폼별 특성을 소개한다.

http://www.microwindows.org/
마이크로 윈도우 공식 홈페이지이다. 원시 코드를 다운로드할 수 있으며, 각종 매뉴얼과 학습서도 구할 수 있다.

http://www.xfree86.org
x86, MacOS, 기타 임베디드 시스템에서 동작하는 공개 소스 X 윈도우 환경을 개발하기 위해 설립한 XFree86 프로젝트 홈페이지이다. XFree86 소프트웨어를 자유롭게 다운로드할 수 있다.

http://pgui.sourceforge.net/
피코구이 공식 홈페이지이다. 각종 기사와 문서를 얻을 수 있으며, 피코구이 패키지도 다운로드할 수 있다.

목차

 

 

10. 임베디드 환경에서 응용 프로그램 개발 절차

□ 『Rapid Development: Taming Wild Software Schedules』, Steve McConnell, Microsoft Press 1996
소프트웨어를 짧은 시간 내 성공리에 개발하는 데 필요한 각종 지식을 총 집결시켜놓은 멋진 책이다. 이론뿐만 아니라 실전에 바로 써먹을 수 있는 내용으로 가득 하다. 관리자는 물론, 일반 개발자도 필독할 가치가 있는 책이다.

□ 『Software Project Survival Guide』, Steve McConnell, Microsoft Press, 1998
소프트웨어 개발 생명 주기 동안 벌어지는 각종 활동 내역을 위험 관리라는 측면에서 이끌어내는 방법을 명쾌하게 설명한다. “Rapid Development”와 더불어 관리자와 개발자가 꼭 읽어야 하는 필독서이다.

□ 『러닝 리눅스 3판』, 매트 웰시, 라 카우프만, 칼레 딜하이머 저, 이만용 역, 한빛미디어, 2001

오라일리 『Running Linux 3rd Edition』의 번역판이다. 리눅스를 처음 접하는 독자가 고민하면서 읽을 가치가 있는 ‘정보를 위한 정보를 담은 메타북(meta-book)’으로 리눅스라는 운영체제에 철학적으로 접근하는 구성 방식이 돋보인다. 운영체제를 전혀 모르는 완전 초보자에게는 다소 어려울 수도 있다.

□ 『GNU 소프트웨어로 프로그래밍 하기』, 마이크 루키디스, 앤디 오람 저, 이기동 역, 한빛미디어, 2000

오라일리 『Programming with GNU Software』의 번역판이다. 문서 편집기인 이맥스, C/C++ 컴파일러인 gcc, 디버거인 gdb, 컴파일 자동화 도구인 make, 소스 관리 시스템인 RCS에 대해 입문하는 병아리 개발자에게 안내자 구실을 한다. 아쉽게도 중급 개발자에게는 부적합하다.

□ 『The UNIX Programming Environment』, Brian Kernighan, Rob Pike, Prentice-Hall, 1984
고전 중의 고전인 이 책은 유닉스에서 프로그램을 개발하는 표준적인 방법론을 간략하면서도 짜임새 있게 다룬다.

□ 『Software Tools in Pascal』, Brian Kernighan, P Plauger, Addison-Wesley, 1981
The UNIX Programming Environment』와 더불어 유닉스 프로그래밍 철학을 이해하는 데 중요한 책이다. C의 인기에 밀린 파스칼로 모든 코드를 소개하지만 중요한 것은 형식이 아니라 철학이라는 사실을 잊지 말자.

□ 『The Unix Network Programming』, W. Richard Stevens, Prentice-Hall, 1994
유닉스에서 네트워크 프로그램을 작성하려고 마음먹은 개발자 누구나 이 책을 읽을 필요가 있다. 더 이상의 설명이 필요없는 명작이다.

□ 『Advanced Programming in the UNIX Environment』, W. Richard Stevens, Addison-Wesley, 1992
유닉스 환경에서 시스템 프로그래밍을 하는 방법을 체계적이고 자세하게 다룬 책으로 “The Unix Network Programming”과 함께 읽으면 더욱 큰 효과를 얻을 수 있다.

□ 『유닉스 시스템 프로그래밍 SVR4』, 데이비드 커리 저, 이수진/이성희 역, 한빛미디어 , 2001
시스템 V쪽에 치우쳐 설명하고 있지만, 유닉스 시스템 호출과 각종 라이브러리 저변에 깔린 기본 원리를 충실히 다루고 있으므로 시스템 V는 물론이고 리눅스와 BSD 계열을 사용하는 시스템 소프트웨어 개발자도 이 책을 반드시 읽어야 한다.

□ 『Programming for the real world: POSIX.4』, Bill O. Galleister, O’Reilly & Associates, 1995
실시간 프로그램을 위한 C 인터페이스인 POSIX.4에 대해 상세하게 다루는 책이다. 초보자가 보기에는 내용이 조금 어렵지만 본격적인 실시간 프로그램을 위해서는 반드시 읽고 넘어가야 한다.

□ 『Pthreads Programming』, Bradford Nichols, Dick Buttlar, Jacqueline Proulx Farrell, O’Reilly, 1996
포직스 스레드(Pthreads)에 대한 이론과 실전을 다루는 책으로 Pthreads로 프로그램을 작성하는 개발자는 반드시 읽어봐야 하는 필독서이다.

□ 『Practical UNIX Programming: A Guide to Concurrency, Communication, and Multithreading』, Kay A. Robbins, Steven Robbins, Prentice-Hall, 1996
실질적인 네트워크와 시스템 프로그래밍 작성 예제를 많이 제공하는 책이다. 포직스 스레드 프로그래밍과 동기화에 대한 내용도 들어있다.

□ 『배시 셸 시작하기』, 캐머런 뉴햄, 빌 로젠블랫 저, 배창렬 역, 한빛미디어, 2001
리눅스 표준 셸인 배시 셸에 대해 기초부터 차근차근 설명하는 책이다. 배시 셸은 이런저런 소프트웨어를 합치는 결합 언어(glue language)로 사용하기 적합하므로, 임베디드 시스템 개발자라도 알아두면 편리할 때가 많다.

http://pauillac.inria.fr/~xleroy/linuxthreads/
리눅스를 위한 포직스 1003.1c 스레드 패키지인 LinuxThreads에 대한 소개와 각종 링크를 제공하는 홈페이지이다.

http://www.cvshome.org/cyclic/cyclic-pages/rcs.html
RCS에 대해 소개하는 홈페이지이다. RCS와 관련한 각종 링크를 제공하므로 여기서 시작하면 된다.

http://www.cvshome.org/cyclic/cyclic-pages/sccs.html
SCCS에 대해 소개하는 홈페이지이다.

http://www.cvshome.org/
CVS(Concurrent Versions System) 관련 공식 홈페이지이다. CVS에 대한 매뉴얼과 소프트웨어를 다운로드할 수 있다.

http://www.wi.leidenuniv.nl/~wichert/strace/
리눅스에서 사용할 수 있는 시스템 호출 추적 툴인 strace 공식 홈페이지이다.

http://freshmeat.net/projects/ltrace/?topic_id=846%2C47
리눅스에서 사용할 수 있는 동적 라이브러리 호출 감시 툴인 ltrace 공식 홈페이지이다.

http://www.redhat.com/software/tools/gnupro/gnupro_gdb.html#gdb
gdb 기능에 대해 간략하게 소개하고 있는 레드햇사 홈페이지이다.

http://gcc.gnu.org/
gcc 공식 홈페이지이다. 필요한 각종 문서와 소프트웨어를 다운로드할 수 있다.

http://www.linuxgazette.com/issue71/joshi.html
gcc에서 최적화 작업을 수행하는 몇 가지 방법의 주요 원리를 설명하는 홈페이지이다.

http://www.cs.may.ie/~jpower/Courses/se209/optim/gcc_2.html
최적화를 위한 각종 gcc 옵션을 설명하는 홈페이지이다.

http://www.gnu.org/manual/gprof-2.9.1/html_node/gprof_toc.html
GNU 프로파일러인 gprof 에 대한 사용 설명서이다. 한글 번역판은 http://purple.icu.ac.kr/~kimkk/guide/gprof/gprof_toc.html를 참조하기 바란다.

http://www710.univ-lyon1.fr/~yperret/fnccheck/doc.html
gcc에서 사용할 수 있는 신형 프로파일러인 fncdump에 대한 소개 문서이다. 한글 번역판은 http://purple.icu.ac.kr/~kimkk/guide/functioncheck/#SEC_1를 참조하기 바란다.

http://www.redhat.com/software/gnupro/technical/gnupro_gcc.html

gcc 프로젝트를 이끌고 있는 레드햇사에서 개발한 상용 프로그램인 GNUPro 패키지에서 제공하는 최적화 기법을 소개하는 기사이다.

목차

 

 

11. 개발 상용 제품을 위한 패키징

Embedded Linux: Hardware, Software, and Interfacing, Dr. Craig Hollabaugh, Addison-Wesley, 2002

임베디드 리눅스에 대해 체계적으로 잘 구성된 책이다. 절반 이상이 인터페이스하는 방법에 대한 소개이므로, 일정 수준 이상의 개발자가 보기에 적당하다.

Embedded Linux Devleopment: Building Embedded Linux Systems(MPC8xx), 교육자료, Adelinux 2001

Embedded Linux Devleopment: Building Embedded Linux Systems(StrongARM), 교육자료, Adelinux 2001

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs.html,

 http://www-903.ibm.com/developerworks/kr/linux/library/l-fs2.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs3.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs4.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs5.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs6.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs7.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs8.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs9.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs10.html
IBM developerWorks에서 연재한 저널링 파일시스템 특집 기사이다. 저널링 파일시스템에 대해 일목요연하게 정리하고 있으므로 읽을만한 가치가 있다.

http://e2fsprogs.sourceforge.net/ext2.html
EXT2 파일시스템 홈페이지이다. EXT2 파일시스템에 대한 설명과 링크를 제공한다.

http://www.zipworld.com.au/~akpm/linux/ext3/
EXT3 파일시스템 홈페이지이다. EXT3 파일시스템에 대한 설명과 소프트웨어, 링크를 제공한다.

http://www.namesys.com/
ReiserFS 파일시스템을 만든 namesys.com 홈페이지이다. ReiserFS에 대한 각종 기술 데이터를 제공한다.

http://www.linuxfocus.org/English/July2001/article210.shtml
신형 리눅스 램디스크 파일시스템인 ramfs를 소개하는 기사이다. 최신 커널 2.4에 대해 다룬다.

http://www.linuxfocus.org/English/November1999/article124.html
구형 리눅스 램디스크 사용 방법을 소개하는 기사이다. 이 문서를 역사적인 관점에서 참조하기 바란다.

http://developer.axis.com/software/jffs/doc/jffs.shtml
JFFS(Journaling Flash File System)을 소개하는 문서이다.

http://developer.axis.com/software/jffs/
JFFS 공식 홈페이지이다.

http://www.embeddedlinuxworks.com/articles/jffs_guide.html
JFFS 관련해 구체적인 사용법을 정리한 홈페이지이다.

http://sources.redhat.com/jffs2/
JFFS2 공식 홈페이지이다.

http://penguinppc.org/embedded/howto/root-filesystem.html
MPC에서 루트 파일시스템을 만드는 방법을 정리한 홈페이지이다.

http://www.linux-mtd.infradead.org/
리눅스를 위한 MTD(Memory Technology Device) 서브 시스템과 관련있는 각종 사항을 정리한 홈페이지이다.

http://www.aleph1.co.uk/armlinux/projects/yaffs/jffs2_and_nand.html
NAND 플래시에서 JFFS2를 사용할 때 발생하는 문제점을 소개하는 문서이다. 그런데 문서 내용에서 잘못된 부분(예: JFFS2가 배드 섹터를 처리하지 못한다. NAND 플래시를 사용할 수 없다)이 보인다.

http://ftp.linux.org.uk/pub/people/dwmw2/mtd/cvs/mtd/mtd-jffs-HOWTO.txt
간단한 리눅스 MTD, JFFS HOW-TO 문서이다.

http://ykjung99.netian.com/mtd/mtd.html
MPC860 보드에 MTD/JFFS2를 이식하는 방법을 소개하는 홈페이지이다.

http://myhome.naver.com/kingseft/gallery.html
임베디드 리눅스 관련 데이터를 제공하는 홈페이지이다. 데이터/게시판 메뉴에서 'Embedded Linux'를 선택하기 바란다.

http://www.linuxdevices.com/articles/AT7478621147.html
임베디드 리눅스 시스템을 위한 플래시 파일시스템에 대한 기사이다.

http://www.linuxhq.com/kernel/v2.4/doc/initrd.txt.html
부팅을 위한 리눅스 램디스크인 initrd 사용법을 정리한 기사이다.

http://kldp.org/Translations/html/Initrd-KLDP/Initrd-KLDP.html
초기 램디스크인 initrd에 대한 사용 방법을 정리한 기사이다.

http://www.linux.org/docs/ldp/howto/Bootdisk-HOWTO/index.html
리눅스에서 사용할 수 있는 부트 디스크를 만드는 방법을 설명하는 HOW-TO 문서이다.

http://www.tldp.org/HOWTO/mini/Loopback-Root-FS.html
루프백 루트 파일시스템을 만드는 방법을 설명하는 HOW-TO 문서이다.

http://atrak.usc.edu/~kar/mtd-jffs.html
아사벳에서 bootldr을 사용해 MTD-JFFS 파일 이미지로 부팅하는 방법을 소개하는 홈페이지이다.

http://www.busybox.net/
GNU fileutils, shellutils에 들어있는 각종 프로그램을 하나로 묶어놓은 임베디드 리눅스를 위한 맥가이버 칼(스위스 군용 칼이 정확한 표현이지만 여기서는 편의상 맥가이버 칼로 지칭한다)인 busybox 홈페이지이다.

http://tinylogin.busybox.net/
경량급이면서도 필요한 기능을 모두 갖추고 있는 임베디드 리눅스에서 동작하는 로그인 프로그램인 tinylogin 홈페이지이다.

http://udhcp.busybox.net/
임베디드 리눅스에서 동작하는 경량급 dhcp 서버와 클라이언트 패키지인 udhcp 홈페이지이다.

http://packages.debian.org/stable/base/ae.html
경량 문서 편집기인 안토니 편집기(ae) 패키지를 구할 수 있는 홈페이지이다.

http://packages.debian.org/unstable/base/elvis-tiny.html
경량 vi 클론인 elvis-tiny 패키지를 구할 수 있는 홈페이지이다.

목차

 

 

3부. 리눅스 개발 환경 구축과 이식

12. 교차 개발 환경 구축

Embedded Linux: Hardware, Software, and Interfacing, Dr. Craig Hollabaugh, Addison-Wesley, 2002

임베디드 리눅스에 대해 체계적으로 잘 구성된 책이다. 절반 이상이 인터페이스하는 방법에 대한 소개이므로, 일정 수준 이상의 개발자가 보기에 적당하다.

□ 『러닝 리눅스 3판』, 매트 웰시, 라 카우프만, 칼레 딜하이머 저, 이만용 역, 한빛미디어, 2001

오라일리 『Running Linux 3rd Edition』의 번역판이다. 리눅스를 처음 접하는 독자가 고민하면서 읽을 가치가 있는 ‘정보를 위한 정보를 담은 메타북(meta-book)’으로 리눅스라는 운영체제에 철학적으로 접근하는 구성 방식이 돋보인다. 운영체제를 전혀 모르는 완전 초보자에게는 다소 어려울 수도 있다.

□ 『GNU 소프트웨어로 프로그래밍 하기』, 마이크 루키디스, 앤디 오람 저, 이기동 역, 한빛미디어, 2000

오라일리 『Programming with GNU Software』의 번역판이다. 문서 편집기인 이맥스, C/C++ 컴파일러인 gcc, 디버거인 gdb, 컴파일 자동화 도구인 make, 소스 관리 시스템인 RCS에 대해 입문하는 병아리 개발자에게 안내자 구실을 한다. 아쉽게도 중급 개발자에게는 부적합하다.

http://www.gnu.org/directory/
GNU 소프트웨어 목록을 제공하는 홈페이지이다. 분류 별로 소프트웨어를 묶어 놓고 누가 만들었는지, 프로젝트 홈페이지는 어딘지, 원시 코드와 문서는 구하는 곳을 알려준다.

http://gcc.gnu.org/
gcc 공식 홈페이지이다. 필요한 각종 문서와 소프트웨어를 다운로드할 수 있다.

http://www.kernel.org/
리눅스 커널 프로젝트 공식 홈페이지이다. 최신 커널 변동 사항과 다양한 플랫폼을 위한 리눅스 링크를 제공한다.

http://www.sthoward.com/CrossGCC/
교차 컴파일러인 CrossGCC에 대한 FAQ를 제공하는 홈페이지이다.

http://www.linux.org/docs/ldp/howto/Glibc2-HOWTO.html
glibc 버전 2를 리눅스 시스템에 설치하고 활용하는 방법/하는 HOW-TO 문서이다.

http://huizen.dds.nl/~frodol/glibc/
glibc 버전 2를 리눅스 시스템에 설치하고 활용하는 방법을 소개하는 기사이다.

http://mort.level5.net/stef/glibc.html
glibc 버전 2를 리눅스 시스템에 설치하고 활용하는 방법을 소개하는 기사이다.

http://www.handhelds.org/pipermail/familiar/2002-February/005796.html
교차 컴파일 절차와 몇몇 유용한 URL을 제공하는 USENET 문서이다. 조금 낡았기 때문에 단순히 참고용으로만 활용하기 바란다.

http://61.96.198.114/linux/arm-linux/cross-compiler.html
한글로 만든 ARM용 교차 개발 환경 컴파일 방법이다. 예전 버전을 다루며 조금 잘못된 내용이 들어있기 때문에 단순히 참고용으로만 활용하기 바란다.

http://www.armlinux.org/docs/toolchain/toolchHOWTO/x183.html
ARM용 교차 개발 환경 컴파일 방법이다. 조금 잘못된 내용이 들어있기 때문에, 단순히 참고용으로만 활용하기 바란다.

http://www.tazenda.demon.co.uk/phil/arm-tools.html
ARM용 교차 개발 환경 컴파일 방법이다. 이것도 예전 버전을 다루니 참고용으로만 활용하기 바란다.

http://www.ailis.de/~k/knowledge/crosscompiling/toolchain.php
ARM용 교차 개발 환경 컴파일 방법이다. 이것도 편법을 써서 있단순히 참고용으로만 활용하기 바란다.

http://www.handhelds.org/z/wiki/HOWTO%20Build%20a%20Cross%20Toolchain%20in%20Brief
ARM용 교차 개발 환경 컴파일 방법이다. 역시 예전 버전을 다루기 때문에 단순히 참고용으로만 활용하기 바란다.

http://sources.redhat.com/ml/libc-alpha/2002-01/msg00388.html
ARM용 glibc-2.2.5를 컴파일 할 경우에 필요한 패치 방법을 알려주는 기사이다.

http://penguinppc.org/embedded/cross-compiling/
MPC용 교차 개발 환경 컴파일 방법이다. 잘못된 내용이 들어있기 때문에, 단순히 참고용으로만 활용하기 바란다.

http://groups.google.co.kr/groups?q=gcc%2B3.0.3%2Bcross%2Bcompile%2BARM&hl=ko&newwindow=1&selm=linux.arm.20020205231029.GB25513%40arthur.ubicom.tudelft.nl&rnum=1
ARM용 교차 개발 환경 컴파일 도중에 발생하는 문제점에 대해 이야기하는 뉴스(USENET) 기사이다.

http://groups.google.co.kr/groups?hl=ko&newwindow=1&threadm=linux.arm.001501c1a345%245b83a6b0%24eb4a0a3d%40homeuc1hfbdu7w.SOMEWHERE&rnum=7&prev=/groups%3Fq%3Dcrti.o%252Bgcc%252BARM%26hl%3Dko%26newwindow%3D1%26selm%3Dlinux.arm.001501c1a345%25245b83a6b0%2524eb4
ARM용 교차 개발 환경 컴파일 도중에 발생하는 문제점에 대해 이야기하는 뉴스(USENET) 기사이다.

http://groups.google.co.kr/groups?q=fenv_libc.h&hl=ko&lr=&ie=UTF-8&oe=UTF-8&newwindow=1&selm=3D236C3A.1030406%40ixiacom.com&rnum=3
MPC용 교차 개발 환경 컴파일 도중에 발생하는 문제점과 해결 방안에 대해 이야기하는 뉴스(USENET) 기사이다.

http://groups.google.co.kr/groups?q=fenv_const&hl=ko&lr=&ie=UTF-8&oe=UTF-8&newwindow=1&selm=200201110842.JAA16220%40merlin.gams.co.at&rnum=2
MPC용 glibc 2.2.4 이상 버전을 컴파할 경우 발생하는 문제점과 해결 방안에 대해 이야기하는 뉴스(USENET) 기사이다.

목차

 

 

13. 네트워크와 디버깅 환경 구축

Embedded Linux: Hardware, Software, and Interfacing, Dr. Craig Hollabaugh, Addison-Wesley, 2002

임베디드 리눅스에 대해 체계적으로 잘 구성된 책이다. 절반 이상이 인터페이스하는 방법에 대한 소개이므로, 일정 수준 이상의 개발자가 보기에 적당하다.

□ 『러닝 리눅스 3판』, 매트 웰시, 라 카우프만, 칼레 딜하이머 저, 이만용 역, 한빛미디어, 2001

오라일리 『Running Linux 3rd Edition』의 번역판이다. 리눅스를 처음 접하는 독자가 고민하면서 읽을 가치가 있는 ‘정보를 위한 정보를 담은 메타북(meta-book)’으로 리눅스라는 운영체제에 철학적으로 접근하는 구성 방식이 돋보인다. 운영체제를 전혀 모르는 완전 초보자에게는 다소 어려울 수도 있다.

□ 『네트워크 프린팅』, 토드 레이더마커, 매튜 개스트 저, 박재호, 이영미 역, 한빛미디어, 2001
리눅스와 유닉스를 서버로, 윈도우, 맥, 넷웨어를 클라이언트로 구성한 네트워크 환경에서 인쇄하는 방법을 기술한다. BOOTP, DHCP와 같은 네트워크 프로토콜을 사용해 프린터를 부팅하는 방법도 소개한다.

http://nfs.sourceforge.net/nfs-howto/
NFS 서버와 클라이언트 설정 방법을 소개하는 NFS HOW-TO 문서이다.

http://www.delorie.com/gnu/docs/gdb/gdb_111.html
간단한 gdbserver 사용법을 알려주는 기사이다.

http://www.gnu.org/software/ddd/
gdb 프론트엔드인 DDD(DataDisplay Debugger) 홈페이지이다. 명령행 방식에 익숙하지 않은 개발자라면 DDD를 사용하기 바란다.

http://www.billgatliff.com/twiki/bin/view/Crossgcc/BuildGdbServer
gdbserver를 효율적으로 컴파일하는 방법을 소개하는 기사이다.

http://www.billgatliff.com/twiki/bin/view/Crossgcc/BuildStrace
ARM 플랫폼을 위해 교차 strace를 만드는 방법을 소개하는 기사이다.

목차

 

 

14. 부트 스트랩 로더 이식

Embedded Linux: Hardware, Software, and Interfacing, Dr. Craig Hollabaugh, Addison-Wesley, 2002

임베디드 리눅스에 대해 체계적으로 잘 구성된 책이다. 절반 이상이 인터페이스하는 방법에 대한 소개이므로, 일정 수준 이상의 개발자가 보기에 적당하다.

linux/Documentation/arm/SA1100/Assabet

아사벳 환경에서 부트 스트랩 로더를 적용하는 방법을 기술하는 리눅스 배포판에 들어있는 문서이다.

http://www.lart.tudelft.nl/projects/jtag/
ARM용 JTAG을 소개하는 홈페이지이다. LART와 호환되는 타겟 보드에만 적용할 수 있다는 사실을 명심하기 바란다.

http://www.handhelds.org/Compaq/bootldr.html

부트 스트랩 로더인 bootldr 사용법을 소개하는 HOW-TO 문서이다.

http://www.vas-gmbh.de/software/mpcbdm/
MPC용 BDM을 소개하는 홈페이지이다.

http://www.aleph1.co.uk/armlinux/book/book1.html
ARM 플랫폼을 위한 교차 개발 환경 구축 방법, JTAG과 Angel 설치와 사용법, 부팅에 필요한 각종 설정, 패키징 관련 내용을 체계적으로 소개하는 문서이다.

http://www.aleph1.co.uk/armlinux/docs/ARMbooting/x115.html
앞의 URL에서 부트 스트랩 로더와 관련한 내용만 추려냈다.

http://hints.linuxfromscratch.org/hints/grub-howto.txt
GRUB 설치와 환경 설정 방법을 소개하는 HOW-TO 문서이다.

http://www.falinux.com/win/study/tip2.html
BLOB 컴파일 방법을 소개하는 HOW-TO 문서이다. 한글 버전이므로 부담없이 읽을 수 있다.

http://www.ailis.de/~k/knowledge/crosscompiling/zlib.php
zlib를 ARM 플랫폼에서 교차 컴파일하는 방법을 소개하는 HOW-TO 문서이다.

http://www.handhelds.org/handhelds-faq/bootldr.html
bootldr 관련 FAQ를 정리해놓은 문서이다.

http://pain.kernel.pe.kr/sgml/embedded/Embedded_Linux_Devel.html
ARM 플랫폼에서 임베디드 리눅스를 이식하는 전반적인 과정을 소개하는 문서이다. bootldr에 대해 소개한다. 한글 버전이므로 부담없이 읽을 수 있다.

http://sources.redhat.com/ecos/docs-latest/redboot/redboot.html

RedBoot 사용법을 알려주는 사용자 가이드이다.

http://sources.redhat.com/ecos/docs-latest/redboot/rebuilding-redboot.html
원시 코드에서 RedBoot을 새로 만드는 방법을 알려주는 HOW-TO 문서이다.

http://sources.redhat.com/ecos/anoncvs.html
eCOS를 CVS로 다운로드하는 방법을 소개하는 간이 HOW-TO 문서이다.

http://sources.redhat.com/ecos/tools/linux-arm-elf.html
eCOS에 필요한 교차 개발 환경을 구축하는 방법을 소개하는 간이 HOW-TO 문서이다.

http://hana-tech.com/LinuxGnuCompilerBuild.htm
ARM용 elf 방식 교차 개발 환경을 구축하는 방법을 소개하는 간이 HOW-TO 문서이다. 한글 버전이므로 부담없이 참고하기 바란다.

http://www-2.cs.cmu.edu/~wearable/software/assabet.html
아사벳을 적용하는 개발자라면 누구나 살펴봐야 할 유명한 페이지이다. 하지만 아쉽게도 Angel 사용법 위주로 부트 스트랩 구축 방법을 소개한다.

http://www.aleph1.co.uk/armlinux/docs/ARMbooting/jtaging.html
JTAG을 사용해 부트 스트랩 로더를 플래시에 굽는 방법을 소개하는 페이지이다.

http://www.denx.de/doc/CPU86/index.html
MPC 플랫폼을 위한 교차 개발 환경 구축 방법, PPCBOOT 설치와 사용법, 부팅에 필요한 각종 설정, 패키징 내용을 체계적으로 소개하는 문서이다.

http://penguinppc.org/embedded/howto/PowerPC-Embedded-HOWTO.html
MPC 플랫폼을 위한 교차 개발 환경 구축 방법, PPCBOOT 설치와 사용법, 부팅에 필요한 각종 설정, 패키징 관련 내용을 체계적으로 소개하는 문서이다.

http://www.objsw.com/CrossGCC/FAQ-8.html#ss8.1
모토로라에서 만든 MPC를 위한 자료와 프로그램 코드를 전송하는 표준 규약을 소개하는 FAQ이다.

목차

 

 

15. 리눅스 커널 환경 설정과 컴파일

Embedded Linux: Hardware, Software, and Interfacing, Dr. Craig Hollabaugh, Addison-Wesley, 2002

임베디드 리눅스에 대해 체계적으로 잘 구성된 책이다. 절반 이상이 인터페이스하는 방법에 대한 소개이므로, 일정 수준 이상의 개발자가 보기에 적당하다.

linux/Documentation/
리눅스 커널에 들어있는 기본 문서 디렉토리이다. 여러 장치와 커널 관련 각종 문서를 포함하고 있으므로 당장 필요하지 않더라도 주의깊게 읽어보기 바란다.

http://www.arm.linux.org.uk/docs/kerncomp.shtml
ARM 플랫폼에서 커널 컴파일하는 방법을 간략하게 소개하는 문서이다.

http://option.kernel.pe.kr/index.php3
커널 옵션 한글화 프로젝트 홈페이지이다. 리눅스 커널 환경 설정 항목을 한글화해 제공하므로 초보 개발자에게 상당히 유용하다.

http://kldp.org/KoreanDoc/html/2.4Kernel_Compile-KLDP/2.4Kernel_Compile-KLDP.html
리눅스 커널 2.4를 환경 설정하고 컴파일하는 방법을 소개하는 HOW-TO 문서이다.

http://kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/
임베디드 개발자(특히 ARM)를 위한 리눅스 커널 분석 기사이다. ARM 리눅스 커널이 어떻게 부팅되고 어떤 특성이 있는지 궁금하다면 이 문서를 참고하기 바란다. 한글 버전이다.

목차

 

 

16. 루트 파일시스템 구축

□ 『Embedded Linux: Hardware, Software, and Interfacing』, Dr. Craig Hollabaugh, Addison-Wesley, 2002

임베디드 리눅스에 대해 체계적으로 잘 구성된 책이다. 절반 이상이 인터페이스하는 방법에 대한 소개이므로, 일정 수준 이상의 개발자가 보기에 적당하다.

□ 『Embedded Linux』, John Lombardo, New Riders, 2002
x86 플랫폼에서 리눅스를 최소한으로 패키징하는 방법을 기술한다. 아주 뛰어나거나 새로운 내용은 담고 있지 않지만, x86에서 임베디드 리눅스를 재미로 탑재해보려는 초보자에게는 도움을 줄 수 있다.

□ 『러닝 리눅스 3판』, 매트 웰시, 라 카우프만, 칼레 딜하이머 저, 이만용 역, 한빛미디어, 2001

오라일리 『Running Linux 3rd Edition』의 번역판이다. 리눅스를 처음 접하는 독자가 고민하면서 읽을 가치가 있는 ‘정보를 위한 정보를 담은 메타북(meta-book)’으로 리눅스라는 운영체제에 철학적으로 접근하는 구성 방식이 돋보인다. 운영체제를 전혀 모르는 완전 초보자에게는 다소 어려울 수도 있다.

http://www.handhelds.org/z/wiki/iPKG
임베디드 시스템에서 사용하는 경량 패키지 관리 시스템인 ipkg를 소개하는 기사이다.

http://www.superant.com/cgi-bin/smalllinux.pl?SmallLinuxLikeProjects
x86 플랫폼에서 리눅스를 최소로 설치하는 각종 프로젝트 링크를 담고 있는 홈페이지이다.

http://linuxfromscratch.org/
유명한 LFS(Linux From Scratch) 홈페이지이다. 배포판없이 리눅스를 x86 플랫폼에 설치하는 방법을 상세히 소개한다.

http://beyond.linuxfromscratch.org/
LFS 다음 버전인 BLFS(Beyond Linux From Scratch) 홈페이지이다. LFS에서 미진했던 부분을 보충하고 있다.

http://kldp.org/HOWTO/html/Bootdisk-HOWTO/
리눅스에서 부트 디스크를 직접 만드는 방법을 소개하는 HOW-TO문서이다. 한글 번역판이므로 부담없이 읽을 수 있다.

http://www.netspace.net.au/~gok/power2bash/buildMin/buildMin.html
x86 플랫폼에서 초기 부팅 과정에서 배시셸까지 시동하도록 간략하게 리눅스 환경을 구축하는 방법을 소개하는 기사이다.

http://www.tldp.org/HOWTO/mini/Hard-Disk-Upgrade/index.html
x86 플랫폼에서 새로 하드 디스크를 장착할 경우에 리눅스 시스템을 이전하는 방법을 소개하는 기사이다.

http://www.tldp.org/HOWTO/Installation-HOWTO/index.html
x86 플랫폼에서 리눅스를 어떻게 설치해야 할지 방향을 잡아주는 기사이다.

http://www-106.ibm.com/developerworks/linux/library/l-embl.html?l=sd,t=gr,p=emblinx
임베디드 시스템에서 부팅 가능한 디스크를 만드는 방법을 알려주는 기사이다. 비록 x86용이지만, 다른 플랫폼에도 비슷한 방법으로 내용을 적용할 수 있다.

http://hints.linuxfromscratch.org/hints/bsd-init.txt
슬랙웨어(Slackware)에서 채택하고 있는 BSD 스타일로 부팅 관련 초기화 방법을 소개하는 기사이다.

http://mobilix.org/Mobile-Guide.db/Mobile-Guide.html
랩톱과 모바일 컴퓨터에 리눅스를 설치/운영하는 방법을 소개하는 기사이다.

ftp://metalab.unc.edu/pub/Linux/system/daemons/init/
다양한 sysinit 패키지를 제공하는 무명씨 ftp 사이트이다.

http://www.ailis.de/~k/knowledge/crosscompiling/bash.php
ARM환경에서 배시 셸을 컴파일하는 방법을 소개하는 작은 HOW-TO 문서이다.

http://www.netwinder.org/allmisc.html
ARM 관련 온갖 잡다한 소프트웨어, 각종 패치, 문서, 램디스크를 모아놓은 저장소이다. 주로 소프트웨어가 예전 버전이며 체계적으로 정리를 하지 않았다는 점에 주의하기 바란다.

http://www.falinux.com/win/study/tip1.html
EZBOARD 램디스크 확장 방법을 소개하는 작은 HOW-TO 문서이다.

ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/

리눅스에 필요한 각종 유틸리티(기본 유틸리티, 각종 환경 설정 파일, 마운트,

fdisk)를 묶어 놓은 패키지이다.

목차

 

 

17. 실시간 리눅스 커널 이식

□ 『Pthreads Programming』, Bradford Nichols, Dick Buttlar & Jacqueline Proulx Farrell, O’Reilly, 1996
Pthreads를 개념과 프로그래밍 기법에 대해 다루는 고전으로, RTLinux와 RTAI를 사용하려고 마음먹은 개발자는 꼭 읽어야 하는 필독서이다.

RTLinux, RTAI 각 패키지 내부에 들어있는 README와 README.DENX

본격적인 설치 이전에 꼭 읽어보고 작업에 들어가기 바란다.

http://linuxdevices.com/news/NS7630223030.html
RTLinux/Pro에서 ARM을 지원한다는 소식을 담고 있는 기사이다.

http://bernia.disca.upv.es/rtportal/comparative/rtl_vs_rtai.html
RTLinux와 RTAI를 비교하는 문서이다.

목차

 

 

 

18. 윈도우 시스템 환경 이식

□ 『러닝 리눅스 3판』, 매트 웰시, 라 카우프만, 칼레 딜하이머 저, 이만용 역, 한빛미디어, 2001
오라일리 『Running Linux 3rd Edition』의 번역판이다. 리눅스를 처음 접하는 독자가 고민하면서 읽을 가치가 있는 ‘정보를 위한 정보를 담은 메타북(meta-book)’으로 리눅스라는 운영체제에 철학적으로 접근하는 구성 방식이 돋보인다. 운영체제를 전혀 모르는 완전 초보자에게는 다소 어려울 수도 있다.

Documentation/fb 리눅스 내부 문서(framebuffer.txt vesafb.txt, sa1110fb.txt)
마이크로 윈도우와 타이니 X를 위해 커널에서 프레임 버퍼를 설정하거나 동작 원리를 알고 싶을 경우에 참조하기 바란다.

EZBOARD_LCD CD에 담긴 '2. LCD와 터치 패드를 위한 수정.PDF'
EZBOARD관련 프레임 버퍼 수정 방법을 기술한 문서이다.

EZBOARD_LCD CD에 담긴 '3. 마이크로 윈도우 구성하기.PDF'
마이크로 윈도우 설정 방법을 기술한 문서이다.

http://www.handhelds.org/minihowto/building-x.html
ARM 플랫폼을 채택한 iPAQ에 TinyX를 설치하는 방법을 기술하는 기사이다. 아사벳을 비롯해 다른 시스템에도 적용할 수 있다.

http://www.tuxscreen.net/wiki/view/BuildingTinyXByHand
ARM 플랫폼을 채택한 TuxScreen에 TinyX를 설치하는 방법을 기술하는 기사이다. uClibc를 사용해 TinyX를 만들고자 하는 개발자라면 꼭 읽어보기 바란다.

http://xfree86.mirror.or.kr/4.2.0/BUILD.html
원시 코드 배포판을 사용해 XFree86을 만드는 방법을 기술한 문서이다.

http://xfree86.mirror.or.kr/4.2.0/Install.html
XFree86 이진 버전을 설치하는 방법을 기술한 문서이다.

http://xfree86.mirror.or.kr/4.2.0/cyrix.html
x86호환 CPU인 Cyrix MediaGX를 위한 XFree86 관련 문서이다.

http://www.tuxedo.org/~esr/terminfo/
터미널 정보를 담고 있는 terminfo/termcap 공식 홈페이지이다. '성당과 시장'으로 유명한 에릭 레이몬드씨가 관리자이다.

http://www.mock.com/receiver/utils/
ARM 플랫폼에서 리눅스용 termcap 라이브러리를 교차 컴파일하는 방법을 소개하는 기사이다.

http://www.ailis.de/~k/knowledge/crosscompiling/ncurses.php
ARM 플랫폼에서 리눅스용 ncurses 라이브러리를 교차 컴파일하는 방법을 소개하는 기사이다.

http://embedded.centurysoftware.com/pixil/pixiloe.php
MicroWindows 기술을 사용한 컴팩 iPAQ PDA용 통합 윈도우 환경인 Pixil을 소개하는 홈페이지이다. 비상업용으로 평가판을 다운로드할 수 있다.

http://www.tahallah.demon.co.uk/programming/Framebuffer-HOWTO-1.2.html
리눅스 프레임 버퍼 설정에 대해 상세히 다루는 HOW-TO 문서이다.

http://doc.trolltech.com/3.0/emb-framebuffer-howto.html
리눅스 프레임 버퍼 관련 커널 설정 항목을 간략하게 다루는 HOW-TO 문서이다.

http://sdb.suse.de/kr/sdb/html/cg_framebuffer-x4.0.html
XFree 4.0에서 VESA 프레임 버퍼 설정 방법을 다루는 기술 지원 문서이다.

http://www.handhelds.org/projects/ts_spec.html
터치 스크린(TS) 드라이버를 위한 표준 규약을 소개하는 기사이다.

http://www.handhelds.org/minihowto/building-x-clients.html
X 클라이언트 컴파일 방법을 소개하는 HOW-TO 문서이다.

http://www.xs4all.nl/~zweije/xauth-6.html

목차

 

 

19. 부팅과 설치 확인

□ 『Embedded Linux: Hardware, Software, and Interfacing』, Dr. Craig Hollabaugh, Addison-Wesley, 2002

임베디드 리눅스에 대해 체계적으로 잘 구성된 책이다. 절반 이상이 인터페이스하는 방법에 대한 소개이므로, 일정 수준 이상의 개발자가 보기에 적당하다.

linux/Documentation/arm/SA1100/Assabet
아사벳 환경에서 부트 스트랩 로더를 적용하는 방법을 기술하는 리눅스 배포판에 들어있는 문서이다.

Boot Loader HowTo
TBEl1110 CD에 들어있는 문서로, tbloader 컴파일과 사용법에 대해 소개하고 있다.

http://www.lart.tudelft.nl/lartware/blob/
부트 스트랩 로더인 blob 사용법을 소개하는 HOW-TO 문서이다.

http://www.handhelds.org/Compaq/bootldr.html
부트 스트랩 로더인 bootldr 사용법을 소개하는 HOW-TO 문서이다.

http://sources.redhat.com/redboot/
레드햇에서 운영하는 RedBoot 공식 홈페이지이다.

http://sources.redhat.com/ecos/docs-latest/redboot/redboot.html
RedBoot 사용법을 알려주는 사용자 가이드이다.

http://www.aleph1.co.uk/armlinux/docs/ARMbooting/angelboot.html
Angel을 사용해서 부팅하는 방법을 알려주는 사용자 가이드이다.

http://www.falinux.com/win/date/doc/ezboot.zip
FALINUX에서 제공하는 EZBOOT 사용자 매뉴얼이다. PDF 형식으로 되어있다.

http://www.denx.de/doc/CPU86/ppcboot.html
DENX에서 만든 'PPCBoot and Linux Guide'에 실린 ppcboot 사용자 가이드이다. 각 명령에 대해 자세히 잘 나와있으므로 MPC 개발자라면 반드시 읽어보기 바란다.

목차

 

 

20. 상용 제품을 위한 패키징

□ 『Embedded Linux: Hardware, Software, and Interfacing』, Dr. Craig Hollabaugh, Addison-Wesley, 2002

임베디드 리눅스에 대해 체계적으로 잘 구성된 책이다. 절반 이상이 인터페이스하는 방법에 대한 소개하므로, 일정 수준 이상의 개발자가 보기에 적당하다.

linux/Documentation/arm/SA1100/Assabet
아사벳 환경에서 부트 스트랩 로더를 적용하는 방법을 기술하는 리눅스 배포판에 들어있는 문서이다.

inux/Documentation/filesystems/cramfs.txt
CRAMFS에 대한 각종 제약 사항을 알려주는 문서이다.

inux/Documentation/initrd.txt
initrd에 대한 동작 원리를 기술한 리눅스 배포판에 들어있는 문서이다.

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs7.html?dwzone=linux
IBM developerWorks에 실린 EXT3 파일시스템 관련 기사이다. 한글판이므로 부담없이 읽을 수 있다.

http://www.symonds.net/~rajesh/howto/ext3/toc.html
EXT3 파일시스템을 사용할 수 있도록 설치부터 운영까지 차근차근 설명하는 작은 HOW-TO 문서이다.

http://people.spoiled.org/jha/ext3-faq.html
EXT3 관련 FAQ 문서이다. 다양한 상황에 대해 해결책을 알기 쉽게 제시하므로 읽어볼 가치가 있다.

 

http://olstrans.sourceforge.net/release/OLS2000-ext3/OLS2000-ext3.html
EXT3 개발자인 트위디 박사가 EXT3 저널링 파일시스템을 발표한 자료이다.

http://www.zip.com.au/~akpm/linux/ext3/ext3-usage.html
커널 2.4를 위한 EXT3 파일시스템 패치를 제공하는 홈페이지이다.

http://www.linux-mtd.infradead.org/
MTD 홈페이지이다.

http://sources.redhat.com/jffs2/
JFFS2 홈페이지이다.

http://www.handhelds.org/z/wiki/Constructing%20a%20cramfs%20image
CRAMFS 파일시스템 생성 방법을 소개하는 기사이다.

http://handhelds.org/z/wiki/Creating%20a%20JFFS2%20Image
JFFS2 파일시스템 생성 방법을 소개하는 기사이다.

http://www.handhelds.org/z/wiki/Can%20I%20mount%20a%20cramfs%20image%20on%20my%20linux%20PC
CRAMFS 파일시스템 마운트 방법을 소개하는 기사이다.

http://www-scf.usc.edu/~dantu/mtd-jffs.html
아사벳에서 JFFS를 적용하는 방법을 소개하는 간이 기사이다.

http://www.falinux.com/win/06_ramdisk/020_mtd_util/index.htm
EZBOARD에서 사용할 MTD 관련 각종 유틸리티 이식 방법을 소개하는 기사이다.

http://www.falinux.com/win/06_ramdisk/010_mtd_ramdisk2/index.htm
EZBOARD에서 램디스크 이미지 영역 없이 JFFS2만으로 부팅하는 방법을 소개하는 기사이다.

http://www.falinux.com/win/study/08/flashboot.html
EZBOARD에서 플래시 메모리를 루트 파일시스템으로 지정하는 방법을 소개하는 기사이다.

http://www.handhelds.org/handhelds-faq/filesystems.html
iPAQ에서 파일시스템을 다루는 각종 기법에 대해 소개하는 FAQ 문서 일부이다.

http://ykjung99.netian.com/mtd/mtd.html
MPC 플랫폼에서 MTD/JFFS를 적용하는 방법을 알려주는 홈페이지이다.

http://myhome.naver.com/kingseft/gallery.html
MPC 플랫폼에서 MTD/JFFS를 적용하는 방법을 알려주는 홈페이지이다.

http://www.denx.de/doc/TQM8xxL/advanced-topics.html
MPC 플랫폼에서 MTD를 설정하는 방법을 알려주는 HOW-TO 문서이다.

http://sources.redhat.com/ecos/docs-latest/redboot/flash-image-system.html
RedBoot 플래시 이미지 시스템인 FIS를 소개하는 기사이다.

http://www.handhelds.org/minihowto/porting-software.html
ARM 관련 엔디안 문제를 다루는 HOW-TO 문서이다.

http://e-www.motorola.com/brdata/PDFDB/docs/AN2065.pdf
파워PC 관련 엔디안 문제를 다루는 문서이다. 파워PC는 빅 엔디안을 기본으로 사용하지만 리틀 엔디안도 쓸 수 있다.

목차

 

최종 수정: 2005년 2월 12일 토요일, PM 7:42:59
출처: 『IT EXPERT, 임베디드 리눅스』, 박재호 저, 한빛미디어, 2002