Articles

Surface Pro 7 as portable Linux Dev Machine

Posted by admin

od dłuższego czasu szukam małego laptopa do podróży, który obsługuje mój Linux-based workflow.So oczywiście zdecydowałem się użyć komputera z systemem Windows bez pierwszorzędnej obsługi Linuksa: Surface Pro 7.

znalezienie najlepszego sprzętu

sprzęt, którego używamy na co dzień, powinien być najlepszym, na jaki możemy sobie pozwolić i jest odpowiedni do naszego profesjonalnego użytku.Rzemieślnik nie kupowałby taniego młotka lub narzędzia elektrycznego w „Home Depot”, kupowałby profesjonalny sprzęt, i my też powinniśmy.

ale to łatwiej powiedzieć niż zrobić…

każdy ma inne priorytety, jeśli chodzi o sprzęt.Surowa moc niekoniecznie jest już najważniejszą częścią, IMHO Ostatnie generacje procesorów Intela nie poprawiły wydajności w znaczący sposób dla mojego osobistego obciążenia pracą.

niezawodność i użyteczność są dla mnie ważniejsze.Dlatego nienawidzę mojego Touchbar MacBook Pro tak bardzo.

MacBook Pro

przez lata jedynym akceptowalnym dla mnie laptopem był MacBook Pro.

Najlepsza jakość wykonania dzięki metalowej obudowie, świetnej żywotności baterii, wystarczającej mocy i przede wszystkim kompatybilna z moim przepływem pracy opartym na Linuksie dzięki bazowemu BSD.

ale wtedy Apple zdecydowało się uczynić go jeszcze cieńszym i pozbyć się niektórych jego najlepszych cech:

  • koniec z MagSafe.
  • koniec z klawiaturami Escape i funkcyjnymi, ale tutaj jest beznadziejny touchbar, który będziesz uruchamiał przez przypadek przez cały czas.
  • koniec z używaną klawiaturą i przygotuj się na wizytę u „partnera serwisowego Apple”, aby ją naprawić, przynajmniej tymczasowo.
  • koniec z wymiennymi częściami, Zapłać z góry lub masz pecha.
  • i koniec z różnorodnością portów, USB-C wystarczy dla każdego. Wszyscy.
  • macOS jest teraz również bałaganem, z niedziałającymi funkcjami i mnóstwem świetnych nowych błędów przy każdym wydaniu.

i nie mając w pobliżu sklepu Apple Store (następny jest ~100km) muszę zabrać maszynę do autoryzowanego serwisu, który musi zamówić część zamienną przy zachowaniu urządzenia.Dzięki wszystkim wadliwym laptopom MacBook Pro może to potrwać nawet kilka tygodni.Jak wtedy, gdy zawiodła mi klawiatura.Albo Czas, w którym wyświetlacz zaczął żółknąć.

jedynym powodem, dla którego znoszę to wszystko, jest potrzeba budowania aplikacji na iOS.Vendor lock-in w najlepszym wydaniu.

poza tym po prostu siedzi na moim stole, nawet nie jest włączony.

wiem, że Apple wydało niedawno 16-calowego MacBooka Pro, aby spróbować naprawić niektóre z jego wielu problemów, a ja nie jestem skłonny wypuścić kolejnego 3K+€, zwłaszcza z degradującą jakością oprogramowania macOs, jeśli nie będę używać maszyny jako mojego codziennego sterownika.

Dell

do mojej prawdziwej pracy (a.k.a. non-iOS) używam Dell XPS 15 9560 z wyświetlaczem FullHD z 2017 roku działającym z Ubuntu 18.04 LTS.It jest cięższy, brzydszy, niższa jakość wykonania, mniejszy gładzik i ekran o niskiej rozdzielczości w porównaniu do MacBooka Pro.Ale jest niezawodny, niezniszczalny, wiele portów i możesz uzyskać niedrogie wsparcie na miejscu.

chcąc mieć mniejszy laptop pomyślałem o zastąpieniu go 13-calowym XPS.Chociaż wydaje się, że Dell nie jest w stanie lub nie dba o naprawienie problemów z cewką z XPS 13 przez kilka lat, a to jest nie do przyjęcia.15-calowy może również mieć problemy z cewką, ale wydaje się być bardziej rzadki w porównaniu do 13-calowego.

prawie każdy mały laptop / ultrabook ma pewne problemy z cewką, ale musisz nacisnąć ucho na klawiaturze, aby go usłyszeć.W przypadku della to rosyjska ruletka, jak głośna może być, od „żadnego ” do”słyszalnego w normalnym środowisku biurowym”.

Lenovo

IMHO jedynym innym producentem laptopów klasy biznesowej jest IBM, ehm, mam na myśli Lenovo z linią produktów Thinkpad.Mogą mieć prawdopodobnie przestarzały projekt, ale są neutralnie wyglądające, są wysoce konfigurowalne, nie-ultrabooki są serwisowalne i są w większości kompatybilne z Linuksem.

moim największym problemem z Lenovo jest klawiatura: mimo, że jest świetna do pisania, zgubili klawisz fn.Od czasu do czasu używam klawiatury Lenovo Thinkpad USB i poza tym, że jest świetny, mam realne problemy z używaniem skrótów dzięki zmianie fn / ctrl.

mniejszy punkt w stosunku do Lenovo to także pricing.It jest wyższy w porównaniu do innych opcji, takich jak Dell, ale w końcu nie obchodzi mnie, czy spełnia wszystkie inne wymagania.Nie powinieneś oszczędzać na narzędziach, których potrzebujesz najbardziej w codziennej pracy.

Surface Pro 7

miałem wcześniej Surface Pro, Model 3 i faktycznie mi się podobał, ale nie lubię Windows dla mojej konfiguracji pracy.Ale to (miejmy nadzieję) zmieniło się wraz z wprowadzeniem podsystemu okien dla Linuksa w wersji 2.

przenośne i wydajne urządzenie, które może być używane jako tablet z prawie prawdziwym Linuksem, obsługą Dockera, a nawet aplikacjami X11 działającymi w systemie Windows?

brzmi zbyt dobrze, aby było prawdziwe, więc sprawdźmy to!

Konfigurowanie Surface Pro 7

Aktualizacja do systemu Windows 10 Pro (lub Enterprise)

po pierwsze, chcesz mieć co najmniej System Windows 10 Pro, a nawet lepiej Enterprise.Możesz uruchomić WSL2 na Windows 10 Home, ale nie jestem pewien co do Dockera.

Zostań Insider

teraz WSL2 jest dostępny tylko w kompilacjach Insider systemu Windows. Wydaje się, że jest wydany na wolnym ringu, w momencie, gdy zacząłem, był dostępny tylko w szybkim ring.So mogą być pewne ogólne Problemy, ale to warunek wstępny.

powierzchnia nie jest moją główną maszyną, więc jestem ok z ryzykiem, YMMV.

  1. Zarejestruj swoje konto Microsoft w programie Insider pod adresem https://insider.windows.com/.
  2. Otwórz Ustawienia systemu Windows Insider (na komputerze z systemem Windows 10 przejdź do Start > Ustawienia > aktualizacja & bezpieczeństwo.
  3. kliknij przycisk Rozpocznij i połącz swoje konto.
  4. Wybierz Wolny Pierścień.
  5. przejdź do ustawień > aktualizacja & Bezpieczeństwo i kliknij Sprawdź aktualizacje, aby pobrać najnowszą kompilację.

funkcje systemu Windows

Uruchom to w PowerShell z uprawnieniami administratora i uruchom ponownie, aby zainstalować wymagane funkcje:

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

zainstaluj Ubuntu 18.04

Aktywuj WSL2 i pobierz najnowsze Ubuntu 18.04 obraz aplikacji z App Store, wszystko z PowerShell:

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

oczywiście możesz użyć innej dystrybucji, jeśli chcesz, po prostu wszystkie moje inne maszyny z Linuksem działają na Ubuntu 18.04.

Docker Desktop Edge

Docker Desktop Edge obsługuje WSL2:

  1. Pobierz i zainstaluj https://download.docker.com/win/edge/40807/Docker%20Desktop%20Installer.exe.
  2. Uruchom Docker z menu start.
  3. w Ustawieniach > ogólne włącz eksperymentalny silnik WSL2.
  4. Kliknij Zastosuj & Uruchom Ponownie.

konfiguracja Linuksa

zainstaluj Linuksa tak, jak na każdym innym komputerze.

do konfigurowania naszych maszyn programistycznych Linux (ZSH, dodatkowe narzędzia itp.) stworzyliśmy zestaw skryptów do automatyzacji procesu.

X11 vs.natywny

X11

jedną z zalet mojej konfiguracji programistycznej jest używanie aplikacji X11 w kontenerach Docker, więc konfiguracja nie będzie się różnić niezależnie od używanej maszyny lub dystrybucji Linuksa.Chciałem zrobić to samo z WSL2.

istnieje wiele serwerów X11 dostępnych dla systemu Windows (X410, VcXsrv i inne) i można ich używać z WSL2.

zdecydowałem się użyć X410, możesz go bezpośrednio z Windowsa Store.To w rzeczywistości używaj X11 i WSL2, musisz aktywować Zezwól na publiczny dostęp za pomocą elementu paska zadań.

i trzeba wyeksportować poprawny adres IP do zmiennej środowiskowej DISPLAY w WSL2, np. w Twoim .bashrc są jakieś podobne:

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

teraz możesz używać kontenerów Docker z obsługą X11, jak wcześniej.

więc uruchomiłem mój kontener Eclipse i był do bani … rysunek UI był horrendalny, skalowanie HiDPI było bezużyteczne/niezrównoważone.Więcej dowodów niż codzienny kierowca.

natywny

ze względu na złe wyniki z X11 postanowiłem sprawdzić mieszankę WSL2 i natywnych aplikacji Windows.

serwery, których potrzebuję (Mysql, MongoDB, RabbitMQ, Nginx) były dokowane, ale Eclipse będzie natywnie zainstalowaną aplikacją Windows.

Moja przestrzeń robocza musi znajdować się w WSL2, aby wykorzystać całą wielkość Linuksa.Dostęp odbywa się poprzez system plików 9P, do którego można uzyskać dostęp za pomocą ścieżki UNC \WSL$\<your distro>.

więc zmapowałem ścieżkę UNC na dysk dla łatwego dostępu… i Eclipse nie używało go.Po pewnych badaniach okazuje się, że Eclipse nie lubi mieć przestrzeni roboczej na dysku sieciowym ze względu na mechanizmy blokujące po stronie Eclipse.Ale możesz to wyłączyć, w końcu zadziałało.

dopóki nie zaimportowałem moich projektów … i czekałem … i czekałem … i czekałem.Po kilku godzinach poddałem się ze względu na zadziwiające złe wyniki, które uczyniły go bezużytecznym.

rozwiązaniem mogłoby być umieszczenie wszystkich moich plików w systemie Windows, ale wtedy po prostu użyłbym WSL2 do niektórych kontenerów Dockera, Wszystko inne żyłoby w systemie Windows, a nie tego chciałem.

konfiguracja WSL2-Linux, o której marzyłem, może nie być (jeszcze) rozwiązaniem, na które liczyłem.

wnioski / TL; dr

Surface Pro 7 to świetna maszyna, możliwość korzystania z Linuksa w prawie natywny sposób jest niesamowita, ale nie wyszło (dla mnie).

wiedziałem wcześniej, że wydajność IO nie jest na równi lub w pobliżu, ale to było całkowicie rozczarowujące, chociaż podejrzewam, że Eclipse jest głównym winowajcą.

Wiele osób buduje konfiguracje WSL2-Linux i to działało świetnie dla nich, ale z moim toolchain / dev-setup, musiałbym zbudować Windows z odrobiną Linux-setup.Chcę wymienić mój Inny laptop na prawie tak dobrą opcję, a nie sub – par dev-experience.

Related Post