Nachdem ich einen neuen Laptop gekauft hatte, bedauerte ich, dass mein geliebtes Ubuntu die Sensoren nicht mehr unterstützt und die Lüfter ständig summen, was die Arbeit unangenehm macht. Wenn Sie gleichzeitig das vorinstallierte Windows 10 Pro von der ursprünglichen Festplatte herunterladen, herrscht eine für das Ohr angenehme Stille. Während es draußen (und zu Hause) kühl war, war es erträglich. Aber als die Hitze kam, hörte die Geduld auf. Es wurde beschlossen, auf Windows zu migrieren.
In meiner Arbeit verwende ich zahlreiche virtuelle Maschinen, um entwickelte Software zu erstellen, zu testen und zu debuggen. Windows 10 Pro enthält Hyper-V-Virtualisierung - sobald das Geld bezahlt ist, müssen Sie es verwenden! In Ubuntu habe ich libvirt und virtuelle Maschinen in einem internen virtuellen Netzwerk verwendet.
Nachdem ich Windows von der ursprünglichen Festplatte auf die SSD übertragen und die Images der virtuellen Maschinen in das Format für Hyper-V konvertiert hatte, begann ich mit Herzschmerz, ein neues Betriebssystem zu entwickeln.
Es stellte sich heraus, nicht so beängstigend! Virtuelle Desktops wurden durch Windows-Desktops ersetzt (leider nur horizontale), die Konsole ersetzte die WSL-Konsole (Windows Subsystem für Linux), VcXsrv wurde installiert und dem Startprogramm für X11-Anwendungen hinzugefügt, virtuelle Maschinen arbeiteten in Hyper-V und konnten sogar OSX starten.
Das native Terminal erwies sich als nicht ganz praktisch und ohne Registerkarten. Daher wurde es rücksichtslos durch das xfce4-Terminal ersetzt, das über eine Verknüpfung mit einem versteckten Linux-Konsolenfenster gestartet wird:

Objekt
C:\Windows\System32\wscript.exe ./runhidden.vbs bash -c "export DISPLAY=:0.0; export GDK_DPI_SCALE=1.2; cd ~; exec xfce4-terminal"
( , X11 ), :
' Simple command-line help.
select case WScript.Arguments(0)
case "-?", "/?", "-h", "--help"
WScript.echo "Usage: runHidden executable [...]" & vbNewLine & vbNewLine & "Runs the specified command hidden (without a visible window)."
WScript.Quit(0)
end select
' Separate the arguments into the executable name
' and a single string containing all arguments.
exe = WScript.Arguments(0)
sep = ""
for i = 1 to WScript.Arguments.Count -1
' Enclose arguments in "..." to preserve their original partitioning.
args = args & sep & """" & WScript.Arguments(i) & """"
sep = " "
next
' Execute the command with its window *hidden* (0)
WScript.CreateObject("Shell.Application").ShellExecute exe, args, "", "open", 0
:

, TP-LINK WR703N OpenWRT:

VPN . , , WiFi , , WiFi, . WiFi , , .
( ), , . , Windows .
Hyper-V . , . LAN Internal:

. , « » — Windows .
WiFi:

:

Ubuntu 16.04. 16.04? 18.04 /etc/network/interfaces netplan — ! :

, Microsoft UEFI .
, ifconfig. WiFi ip . , :
dhclient eth0 eth1 eth2
, dhcp.
eth0 — , eth1 — , eth2 — ( ). 192.168.3.0.
/etc/network/interfaces , , nano:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
# Internal LAN
auto eth1
iface eth1 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
# The primary network interface
allow-hotplug eth2
iface eth2 inet dhcp
. ( ).
, .
:
sudo apt install dnsmasq iptables-persistent netfilter-persistent openvpn
ip :
cat > /etc/sysctl.d/10-forwarding.conf
net.ipv4.ip_forward=1
:
cat > /etc/iptables/rules.v4
# Generated by iptables-save v1.6.0 on Fri Jun 22 11:13:10 2018
*nat
:PREROUTING ACCEPT [2901:568651]
:INPUT ACCEPT [707:80315]
:OUTPUT ACCEPT [445:30025]
:POSTROUTING ACCEPT [14:1200]
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o eth2 -j MASQUERADE
-A POSTROUTING -o tun+ -j MASQUERADE
COMMIT
# Completed on Fri Jun 22 11:13:10 2018
# Generated by iptables-save v1.6.0 on Fri Jun 22 11:13:10 2018
*filter
:INPUT ACCEPT [57264:68964200]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [44820:7558046]
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o tun+ -j ACCEPT
COMMIT
# Completed on Fri Jun 22 11:13:10 2018
dhcp :
cat > /etc/dnsmasq.d/router.conf
dhcp-authoritative
domain-needed
localise-queries
read-ethers
bogus-priv
expand-hosts
local-service
domain=lan
server=/lan/
dhcp-leasefile=/tmp/dhcp.leases
interface=eth1
dhcp-range=lan,192.168.3.100,192.168.3.249,255.255.255.0,12h
Windows !

openvpn .
, , ?
— Windows 10 ! . ! …

, . , . , , .
, ( — Visual Studio):

, , .
github.
, , (, ) Windows
NoWiFi.
, , , !
, !