Software Development Kit (SDK)
SDK is a set of development tools which allows software specialists to create applications for a certain software package, the software of basic development tools, a hardware platform, a computer system, video game consoles, operating systems and other platforms.
The programmer, as a rule, receives SDK directly from the developer of target technology or a system. Often SDK extends via the Internet. Many SDK are distributed for free to induce developers to use this technology or the platform.
Suppliers of SDK sometimes substitute the word "software" in a phrase "software development kit" for more exact word. For example, Microsoft and Apple provide Driver Development Kit (DDK) for development of drivers of devices, PalmSource calls the tools for development of PalmOS Development Kit (PDK), and Oracle — Java Development Kit (JDK).
Driver Development Kit (DDK)
DDK (from engl. Driver Development Kit) is set of development tools, heading files, libraries, utilities, a program code of examples and documentation which allows programmers to create drivers for devices on a certain technology or for a certain platform (program or hardware-software). The name came from more general term SDK (engl. Software Development Kit) by which designate sets for development of programs in general, not only drivers.
Creation of the driver is possible also without use of DDK, however DDK contains the means simplifying development of the driver (for example, ready examples and template codes), providing compatibility of the driver with the operating system (the symbolical determinations of constants, determinations of stub functions of OS, determinations depending on type and the version of OS) and also installation and testing of the driver.
In the ecosystem connected with the Windows operating system, the term became outdated, and is replaced with the term WDK — Windows Driver Kit. The product is available to free download via the website Microsoft Connect and comprises construction tools of programs both a kernel mode, and a user mode.