C'è un posto dove posso ottenere una lista completa della versione minima di Linux necessaria per ogni syscall? Sto cercando una risposta generale alle domande del modulo "Se utilizzo syscall X, qual è la versione minima di Linux su cui è possibile eseguire il mio codice?"Storia di syscalls aggiunta a Linux?
risposta
Queste informazioni sono disponibili sulla pagina di manuale syscalls(2)
. Per quelle chiamate di sistema in cui non è indicata alcuna versione del kernel, la chiamata di sistema è comparsa nel kernel 1.0 o precedente.
Finora questa sembra la migliore risposta. Non so come mi sia mancato all'inizio. –
È possibile trovare questo quando si utilizzano siti come http://linux.die.net/ vicino al fondo delle pagine per le chiamate API, nella sezione 'Versione'. Ad esempio, inotify è stato aggiunto su Linux 2.6.13.
Per le chiamate posix questo non si applica perché sono raccolte secondo le specifiche Posix, ad es. read ha una sezione 'Conforming' che menziona POSIX.1-2001.
In effetti, quello che stavo cercando in questo momento era 'clock_gettime' di cui non specifica la pagina man. –
Linus ha a lungo criticato il controllo dello spazio utente per particolari versioni del kernel per sapere se una funzionalità è disponibile - l'approccio consigliato è invece quello di testare la funzionalità desiderata (le selle non implementate restituiscono ENOSYS
).
Un motivo per questo è che i numeri di versione semplicemente non significano quanto sembrano - i kernel di distribuzione, che la maggior parte degli utenti sono effettivamente in esecuzione, spesso hanno le funzionalità supportate dalle nuove versioni del kernel. Alcuni di loro sono veri mostri di Frankenstein in questo senso.
Il motivo per cui mi chiedo non è quello di verificare se una funzionalità è disponibile in fase di esecuzione, ma di stimare se mi blocco dalle versioni di supporto che potrebbero essere rilevanti in base a determinate syscalls. –
C'è un elenco di sysc al file include/asm-generic/unistd.h. È possibile controllare la cronologia di tale file in:
io non sono sicuro di chiamate di sistema per altro arco che x86. Ci possono essere dettagli
- 1. storia Disattiva in Linux
- 2. Storia di utilizzo della memoria Linux
- 3. Modulo Kernel per il monitoraggio di syscalls?
- 4. Qual è la differenza tra syscalls segnale e rt_signal in Linux?
- 5. Storia illimitata di Bash
- 6. Perché Python divide la funzione di lettura in più syscalls?
- 7. Aggiunta di tipi di struct personalizzati a strace
- 8. Storia di deadlock in Oracle?
- 9. Linux Mint - aggiunta permanente di variabili di ambiente
- 10. Aggiunta di data e ora a una variabile di ambiente nel makefile di linux
- 11. Storia TFS persa
- 12. Cos'è una storia?
- 13. jquery storia plug
- 14. Aggiunta di un nuovo codice driver al codice sorgente Linux
- 15. EmberJS Storia/Annulla
- 16. git branch senza storia
- 17. storia IRB non funziona
- 18. disabilitare l'input di testo di storia
- 19. Aggiunta di completamento a (interattivo)
- 20. Aggiunta di stringhe a NSMutableString
- 21. Aggiunta di puntatori a QList
- 22. Aggiunta di UILabel a UIImageView
- 23. Aggiunta di un'ombra a NSImageView
- 24. Aggiunta di titoli a ViewPager
- 25. Aggiunta di Tester a TestFlight
- 26. aggiunta di script a build.gradle
- 27. Aggiunta di immagini a UITextView
- 28. Aggiunta di celle a UITableView
- 29. Aggiunta di metadati a jsTree
- 30. Aggiunta di contenuti a umbraco?
C'è sempre la fonte .... * \ * maledizione del riso \ **. –
intendi la versione minima di linux su cui verrà eseguita la chiamata con i parametri specificati e con il comportamento previsto? * evil ghin * –
Intendevo la versione minima con la quale syscall non restituisce 'ENOSYS' o qualunque cosa faccia per numeri syscall non validi. Comprendo che alcune syscalls avevano un comportamento incompleto o interrotto nelle versioni precedenti, quindi anche le informazioni su questo sarebbero buone, ma al di là della mia domanda iniziale. :-) –