Oficiálně byl vydán Android 16. Detaily na blogu a stránkách věnovaných vývojářům.
Byla vydána nová verze 14.3 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
CSIRT.CZ upozorňuje, že na základě rozhodnutí federálního soudu ve Spojených státech budou veškeré konverzace uživatelů s ChatGPT uchovávány. Včetně těch smazaných.
Ač semestr ve škole právě končí, bastlíři ze studentského klubu Silicon Hill neodpočívají a opět se jako každý měsíc hlásí s pravidelným bastlířským setkáním Virtuální Bastlírna, kde si můžete s ostatními techniky popovídat jako u piva o novinkách, o elektronice, softwaru, vědě, technice obecně, ale také o bizarních tématech, která se za poslední měsíc na internetu vyskytla.
Z novinek za zmínku stojí Maker Faire, kde Pájeníčko předvedlo … více »Na WWDC25 byl představen balíček Containerization a nástroj container pro spouštění linuxových kontejnerů na macOS. Jedná se o open source software pod licencí Apache 2.0 napsaný v programovacím jazyce Swift.
Do 16. června do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | červen 2025 doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.
Apple na své vývojářské konferenci WWDC25 (Worldwide Developers Conference, keynote) představil řadu novinek: designový materiál Liquid Glass, iOS 26, iPadOS 26, macOS Tahoe 26, watchOS 26, visionOS 26, tvOS 26, nové funkce Apple Intelligence, …
Organizátoři konference LinuxDays 2025, jež proběhne o víkendu 4. a 5. října 2025 v Praze na FIT ČVUT, spustili přihlašování přednášek (do 31. srpna) a sběr námětů na zlepšení.
Po roce byla vydána nová stabilní verze 25.6.0 svobodného multiplatformního multimediálního přehrávače SMPlayer (Wikipedie).
DNS4EU, tj. evropská infrastruktura služeb DNS založená na vysoce federovaném a distribuovaném ochranném ekosystému, byla spuštěna v testovacím režimu [𝕏]. Na výběr je 5 možností filtrování DNS.
Programming stuff. And stuff.
Po delším googlení jsem narazil na projekt CryoPID, který umí zmrazit proces do ELF binárky na disku (ta pak pokračuje od momentu zmražení). Přeložit to nebylo nic snadné (nadával jsem než se mi to povedlo zprovoznit přes různé hacky).
Binárky a ohackované zdrojáky mají původ v momentálním mercurial tip (7da69201d50e).
Bohužel i386/i686 binárky nemám, protože po překladu v 32bit chrootu nefungovaly. (Starší předkompilované binárky je možné stáhnout ze stránky projektu).
Vzhledem k tomu, že se cryopid linkuje jenom proti libz a glibc, mělo by to fungovat všude. Vyzkoušel jsem to na Gentoo glibc 2.8, Debianu Lenny a Etch. S Debianem problém nebyl, na Gentoo z nějakého důvodu nešlo obnovit zmraženy python2.5 procesy. Python 2.4 a 2.6 byly ok, spíš než na verzi jádra bych to tipoval na verzi knihoven. Segfault od zmraženého python2.5 procesu byl tak hustý, že i gdb lakonicky zahlásilo "Process no longer exists".
Holt CryoPID není dokonalý, ale smekám proti tomu co umí.
Ohackované zdrojáky obsahují copy-and-pastnuté definice maker _syscall2 a _syscall4, které myslím od jádra 2.6.20 nejsou součástí kernel-headers (nebo kernelu samotného). Podobně pro i686 bude nejspíš stačit nadefinovat (copy-and-pastovat syscall kód přes int 0x80). Příliš do kernel developmentu nevidím, pokud víte jak nahradit tyhle makra, neváhejte se ozvat.
Makefile-y ohackovaných zdrojáků obsahují include /usr/src/linux, tudíž pro úspěšný překlad buď musíte mít zdrojáky jádra nebo kompatilní kernel-headers.
Pozn: já používám Komodo IDE remote debugger (dbgp.client, metoda brk), ale klidně by šlo použít třeba na winpdb nebo jiný debugger. Pointa zmražení je, že "odmražený" spuštený proces se rovnou připojí k debuggeru.
#!/usr/bin/env python
import sys
sys.path.append("/opt/Komodo/")
from dbgp.client import brk
import os
import subprocess
import time
class A(object):
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
def __str__(self):
return str([(k, v) for (k, v) in self.__dict__.iteritems()])
a = A(a=1, b=2, c="c")
#Tady je nejaky test kde se zjisti ze se neco rozbilo a nedava smysl.
#Kdyz se neco rozbilo, zavolame fork a freeznem childa
pid = os.fork()
if pid > 0: #parent
argv = ["/home/ondro/bin/cryopid", "-l", "child.cryo", str(pid)]
p = subprocess.Popen(argv, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
l = p.communicate()
p.wait()
print l[0]
print l[1]
print "Freeze finished"
sys.exit(0)
elif pid == 0: #child
time.sleep(5) #chceme se vyhnout race condition nez se proces zmrazi, systemovy semget() by byl lepsi
brk(host="localhost", port=9000)
for i in range(5):
print "Sleeping: ", i
time.sleep(1)
print a
else:
print "Fork failed"
Když vás zajímjí podobné postupy, podívejte se na Checkpointing software.
Tiskni
Sdílej: