Managed World

Techno-babble from yet another babbler RSS 2.0
# Friday, September 22, 2006

[Update: Added link to RDC Whitepaper and blurb about RDC dogfooding in DFS Replication (thanks cfsbloggers)]

Hello everyone, and welcome to the second installment of the “Feature Of The Week” newsletter. This week, we will take a short little peek at a feature coming in Vista and Longhorn Server called Remote Differential Compression.

So, sit back, relax, and enjoy the Longhorn Server Feature Of The Week!

What is Remote Differential Compression? Remote Differential Compression (RDC) allows applications to synchronize data between two computers in an efficient manner. The synchronization efficiency is made possible by using compression techniques to minimize the amount of data sent across the network.

What makes RDC different from other differencing mechanisms? RDC is different from patching-oriented differencing mechanisms, such as Binary Delta Compression (BDC), which are designed to operate only on known versions of a single file. RDC makes no assumptions about file similarity or versioning. Because differences between files are computed on the fly, RDC is ideally suited for synchronizing files that are different or have been updated independently.

What scenarios does this enable? RDC is suitable for applications that move data across a wide area network where the data transmission costs outweigh the CPU cost of signature computation. RDC can also be used on faster networks if the amount of data to be transferred is relatively large and the changes to the data are typically small.

Dogfooding RDC. It's important to note that we are actively dogfooding RDC internally. One of the current examples of that dogfooding is that RDC is actively being used for DFS Replication, available on Windows Server 2003 R2.

Resources

Enjoy!

 #       Comments [3]

Hello everyone, and welcome to the “Feature Of The Week” newsletter. In the Feature Of The Week Newsletter, we visit a new feature coming in Longhorn Server every week. The goal is that these are nice, short, and efficient to minimize the amount of effort required by you, the reader. With every Feature Of The Week, we will provide links to more resources in case you want to spend more time diving into the feature covered.

So, sit back, relax, and enjoy the Longhorn Server Feature Of The Week!

What is Transactional NTFS? Transactional NTFS is an enhancement to NTFS that allows all file operations on an NTFS file system volume to be performed within the scope of a transaction. This is made possible by a new transaction infrastructure in the kernel that allows operating system services to participate in transactions via the new Kernel Transaction Manager.

What scenarios does this enable? Transactional NTFS is also fully capable of communicating with the MS Distributed Transaction Coordinator, meaning that TxF operations can participate in transactions that are leveraging any other Resource Manager that DTC is capable of working with. What does this mean to you? It means that you can now have an application that not only encompasses database calls, but also operations to the file system as well (think of Document Management solutions). With transaction enhancements being made to the new SMB 2.0 protocol, you can also now contain distributed file operations within a transaction as well.

Resources

Enjoy!

 #       Comments [0]
# Tuesday, September 19, 2006

For those of you that semi-regularly follow this blog, you may or may not have noticed that I've really been getting into OS Development lately. Of course, the first step is brushing up on x86 assembly language. Outside of that, it's a lot of Research, Research, Research, and more Research. Heck, even if it's not research, I just finished the book "Just For Fun", about Linus Torvalds (very enjoyable read, IMO).

One of the specific topics that has really excited me is the Virtual Machine Monitor architecture (type of Exokernel, Hypervisor, etc.). I figured I would take this opportunity to link out to a bunch of resources that I have found interesting as I read up on this topic (you'll find that every single one of these points to Wikipedia; I'm finding that I use Wikipedia MORE and MORE when doing research; I LOVE it!).

Enjoy :).

Now I just have to see what it would take to get a hold of a box with one of the new Intel VT or AMD chips :). Yum!!!

Posted in Programming
 #       Comments [0]
# Wednesday, September 13, 2006

Howdy all y'all. I'm hoping to get some feedback from all of you. Basically, I'm hoping to get a "reader's braindump" on what development features you are looking forward to most in Vista/Longhorn Server. So, what development features are you looking forward to most in Vista/Longhorn Server? Feel free to just leave a comment (nice and easy-like) :).

 #       Comments [3]
# Tuesday, September 12, 2006

For anyone that has had to boot Windows into debug mode to do some digging around (like remote Kernel Debugging), things have changed. In the past, you could open up boot.ini in the root of the system volume, and add a "/debug" flag to the Windows OS record of choice.

One of the things you might notice with Vista is that boot.ini is now gone, solid gone. So, with boot.ini gone, how do you boot into debug mode? It is done with a new tool called "bcdedit". In the root of the system volume, you'll notice a hidden system directory "Boot" which is the Boot Configuration Data store. So, to turn on Kernel Debugging with Vista, you can now execute "bcdedit /debug on" (be aware, you need to be running the command prompt under an account with Admin privileges).

If you want to see the load of stuff you can do with bcdedit now, just execute "bcdedit /?".

Posted in Vista
 #       Comments [1]
# Sunday, September 10, 2006

Before I joined the ranks at Microsoft, a hobby I started to take up was Operating System development. Technically, I didn't get very far yet (I had just started). My "kernel" (if you can even call it that) basically just printed "Hello World" to the screen. But heck, it was booting up from a floppy, loading the kernel into memory, and executing to do that (in a VM of course, I wouldn't even dare run my hobby OS on an actual machine :P).

Unfortunately, for the last several months I have been in "corporate housing" while my wife and I sell our house back in the Portland area. This means that I don't have access to various belonging of mine because they are in storage which we don't have access to. Included in this list of belongings is my main desktop computer that I was using as my development box. I have since switched over to developing with my laptop, but my OS development environment was on that machine. I haven't had the time to recreate that environment, so my hobby has kind of fallen by the wayside as of late.

Recently though, I came across these two articles which outline how you can use Visual Studio to compile your own Kernel. More specifically, it outlines how to compile a PE-format executable which can be booted by using GRUB. To my delight, I was able to recreate his findings and write the hobbyist OS I had started before in about 20 minutes. I would go into the compiler/linker options that make this possible, but why don't you just read the original resources.

However, word to the wise, OS development is not something you can just waddle on into. I would advise against using OS development as a way to learn C for example. OS development should be fun, so do yourself a favor and don't frustrate yourself from the get go :).  

Now, if you're a geek like me where the idea of messing around with writing your own OS sounds exciting, there are some resources you should definitely check out that I've come across (I know they've made it easier on me):

Websites

Books

Okay, that should keep you busy for a while (I know that I've just tipped the iceberg of all those resources :P). The best advice I can give comes from the OS-FAQ Wiki: make sure you understand everything that is going on. Don't just copy code and continue plugging along. You need to understand what the code is doing. If you use the code, understand what it does. After all, if you don't, how do you expect to fix it if it breaks (and inevitably with OS development it _will_ break).

Once you're comfortable with the boot process, how grub works, getting into C land, etc., then feel free to check out the two articles on using Visual Studio 2005 to build your OS. The good news? Every tool you will need (at least for the first huge chunk of it) is available for totally free (assuming of course that you can do it from VC2005 Express which I haven't tried yet). Is there a better price than that with all the resources above at your disposal as well? I think not :).

Enjoy and happy dev'ing :).

Posted in Programming
 #       Comments [2]

Contact

Email Me Send mail to the author(s)

Calendar

<September 2006>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

About this site

Jason Olson's thoughts on Programming, Games, Music and Life in General

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2008
Jason Olson

Sign In
All Content © 2008, Jason Olson
Theme based on 'Business' created by Christoph De Baene (delarou)