The paper depicts the Linux Random Number Generator (LRNG), an intra operating system based random number generator, which plays a crucial role in almost any cryptographic protocol in Linux. The Linux kernel is an open source project developed in the last 15 years by group of developers led by Linus Trovalds. The kernel is the common element in all various Linux distributions. Despite the fact that the Linux Random Number Generator (LRNG) is part of an open source project and its source code is less than 2500 lines of code, the algorithm is not documented and the hundreds of code patches during the last five years make it much more cumbersome. Hence, I have used both static analysis of the Linux kernel source and dynamic tracing to reverse engineer the generator algorithm. LRNG design goal is to output only non-predictable bits, which should originate from non-predictable events. For enforcing that, the pool holds a counter for counting the non-predictable bits, which is calculated as a function of the frequencies of the different events. I implemented a user mode simulator of the LRNG as part of our analysis.