elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Análisis del vídeo del hackeo al Sindicato de los Mossos de Esquadra


+  Foro de elhacker.net
|-+  Informática
| |-+  Hardware (Moderador: Aprendiz-Oscuro)
| | |-+  Post sobre utilidades GnuLinux+hardware
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Post sobre utilidades GnuLinux+hardware  (Leído 6,729 veces)
Mordor
Colaborador
***
Desconectado Desconectado

Mensajes: 2.008


Quirón, ora pro nobis


Ver Perfil WWW
Post sobre utilidades GnuLinux+hardware
« en: 4 Octubre 2004, 22:18 »

Saludetes;)

Este post surge después de la lectura de un mensaje (con chincheta) que Cobac dejó en la sección de hardware: programas imprescindibles para el control-trabajo-... con el hardware de un Pc.
Me pareció una idea muy interesante: ya sabéis que soy un fanático de compartir aplicaciones que sean útiles para trabajar/incrementar la potencialidad de nuestros ordenadores ;) .
Pero también me pareció un poco injusto e ingenuo que no apareciese ninguna aplicación gnu para el sistema del pingüino, ya que la potencia de Linux en este aspecto es enormeee, y resulta bastante desconocida para la mayoría de la gente.
Así que me puse en contacto con Cobac: Él me sugirió que independizase mi mensaje del que él había escrito (dado que soy proclive a alargarme en mis explicaciones  ;D ) y que lo colgase en esta sección del foro para que la gente pudiera opinar, aumentar información, sugerir,... Así que aquí os entrego al niño, o mejor dicho, la primera parte del "niño". No ando muy sobrado de tiempo y escribir estas líneas me lleva "su ración de minutos".
Os dejo pues la primera parte del mensaje: juzgar, añadir... a discrección. Es un esquema que desarrollaré. El miércoles espero entregar lo que resta, pero no aseguro nada:



1. Herramientas hardware en GnuLinux...
  • Parto de un hecho que creo que es incuestionable: en general, no solemos asociar este tema a Linux. Vemos este SO como la mejor solución (un poco compleja en ocasiones) para trastear con soft, para crear soft, para experimentar cosas, para probar otras, para divertirnos... pero siempre a nivel de aplicaciones, no a nivel físico.
  • ¿Posible razón de esta entelequia? Pienso que el problema radica en que en windows existen muchísimos programas con estupendas GUIs (propietarios, share y freeware) que aportan información o nos permiten trastear en aspectos muy concretos de nuestro Pc. De hecho, la mayoría de las páginas de overclock que he visitado, en su sección de descargas, prácticamente no implementan soluciones *NIX. Linux está, aparentemente, menos presente en esto "círculos". Tal vez porque se deja la faceta creativa-investigadora a la manipulación de los componentes y se espera que las soluciones soft ofrezcan un volcado inmediato de información o un control sencillo de todo lo que antes se ha realizado.
  • No obstante, GnuLinux tiene un montón de cosas que aportar en este campo. De hecho, resulta muy sencillo el control y la información de todos los elementos hard que integran nuestra máquina... Y si nos movemos a nivel de shell, la facilidad, rapidez y comodidad de trabajo es sencillamente fantástica.
  • ¿Por qué esta sencillez? La razón estriba en que el núcleo de Linux proporciona un mecanismo para acceder a sus estructuras de datos internas y también para cambiar sus opciones "en caliente" a través del sistema de ficheros /proc.

    ...

  • Unas pequeñas aclaraciones-avisos antes de empezar el meollo del asunto. Este mini manual está orientado hacia la arquitectura Intel x86 (sistema en el que trabajo). Del resto de arquitecturas puedo decir poco, ya que no he tenido oportunidad de "trastear con ellas" (algo con AMD, pero los resultados son idénticos).
Igualmente, dividiré este post en tres secciones fundamentales:
1. Comentario-Introducción sobre el sistema de archivos /proc.
2. Aplicaciones "gráficas": gkrellm, kpm, slmon, otras...
3. shell: comandos y directorio /proc en detalle (base del soft anterior)[/list]


2. "Hablemos de /proc". Introducción
  • Vamos a empezar con una breve definición: /proc es un Sistema de Ficheros Virtual.
¿¡einch!? Os preguntaréis algunos. Voy a explicar esto un poco:

  • /proc es un mecanismo utilizado por el núcleo y por los módulos del núcleo para enviar información a los PROCESOS generados por las distintas aplicaciones que rulan en nuestro Pc (Nota: de ahí el nombre /proc... PROCesos).
  • ¿Qué le hace tan importante? Nos permite interactuar con las estructuras de datos internas del núcleo, obteniendo información útil acerca de los procesos y pudiendo modificar "en caliente" (sobre la marcha) parámetros de ejecución, de configuración,... del núcleo e incluso de nuestro hardware. Mostrar todas las posibilidades que nos ofrece llevaría bastante espacio... Os invito a que investiguéis sobre las "modificaciones" que se pueden hacer en el directorio /proc/net
  • Una característica especial y única de /proc: este directorio se almacena en memoria frente al resto de los sistemas de ficheros, que son almacenados en disco. ¿Razón? /proc está controlado directamente por el núcleo (ver arriba), y no tiene un dispositivo (CD, HD,...) detrás de él. Debido a que principalmente contiene información de estado controlada por el núcleo, el lugar más lógico donde almacenar la información es en la memoria controlada por el núcleo.
(Como curiosidad: Un 'ls -l' en /proc nos revela que la mayoría de los ficheros son de 0 bytes de tamaño; a pesar de eso, cuanto mostramos el contenido del fichero, vemos un poco de información)
  • No voy a comentar más aspectos. Sobre este tema volveré más adelante, al tratar el tema de los comandos.
3. Aplicaciones gráficas:
(nota: me voy a ceñir a dar una breve descripción de cada utilidad. Os invito a que experimentéis y trasteéis con ellas ;) )

3.1 Gkrellm:
GKrellM es una barra que traza gráficas (ampliables gracias a plugins) que nos informa sobre:
  • uso de la CPU (soporta SMP),
  • discos,
  • carga del sistema,
  • interfaces de red y conexiones a Internet (http, ftp...) Muestra el estado actual de las conexiones de los puertos y eventos de hasta dos días de antiguedad
  • memoria y swap,
  • sistemas de archivos con opción de montar/desmontar,
  • reloj/calendario,
  • medidor de batería,
  • temperaturas de CPU, ventiladores y voltaje, si los sensores están soportados por el kernel y la placa base (requiere tener instalado lm_sensors)
  • también dispone de leds para los monitores de red y un botón on/off y tiempo de conexión para conexiones ppp.
  • el Hostname / systemname
  • cada monitor del sensor tiene una alarma y una advertencia configurables.
  • puede correr en modo cliente y recoger datos de un servidor (gkrellmd) en una máquina remota.
  • y lo mejor de todo: utiliza poca CPU (2-3%) para monitorear
[...Si me extiendo tanto en este punto es porque se trata de la mejor aplicación que voy a analizar]


-Última versión: 2.2.4
-Requiere gtk 2.0, gdk 2.0, glib 2.0 (+ enlace debian)
-En GnuLinux lee los datos desde el sistema de ficheros /proc
-Existen paquetes para debian, Mandrake 9.0-9.2 (RPMS. Pueden rular en 8.2) y 10.0 (RPMS), RedHat Linux (i386)... RPMs, Slackware 9.1 (también funcionan en la 9.0) y SuSE 8.2 - 9.1 (RPMs)
- Aunque hay una versión para win2, según distintos foros su compilación es problemática
http://www.redbog.com/products/gkrellm.html

3.2 KPM
- Se trata de una herramienta de administración de procesos (soportada por las librerías qt frente a gkrellm que soporta las gtk).
- Muestra información sobre
  • los procesos de la computadora.
  • los procesos que están corriendo (de forma detallada)
  • estado de los recursos de la RAM (utilizada y libre),
  • tamaño de la memoria de intercambio (swap),
  • utilización que los procesos hacen de la CPU
  • matar o terminar procesos (kill) y modificar su prioridad.

- Su localización en KDE: Utilidades -> Gestión de Procesos
- Es menos potente que su hermana mayor

3.3 Slmon (S-Lang System Monitor)
-Se trata de otra herramienta que trabaja **en consola** para monitorizar el sistema.
-Muestra información sobre:
  • Carga de la CPU (soporta también SMP)
  • Memoria (incluida swap)
  • calendario/reloj
  • Número de usuarios logeados por el sistema
  • Interfaces de red
  • Procesos corriendo

-Útima versión: 0.5.13
-Requiere glibtop 1.0.0 y libslang 1.2.2 (+ enlace debian)
-Existen paquetes para debian (las tres ramas), fedora core 2 y Red Hat 7.2 y 7.3 (versiones antiguas)


3.4 Otras utilidades:

  • GTOP (kde-gnome)... La menos documentada de todas las aplicaciones
  • KSYSGUARD (KDE). Podéis encontrar un fantástico manual en el siguiente site:
http://docs.kde.org/es/HEAD/kdebase/ksysguard/
  • Centros de control gnome - kde...
3.5 Una caso especial. Portátiles: cpudyn
-Se trata de un daemon que controla dinámicamente la frecuencia del procesador dependiendo de la carga.
-Es un programa sencillo que puede ser usado siempre (con o sin baterías) en un portátil para bajar el consumo y la temperatura de la CPU, afectando lo mínimo posible al rendimiento.
-El programa necesite que el cpufreq del kernel esté compilado y en marcha (es decir, debe existir el fichero /proc/cpufreq)
-Hay tres parámetros básicos:

  • -i N (N es un número entero) define el periodo de ejecución del daemon en décimas de segundo.
  • -p UP DOWN (UP y DOWN son flotantes entre 0.0 y 1.0). UP define la relación "libre:ocupado" para subir la frecuencia del procesador (o pasar a modo "performance"), por ejemplo 0.5 indica que si en el último período de control la CPU estuve un 50% del tiempo libre, hay que subir la frecuencia. DOWN define la misma relación pero para bajar la frecuencia (o pasar a modo "powersave"), 0.95 indica que hay que bajar la frecuencia si la CPU estuvo libre el 95% del tiempo.
  • -d Indica que el cpusysd debe ejecutarse en modo daemon.
-Última versión: 1.0
-Existen paquetes para debian (apt-get), gentoo (emerge) y mandrake (urpmi)
-Soporta procesadores Intel SpeedStep, Pentium 4 Mobile, PowerPC, AMD y Transmeta LongRun (además de cualquiera que esté implementado por el driver cpufreq del núcleo de Linux)


4. El control desde la shell (comandos). Análisis de los directorio en /proc
Son varios los comandos que nos permiten extraer informaciones muy interesantes directamente del directorio /proc o de éste a través de la librería libproc.
Voy a procurar mostraros los más interesantes, así como un ejemplo de su utilización, para que podáis comprobar "su potencia"...
(Nota: Os comento que estoy escribiendo este mensaje desde una knoppix STD en un Pc de la uni... Una partición, poca memoria, etc, etc)

4.1 fdisk -l
Este comando, desde una consola como root, nos ofrece información muy detallada sobre las distintas particiones y HD presentes en nuestro Pc. Os pongo una captura de mi consola para que os hagáis una idea...

Citar
root@ttyp0[knoppix]# fdisk -l

Disco /dev/hda: 40.0 GB, 40020664320 bytes
255 cabezas, 63 sectores/pista, 4865 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes

Disposit. Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        4865    39078081    7  HPFS/NTFS

4.2 mount
Algo parecido hace el comando mount. Sin añadir ningún tipo de parámetro nos ofrece info más detallada (aunque menos legible, en principio) que el comando anteriormente mencionado.
Dos apuntes:
(a) para correr este comando, no necesitamos permisos de root.
(b) si tipeamos cat /etc/fstab obtenemos el mismo resultado.

Otra pequeña captura para descubrir su "potencial":

Citar
knoppix@ttyp0[knoppix]$ mount
/dev/root on / type ext2 (rw)
/dev/scd0 on /cdrom type iso9660 (ro)
/dev/cloop on /KNOPPIX type iso9660 (ro)
/ramdisk on /ramdisk type tmpfs (rw,size=173120k)
/proc/bus/usb on /proc/bus/usb type usbdevfs (rw,devmode=0666)
automount(pid458) on /mnt/auto type autofs (rw,fd=4,pgrp=458,minproto=2,maxproto=4)

Podéis completar esta información con el comando df, el cual os mostrará el tamaño libre y usado de cada una de las particiones... Lo dicho, una captura vale más que mil palabras:

Citar
knoppix@ttyp0[knoppix]$ df -h
S.ficheros          Tamaño Usado  Disp Uso% Montado en
/dev/root             3,4M  1,3M  2,2M  36% /
/dev/scd0             689M  689M     0 100% /cdrom
/dev/cloop            1,9G  1,9G     0 100% /KNOPPIX
/ramdisk              170M  5,4M  164M   4% /ramdisk

(Nota: añado el argumento -h para que la información nos salga en Mb, en lugar de en k, que es la salida estándar de este comando)

4.3 ifconfig
Otra "pequeña gran" utilidad que nos muestra múltiple e interesante información sobre nuestra/s tarjeta/s de red. No es esta la única utilidad de este interesante comando, ya que además permite configurar la tarjeta y múltiples posibilidades más. Sólo tenéis que pasaros por las páginas man o info de vuestra distro y veréis todo lo que se puede conseguir.
(Nota: en caso de que vuestra tarjeta sea wireless, no hay problema: el comando alternativo es iwconfig).

Como siempre, una pequeña muestra:

Citar
knoppix@ttyp0[knoppix]$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:07:95:C2:CC:8A
          inet addr:192.168.123.20  Bcast:192.168.123.255  Mask:255.255.255.0
          inet6 addr: fe80::207:95ff:fec2:cc8a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:636 errors:0 dropped:0 overruns:0 frame:0
          TX packets:530 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:399310 (389.9 KiB)  TX bytes:100109 (97.7 KiB)
          Interrupt:5 Base address:0xbf00

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

4.4 PCI Utilities package (lspci y setpci)
En esta ocasión os presento dos pequeñas "maravillas". Con el primer comando, lspci, y siempre trabajando como root podemos obtener un listado detalladísimo de todos los periféricos conectados al bus PCI. Sencillamente brutal.

Una pequeña muestra:

Citar
root@ttyp0[knoppix]# lspci
0000:00:00.0 Host bridge: VIA Technologies, Inc. P4M266 Host Bridge
0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8633 [apoyo Pro266 AGP]
0000:00:11.0 ISA bridge: VIA Technologies, Inc. VT8233 PCI to ISA Bridge
0000:00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
0000:00:11.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1b)
0000:00:11.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1b)
0000:00:11.4 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1b)
0000:00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 30)
0000:00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 70)
0000:01:00.0 VGA compatible controller: S3 Inc. VT8375 [ProSavage8 KM266/KL

El otro comando, setpci, nos permite trastear con esos periféricos. Existe un proyecto, Athcool, que en el caso de procesadores Athlon en chipset VIA (no todos, un listado más detallado y en castellano lo podéis encontrar en http://libertonia.escomposlinux.org/story/2002/8/17/155758/556) puede llegar a bajar la temperatura hasta 15ºC. Os aviso que sobre este particular hay mucha controversia en la red: la mayoría dicen que sí les ha funcionado, otros afirman que no les ha pasado nada y un buen puñado se lamentan porque han acabado con la vida de su chipset... En fin. En el enlace anterior tenéis más info.

4.5 dmesg
Este utilísimo comando muestra  todos los mensajes mostrados en pantalla durante el proceso de arranque. ¡Pues vaya estupidez! Diréis algunos... Bueno, si consideráis que durante el arranque se reconoce todo el hard del Pc, la cosa aquiere mayor relevancia. Y si por medio de tuberías encauzáis la info con el comando grep, la cosa adquiere un potencial estremecedor...
Un ejemplo de lo que digo: ¿Queréis saber qué HD tenéis instalados en el Pc? No hay problema.
Citar
knoppix@ttyp0[knoppix]$ dmesg | grep hda*
    ide0: BM-DMA at 0xfc00-0xfc07, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xfc08-0xfc0f, BIOS settings: hdc:DMA, hdd:pio
hda: ST340014A, ATA DISK drive
hdc: SAMSUNG CD-ROM SC-152C, ATAPI CD/DVD-ROM drive
hda: attached ide-disk driver.
hda: host protected area => 1
hda: 78165360 sectors (40021 MB) w/2048KiB Cache, CHS=4865/255/63
 hda: hda1
hdc: attached ide-scsi driver.
Bueno, bueno... ¿y qué hay de la CPU?
Citar
knoppix@ttyp0[knoppix]$ dmesg | grep CPU
Initializing CPU#0
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 512K
CPU: Hyper-Threading is disabled
CPU:     After generic, caps: bfebf9ff 00000000 00000000 00000000
CPU:             Common caps: bfebf9ff 00000000 00000000 00000000
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 512K
CPU: Hyper-Threading is disabled
CPU:     After generic, caps: bfebf9ff 00000000 00000000 00000000
CPU:             Common caps: bfebf9ff 00000000 00000000 00000000
CPU0: Intel(R) Pentium(R) 4 CPU 1.80GHz stepping 07
per-CPU timeslice cutoff: 1462.18 usecs.
ACPI: Processor [CPU1] (supports C1, 16 throttling state
Creo que las capturas lo dicen todo. Sin palabras...

4.6 Trasteando en el directorio /proc
Bueno... Ya llegamos a la maravilla de las maravillas. Este directorio y su biblioteca asociada (libproc) permiten realizar maravillas a nivel hard. No voy a indicaros mucho: simplemente os invito a que miréis los siguientes ficheros:
/cpuinfo ($>cat /proc/cpuinfo)
/devices ($>cat /proc/devices)
/interrupts ($>cat /proc/interrupts)
/iomem ($>cat /proc/iomem)
/ioports ($>cat /proc/ioports)
/meminfo ($>cat /proc/meminfo)
/mounts ($>cat /proc/mounts)
Pensad que no sólo podréis leer la información de vuestro sistema, sino que, como root, podréis alterar también esos valores... Estremecedor y catastrófico si no se sabe lo que se hace.



En fin. Con esto he acabado. Podia haberme extendido algo más, hablar del hackeo del kernel y del sistema modificando la librería libproc, comentar algo más los comandos y los ficheros-directorios de /proc... Pero sobre eso hay abundante información por toda la red. Sólo he intentado meteros "el gusanillo" en el cuerpo para que si estáis interesados sepáis por donde tirar...
Espero que os sirva de ayuda;)


« Última modificación: 20 Octubre 2004, 23:03 por Mordor » En línea

La inteligencia es un vaso a llenar...
Johny X

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Re: Post sobre utilidades GnuLinux+hardware
« Respuesta #1 en: 28 Febrero 2005, 16:48 »

sencillamente util  :)


En línea

silvio mendes

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Post sobre utilidades GnuLinux+hardware
« Respuesta #2 en: 21 Agosto 2005, 21:21 »

Hi,

I was searching for innformation about cpu temperature and I saw your message in the internet.

I am very interessted in this question also.

Is there another way to do it without temperature sensor?


Thanks,

silviomendesam@yahoo.com.br
En línea

Cobac
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.465


Still In Development


Ver Perfil
Re: Post sobre utilidades GnuLinux+hardware
« Respuesta #3 en: 22 Agosto 2005, 08:16 »

Citar
Is there another way to do it without temperature sensor?

Sino tienes ningun sensor en la placa base te va a ser imposible hacerlo como esta aquí (ya que estos programas "leen" de los sensores que hay en la placa base)

Otra manera sería hacerlo por hardware, poniendo una sonda térmica, aquí te dejo un enlace y la explicación de como se pone. (en inglés no he encontrado, lo siento, aunque creo que con las imagenes te quedará claro)

http://www.hard-h2o.com/review/controltemp/compunurse.html

salu2

P.D.:Alguien que tenga más nivel que yo en inglés que traduzca lo que yo he dicho y lo pondré en mi mensaje citado xD
En línea

PIV 2533 @ 2720Mhz | 512MB DRR333 @ 358 | 160 Gb + 40 Gb Seagate Barracuda

En la Edad Media la Iglesia robaba con los diezmos. En el siglo XXI la SGAE roba con sus cánones.
I-NU

Desconectado Desconectado

Mensajes: 194



Ver Perfil
Re: Post sobre utilidades GnuLinux+hardware
« Respuesta #4 en: 22 Abril 2006, 20:42 »

Citar
Is there another way to do it without temperature sensor?

Sino tienes ningun sensor en la placa base te va a ser imposible hacerlo como esta aquí (ya que estos programas "leen" de los sensores que hay en la placa base)

Otra manera sería hacerlo por hardware, poniendo una sonda térmica, aquí te dejo un enlace y la explicación de como se pone. (en inglés no he encontrado, lo siento, aunque creo que con las imagenes te quedará claro)

http://www.hard-h2o.com/review/controltemp/compunurse.html

salu2

P.D.:Alguien que tenga más nivel que yo en inglés que traduzca lo que yo he dicho y lo pondré en mi mensaje citado xD

La traduje , mi ingles no es perfecto pero bueh

IN ENGLISH
Citar
If you don't have any sensor in the motherboard it will be impossible to do it like is here (because this programs "read" from the sensors in the motherboard)

Other way to do it can be by hardware , with a thermal "sonda" (I don't know how is in english) , here I give you a link with the explanation of how to install it. ( in english I haven't found it , sorry , I think that with the images It will be clear


http://www.hard-h2o.com/review/controltemp/compunurse.html

Greets

to translate the page you can use google



En línea

日本はばしょへ
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines