This is a mirror of official site: http://jasper-net.blogspot.com/

An NTFS Parser Lib

| Sunday, May 16, 2010
This is a library to help parsing an NTFS volume, as well as file records and attributes. The readers are assumed to have knowledges about NTFS and C++ programming.

I will not introduce NTFS concepts here as the introduction will be either a big animal or nothing at all. Search the best document about NTFS here.

Being an OS fan, I was shameful to have little knowledge about the file system. Every time I read an OS related book, I will be at a loss in the chapter "File System". The contents were either too concise for a deep understand or too tedious to keep reading. So I decided to write some short codes to find out what's going on in my hard disk. I picked NTFS as it's the file system in my box, and almost everyone says it's a good design, at least not a bad one.

At first it's quite painful as there were little documents available. Microsoft doesn't make its so called "New Technology File System" public. Only pieces of information can be found on the web. After studying the collected documents for some days, the cloud over my head scattered gradually. After some successful testing, I thought it was applicable to write a library to facilitate NTFS parsing, as well as to deepen my knowledge.

Windows NT tries to construct an object oriented operating system. At the very beginning, I hesitated in choosing whether C++ classes or traditional C procedures to fulfill the task. As an important part of OS, it should be efficient and compact, as well as scalability and manageability. The OS kernel must be written in C. But I'm writing a user land library and after studying NTFS data structures thoroughly and carefully, I decided to use C++ classes to encapsulate them.

NTFS is an advanced journaling file system which fits the needs from home PC to data server. I haven't implemented all of its functions. Following parts are the unsupported yet.
1) Journaling
2) Security
3) Encryption and compression
4) Some other advanced functions

Read more: Codeproject

Posted via email from jasper22's posterous

0 comments: