Misplaced Pages

DTrace

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

DTrace is a comprehensive dynamic tracing framework originally created by Sun Microsystems for troubleshooting kernel and application problems on production systems in real time. Originally developed for Solaris , it has since been released under the free Common Development and Distribution License (CDDL) in OpenSolaris and its descendant illumos , and has been ported to several other Unix-like systems.

#472527

56-428: DTrace can be used to get a global overview of a running system, such as the amount of memory, CPU time, filesystem and network resources used by the active processes. It can also provide much more fine-grained information, such as a log of the arguments with which a specific function is being called, or a list of the processes accessing a specific file. In 2010, Oracle Corporation acquired Sun Microsystems and announced

112-434: A merger on multiple occasions. In late 2008, Sun was approached by IBM to discuss a possible merger. At about the same time, Sun also began discussions with another company, widely rumored but not confirmed to be Hewlett-Packard , about a potential acquisition. By March 2009, talks had stalled between Sun and both IBM and the other potential suitor. On April 20, 2009, Sun and Oracle announced that they had entered into

168-775: A 6–2 majority, the Court ruled that Google's use of the Java APIs was within the bounds of fair use, reversing the Federal Circuit Appeals Court ruling and remanding the case for further hearing. The Apache Software Foundation resigned its seat on the Java SE/EE Executive Committee due to Oracle's refusal to provide a technology compatibility kit (TCK) to the ASF for its Apache Harmony open-source implementation of Java. After Oracle ended OpenSolaris, some members of

224-443: A database, or modify context variables. The reading and writing of context variables allows probes to pass information to each other, allowing them to cooperatively analyze the correlation of different events. Special consideration has been taken to make DTrace safe to use in a production environment. For example, there is minimal probe effect when tracing is underway, and no performance impact associated with any disabled probe; this

280-612: A definitive agreement under which Oracle would acquire Sun for $ 9.50 a share in cash. Net of Sun's cash and debt, this amounted to a $ 5.6 billion offer from Oracle. Sun's shareholders voted to approve the proposal on July 16, 2009, although the deal was still subject to regulatory approvals. The terms of the agreement between Oracle and Sun included dependencies on the antitrust laws of "the United States and Canada, European Union, China, Israel, Switzerland, Russia, Australia, Turkey, Korea, Japan, Mexico and South Africa". On August 20, 2009,

336-640: A flag (P_LNOATTACH) that a program may set that disallows tracing of that process by debugging utilities such as DTrace and gdb . In the original Mac OS X DTrace implementation, this could affect tracing of other system information, as unrelated probes that should fire while a program with this flag set was running would fail to do so. The OS X 10.5.3 update addressed this issue a few months later. However, since El Capitan, System Integrity Protection prevents user from DTracing protected binary by default. The Linux port of DTrace has been available since 2008; work continues actively to enhance and fix issues. There

392-517: A legal review resulted in the conclusion that it is legally acceptable to use ZFS as binary kernel module in Linux. (As opposed to building it into the kernel image itself.) Others followed Ubuntu's conclusion, for instance James E. J. Bottomley argued there cannot be "a convincing theory of harm" developed, making it impossible to bring the case to court. Eben Moglen , co-author of the GPLv3 and founder of

448-637: A sign that Oracle no longer intends to support future development of the platform. A major issue discussed in media and considered by the EU Commission was Oracle's acquisition of MySQL , an open-source competitor to Oracle acquired by Sun in February 2008, as part of the deal. In response, several forks were made with the intent to ensure the future success of MySQL despite being purchased by its biggest competitor. These include Drizzle (discontinued) and MariaDB (actively developed). Monty Widenius , one of

504-762: Is incompatible with the GNU General Public License (GPL). Derived from the Mozilla Public License 1.1, the CDDL tries to address some of the problems of the MPL. Like the MPL, the CDDL is a weak copyleft license in-between GPL license and BSD / MIT permissive licenses , requiring only source code files under CDDL to remain under CDDL. Unlike strong copyleft licenses like the GPL, mixing of CDDL licensed source code files with source code files under other licenses

560-464: Is a free and open-source software license , produced by Sun Microsystems , based on the Mozilla Public License (MPL). Files licensed under the CDDL can be combined with files licensed under other licenses, whether open source or proprietary. In 2005 the Open Source Initiative approved the license. The Free Software Foundation (FSF) considers it a free software license , but one which

616-498: Is also an active implementation on github . Standard core providers are available (fbt, syscall, profile), plus a special "instr" provider (some of the Solaris providers are not yet available as of 2013). The Linux DTrace implementation is a loadable kernel module , which means that the kernel itself requires no modification, and thus allows DTrace to avoid CDDL vs. GPL licensing conflicts (in its source form, at least). However, once DTrace

SECTION 10

#1732852577473

672-400: Is an independent project and does not violate the GPLv3 . Schilling also argued that even though the GPL requires all scripts required to build the work to be licensed freely, they do not necessarily have to be under the GPL. Thus not causing an incompatibility that violates the license . He also argued that in "combined works" (in contrast to " derived works ") GPL and CDDL licensed code

728-531: Is an integral part of illumos and related distributions. DTrace is a standard part of FreeBSD and NetBSD . Apple added DTrace support in Mac OS X 10.5 "Leopard", including a GUI called Instruments . Over 40 DTrace scripts from the DTraceToolkit are included in /usr/bin, including tools to examine disk I/O (iosnoop) and process execution (execsnoop). Unlike other platforms that DTrace is supported on, Mac OS X has

784-523: Is associated with an action. These probes are comparable to a pointcut in aspect-oriented programming . Whenever the condition for the probe is met, the associated action is executed (the probe "fires"). A typical probe might fire when a certain file is opened, or a process is started, or a certain line of code is executed. A probe that fires may analyze the run-time situation by accessing the call stack and context variables and evaluating expressions; it can then print out or log some information, record it in

840-572: Is available on GitHub . For several years an unofficial DTrace port to Linux was available, with no changes in licensing terms. In August 2017, Oracle released DTrace kernel code under the GPLv2+ license, and user space code under GPLv2 and UPL licensing. In September 2018 Microsoft announced that they had ported DTrace from FreeBSD to Windows. In September 2016 the OpenDTrace effort began on github with both code and comprehensive documentation of

896-525: Is compatible. Red Hat 's attorneys have prevented cdrtools from being in Fedora or Red Hat Enterprise Linux , arguing that Schilling has an "unorthodox" view of copyright law that isn't shared by their legal counsel or the Free Software Foundation. In 2015, the CDDL to GPL compatibility question reemerged when Ubuntu announced inclusion of OpenZFS by default. In 2016 Ubuntu announced that

952-494: Is important since there are tens of thousands of DTrace probes that can be enabled. New probes can also be created dynamically. DTrace scripts can be invoked directly from the command line, providing one or more probes and actions as arguments. Some examples: Scripts can also be written which can reach hundreds of lines in length, although typically only tens of lines are needed for advanced troubleshooting and analysis. Over 200 examples of open source DTrace scripts can be found in

1008-622: Is incompatible with standard Java runtime environments. Google thus avoided licensing fees associated with J2ME, the mobile version of Java. However, aspects of the Dalvik system are very similar to the Java technology patented by Sun and now Oracle. The court found that Oracle's primary copyright claim, based on the Java Application Programming Interface (API), failed because the portions Google reused were not copyrightable. Google

1064-594: Is loaded the kernel instance will be marked as tainted . In 2007, a developer at QNX Software Systems announced on his blog that he and a colleague were working on incorporating DTrace into the QNX operating system. Oracle Corporation added beta DTrace support for Oracle Linux in 2011, as a technology preview in the Unbreakable Enterprise Kernel release 2, which is under GPLv2 (the DTrace Linux kernel module

1120-399: Is permitted without relicensing. The resulting compiled software product ("binary") can be licensed and sold under a different license, as long as the source code is still available under CDDL, which should enable more commercial business cases, according to Sun. Like the MPL the CDDL includes a patent grant to the licensee from all contributors ("patent peace"). However, in section 2.1(d),

1176-692: The Lotus Symphony codebase to the Apache Software Foundation in 2012. The developer pool for the Apache project was seeded by IBM employees, and Symphony codebase was included in Apache OpenOffice . During November 2010, an issue arose in the Hudson community with respect to the infrastructure used. This grew to encompass questions over the stewardship and control by Oracle . Negotiations between

SECTION 20

#1732852577473

1232-457: The MPL version 1.1. On December 1, 2004 the CDDL was submitted for approval to the Open Source Initiative and was approved as an open source license in mid January 2005. The second CDDL proposal, submitted in early January 2005, includes some corrections that prevent the CDDL from being in conflict with European Copyright law and to allow single developers to use the CDDL for their work. In 2006, in

1288-520: The SFLC , argued that while the letter of the GPL might be violated, the spirit of both licenses is unharmed, which would be the relevant aspect in court. The SFLC mentioned also that a precedent exists with the Andrew File System 's kernel module, which is not considered a derivative work of the kernel by the kernel developers. On the other hand, Bradley M. Kuhn and attorney Karen M. Sandler from

1344-696: The DTraceToolkit, created by Brendan Gregg (author of the DTrace book), which also provides documentation and demonstrations of each. DTrace first became available for use in November 2003, and was formally released as part of Sun's Solaris 10 in January 2005. DTrace was the first component of the OpenSolaris project to have its source code released under the Common Development and Distribution License (CDDL). DTrace

1400-484: The Jenkins project. On February 1, 2011, Oracle said that they intended to continue development of Hudson, and considered Jenkins a fork rather than a rename. Jenkins and Hudson therefore continue as two independent projects, each claiming the other is the fork. Oracle Grid Engine (previously Sun Grid Engine) was changed to a close-source commercial-only product. Project Kenai, a SourceForge -like project for Java apps,

1456-451: The OS itself. Testers write tracing programs (also referred to as scripts) using the D programming language (not to be confused with other programming languages named "D" ). The language, inspired by C , includes added functions and variables specific to tracing. D programs resemble AWK programs in structure; they consist of a list of one or more probes (instrumentation points), and each probe

1512-499: The Solaris 10 download license changed to limit unpaid use to 90 days. In 2013, Oracle stopped development of several former Sun virtualization solutions, including Virtual Desktop Infrastructure (VDI), Sun Ray , and Oracle Virtual Desktop Client. Two other virtualization technologies acquired from Sun, Oracle Secure Global Desktop and VirtualBox , remained as products. Common Development and Distribution License The Common Development and Distribution License ( CDDL )

1568-662: The U.S. government, pursuant to the Clayton Antitrust Act , approved Oracle's purchase of Sun. On September 3, 2009, the European Commission announced that it would not immediately approve the deal, but would instead perform a second round of investigation, focusing on the implications of Oracle's control of MySQL (acquired by Sun in 2008). On October 20, 2009, Sun filed with the U.S. Securities and Exchange Commission (SEC) its intention to cut 3,000 jobs globally over next 12 months, citing losses caused by delays in

1624-467: The acquisition process. On November 6, in its 10-Q filing for the 1st quarter of the 2010 fiscal year , Sun announced a 25% total revenue decrease compared to the 1st quarter of the previous year, due to "economic downturn, the uncertainty associated with our proposed acquisition by Oracle, increased competition and delays in customer purchasing decisions". On January 21, 2010, EU Competition Commissioner Neelie Kroes announced unconditional approval of

1680-554: The acquisition. The European Commission delayed the acquisition for several months over questions about Oracle's plans for MySQL , Sun's competitor to Oracle Database . The DG COMP of the European Commission finally approved the takeover, apparently pressured by the U.S. DOJ Antitrust Division to do so, according to a diplomatic cable leaked in September 2011. In 2006, it was disclosed that Sun and Apple have discussed

1736-490: The code under the then unreleased GNU GPL v3 would have taken several years, and would probably also have involved mass resignations from engineers (unhappy with either the delay, the GPL, or both—this is not clear from the video). Later, in September 2006, Phipps rejected Cooper's assertion in even stronger terms. Similarly, Bryan Cantrill , who was at Sun at that time and involved in the release of CDDL licensed software stated in 2015 that he and his colleagues expected in 2006

DTrace - Misplaced Pages Continue

1792-487: The company in March 2010. In early 2010, troubling signals began to emerge concerning the future of OpenSolaris , including its absence from Oracle product roadmaps. In August 2010, a leaked internal memo indicated that Oracle would no longer release OpenSolaris distributions, including the long-delayed pending release, OpenSolaris 2010.05. The same memo announced that Oracle would no longer release Solaris source code as it

1848-544: The copyright law's fair use doctrine. Oracle appealed the decision. On March 27, 2018, an appeals court ruled Google violated copyright laws when it used Oracle's open-source Java software to build the Android platform in 2009. "There is nothing fair about taking a copyrighted work verbatim and using it for the same purpose and function as the original in a competing platform," a panel of three Federal Circuit judges concluded. The Supreme Court issued its decision on April 5, 2021. In

1904-529: The council, citing a conflict of interest. Many community members decided to leave for LibreOffice, which already had the support of Red Hat , Novell , Google, and Canonical . LibreOffice produced its first release in January 2011. In June 2011 Oracle contributed the OpenOffice.org trademarks and source code to the Apache Software Foundation, which Apache re-licensed under the Apache License . IBM donated

1960-640: The deal was still pending regulatory approval, the JRuby team collectively resigned from Sun and moved to Engine Yard . In early 2010, the Drizzle DBMS team collectively resigned from Sun and moved to Rackspace . Most of Sun's executive management team, including CEO Jonathan Schwartz , resigned immediately after the acquisition was complete. John Fowler, Executive VP of Sun's systems group, remained at Oracle as Executive Vice President of Hardware Engineering. Simon Phipps , Sun's Chief Open Source Officer, left

2016-434: The deal. On January 27, 2010, Oracle announced that it had completed the acquisition. Several notable engineers resigned following the acquisition, including James Gosling , the creator of Java (resigned April 2010); Tim Bray , the creator of XML (resigned February 2010); Kohsuke Kawaguchi , lead developer of Hudson (resigned April 2010); and Bryan Cantrill , the co-creator of DTrace (resigned July 2010). While

2072-400: The discontinuation of OpenSolaris. As a community effort of some core Solaris engineers to create a truly open source Solaris, illumos operating system was announced via webinar on Thursday, 3 August 2010, as a fork on OpenSolaris OS/Net consolidation, including DTrace technology. In October 2011, Oracle announced the porting of DTrace to Linux , and in 2019 official DTrace for Fedora

2128-407: The district court on the central issue, holding that the "structure, sequence and organization" of an API was copyrightable. It also ruled for Oracle regarding the small amount of literal copying, holding that it was not de minimis. The case was remanded back to the district court for reconsideration of the fair use defense. A jury determined in 2016 that Google's use of Oracle's APIs was legal under

2184-408: The engineers who had written the Solaris kernel requested that the license of OpenSolaris be GPL-incompatible. Mozilla was selected partially because it is GPL incompatible. That was part of the design when they released OpenSolaris. ... the engineers who wrote Solaris ... had some biases about how it should be released, and you have to respect that. Simon Phipps (Sun's Chief Open Source Officer at

2240-497: The fast emergence of CDDL licensed software into the Linux ecosystem and the CDDL being not an obstacle. The GPL compatibility question was also the source of a controversy behind a partial relicensing of cdrtools to the CDDL which had been previously all GPL. In 2006, the Debian project declared the cdrtools legally undistributable because the build system was licensed under the CDDL. The author, Jörg Schilling, claimed that smake

2296-552: The first draft of the OSI's license proliferation committee report, the CDDL is one of nine preferred licenses listed as popular, widely used, or with strong communities. While the Free Software Foundation (FSF) also considered the CDDL a free software license, they saw some incompatibilities with their GNU General Public License (GPL). The question of whether and when both licenses are incompatible sparked debates in

DTrace - Misplaced Pages Continue

2352-603: The founders of MySQL, also started a petition asking that MySQL either be divested to a third party, or have its licensing changed to be less restrictive than the previous GPL terms it operated under prior to and during its ownership by Sun. Oracle filed a patent infringement lawsuit against Google over its use of Java in the Android platform. Android apps run in the Dalvik Java virtual machine . The apps are written in Java but are compiled into Dalvik's custom bytecode format which

2408-446: The free software domain in 2004 to 2006. For instance, the FSF considered the CDDL incompatible to their GPL license, without going into detail until 2016. CDDL is one of several Open Source Licenses which are incompatible with GPL . This characteristic was inherited from the MPL 1.1 (fixed with the MPL 2.0 according to the FSF ) and results from a complex interaction of several clauses;

2464-445: The language. Supported language providers include assembly language , C , C++ , Java , Erlang , JavaScript , Perl , PHP , Python , Ruby , shell script , and Tcl . Application providers allow DTrace to follow the operation of applications through system calls and into the kernel. Applications that offer DTrace application providers include MySQL , PostgreSQL , Oracle Database , Oracle Grid Engine , and Firefox . DTrace

2520-524: The patent grant is lost if the code implementing a patented feature is modified. The previous software license used by Sun for its open source projects was the Sun Public License (SPL), also derived from the Mozilla Public License . The CDDL license is considered by Sun (now Oracle ) to be SPL version 2. The CDDL was developed by a Sun Microsystems team (among them Solaris kernel engineer Andrew Tucker and Claire Giordano ), based on

2576-502: The principal project contributors and Oracle took place. There were many areas of agreement, but a key sticking point was the trademarked name "Hudson", after Oracle claimed the right to the name and applied for a trademark in December 2010. As a result, on January 11, 2011, a call for votes was made to change the project name from "Hudson" to "Jenkins". The proposal was overwhelmingly approved by community vote on January 29, 2011, creating

2632-514: The root of the problem being GPL virality , similar to other cases of GPL incompatibility. Some people argue that Sun (or the Sun engineer) as creator of the license made the CDDL intentionally GPL incompatible. According to Danese Cooper one of the reasons for basing the CDDL on the Mozilla license was that the Mozilla license is GPL-incompatible . Cooper stated, at the 6th annual Debian conference , that

2688-590: The similarly open source OpenOffice.org Project became worried about their project's future with Oracle. They formed The Document Foundation and created the LibreOffice fork. The LibreOffice brand was hoped to be provisional, as Oracle had been invited to join The Document Foundation and donate the OpenOffice.org brand. In response, Oracle demanded that all members of the OpenOffice.org Community Council involved with The Document Foundation step down from

2744-518: The system's internals. The OpenDTrace effort maintains the original CDDL licensing for the code from OpenSolaris with additional code contributions coming under a BSD 2 Clause license. The goal of OpenDTrace is to provide an OS agnostic, portable implementation of DTrace that is acceptable to all consumers, including macOS, FreeBSD, OpenBSD, NetBSD, and Linux as well as embedded systems. Sun Microsystems designed DTrace to give operational insights that allow users to tune and troubleshoot applications and

2800-468: The time), who had introduced Cooper as "the one who actually wrote the CDDL", did not immediately comment, but later in the same video, he says, referring back to the license issue, "I actually disagree with Danese to some degree", while describing the strong preference among the engineers who wrote the code for a BSD-like license, which was in conflict with Sun's preference for something copyleft , and that waiting for legal clearance to release some parts of

2856-468: Was completed on January 27, 2010. After the acquisition was completed, Oracle, only a software vendor prior to the merger, owned Sun's hardware product lines, such as SPARC Enterprise , as well as Sun's software product lines, including the Java programming language. Concerns about Sun's position as a competitor to Oracle were raised by antitrust regulators, open source advocates, customers, and employees over

SECTION 50

#1732852577473

2912-646: Was designed and implemented by Bryan Cantrill , Mike Shapiro , and Adam Leventhal . The authors received recognition in 2005 for the innovations in DTrace from InfoWorld and Technology Review . DTrace won the top prize in The Wall Street Journal ' s 2006 Technology Innovation Awards competition. The authors were recognized by USENIX with the Software Tools User Group (STUG) award in 2008. Oracle acquisition of Sun The acquisition of Sun Microsystems by Oracle Corporation

2968-587: Was developed, instead only publishing it after the release of each Solaris version. Since Oracle was no longer supporting all the development of an open version of Solaris, the OpenSolaris Governing Board disbanded shortly after this was revealed, ending the project. Independent development continues with the Illumos fork . On September 2, 2017, Phipps reported that Oracle had laid off virtually all of its Solaris core development staff, interpreting it as

3024-462: Was found liable for a small amount of literal code copying. Oracle was limited to statutory damages for these claims. The jury found that Google did not infringe Oracle's patents. Oracle appealed to the Federal Circuit, and Google filed a cross-appeal on the literal copying claim. The hearing was held on December 4, 2013, and the judgement was released on May 9, 2014. The circuit court reversed

3080-501: Was migrated to Java.net by Oracle. Project Darkstar , a project to investigate and create solutions for issues in massive online gaming environments, was closed by Oracle on February 2, 2010. Oracle has changed the software support model to also require hardware support. The new policy states "when acquiring technical support, all hardware systems must be supported (e.g., Oracle Premier Support for Systems or Oracle Premier Support for Operating Systems) or unsupported." In March 2010

3136-543: Was originally released under CDDL). General availability was announced in December 2012. On March 11, 2019, Microsoft released a version of DTrace for Windows 10 insider builds. Microsoft included DTrace as a built-in tool in Windows Server 2025 . With a supported language provider , DTrace can retrieve context of the code, including function, source file, and line number location. Further, dynamic memory allocation and garbage collection can be made available if supported by

#472527