What differences are there with SQL Server 2017's packaging of `Binn` on Linux and Windows? Knowing that the Binn is packaged differently on Windows and Linux, I'm wondering what differences there are between the two? Do they come with different utilities? On Linux Binn is distributed in a sfp archive and Windows it's just a directory.
All tests done with a full install on Windows (except Machine Learning, and PolyBase) and a full install on Linux. So for starters on Windows you'll find these, 

112K fdhost.exe
244K sqlceip.exe
2.7M DQSInstaller.exe
 32K DatabaseMail.exe
 40K BackupToUrl.exe
476K sqlservr.exe
 56K StretchCodeGen.exe
 60K fdlauncher.exe
 88K xpadsi.exe


While on Linux you'll find

1.1M launchpad.exe
120K bcp.exe
120K reg.exe
140K SqlDumper.exe
 16K calchash.exe
200K mtlogreader.exe
208K rep.exe
232K DTAEngine.exe
232K ldfreader.exe
244K sqlceip.exe
244K sqlcmd.exe
 28K rgs.exe
 32K DatabaseMail.exe
 36K PalProcessLauncher.exe
476K sqlservr.exe
 48K useraccounttool.exe
 72K XdbPackageLauncher.exe
 76K OSQL.exe


A quick overview,


sqlservr.exe is the actual database
sqlceip.exe is the spyware -- both installs get that of course


  Sql Server Telemetry Client

calchash.exe this is Microsofts copy of sha1sum.exe takes a filename.


  Microsoft Trust Calculate hash utility (US/Canada Only, Not for Export)

OSQL.exe was deprecated and removed on the Windows Install
bcp.exe is the Bulk Copy Program but only the Linux version has -G Azure Active Directory Authentication
rep.exe - think grep on XML.


  Rep  -  a fast, file-oriented search and replace program.

DTAEngine.exe seems to be a component of SMSS that is available on Linux without using SMSS.
reg.exe and rgs.exe both seem to be some kind of registry modifier. I assume reg.exe is the system, and rgs.exe is the hive file.
Though pe32+ XdbPackageLauncher.exe just crashes when I run them in Windows 10.
PalProcessLauncher.exe, and launchpad.exe are likely specific to the Drawbridge abstraction.
ldfreader.exe seems interesting and potentially useful,

LDF Reader version 14.0.3008.27 - Dump Microsoft SQL Server Transaction Log

Usage: \\VBOXSVR\mssql\lib\sqlservr\Content\binn\ldfreader.exe &lt;file&gt; [options]

Options:

        -minVlf &lt;int&gt;           Min VLF to dump. Skips all prior VLFs. (short form: -m)
        -maxVlf &lt;int&gt;           Max VLF to dump. Skips all following VLFs. (short form: -M)
        -verbosity &lt;int&gt;        Verbosity level. Default is 1. (short form: -v)
        -summary                Summary mode. Only prints overall structure of LDF without individual records. (short form: -s)
        -lopFilter &lt;string&gt;     Dump only records with these LOP. (short form: -l)
        -force                  Force dumping in presence of corruption. (short form: -f)
        -dumpPageLogs           Dump Page Log Records? (short form: -p)
        -instructionFile        Treat file as instruction file. (short form: -i)
        -targetruntime &lt;int&gt;    The target run time in seconds (see below). (short form: -t)
        -certInfo &lt;string&gt;      Certificate information file for encrypted logs. (short form: -c)
        -vlfSize &lt;int&gt;          Fixed VLF Size in MB for Socrates Log (short form: -z)

&lt;file&gt; has a different meaning depending on whether -instructionFile is specified
if -instructionFile is specified, &lt;file&gt; is a file containing vlf information
extracted at dump time, containing fileID;offset;size followed by a
separator line and then mappings: fileID;full log file path

The -t parameter is an indication of how long to run the tool
when used without -i it is treated as a hard timeout on log iteration
when used with -i it is used as a guide for hueristics, a hard timeout of
five times the requested value will be used

launchpad.exe

Invalid arguments. The supported arguments are:
        -launcher:          Define the launcher dll's full path.
        -logPath:           Define the launchpad's base log path.
        -satelliteDllPath:  Define the sql satellite dll path for the satellites.
        -workingDir:        Define the launchpad and satellite process base working directory.
        -cleanupLog:        Whether to cleanup the log directory after every execution [0|1].
        -cleanupWorkingDir: Whether to cleanup the working directory after every execution [0|1].
        -pipeName:          Define the launchpad's name pipe's name.
        -timeout:           Define the default timeout in ms.
        -SqlInstanceName:   Define the SqlInstanceName as in MSSQLSERVER or blank for default or an instance name.
        -logFilesCount -    Tells the max number of launchpad error log file to keep across launchpad restarts.
Example:
Launchpad.exe  -launcher commonlauncher.dll -logPath C:\sqlServerBinaries\log -satelliteDllPath C:\sqlServerBinaries\binn\sqlsatellite.dll      -workingDir C:\sqlServerBinaries\data\ExtensibilityData -cleanupLog 0 -cleanupWorkingDir 0 -pipeName sqlsatellitelaunch -timeout 600000 -SqlInstanceName MSSQLSERVER

mtlogreader.exe, some utility for Hekaton logs

MtLog Reader - Dump Hekaton MtLog files

Usage: \\VBOXSVR\mssql\lib\sqlservr\Content\binn\mtlogreader.exe &lt;file&gt; [options]

Options:

        -verbose &lt;int&gt;                 Verbosity (0-4) Default 1. (short form: -v)
        -buffio &lt;bool&gt;                 Buffer stdout (true/false) Default true (short form: -b)
        -keySecret1 &lt;string&gt;           The first secret key blob used for crypto keys (short form: -k1)
        -keySecret2 &lt;string&gt;           The Second secret key blob used for crypto keys (short form: -k2)
        -instructionFile               Treat file as instructionfile. (short form: -i)
        -targetruntimeinseconds &lt;int&gt;  The target run time in seconds (only valid with -i). (short form: -t)
        -skipchksum                    Skip checksum validation. (short form: -sc)
        -maxbsn &lt;uint64&gt;               Max BSN to dump. Default 0 (dump whole file). (short form: -m)

&lt;file&gt; has a different meaning depending on whether -instructionFile is specified
if -instructionFile is specified, &lt;file&gt; is a file containing checkpoint file
information extracted at dump time, containing the root file name followed by a
list of container directories (one per line).
 the -t parameter is an indication of how long to run the tool
when used with -i it is used to limit the processing of checkpoint files

useraccounttool.exe, I believe it's the use R account tool, as in the statistical language for Machine Learning that Microsoft brought 

useraccounttool &lt;command&gt; [options]
Available Commands:
  /install                - Create the credentials required for R on SQL Server.
  /uninstall              - Cleanup the credentials required for R on SQL Server
Available Options:
  /instance:&lt;name&gt;        - [Optional (default: MSSQLSERVER)] The instance to use
  /sqlbinnpath:&lt;path&gt;     - [Required] The path to the sql binn directory.
  /userpoolsize:&lt;size&gt;    - [Optional (default: 20)] The number of user accounts to create.
[useraccounttool] &lt;12/15/2017 5:23:26 PM&gt; #3: Program exited with exit code 1