Tuesday, January 29, 2008

Windows Registry : The Ins and Outs

With the release of Windows 95, Microsoft changed the way hardware configurations, operating system software, system preferences and user settings were stored. They introduced a centralized hierarchical database which we call “the registry”. Initially it was introduced to chuck away the INI files mess. The hierarchy separates the user information, machine information and software information into various logical units so that it can be manipulated easily. When Windows starts, registry is crawled to get configuration data regarding software, hardware and other system peripherals which have been configured. Physically, the registry information is stored in multiple files in \system32\config folder of the operating system, the names of some of the registry files being Sam, Sam.log, Sam.sav, Security, Security.log, Security.sav These files cannot be directly edited and we need registry editing program like “regedit” for that, which comes bundled with windows.

The Registry is a hierarchical structure similar to directory/file tree in the computer. It is divided into six main branches called ‘hives’. Each of these hives contains keys, sub-keys and may contain further sub-keys. Each key/ sub-key contains a value. Any information regarding software is stored in these values. Key values are mainly of three types namely String, Binary, and DWORD. String values are used for human readable text entries, binary values for hardware and device settings; DWORD values are used for Boolean entries, where we have a list of choices to make.

Hives are the topmost portions of the hierarchical data tree. Each Hive contains a certain category of information. Depending on the version of Windows running there will be 5 or 6 different hives. These six hives are: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG, and HKEY_DYN_DATA. HKEY_CLASSES_ROOT contains all information related to file associations, shortcuts, Windows user interface and OLE (object linking and embedding) information. HKEY_CURRENT_USER contains all information regarding preferences and configuration for the particular user who is currently logged in. it includes information such as desktop settings, logon names and other user-specific information. HKEY_LOCAL_MACHINE contains the configuration for the actual computer. It contains all the information regarding hardware, software and all the PC specific preferences that are common to all users who log in to that very specific machine. HKEY_USERS contains information for all the users that have ever logged onto that specific computer. Each specific user is identified by a unique security identifier called the SID. All information regarding every user who has ever logged in is stored under SID and is copied to HKEY_CURRENT_USER at login. HKEY_CURRENT_CONFIG contains the information about current hardware configuration. When the system starts, this information is merged to HKEY_LOCAL_MACHINE hive. This information is not stored and is regenerated every time the computer boots up. HKEY_DYN_DATA contains all data regarding plug and play devices and is linked to portions of HKEY_LOCAL_MACHINE. The information is not stored and is regenerated every time system starts up.

Hives contain keys and sub-keys which can contain values or sub-keys. Keys are the organizational part of Windows registry. They are similar to folders and can contain further sub-keys or the file which we call values. Values contain the actual data that is being stored in a Key or a Sub-key. These values are primarily of three types: string, binary and DWORD. The string type values are of three types: REG_SZ which is standard string used to display human-readable text. REG_EXPAND_SZ, which is an expandable data string, permits storage of values that can be replaced by actual values by the application calling the key. REG_MULTI_SZ is used to store lists or multiple values, each entry being separated by a NULL character. A binary value is used to store information as raw binary data and is used for hardware components. A DWORD is four bytes in length. It is used by device drivers and various services to toggle between various options.

Windows registry plays an important role in keeping the computer safe and secure. Modifying any part of the registry must be done with utmost care as a wrong value can make the computer inoperable.


Monday, January 28, 2008

RAID: what lies beneath????


RAID is the abbreviation for “Redundant Array of Independent Disks.” It refers to the technology of storing data with a higher degree of protection and/or performance than regular storage. A number of standard schemes have evolved which are also known as levels. Originally RAID was designed with five different levels, they being RAID 0, RAID 1, RAID 1+0, RAID 0+1, RAID 3+0. RAID combines physical hard disks into a single logical unit by using either special hardware or software. It works on the concepts of Data Mirroring, Data Striping, and Parity Checks. Different levels use different approach like RAID 0 uses only striping, RAID 1 uses only mirroring, further levels include parity checks and/or a combination of these. The configuration affects reliability and performance in different ways. RAID systems can be designed to keep working when there is failure - disks can be hot swapped and data recovered automatically while the system keeps running. Users in general would not realize that a disk has failed, and would continue to work normally. The use of RAID allows the disk in question to be changed, and the data restored and updated, without hampering work. Although RAID can help recover and replicate the data, it cannot stop viruses or Trojan horses to enter the system, and the worst part is that these malicious codes will affect all the disks in configuration equally. Today we can see various levels of RAID ranging from RAID 0 to RAID 6. Minimum number of disk required by any of this configuration is 2, with RAID 6 requiring a minimum of 4 hard disks.
For proper functioning of the RAID array, the RAID BIOS, which controls the reads and writes of the data to the disks, must be available to the operating system. With the application of RAID increasing day by day various companies have come up with their own non-standard versions of RAID, DVRAID and RAID S being a few.

Tuesday, January 22, 2008

The Free Office

Everyone loves free stuff and when it comes to software everyone has its own definition of free. For most of us free actually means downloading pirated software from warez sites, but for the rest of the masses (those who doesn’t believe in piracy) Linux and OpenOffice.org are the names that comes to mind. In recent years, the popularity of OpenOffice.org has grown by leaps and bounds. With its version 3.0 set to be released in 2008, the suite is second in popularity next only to Microsoft Office.
OpenOffice.org (OO.o or OOo) is an office suite application which is available for various operating systems. As its default format OpenOffice supports OpenDocument standard for data interchange. In addition to that it also supports Office '97-2003 formats. OpenOffice is based on Sun Microsystems’s office suite package StarOffice. The source code for the suite was released in the year 2000. OpenOffice is a collection of various applications like Base, Calc, Draw, Impress, Math, and Writer. Base is a database application that will help you create and manage databases—similar to Microsoft Access. Calc is a spreadsheet application similar to Microsoft Excel. Draw is a charting application that lets you make flowcharts, network diagrams and any other organization charts. Impress is similar to Microsoft PowerPoint—it is a presentation creation tool. Math is a formula manipulation tool that can be used inside other OOo applications,
or as a standalone tool as well. Finally, there’s Writer, a word processing application that is OOo’s answer to Microsoft Word. The suite also has a small program known as QuickStarter which runs when the computer boots for the first time. It loads the core files and libraries for OpenOffice.org during computer startup and allows the suite applications to start more quickly when selected later.
API of the suite is based on a component technology known as Universal Network Objects (UNO). It has a wide range of interfaces defined in a CORBA-like interface description language. The document file format used is based on several export and import filters and XML. All external formats are converted back and forth from an internal XML representation. By using compression when saving XML to disk, files are smaller in size than the equivalent binary Microsoft office documents.

Monday, January 21, 2008

Internet Explorer 8 coming up

Microsoft Internet Explorer (most commonly known as IE) is the Microsoft’s graphical web browser. Having its debut launch in 1995 IE is one of the most widely used web browser today. With seven versions already launched, Microsoft has announced release of its eighth version in 2008. It will be Microsoft’s first major update in the browser technology since IE-7. In December 2007 Microsoft announced that Pre-Beta code for IE-8 has already passed the so-called ACID2 compatibility test (a test which determines how well a browser works with different web standards). IE-8 will have support for CSS 2.1, Data: Uri’s, CSS generated content and the HTML tagabbr’. Dean Hachamovitch, the guy who runs the IE team, said that beta release of IE-8 is expected in the first half of 2008 although it is unclear when IE-8 will be officially launched.

DirectX 10 what's new???

Microsoft DirectX is a set of APIs for handling tasks related to multimedia, and gaming. It was designed to provide a much broader gaming or multimedia environment. Starting off with DirectX 3, various DirectX versions are out, namely DirectX 3, 5, 6, 7, 8 and 9. It works by giving direct access to low-level functions of a peripheral by providing a set of APIs (application programming interface).Every new version of DirectX adds support for new hardware features, allowing game developers to push the boundaries of realism a little bit further.
DirectX9 being a huge hit embedded a lot of unique and new features but due to fixed number of vertex units and pixel processing units and its huge dependability on CPU DirectX9 had to face problems like API object overhead.
With games becoming more and more realistic there was need for a newer and powerful API, and the answer came as DirectX 10.The API of DirectX 10 has been written from ground and the new and improved API reduces API overhead to a greater extent. Object overhead is also reduced so that more unique objects can be shown in a scene at one time. A new exciting feature called Geometry shader is added in the new API. So, what makes DirectX10 so powerful? The answer lies in the unified architecture of the new API. This unified API and GPU architecture sums the traditional vertex, pixel and geometry units into one processing units instead of separate ones. So the API can handle these instructions through one single instruction only. The key idea behind a unified architecture is to make the GPU from a render processor to a complete processor; i.e the GPU can now perform more functions like physics, AI, animation and many other processes improving the gaming experience. New features will also allow the possibility of new 3D effects in games.
Although power packed the only demerit with DirectX10 is that it is tied to Windows Vista, so in need to experience DirectX10 powered games we have to switch to windows vista. For now, the DirectX 10 API is a move in the right direction when it comes to gaming, and it can be easily said that it will allow future GPUs from ATI and NVIDIA to rise in the gaming arena.
The figure shows how images are rendered in DirectX10:
 
Blog Information Profile for nandananushil1
Google