SQL Server on Linux: Behind The Scenes

Now it has become known that in order to make SQL Server run on Linux one has to introduce the so-called Platform Abstraction Layer (PAL) into SQL Server. The PAL is used to align all platform or operating system specific code in a single place and by doing so allow the rest of the codebase to stay operating system agnostic. The PAL was never previously required because SQL Server has been running only on Windows operating system for a long time. In reality, to ensure that numerous functionalities are available the SQL Server database engine codebase contains plenty of references to popular libraries on Windows. (more…)

About SQL Server on Linux

About SQL Server on Linux

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.