Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
SystemTap
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
{{Ficha de software|logo=Smileytap.svg}} En [[informática]], '''SystemTap''' (<code>stap</code>) es un [[Script|lenguaje de script]] y [[herramienta]] para la instrumentación dinámica para [[Sistema operativo|sistemas operativos]] en producción basados en el [[núcleo Linux]]. Los administradores del sistema pueden usar SystemTap para extraer, filtrar y resumir datos para permitir el diagnóstico de problemas complejos de rendimiento o funcionales. SystemTap consiste en [[software libre y de código abierto]] e incluye contribuciones de [[Red Hat]], [[IBM]], [[Intel Corporation|Intel]], [[Hitachi]], [[Oracle Corporation|Oracle]] y otros miembros de la comunidad.<ref>{{Cita web|url=https://lwn.net/Articles/315022/|título=A SystemTap update|editorial=[[lwn.net]]}}</ref> == Historia == SystemTap debutó en 2005 en [[Red Hat Enterprise Linux]] 4 Update 2 como una vista previa de la tecnología.<ref>{{Cita web|url=http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/release-notes/as-x86/RELEASE-NOTES-U2-x86-en.html|título=Product Documentation for Red Hat Enterprise Linux|editorial=[[Red Hat]]}}</ref> Después de cuatro años de desarrollo, SystemTap 1.0 se lanzó en 2009.<ref>{{Cita web|url=http://sourceware.org/ml/systemtap/2009-q3/msg00831.html|título=Josh Stone - SystemTap release 1.0|editorial=}}</ref> {{A fecha de|2011}}, SystemTap es totalmente compatible con todas las distribuciones de Linux, incluyendo [[Red Hat Enterprise Linux|RHEL/CentOS]] 5<ref>{{Cita web|url=http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.2/html/Release_Notes/x86/ar01s03.html|título=Product Documentation|editorial=[[Red Hat]]}}</ref> desde la actualización 2, SLES 10,<ref>{{Cita web|url=http://support.novell.com/techcenter/psdb/f1856527fefb7f2060aeb6907f319a09.html|título=Optional update for SystemTap|autor=60951|fecha=10 de octubre de 2006|editorial=[[Novell]]}}</ref> [[Fedora (distribución Linux)|Fedora]], [[Debian GNU/Linux|Debian]] y [[Ubuntu]]. Se agregaron puntos de rastreo en el [[CPython]] VM y [[Máquina virtual Java|JVM]] en SystemTap 1.2.<ref>{{Cita web|url=http://fedoraproject.org/wiki/Features/SystemtapStaticProbes|título=Features/SystemtapStaticProbes - FedoraProject|editorial=Fedoraproject}}</ref> == Uso == Los archivos de SystemTap se escriben en el lenguaje de SystemTap<ref>{{Cita web |url=https://sourceware.org/systemtap/langref/ |título=Copia archivada |fechaacceso=24 de julio de 2019 |fechaarchivo=25 de enero de 2020 |urlarchivo=https://web.archive.org/web/20200125081913/http://sourceware.org/systemtap/langref/ |deadurl=yes }}</ref> (se guardan como archivos <code>.stp</code>) y se ejecutan con la línea de comandos <code>stap</code>.<ref> Compare {{Cita web|url=http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.172.5186&rep=rep1&type=pdf|título=SystemTap Language Reference: A guide to the constructs and syntax used in SystemTap scripts|fechaacceso=19 de diciembre de 2010|autor=Romans|nombre=Robb|año=2009|editorial=Red Hat|formato=PDF|cita=SystemTap [...] requires root privileges to actually run the kernel objects it builds using the sudo command, applied to the staprun program.[...] staprun is a part of the SystemTap package, dedicated to module loading and unloading and kernel-touser data transfer.}} </ref> El sistema lleva a cabo una serie de pases de análisis en el script antes de permitir que se ejecute. Los scripts pueden ejecutarse con uno de los tres backends seleccionados por la opción <code>--runtime=</code>. El valor predeterminado es un [[Módulo de núcleo|módulo de kernel]], que tiene la capacidad más completa para inspeccionar y manipular cualquier parte del sistema y, por lo tanto, requiere el mayor privilegio. Otro [[Front end y back end|backend]] se basa en la biblioteca de [[Análisis dinámico de software|análisis dinámico de programas]] DynInst para instrumentar los propios programas de [[espacio de usuario]] y requiere el menor privilegio. El backend más reciente<ref>{{Cita web|url=https://sourceware.org/ml/systemtap/2017-q4/msg00096.htmlq1/msg00097.html|título=systemtap 3.2 release|fechaacceso=18 de octubre de 2017|autor=Merey|nombre=Aaron|fecha=18 de octubre de 2017|cita=The systemtap team announces release 3.2 [...] early experimental eBPF (extended Berkeley Packet Filter) backend [...]}}</ref> se basa en el byte-code eBPF, está limitado a las capacidades del intérprete del kernel de [[Linux]] y requiere un nivel de privilegio intermedio. En cada caso, el módulo se descarga cuando el script ha terminado de ejecutarse. Los scripts generalmente se enfocan en eventos (como iniciar o finalizar un script), puntos de sondeo compilados como los "puntos de rastreo" de Linux, o la ejecución de funciones o sentencias en el kernel o espacio de usuario. Algunos scripts de "modo de gurú" también pueden tener código C incrustado, que puede ejecutarse con la opción de línea de comandos <code>-g</code> . Sin embargo, se desaconseja el uso del modo guru, y cada versión de SystemTap incluye más puntos de prueba diseñados para eliminar la necesidad de scripts en modo guru. Se requiere el modo Guru para permitir que los scripts modifiquen el estado en el software instrumentado, como para aplicar algunos tipos de soluciones de seguridad de emergencia. A partir de la versión 1.7 de SystemTap, el software implementa el nuevo grupo ''stapsys'' y el nivel de privilegio correspondiente.<ref> {{Cita web|url=http://sourceware.org/ml/systemtap/2012-q1/msg00097.html|título=systemtap 1.7 release|fechaacceso=26 de marzo de 2013|autor=Eigler|nombre=Frank Ch.|fecha=1 de febrero de 2012|cita=The systemtap team announces release 1.7 [...] The new group and privilege level "stapsys" has been added [...]}} </ref> == Ejemplos simples == La siguiente secuencia de comandos muestra todas las aplicaciones que configuran las opciones de [[Socket de Internet|socket]] [[Protocolo de control de transmisión|TCP]] en el sistema, qué opciones se están configurando y si la opción se configuró con éxito o no: <syntaxhighlight lang="vcl"> # Show sockets setting options # Return enabled or disabled based on value of optval function getstatus(optval) { if ( optval == 1 ) return "enabling" else return "disabling" } probe begin { print ("\nChecking for apps setting socket options\n") } # Set a socket option probe tcp.setsockopt { status = getstatus(user_int($optval)) printf (" App '%s' (PID %d) is %s socket option %s... ", execname(), pid(), status, optstr) } # Check setting the socket option worked probe tcp.setsockopt.return { if ( ret == 0 ) printf ("success") else printf ("failed") printf ("\n") } probe end { print ("\nClosing down\n") } </syntaxhighlight> Muchos otros ejemplos se envían con SystemTap.<ref>{{Cita web|url=http://sourceware.org/systemtap/examples/|título=SystemTap Examples|editorial=|fechaacceso=24 de julio de 2019|urlarchivo=https://web.archive.org/web/20160312144834/https://sourceware.org/systemtap/examples/|fechaarchivo=12 de marzo de 2016}}</ref> También hay ejemplos reales del uso de SystemTap en la página de War Stories.<ref>{{Cita web|url=http://sourceware.org/systemtap/wiki/WarStories|título=WarStories - Systemtap Wiki|editorial=}}</ref> == Importación de scripts desde otras tecnologías de rastreo. == SystemTap puede adjuntarse a los marcadores de [[DTrace (Sun Microsystems)|DTrace]] cuando se compilan en una aplicación utilizando macros del archivo de encabezado <code>sys/sdt.h</code> == Véase también == {{Portal|Software libre}} * [[Kernel maker]] * [[ Dprobes |DProbes]] * [[LTTng]] * [[strace]] * [[ ProbeVue |ProbeVue]] == Referencias == {{Listaref|30em}} == Enlaces externos == * [http://sourceware.org/systemtap/ Página de inicio de SystemTap] * [http://sourceware.org/systemtap/wiki/ SystemTap Wiki] * [http://sourceware.org/systemtap/langref/ Referencia del lenguaje SystemTap] ( [http://sourceware.org/systemtap/langref.pdf PDF] ) * [http://www.ohloh.net/p/systemtap Análisis del proyecto SystemTap por Ohloh] {{Wayback|url=http://www.ohloh.net/p/systemtap |date=20121207150015 }} * [https://myaut.github.io/dtrace-stap-book Seguimiento dinámico con DTrace y SystemTap] * [http://sourceware.org/systemtap/tutorial.pdf ''Tutorial de Systemtap''] Frank Ch. Eigler * [http://sourceware.org/systemtap//SystemTap_Beginners_Guide.pdf ''Guía para principiantes de SystemTap''] Don Domingo, William Cohen * [https://www.kernel.org/doc/ols/2006/ols2006v1-pages-261-268.pdf ''Resolución de problemas con Systemtap''], [https://web.archive.org/web/20080913185728/http://www.linuxsymposium.org/ Ottawa Linux Symposium] 2006 * [http://sources.redhat.com/systemtap/wiki/RedHatSummit2007?action=AttachFile&do=get&target=RHSummit07-ETSystemTap.pdf ''Solución de problemas con SystemTap''] {{Wayback|url=http://sources.redhat.com/systemtap/wiki/RedHatSummit2007?action=AttachFile&do=get&target=RHSummit07-ETSystemTap.pdf |date=20120222005620 }}, Eugene Teo, presentado en la [http://www.redhat.com/summit/ Cumbre de Red Hat] 2007 ( [http://sourceware.org/systemtap/wiki/RedHatSummit2007?action=AttachFile&do=get&target=RHSummit07-ETSystemTapScripts.bz2 scripts] ) * [http://sourceware.org/systemtap/wiki/LW2008SystemTapTutorial?action=AttachFile&do=get&target=jistone-systemtap-linuxworld08.pdf ''Seguimiento dinámico y análisis de rendimiento usando SystemTap''], Joshua Stone, presentado en la [https://web.archive.org/web/19990117025510/http://linuxworldexpo.com/ Conferencia LinuxWorld] 2008 * [http://sourceware.org/systemtap/wiki/LPC2008SystemTapTutorial?action=AttachFile&do=get&target=LPC_2008_stap.pdf El tutorial de SystemTap], Jim Keniston, presentado en la [http://linuxplumbersconf.org/ Linux Plumbers Conference] 2008 {{Control de autoridades}} [[Categoría:Depuradores]] [[Categoría:Software de sistema libres]] [[Categoría:Software libre programado en C++]] [[Categoría:Wikipedia:Páginas con traducciones sin revisar]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
SystemTap
»
Añadir idiomas
Añadir tema