Articles

Surface Pro 7 als tragbare Linux-Entwicklungsmaschine

Posted by admin

Seit geraumer Zeit suche ich einen Laptop mit geringem Platzbedarf für Reisen, der meine Linux-basierten workflow.So natürlich entschied ich mich für einen Windows-Rechner ohne erstklassige Linux-Unterstützung: Das Surface Pro 7.

Die beste Hardware finden

Die Hardware, die wir täglich verwenden, sollte die beste sein, die wir uns leisten können und die für unseren professionellen Einsatz angemessen ist.Ein Handwerker würde bei „Home Depot“ keinen billigen Hammer oder Elektrowerkzeug kaufen, er würde professionelle Ausrüstung kaufen, und wir auch.

Aber das ist leichter gesagt als getan…

Jeder hat andere Prioritäten, wenn es um Hardware geht.Die Rohleistung ist nicht mehr unbedingt der wichtigste Teil, IMHO haben die letzten Generationen von Intel-CPUs die Leistung für meine persönliche Arbeitslast nicht wesentlich verbessert.

Zuverlässigkeit und Benutzerfreundlichkeit sind mir wichtiger.Deshalb hasse ich mein Touchbar MacBook Pro so sehr.

MacBook Pro

Jahrelang war der einzige akzeptable Laptop für mich ein MacBook Pro.

Beste Verarbeitungsqualität dank Metallgehäuse, tolle Akkulaufzeit, genügend Leistung und dank des zugrunde liegenden BSD größtenteils kompatibel mit meinem Linux-basierten Workflow.

Aber dann entschied sich Apple, es noch dünner zu machen und einige seiner besten Eigenschaften loszuwerden:

  • Kein MagSafe mehr.
  • Keine Escape- und Funktionstasten mehr, aber hier ist eine beschissene Touchbar, die Sie die ganze Zeit versehentlich auslösen werden.
  • Keine brauchbare Tastatur mehr, und seien Sie bereit, einen „Apple Service Partner“ aufzusuchen, um das Problem zumindest vorübergehend zu beheben.
  • Keine austauschbaren Teile mehr, im Voraus bezahlen oder Pech haben.
  • Und nicht mehr ports vielfalt, USB-C ist genug für alle. JEDER.
  • macOS ist jetzt auch ein Durcheinander, mit nicht funktionierenden Funktionen und vielen großartigen neuen Fehlern mit jeder Version.

Und ohne einen Apple Store in meiner Nähe zu haben (der nächste ist ~ 100km entfernt) muss ich das Gerät zu einem autorisierten Dienstleister bringen, der das Ersatzteil bestellen muss, während das Gerät aufbewahrt wird.Dank all der fehlerhaften MacBook Pro-Laptops kann es sogar einige Wochen dauern.Wie die Zeit, als die Tastatur an mir versagte.Oder die Zeit, als das Display anfing, überall gelb zu werden.

Der einzige Grund, warum ich das alles ertragen muss, ist die Notwendigkeit, iOS-Apps erstellen zu können.Vendor Lock-in von seiner besten Seite.

Außerdem sitzt es einfach auf meinem Tisch, nicht einmal eingeschaltet.

Ich weiß, dass Apple kürzlich das 16-Zoll-MacBook Pro herausgebracht hat, um einige der vielen Probleme zu beheben, und ich bin nicht bereit, weitere 3k + € auszugeben, insbesondere bei der Verschlechterung der Softwarequalität von macOS, wenn ich keine Maschine als täglichen Treiber verwende.

Dell

Für meine eigentliche Arbeit (auch bekannt als Nicht-iOS) verwende ich ein Dell XPS 15 9560 mit einem FullHD-Display von 2017 mit Ubuntu 18.04 LTS.It ist schwerer, hässlicher, niedriger bauen-qualität, kleiner trackpad, und low-res bildschirm im vergleich zu die MacBook Pro.Aber es ist zuverlässig, unzerstörbar, viele Ports und Sie können erschwinglichen Support vor Ort erhalten.

Da ich einen kleineren Laptop wollte, dachte ich darüber nach, ihn durch ein 13-Zoll-XPS zu ersetzen.Obwohl es scheint, dass Dell die Probleme mit dem XPS 13 seit einigen Jahren nicht mehr beheben kann oder will, und das ist nicht akzeptabel.Der 15-Zoll kann auch Probleme mit dem Coil-Jammern haben, scheint jedoch im Vergleich zum 13-Zoll seltener zu sein.

Fast jeder kleine Laptop / Ultrabook-Formfaktor hat einige Probleme mit dem Coil-Jammern, aber Sie müssen Ihr Ohr auf die Tastatur drücken, um es zu hören.Mit einem Dell ist es russisches Roulette, wie laut es sein könnte, von „gar keine“ bis „hörbar in einer normalen Büroumgebung“.

Lenovo

IMHO der einzige andere Business-Grade-Laptop-Hersteller ist IBM, ehm, ich meine Lenovo mit ihrer Thinkpad Produktlinie.Sie haben vielleicht ein wohl veraltetes Design, aber sie sehen neutral aus, sind hochgradig anpassbar, die Nicht-Ultrabooks sind wartungsfähig, und sie sind meistens Linux-kompatibel.

Mein größtes Problem bei Lenovo ist die Tastatur: Obwohl sie sich hervorragend zum Tippen eignet, haben sie die fn-Taste verlegt.Von Zeit zu Zeit benutze ich eine Lenovo Thinkpad USB-Tastatur und abgesehen davon, dass ich großartig bin, habe ich dank der Änderung von fn / Strg echte Probleme mit Verknüpfungen.

Ein kleinerer Punkt gegen Lenovo ist auch der pricing.It ist höher im Vergleich zu anderen Optionen wie Dell, aber am Ende wäre es mir egal, wenn es alle anderen Anforderungen erfüllt.Sie sollten nicht auf die Werkzeuge verzichten, die Sie in Ihrer täglichen Arbeit am meisten benötigen.

Surface Pro 7

Ich besaß zuvor ein Surface Pro, Modell 3, und es hat mir wirklich gefallen, aber ich mag Windows nicht für mein Arbeits-Setup.Aber das hat sich (hoffentlich) mit der Einführung des Window-Subsystems für Linux Version 2 geändert.

Ein tragbares und leistungsstarkes Gerät, das als Tablet mit einem fast echten Linux mit Docker-Unterstützung und sogar X11-Apps unter Windows verwendet werden kann?

Klingt zu gut um wahr zu sein, also lasst es uns ausprobieren!

Einrichten des Surface Pro 7

Update auf Windows 10 Pro (oder Enterprise)

Das Wichtigste zuerst, Sie möchten mindestens Windows 10 Pro oder noch besser Enterprise haben.Sie können WSL2 unter Windows 10 Home ausführen, aber ich bin mir bei Docker nicht sicher.

Insider werden

Derzeit ist WSL2 nur in den Windows Insider-Builds verfügbar. Es scheint auf dem langsamen Ring veröffentlicht zu werden, zu der Zeit, als ich anfing, war es nur im schnellen verfügbar ring.So es mag einige allgemeine Probleme geben, aber es ist eine Voraussetzung.

Die Oberfläche ist nicht meine Hauptmaschine, also bin ich mit dem Risiko einverstanden, YMMV.

  1. Registrieren Sie Ihr Microsoft-Konto für das Insider-Programm unter https://insider.windows.com/.
  2. Öffnen Sie die Windows Insider-Einstellungen (auf Ihrem Windows 10-PC gehen Sie zu Start > Einstellungen > Update & Sicherheit.
  3. Klicken Sie auf Erste Schritte und verknüpfen Sie Ihr Konto.
  4. Wählen Sie Slow Ring.
  5. Gehen Sie zu Einstellungen > Aktualisieren & Sicherheit und klicken Sie auf Nach Updates suchen, um den neuesten Build herunterzuladen.

Windows-Funktionen

Führen Sie dies in einer PowerShell mit Administratorrechten aus und starten Sie es anschließend neu, um die erforderlichen Funktionen zu installieren:

12
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatformEnable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Installieren Sie Ubuntu 18.04

Aktivieren Sie WSL2 und laden Sie das neueste Ubuntu 18 herunter.04 app Bild aus dem App Store, alle mit der Powershell:

123
wsl --set-default-version 2Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile ubuntu.appx -UseBasicParsingAdd-AppxPackage .\ubuntu.appx

Natürlich können Sie eine andere Distribution verwenden, wenn Sie möchten, es ist nur so, dass alle meine anderen Linux-Maschinen Ubuntu 18.04 ausführen.

Docker Desktop Edge

Der Docker Desktop Edge unterstützt WSL2:

  1. Laden Sie https://download.docker.com/win/edge/40807/Docker%20Desktop%20Installer.exe herunter und installieren Sie es.
  2. Starten Sie Docker über das Startmenü.
  3. Aktivieren Sie unter Einstellungen > Allgemein die experimentelle WSL2-Engine.
  4. Klicken Sie auf Anwenden & Neustart.

Linux-Setup

Installieren Sie Ihr Linux wie auf jedem anderen Computer.

Zum Einrichten unserer Linux-Entwicklungsmaschinen (ZSH, zusätzliche Tools usw.) wir haben eine Reihe von Skripten erstellt, um den Prozess zu automatisieren.

X11 vs. native

X11

Einer der Vorteile meines Dev-Setups ist die Verwendung von X11-Apps in Docker-Containern, sodass sich das Setup unabhängig von der verwendeten Maschine oder Linux-Distribution nicht unterscheidet.Ich wollte das gleiche mit WSL2 machen.

Es gibt mehrere X11-Server für Windows (X410, VcXsrv und mehr), die Sie mit WSL2 verwenden können.

Ich habe beschlossen, X410 zu verwenden, können Sie es direkt aus dem Windows Store.To um X11 und WSL2 zu verwenden, müssen Sie öffentlichen Zugriff über das Taskleistenelement zulassen aktivieren.

Und Sie müssen die richtige IP-Adresse in die Umgebungsvariable DISPLAY in WSL2 exportieren, zB in Ihrem .bashrc sind einige ähnlich:

1
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print ; exit;}'):0.0

Jetzt können Sie X11-fähige Docker-Container wie zuvor verwenden.

Also habe ich meinen Eclipse-Container ausgeführt und es war scheiße … Die UI-Zeichnung war schrecklich, die HiDPI-Skalierung war unbrauchbar / nicht konfigurierbar.Mehr Proof of Concept als Daily Driver.

Native

Aufgrund der schlechten Ergebnisse mit X11 habe ich beschlossen, eine Mischung aus WSL2 und nativen Windows-Apps auszuprobieren.

Die Server, die ich benötige (Mysql, MongoDB, RabbitMQ, Nginx), wurden angedockt, aber Eclipse wird eine nativ installierte Windows-App sein.

Mein Arbeitsbereich muss sich in der WSL2 befinden, um alle Linux-Ressourcen nutzen zu können.Der Zugriff erfolgt über das 9P-Dateisystem, auf das über den UNC-Pfad \WSL$\<your distro> zugegriffen werden kann.

Also habe ich den UNC-Pfad für den einfachen Zugriff einem Laufwerk zugeordnet … und Eclipse hat ihn nicht verwendet.Nach einigen Recherchen scheint Eclipse aufgrund von Sperrmechanismen auf Eclipse-Seite keinen Arbeitsbereich auf einem Netzwerklaufwerk zu haben.Aber Sie können dies deaktivieren, es hat endlich funktioniert.

Bis ich meine Projekte importierte … und wartete … und wartete … und wartete.Nach ein paar Stunden gab ich aufgrund der erstaunlich schlechten Leistung auf, was es unbrauchbar machte.

Eine Lösung könnte darin bestanden haben, alle meine Dateien in Windows abzulegen, aber dann hätte ich nur WSL2 für einige Docker-Container verwendet, alles andere hätte in Windows gelebt, und das wollte ich nicht.

Das WSL2-Linux-Setup, von dem ich geträumt habe, ist vielleicht (noch) nicht die Lösung, die ich mir erhofft habe.

Fazit / tl; dr

Das Surface Pro 7 ist eine großartige Maschine, Linux auf fast native Weise verwenden zu können, ist unglaublich, aber es hat (für mich) nicht geklappt.

Ich wusste vorher, dass die IO-Leistung nicht auf Augenhöhe oder nahezu nativ ist, aber das war völlig überwältigend, obwohl ich vermute, dass Eclipse der Hauptschuldige ist.

Viele Leute bauen WSL2-Linux-Setups und es funktionierte großartig für sie, aber mit meinem Toolchain / dev-Setup müsste ich ein Windows mit nur ein wenig Linux-Setup erstellen.Ich möchte meinen anderen Laptop durch eine fast genauso gute Option ersetzen, nicht durch eine unterdurchschnittliche Entwicklungserfahrung.

Related Post

Leave A Comment