Category: Entwicklung

GPU Kill: Multiplattform-GPU-Management-CLI

2025-09-21
GPU Kill: Multiplattform-GPU-Management-CLI

GPU Kill ist ein Kommandozeilen-Tool zum Verwalten von GPUs auf NVIDIA-, AMD-, Intel- und Apple-Silicon-Systemen. Überwachen, steuern und sichern Sie Ihre GPU-Infrastruktur mit Leichtigkeit. Funktionen umfassen Echtzeit-Überwachung der GPU-Auslastung, Beenden festgefahrener Prozesse, Erkennung von Krypto-Minern und verdächtigen Aktivitäten, Durchsetzung von Richtlinien zur Verhinderung von Ressourcenmissbrauch, ein Web-Dashboard für die Cluster-Überwachung, Fernverwaltung von GPUs auf mehreren Servern und Integration mit einem KI-Assistenten. Unterstützt Linux, macOS und Windows. Einfache Kommandozeilen-Schnittstelle und ein Web-Dashboard bieten eine benutzerfreundliche Verwaltung.

Entwicklung GPU-Management

Mini JSON-Parser in C99: Null-Allocation, ~150 Zeilen

2025-09-21
Mini JSON-Parser in C99: Null-Allocation, ~150 Zeilen

Eine minimale JSON-Parsing-Bibliothek in C99 mit nur etwa 150 Zeilen Code! Sie zeichnet sich durch Null-Allocation für die Speichereffizienz und einen vereinfachten Zustand aus. Fehlermeldungen enthalten präzise Zeilen- und Spaltennummern. Das Parsen von Zahlen und Zeichenketten wird dem Benutzer überlassen, was eine Anpassung mit Funktionen wie `strtod` und `atoi` ermöglicht. Ein einfaches Beispiel zeigt, wie ein Rechteck aus einem JSON-String in eine `Rect`-Struktur geladen wird. Dieses Projekt ist freie und unbeschränkte Software, die gemeinfrei veröffentlicht wurde.

Entwicklung Null-Allocation

arXivLabs: Experimentelle Projekte mit Community-Mitwirkenden

2025-09-21
arXivLabs: Experimentelle Projekte mit Community-Mitwirkenden

arXivLabs ist ein Framework, das es Mitwirkenden ermöglicht, neue arXiv-Funktionen direkt auf der Website zu entwickeln und zu teilen. Einzelpersonen und Organisationen, die mit arXivLabs zusammenarbeiten, haben unsere Werte von Offenheit, Community, Exzellenz und Datenschutz der Benutzerdaten angenommen. arXiv engagiert sich für diese Werte und arbeitet nur mit Partnern zusammen, die diese teilen. Haben Sie eine Idee für ein Projekt, das der arXiv-Community einen Mehrwert bietet? Erfahren Sie mehr über arXivLabs.

Entwicklung

Microsofts DXGI-Debugging: Mein Spiel versehentlich auf der schwarzen Liste

2025-09-21
Microsofts DXGI-Debugging: Mein Spiel versehentlich auf der schwarzen Liste

Beim Portieren von Space Station 14 auf ARM64 Windows stieß der Entwickler auf einen seltsamen Absturz. Das Debugging ergab, dass das Problem von einer Microsoft DXGI-Optimierung für Fenster-Spiele herrührte, die den "flip"-Modus erzwingt und zu illegalen Instruktionen mit GetDC() unter bestimmten Umständen führte (die ausführbare Datei des Spiels hieß SS14.Loader.exe). Es stellte sich heraus, dass es sich um einen Bug in der Microsoft ARM64 DXGI-Optimierung handelte, der nur für bestimmte Spielnamen aktiviert war, und Space Station 14 war unglücklicherweise auf dieser Liste. Der Entwickler vermutet, dass dieser Bug aufgrund der geringen Anzahl nativer ARM64 Windows-Spiele unbemerkt blieb. Das Problem wurde an Microsoft gemeldet, und die Unterstützung für ARM64 Windows wird vorübergehend ausgesetzt, bis der Bug behoben ist.

Entwicklung

Vec: Ein schnelles und speichersicheres dynamisches Array für C

2025-09-21
Vec: Ein schnelles und speichersicheres dynamisches Array für C

Vec ist ein generisches, schnelles und speichersicheres dynamisches Array für C. Es verwendet zusammenhängenden Speicher, wächst geometrisch (×2) für amortisierte O(1) push-Operationen und bietet eine methodenbasierte API für ein objektorientiertes Gefühl. Die Bibliothek priorisiert Sicherheit mit Überlaufschutz, Grenzen überprüfenden Zugriffsfunktionen und wohldefiniertem Verhalten für Grenzfälle. Ihr Design balanciert Leistung und Sicherheit und bietet eine saubere und effiziente Schnittstelle.

Entwicklung

Open-Source-Software-Supply-Chain-Sicherheit: Eine Herausforderung seit einem halben Jahrhundert

2025-09-21

Von der Sicherheitsüberprüfung des Honeywell Multics-Systems von 1974 mit den Bedenken hinsichtlich „Hintertüren“ bis zum XZ-Angriff auf Debian-Systeme im Jahr 2024 bleibt die Sicherheit der Open-Source-Software-Supply-Chain ein anhaltendes Problem. Dieser Artikel untersucht die Komplexität des Problems, das über einfache Abhängigkeitsgraphen hinausgeht und alle Phasen der Softwareentwicklung und -verteilung umfasst, einschließlich menschlicher Faktoren. Er schlägt Lösungen wie Software-Authentifizierung, reproduzierbare Builds, schnelle Erkennung und Behebung von Schwachstellen und die Verwendung sichererer Programmiersprachen vor. Vor allem betont er die Bedeutung der Finanzierung der Open-Source-Entwicklung, da unzureichende Finanzierung Projekte anfällig für böswillige Übernahmen macht. Der XZ-Angriff dient als deutliche Warnung: scheinbar harmlose „kostenlose Hilfe“ kann erhebliche Risiken verbergen.

Entwicklung XZ-Angriff

Die Gefahren des Gehorsams: Ein Programmierer im Fegefeuer der funktionalen Programmierung

2025-09-21

Ein Programmierer, nachdem ein Kollege sich über seinen funktionalen Programmierstil beschwert hat, bekommt von seinem Manager ein Verbot, diesen Stil zu verwenden. Um seinen Job zu behalten, schreibt er widerwillig eine einfache Funktion zum Auflisten von Kollegen um, und zwar mit imperativer Programmierung. Trotz seiner Bemühungen, funktionale Paradigmen zu vermeiden, kämpft er damit, sich vollständig daran zu halten, begegnet weiteren Herausforderungen bei der Code-Review und muss letztendlich seinen Manager um Rat fragen. Diese humorvolle Anekdote unterstreicht die Absurdität willkürlicher technischer Entscheidungen am Arbeitsplatz.

Bluefin LTS und GDX: Die Herrschaft von Achillobator beginnt

2025-09-21
Bluefin LTS und GDX: Die Herrschaft von Achillobator beginnt

Nach neunmonatiger Entwicklung sind Bluefin LTS (Long Term Support) und Bluefin GDX (KI-Workstation) nun allgemein verfügbar. Bluefin LTS, basierend auf CentOS Stream 10, bietet einen stabilen GNOME 48-Desktop mit langfristigem Support und einen optionalen Hardware Enablement-Branch (lts-hwe) für neuere Kernel. Bluefin GDX richtet sich an KI/ML-Profis und integriert Nvidia-Treiber und CUDA. Es wird mit Red Hat an Open-Source-KI/ML-Tools zusammengearbeitet. Beide Versionen verfügen über eine verbesserte Installation und Secure Boot-Unterstützung für ein stabiles und effizientes Desktop-Erlebnis.

Entwicklung KI-Workstation

PostgreSQL 18 Beta: UUIDv7 verbessert Primärschlüssel in Datenbanken

2025-09-21
PostgreSQL 18 Beta: UUIDv7 verbessert Primärschlüssel in Datenbanken

PostgreSQL 18 Beta ist da, und das mit Abstand interessanteste Feature ist die native Unterstützung von UUIDv7. UUIDv7, eine zeitbasierte UUID-Variante, behebt die Sortier- und Indexlokalitätsprobleme, die bei traditionellen UUIDs als Datenbankprimärkeys auftreten. Es bietet eine überzeugende Kombination aus global eindeutigen Identifikatoren und zeitlicher Ordnung, was es ideal für verteilte Datenbanken macht, die hohe Leistung und Skalierbarkeit benötigen. Weitere Leistungsverbesserungen in PostgreSQL 18 umfassen asynchrone E/A und Indexoptimierungen.

Entwicklung

Hartnäckiger Bug im macOS APFS Festplattendienstprogramm: Ein Workaround

2025-09-21
Hartnäckiger Bug im macOS APFS Festplattendienstprogramm: Ein Workaround

Das Festplattendienstprogramm von macOS Monterey 12.0.1 leidet weiterhin unter einem hartnäckigen Bug: Das Aushängen von Volumes oder Containern schlägt beim Reparieren von APFS-Festplatten fehl. Dieser Artikel bietet Workarounds, darunter die Verwendung des Festplattendienstprogramms im Wiederherstellungsmodus oder die direkte Verwendung des Befehlszeilen-Tools `fsck_apfs` zum Überprüfen und Reparieren von APFS-Volumes und -Containern. Der Artikel beschreibt detailliert die Verwendung von `fsck_apfs`, einschließlich der Prüf- und Reparatur-Optionen sowie den Umgang mit verschlüsselten Volumes.

Kalibrierung: Kampf gegen Übervereinfachung und spärliche Daten

2025-09-21
Kalibrierung: Kampf gegen Übervereinfachung und spärliche Daten

Dieser Artikel behandelt ein häufiges Problem bei der Modellkalibrierung: Die isotone Regression vereinfacht aufgrund der viel kleineren Kalibrierungsdatenmenge im Vergleich zum ursprünglichen Trainingsdatensatz die Wahrscheinlichkeitsverteilung übermäßig und verliert dabei die feinen Unterschiede des Modells. Der Artikel analysiert dieses Phänomen der „durch Datensparsamkeit induzierten Glättung“ und schlägt mehrere Diagnosemethoden vor, um zwischen einer berechtigten Vereinfachung aufgrund von Rauschen und einer Übervereinfachung aufgrund von Datenbeschränkungen zu unterscheiden. Schließlich wird das Calibre-Paket vorgestellt, das durch die Lockerung isotoner Einschränkungen oder die Verwendung glatter monotoner Modelle die Kalibrierungsgenauigkeit beibehält und gleichzeitig so viel wie möglich von der Diskriminierungsfähigkeit des ursprünglichen Modells bewahrt.

KI-Codierung: Verbesserer für Experten, kein Ersatz

2025-09-21

Die Rolle von KI beim Codieren ist weit davon entfernt, Programmierer zu ersetzen; stattdessen wirkt sie als Effizienzsteigerer für erfahrene Entwickler. KI zeichnet sich durch Standardcode, Automatisierung repetitiver Aufgaben und schnelle Iteration aus, bleibt aber bei Code-Review, Architekturdesign, Codequalität und Sicherheit hinter den Erwartungen zurück. Daher ist die derzeit effektivste Kombination "Senior-Entwickler + KI", nicht die ursprünglich angedachte "Junior-Entwickler + KI". Die besten Anwendungen von KI liegen in schnellem Prototyping, Automatisierung von Routineaufgaben, multidisziplinärer Arbeit und einfachen Funktionstests. Obwohl KI ein immenses Potenzial im Codieren hat, ist die menschliche Überprüfung des generierten Codes weiterhin entscheidend, und die Erwartungen sollten der Realität entsprechen.

Entwicklung

Der Aufstieg der KI-Code-Bereinigungswirtschaft

2025-09-21

Die weit verbreitete Nutzung von KI-gestützter Programmierung hat eine große Herausforderung mit sich gebracht: das Chaos des „Vibe Coding“. Während KI Code effizient generiert, mangelt es ihr oft an architektonischer Solidität, Sicherheitsaspekten und Verständnis des Systemkontexts, was zu umfangreichen Code-Refactorings führt. Ein neuer Beruf ist entstanden – der KI-Code-Reiniger –, der sich auf die Behebung von minderwertigem, KI-generiertem Code spezialisiert und hohe Gebühren verlangt. Marktforschungen zeigen, dass die meisten Unternehmens-Softwareentwickler bis 2028 KI-Code-Assistenten nutzen werden, was eine enorme Wachstumschance für den Markt der KI-Code-Bereinigung bedeutet. Die Zukunft der Softwareentwicklung wird wahrscheinlich darin bestehen, dass die KI die anfängliche Implementierung übernimmt, während der Mensch Architektur, Tests und Bereinigung übernimmt. Ingenieure, die sich mit KI-Code-Bereinigung auskennen, werden sehr gefragt sein.

Entwicklung

GPU-beschleunigte RNNs: Eine CUDA-Implementierung von minGRU und minLSTM

2025-09-21

Dieser Blogbeitrag beschreibt ein Abschlussprojekt für den Kurs CS179: GPU-Programmierung am Caltech, das die Behauptungen des Artikels „Were RNNs All We Needed?“ von Feng et al. überprüft. Das Projekt implementierte vereinfachte minGRU- und minLSTM-Modelle und einen benutzerdefinierten CUDA-Parallel-Scan-Algorithmus. Die Ergebnisse zeigten signifikante GPU-Beschleunigungen für lange Sequenzen und bestätigten die zentrale Erkenntnis des Artikels, dass RNN-Rekurrenz parallelisiert werden kann. Bei kurzen Sequenzen jedoch hob die Überlastung des Starts von CUDA-Kerneln einige Leistungsgewinne auf. Das Profiling des GPU-Kernels ergab, dass die letzte Projektionsschicht der Hauptengpass ist, was auf eine weitere Optimierung durch einen einzigen cuBLAS-GEMM-Aufruf hindeutet.

Entwicklung parallele Algorithmen

Heterogene Daten in einer statisch typisierten Spiel-Skriptsprache behandeln

2025-09-21

Der Autor stieß bei der Entwicklung einer statisch typisierten Spiel-Skriptsprache auf Herausforderungen bei der Behandlung heterogener Daten. Der Artikel untersucht verschiedene Lösungsansätze aus anderen Programmiersprachen, darunter Null, Variantentypen, unmarkierte Unions, Summentypen und Subtyping. Der Autor entschied sich letztendlich für einen Ansatz, der den Variant Records in Pascal ähnelt, und findet einen Ausgleich zwischen prägnanter Syntax und Laufzeit-Typprüfung. Dies vermeidet die Komplexität von Flow-Typing und führt zu einer verständlicheren und benutzerfreundlicheren Sprache. Es ist ein cleveres Design, das statische Typsicherheit und Benutzerfreundlichkeit in Einklang bringt und eine bequemere Skriptsprache für die Spieleentwicklung bietet.

Entwicklung

Die Inflation von Bibliotheken, die Randfälle priorisieren: Die Abhängigkeitshölle von npm

2025-09-21

Dieser Artikel untersucht die Verbreitung von überentwickelten Bibliotheken im npm-Ökosystem. Viele Bibliotheken priorisieren die Behandlung seltener Randfälle, was zu übermäßig granularen Abhängigkeitsbäumen führt. Der Autor verwendet das Beispiel von `is-number`, das verschiedene zahlenähnliche Eingaben verarbeitet, obwohl die meisten Anwendungen nur den Typ `number` verarbeiten müssen. Die vorgeschlagene Lösung besteht darin, dass Bibliotheken sich auf gängige Anwendungsfälle konzentrieren, vernünftige Annahmen über die Eingabetypen treffen und die Behandlung von Randfällen Projekten überlassen, die sie benötigen. Dies vereinfacht den Code, verbessert die Leistung und reduziert unnötige Abhängigkeiten.

Entwicklung

Die algorithmische Herausforderung der effizienten Wortschatzerweiterung

2025-09-21

Eine neue Sprache effizient zu lernen, erfordert eine schnelle Erweiterung des Wortschatzes. Dieser Artikel untersucht das Problem der Auswahl von Büchern, um die Effizienz des Wortschatzlernens zu maximieren. Während die Auswahl eines einzelnen Buches relativ einfach ist, wird die Auswahl mehrerer Bücher zur Abdeckung eines größeren Wortschatzes zu einem NP-schweren Problem, was bedeutet, dass die Rechenzeit für exakte Lösungen exponentiell mit der Anzahl der Bücher wächst. Glücklicherweise gehört dieses Problem zur Klasse der submodularen Probleme, sodass Approximationsalgorithmen verwendet werden können, um innerhalb einer bestimmten Genauigkeit nahezu optimale Lösungen zu finden. Der Artikel stellt gierige Algorithmen und deren Verbesserungen vor und empfiehlt die effiziente Python-Bibliothek submodlib.

Entwicklung Wortschatzlernen

Ein Microsoft-Entwickler und seine Begegnung mit Raymond Chen: Präprozessor und BitLocker-Fehlermeldungen

2025-09-21
Ein Microsoft-Entwickler und seine Begegnung mit Raymond Chen: Präprozessor und BitLocker-Fehlermeldungen

2009 suchte ein junger Microsoft-Entwickler von BitLocker nach einer Möglichkeit, C++-Konstantenwerte in .mc-Dateien zu referenzieren, um die BitLocker-Fehlermeldungen zu verbessern. Er wandte sich an eine interne Mailingliste und erhielt eine kurze, aber effektive Antwort von Raymond Chen: den Präprozessor zu verwenden. Aus Angst, das komplexe Windows-Buildsystem zu beschädigen, gab der Entwickler den Ansatz jedoch letztendlich auf. Jahre später reflektiert er diese Erfahrung und hebt die Schwächen der internen Tools von Microsoft und seine eigene Vermeidung komplexer Buildsysteme hervor.

Entwicklung

Bazel-Caching, Remote Execution und glibc-Versionskonflikt führen zu Produktionsabsturz

2025-09-21
Bazel-Caching, Remote Execution und glibc-Versionskonflikt führen zu Produktionsabsturz

Dieser Artikel beschreibt einen Produktionsabsturz, verursacht durch die Interaktion von Bazel-Caching, Remote Execution und unterschiedlichen glibc-Versionen in verschiedenen Umgebungen. Ein Entwickler baut und testet eine Änderung lokal, CI nutzt den Cache zum Erstellen eines Release-Builds, aber die Bereitstellung in der Produktion schlägt aufgrund einer fehlenden 'GLIBC_2.28'-Version fehl. Der Artikel analysiert, wie glibc-Versionsunterschiede die Reproduzierbarkeit von Builds beeinträchtigen und präsentiert Lösungen: Ein schneller Hack beinhaltet das Erfassen lokaler und entfernter glibc-Versionen und die Auswahl der höheren Version für die C++-Toolchain; eine robustere Lösung beschränkt das Schreiben in den Action-Cache und erzwingt Builds auf Remote-Executors; die ultimative Lösung verwendet Sysroots, installiert mehrere glibc-Versionen in allen Umgebungen und gibt explizit an, welche zu verwenden ist. Der Artikel betont die Wichtigkeit reproduzierbarer Builds und empfiehlt Lösungen je nach Kontext.

Vom Einkern- zum Mehrkernprozessor: Die Entwicklung der parallelen Verarbeitung in macOS

2025-09-20
Vom Einkern- zum Mehrkernprozessor: Die Entwicklung der parallelen Verarbeitung in macOS

Der ursprüngliche 128-KB-Mac von 1984 verfügte über einen einzelnen 8-MHz-Motorola-68000-Prozessor, der nur eine App gleichzeitig ausführen konnte. Heutige Macs hingegen bewältigen problemlos mehrere umfangreiche Apps gleichzeitig, neben Time-Machine-Backups und anderen Hintergrundprozessen. Dieser Artikel beschreibt diese Entwicklung, von den Anfängen des Single-Tasking bis zur Einführung von Switcher und MultiFinder, dem Sprung zu präemptivem Multitasking und Multithreading in Mac OS X und den Leistungsoptimierungen durch Grand Central Dispatch (GCD). Der Weg führt zur effizienten Verwaltung von bis zu 32 CPU-Kernen und zeigt Apples unermüdliches Streben nach Leistungssteigerungen in macOS.

Entwicklung Mehrkernprozessor

Lösen eines 25-teiligen Holzpuzzles mit Haskell: Teil I

2025-09-20

Der Autor erhielt ein herausforderndes 3D-Puzzle aus 25 identischen Holzteilen und beschloss, nach mehreren vergeblichen Versuchen, die Leistungsfähigkeit der Programmiersprache Haskell zu nutzen. Dies ist der erste Teil einer zweiteiligen Serie, die sich auf die Modellierung des Problems konzentriert. Der Autor modelliert den Raum als ein 3D-Gitter, wobei Vektoren verwendet werden, um Positionen darzustellen, und Datenstrukturen für ein einzelnes Teil und seine Anordnung im Raum definiert werden. Der Artikel beschreibt detailliert, wie lineare Algebra und Haskell-Funktionen verwendet werden, um Rotationen und Translationen der Teile darzustellen und eine Kandidatenliste aller möglichen Anordnungen zu generieren. Der Artikel endet mit einem Cliffhanger, wobei die Lösung zur Ermittlung der richtigen Anordnung aus den Kandidaten auf den zweiten Teil verschoben wird.

Entwicklung 3D-Puzzle

Linux-Kernel-Performance-Boost: Verbesserte Neustartbare Sequenzen

2025-09-20

Das Feature der neustartbaren Sequenzen im Linux-Kernel, das die Leistung in Thread-Anwendungen verbessern soll, wird immer häufiger verwendet, insbesondere in Verbindung mit neuen Kernel-Funktionen. Dies hat jedoch einige Probleme aufgedeckt. Der Entwickler Thomas Gleixner hat kürzlich den Code verbessert und dabei Performance-Engpässe und historische Probleme behoben. Diese Änderungen verbessern die Effizienz deutlich, könnten aber ABI-Änderungen im User-Space erfordern und bedürfen daher gründlicher Tests zur Sicherstellung der Kompatibilität.

Azure LLM-Modelle: Ein Fall von Leistungsabbau

2025-09-20
Azure LLM-Modelle: Ein Fall von Leistungsabbau

Ein Entwickler, der ein Produkt mit Azure LLMs und Audiomodellen entwickelt, hat einen besorgniserregenden Trend festgestellt: Dieselben Modelle werden im Laufe der Zeit immer schlechter. Bei Verwendung identischer Systemprompts und Nachrichten hat die Genauigkeit der Antworten von GPT-4o-mini und GPT-5-mini/nano deutlich abgenommen. GPT-5 erwies sich, obwohl zunächst als überlegen erwartet, als langsamer und ungenauer als das ältere GPT-4o-mini. Der Entwickler vermutet, dass Microsoft ältere Modelle absichtlich verschlechtert, um Benutzer zu neueren, weniger zuverlässigen Versionen zu drängen. Diese Praxis beeinträchtigt die Benutzererfahrung und könnte Entwickler dazu veranlassen, nach alternativen Plattformen zu suchen.

Entwicklung Modelldegradation

Massive NPM-Paketbereinigung: Ein Weckruf für Entwickler

2025-09-20
Massive NPM-Paketbereinigung: Ein Weckruf für Entwickler

Eine erhebliche Anzahl von npm-Paketen wurde aus dem npm-Repository entfernt, was Komponenten und Tools in verschiedenen Frameworks wie React, Angular und NativeScript betrifft. Die betroffenen Pakete reichen von vollständig entfernten bis hin zu solchen mit behobenen Versionen. Dieses Ereignis dient als Erinnerung für Entwickler, die Wartung und Sicherheit von Abhängigkeiten im Auge zu behalten. Es ist wichtig, die Projektabhängigkeiten zu überprüfen und die notwendigen Maßnahmen zu ergreifen, um Unterbrechungen zu vermeiden. Gründe für die Entfernung können Sicherheitslücken, Wartungsprobleme oder andere Faktoren sein.

Entwicklung Paketentfernung

Warum Sie GitHub für Ihr Open-Source-Projekt verlassen sollten

2025-09-20

Dieser Artikel beleuchtet die problematischen Aspekte der Nutzung von GitHub, einer Plattform im Besitz von Microsoft. Er hebt Probleme wie die eingeschränkte Benutzerkontrolle, ein zentralisiertes Modell, die Telemetrieüberwachung und die Vendor Lock-in durch Funktionen wie GitHub Actions und Copilot hervor. Besonders kritisch sind die umstrittenen Partnerschaften von Microsoft mit der US-Regierung und dem israelischen Militär, darunter die Bereitstellung von Cloud-Diensten für ICE und KI-Technologie für die israelischen Streitkräfte, die zu internen Protesten von Mitarbeitern geführt haben. Der Autor plädiert für die Migration von Open-Source-Projekten zu selbstgehosteten Lösungen wie Forgejo oder Sourcehut, um den Geist und die Unabhängigkeit von Open Source zu bewahren.

Entwicklung

C++-Komitee verwirft Vorschlag für sichere Teilmenge inmitten der Debatte um die Speichersicherheit

2025-09-20
C++-Komitee verwirft Vorschlag für sichere Teilmenge inmitten der Debatte um die Speichersicherheit

Das C++-Standardisierungskomitee hat einen detaillierten Vorschlag für eine streng sichere Teilmenge der Sprache abgelehnt, obwohl die Bedenken hinsichtlich der Speichersicherheit bestehen bleiben. Der Mitautor Sean Baxter führt die Ablehnung auf die Unbeliebtheit des Rust-Sicherheitsmodells im Komitee zurück und bevorzugt stattdessen den Ansatz „Profile“. Obwohl Profile von Persönlichkeiten wie Bjarne Stroustrup unterstützt werden, wird ihre Machbarkeit in Frage gestellt, und ihre Aufnahme in C++26 ist nicht sicher. Die Entscheidung sorgt für Kontroversen, wobei Entwickler vorschlagen, dass der Wechsel zu Rust oder anderen sichereren Sprachen wie Googles experimentellem „Carbon“-Projekt eine bessere Lösung sein könnte.

Entwicklung

Systemd-Service-Einheitseinschränkungen: Eine häufige Ursache für Daemon-Startfehler

2025-09-20

Ein klassisches Problem für Linux-Systemadministratoren ist ein Daemon, der im normalen System nicht startet, aber manuell als root ausgeführt funktioniert. Traditionelle Ursachen sind unvollständige $PATH-Umgebungsvariablen, SELinux und AppArmor. Zunehmend sind Systemd-Service-Einheitseinschränkungen (dokumentiert in systemd.exec) der Übeltäter. Direktiven wie ProtectHome und PrivateTmp können kryptische "Berechtigung verweigert" oder "Datei nicht gefunden" Fehler verursachen, oder sogar indirekte Fehler wie das Blockieren von DNS-Abfragen. Das Entfernen von Einschränkungen aus der .service-Datei des Daemons kann bei der Diagnose helfen, aber zukünftige Daemons können von diesen Einschränkungen abhängen, was die Fehlersuche erschwert.

Entwicklung Daemon

Systemaufrufe: Die versteckten Kosten der Performance

2025-09-20
Systemaufrufe: Die versteckten Kosten der Performance

Dieser Artikel untersucht die Performance-Überlastung von Linux-Systemaufrufen im Detail und zeigt, dass diese weit mehr als nur einfache Kernel-Funktionsaufrufe sind. Systemaufrufe stören die mikroarchitektonischen Optimierungen der CPU, wie z. B. Instruction Pipelining und Branch Prediction, was zu Performance-Einbußen führt, die weit über das hinausgehen, was im Quellcode sichtbar ist. Der Artikel analysiert den Kernel-Code, erklärt die Auswirkungen verschiedener Software- und Hardware-Mitigationen auf die Performance und schlägt Optimierungsstrategien vor, wie z. B. die Verwendung von vDSO, das Caching von Werten, die Optimierung von E/A, Batch-Operationen und das Verschieben von Arbeit in den Kernel, um die Häufigkeit von Systemaufrufen zu reduzieren und die Software-Performance zu verbessern.

Entwicklung

Blitzschnelle kubische Bézier-Easing-Funktionsbibliothek in C++

2025-09-20

Dieser Artikel stellt eine C++20-Ein-Header-Bibliothek vor, die kubische Bézier-Kurven direkt als Easing-Funktionen darstellt und so die Animationsleistung verbessert. Implementiert mit der Template-Klasse `EasingCubicBezier`, bietet die Bibliothek die Modi PRECISE (hohe Genauigkeit) und FAST (hohe Leistung). Benchmark-Tests zeigen, dass dieser Ansatz den Blender-Algorithmus und numerische Lösungen basierend auf der Newton-Raphson-Methode übertrifft und eine höhere Geschwindigkeit und Stabilität bietet, insbesondere für Echtzeit-Animationssysteme. Dies liegt daran, dass der Overhead des Lösens kubischer Polynomgleichungen zur Laufzeit vermieden wird.

Entwicklung Bézierkurven

GitHub Actions: Node.js 20 wird eingestellt, Migration auf Node.js 24

2025-09-20
GitHub Actions: Node.js 20 wird eingestellt, Migration auf Node.js 24

GitHub Actions kündigt das Ende der Unterstützung für Node.js 20 im April 2026 an und plant die Migration aller Actions auf Node.js 24 im Herbst 2025. Die neueste Version des GitHub Runners unterstützt bereits Node.js 24, und Benutzer können es durch Setzen einer Umgebungsvariable vorab testen. Ab dem 4. März 2026 wird Node.js 24 die Standardversion sein. Benutzer können Node.js 20 vorübergehend weiterhin verwenden, indem sie eine Umgebungsvariable setzen, bis es im Sommer vollständig entfernt wird. Beachten Sie, dass Node.js 24 nicht mit macOS 13.4 und niedrigeren Versionen kompatibel ist und keine selbst gehosteten Runner mit ARM32-Architektur unterstützt.

Entwicklung
1 2 4 6 7 8 9 214 215