Entwicklung & Code
Microsoft Build 2026: KI-Entwicklung mit, unter und für Windows
Weiterlesen nach der Anzeige
Microsoft veranstaltet am 2. und 3. Juni 2026 die Entwicklerkonferenz MS Build 2026. Das Unternehmen wendet sich damit insbesondere an Entwickler, die ihre Software für das Windows-Ökosystem entwickeln. Wie in den vergangenen Jahren steht auch dieses Jahr wieder ganz viel Künstliche Intelligenz auf der Agenda. Konkrete Windows-Weiterentwicklung findet sich jedoch kaum.
Erneut steht die Entwicklung mit Hilfe von KI und von KI-basierten Helfern ganz oben auf der Liste. Insgesamt sieben neue KI-Modelle entlässt das „Microsoft AI Superintelligence Team“ in die Welt. Darunter ist das erste Reasoning-Modell MAI-Thinking-1 von Microsoft. MAI-Image-2.5 und eine Flash-Variante davon beherrschen Text-to-Image, sie sollen Google Nano Banana Pro überholen. MAI-Transcribe-1.5 verschriftlicht Ton in 43 Sprachen, Streaming soll aber erst demnächst dazukommen. MAI-Voice-2 und eine Flash-Variante davon bedienen 15 Sprachen und haben neue Stimmen-Optionen bekommen. Beim Programmieren auf GitHub hilft MAI-Code-1. Microsoft erwähnt OpenAI in dem Zuge nicht.
Vorträge behandeln etwa das Bauen, Verteilen und Skalieren von KI-Agenten mit dem Cloud-PC Windows 365. Ein Vortrag zum Windows Subsystem for Linux verspricht Neuigkeiten. Eigentlich befassen sich bislang alle der wenigen Windows-spezifischen Vorträge mit dem Einsatz von KI-Tools zur Entwicklung unter Windows sowie mit dem Betreiben von KI-Bots wie OpenClaw. Ein Vortrag fällt etwas heraus: Er beschreibt, wie Developer mit dem Windows Terminal ihre Produktivität steigern können sollen.
Plattformen, Tools, Vertrauen
Mächtig blumig umschreibt Microsofts Marketingabteilung, was Entwickler denn so bräuchten, um die Lösungen gleich mit anzubieten. Am Ende destilliert sich daraus zusammen, dass sie Sicherheit von Infrastrukturen und Apps sowie beschleunigte und vereinfachte Entwicklung benötigten. Und das nicht nur für Teilprobleme, sondern Full-Stack, mit Tools, Modellen und Prozessen nach den Vorstellungen der Developer.
Windows soll dafür selbstverständlich die ideale Plattform sein – man bekommt bei den ganzen schwerpunktmäßigen Beiträgen zu Entwicklung von und mit KI fast das Gefühl, dass das Betriebssystem komplett entkoppelt und irrelevant geworden ist. Microsoft kündigt dafür jedoch eine neue Entwickler-Konfiguration an: Die soll flexiblere und reibungslosere Shell- und Terminal-Erfahrungen liefern. Außerdem lassen sich Agents in lokale Sandboxen verfrachten: Microsoft spricht davon, Windows zu einer nativen Agent-Runtime zu machen. Als Vorschauversion gibt es die Microsoft Execution Containers (MXC) genannten Sandboxen, die bis Enterprise-tauglich sein sollen – etwa, um OpenClaw mit „Sicherheitsbeschränkungen“ auszuführen.
Die Vorschau der GitHub-Copilot-App soll agentische Entwicklung zur nativen Desktop-Erfahrung für eine viel weiterreichende Zielgruppe machen: Interessierte sollen einfach eine Idee oder ein existierendes Problem beschreiben, und schon legt die App los und lässt mehrere Agentensitzungen parallel laufen und behält die Änderungen im Blick. Jede Session setzt dabei auf git-Trees, sodass die Teile getrennt bleiben. Die Entwickler behalten die Kontrolle, während Copilot sich um die Ausführung kümmert. Entwickler sollen Apps so in Sekunden erstellen können.
Weiterlesen nach der Anzeige
Auch für Zugriff auf Datenbanken und Dienste hat Microsoft ein Backend-as-a-Service im Angebot, die Vorschau auf die Plattform Project Rayfin. Das soll die Entwicklung vom Prototypen bis zum Produktionslevel ermöglichen, ohne dass Entwickler sich um die Verwaltung von Infrastruktur kümmern müssten.
Neue KI-Hardware hat Microsoft ebenfalls zu bieten: Das Surface RTX Spark ist eine Developer-Box für dauerhafte Workloads. Training, agentische KI-Pipelines und lokales Finetuning von Modellen, all das soll sie mit einer Last von 100 Watt erledigen. Darin werkelt dem Namen entsprechend eine Nvidia RTX Spark mit bis zu einem Petaflop KI-Rechenleistung (ungenannte Präzision) und 128 GByte an RAM (unified, also mit Prozessor geteilt). Die Maschine soll Modelle mit bis zu 120 Milliarden Parameter lokal laufen lassen können.
Windows Subsystem for Linux 2 (WSL2) mit nativem GPU-Passthrough sowie vollem CUDA-Support liefert Microsoft vorkonfiguriert mit. Zudem sollen Visual Studio Code, GitHub Copilot und zahlreiche weitere beliebte Dev-Tools vorinstalliert sein. Kleiner Haken: Diese Entwicklerkiste soll erst später im Jahr verfügbar werden – und vorerst auch nur in den Vereinigten Staaten.
(dmk)
Entwicklung & Code
Surface RTX Spark Dev Box: Microsofts „Traummaschine”
Microsoft kündigt eine Desktop-Umgebung für die Softwareentwicklung mit Künstlicher Intelligenz an. Nachdem der kleine Ausblick auf das kommende Surface Laptop Ultra auf der Computex bereits für Aufsehen gesorgt hat, legt Microsoft jetzt mit einer Desktop-Variante auf Grundlage des neuen RTX Spark von Nvidia nach: Surface RTX Spark Dev Box.
Weiterlesen nach der Anzeige
„Traummaschine für Entwickler“
„Wir haben uns gesagt, lass uns diese Architektur bis an die Grenzen ausreizen und eine Maschine für Entwickler bauen”, sagte Microsoft-CEO Satya Nadella am Mittwochabend zum Auftakt der Entwicklerkonferenz Build in San Francisco. „Das ist wirklich eine Traummaschine.”
Die Traummaschine stellt sich einem kurzen Video in einem schwarzen Gehäuse mit einer Gitterstruktur vor. Über die inneren Werte verrät Microsoft bisher noch nicht viel. „Sie hat 1 Petaflop Rechenkapazität für KI und verfügt über 20 CPU-Kerne sowie 128 Gigabyte geteilten Speicher”, verriet Nadella. Die Dev Box kommt mit Windows 11 Pro und diversen vorinstallierten Entwicklerwerkzeugen.

(Bild: Microsoft)
Die Surface RTX Spark Dev Box soll wie das Surface Laptop Ultra im Herbst erhältlich sein. Weitere Einzelheiten wie mögliche Modellvarianten oder Preise gibt es noch nicht. Interessenten können sich bei Microsoft auf eine Warteliste eintragen lassen, sagte Nadella.
Grep kommt ins Terminal
Weiterlesen nach der Anzeige
Abgesehen von schicker Hardware will Microsoft den Entwicklern auch die Arbeit mit Windows erleichtern – und den Umstieg, wie Nadella bemerkte. Über 70 klassische Kommandozeilen-Tools aus der Linux-Welt wie grep halten Einzug ins Terminal. Auch einige Anwendungen wie Homebrew, die man von macOS kennt, sind künftig im Terminal verfügbar. Das Terminal in Windows werde mit eingebautem Copilot zu einem „intelligenten Terminal”, so Nadella.
(vbr)
Entwicklung & Code
Rust Coreutils 0.9.0: weniger unsafe, mehr Tempo
Die Entwickler von uutils/coreutils haben Version 0.9.0 ihrer in Rust geschriebenen Neuimplementierung der GNU Core Utilities veröffentlicht. Das Release bringt vor allem Sicherheitsverbesserungen nach einem externen Audit, weniger unsafe-Code und schnellere I/O-Pfade durch Zero-Copy-Verfahren. Zudem erweitert die neue Version die Unterstützung für WebAssembly, Windows und Cygwin.
Weiterlesen nach der Anzeige
uutils/coreutils setzt die klassischen GNU Core Utilities in Rust neu um. Das Projekt liefert zahlreiche Standardwerkzeuge von Unix- und Linux-Systemen, darunter ls, cp, mv, rm, cat und sort. Ziel ist eine möglichst hohe Kompatibilität zu den GNU-Pendants – bei gleichzeitig besserer Speichersicherheit und Wartbarkeit durch Rust.
Sicherheitsaudit deckt TOCTOU-Schwachstellen auf
Im Mittelpunkt des Releases stehen Sicherheitsverbesserungen, die auf ein Audit der Firma Zellic zurückgehen. Die Prüfer fanden vor allem TOCTOU-Schwachstellen (Time of Check, Time of Use) und Probleme bei Randfällen im Dateisystem. Bei TOCTOU-Lücken handelt es sich um Race Conditions: Der Zustand einer Datei kann sich zwischen einer Prüfung und ihrer tatsächlichen Verwendung ändern – und genau diese Lücke lässt sich ausnutzen.
Die Maintainer betonen, dass die dabei vergebenen 44 CVEs keine klassischen Speicherfehler beschreiben. Das Audit habe vielmehr Verhaltensunterschiede zu GNU Coreutils aufgedeckt, die in bestimmten Situationen sicherheitsrelevant werden können. Version 0.9.0 schließt nach Projektangaben einen Großteil dieser Befunde.
Dafür führt das Projekt ein neues Modul namens uucore::safe_copy ein, das Kopiervorgänge gegen TOCTOU-Angriffe absichert. Auch die rekursiven Operationen von cp, mv und chmod erhalten entsprechende Schutzmechanismen. rm geht robuster mit problematischen Pfadangaben wie . und .. um. nohup legt die Datei nohup.out nun mit den restriktiven Zugriffsrechten 0600 an. Und chroot löst Benutzer- und Gruppen-IDs bereits auf, bevor es in die neue Wurzelumgebung wechselt.
Weniger unsafe-Code, Umstieg auf rustix
Parallel dazu reduziert das Team weiter den Anteil an unsafe-Code. Zahlreiche Stellen in Werkzeugen, Tests und gemeinsamen Bibliotheken kommen jetzt ohne unsichere Speicher- oder Systemzugriffe aus. In vielen Bereichen ersetzt das Projekt zudem die bisher genutzten Bibliotheken nix und libc durch rustix. Diese stellt Systemaufrufe über stärker typisierte Rust-Schnittstellen bereit und vermeidet so eine Reihe typischer Fehlerquellen. Die Umstellung betrifft unter anderem id, tr, timeout, sort, wc, tail, cp und who.
Weiterlesen nach der Anzeige
Für mehr Tempo sorgen neue Zero-Copy-Datenpfade unter Linux. Mehrere Werkzeuge nutzen jetzt verstärkt die Syscalls splice(), tee() und pipe(), um Daten direkt zwischen Kernel-Puffern zu übertragen. Da die Daten dabei nicht mehr durch den Adressraum des Prozesses wandern, sinken Speicherzugriffe und CPU-Last. Profitieren sollen unter anderem cat, wc, head, tail, cp, tee, yes und unexpand. Für unexpand nennen die Entwickler einen Geschwindigkeitsgewinn von rund 7,5 Prozent. Auch cp und tee arbeiten beim Verarbeiten von Pipe-Daten spürbar schneller.
GNU-Kompatibilität: neue Referenz, mehr Tests
An der GNU-Kompatibilität arbeitet das Projekt weiter intensiv. Als Referenz dient nun GNU Coreutils 9.11 statt 9.10. Die Zahl der fehlschlagenden Tests in der GNU-Testsuite steigt dadurch von 21 auf 56 – laut Projekt jedoch ohne Regressionen. Die Ursache liegt in 25 neuen Tests, die GNU der Suite hinzugefügt hat und die uutils noch nicht vollständig besteht. Weitere Kompatibilitätskorrekturen betreffen numfmt, date, tr, cksum, factor, head, stat und sort.
Besonders umfangreich fallen die Änderungen an numfmt aus. Das Werkzeug formatiert numerische Werte jetzt präziser, weist wissenschaftliche Notation zurück und beachtet die Locale-Einstellung LC_NUMERIC für das Dezimaltrennzeichen. Hinzu kommen Anpassungen bei Rundung, Vorzeichen und der Verarbeitung mehrbytiger Suffixe.
Auch ls erhält mehrere Korrekturen und Erweiterungen. Sie betreffen symbolische Links, die Versionssortierung und die rekursive Verzeichnisauflistung. Zudem haben die Entwickler den Code so umgebaut, dass andere Programme ls als Bibliothek einbinden können, ohne dessen Ausgabe zwingend auf die Standardausgabe umzuleiten. Als Beispiel nennt das Projekt die Shell Nushell.
Mehr Plattformen, mehr Locales
Beim Plattformsupport legt Version 0.9.0 ebenfalls zu. Die Werkzeuge ln, dd, mktemp und tty laufen jetzt auch unter dem WebAssembly System Interface (WASI), das WebAssembly-Anwendungen außerhalb des Browsers standardisierten Zugriff auf Betriebssystemfunktionen erlaubt. Daneben verbessern die Entwickler die Unterstützung für Windows, MSYS2 und Cygwin und arbeiten weiter an der Portierung auf OpenBSD. Schließlich berücksichtigen jetzt auch numfmt und du regionale Einstellungen für das Dezimaltrennzeichen über LC_NUMERIC.
Alle Details zum Update finden sich in den Release Notes auf der GitHub-Projektseite.
(fo)
Entwicklung & Code
C++26-Reflexion zur Kompilierungszeit | heise online
Im heutigen Beitrag meines C++-Blogs möchte ich auf die statische Reflexion in C++26 eingehen. Einer der großen Vorteile von Reflexion ist, dass wir die neue Funktion bereits ausprobieren können, da mit Clang ein Compiler verfügbar ist, der alle Facetten implementiert. Und auch der jüngst erschienene GCC 16 implementiert das Feature bereits.
Weiterlesen nach der Anzeige

Andreas Fertig ist erfahrener C++-Trainer und Berater, der weltweit Präsenz- sowie Remote-Kurse anbietet. Er engagiert sich im C++-Standardisierungskomitee und spricht regelmäßig auf internationalen Konferenzen. Mit C++ Insights ( hat er ein international anerkanntes Tool entwickelt, das C++-Programmierenden hilft, C++ noch besser zu verstehen.
Anhand meiner typischen Anwendungsfälle habe ich untersucht, welche Aufgaben sich mit Reflexion besser lösen lassen. Eine Aufgabe, die mich den größten Teil meiner Karriere beschäftigt hat, war das Lesen und Schreiben von Daten, die über eine Netzwerkverbindung kamen. Die Definition von „Netzwerk“ war zu verschiedenen Zeiten unterschiedlich. Gemeinsam war jedoch, dass alles, was gesendet wurde, in Netzwerk-Byte-Reihenfolge (Big-Endian) verschickt wurde, und alles, was empfangen wurde, ebenfalls in Netzwerk-Byte-Reihenfolge ankam. Für manche Systeme machte das keinen Unterschied, da sie bereits Big-Endian-Maschinen waren. Aber nicht immer. Vor allem ARM setzte auf Little-Endian. Bei einem Teil der Systeme mussten die Daten beim Empfangen oder Senden daher byteweise vertauscht werden.
Wie tauscht man Daten?
Das Problem hier (war), wie tauscht man die Daten? Jeder Datentyp, der größer als ein Byte ist, muss jedes Mal getauscht werden. C++23 hat uns std::byteswap gegeben, wodurch POSIX-Funktionen wie htons überflüssig geworden sind. Das bedeutet zumindest eine Verbesserung im Hinblick auf Sicherheit.
Fangen wir mit einem Beispiel an. Der folgende Code zeigt die Datenstrukturen, die ich heute verwende.
enum class Color16 : uint16_t
{
};
struct RGB48 {
Color16 red;
Color16 green;
Color16 blue;
auto operator<=>(const RGB48&) const = default;
};
struct LEDState {
bool state;
RGB48 rgbColor;
auto operator<=>(const LEDState&) const = default;
};
struct LEDStateMessage {
uint32_t messageId;
LEDState state;
auto operator<=>(const LEDStateMessage&) const = default;
};
Wie du sehen kannst, ist die letzte Struktur LEDStateMessage später die Wurzel. Diese Struktur enthält eine Struktur, die wiederum eine Struktur enthält. Wir gehen es heute also rekursiv an.
Weiterlesen nach der Anzeige
Alle structs verfügen über einen Dreiwege-Vergleichsoperator – das erleichtert die Überprüfung.
Was ich erreichen möchte, sieht in etwa so aus:
LEDStateMessage msg{.messageId = 3,
.state{.state = true,
.rgbColor{.red = Color16{0x5u},
.green = Color16{0x28u},
.blue = Color16{0x40u}}}};
Serialize(msg);
Die Daten sollten ausgetauscht oder besser noch an Ort und Stelle serialisiert werden. Ich gehe von einem System mit Speicherbeschränkungen aus, bei dem ich es mir nicht leisten kann, doppelt so viel Speicher zu verbrauchen.
Denke jetzt mal einen Moment darüber nach, wie viel Mühe du dir in der Vergangenheit gegeben hast, damit Serialize funktioniert. Ich für meinen Teil kann sagen, dass es mich viele Stunden gekostet hat.
Reflexion zur Rettung
Bist du bereit? Okay, hier kommt es:
template
requires(not std::is_pointer_v) and std::is_trivially_copyable_v
constexpr void Serialize(T& data)
{
if constexpr(std::is_array_v) { // #A
for(int i{}; i < std::size(data); ++i) { Serialize(data[i]); }
} else if constexpr(std::is_enum_v) { // #B
data = static_cast(std::byteswap(std::to_underlying(data)));
} else if constexpr(not std::is_class_v) { // #C
data = std::byteswap(data);
} else { // #D
static constexpr auto members =
std::define_static_array(std::meta::nonstatic_data_members_of(
^^T, std::meta::access_context::current()));
template for(constexpr auto& mem : members) { Serialize(data.[:mem:]); }
}
}
Die Implementierung von Serialize besteht aus vier Teilen. In Abschnitt #A prüft Serialize, ob es sich um ein Array handelt. Wenn der Datentyp passt, ruft die Implementierung Serialize für jedes Element des Arrays auf.
Als Nächstes prüft die Implementierung in #B, ob der Datentyp ein enum ist. In diesem Fall wird C++23s std::to_underlying zusammen mit std::byteswap verwendet, um die Bytes tatsächlich zu vertauschen.
Nun wird in #C, falls dieser Datentyp kein Klassentyp ist, std::byteswap auf die Daten angewendet.
So weit, so gut. Bisher ist das alles generischer Code, den du schon vor C++26 so schreiben konntest. Der knifflige Teil sind die Datenelemente von Klassentypen. Genau das wird in #D behandelt.
Dank der Reflexion-Fähigkeiten durchläuft die Implementierung alle Datenelemente der Klasse und ruft für jedes davon Serialize auf. Et voilà, ein hervorragender erster Entwurf einer generischen Serialisierungsfunktion.
(Matthias Parbel)
-
Entwicklung & Codevor 3 MonatenCommunity-Protest erfolgreich: Galera bleibt Open Source in MariaDB
-
Künstliche Intelligenzvor 3 MonatenBlade‑Battery 2.0 und Flash-Charger: BYD beschleunigt Laden weiter
-
Künstliche Intelligenzvor 3 Monaten
Top 10: Der beste Luftgütesensor im Test – CO₂, Schadstoffe & Schimmel im Blick
-
Apps & Mobile Entwicklungvor 3 MonatenMähroboter ohne Begrenzungsdraht für Gärten mit bis zu 300 m²
-
Künstliche Intelligenzvor 3 MonateniPhone Fold Leak: Apple spart sich wohl iPad‑Multitasking
-
Künstliche Intelligenzvor 2 Monaten
JBL Bar 1300MK2 im Test: Soundbar mit Dolby Atmos, starkem Bass und Akku‑Rears
-
Künstliche Intelligenzvor 3 MonatenPetra‑AI: KI soll Frauen in der Perimenopause unterstützen
-
Social Mediavor 2 MonatenVon Kennzeichnung bis Plattformpflichten: Was die EU-Regeln für Influencer Marketing bedeuten – Katy Link im AllSocial Interview
