Managed World

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

Hello everyone, and welcome back to  the “Feature Of The Week” newsletter. In this week’s newsletter, we will continue on the “Transactions Bandwagon” by discussing the Transactional Registry. This newsletter will be short and sweet as, truth be told, this feature still needs to have a bit more documentation than it has today.

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

What is the Transactional Registry? The Transactional Registry (TxR) is an enhancement to the Registry that allows all registry operations 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? The Transactional Registry (TxR) is also fully capable of communicating with the MS Distributed Transaction Coordinator, meaning that TxR 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, operations to the file system, as well as operations to the Registry.

Preview: Next week we will take a look at the technology that makes the Transactional NTFS and Registry possible: the Kernel Transaction Manager. Stay stuned!

 #       Comments [0]
# Monday, September 25, 2006

Why Shaun, Why?!?!? Why did you have to be on the cover of Madden this year? Yes folks, the Madden Curse strikes again. The Madden Curse has been going strong since 2001, and it appears the trend has continued.

Tonight, it was accounced that Shaun Alexander would be out "indefinitely" with a broken foot. What a surprise. I suppose those of us that knew about the Madden Curse knew that it was a matter of "when", not "if." Damn. It's a good thing the Seahawks have a good backup running back like Maurice Morris (former UofO stand-out).

Oy!

Posted in Personal
 #       Comments [0]

Yay, I can finally talk about this. For those of you that haven't heard yet, the incomparable Rory Blyth, the smartest man, is joining the C9 team.

Rory is going to make a GREAT addition to the C9 team and I expect to see some great stuff coming from him in the future. Of course, I'm also psyched because it means that he will most likely be working just one or two hallways away from me :).

Congrats Rory!

Posted in Personal
 #       Comments [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]
# Friday, September 08, 2006

It's moments like these that make me proud to be a Microsoft employee. Here's an excerpt:

Students have scheduled appointments with teachers, typed into their online calendars, instead of being limited to structured times for classes. Their laptops carry software that assesses how quickly they're learning the lesson. If they get it, they'll dive deeper into the subject. If not, they get remedial help.

Lessons will have more incorporation of current events to teach subjects. For instance, a question of whether Philadelphia is safe from the avian flu will teach students about geography, science and history.

"Learning is not just going to school," said Shirley Grover, the school's energetic principal who came from the American School in Milan, Italy. "Learning is equal to life."

If this proves to be viable and we find it happening elsewhere, it just may be a way to save our public education system. Perhaps if this trend continues, I'll revisit the decision to home-school my kids (no I don't have any yet, but my wife and I are hoping to :D) and send them to public school instead.

Way to go Microsoft (and BillG) for stepping up and trying to make this country better. Everybody knows that MS has performed some "questionable acts" in the past, so it's nice to see the company start "walking the walk" when it comes to changing the world for the better.

My hope is that this news sparks a competitive attitude from Apple. With how much Apple has dominated the education system as the vendor of choice, I hope they try their own "school of the future" project. This kind of competition would be a win-win for everyone. Imagine, two of the largest OS companies in the world competing to see who can make the best school? How cool would that be?!?

Posted in Personal
 #       Comments [2]

I'll be updating this post over time to reflect new resources that are made available regarding the transactions platform in Windows.

Websites:

Blogs:

Specific blog posts:

Media:

If you feel I have left any out, please let me know so I can update my list :).

Posted in Programming | Vista
 #       Comments [0]
# Thursday, September 07, 2006

After my post the other day linking out to a post about authoring file systems on Linux with Mono, I decided that I wanted to try it out myself. So, I went and grabbed the latest Ubuntu, and sojourned out to install it under Virtual PC 2004.

I remember trying to do this 6-12 months ago and having it fail _miserably_ for me (or most of the Linux distros for that matter) when trying to install under Virtual PC 2004. Eventually, I just gave up. Now that I have a little more knowledge on Linux and virtual machines using Virtual PC/Virtual Server, I decided to try again. Luckily, I'm now up and running with Ubuntu in a virtual machine. It wasn't without its hardships though.

Since I don't really use my virtual machines for multimedia purposes, I haven't bothered looking into whether the sound is working properly or not. Besides, my largest problem was with the graphics display. And if I can't even see what the hell I'm doing, how am I suppose to figure out if the sound is working :). Basically, when booting up Ubuntu, the graphics would freak out, go into a total whacko resolution, and there was no usage-o going on-o. This was easily fixable though. First, on the boot menu, I chose a display of 1024x768. Second of all, I forced it to boot with the vesa driver. You can either use the "boot with safe graphics" option or simply add "xforcevesa" as a boot option to the regular boot (which I ended up doing even though that might be the only difference between the two options. After doing that, my graphics were fine and I was living happily in Ubuntu land (as an aside: now I see why people are so excited about Ubuntu; it comes a _long way_ in bridging the "usability gap" between Windows/MacOS and Linux for the "typical" computer end-user (not the geek, mind you)).

Of course, after all this, I found this article on the Ubuntu site describing how to install it under Virtual PC 2004. How in the world could I have missed that article six months ago? I'm hoping it's just because the article is new and not because I'm a total tool.

So, to make a long story short, if you're wanting to try out Ubuntu under Virtual PC 2004 (and why wouldn't you considering everything you need is free :D), make sure to check out the guide from Ubuntu. It will save you time and heartache if you're not a Linux guy.

Posted in Personal
 #       Comments [0]
# Wednesday, September 06, 2006

While I'm on the topic of Transaction resources out there, I might as well give a more detailed list. Just off the top of my head, here's the resources you should definitely be checking out if you want to get into transactions on the Windows platform (or even if you are already using transactions on the Windows platform):

Microsoft Sites:

Blogs:

If I have left out any obvious ones, please let me know so I can update my list :).

Posted in Programming
 #       Comments [0]

I came across this article today by Sahil Malik. If you are wanting to get up to speed with System.Transactions in general, as well as how it integrates with ADO.NET, make sure to check it out. He also covers some general concepts regarding transactions as well. So, if you are wanting to understand and be able to explain concepts like Transaction Managers, Resource Managers, Durable Enlistments, etc., also make sure to read it :).

Enjoy!

Posted in Programming
 #       Comments [0]
# Tuesday, September 05, 2006

Jim Johnson has a new post about how to use TxF with the new model in Vista RC1. You will obviously need the RC1 bits to mess around with it.

I'm hoping to expand on this topic in the future to show some code samples of using it not only by itself, but also using it with SQL and the like. I'll also have some "context" posts around that describing the architecture and relationships around TxF so you can better understand the articles.

Until then, go check out Jim's post :).

 #       Comments [0]

I know, this post isn't exactly Windows-related, but I thought it was cool nonetheless...

Miguel de Icaza recently posted on his blog on the topic of authoring file systems with Mono on Linux. Since I've been digging into File System "stuff" at work lately dealing with TxF and the like, I find this very intriguing.

With FUSE, you can essentially write user-level file systems that can be mounted in Linux. Not only that, Jon Pryor released a bridge for Mono that can be used to write file systems in Mono. Granted, I'd imagine there are some performance impacts and such that you may not want to do this in a production system (although I admit that my knowledge on the topic is NIL). It still seems like fun though. I know I have a couple of ideas that I've been batting around regarding developing my own file system driver for Windows. Perhaps I'll proof them out first on Linux and Mono in C# :).

Of course, all this makes me wonder what it would take to do this kind of thing on Windows. For those of you that may know better, is there a FUSE equivalent in the Windows arena? If there is, I wonder what it would take to create a bridge for that to enable writing mountable user-mode file systems on Windows. Hmmmmm. Maybe a post for a later date?

Posted in Programming
 #       Comments [0]

Contact

Email Me Send mail to the author(s)

Calendar

<July 2008>
SunMonTueWedThuFriSat
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

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)