Link: 개발자의 눈으로 본 - 윈도우 비스타
윈도우 비스타는 달라진 점이 한두 가지가 아니다. 때문에, 달라진 기능 한둘을 소개하는 정도로 다루기 어렵다. 비스타의 개발적인 측면에 대해 알아보기 전에, 비스타 출시와 함께 발표된 비스타 제품 소개 내용을 통해 비스타에 담긴 철학과 달라진 점 들을 간단히 알아보자.
‘윈도우 비스타는 일반 사용자가 언제 어디서든 PC로 다양한 작업을 수행할 수 있도록 한다. 사용자뿐만 아니라 가족도 PC나 웹에서 쉽고 빠르게 정보를 찾고, 사용하고 관리하며 공유할 수 있다. 윈도우 디펜더(Windows Defender)를 통해 PC 보안이나 최적의 성능을 자동으로 관리할 수 있다. 윈도우 미디어 센터를 사용하면 TV나 사진, 음악 및 게임을 즐기는 방법이 다양해진다. 거실이나 집 주위에서 원격으로도 즐길 수 있다. 이러한 기능을 휴대 장비에서도 사용할 수 있으므로 이동 중에도 엔터테인먼트를 즐기고 친구나 가족에게 연결하여 정보를 공유할 수 있다.
윈도우 비스타는 비즈니스에서도 뛰어난 능력을 발휘하는 덕에 회사 PC를 낮은 비용으로 더욱 안전하게 관리할 수 있다. 개선된 보안 기능과 새로운 보안 프로그램으로 가능하며 예기치 않은 보안 결함이나 잘못된 사용으로 인한 지적 재산권 침해로부터 기업의 소중한 정보를 보호한다. 회사는 윈도우 비스타를 사용하여 정보를 효과적으로 찾고 관리하며 공유할 수 있다. 때와 장소를 가리지 않고 사람이나 정보, 장치에 연결할 수 있으므로 조직의 효율성이 높아진다.’
윈 도우 비스타의 출시는 여러 의미를 가지고 있다. 단편적으로 필자가 몸담고 있는 MS의 입장에서는 새로운 제품 출시와 관련해 다양한 기술/개발/영업/마케팅 활동이 있을 것이다. IT업계 전반으로 봐서도 이와 관련된 새로운 시장이 열린다고 할 수 있다. 물론 개발자들도 이러한 의미에서 예외일 수 없다. 비스타의 기능을 기반으로 개발자적인 신선한 아이디어를 추가하여 몸담고 있는 조직의 발전에 능동적으로 기여할 수 있는 좋은 기회가 될 것이다. 그러기 위해서는 비스타의 달라진 모습을 자세히 들여다 볼 필요가 있다.
개발자라면 한번쯤 들어봤겠지만, 비스타에 포함된 대표적인 개발 기술로는 이전에 WinFX라 불리던 닷넷프레임워크 3.0이 포함되었다. 닷넷프레임워크 3.0에 대해서는 마소에서도 수차례 다뤘을 만큼 중요한 개발 툴이다. 하지만 닷넷프레임워크 3.0은 비스타 응용프로그램 개발이라는 관점에서 보면 빙산의 일각에 지나지 않는다. 1부에서는 비스타 개발을 위해 알아두어야 할 여러 가지 내용에 대해 알아본다.
윈도우 비스타 제품군
윈 도우 비스타는 크게 스타터, 홈, 비즈니스 버전으로 구분된다. 개발자 입장에서 제품군의 구분은 개발하려는 제품이 해당 버전에서 원활히 수행될 것인가를 나타내는 기본적인 확인 작업이므로 굳이 외울 필요는 없다. 다만 이에 대한 기본적인 이해는 하고 있는 것이 좋을 것이다. 주로 개발제품의 설계 시 참고를 하는 정도가 될 것으로 보인다. 비스타 각 제품군에 대한 자세한 정보는 http://www.microsoft.com/korea/windowsvista/getready/editions/default.mspx에서 확인할 수 있다.
<그림 1> 고객 군별 제품 라인업
윈도우 비스타의 개발 의미
지금까지 윈도우 비스타의 개발이라고 하면 WinFX에 집중되었던 탓에, 이로서 모든 것이 해결되는 듯 그려졌다. 하지만 비스타가 출시된 지금은 비스타 개발자가 알아두어야 할 것들에 대해 체계적으로 점검해 봐야 할 것이다.
비 스타도 따지고 보면 윈도우 3.1, 95, 98, XP, Me와 같은 하나의 사용자용 운영체제다. 처음 윈도우 응용프로그램 개발을 하던 때를 떠올려 보면 윈도우 SDK라는 디스켓 몇 장과 보물섬의 암호 책 같던 ‘윈도우 프로그래밍 가이드 3.1’ 한 권을 들고 씨름하던 생각이 난다. 언도큐먼티드(Undocumented) MS-DOS니 윈도우니 하던 책을 갖고 다니던 기억도 생생하다. 최근에는 닷넷과 자바의 등장으로 플랫폼에 대한 이해가 낮더라도 애플리케이션을 개발하는데 큰 어려움이 없어졌다. 그렇대도 상용프로그램을 개발하는 전문 개발자들에게 있어 운영체제는 결코 남의 일이 아니다.
비즈니스 핵심기술(Business Core Logic)과 개발기술(Programming Technique), 시스템 이해도(Platform&System Understanding)는 개발을 하면서 늘 마주하게 되는 세 가지 핵심 명제다. 개발회사라면 어디나 저마다의 독특한 기술을 가지고 있게 마련이다. 또 개발자들은 이를 구현하기 위한 다양한 기술을 가지게 되고, 그 기술을 구현하는데 사용될 플랫폼에 대한 이해가 필요하다. 이 세 가지 핵심적인 내용이 유기적으로 갖춰지지 못하면 결코 좋은 품질의 소프트웨어는 만들 수 없을 것이다.
필자가 이 글에서 이야기하고 싶은 내용의 핵심이 바로 여기에 있다. 플랫폼의 이해는 개개의 개발 툴을 잘 다루는 것 이상으로 중요하다. 여기에서 다루는 비스타 역시 닷넷프레임워크나 비주얼베이직, C# 등과는 별개의 제품이다. 비스타 위에 닷넷프레임워크 3.0이 탑재되어 있고, 그 위에서 비주얼 스튜디오라는 개발 툴이 비주얼베이직이나 C#이 실행된다. 우리가 진정한 비스타 개발자가 될 수 있으려면 비스타 운영체제에 대해 이해하고, 그 운영체제 안에 있는 무수한 개박 핵심사항을 알아야 한다. 이런 이해와 준비 없이는 진정한 비스타 개발자가 될 수 없다.
비스타 개발 시나리오
MS 는 비스타 개발자를 위해서 가장 비스타다운 비스타 응용프로그램을 만드는 방법을 제시하고 있다. 약간 마케팅 메시지다운 경향이 있지만 분명히 중요한 점은 이런 부분들이 가장 손쉽게(?) ‘비스타스러운’ 응용프로그램을 만들 수 있도록 해준다는 점이다. (관련자료: http://msdn2.microsoft.com/en-us/windowsvista/aa904975.aspx#CTA3)
<그림 2>는 MS가 비스타를 만들면서 핵심적으로 잡았던 세 가지 기획 주제를 설명한 것이다.
<그림 2> 비스타 핵심 주제
각 내용은 간단하다. ‘어떻게 하면 더 안전하고 신뢰할 수 있는 컴퓨팅 환경을 만들 수 있을까’ ‘어떻게 하면 보다 효율적으로 정보를 검색하고, 이용하고 남들과 공유할 수 있을까’ ‘사무실에서 벗어나, 환경에 구에 받지 않고 좀 더 모바일 환경에서 업무의 생산성을 높일 수 있을까’이다. 이런 주제들을 만족시키기 위해 윈도우 비스타가 개발자들에게 제시하는 각각의 비전에 대해 알아보자.
비스타 스타일 가이드라인
비 스타의 UX(User Experience)는 이전 버전의 OS에 비해 상당한 발전을 이루었다. 그러므로 개발자는 이 사용 환경(Interface)과 경험(Experience)의 기본 방식을 숙지해야한다(상세정보:http://msdn.microsoft.com/library/default.asp?url= /library/en-us/UxGuide/UXGuide/Home.asp).
풍부한 사용자 경험
이 항목은 개발자 입장에서 보면 결국 WPF(Windows Presentation Framework)다. 비스타 발표 이후 개발자들은 WPF와 UX에 대해 더 많이 듣게 될 것이다. 이들은 콘트롤 수준의 간단한 작동방식의 변화보다는 근본적인 수준에서의 그래픽 엔진 개선을 의미한다. 윈도우 비스타를 처음 실행해 본 사람이 가장 놀라는 에어로 글래스도 UX에 기반해서 WPF로 만든 비스타의 기본 쉘이다. WPF로 만들 수 있는 객체나 관련 기술들은 아주 많은데, 이 중에서 XAML과 윈도우 슬라이드바&가젯은 특히 눈여겨 봐야할 부분이다(XAML 참고자료: http://msdn2.microsoft.com/en-us/library/ms752059.aspx, 윈도우 슬라이드바&가젯 참고자료: http://microsoftgadgets.com/Build).
강력해진 검색기능
기 본에 파일 검색에 국한되었던 비스타의 검색기능은 비스타에서 다양한 범위로 확대되었다. 파일이나 웹페이지, 이미지 뿐 아니라 아웃룩의 메일 메시지나 기타 오브젝트의 검색도 단숨에 이뤄진다. 더불어 태그나 메타데이터 등을 활용해 다양한 형태의 검색 관리도 지원한다.
이런 기능을 실행시킬 수 있도록 하려면 개발자는 ‘OLE DB Provider for Windows Search’를 써야한다. OLE DB라고 되어 있으니 한번이라도 데이터베이스 프로그램을 해 본 개발자라면 어떻게 사용해야 할지 감이 올 것이다. 개발자 입장에서 보았을 때 비스타의 이 기능은 사실 윈도우 데스크톱 서치 3.0이란 기능을 이용하는 것이다. 이 WDS 3.0은 윈도우 XP, 윈도우 서버 2003에서도 사용할 수 있다(OLE DB Provider for Windows Search 참고자료 : http://blogs.msdn.com/cheller/archive/2006/06/21/642220.aspx, WDS 3.0 참고자료 : http://support.microsoft.com/kb/917013).
향상된 보안기능
보 통 개발자들이 보안 기능을 고려한다고 하면 ID와 비밀번호를 검사하는 정도일 것이다. 하지만 이제는 주변 환경의 변화에 따라 대부분의 개발자에게 빼놓을 수 없는 덕목(?)이 되어가고 있다. 비스타는 안전하게 응용프로그램이 실행될 수 있는 환경을 제공하기 위해 사용자 액세스 콘트롤(User Access Control)이라는 기능을 제공하고 있다. 사용자 액세스 콘트롤 외에도 비스타는 다음과 같이 다양한 보안 기능을 지원하고 있다. 각 보안 기능에 대해 자세한 정보는 http://msdn2.microsoft.com/en-us/windowsvista/aa905011.asp에서 얻을 수 있다.
● Privilege-elevation APIs
● Code Access Security
● Cryptography Next Generation (CNG) API
● Authz API
● Parental Controls (IWindowsParentalControls)
● Windows CardSpaces
● Windows Firewall
높은 관리성과 신뢰도
프 로그램을 개발할 경우 관리기능도 함께 만들게 된다. 인스톨 프로그램이나 옵션 설정, 모니터링 프로그램이 좋은 예이다. 이런 부가 프로그램은 핵심기능을 더 가치 있게 해주는 중요한 기능을 담당한다. Microsoft SQL Server를 보자면 SQL Management Studio 없는 SQL Server는 상상을 할 수 없을 것이다.
비스타는 다음과 같이 관리성을 높이기 위한 많은 기능을 제공하고 있다. 다음 기능 중 일부는 새로운 것들이지만, 업데이트 되거나 수정된 기능들도 있다.
● Event Logging System: 중요한 업무용 응용프로그램 특히나 백그라운드에서 실행되는 서버 & 서비스 프로그램을 작성할 때 사용된다.
● Cancelable I/O: 펜딩되거나 블록되는 I/O 오퍼레이션을 중간에 취소할 수 있게 해주는 기능이다. 예를 들어 특정한 디바이스를 여는데 해당 응용프로그램이 하얗게 변하면서 응답하지 않는 등의 경우에 사용할 수 있다.
● Transactional File System: 파일 시스템(NTFS)의 File I/O도 트랜잭션화 하여 사용 할 수 있다. 닷넷의 System.Transactions Namespace와 연동되어 사용될 수 있다.
● Restart Manager API: 응용프로그램 설치 시 재부팅하는 절차를 최소화할 수 있는 기능 제공한다.
● Windows Remote Management (WinRM): 원격지에 있는 시스템을 관리할 수 있는 기능을 제공한다.
● Rights Management: 디지털 저작권 관리 기능을 위한 것으로 개발자는 ADRMS(Microsoft Windows Active Directory Rights Management Services) SDK를 통해 구현된다.
● Task Scheduler 2.0: 특정한 프로그램 실행이나 기타 관리를 자동화 한다. Task Scheduler API에서 제공된다.
● Windows Installer 4.0: 비스타의 새로운 기능에 맞춰 일부 기능이 새롭게 추가되었다.
● ClickOnce: 일반적으로 스마트클라이언트 개발에 사용되고 있다. 닷넷프레임워크에서 일부 개선되었다.
● Network Diagnostic Framework (NDF): NDF는 WDI의 확장 기능으로 네트워크 상태에서 확인할 수 있도록 해준다. 개발자는 NDF Helper Class나 NDF API를 통하여 기능을 사용할 수 있다.
안정적인 유지보수 기능
개 발자에 의해 만들어진 응용프로그램이 항상 완벽하게 실행되고 또 사용자에게 판매가 된 후 아무런 문제도 일으키지 않는다면 이보다 좋을 수는 없을 것이다. 하지만 현실은 그리 희망적이지 않다. 때문에 개발자의 중요한 능력 중 하나로 유지보수의 자동화를 얼마나 잘 할 수 있는가를 꼽는다. MS는 이런 어려움을 해결해 주기 위해 다음의 두 가지 기능을 새로 추가했다.
● Windows Error Reporting: 응용프로그램 오류보고, 커널 오류보고, 기타 주변 환경 정보 등을 개발자가 활용할 수 있는 방법을 제공한다.
● Windows Quality Online Services: 윈도우 로고 프로그램 등 MS에서 제공하는 온라인 서비스다.
Build For Connected Systems
MS 는 SOA(Service Oriented Architecture) 시스템을 구축하기 위해서 커넥티드 시스템(Connected System)이라는 개념적인 프레임워크를 제공해 왔다. 개발자 입장에서 비스타에서 커넥티드 시스템을 구현하려면 닷넷프레임워크 3.0의 WCF(Windows Communication Framework)를 이용하면 된다.
RSS 리더
웹 2.0이란 개념을 잘 대변하고 있는 기능 중 하나인 RSS(Rich Site Summary). 비스타에서는 피드 다운로드 엔진(Feed Download Engine)이를 이용하여 RSS를 이용할 수 있다. 또, 개발자는 MS 윈도우 RSS 플랫폼 API라는 것을 이용해 RSS관련 기능을 구현할 수 있다. 개발자가 RSS 정보에 접근할 수 있도록 하는 Unified Feed Parsing API도 있다. 비스타 내에도 RSS 피드를 볼 수 있는 기본 가젯(Gadget)이 제공되고 있으니 한번 쯤 이용해 보자.
문서 압출기술
비 스타는 새로운 XML 기반의 문서 압축 기술을 제공한다. 이는 XPS(XML Paper Specification)기반에서 구현되었다. 닷넷프레임워크 3.0 런타임은 XPS package API(System.IO.Packaging, System.Windows.Xps.Packaging)를 포함하고 있다.
모바일 컴퓨팅 환경
최근의 컴퓨팅 환경은 점점 더 이동환경에 맞춰 발전되고 있다. 하드웨어는 기능이 통합되면서 소형화되고 있는 추세다. 비스타 또한 이런 이동환경을 구축할 수 있도록 여러 가지 기능을 지원하고 있다.
● NLA(Network Location Awareness Service Provider): NLA는 컴퓨터가 이동환경에 있을 때 각 네트워크 영역에서 필요한 정보를 얻고 관리할 수 있도록 한다. 비스타에서 이동환경을 위해 개발자가 사용할 수 있는 기능은 NLA2(WinSock 2.0의 Network Location API)다.
● Windows Sideshow Platform API: 사이드쇼는 비스타에서 새로 추가된 기능이다. 개발자는 Sideshow API를 이용해서 컴퓨터에 부착되어 있는 임의의 장치로 정보를 보낼 수 있는 가젯 유틸리티를 만들 수 있다.
● Power Management Library: 비스타는 이전의 파워 매니지먼트 기능을 개선해서 더욱 효과적인 파워 관리를 할 수 있도록 했다. 이 기능은 Power Management Library를 이용해서 제어할 수 있다.
윈도우즈 비스타 개발 도구 - 윈도우 SDK 3.0
Windows SDK 3.0 for Vista는 비스타 운영체제가 제공하는 모든 기능을 이용하기 위한 출발점이라고 할 수 있다. 이는 기존의 플랫폼 SDK와 유사하지만 여기에 닷넷프레임워크 3.0이 포함되어 있다. 닷넷프레임워크 3.0은 이전에 WinFX란 새로운 프로그래밍 기술을 포함하여 새롭게 업그레이드 된 것이다. 닷넷프레임워크는 닷넷프레임워크 2.0에 WCF(Windows Communication Foundation), WPF(Windows Presentation Foundation), WF(Workflow Foundation)와 카드 스페이스가 합쳐진 형태이다.
<그림 3> 닷넷프레임워크 3.0의 구성
비 스타 개발에 사용할 수 있는 새로운 API만 무려 7,125개가 추가되었다. 이 많은 API와 수많은 함수 그룹(Function Group)을 일일이 소개하는 것은 어려운 일이다. 여기에서는 윈도우 SDK 3.0의 전반적인 특징에 대해사만 간단히 알아보자.
윈도우 SDK 3.0 을 설치하면 Win32와 닷넷프레임워크에 대한 개발도구가 설치된다.
<화면 1> 윈도우 SDK 3.0 설치
다음은 윈도우 SDK 3.0에 추가되거나 개선된 기능들을 간단히 정리한 것이다. 각 항목들에 대한 자세한 정보는 윈도우 SDK 3.0 도움말 파일을 참조하자.
● NET Framework 2.0 ● ASP.ENT 2.0 ● C/C++ Code Analysis Tool ● Core Audio APIs ● File Services (Common Log File System (CLFS), Transactional NTFS (TxF), Virtual Disk Service (VDS), Volume Shadow Copy Service(VSS)) ● Gadgets: Windows Sidebar Gadget Development Overview 참고 ● HTTP API ● Internet Explorer 7.0 ● IIS 7.0 SDK ● WS-Management: Web Service Management ● Microsoft Media Foundation: Content protection, Audio and video quality, Interoperability for digital rights management (DRM) ● Memory Management ● Microsoft Management Console (MMC) ● Mobile PC Development ● Monitor Configuration API ● Network Connected Devices: Function Discovery(FD), Web Services for Devices (WSDAPI) ● Networking: Network Access Protocol, Network Location Awareness, Windows Filtering Platform ● Rights Management ● Shell and Common Controls ● Tablet PC Development: Ink Analysis API ● Task Scheduler ● Windows Image Acquisition (WIA) ● Windows Contacts: Windows Address Book (WAB) API ● Windows Mail: Outlook Express를 대치함 ● Windows Media DRM Client Extended APIs ● Windows Media Player 11 SDK ● Windows Communication Foundation (WCF) ● Windows Forms ● Windows Portable Devices ● Windows Presentation Foundation (WPF) ● Windows Workflow Foundation (WF) |
윈도우 비스타 운영체제 이해
당 연한 얘기겠지만 우리가 만든 프로그램은 결국 윈도우에서 실행된다. 때문에, 윈도우에 대해 제대로 이해하지 못한다면 좋은 개발을 할 수 없는 것은 당연한 일이다. 개발자로서 사용자가 어떻게 사용할 것인가도 염두를 해 두어야 하기 때문에 개발자와 사용자 입장을 모두 염두에 두는 것도 중요할 것이다. 이런 이해를 돕기 위하여 MS는 기본적인 운영체제에 대한 설명뿐만 아니라 호환성이란 주제로 별도의 가이드도 제공 하고 있다. 하나는 전반적인 운영체제 관점에서 설명하고 다른 하나는 개발자가 새로운 운영체제를 이용하는 관점에서 설명을 한 것이다. 그래서 이 부분에서는 두개의 세부 항목으로 나누어 개발자 여러분들이 한번쯤은 짚고 넘어가야 할 부분을 거시적인 시각으로 점검해 보고자 한다.
비스타 운영체제의 특징
윈도우 비스타는 여러 가지 측면에서 새로운 기능과 옵션들을 제공하고 있다. 모든 내용을 일일이 설명할 수 없기에 각 영역의 중요한 내용들을 표 형태로 살펴본다.
Installation & Setup
설 치라는 표현을 사용했지만 비스타를 사용하기 위해 필요한 모든 준비단계를 말한다. ‘어떻게 설치할 것인가?’, ‘어떤 것을 설치할 것인가?’, ‘어떻게 하면 잘 사용할 수 있도록 할 것인가?’, ‘어떻게 하면 다른 사용자의 설치를 잘 도와줄 것인가?’ 등의 질문에 대한 답을 포함한다고 할 수 있다. 각 영역에 맞는 기술들을 분류하면 <표 1>과 같다.
<표 1> Installation & Setup 기술Setup 비스타 버전 고려, H/W조건에 따른 설치방법, Dual Boot 방법, Upgrade Base Tech. 비스타 Boot Process 이해, BitLocker 기술, Device&Driver관리기술,Setup API, Power 관리기술 Reliability 정품인증, Backup&Restore기술, 문제 상태에서의 복구기술 Deployment Windows AIK & OPK, Preinstallation 기술, Sysprep, ImageX & WIM Format
Performance
프로세스, 메모리, 디스크 등 각종 리소스를 효과적으로 관리할 수 있는 기능과 아키텍처를 제공한다.
<표 2> 퍼포먼스 관련 기술Memory 효율적인 메모리 사용 방법, Memory Paging 이해, 메모리 관리 방법 개선 Diagnostics Tool 각종 종료 Resource 검사&점검 방법 & 도구 이해 (Process/CPU/Memory/Disk/Error) Compatibility User Access Control(UAC), Program Compatibility Assistance(PCA), Application Compatibility Toolkit 4.0 Print Print Service & Print Management Console 운영방법 Internet Explorer 7.0 UI&기능개선사항, Protected Mode, RSS Task Scheduler Task Scheduler Interface/Performance/관리방법 개선 Windows Installer Windows Installer 4.0/4.1, Installation Enginer이해, No Reboot 구조 Vista Search Vista Search Architecture Management Console MMC 3.0
Networking
네트워크는 비스타 중에서도 구조가 많이 바뀐 축에 속한다. 가장 큰 특징 중에 하나는 IPv6가 이제 기본으로 그리고 IPv4에 앞서 우선적으로 사용된다는 점이다. 개발자에게 가장 많이 사용되는 Winsock도 개선이 되었다.
<표 3> 네트워킹 관련 기술IPv6 Internal Network Structure(Dual Stack변경-IPv4, IPv6), IPv6 Architecture Wireless Networking Protocol 이해(802.1a,b,g), Security(802.1x,WPA,WPA2), NLA2, EAPHost Firewall & IPSec 확장된 Firewall & IPSec Architecture P2P, Meeting Space P2P, PNRP Protocaol, Graphing&Grouping, P2P Application - Meeting Space QoS(Quality of Service) QoS 이해, Pacer, qWave, Policy based QoS WinSock WinSock구조 변경, Winsock in Kernel Mode(WSK), Windows Sockets Direct Path for SAN(WSDP), Layered Service Providers(LSP)
Directory Service & Etc
Directory Service, User Security 등과 관련된 부분이 이전 버전에 비해 전체적으로 개선이 되었다.
<표 4> Directory Service & Etc 기술User Interface Vista User Interface 이해 Local&Remote Administration MMC3.0, Group Policy & MMC WinLogon Rearchitecturing of WinLogin Profile Vista Profiing Architecture Client Side Cache Client-Side Caching and Offline Files, CSC SynchronizationGroup PolicyVista Group Policy Architecure, Group Policy ADMX Files User Access Control User Access Control(UAC) Architecture
참고 자료
1. ARM System Developer’s Guide, ㈜ 씨랩시스 역, Andrew N. Sloss, Dominic Symes, Chris Wright 저, 2005년 사이텍 미디어 출간
2. 임베디드 메모리 최적화 기법, 여인춘 역, Kris Kaspersky 저, 2004년 에이콘 출간
3. GCC 완전 정복, 김경헌 역, Kurt Wall과 William von Hagen 저, 2006년 에이콘 출간
4. 리눅스 문제 분석과 해결, 박재호 역, 마크 윌딩 저, 2006년 에이콘 출간
5. 리눅스 디버깅과 성능 튜닝, 박재호 역, 스티브 베스트 저, 2006년 에이콘 출간
6. Inside the machine, John Stokes, 2007년 No Starch Press 출간
7. 위키피디아(최적화): http://en.wikipedia.org/wiki/Optimization_%28computer_science%29
8. PowerPC Compiler Writer’s Guide: http://openlook.org/blog/684
9. x86 ABI: http://www.caldera.com/developers/devspecs/abi386-4.pdf
10. x86_64 ABI: http://www.x86-64.org/documentation/abi.pdf
11. PowerPC 32bit ABI: http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF77852569970071B0D6/$file/eabi_app.pdf
12. PowerPC 64bit ABI: http://www.freestandards.org/spec/ELF/ppc64/PPC-elf64abi-1.9.html