After years of working with Oracle database. There is an intriguing question which came in my mind today after doing some research on X$ Views. In my search of X$ views; I found that X$ views are basically C programs in memory. They format the C memory structures in a user readable way. And the V$ views are then build on top of those X$ views so that a user can query them as a table.
Thomas Kyte on his blog asktom mentions the following about it :
v$ views are dynamic performance views, mostly built on top of MEMORY structures, not disk.
Most all v$ views, based on x$ tables, are in memory data structures, not disk.
He continues
v$ views are taking data from memory structures typically. The data dictionary is considered to be the set of ‘real’ tables that live on disk.
v$ views are generally accessible even when the datafiles are not – because they do not come from the datafiles in general.
Oracle is written predominantly in C.
So, when you query v$ tables, you are typically looking at the formatted contents of arrays, linked lists, trees and so on.
So one thing is for sure the Oracle RDBMS is written in the C language. On a bit of more googling I discovered that the RDBMS and the TNS is written in C language and utilities like Enterprise Manager Emctl, Dbca, Netca etc are Java Programs. So it is safe to say Oracle is pre-dominantly a Big C program with the utilities written in Java.