In March 2016 Microsoft announced that it was bringing SQL Server to Linux. Yes, that same Linux that was ignored by the IT giant for years but has proven to be too good to be ignored. And it’s not the first time that the company is coming back to this operating system. However, this time and for the first time ever Microsoft is bringing SQL Server to Linux, which is kind of a big deal.
On November 16, 2016 Microsoft released the first public preview of SQL Server for Linux. And, instead of porting SQL Server to run as a native Linux application, the company chose to use its Drawbridge application sandboxing technology.
Newly introduced SQL Server for Linux runs atop a Drawbridge Windows library OS, a user-mode NT kernel, within a secure container called a picoprocess. This secure container communicates with the host Linux operating system through the Drawbridge application binary interface.
This means that Microsoft’s SQL Server for Linux is actually the Windows SQL Server that is executable with a reduced Windows 8 kernel glued beneath, all running in an ordinary Linux process.
You can find drawbridge references in an 8.4MB library located at /opt/mssql/lib/system.sfp
. The /opt/mssql/bin/sqlservr
binary is actually a loader. After closely studying the code it was found that the components are brought to a sandbox and then integrity checks and whitelisting are performed to make sure that it is allowed to do so. After that it runs the contained SQL Server executable.
It is expected that SQL Server on Linux will be fully available by mid-2017. Moreover, it is planned that it will support multiple Linux distributions. So far, the preview version is available only for Ubuntu and Red Hat. Users are also able to download the preview version as a Docker image.