Firma X zaslala předžalobní výzvu vývojáři projektu Nitter (Wikipedia), open-source alternativního frontendu k sociální síti X (ex-Twitter), a provozovatelům instancí jako XCancel, které umožňovaly číst příspěvky bez přihlášení, reklam a javascriptu. Údajně se dopouštějí „sběru dat“. Zdrojový kód Nitteru vývojář archivoval. Vývoj již dříve přerušil v roce 2024 po tehdejším omezení API X. X je dceřiná společnost SpaceXAI Elona Muska, provozující mj. kontroverzního chatbota Grok.
Bylo vydáno Ubuntu 26.04.1 LTS, tj. první opravné vydání Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek a oprav na Discourse.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2025 (pdf). Incidentů ubylo, sofistikovanost útočníků roste.
Open source softwarový stack AMD ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán v nové major verzi 10.0. S ROCm.AI. Přehled novinek v aktualizované dokumentaci.
Finanční skupina Partners se stala minulou neděli obětí kybernetického útoku, při kterém se útočníci dostali k některým osobním údajům klientů. Společnost o tom informovala ve čtvrtek. Ujišťuje, že peníze klientů nejsou v ohrožení. „Kybernetický útok zasáhl část IT infrastruktury naší společnosti. Ihned po zjištění útoku jsme s pomocí externích bezpečnostních odborníků začali intenzivně pracovat na minimalizaci škod. Útočníci se
… více »Americká technologická společnost Meta Platforms se dohodla, že zaplatí až zhruba 18 miliard dolarů (asi 373 miliard Kč) za mimosoudní urovnání sporu o závislosti dětí na sociálních sítích a provede významné změny pro jejich používání mladistvými. Téměř tři desítky států USA firmu v roce 2023 obvinily z toho, že sítě Facebook a Instagram vědomě navrhla tak, aby u dětí vyvolávaly závislost, a zatajovala tyto dopady před veřejností. Firma se
… více »Byl publikován aktuální přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Blíží se vydání podporující čipy M3. Vývojáře lze podpořit na GitHub Sponsors a Open Collective.
Kancelářský balík LibreOffice byl vydán ve verzi 26.8. Mimo jiné vylepšuje typografii a kompatibilitu s formáty MS Office, více v poznámkách k vydání.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.8. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 23.1.0, tj. první stabilní verze z nové řady 23.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools, Libc++, Polly a Flang.
Zdravim mohl byste mi nekdo poradit jak se da resit programek v cecku abych si pri spusteni navolil v prikazove radce jaky pseudo terminal se bude pouzivat ( ptsX ). Program se pak propoji na dalsi pseudo terminal a navzajem si posilaji data.
Presne zadani zde:
........................................Napište program, teletype. Tento program otevře sériový port a vyšle na něj každý z klávesnice zapsaný znak a vypíše každý jednotlivý znak ze sériové linky přijatý. Pomocí sériového kabelu propojte COM1 a COM2 a spusťte 2 instance programu teletype. Který COM se bude používat specifikujte z příkazové řádky při spouštění programu.
________________Vim jak udelat abych se propojil na terminal a cetl z nej znaky ale nevim jak udelat aby jsme mohl navzajem mezi terminali prijimat i odesilat. Snad pomoci fce select? Prosim poradte, ( nechci to naprogramovat, jen nakopnout), zatim je to pro me spanelska vesnice. Dekuji
EXAMPLE
#include <stdio.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
int
main(void) {
fd_set rfds;
struct timeval tv;
int retval;
/* Watch stdin (fd 0) to see when it has input. */
FD_ZERO(&rfds);
FD_SET(0, &rfds);
/* Wait up to five seconds. */
tv.tv_sec = 5;
tv.tv_usec = 0;
retval = select(1, &rfds, NULL, NULL, &tv);
/* Don't rely on the value of tv now! */
if (retval == -1)
perror("select()");
else
if (retval)
printf("Data is available now.\n");
/* FD_ISSET(0, &rfds) will be true. */
else
printf("No data within five seconds.\n");
return 0;
}
#define BUF_LEN 200
struct termios set_attributes;
int main(int argc, char *argv[]) {
char *ttyID;
char buffer[BUF_LEN];
int result;
fd_set terminal, klavesnice;
struct timeval timeout; /* Struktura s časovým limitem */
size_t len;
ttyID = argv[1]; /* Nacteme ttyID pseudo terminalu */
int tty = open(ttyID, O_RDWR);
// nastav nove parametry terminalu
tcgetattr(tty, &set_attributes);
set_attributes.c_lflag &= ~ICANON; // necekej na cely radek (noncanonical)
//set_attributes.c_lflag &= ~ECHO; // nezobrazuj ctene znaky
set_attributes.c_cc[VMIN] = 1;
set_attributes.c_cc[VTIME] = 0;
tcsetattr(tty, TCSAFLUSH, &set_attributes);
while(1){
FD_ZERO(&terminal); /* Odstranime nahodna data z mnoziny */
FD_ZERO(&klavesnice); /* Odstranime nahodna data z mnoziny */
FD_SET(fileno(stdin), &klavesnice); /* Naplnime mnozinu stdin */
FD_SET(tty, &terminal); /* Naplnime mnozinu ttyckem */
// Nadefinovany casovy interval 4 sekundy a 5 milis..
timeout.tv_sec = 4;
timeout.tv_usec = 50000;
// Zavolám select (V Linuxu musím mít nastavenou proměnnou FD_SETSIZE) --- tezko rict co je na tom pravdy
result = select(FD_SETSIZE, &klavesnice, &terminal, NULL, &timeout);
switch(result){
case -1:
perror("select"); /* Nastala chyba */
exit(1);
case 0:
printf("timeout \n"); /* Vypršel časový limit */
break;
default:
/* Obsluha soketu. Zde je možné vytvořit nové vlákno nebo proces,
který obslouží událost na soketu. Server pak je vícevláknový.
*/
if (FD_ISSET(fileno(stdin), &klavesnice)) {
/* Data available on stdin */
char a;
read(fileno(stdin), &a, sizeof(a));
write(tty, &a, sizeof(a));
}
if (FD_ISSET(tty, &terminal)) {
char c;
read(tty, &c, sizeof(c));/*:!*/
if(c == '\004') { // `C-d'
// program skonci az prijme Ctrl-D
break;
}
else {
putchar(c);
// vyprazdni vystupni buffer
// a zpusob tak zobrazeni znaku
// i v nekanonickem modu terminalu
fflush(stdout);
}
}
break;
}
}
}
.
.
.
switch(select(1, &rfds, NULL, NULL, &tv))
{
case -1:
perror("select()");
return -1;
/* no break */
case 0:
printf("No data in 5 sec.\n");
break;
default:
printf("DAATAAA!!!.\n");
/* FD_ISSET(0, &rfds) will be true. */
break;
}
return 0;
.
.
.
hlavicky
void *readFromTERMINAL( void *ptr )
{
char *terminal;
terminal = (char *) ptr;
int tty = open(terminal, O_RDONLY);/*:!*/
if(tty < 0) {
perror("ERROR open device /dev/ttyS1");
exit(EXIT_FAILURE);
}
while(1) {
char c;
read(tty, &c, sizeof(c));
if(c == '\004') { // `C-d'
// program skonci az prijme Ctrl-D
close(tty);
break;
}
else {
putchar(c);
// vyprazdni vystupni buffer
// a zpusob tak zobrazeni znaku
// i v nekanonickem modu terminalu
fflush(stdout);
}
}
close(tty);
}
int main(int argc, char *argv[])
{
pthread_t thread1, thread2;
char *parametr;
parametr = argv[1];
// vlakno cte z daneho portu a vypisuje na terminal
pthread_create( &thread1, NULL, readFromTERMINAL, parametr);
pthread_join(thread1, NULL);
printf("\nKonec\n");
return EXIT_SUCCESS;
}
moje_skvela_utilita </dev/bagr/jahoda/konzole >/dev/bagr/jahoda/konzole
Tiskni
Sdílej: