DTrace, systemtap and a brief history of "NIH"

You should read the blog entry of to read the perception of one of the DTrace developers regarding the relationship of DTrace and Systemtap. But i really think the whole issue opens up the view to a different problem inside of Linux: The “not invented here (NIH)” problem. Linux isn´t immune to that problem. “Not invented here(NIH)” is a phenomon inherent to many groups of engineer that were on wave of success for a long time and start to get overconfident. Intel designs it´s own bus called CSI instead of using Hypertransport or PCIExpress instead of Infiniband (yeah, IB was designed with something different in mind than a mere cluster connect), parts of Sun thought of x86 as inferior processors until Andy came along and showed that you can build real servers out of Opterons. When you look at the Linux Community, you have the impression, that they have in parts the NIH problem as well (although many concepts in Linux are at least inspired by Solaris, SunOS or other commercial Unix system). There are several attempts to mimic ZFS (none of them comes close) and with systemtap a similar system to DTrace was developed. The problem: You want a feature, you want it fast and you didn´t really understand the objectives and design decisions behind the competing product. But you have time or your employer says “We need a tool like dtrace to compete with Solaris. Fast!”. At the end you come up with something that look similar at first sight but you can´t really use, because of the several short cuts the developers took. Systemtap started as an DTrace competitor and landed as yet another kernel debugging tool - you won´t start a kernel module that easily bring down you server on your production SAP system. Many people thought about the open sourcing of Solaris “You are crazy, Linux will take the good parts and Solaris will die”. But honestly, i have no fear of an operating system that copies functionalities in such a way.