Windows Cairo: Difference between revisions

From BetaArchive Wiki
(→‎Actual: Important to put in full jimmsta's post)
Line 41: Line 41:
* January 2002: CEO Steve Ballmer says, "We want to evolve our storage system." Allchin says the OFS unified storage concept is [[WinFS|again in development]] and will be a major part of [[Windows Longhorn|Longhorn]], the code name for the next version of Windows.|Mike Ricciuti|New Windows could solve age-old format puzzle--at a price|<ref name = "ricciuti">{{cite web | url = http://news.com.com/New+Windows+could+solve+age-old+puzzle/2009-1017_3-857509.html | title = New Windows could solve age-old format puzzle--at a price | first = Mike | last = Ricciuti | publisher = CNET News.com | date = 13 March 2002 | archiveurl = https://web.archive.org/web/20040610163921/http://news.com.com/New+Windows+could+solve+age-old+puzzle/2009-1017_3-857509.html | archivedate = 10 June 2004 | accessdate = 31 March 2021}}</ref>}}
* January 2002: CEO Steve Ballmer says, "We want to evolve our storage system." Allchin says the OFS unified storage concept is [[WinFS|again in development]] and will be a major part of [[Windows Longhorn|Longhorn]], the code name for the next version of Windows.|Mike Ricciuti|New Windows could solve age-old format puzzle--at a price|<ref name = "ricciuti">{{cite web | url = http://news.com.com/New+Windows+could+solve+age-old+puzzle/2009-1017_3-857509.html | title = New Windows could solve age-old format puzzle--at a price | first = Mike | last = Ricciuti | publisher = CNET News.com | date = 13 March 2002 | archiveurl = https://web.archive.org/web/20040610163921/http://news.com.com/New+Windows+could+solve+age-old+puzzle/2009-1017_3-857509.html | archivedate = 10 June 2004 | accessdate = 31 March 2021}}</ref>}}


BetaArchive user jimmsta theorized that, contrary to what was stated in the timeline above (that OFS was never released):  
Meanwhile, according to BetaArchive user jimmsta, contrary to the timeline above:  


{{Quotation|Cairo is Active Directory, and it still resides in all versions of Windows since NT 5.0. OFS isn’t completely dead, either, as it became the technology for the Active Directory Database and Datastore. The timeline shown [on this page (see box above)] is correct - but it was not cancelled. It was rolled into NT 5, as Active Directory.|jimmsta|What became of Windows Cairo|<ref name = "jimmsta">{{cite web | url = https://www.betaarchive.com/forum/viewtopic.php?p=468787&sid=18d912780b8044c60ae558f974017ea8#p468787 | title = What became of Windows Cairo | author = jimmsta | publisher = BetaArchive | date = 11 July 2022 | accessdate = 20 November 2022}}</ref>}}
{{Quotation|I feel as though no one has ever really dug in to the various leaked bits of NT code and really done a deep dive into certain bits that made NT 'go'. I've spent the last couple weeks on and off, reading through bits of NT 3.51's code, which led me to a few pointers in search of Cairo. That particular leak is RC2 of NT 3.51, as far as I know. As such, it wasn't fully stripped of Cairo bits - OFS is in there, and within the code for the Object File System, a lot of interesting tidbits can be learned. Primarily, while it appeared as a separate filesystem, it does not have any kernel-level drivers. It instead, runs entirely in User-Mode. It appears to be nearly an implementation of Bitmapped FAT - but does not store anything on disk with your typical FAT formatting. It contains an index, bitmap, and list of "onodes", which appear to be 'object nodes'. Each 'file' is stored as a data stream, encapsulated inside a virtual FAT disk, of which, there can be multiple virtual FAT data streams stored as drive objects on the single OFS volume. The objects in question are OLE data streams. Instead of files, each bit of data saved to an OFS volume is composed of OLE objects, with corresponding data and metadata saved alongside the data stream.
 
In this case, NT 3.51 was mostly an update for the 1.0 release (3.1) of NT. It did, however, appear to add the OLE 2.0 stack, which at the time was still called CairOLE. The first iteration of Cairo was as the OLE 2.0 development effort. Chicago's cabinet and eventual Explorer were written entirely in CairOLE code. By NT 5, CairOLE was merged into the rest of the OLE OS components, as OLE32. * OLE 1.0 was implemented in Windows 2.0 in 1986, with further development through 1993. OLE 2.0 development appears to have started along with NT in 1988. *
 
In the various comments and text files in the 3.51 leak, there is talk about how "things will change heavily once Daytona ships". Daytona being the codename for NT 3.51, it seems they were waiting on Daytona to be completed before Cairo became an official project. There is mention of Cairo being the next project in the comments as well. NT 3.51 shipped, and NT4 development began. Cairo was a larger project for a much later release.
 
'''What became of OFS?'''
 
Cairo’s development took place as a future version of NT beyond NT 4. At least that seems to be where it laid, even in the NT 3.51 era. It was poised to become not the next, but the next-next release of NT. OFS was poised to become the de-facto filesystem for storing metadata and data side-by-side, which would be implemented in a slightly less obvious way over the 5 years of development that Cairo went through.
 
5 Years!? Yes. Cairo didn’t die with that one NT 4 build that has the OFS driver functional. No, that may have been one of the last builds with OFS exposed to the user, though. Cairo wasn’t just OLE 2.0/32, but a new way to build software using every new bit of kit that NT had to offer. Cairo was still the “Cairo Vision” that Gates had, with an internet-connected desktop. It also laid the groundwork for a lot of things we take for granted today.
OFS’s tech was re-worked with the JET database, introduced in NT5. It became the basis of something that is often overlooked in the beta community, it seems, because only sysadmins ever interact with this side of NT – Active Directory.
 
'''Where’s Cairo in all this?'''
 
Cairo was internally re-named “OLE DB/OLE DS” at some point between 1995-1999. The internal API’s that Cairo exposed were all preficed with “C” in their names, originally being “Cai”, or “Cairo”. The NT5 shell internally is named “CCshell”, while the original Cairo shell was simply “CShell”. There’s a handful of Cairo still running behind the scenes on NT 10, yet no one knows it.
OLE DB is Jet Database with OLE 2.0, while OLE DS is the Domain Services that are built on top of OLE 2.0/32. This is what became of Cairo. The Cairo project appears to have internally been this attempt to get every single aspect of users and their data to become manageable objects and metadata. The best example of this tech working is in every single Active Directory domain that exists today.
 
The Cairo vision was realized with NT 5.0’s release. Whatever came afterwards was just revitalization and keeping things up-to-date with modern software practices. Each new release of Windows tries to strip out the old OLE stuff with new .NET-based tooling, but the underlying technology they are replacing came from CairOLE. That said, WinFS was OFS re-implemented with .NET objects. Again, it ran on top of NTFS, but I’m not sure if it was entirely user-mode or had a kernel-mode driver (someone should look into that!).
 
As for API’s that came from Cairo, they’re still in there, doing their job. There’s even apps that you or I have probably run, and had no idea they stemmed from Cairo – calcs.exe, for instance, which sets ACL’s on files – it was a Cairo API tool. Most system tools that have a ‘c’ prefix are, in fact, Cairo. They still exist in Windows 11, and will likely exist long after its demise (although, I suspect most of them have been re-tooled for .NET at this point in time).
 
If you wish to take a look for yourselves, the srv03rtm folder has a subfolder for base\ds. Take a deep dive into the router subfolder, and you'll find every bit of Cairo that ever shipped in Windows NT 5.x. The 'domain server' component of Windows NT 5 is literally Cairo. It's been sitting under our noses this whole time.
In a way, CairOLE may have been considered OLE 3.0 (there is 1-2 instances where Cairo is referred to as NT 0x300, with NT 4 as NT 0x200, as well as OLE3 being used at least once). It became COM+, which became .NET 1.0 eventually.
 
'''TLDR:''' Cairo is Active Directory, and it still resides in all versions of Windows since NT 5.0. OFS isn’t completely dead, either, as it became the technology for the Active Directory Database and Datastore. The timeline shown on [[#Actual|https://www.betaarchive.com/wiki/index. ... soft_Cairo]] is correct - but it was not cancelled. It was rolled into NT 5, as Active Directory.|jimmsta|What became of Windows Cairo|<ref name = "jimmsta">{{cite web | url = https://www.betaarchive.com/forum/viewtopic.php?p=468787&sid=18d912780b8044c60ae558f974017ea8#p468787 | title = What became of Windows Cairo | author = jimmsta | publisher = BetaArchive | date = 11 July 2022 | accessdate = 20 November 2022}}</ref>}}


== SKUs ==
== SKUs ==

Revision as of 09:08, 16 October 2023

Microsoft Cairo
1175.png
Codename
Preliminary name
Cairo
Kernel version 3.1,
4.0
CPU architecture x86

Microsoft Cairo is the codename of an unreleased software project by Microsoft, meant to bring next-generation technologies for Microsoft's NT Based Operating Systems. The project was originally announced at the 1991 PDC (Professional Developers Conference) and later demoed at the 1993 PDC.

Timeline

Target

In a March 1993 internal document later offered as Plaintiff's exhibit in the antitrust case Comes v. Microsoft, Microsoft planned the schedules below for Cairo.[1]

Item Date Note
PDK-1 C4, CY93
Beta (Includes PDK-2) C1, CY94 New betas every quarter
Final Product, Release to Market October 18, 1994

Actual

  • 1992: Jim Allchin details a vision for a new version of Windows, code-named Cairo, which would include a revamped user interface and a new data store, called the Object File System (OFS), for storing document files, spreadsheets, multimedia files and other information. The goal is to enable searching not only by file name, but by file content. Cairo would also include a new directory service. The operating system is expected to debut in 1994.
  • May 1994: Allchin tells the press that Microsoft has reassigned programmers to work on the upcoming Windows 95 desktop operating system, delaying the shipment of Cairo until late 1995.
  • November 1994: Microsoft says Cairo will slip again, this time until "sometime in 1996" then-executive Vice President Mike Maples told Computerworld.
  • August 1995: Microsoft ships Windows 95, which includes the revamped user interface originally slated for Cairo. Microsoft says the first test version of Cairo will debut in late 1996, pushing the release date to 1997.
  • December 1995: Gates launches his "Internet initiative" to make Web technologies a top priority at Microsoft. Work on Cairo is reassessed.
  • 1996: Bill Gates says Cairo is a "vision," not a product, leading many to believe the project is running into a roadblock. Gates tells Computerworld: "Cairo is a futuristic system. It's something we're working on."
  • March 1996: Microsoft says work on the OFS for a future release of Windows NT has been abandoned in favor of a file system based on its Exchange Server.
  • August 1996: Gates says some Cairo technologies, including indexing capabilities and a distributed version of Microsoft's Component Object Model software, will be included in Windows NT 4.0, and directory features will be part of NT 5.0. The product jockeying causes Goldman Sachs analyst Rick Sherlund to say: "I think Cairo has lost its definition."
  • 1997: Rumors circulate that the OFS will debut by year's end. Gates tells PC Magazine: "The only thing of (the Cairo) vision that's not in the marketplace is the file system and directory. And so later this year that'll go into beta testing." NT 5.0 enters beta testing, but the file system is never seen.
  • October 1998: Microsoft says it will rename Windows NT 5.0 to be called Windows 2000. The operating system will include Active Directory, technology originally slated for Cairo.
  • February 2000: Windows 2000 debuts after several delays.
  • 2001: Allchin says he has "not given up" on the OFS concept.
  • January 2002: CEO Steve Ballmer says, "We want to evolve our storage system." Allchin says the OFS unified storage concept is again in development and will be a major part of Longhorn, the code name for the next version of Windows.

— Mike Ricciuti, New Windows could solve age-old format puzzle--at a price, [2]

Meanwhile, according to BetaArchive user jimmsta, contrary to the timeline above:

I feel as though no one has ever really dug in to the various leaked bits of NT code and really done a deep dive into certain bits that made NT 'go'. I've spent the last couple weeks on and off, reading through bits of NT 3.51's code, which led me to a few pointers in search of Cairo. That particular leak is RC2 of NT 3.51, as far as I know. As such, it wasn't fully stripped of Cairo bits - OFS is in there, and within the code for the Object File System, a lot of interesting tidbits can be learned. Primarily, while it appeared as a separate filesystem, it does not have any kernel-level drivers. It instead, runs entirely in User-Mode. It appears to be nearly an implementation of Bitmapped FAT - but does not store anything on disk with your typical FAT formatting. It contains an index, bitmap, and list of "onodes", which appear to be 'object nodes'. Each 'file' is stored as a data stream, encapsulated inside a virtual FAT disk, of which, there can be multiple virtual FAT data streams stored as drive objects on the single OFS volume. The objects in question are OLE data streams. Instead of files, each bit of data saved to an OFS volume is composed of OLE objects, with corresponding data and metadata saved alongside the data stream.

In this case, NT 3.51 was mostly an update for the 1.0 release (3.1) of NT. It did, however, appear to add the OLE 2.0 stack, which at the time was still called CairOLE. The first iteration of Cairo was as the OLE 2.0 development effort. Chicago's cabinet and eventual Explorer were written entirely in CairOLE code. By NT 5, CairOLE was merged into the rest of the OLE OS components, as OLE32. * OLE 1.0 was implemented in Windows 2.0 in 1986, with further development through 1993. OLE 2.0 development appears to have started along with NT in 1988. *

In the various comments and text files in the 3.51 leak, there is talk about how "things will change heavily once Daytona ships". Daytona being the codename for NT 3.51, it seems they were waiting on Daytona to be completed before Cairo became an official project. There is mention of Cairo being the next project in the comments as well. NT 3.51 shipped, and NT4 development began. Cairo was a larger project for a much later release.

What became of OFS?

Cairo’s development took place as a future version of NT beyond NT 4. At least that seems to be where it laid, even in the NT 3.51 era. It was poised to become not the next, but the next-next release of NT. OFS was poised to become the de-facto filesystem for storing metadata and data side-by-side, which would be implemented in a slightly less obvious way over the 5 years of development that Cairo went through.

5 Years!? Yes. Cairo didn’t die with that one NT 4 build that has the OFS driver functional. No, that may have been one of the last builds with OFS exposed to the user, though. Cairo wasn’t just OLE 2.0/32, but a new way to build software using every new bit of kit that NT had to offer. Cairo was still the “Cairo Vision” that Gates had, with an internet-connected desktop. It also laid the groundwork for a lot of things we take for granted today. OFS’s tech was re-worked with the JET database, introduced in NT5. It became the basis of something that is often overlooked in the beta community, it seems, because only sysadmins ever interact with this side of NT – Active Directory.

Where’s Cairo in all this?

Cairo was internally re-named “OLE DB/OLE DS” at some point between 1995-1999. The internal API’s that Cairo exposed were all preficed with “C” in their names, originally being “Cai”, or “Cairo”. The NT5 shell internally is named “CCshell”, while the original Cairo shell was simply “CShell”. There’s a handful of Cairo still running behind the scenes on NT 10, yet no one knows it. OLE DB is Jet Database with OLE 2.0, while OLE DS is the Domain Services that are built on top of OLE 2.0/32. This is what became of Cairo. The Cairo project appears to have internally been this attempt to get every single aspect of users and their data to become manageable objects and metadata. The best example of this tech working is in every single Active Directory domain that exists today.

The Cairo vision was realized with NT 5.0’s release. Whatever came afterwards was just revitalization and keeping things up-to-date with modern software practices. Each new release of Windows tries to strip out the old OLE stuff with new .NET-based tooling, but the underlying technology they are replacing came from CairOLE. That said, WinFS was OFS re-implemented with .NET objects. Again, it ran on top of NTFS, but I’m not sure if it was entirely user-mode or had a kernel-mode driver (someone should look into that!).

As for API’s that came from Cairo, they’re still in there, doing their job. There’s even apps that you or I have probably run, and had no idea they stemmed from Cairo – calcs.exe, for instance, which sets ACL’s on files – it was a Cairo API tool. Most system tools that have a ‘c’ prefix are, in fact, Cairo. They still exist in Windows 11, and will likely exist long after its demise (although, I suspect most of them have been re-tooled for .NET at this point in time).

If you wish to take a look for yourselves, the srv03rtm folder has a subfolder for base\ds. Take a deep dive into the router subfolder, and you'll find every bit of Cairo that ever shipped in Windows NT 5.x. The 'domain server' component of Windows NT 5 is literally Cairo. It's been sitting under our noses this whole time. In a way, CairOLE may have been considered OLE 3.0 (there is 1-2 instances where Cairo is referred to as NT 0x300, with NT 4 as NT 0x200, as well as OLE3 being used at least once). It became COM+, which became .NET 1.0 eventually.

TLDR: Cairo is Active Directory, and it still resides in all versions of Windows since NT 5.0. OFS isn’t completely dead, either, as it became the technology for the Active Directory Database and Datastore. The timeline shown on https://www.betaarchive.com/wiki/index. ... soft_Cairo is correct - but it was not cancelled. It was rolled into NT 5, as Active Directory.

— jimmsta, What became of Windows Cairo, [3]

SKUs

  • Cairo Advanced Desktop was designed as the Client for Cairo servers. It would have included the core OS, new user interface, and networked storage/printer sharing.
  • Cairo Advanced Server
  • Cairo Development Environment

Builds

  • No information available
  • Existence doubtful
  • Information or pictures available
  • Leaked or released

See also

BetaArchive forums

References

  1. Microsoft Corporation (8 March 1993). Microsoft® Windows™ Cairo Product Planning Product Requirements. Archived from the original on 25 September 2012. Retrieved on 16 October 2023.
  2. Ricciuti, Mike (13 March 2002). New Windows could solve age-old format puzzle--at a price. CNET News.com. Archived from the original on 10 June 2004. Retrieved on 31 March 2021.
  3. jimmsta (11 July 2022). What became of Windows Cairo. BetaArchive. Retrieved on 20 November 2022.
  4. "In a preferred embodiment, the database 102 may generally be of a type which is known in the art, such as a collection of text objects supported by Cairo Milestone 4 running under the Windows NT system version 297, available from Microsoft Corporation of Redmond, Washington, and may be accessed in conjunction with the object file system 107 of that product", Case-based organizing and querying of a database (19 January 1995 [publication date]). Retrieved on 31 March 2021.
  5. ReflectiaX (16 August 2018). Pieces of Cairo's History. Retrieved on 31 March 2021.
  6. https://ascii.jp/elem/000/000/322/322868/

External links