'Windows 7'에 해당되는 글 2건

  1. 2009.11.04 Win7의 부팅속도 향상
  2. 2009.10.30 Windows 7의 바탕화면 슬라이드쇼

지난 주 전 세계적으로 Windows 7이 정식 출시됨에 따라 기존의 Windows Vista 출시와는 달리 시장에서 좋은 평가를 받고 있고, IT 전반적으로 큰 이슈가 되고 있는 것 같습니다. 이에 따라 인터넷 상에서 연일 Windows 7에 대한 각종 정보를 쉽게 찾아볼 수 있게 되었습니다.

그 중에 UCC 동영상 중에 관심을 끄는 것이 Windows 7의 부팅 속도가 얼마나 빠른지에 대해서 보여주는 것이었습니다. 자세한 시스템 사양은 모르겠지만 시스템의 전원버튼을 누른 후에 10 여 초 내에 부팅이 완료되는 모습이었습니다. 물론 운영체제를 설치한 후에 이런 저런 프로그램이나 서비스가 등록되면 조금씩 부팅 속도가 늦어지겠지만 기존 운영체제에 비해서 부팅 속도가 눈에 띄게 빨라진 것이 사실입니다.

요즘은 가전제품들도 전원을 키면 실제 기능이 동작하는데 시간이 많이 걸리는 경우가 있는데, 하드웨어와 운영체제의 발달에 따라 컴퓨터의 부팅 속도가 곧 가전제품 만큼이나 빨라질지도 모르겠습니다.

Windows 7에서는 기존 운영체제와 비교했을 때 부팅 속도를 향상 시키기 위해 다음과 같이 크게 3가지 부분을 변경한 것으로 알려져 있습니다.

1. parallelizing device enumeration

부팅 시점에 많은 시간이 소요되는 부분이 시스템에 부착되어 있는 device들을 enumeration하고 이에 대한 device tree를 구성하는 과정입니다. 그런데 이러한 장치들이 시스템 부팅 과정에 있어서는 그만큼의 시간을 소요할 정도로 중요한 부분이 아닙니다. 이러한 enumeration 작업은 PnP의 queue에 담겨진 후에 수행되는데, 이때 이 작업을 비동기(asynchronous) 처리하도록 속성을 지정함으로써 다른 작업과 병렬로 처리될 수 있도록 변경되었습니다.

2. driver re-initialization

드라이버 파일이 메모리에 로드되면 해당 드라이버의 시작지점인 DriverEntry 함수가 호출됩니다. 이 함수 내에서는 PnP manager에 IRP_MJ_CREATE, IRP_MJ_CLOSE, IRP_MJ_READ 등과 같은 처리를 수행할 함수를 등록하는 작업을 주로 수행합니다. 문제는 이러한 작업이 부팅을 수행하는 중에는 상대적으로 우선순위가 낮다는 것입니다. 이러한 이유로 Windows 7에서는 DriverEntry 함수가 호출되는 시점이 system device의 enumeratin이 완료된 이후에 callback 되도록 queuing 되도록 변경되었습니다.

3. Session 0 initialization

Windows Vista에서부터 Service 프로그램은 session 0라는 별도의 세션으로 분리하여 악성코드에 의해서 SYSTEM 권한을 hijacking 당하는 것을 막고 보안 위험성을 줄이게 되었습니다. 시스템에 등록된 여러 서비스들은 Services.exe에 의해서 서비스 프로그램 간의 종속성을 확인한 다음에 어떠한 순서로  실행될 지가 결정되게 됩니다. 즉, 특정 서비스가 먼저 실행된 후에야 실행될 수 있는 종속성이 있기 때문에 이로 인해서 부팅 속도에 어느 정도 영향을 미치게 됩니다. Windows 7에서는 서비스들이 모두 시작 완료되는 시간을 단축시키기 위해서 Session 0의 초기화 과정을 조금 일찍 시작합니다. Windows Vista에서는 device tree가 만들어진 이후에 이 과정이 시작되지만, Windows 7에서는 그 이전에 실행되어 device enumeration과 병렬로 작업이 진행됩니다.

이상 Windows 7에서 부팅 속도를 빠르게 하기 위해서 변경된 주요 3가지 내용을 알아보았습니다. 전체적으로 큰 변화보다는 부팅 속도를 빠르게 하기 위해서 각 부팅 단계별로 어느 작업이 가장 중요한지 우선순위를 정하고 중점적으로 진행해야 하는 작업을 정하고 해당 작업에 집중할 수 있도록 조절하였다고 보시면 되겠습니다.

'Programming' 카테고리의 다른 글

XNA 개발 프레임워크  (0) 2010.01.04
Thread Scheduling 유형  (0) 2009.12.07
Windows 7의 바탕화면 슬라이드쇼  (0) 2009.10.30
OS Kernel 함수들의 Prefix  (0) 2009.10.14
DriverEntry 함수  (0) 2009.09.11
Posted by noenemy
,

Windows 7에서 사용자 UI 관련해서 많은 부분들이 개선되거나 추가 되었는데, 그 중에 하나가 바탕화면 이미지가 일정 시간 단위로 계속 변경되는 슬라이드 쇼 기능입니다. 바탕화면은 사용자가 컴퓨터를 사용할 때 가장 자주 접하게 되는 화면으로 각자 좋아하는 이미지를 이용해서 바탕화면을 꾸며서 사용하는 경우가 많습니다. 하지만 매번 보는 바탕화면이 지겨울 수도 있기 때문에 슬라이드쇼 기능을 이용해서 다양하게 변화하는 바탕화면을 즐길 수 있게 되었습니다.

이 기술은 기존에 바탕화면 테마에 추가된 기능으로서 테마 파일(.theme)에 [Slideshow]라는 섹션에 관련 정보를 추가함으로써 간단히 구현할 수 있습니다.

자세한 내용은 아래 문서를 참고하시기 바랍니다.

Creating and Installing Theme Files

http://msdn.microsoft.com/en-us/library/bb773190(VS.85).aspx

1. Slideshow section의 주요 내용

다음은 [Slideshow] section의 세부 속성에 대한 내용입니다.

[Slideshow] Section

Windows 7 and later.

Note  This section is optional. If you do not include this section in your .theme file, the system uses the desktop background image specified in the [Control Panel\Desktop] section. If you include this section, you must specify slide show settings here.

Your theme's background can be a slide show either of images stored locally or of images served by an RSS feed. The [Slideshow] section of the file contains the following attributes:

Attribute

Description

Interval=number of milliseconds

Required. Interval is a number that determines how often the background changes. It is measured in milliseconds.

Shuffle=0 or 1

Required. Shuffle identifies whether the background shuffles.
0 = Disabled
1 = Enabled

RSSFeed=URL to RSS feed

Required if ImagesRootPath is not specified. RSSFeed specifies an RSS feed to use as the background slide show. For the feed to work, you need to reference high-resolution images adhering to the "enclosures" standard used by the Windows RSS Platform. Because of this limitation, .theme files that include an RSS feed must be created manually.

Note  You cannot specify both an RSSFeed and ImagesRootPath.

ImagesRootPath=path to image folder

Required if RSSFeed is not specified. ImagesRootPath specifies a path to a set of images you want to use as the background slide show. Images in subfolders are not included in the slide show.
ImagesRootPath supports Environment Variable substitutions in the path.

Note  You cannot specify both an RSSFeed and ImagesRootPath.

ItemNPath=path(s) to specific image(s)

For use with ImagesRootPath. ItemNPath specifies paths to specific images, so that you can limit the slide show to particular images instead of all images in a folder. If no paths are specified, all images in the ImagesRootPath path are used in the slide show, including images added after creating and installing the theme.
ItemNPath supports Environment Variable substitutions in the path. N is 0, 1, 2, and so on.

The following examples show how a .theme file specifies the slide show to include a set of images stored locally.

Ex1) 특정 폴더 내의 모든 이미지를 슬라이드 쇼 하는 방법에 대한 예

[Slideshow]
Interval=1800000
Shuffle=1
ImagesRootPath=%SystemRoot%\Web\Wallpaper

Ex2) 특정 폴더 내에서 특정 이미지 리스트에 대해서 슬라이드 쇼 하는 방법에 대한 예

[Slideshow]
Interval=1800000
Shuffle=1
ImagesRootPath=%ProgramFiles%\fabrikam\wallpaper
Item0Path=%ProgramFiles%\fabrikam\wallpaper\ocean.jpg
Item1Path=%ProgramFiles%\fabrikam\wallpaper\mountain.jpg
Item2Path=%ProgramFiles%\fabrikam\wallpaper\river.jpg

2. RSS feed 이용하기

특히 로컬디스크에 있는 이미지 뿐만 아니라 RSS feed를 이용해서 웹 상에서 존재하는 이미지를 슬라이드 쇼에 이용할 수 있습니다.

다음은 슬라이드 쇼에 사용할 수 있는 RSS feed의 한 예입니다.

RSS feed : http://specials.msn.com/RSSFeed.aspx?cp-documentid=5484790

<rss version="2.0">
<channel xmlns:media="http://search.yahoo.com/mrss/">
<title>RSS Test Page - </title>
<link>http://specials.msn.com/slideshow.aspx</link>
<description>This page has amateur drawings</description>
<copyright>msn.com</copyright>
<language>en-us</language>
<ttl>30</ttl>
<category>slideshow</category>
<item>
<media:content medium="image" url="http://blstb.msn.com/i/C1/10A4634A93728CB27487271CBC3.jpg" width="80" height="80" fileSize="2458"></media:content>
<pubDate>Tue, 02 Oct 2007 17:43:00 GMT</pubDate>
<link>http://specials.msn.com/slideshow.aspx?cp-documentid=5484790&amp;imageindex=1</link>
</item>
<item>
<media:content medium="image" url="http://blstb.msn.com/i/B5/1126AC9B2AE0AAD62D66DA96E3A87.jpg" width="80" height="80" fileSize="3207"></media:content>
<pubDate>Tue, 02 Oct 2007 17:43:00 GMT</pubDate>
<link>http://specials.msn.com/slideshow.aspx?cp-documentid=5484790&amp;imageindex=2</link>
</item>
</channel>
</rss>

Ex3) RSS feed를 이용해서 background image를 변경하는 테마를 만드는 방법에 대한 예

The following example is a template for a .theme file that creates a desktop background slide show using images from an RSS feed. Follow these steps to customize the template:

1. Copy the following example and paste it into a text editor.

2. Replace {themename} with the name you want to appear in the Personalization Control Panel themes gallery.

3. Replace {rssfeedurl} with the full path to a compatible RSS feed.

4. Save the changes as a file with the ".theme" extension.

[Theme]
DisplayName={themename}

[Slideshow]
Interval=1800000
Shuffle=1
RssFeed={rssfeedurl}
// 이하 생략
원래 바탕화면 배경이미지에 대한 것은 HKCU\Control Panel\Desktop의 wallpaper(REG_SZ) 항목에 이미지파일의 경로를 저장하도록

되어 있습니다. 슬라이드쇼 기능은 새로 보여줄 이미지 파일을 로컬 디스크에 임의의 경로로 저장하고 이 레지스트리 키 값을 해당 이미지 파일로 변경합니다. 그리고 일정 시간이 되면 다른 이미지 파일로 이를 교체함으로써 슬라이드쇼의 기능을 구현하도록 되어 있습니다.

특히 RSS feed 기능을 이용하면 로컬에 있는 이미지 파일이 아니라 바탕화면 이미지를 배포하는 웹 서버를 통해서 늘 새로운 바탕화면을 구독할 수 있는 기능도 사용할 수 있습니다.

'Programming' 카테고리의 다른 글

Thread Scheduling 유형  (0) 2009.12.07
Win7의 부팅속도 향상  (0) 2009.11.04
OS Kernel 함수들의 Prefix  (0) 2009.10.14
DriverEntry 함수  (0) 2009.09.11
Virtual PC를 이용한 Kernel debugging  (0) 2009.09.09
Posted by noenemy
,