• Go 1.25 – Nya funktioner, snabbare prestanda och experimentella tekniker

    Go är ett urgammalt strategibrädspel från Kina, spelat med svarta och vita stenar på ett rutnät. Målet är att omringa områden och fånga motståndarens stenar. Det har inget att göra med programmeringsspråket Go. Reglerna är enkla men spelet är djupt och komplext.I Go betyder atari att en sten eller grupp har bara en fri punkt kvar och riskerar att fångas nästa drag. Företaget Atari valde namnet för att det signalerar ett kritiskt och avgörande läge i spelet.

    Go-projektet har släppt version 1.25 av sitt programmeringsspråk, och uppdateringen är full av förbättringar inom både verktyg, kompilator, runtime och standardbibliotek. Som vanligt kommer versionen precis sex månader efter föregångaren, men den här gången introduceras flera spännande nyheter – inklusive två större experimentella funktioner.

    Ny experimentell Garbage Collector
    En av de mest intressanta nyheterna är en ny garbage collector som är optimerad för att hantera många små objekt mer effektivt. Tester visar att den kan minska minneshanteringskostnaden med 10–40 % i praktiska scenarier. Den är inte aktiverad som standard – utvecklare behöver slå på den själva och kan sedan lämna feedback till Go-teamet.

    Snabbare och mer flexibel JSON-hantering
    Den andra stora experimentella nyheten är paketet encoding/json/v2. Det är en uppdaterad JSON-implementation som lovar snabbare avkodning och fler konfigurationsmöjligheter. Även den här funktionen kräver att man aktivt väljer att använda den.

    Automatisk optimering i container-miljöer
    Go 1.25 gör att GOMAXPROCS nu automatiskt anpassar sig efter tillgängliga CPU-resurser i miljöer som Kubernetes. Tidigare krävdes manuell konfigurering för att uppnå detta.

    Förbättringar i kompilatorn

    • Snabbare allokering av slices.
    • DWARF5-debuginformation, vilket minskar storleken på binärer och påskyndar länkning, särskilt i större projekt.

    Förbättrade utvecklingsverktyg

    • Nya go vet-kontroller som fångar upp vanliga programmeringsfel.
    • Möjlighet att ignorera mappar direkt i go.mod.
    • go doc kan nu köra en lokal dokumentationsserver med flaggan -http.
    • Ett helt nytt paket – testing/synctest – gör det lättare att testa parallell kod utan risk för klassiska race condition-problem.

    Standardbiblioteket och säkerhet

    • Förbättrad prestanda i kryptografiska algoritmer.
    • Mer konsekvent hantering av ASN.1-data.
    • Nya funktioner för nätverks- och TLS-anslutningar.

    Plattformsförändringar

    • Äldre versioner av macOS stöds inte längre.
    • Go 1.25 är den sista versionen med stöd för 32-bitars Windows/ARM, som nu tas ur bruk.

    Tillgänglighet
    Go 1.25 kan laddas ned som färdiga binärfiler och installationspaket från den officiella nedladdningssidan. En fullständig lista över alla ändringar finns i Go 1.25 Release Notes, och fler blogginlägg från utvecklingsteamet väntas de närmaste veckorna.

    Exempel i språket go

    Ett enkelt program som skriver Hello, World! i terminalen:

    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("Hello, World!")
    }
    

    Förklaring:

    • package main – anger att programmet är ett körbart program.
    • import "fmt" – tar in paketet fmt för utskrift.
    • func main() – huvudfunktionen som körs först.
    • fmt.Println(...) – skriver ut text med radbrytning.

    Kör programmet:

    go run hello.go

    Kompilera till en binärfil:

    go build -o hello hello.go
    ./hello

    Faktaruta: programmeringsspråket Go

    Översikt

    Go (även kallat Golang) är ett kompilerat, statiskt typat språk från Google med inbyggd stöd för samtidighet (goroutines och kanaler), snabb kompilering och enkel distribution som fristående binärer.

    Vad språket klarar

    • Högpresterande nätverks- och serverprogram med låg latens.
    • Massiv samtidighet via goroutines och chan utan trådbekymmer.
    • Snabb kompilering till statiska, portabla binärer (lätt att containerisera).
    • Inbyggd minnessäkerhet och garbage collection.
    • Stort standardbibliotek: nätverk, HTTP, kryptografi, testning m.m.
    • Förstklassiga verktyg: go build, go test, go fmt, go vet, moduler.

    Vanliga användningsområden

    • Moln- och mikrotjänster, REST/GraphQL-API:er.
    • Distribuerade system, nätverksservrar, proxyer och gateways.
    • DevOps- och plattformsverktyg (t.ex. Docker, delar av Kubernetes-ekosystemet).
    • Kommandoradsverktyg och automation.
    • Data- och meddelandeflöden (streaming), observability/telemetri.

    Kort historik

    • Startat på Google av Robert Griesemer, Rob Pike och Ken Thompson.
    • Offentligt presenterat 2009; version 1.0 släpptes 2012.
    • Designmål: enkelhet, snabbhet, effektiv samtidighet och stark verktygskedja.

    Styrkor & saker att känna till

    • Styrkor: enkel syntax, snabb kompilering, robust standardbibliotek, utmärkt samtidighetsmodell.
    • Observera: minimalistisk generik (finns), inga undantag (errors hanteras explicit), mindre fokus på OOP-arv; GUI och mycket tunga numeriska arbetsflöden görs ofta i andra ekosystem.

    Exempel (körbar binär i en fil): go build -o app .

  • Nyheterna i OpenBSD 7.5

    OpenBSD är ett UNIX-liknande operativsystem känd för sin säkerhetsfokus. Det är öppen källkod och utvecklas av ett globalt volontärteam. Operativsystemet inkluderar en rad säkerhetsfunktioner som adresserar minneskorruption och säkerhetsluckor proaktivt. OpenBSD används ofta i servrar och säkerhetskritiska system.

    OpenBSD 7.5 har nu officiellt släppts, och fortsätter att erbjuda ett säkert och fritt UNIX-baserat operativsystem som betonar säkerhet, mångsidighet och korrekthet.

    Från början en avknoppning från NetBSD, har OpenBSD vuxit till att bli ett betydelsefullt operativsystem med fokus på en säker databehandlingsmiljö.

    Här är några av de mest betydelsefulla uppdateringarna i OpenBSD 7.5:
    Den nya versionen introducerar möjligheten att kryptera rotpartitionen under installationsprocessen, vilket förstärker skyddet av känslig data. Pinsyscalls, ett nytt systemanrop, tillåter mer detaljerad kontroll över systemanrop, vilket bidrar till ökad systemintegritet och minskade säkerhetsrisker.

    För att ytterligare säkra systemet har stödet för indirekta systemanrop via funktionen syscall tagits bort. Denna åtgärd, tillsammans med pinsyscalls, förbättrar säkerheten genom att begränsa tillgången till systemanrop och förhindra potentiella attacker.

    På hårdvarusidan, specifikt för ARM64-system, inkluderar nu OpenBSD stöd för pekareautentisering (PAC) och identifiering av målbranch (BTI), vilket skyddar mot attacker som korrumperar minnet. Stödet för IPv6 på ppp-nätverksgränssnitt utökas också, vilket förbättrar anslutningsmöjligheter och kompatibilitet.

    OpenBSD 7.5 har också förbättrat paketfiltreringen i pf-brandväggen, vilket ger bättre prestanda på flerkärniga system och ökad insyn i nätverkstrafiken. Netstat-verktyget har uppdaterats för att visa mer detaljerad statistik om effektiviteten i ruttcache, vilket ger användarna värdefulla insikter för att optimera nätverksprestanda och säkerhetsinställningar.

    Virtualiseringsstacken i VMM-hypervisorn har uppgraderats med flertrådstöd och förbättrad stabilitet på Intel VMX-baserade system, vilket förbättrar både tillförlitligheten och prestandan i virtualiserade miljöer.

    Vidare har OpenBSD 7.5 utökat sitt stöd för hårdvara och introducerat nya drivrutiner, vilket säkerställer bättre kompatibilitet med ett brett urval av enheter, från Apples bildkontroller till Qualcomms trådlösa chips.

    Användarna kan nu njuta av en uppdaterad skrivbordsmiljö med KDE Plasma 5.27, som erbjuder förbättrad användarupplevelse och de senaste funktionerna från KDE:s ekosystem.

    Slutligen har viktiga programvarukomponenter som LibreSSL och OpenSSH fått uppdateringar för att garantera de senaste säkerhetsförbättringarna och prestandaoptimeringarna. Det omfattande biblioteket av tredjepartsapplikationer har också uppdaterats, vilket ger tillgång till de senaste versionerna av populära programvarupaket.

    Här är en kort sammanfattning av några viktiga uppdaterade program och paket i denna version:

    • Asterisk, Audacity, CMake, Chromium, FFmpeg, Firefox
    • GCC, GHC, GNOME, Go, JDK, Krita
    • LLVM/Clang, LibreOffice, Lua, MariaDB, Mono
    • Mutt, NeoMutt, Node.js, OCaml, OpenLDAP
    • PHP, PostgreSQL, Python, Qt, R, Ruby
    • Rust, SQLite, Shotcut, Sudo, Suricata
    • Tcl/Tk, TeX Live, Thunderbird, Vim, Neovim, Xfce

    https://www.openbsd.org/faq/faq4.html#Download

    OpenBSD sidan i vår Wiki

    https://wiki.linux.se/index.php/OpenBSD

    Fakta: OpenBSD 7.5

    Översikt: OpenBSD är ett UNIX-liknande, fritt och öppet operativsystem som utvecklas av ett globalt volontärteam. Fokus ligger på säkerhet, korrekthet och enkelhet. Vanligt i servrar och säkerhetskritiska miljöer.

    Säkerhetsnyheter i 7.5:

    • Krypterad rotpartition direkt i installationen för starkare dataskydd.
    • pinsyscalls: finmaskig kontroll av systemanrop.
    • Borttaget stöd för indirekta systemanrop via syscall() för att minska angreppsytan.

    Arkitektur & nätverk:

    • ARM64: stöd för PAC (Pointer Authentication) och BTI (Branch Target Identification) mot minneskorruptionsattacker.
    • IPv6 på ppp-gränssnitt utökat för bättre uppkoppling.
    • pf-brandväggen: förbättrad paketfiltrering för flerkärniga system.
    • netstat: mer detaljerad statistik för ruttcache/effektivitet.

    Virtualisering:

    • VMM-hypervisorn: flertrådstöd och stabilitetsförbättringar på Intel VMX-baserade system.

    Hårdvarustöd: utökade drivrutiner och bättre kompatibilitet (bl.a. Apple-displaykontroller, Qualcomm-Wi-Fi m.m.).

    Skrivbord & användarmiljö: KDE Plasma 5.27 tillgängligt för uppdaterad arbetsmiljö.

    Kärnkomponenter uppdaterade: LibreSSL, OpenSSH – senaste säkerhetsfixar och prestandaförbättringar.

    Större paketuppdateringar (urval): Firefox, Chromium, FFmpeg, GCC/Clang/LLVM, Go, JDK, Python, PHP, PostgreSQL, MariaDB, SQLite, Rust, Qt, GNOME, KDE, Xfce, Audacity, Krita, LibreOffice, TeX Live, Thunderbird, Vim/Neovim, Suricata, Node.js, OCaml, Mono, Asterisk, CMake, Mutt/NeoMutt, OpenLDAP, Shotcut, Sudo m.fl.

    Tips: Basuppdateringar via syspatch, paket via pkg_add -u.

Etikett: Go

  • Go 1.25 – Nya funktioner, snabbare prestanda och experimentella tekniker

    Go-projektet har släppt version 1.25 av sitt programmeringsspråk, och uppdateringen är full av förbättringar inom både verktyg, kompilator, runtime och standardbibliotek. Som vanligt kommer versionen precis sex månader efter föregångaren, men den här gången introduceras flera spännande nyheter – inklusive två större experimentella funktioner. Ny experimentell Garbage CollectorEn av de mest intressanta nyheterna är en…

  • Nyheterna i OpenBSD 7.5

    OpenBSD 7.5 har nu officiellt släppts, och fortsätter att erbjuda ett säkert och fritt UNIX-baserat operativsystem som betonar säkerhet, mångsidighet och korrekthet. Från början en avknoppning från NetBSD, har OpenBSD vuxit till att bli ett betydelsefullt operativsystem med fokus på en säker databehandlingsmiljö. Här är några av de mest betydelsefulla uppdateringarna i OpenBSD 7.5:Den nya…