일요일, 11월 11, 2007

:: Crysis 영상

오... 오... 오... 라는 말 밖엔...

http://betagam.gameshot.net/zboard/data/crysis/332222.JPG





윈도우 XP에서도 DX10 기술 구동 가능. DX10은 윈도우 비스타를 팔기 위한 홍보 수단일 뿐

http://www.gpgstudy.com/forum/viewtopic.php?topic=14312
http://ruliweb.empas.com/ruliboard/read.htm?main=online&table=game_online&page=1&num=9679


Epic Games에서 언리얼 엔진의 렌더링 코드를 담당하고 있는 Andrew Scheidecker는 다음과 같이 말하였다.

DX10 은 MS의 윈도우 비스타 마케팅 수단일 뿐입니다. MS는 현재 잘 사용되고 있는 OS인 윈도우 XP를 윈도우 비스타로 이동해야 할 명목이 "전혀" 없기 때문에 그 명목을 억지로 만들기 위한 수단으로 게이밍 시장에 DX10라는 명목을 내세운 거의 억지에 가까운 사기 마케팅을 펼치고 있습니다.

이 DX10라는 건 원래는 WGF(Windows Graphics Foundation) 2.0이란 이름으로 나올 예정이었고 윈도우 XP의 DX9와 동일한 버전으로 WGF 1.0이란 이름으로 예정되었으나 윈도우 비스타의 홍보 수단을 위해서 WGF 2.0을 DX10로 바꾸고 WGF 1.0은 DX9.0L이란 이름으로 바꾸고 출시하게 됩니다.

DX10(정확하게는 Direct3D 10)은 개선된 구조와 DX9 시절에 비해서 좀 더 효율적인 처리들을 내포하여 여러가지 향상이 있지만 본질적으로 크게 다른 것은 아닙니다. 이 변화는 DX8에서 DX9로의 변화에 비한다면 미미한 정도라고 볼 수 있습니다. 게다가 이 것은 기술적으로 윈도우 비스타를 꼭 필요로 할 이유가 "전혀" 없음에도 MS는 윈도우 비스타를 팔아먹기 위해 이러한 정책을 펼치고 있는게 개발자로서 보기에 매우 우스울 뿐입니다. MS는 DX10의 "10"이라는 숫자를 통해서 뭔가 대단한 변화가 있는 것처럼 소비자들을 유혹하는 것일 뿐입니다.

현재 많은 사람들이 착각을 하고 있는 점 중에 하나가 DX10이 그래픽적으로 큰 혁신을 가져올거라는 생각인데 사실상 그렇지는 않습니다. DX9에서 DX10로의 그래픽적 기술의 변화는 그래픽스 하드웨어의 Shader Model 버전의 지원 여부인데 DX9.0c가 Shader Model 3까지 지원하며 DX10는 이번에 Nvidia에서 출시한 GeForce 8 시리즈에서 최초 탑재된 Shader Model 4를 지원합니다. 윈도우 비스타의 DX9.0L 모드는 Shader Model 3까지만 지원합니다.

결국 DX10와 DX9의 그래픽적 기술의 차이는 API 차이가 아닌 Shader Model 4와 Shader Model 3의 차이로 새로 출시되는 그래픽스 하드웨어가 새로운 Shader Model 버전을 탑재하고 나온 것의 차이라고 볼 수 있습니다. 윈도우 비스타를 사용하고 DX10을 사용한다고 해도 Shader Model 4를 지원하는 그래픽스 하드웨어를 가지고 있지 않다면 그래픽적으로 아무런 변화를 볼 수 없는 것입니다.

이번 Shader Model 3에서 Shader Model 4로의 발전은 그 향상의 폭이 Shader Model 1에서 Shader Model 2로의 발전만큼이나 큰 폭의 변화는 없지만 Shader Model 2에서 Shader Model 3로의 변화보다는 소폭 향상점이 있습니다. Vetrex Shader 유닛과 Pixel Shader 유닛의 통합과 새로운 Geometry Shader가 많은 향상을 가져다 줄테지만 아직 Shader Model 4의 하드웨어는 출시 초기이고 솔직히 이 것을 사용한다고 해도 그래픽이 외형적으로 Shader Model 3를 사용한 게임에 비해서 크게 향상되는 것은 아닙니다. 게다가 이 것이 어느정도의 향상점을 보이고 단지 보여주기 위한 데모가 아닌 게임에 제대로 활용되기 위해선 앞으로 2년정도는 후에야 가능할 것입니다. 현재 DX10을 내세워서 광고하고 있는 몇몇 게임들도 사실은 DX10의 Shader Model 4로 큰 이득을 보는 것은 아니고 그저 홍보성의 일면으로 활 용될 뿐입니다. 하지만 새로운 하드웨어가 새로운 기능을 탑재하고 나오는 것을 활용해 주는 것은 매우 좋은 일입니다.

현재 MS는 Shader Model 4의 지원을 위해서 윈도우 비스타 전용의 DX10만을 고집하고 있고 이미 많은 사람들이 거기에 동요된 듯 하지만 간과해서는 안될 중요한 것이 한가지 있습니다. 그 것은 그래픽스 API는 Direct3D만 있는게 아니라 OpenGL도 있다는 것입니다.OpenGL 2.x는 Shader Model 4를 지원해 줍니다. 이미 OpenGL 2.1버전에서 Shader Model 4의 새로운 Geometry Shader를 완벽하게 지원해 주며 OpenGL Extension을 통해서 새로운 하드웨어의 모든 기능을 지원할 수 있습니다.

그리고 이 것은 윈도우 비스타를 요구하지 않으며 윈도우 XP에서 DX10에서 지원할 수 있는 모든 것 이상의 기능을 제공할 수 있습니다.

만 일 당신이 Shader Model 4를 지원하는 새로운 GeForce 8 시리즈의 하드웨어나 그 이후에 나올 Nvidia나 ATi의 차기 하드웨어를 구입했다고 가정해 봅시다. 그러나 당신은 윈도우 비스타를 구입하지 않았습니다. 당신은 윈도우 XP를 쓰기 때문에 당신이 산 하드웨어의 Shader Model 4를 게임에서 맛 볼 수 없다면 정말 어처구니 없는 일일 것입니다. MS는 지독하리만치 비열합니다. 그 들의 내부 개발사들은 당연하고 많은 퍼스트 파티와 써드 파티에게 PC용 게임을 윈도우 비스타 전용으로 내 줄 것을 강요하고 있습니다. 이 것은 소비자에게나 개발사에게나 크나큰 손실입니다. MS는 윈도우 비스타를 팔기 위해 이런 어처구니 없는 정책을 펼치려 하고 있습니다.

이런 어처구니 없는 정책을 방지하기 위한 수단으로 우리는 OpenGL 2를 완벽히 지원합니다. 현재 언리얼 엔진 3는 DX10도 완벽지원을 하도록 업그레이드 했지만 우리는 여전히 윈도우 XP 유저들도 많다는 것을 알고 있습니다. 그 들이 게임을 위해서 무리하게 돈을 지출하여 윈도우 비스타를 구입 할 필요가 없이도 Shader Model 4 하드웨어의 장점을 완전히 활용할 수 있게 만들어 주기 위해 언리얼 엔진 3는 OpenGL 2.x를 통해서 DX10 이상의 기술들을 모두 지원해 줍니다. 조만간에 발매될 언리얼 토너먼트 2007은 DX9와 DX10도 지원하지만 윈도우 XP에서도 OpenGL 2를 통해서 Shader Model 4 하드웨어를 완벽히 구동하여 DX10로 돌린 것과 다를바 없는 아니 오히려 OpenGL의 Extension을 활용하여 DX10보다 약간 더 나은 기술을 제공할겁니다. 우리는 MS의 이런 정책을 매우 달갑게 여기지 않습니다. 때문에 언리얼 엔진 3를 사용하는 모든 게임들은 OpenGL 2.x를 통해 DX10 지원 이상의 Shader Model 4 하드웨어를 지원해 줄 것입니다.

뿐만 아니라 언리얼 엔진 3를 사용하지 않는 개발사들의 게임들과 게이머들을 우리는 얼마 후 열릴 GDC 2007에서 OpenGL 2의 Shader Model 4 지원해 대해서 논의할 것이며 OpenGL 2의 Shader Model 4 사용법을 논문으로 공개해 될 수 있으면 많은 개발사들이 MS의 억지스러운 횡포에 휘둘리지 않고서도 윈도우 XP에서도 Shader Model 4를 지원할 수 있도록 할 것입니다.

결론

1. DX10는 MS의 윈도우 비스타의 판매를 촉진하기 위한 사기에 가까운 홍보 수단이다.

2. DX10와 DX9의 기술적인 그래픽의 차이는 결국 그래픽 카드가 Shader Model 4를 지원하느냐 Shader Model 3를 지원하느냐의 차이일 뿐이다.

3. Shader Model 4와 Shader Model 3의 발전으로 그래픽의 차이는 생각보다 크지 않다. Shader Model 1에서 Shader Model 2로의 발전이 가장 컸었다.

4. Shader Model 4를 구동하기 위해 꼭 윈도우 비스타의 DX10을 사용할 필요는 없다. 윈도우 XP의 OpenGL 2가 있으며 OpenGL 2를 통해서 Shader Model 4를 완벽히 지원 가능하다.

5. 언리얼 엔진 3는 윈도우 XP 유저들을 결코 버리지 않을 것이다. 언리얼 엔진 3는 DX10도 완벽 지원하지만 윈도우 XP에서도 OpenGL 2와 OpenGL Extension을 통해서 DX10 이상으로 Shader Model 4를 완벽히 지원해 준다. 언리얼 엔진 3를 사용하는 모든 게임들이 해당사항이 된다.

6. 언리얼 엔진 3를 사용하지 않는 개발사들도 OpenGL 2를 통해서 윈도우 XP에서 Shader Model 4를 지원할 수 있게 하기 위하여 언리얼 엔진 3에 사용된 OpenGL 2 렌더링 기술을 문서화하여 공개할 예정이다.

[CV][CG] 컴퓨터그래픽스 추천 서적

:: 컴퓨터그래픽스 추천 서적 목록
http://www.neatware.com/lbstudio/web/hlsl.html


0) Preface

The following list is primarily intended as a study guide for graduate students (masters or PhD) who intend to do research in the area of computer graphics. Computer graphics has involved into a fairly mature field so that a decent foundation is required before good research can be done. The list gives several books that I would recommend to read. There are many different types of books and it is sometimes difficult to pick the right one. Personally, I prefer to start reading books that are less formal, more redundant and give a good intuitive understanding of a topic. These type of books might be criticized for being too easy and not rigorous enough. However, if your background is computer science, it might be hard to understand advanced mathematical texts at the beginning. I believe it is much more efficient to read the simple introduction first. Then, after you have a good initial understanding, you might get bored with introductory books and favor books that are concise, in depth and include a rigorous and complete treatment of a topic. Additionally, it is important to consider that even the simple books require a decent mathematical foundation.

Constructive comments and feedback is appreciated. Peter Wonka - May 2006.

1) Computer Graphics Text Books

1.1) Basic Text Books

There are several interesting text books that can be used as introduction to Computer Graphics. These books cover the topics of an introductory undergraduate class in computer graphics:

* Hearn, Baker. Computer Graphics with OpenGL.
The book has many nice illustrations, but is fairly long and not very concise. I currently use this book for the undergraduate class in computer graphics.
* Shirley. Fundamentals of Computer Graphics.
This book is more concise and formal and covers more advanced topics.

1.2) OpenGL

Most computer graphics programs in research use OpenGL. OpenGL is also typically covered in the first introductory undergraduate class:

* OpenGL Architecture Review Board, Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis.
OpenGL(R) Programming Guide : The Official Guide to Learning OpenGL(R), Version 2 (5th Edition) (Paperback)

1.3) Real-time rendering

The main book in this area is

* Tomas Moeller, Eric Haines. Real-Time Rendering (2nd Edition)

The book is very ambitious and covers many topics in the area of real-time rendering and also related topics from other areas. I think this book is one of the best books to read after reading an introduction to Computer Graphics. The disadvantage is the fact that several topics are not described in sufficient detail to be understandable from the book. However, the book does a very good job to reference important research papers in most areas for further study Other interesting books in real-time rendering are the GPU GEMS. These books are collected articles about various topics that use graphics hardware. The advantage is that articles are easier to read than average research papers and the articles often include source code for vertex shader and pixel shader.

* GPU Gems 2 : Programming Techniques for High-Performance Graphics and General-Purpose Computation (Gpu Gems)
Matt Pharr, Randima Fernando;
* GPU Gems: Programming Techniques, Tips, and Tricks for Real-Time Graphics
Randima Fernando

1.4) Physically-based rendering

I use the following two texts for the graduate graphics class:

* Pharr and Humphreys. Physically-based Rendering.
This book is a good introduction to global illumination, focusing on ray tracing. The book includes source code and includes many detailed explanations. I think it is a great introduction to global illumination and ray tracing, because it is detailed enough to convey advanced concepts, but still easy to read.
* Dutre, Bekaert, Bala. Advanced Global Illumination.
This book is more concise, shorter and it seems to be more complete. It is definitely harder to read as an introduction, because it includes a many formulas.

2) Mathematics

To sell research ideas and to be precise in the description of what you are doing, it is important to read a lot of math. Starting with a good foundation in calculus and linear algebra you can then proceed to more advanced topics. Again, this list focuses on books that are understandable by computer science graduate students with decent mathematics background.

2.1) Calculus

* James Steward. Calculus.
This basic book is not extremely formal. Most of this information is typically covered in undergraduate classes.

2.1.1) Vector Calculus

* Schey. Div, Grad, Curl, and All That: An Informal Text on Vector Calculus
This is a great little book that gives a good overview. The book can be read really quickly.

2.2) Linear Algebra

* Gilbert Strand. Linear Algebra and Its Application.
This is one of my favorite books. I would recommend it to any PhD student in computer graphics.

3.4) Signal Processing

* Bracewell. The Fourier Transform and Its Application.
This text focuses on the continuous Fourier transform. I really like this book, because it includes many images and explains the Fourier transform without too many simplifications. I found that most computer graphics books do not present the Fourier transform in sufficient depth. This is understandable due to space constraints, but the Fourier transform is essential for several topics in computer graphics, most importantly aliasing and anti-aliasing. I would recommend that text to all PhD students in computer graphics. Read at least the first eight chapters.

3.3) Wavelets

* Jensen and la Cour Harbo. Ripples in Mathematics.
This book is a very simple introduction to the topic. The first 70 pages give an excellent intuitive understanding of wavelets using simple examples and almost no formalism. It is possible to gain a lot of intuitive insight into the topic and spend only an afternoon.

3.5) Differential Geometry

* O'Neill. Elementary Differential Geometry.
If you work with curves, and surfaces, this book is a good introduction. Discrete computations on triangle meshes are not really covered, so this book is only the basis.
* Do Carmo. Differential Geometry of Curves and Surfaces.
This book is more formal and complete.

3.6) Other Topics

There are many other topics of interest, such as statistics, monte-carlo statistical methods, curves and surfaces, and calculus of variations. Book recommendations in these areas are future work.

3) Related Areas

3.1) Computational Geometry

Computational Geometry covers topics such as spatial data structures (quadtrees, kd-trees, bsp-trees, ...) and geometric algorithms such as triangulation that are often used in computer graphics. I would recommend the book

* Computational Geometry
Mark de Berg, Marc van Kreveld, Mark Overmars, Otfried Schwarzkopf

3.2) Image Processing

* Digital Image Processing (2nd Edition)
Rafael C. Gonzalez, Richard E. Woods.
This book is fairly easy to read and covers most basic topics in image processing.

3.3) Computer Vision

Computer vision and computer graphics share many interesting problems and in the recent past conference papers included components from computer vision and computer graphics. I would recommend the book:

* Computer Vision
Linda G. Shapiro, George C. Stockman, George Stockman, Linda G Shapiro

화요일, 11월 06, 2007

원더걸스 "Tell Me" 동영상

말이 필요없음... 일단 한번 보자... ^^*

8. 마지막으로 따라해보자! 노란후드티 아가씨의 텔미 안무 동영상!!
http://serviceapi.nmv.naver.com/flash/NFPlayer.swf?vid=1DC25901FC0061D16BFF231E17F531B10E29&outKey=63c4c2b2389a00d3ee01706ee3cd6955950169839a4f2e3090d12353b411ae19bd00b3d30a6193cde80eeac4b9903a9a




이건 정말 중독이군...

ps. 2007.10.7 special intro parts dance ver.
direct view : http://flvs.daum.net/flvPlayer.swf?vid=5F0nxJy8ba4$





출처:
http://cafe.naver.com/ozcity.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=54

인터넷에 떠도는 뮤직비디오부터 TV프로그램에서 방송된 방송본, 안무동영상까지 한번에 모아봤다.
누구라도 원샷에 귀여운 원더걸스 동영상을 쉽게만나보길 바래요 ^^*

1.원본 뮤직비디오. 솔직히 원본 뮤직비디오는 그다지..감흥 제로.
바로보기 : http://flvs.daum.net/flvPlayer.swf?vid=L9Nxz6J0USo$
링크 : http://tvpot.daum.net/clip/ClipView.do?clipid=4580422

2. MBC HD
바로보기 : http://dory.mncast.com/mncHMovie.swf?movieID=10015786520070922175633&skinNum=1
링크 : http://narsis.tistory.com/190

3. SBS HD
바로보기 : http://flvs.daum.net/flvPlayer.swf?vid=ba7p9JRuXns$
링크 : http://tvpot.daum.net/clip/ClipView.do?clipid=4685511

4. KBS HD
바로보기 : http://eq.freechal.com/flvPlayer.swf?docId=134704&serviceId=QT00
링크 : http://qtv.freechal.com/Movie/QTVMovieView.asp?docid=134704

5. 뮤직비디오 + SBS 스페셜
링크 : http://tvpot.daum.net/clip/ClipView.do?clipid=4686980

6. 뮤직비디오 + SBS 스페셜2 (프로필판)
링크 : http://tvpot.daum.net/clip/ClipView.do?clipid=4685213
개인적으로 랩하는 맏언니 두번째 아이가 너무 좋아!! 김유빈 88년 10월4일생!! +_+
담백하게 생겨서 맘에 든다~ 거기다 임수정필의 삐친머리까지..
아~ 중독이야

7. 박진영의 안무시범까지.. 박진영도 좋아! 저 유연한몸..내가가지지못한... ㅠ.ㅠ
바로보기 : http://flvs.daum.net/flvPlayer.swf?vid=QuzEeAE87LA$
링크 : http://tvpot.daum.net/clip/ClipView.do?clipid=4680105

8. 마지막으로 따라해보자! 노란후드티 아가씨의 텔미 안무 동영상!!
바로보기 : http://serviceapi.nmv.naver.com/flash/NFPlayer.swf?vid=1DC25901FC0061D16BFF231E17F531B10E29&outKey=63c4c2b2389a00d3ee01706ee3cd6955950169839a4f2e3090d12353b411ae19bd00b3d30a6193cde80eeac4b9903a9a
-------------------------
ps. 2007.10.7 special intro parts dance ver.
direct view : http://flvs.daum.net/flvPlayer.swf?vid=5F0nxJy8ba4$

일요일, 10월 14, 2007

저널링(Journalling)과 ReiserFS

다시 읽어봐도 좋은 내용이 많군...

Over time, this kind of "I'll code around the problem" approach
encourages code bloat and lots of incompatible special-purpose APIs,
which isn't a good thing.

아직도 이런 부분이 많지? ;)

"I'll code around the problem" 정신상태로 작업하는 이들이여...
모두 정신 차리시라... lol



Common threads: 고급 파일시스템 개발자 가이드
저널링(Journalling)과 ReiserFS
[한글] http://www-128.ibm.com/developerworks/kr/linux/library/l-fs.html
[영어원문] http://www.ibm.com/developerworks/library/l-fs.html



저널링(Journalling)과 ReiserFS

Daniel Robbins
President/CEO, Gentoo Technologies, Inc.
2001년 6월

Linux2.4에 ReiserFS, XFS, GFS와 같은 새로운 파일시스템 기능이 추가되면서 기대를 모으고 있다. 이러한 파일시스템들은 분명 훌륭한 것들이다. 하지만 실제로 그것의 기능과, 어떤 부분에서 효율적으로 사용되는지, 또한 Linux 제품 환경에서 안전하게 사용할 수 있는 방법에 대해서는 정확히 모른다. Daniel Robbins는 Linux 2.4에 새롭게 향상된 파일시스템을 설치하는 방법을 설명한다. 또한 유용한 구현 방법, 성능 관련 정보 및 중요한 기술적인 사항들을 설명하여, 새로운 파일 시스템의 경험이 가능한 즐거운 일이 될 수 있도록 할 것이다. 특히 저널링(Journalling)과 ReiserFS의 장점을 설명한다.

개요
이 글에서는 ReiserFS, XFS, JFS, GFS, ext3와 같은 Linux의 다양하고 새로운 파일시스템을 소개할 것이다. 파일시스템을 사용하는 데에 실질적으로 필요한 지식을 전달하고 싶다. 가능한 한 중요한 실수를 피하는 방법에 대해서도 설명하겠다. 이를 위해 파일시스템의 안정성, 퍼포먼스 문제, 부정적인(negative) 애플리케이션 상호작용, 최상의 커널/패치 조합 (combination) 등을 주의 깊게 살펴볼 것이다. 이 글이 차세대 파일시스템에 대한 지침서의 역할을 해 줄 것이라고 기대한다.

우선 이 글을 어떻게 구성할 지에 대해 설명하겠다. 나는 Linux 개발 커뮤니티에 있어서 매우 중요한 두 가지 주제인 저널링과 ReiserFS을 설명하려 한다. 저널링이 중요한 이유는 꽤 오랫동안 예견해오던 기술이고 결국 지금 우리 눈앞에 펼쳐져 있기 때문이다. 저널링 기술은 ReiserFS, XFS, JFS, ext3, GFS에서 사용된다. 저널링의 정확한 기능과 Linux에 저널링이 필요한 이유를 아는 것은 중요하다. 이 글을 통해 내가 기대하는 것은 저널링을 완벽히 이해하는 차원을 넘어 다른 사람들에게도 이러한 기술을 설명할 때 훌륭한 지침서의 역할을 하는 것이다. 더 나아가서 전 세계의 부서와 조직에서 새로운 저널링 파일시스템으로 변경할 때 실제 적용 사례로 작용할 수 있기를 기대한다.

이 글의 후반부에는 ReiserFS에 대해 살펴볼 것이다. 이쯤 되면 여러분은 새로운 파일시스템 기술로 인해 기존의 것이 좀 더 빠르게 향상되었음을 의미하는 것이 아니라는 것을 알게 될 것이다. 다시 말해서 이전에는 가능하지 않았던 방식으로 어떤 일을 할 수 있게 되었다는 것을 의미한다. 새로운 파일시스템의 기능은 코드 작성 방법이나 향후의 Linux 소프트웨어 개발 프로젝트의 방식에도 영향을 미칠 것이다.

저널링 이해하기:meta-data
여 러분도 잘 알다시피 파일시스템은 데이터를 저장하고 검색하고 처리하기 위해서 존재한다. 이를 위해서 파일시스템은 모든 데이터가 조직화 되고 액세스가 가능한 상태로 되어있는 내부 데이터 구조를 가지고 있어야 한다. 그 내부 데이터 구조 (문자 그대로 "데이터에 대한 데이터") 를 meta-data라고 한다. meta-data 의 구조는 파일시스템에 특정한 구분과 퍼포먼스 특징을 부여한다. .

일반적으로 우리는 파일시스템의 meta-data에 직접적으로 관여하지 않는다. 대신 특정 Linux 파일시스템 드라이버가 그러한 일을 대신한다. Linux 파일시스템 드라이버는 meta-data의 미로를 처리하기 위해 특별히 만들어졌다. 하지만 파일시스템 드라이버가 적절하게 작업을 수행하기위해서는 한가지 중요한 조건이 있다. 파일시스템 드라이버는 합리적이고 일관성이 있으며 손상되지 않은 상태의 meta-data를 찾을 수 있어야 한다. 그렇지 않으면 파일시스템 드라이버는 meta-data를 인식하거나 처리 할 수 없고 따라서 우리들도 파일에 액세스 할 수 없다.

저널링 이해하기:fsck
이 제 fsck에 대해 알아보자. Linux가 부팅 될 때, fsck도 시작하게 되며 시스템의 /etc/fstab 파일에 있는 모든 로컬 파일시스템을 검사한다. fsck는 마운트 될 파일시스템의 meta-data가 사용할 수 있는 상태인지를 확인하는 역할을 한다. 대부분의 경우 사용할 수 있는 상태일 것이다. Linux가 종료되면 이것은 조심스럽게 모든 캐시 데이터를 디스크에 저장하고 파일시스템이 정확하게 언마운트(unmount) 되었음을 확인한다. 그래서 시스템이 다시 시작될 때 사용할 준비가 되는 것이다. 일반적으로 fsck는 마운트 될 파일시스템을 검사하고 그것이 정확히 언마운트 되었다는 것을 확인하고 모든 meta-data가 정상이라는 판단을 내린다.

하지만, 갑작스러운 정전 또는 시스템 다운과 같은 변수가 생기기 마련이다. 이런 "불행한" 상황이 발생하면 Linux는 파일시스템을 완벽하게 언마운트 할 수 없다. 시스템이 재 부팅되고 fsck가 검사를 시작하면 파일시스템이 완전히 언마운트 되지 않았음이 밝혀지고 아마도 Linux 파일시스템 드라이버는 파일시스템을 볼 수 없다는 결론이 나온다. 아마도 meta-data가 어떠한 경로에서 뒤죽박죽 되었을 가능성이 크다.

이러한 문제를 풀기위해 fsck는 meta-data를 세밀하게 검사하고 정상성 점검(sanity check)을 수행한다. 그래서 그 경로에서 발견된 에러를 수정한다. 일단 fsck가 완료되면 파일시스템은 사용할 준비를 갖추게 된다. 비록 최근에 변경된 데이터 일부를 잃었을지라도 meta-data는 다시 정상적인 상태가 되었기 때문에 파일시스템은 마운트되어 사용할 수 있게 된다.

fsck의 문제점
이 러한 fsck의 방식은 파일시스템의 일관성(consistency)을 확인하는데 있어서 괜찮은 방법인 것 같다. 하지만 최적의 솔루션은 아니다. 문제는, 파일시스템의 일관성을 확인하기 위해서 fsck가 파일시스템의 전체 meta-data를 검사해야 한다는 데에 있다. 모든 meta-data에 대해 완벽한 일관성 체크를 한다는 것은 그 자체로 시간 낭비이며 완료하는데 최소한 수분이 걸린다. 게다가 좀 더 큰 파일시스템일 경우 소요 시간은 더욱 길어진다. 이것은 매우 큰 문제이다. 왜냐하면 fsck가 작동하는 동안 Linux 시스템이 사실상 오프라인 상태이고 방대한 분량의 파일시스템 이라면 fsck 작동은 30분 이상 걸리기 때문이다. 따라서 표준 fsck 작동은 시스템 가동시간(uptime)이 매우 중시되는 미션 크리티컬한 데이터 센터 환경에 엄청난 결과를 초래할 수 있다. 좀 더 나은 솔루션이 있다.

저널(journal)
저 널링 파일 시스템은 저널이라고 하는 새로운 데이터 구조를 추가함으로써 이러한 fsck 문제를 해결한다. 이 저널은 on-disk 구조이다. 파일시스템 드라이버가 meta-data에 어떠한 변경을 가하기 이전에 어떤 일을 할 것인지에 대한 내용을 저널에 기록한다. 그 다음 meta-data를 수정하게 된다. 그렇게 함으로써 저널링 파일시스템은 최근의 meta-data 수정사항의 로그를 유지하며, 이는 특히 올바르게 언마운트 되지 않은 파일시스템의 일관성을 검사해야 할 경우에 유용하다.

저널링 파일시스템은 데이터(stuff)와 meta-data(stuff에 대한 데이터)를 저장하는 것은 물론 meta-meta-data(stuff에 대한 데이터에 대한 데이터)를 호출할 수 있는 저널도 갖추었다고 생각하면 된다.

저널링의 기능
그 렇다면 fsck는 저널링 파일시스템을 어떻게 처리할까? 실제로, 아무것도 하지 않는다. fsck는 간단히 파일시스템을 무시하고 이것이 마운트 되도록 한다. 파일시스템을 일관성 있는 상태로 빠르게 복원할 수 있었던 마법은 Linux 파일시스템 드라이버에서 찾을 수 있다. 파일시스템이 마운트되면 Linux 파일시스템 드라이버는 파일시스템이 정상인지의 여부를 점검한다. 그렇지 않을 경우 meta-data는 고정되어야 하며 meta-data를 검사하는 대신 저널을 살핀다. 저널은 최근의 모든 meta-data 변경 로그를 순차적으로 포함하고 있기 때문에 최근에 변경된 meta-data 부분만 검사하면 된다. 그래서 몇 초안에 파일시스템을 일관성 있는 상태로 되돌릴 수 있다. fsck와 같은 기존의 접근방식과는 다르게 저널 리플레잉 프로세스(journal replaying process)는 대용량의 파일시스템인 경우에도 시간이 많이 걸리지 않는다. 이 저널 덕분에 수백 기가의 파일시스템 meta-data는 거의 동시에 일관성 있는 상태로 돌아올 수 있다.

ReiserFS
이제 ReiserFS에 대해 알아보도록 하자. 우리가 앞으로 연구해야 할 저널링 파일시스템 중에서 가장 먼저 연구해야 할 대상이다. ReiserFS 3.6.x (Linux 2.4에 포함되어 있음)는 Namesys의 Hans Reiser와 그가 이끄는 팀이 개발하였다. 그들은, 최상의 파일시스템이란 애플리케이션이 좀 더 직접적이고, 효율적이며 강력하게 상호 작용할 수 있는 단일 공유 환경(single shared environment) 또는 namespace의 구현을 도와주는 것이라는 철학으로 뭉쳤다. 이를 위해서 파일시스템은 퍼포먼스와 기능에 대한 사용자의 요구를 충족시켜야 한다. 그러한 방식으로 사용자들은 파일시스템 상에서 실행하는 특별한 목적의 레이어를 구현하는 대신 지속적으로 직접 파일시스템을 사용할 수 있다.

작은 파일(small file) 퍼포먼스
파 일시스템을 좀 더 효율적으로 만들려면 어떻게 해야 할까? Namesys는 파일시스템의 한 부분에 초점을 맞추기로 했다. 즉 작은 파일(small file) 퍼포먼스 이다. 일반적으로 ext2와 ufs와 같은 파일시스템은 이 분야에 있어서는 장점이 없다. 따라서 개발자들이 필요로 하는 퍼포먼스를 얻기 위해 데이터베이스를 사용하거나 또는 특정한 방식의 해킹을 통해 해결할 수 밖에 없었다. 오랜 세월동안 이와 같이 "문제에 대한 코드를 작성한다 (I'll code around the problem)" 식의 접근방식은 코드만 많아지게 하고 호환되지 않는 특별한 목적의 API만을 만들 뿐이다.

ext2가 그러한 종류의 프로그래밍을 어떻게 유발하는지에 대한 예제도 있다. ext2는 많은 20k 바이트대의 파일을 저장하는데 유용하다. 하지만 2,000개의 50-byte 파일을 저장하는 데에는 이상적인 기술이 아니다. ext2가 아주 작은 파일을 다루어야 할 때 퍼포먼스는 급격히 떨어지게 되고 ext2가 하나 또는 4개의 k chunk (파일시스템이 만들어질 때 설정할 수 있음)에 공간을 할당하기 때문에 저장 효율성 또한 떨어진다.

파일시스템에 작은 파일을 많이 저장해서는 안된다는 것이 일반 상식이다. 대신 파일시스템 위에서 실행되는 일종의 데이터 베이스에 저장해야 한다고 알고있다. 하지만 Hans Reiser는 파일시스템의 상단에 레이어를 빌드해야 할 때마다 파일시스템은 여러분의 필요를 충족시키는 것은 아니라고 말한다. 파일시스템이 여러분의 필요를 충족시켰다면 그때는 첫 단계에서 특별한 목적의 솔루션을 사용하지 않아도 된다. 따라서 여러분은 개발시간을 줄이고 코드가 늘어나는 것을 방지할 수 있게 된다.

이론은 이렇다. 하지만 실제로 ReiserFS의 작은 파일 퍼포먼스는 어떠한가? 놀랍도록 좋다. 사실 ReiserFS는 1 k 사이즈보다 작은 파일을 핸들링 할 때 est2 보다 8배에서 15배 정도 더 빠르다. 더욱이 이러한 퍼포먼스 향상은 다른 파일 유형때문에 퍼포먼스를 희생하지 않아도 된다. 일반적으로 ReiserFS는 여러모로 ext2보다 훨씬 뛰어나지만 그 중에서도 특히 작은 파일을 핸들링 할 때 빛을 발한다.

ReiserFS 기술
그 렇다면 ReiserFS의 작은 파일 퍼포먼스가 어떠한지 살펴보자. ReiserFS는 모든 파일시스템 데이터를 조직화하기 위해서 특별히 최적화된 b* balanced tree (파일시스템 당 한개) 를 사용한다. 이것은 그 자체로 훌륭한 퍼포먼스를 제공하고 파일시스템 레이아웃에 대한 제한을 없앤다. 이제 100,000 개의 다른 디렉토리를 한 디렉토리 안에 포함 할 수 있다. b* tree 를 사용할 때의 또 다른 장점은 ReiserFS는 파일시스템을 구현할 때 고정된 inode 세트를 만드는 대신에 필요할 때마다 inode를 할당할 수 있다는 것이다. 이는 다양한 저장에 대한 요구에 파일시스템이 유연하게 반응할 수 있고 동시에 몇 가지 추가적인 공간 효율성도 가능해진다.

ReiserFS는 작은 파일 퍼포먼스를 향상시킬 수 있는 주요 기능도 가지고 있다. ext2와는 다르게 ReiserFS는 고정된 1k 또는 4k 블럭으로 저장 공간을 할당하지 않는다. 대신 필요할 때마다 정확한 사이즈를 할당할 수 있다. 그리고 ReiserFS는 파일시스템 블록 보다 작은 파일과 파일의 끝 부분을 위한 이름인 tail 주변에 집중된 특별한 몇몇 최적화를 포함한다. 퍼포먼스를 늘리기 위해서 ReiserFS 파일시스템은 디스크 어딘가에 있는 데이터를 저장하고 그것을 지목하기 보다 없는 b*tree leaf node 내부에 파일을 저장할 수 있다.

이것은 두 가지 일을 한다. 첫째, 이것은 작은 파일 퍼포먼스를 획기적으로 향상시킨다. 파일 데이터와 stat_data(inode) 정보가 각자의 오른쪽 옆에 저장되기 때문에 그들은 일반적으로 한 번의 디스크 입출력 작업으로 판독될 수 있다. 둘째, ReiserFS는 tail들을 함께 패킹 할 수 있다. 게다가 많은 공간도 절약된다. 사실 tail 패킹이 가능한(디폴트) ReiserFS 파일시스템은 같은 ext2 파일시스템보다 6%정도 더 데이터를 저장 할 수 있다. 얼마나 놀라운 일인가?

하지만 tail 패킹은 미미한 퍼포먼스 히트를 유발한다. 왜냐하면 파일이 변경될 때 ReiserFS로 하여금 데이터를 다시 패킹 하도록 하기 때문이다. 이러한 이유로 인해서 ReiserFS tail 패킹은 꺼지고 관리자가 속도와 공간 효율을 택할지 저장 용량을 희생하고 속도를 선택할 지 결정할 수 있도록 한다.

ReiserFS는 훌륭한 파일시스템이다. 다음에는 Linux 2.4에 ReiserFS의 세팅 과정을 설명하겠다. 또한 퍼포먼스 튜닝, 애플리케이션 상호작용, 최고의 커널등에 대해 자세히 살펴보도록 하겠다.

참고자료

* discussion forum on this article by clicking Discuss at the top or bottom of the article. --> Namesys Web page : ReiserFS에 대한 자세한 정보

* ReiserFS mailing list : ReiserFS 정보 제공. ReiserFS mailing list archive 참조

* Linux Gazette Journalling Filesystems : UFS, ext2, ReiserFS의 meta-data 차이점 심층 연구

* Jedi's ReiserFS/Qmail tuning page : qmail 사용자를 위한 정보제공. ReiserSMTP(qmail 컴포넌트 컬렉션)

* Linux Weekly News: 최신 커널 개발 소식
*
* JFS Overview : developerWorks, Steve Best

* JFS fundamentals tutorial : developerWorks.

* Linux 참고자료 : developerWorks.

* Open source 참고자료 : developerWorks.

필자소개
Daniel Robbins는 Gentoo Technologies, Inc.의 회장/CEO이고, Gentoo Project의 핵심 설계자이며, Caldera OpenLinux Unleashed, SuSE Linux Unleashed, Samba Unleashed의 저자이다.

일기 (2007.10.13)

hmm...
I've seen the movie what "Copying Beethoven" at theater today,
and i've felt pretty impression.
Indeed... :)

But, i've felt lacking in last scene and had had wants more and more...
How do you think ?

I've had feel the lack of make an expression what more impressive scenes,
life of Beethoven and his passion, within 1 hour 40 minutes.

Actually, i love him and his music. but i've hadn't understand all of his music.

Yea, i've had looking forward to watching his movie.
Anyhow, i had had happy what its make an impress me during watch his movie and i've.

Regards,
godmode2k


---
hmm, Use this as a makeshift.

월요일, 10월 01, 2007

Prank Video: Hotel Reservation

:: hehehe... enjoy this prank video! ;)

Anyway this video made me fucking cry!

"I am a joke to you whitedevil?!, Why you fucking laugh.
I come there i fuck you in the ass!"

"SPELL MY NAME"

"MOTHERFUCKER U SPELL WRONG!"

http://www.youtube.com/watch?v=CKCS_CnzDuo

토요일, 9월 29, 2007

일기 (2007.09.29)

더 잘 살기 위해서


여행을 한다고
바로 무언가가 남는 건 아니다.
하지만 시간이 흐르고 흘러 여행하던 날들을 되돌아보면,
낯선 거리를 헤매고 다니던 시간은 평생 웃음지을 수
있는 기억이 된다. 떠나고 싶다는 생각을 하는 건
사치가 아니다. 왜 꿈만 꾸고 있는가.
한번은 떠나야 한다.
떠나는 건 일상을 버리는 게 아니다.
돌아와 일상 속에서 더 잘 살기 위해서다.


- 박준의《카오산 로드에서 만난 사람들》중에서 -


* 남보다 더 부자로 사는 것,
남보다 호의호식하는 것이 더 잘 사는 것일까요?
물질의 풍요도 물론 중요합니다. 그러나 그게 전부는 아닙니다.
일상을 벗어나 한 걸음 더 멀리 더 깊게 세상을 바라다보면
물질의 풍요보다도 마음의 풍요로움이 사람을 진정으로
더 잘 살게 해주는 길임을 새삼 깨닫게 됩니다.


- 고도원의 아침편지 (http://www.godowon.com/)


마음도 표현돼야 한다

남을 칭찬하는 데는
돈도 시간도 들지 않는다.
아내에게 "사랑하오. 당신은 멋져요.
당신이 내 사람이라서 얼마나 기쁜지 몰라요." 라고
말하기가 그렇게 어려운가. 직원에게 "자네는 정말 일을
잘 하는구먼. 열심히 일 해주어서 정말 고맙네"라고
말하는 데 몇 분이나 걸리는가. 마음으로만
고마워하고 칭찬하는 것으로는 부족하다.


- 조엘 오스틴의《긍정의 힘》중에서 -


* 고마움도 칭찬과 격려로 표현돼야 합니다.
성실한 사람은 주어진 일에 그냥 열심히 일하는 것 뿐입니다.
그러나 이런 사람도 칭찬과 격려가 있으면 더 좋습니다.
설사 일을 잘 못하는 사람도 좋은 점 하나라도 찾아서
칭찬해 주면 더 잘 하는 사람이 될 수 있습니다.
칭찬과 격려. 사람들을 힘나게 하는
가장 좋은 묘약입니다.

- 고도원의 아침편지 (http://www.godowon.com/)

월요일, 9월 17, 2007

일기 (2007.09.17)

기회

성공은 어느 날 갑자기 찾아오는 게 아니다.
늘 준비하고 만들어가야 한다.
기회가 왔을 때 준비하지 않은 사람은
행운을 놓칠 수 밖에 없다.

- 김상경의《나는 나를 베팅한다》중에서 -


* 참 많이 들어온 이야기입니다.
잘 알면서도 실행하지 못하는 것이 늘 문제이지요.
한번 지나가 버린 기회는 다시 오기 어렵고
다시 오더라도 '늦은 기회'일 뿐입니다.
기회는 준비된 사람의 몫입니다.


- 고도원의 아침편지 (http://www.godowon.com/)

목요일, 9월 13, 2007

일기 (2007.09.13)

Source: http://www.etnews.co.kr/news/detail.html?id=200709120056

"성공한 곳에 오래 머무르지 않습니다.
그러면 고정관념에 사로잡히고 매너리즘에 빠집니다.
계속 새로운 것을 추구할 것입니다."

▲ 인생모토
"일일학일일신(日日學日日新)"
매일매일 배우고 새로워져야 한다.
한 살이라도 젊었을 때 스스로 경쟁력을 키워야 한다는 의미도 담고 있다.

▲ 이공계에 한마디
"미래에 대해 불안해하는 사람이 많아서 안타깝다. 그러나 아무 문제가 없다.
자기가 하는 일이 크든 작든 세계 최고가 될 정도로 열심히 해라.
꿈을 키울 수 있는 기회가 많다."


- 진대제 스카이레이크인큐베스트 대표


음... 어쩜 나와 생각이 이렇게 같을 수 있나...
회사에서 하는 일이던 집에서 하는 작은 작업이던, 항상 최선을 다하자...
하지만,,, 회사는... -_-; 요건 생각을 해봐야겠다... ㅋㅋ

일요일, 9월 09, 2007

일기 (2007.09.08)

:: 서울대공원에서... ^___^
- 딥다 많구나... 사진이... -_-;

일단 대문...