Domande relative ai dettagli su come un programma utilizza le chiamate di sistema per interagire con l'API del kernel, quali chiamate sono disponibili, come funzionano ecc.
Vorrei sapere qual è la differenza tra una chiamata della libreria e una chiamata di sistema in Linux. Qualsiasi suggerimento per una buona comprensione dei concetti alla base di entrambi sarà molto apprezzato.
Vorrei capire in dettaglio la differenza tra fork () e vfork (). Non sono riuscito a digerire completamente la pagina man. Vorrei anche chiarire uno dei miei colleghi commentando " Nell'attuale Linux, non esiste vfork (), anche se lo chiami, chiamerà internamente fork () ."
Esiste un equivalente di ciò che fa l' opzione -Te dell'utilità Solaris su Linux.-Utruss Quelli devono specificare una chiamata di sistema ( -T) o una funzione di libreria ( -U) che quando viene chiamata dall'applicazione tracciata ne causerebbe l'arresto. Oppure, detto diversamente, vorrei che qualsiasi processo avviato da un'applicazione tracciata …
Dalla pagina man di vfork(): vfork () differisce da fork () in quanto il genitore è sospeso fino a quando il figlio non effettua una chiamata per eseguire (2) o _exit (2). Il figlio condivide tutta la memoria con il suo genitore, incluso lo stack, fino a quando execve () …
Per quanto ne so, per manipolare i file c'è solo il syscall sys_write in Linux, che sovrascrive il contenuto del file (o lo estende, se alla fine). Perché non ci sono syscall per l'inserimento o l'eliminazione di contenuti nei file in Linux? Poiché tutti i file system attuali non richiedono …
Chiuso. Questa domanda è fuori tema . Al momento non accetta risposte. Vuoi migliorare questa domanda? Aggiorna la domanda in modo che sia in argomento per Unix e Linux Stack Exchange. Chiuso 7 anni fa . Voglio aggiungere una nuova chiamata di sistema particolare nel kernel linux 3.2.x ma come …
Ho risposto alla domanda ma non capisco bene la differenza tra chiamate di sistema e funzioni di libreria. Concettualmente, qual è la differenza tra i due?
Quando si utilizza il comando stracecon la bandiera -T, vorrei sapere qual è l'unità di tempo utilizzata per visualizzare il tempo trascorso in syscalls? Presumo che dovrebbe essere in pochi secondi, ma non sono del tutto sicuro e sembra essere stato omesso dal manuale.
Mentre stavo leggendo il codice sorgente di Linux, e più precisamente il codice delle chiamate di sistema, mi sono imbattuto sys_rebootnell'implementazione: http://lxr.free-electrons.com/source/kernel/reboot.c#L199 . 199 SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, 200 void __user *, arg) 201 { 202 ... ... 286 } Nel mezzo, c'è questo specifico pezzo …
Ecco qualcosa che mi ha fatto riflettere per un po ': [15:40:50][/tmp]$ mkdir a [15:40:52][/tmp]$ strace rmdir a execve("/usr/bin/rmdir", ["rmdir", "a"], [/* 78 vars */]) = 0 brk(0) = 0x11bb000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff3772c3000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) …
Sto imparando i comandi fork () ed exec (). Sembra che fork () e exec () siano generalmente chiamati insieme. (fork () crea un nuovo processo figlio ed exec () sostituisce l'immagine del processo corrente con una nuova.) Tuttavia, in quali scenari potresti chiamare ciascuna funzione da sola? Ci sono …
C'è un modo per ottenere il numero o l'elenco delle chiamate di sistema supportate dal kernel Linux attualmente in esecuzione? Quindi voglio trovare un modo per "leggere" la tabella syscall di un kernel in esecuzione.
Quando ltrace viene utilizzato per tracciare le chiamate di sistema, vedo che fork () usa sys_clone () anziché sys_fork (). Ma non sono riuscito a trovare il sorgente Linux dove è definito. Il mio programma è #include<stdio.h> main() { int pid,i=0,j=0; pid=fork(); if(pid==0) printf("\nI am child\n"); else printf("\nI am parent\n"); …
Ho un'applicazione che legge un file. Chiamiamolo nome processo e il file ~ / .configuration . Quando processname viene eseguito, legge sempre ~ / .configuration e non può essere configurato in modo diverso. Esistono anche altre applicazioni che si basano su "~ / .configuration", prima e dopo, ma non mentre …
Uso una distribuzione basata su Linux 4.x e di recente ho notato che la open()chiamata di sistema del kernel supporta un O_PATHflag aperto. Sebbene la manpagina abbia un elenco di chiamate di sistema con cui potrebbe teoricamente essere utilizzata, non capisco bene quale sia l'idea. Devo open(O_PATH)solo le directory anziché …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.