martes, 18 de noviembre de 2014

Comandos Linux

Información del sistema
  1. arch: mostrar la arquitectura de la máquina (1).
  2. uname -m: mostrar la arquitectura de la máquina (2).
  3. uname -r: mostrar la versión del kernel usado.
  4. uname -a: mostrar la información completa.
  5. dmidecode -q: mostrar los componentes (hardware) del sistema.
  6. hdparm -i /dev/hda: mostrar las características de un disco duro.
  7. hdparm -tT /dev/sda: realizar prueba de lectura en un disco duro.
  8. cat /proc/cpuinfo: mostrar información de la CPU.
  9. cat /proc/interrupts: mostrar las interrupciones.
  10. cat /proc/meminfo: verificar el uso de memoria.
  11. cat /proc/swaps: mostrar ficheros swap.
  12. cat /proc/version: mostrar la versión del kernel.
  13. cat /proc/net/dev: mostrar adaptadores de red y estadísticas.
  14. cat /proc/mounts: mostrar el sistema de ficheros montado.
  15. lspci -tv: mostrar los dispositivos PCI.
  16. lsusb -tv: mostrar los dispositivos USB.
  17. lshw: listar el hardware.
  18. discover: listar el hardware.
  19. date: mostrar la fecha del sistema.
  20. cal 2011: mostrar el almanaque de 2011.
  21. cal 07 2011: mostrar el almanaque para el mes julio de 2011.
  22. date 041217002011.00: colocar (declarar, ajustar) fecha y hora.
  23. clock -w: guardar los cambios de fecha en la BIOS.

Apagar, reiniciar o cerrar sesión
  1. shutdown -h now: apagar el sistema (1).
  2. init 0: apagar el sistema (2).
  3. telinit 0: apagar el sistema (3).
  4. halt: apagar el sistema (4).
  5. shutdown -h hours:minutes &: apagado planificado del sistema.
  6. shutdown -c: cancelar un apagado planificado del sistema.
  7. shutdown -r now: reiniciar (1).
  8. reboot: reiniciar (2).
  9. logout: cerrar sesión.
  10. exit: salir del intérprete de comandos (si solo hay uno, equivale a cerrar sesión).


Gestionar archivos y directorios
  1. cd /home: entrar en el directorio “home”.
  2. cd ..: retroceder un nivel.
  3. cd ../..: retroceder 2 niveles.
  4. cd: ir al directorio raíz.
  5. cd ~user1: ir al directorio user1.
  6. cd -: ir (regresar) al directorio anterior.
  7. pwd: mostrar el camino del directorio de trabajo.
  8. ls: ver los ficheros de un directorio.
  9. ls -F: ver los ficheros de un directorio.
  10. ls -l: mostrar los detalles de ficheros y carpetas de un directorio.
  11. ls -a: mostrar los ficheros ocultos.
  12. ls *[0-9]*: mostrar los ficheros y carpetas que contienen números.
  13. tree: mostrar los ficheros y carpetas en forma de árbol comenzando por la raíz.(1)
  14. lstree: mostrar los ficheros y carpetas en forma de árbol comenzando por la raíz.(2)
  15. mkdir dir1: crear una carpeta o directorio con nombre 'dir1'.
  16. mkdir dir1 dir2: crear dos carpetas o directorios simultáneamente (Crear dos directorios a la vez).
  17. mkdir -p /tmp/dir1/dir2: crear un árbol de directorios.
  18. rm -f file1: borrar el fichero llamado 'file1'.
  19. rmdir dir1: borrar la carpeta llamada 'dir1'.
  20. rm -rf dir1: eliminar una carpeta llamada 'dir1' con su contenido de forma recursiva. (Si lo borro recursivo estoy diciendo que es con su contenido).
  21. rm -rf dir1 dir2: borrar dos carpetas (directorios) con su contenido de forma recursiva.
  22. mv dir1 new_dir: renombrar o mover un fichero o carpeta (directorio).
  23. cp file1: copiar un fichero.
  24. cp file1 file2: copiar dos ficheros al unísono.
  25. cp dir /* .: copiar todos los ficheros de un directorio dentro del directorio de trabajo actual.
  26. cp -a /tmp/dir1 .: copiar un directorio dentro del directorio actual de trabajo.
  27. cp -a dir1: copiar un directorio.
  28. cp -a dir1 dir2: copiar dos directorio al unísono.
  29. ln -s file1 lnk1: crear un enlace simbólico al fichero o directorio.
  30. ln file1 lnk1: crear un enlace físico al fichero o directorio.
  31. touch -t 0712250000 file1: modificar el tiempo real (tiempo de creación) de un fichero o directorio.
  32. file file1: salida (volcado en pantalla) del tipo mime de un fichero texto.
  33. iconv -l: listas de cifrados conocidos.
  34. iconv -f fromEncoding -t toEncoding inputFile > outputFile: crea una nueva forma del fichero de entrada asumiendo que está codificado en fromEncoding y convirtiéndolo a ToEncoding.
  35. find . -maxdepth 1 -name *.jpg -print -exec convert ”{}” -resize 80×60 “thumbs/{}” \;: agrupar ficheros redimensionados en el directorio actual y enviarlos a directorios en vistas de miniaturas (requiere convertir desde ImagemagicK).


Encontrar archivos
  1. find / -name file1: buscar fichero y directorio a partir de la raíz del sistema.
  2. find / -user user1: buscar ficheros y directorios pertenecientes al usuario 'user1'.
  3. find /home/user1 -name \*.bin: buscar ficheros con extensión '. bin' dentro del directorio '/ home/user1'.
  4. find /usr/bin -type f -atime +100: buscar ficheros binarios no usados en los últimos 100 días.
  5. find /usr/bin -type f -mtime -10: buscar ficheros creados o cambiados dentro de los últimos 10 días.
  6. find / -name \*.rpm -exec chmod 755 '{}' \;: buscar ficheros con extensión '.rpm' y modificar permisos.
  7. find / -xdev -name \*.rpm: Buscar ficheros con extensión '.rpm' ignorando los dispositivos removibles como cdrom, pen-drive, etc.…
  8. locate \*.ps: encuentra ficheros con extensión '.ps' ejecutados primeramente con el command 'updatedb'.
  9. whereis halt: mostrar la ubicación de un fichero binario, de ayuda o fuente. En este caso pregunta dónde está el comando 'halt'.
  10. which comando: mostrar la senda completa (el camino completo) a un comando.


Montando un sistema de ficheros
  1. mount /dev/hda2 /mnt/hda2: montar un disco llamado hda2. Verifique primero la existencia del directorio '/ mnt/hda2'; si no está, debe crearlo.
  2. umount /dev/hda2: desmontar un disco llamado hda2. (Antes es necesario salir del punto '/mnt/hda2'.
  3. fuser -km /mnt/hda2: forzar el desmontaje cuando el dispositivo está ocupado.
  4. umount -n /mnt/hda2: correr el desmontaje sin leer el fichero /etc/mtab. Útil cuando el fichero es de solo lectura o el disco duro está lleno.
  5. mount /dev/fd0 /mnt/floppy: montar un disco flexible (floppy).
  6. mount /dev/cdrom /mnt/cdrom: montar un cdrom / dvdrom.
  7. mount /dev/hdc /mnt/cdrecorder: montar un cd regrabable o un dvdrom.
  8. mount /dev/hdb /mnt/cdrecorder: montar un cd regrabable / dvdrom (un dvd).
  9. mount -t udf,iso9660 -o loop file.iso /mnt/cdrom: montar un fichero o una imagen ISO.
  10. mount -t vfat /dev/hda5 /mnt/hda5: montar un sistema de ficheros FAT32.
  11. mount -t ntfs-3g /dev/hda5 /mnt/hda5: montar un sistema de ficheros NTFS.
  12. mount /dev/sda1 /mnt/usbdisk: montar un usb pen-drive o una memoria (sin especificar el tipo de sistema de ficheros).


Espacio en disco
  1. df -h: mostrar una lista de las particiones montadas.
  2. ls -lSr |more: mostrar el tamaño de los ficheros y directorios ordenados por tamaño.
  3. du -sh dir1: Estimar el espacio usado por el directorio 'dir1'.
  4. du -sk * | sort -rn: mostrar el tamaño de los ficheros y directorios ordenados por tamaño.
  5. rpm -q -a –qf '%10{SIZE}t%{NAME}n' | sort -k1,1n: mostrar el espacio usado por los paquetes rpm instalados organizados por tamaño (Fedora, Redhat y otros).
  6. dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n: mostrar el espacio usado por los paquetes instalados, organizados por tamaño (Ubuntu, Debian y otros).



Usuarios y grupos
  1. groupadd nombre_del_grupo: crear un nuevo grupo.
  2. groupdel nombre_del_grupo: borrar un grupo.
  3. groupmod -n nuevo_nombre_del_grupo viejo_nombre_del_grupo: renombrar un grupo.
  4. useradd -c “Name Surname ” -g admin -d /home/user1 -s /bin/bash user1: Crear un nuevo usuario perteneciente al grupo “admin”.
  5. useradd user1: crear un nuevo usuario.
  6. userdel -r user1: borrar un usuario ('-r' elimina el directorio Home).
  7. usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1: cambiar los atributos del usuario.
  8. passwd: cambiar contraseña.
  9. passwd user1: cambiar la contraseña de un usuario (solamente por root).
  10. chage -E 2011-12-31 user1: colocar un plazo para la contraseña del usuario. En este caso dice que la clave expira el 31 de diciembre de 2011.
  11. pwck: chequear la sintaxis correcta el formato de fichero de '/etc/passwd' y la existencia de usuarios.
  12. grpck: chequear la sintaxis correcta y el formato del fichero '/etc/group' y la existencia de grupos.
  13. newgrp group_name: registra a un nuevo grupo para cambiar el grupo predeterminado de los ficheros creados recientemente.

Permisos en ficheros (usar "+" para colocar permisos y "-" para eliminar)
  1. ls -lh: Mostrar permisos.
  2. ls /tmp | pr -T5 -W$COLUMNS: dividir la terminal en 5 columnas.
  3. chmod ugo+rwx directory1: colocar permisos de lectura ®, escritura (w) y ejecución(x) al propietario (u), al grupo (g) y a otros (o) sobre el directorio 'directory1'.
  4. chmod go-rwx directory1: quitar permiso de lectura ®, escritura (w) y (x) ejecución al grupo (g) y otros (o) sobre el directorio 'directory1'.
  5. chown user1 file1: cambiar el dueño de un fichero.
  6. chown -R user1 directory1: cambiar el propietario de un directorio y de todos los ficheros y directorios contenidos dentro.
  7. chgrp group1 file1: cambiar grupo de ficheros.
  8. chown user1:group1 file1: cambiar usuario y el grupo propietario de un fichero.
  9. find / -perm -u+s: visualizar todos los ficheros del sistema con SUID configurado.
  10. chmod u+s /bin/file1: colocar el bit SUID en un fichero binario. El usuario que corriendo ese fichero adquiere los mismos privilegios como dueño.
  11. chmod u-s /bin/file1: deshabilitar el bit SUID en un fichero binario.
  12. chmod g+s /home/public: colocar un bit SGID en un directorio –similar al SUID pero por directorio.
  13. chmod g-s /home/public: desabilitar un bit SGID en un directorio.
  14. chmod o+t /home/public: colocar un bit STIKY en un directorio. Permite el borrado de ficheros solamente a los dueños legítimos.
  15. chmod o-t /home/public: desabilitar un bit STIKY en un directorio.

Atributos especiales en ficheros (usar "+" para colocar permisos y "-" para eliminar)

  1. chattr +a file1: permite escribir abriendo un fichero solamente modo append.
  2. chattr +c file1: permite que un fichero sea comprimido / descomprimido automaticamente.
  3. chattr +d file1: asegura que el programa ignore borrar los ficheros durante la copia de seguridad.
  4. chattr +i file1: convierte el fichero en invariable, por lo que no puede ser eliminado, alterado, renombrado, ni enlazado.
  5. chattr +s file1: permite que un fichero sea borrado de forma segura.
  6. chattr +S file1: asegura que un fichero sea modificado, los cambios son escritos en modo synchronous como con sync.
  7. chattr +u file1: te permite recuperar el contenido de un fichero aún si este está cancelado.
  8. lsattr: mostrar atributos especiales.


Archivos y ficheros comprimidos
  1. bunzip2 file1.bz2: descomprime in fichero llamado 'file1.bz2'.
  2. bzip2 file1: comprime un fichero llamado 'file1'.
  3. gunzip file1.gz: descomprime un fichero llamado 'file1.gz'.
  4. gzip file1: comprime un fichero llamado 'file1'.
  5. gzip -9 file1: comprime con compresión máxima.
  6. rar a file1.rar test_file: crear un fichero rar llamado 'file1.rar'.
  7. rar a file1.rar file1 file2 dir1: comprimir 'file1', 'file2' y 'dir1' simultáneamente.
  8. rar x file1.rar: descomprimir archivo rar.
  9. unrar x file1.rar: descomprimir archivo rar.
  10. tar -cvf archive.tar file1: crear un tarball descomprimido.
  11. tar -cvf archive.tar file1 file2 dir1: crear un archivo conteniendo 'file1', 'file2' y'dir1'.
  12. tar -tf archive.tar: mostrar los contenidos de un archivo.
  13. tar -xvf archive.tar: extraer un tarball (si el archivo además está comprimido con gzip, bzip2 o xz, descomprimirlo automáticamente).
  14. tar -xvf archive.tar -C /tmp: extraer un tarball en /tmp.
  15. tar -cjvf archive.tar.bz2 dir1: crear un tarball comprimido en bzip2.
  16. tar -xjvf archive.tar.bz2: descomprimir un archivo tar comprimido en bzip2
  17. tar -cJvf archive.tar.xz dir1: crear un tarball comprimido en xz.
  18. tar -xJvf archive.tar.xz: descomprimir un archivo tar comprimido en xz.
  19. tar -czvf archive.tar.gz dir1: crear un tarball comprimido en gzip.
  20. tar -xzvf archive.tar.gz: descomprimir un archive tar comprimido en gzip.
  21. zip file1.zip file1: crear un archivo comprimido en zip.
  22. zip -r file1.zip file1 file2 dir1: comprimir, en zip, varios archivos y directorios de forma simultánea.
  23. unzip file1.zip: descomprimir un archivo zip.



Paquetes rpm (Red Hat, Fedora y similares)
  1. rpm -ivh package.rpm: instalar un paquete rpm.
  2. rpm -ivh –nodeeps package.rpm: instalar un paquete rpm ignorando las peticiones de dependencias.
  3. rpm -U package.rpm: actualizar un paquete rpm sin cambiar la configuración de los ficheros.
  4. rpm -F package.rpm: actualizar un paquete rpm solamente si este está instalado.
  5. rpm -e package_name.rpm: eliminar un paquete rpm.
  6. rpm -qa: mostrar todos los paquetes rpm instalados en el sistema.
  7. rpm -qa | grep httpd: mostrar todos los paquetes rpm con el nombre “httpd”.
  8. rpm -qi package_name: obtener información en un paquete específico instalado.
  9. rpm -qg “System Environment/Daemons”: mostar los paquetes rpm de un grupo software.
  10. rpm -ql package_name: mostrar lista de ficheros dados por un paquete rpm instalado.
  11. rpm -qc package_name: mostrar lista de configuración de ficheros dados por un paquete rpm instalado.
  12. rpm -q package_name –whatrequires: mostrar lista de dependencias solicitada para un paquete rpm.
  13. rpm -q package_name –whatprovides: mostar la capacidad dada por un paquete rpm.
  14. rpm -q package_name –scripts: mostrar los scripts comenzados durante la instalación /eliminación.
  15. rpm -q package_name –changelog: mostar el historial de revisions de un paquete rpm.
  16. rpm -qf /etc/httpd/conf/httpd.conf: verificar cuál paquete rpm pertenece a un fichero dado.
  17. rpm -qp package.rpm -l: mostrar lista de ficheros dados por un paquete rpm que aún no ha sido instalado.
  18. rpm –import /media/cdrom/RPM-GPG-KEY: importar la firma digital de la llave pública.
  19. rpm –checksig package.rpm: verificar la integridad de un paquete rpm.
  20. rpm -qa gpg-pubkey: verificar la integridad de todos los paquetes rpm instalados.
  21. rpm -V package_name: chequear el tamaño del fichero, licencias, tipos, dueño, grupo, chequeo de resumen de MD5 y última modificación.
  22. rpm -Va: chequear todos los paquetes rpm instalados en el sistema. Usar con cuidado.
  23. rpm -Vp package.rpm: verificar un paquete rpm no instalado todavía.
  24. rpm2cpio package.rpm | cpio –extract –make-directories *bin*: extraer fichero ejecutable desde un paquete rpm.
  25. rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm: instalar un paquete construido desde una fuente rpm.
  26. rpmbuild –rebuild package_name.src.rpm: construir un paquete rpm desde una fuente rpm.



Actualizador de paquetes yum (Fedora, Redhat y otros)
  1. yum install package_name: descargar e instalar un paquete rpm.
  2. yum localinstall package_name.rpm: este instalará un RPM y tratará de resolver todas las dependencies para ti, usando tus repositorios.
  3. yum update package_name.rpm: actualizar todos los paquetes rpm instalados en el sistema.
  4. yum update package_name: modernizar / actualizar un paquete rpm.
  5. yum remove package_name: eliminar un paquete rpm.
  6. yum list: listar todos los paquetes instalados en el sistema.
  7. yum search package_name: Encontrar un paquete en repositorio rpm.
  8. yum clean packages: limpiar un caché rpm borrando los paquetes descargados.
  9. yum clean headers: eliminar todos los ficheros de encabezamiento que el sistema usa para resolver la dependencia.
  10. yum clean all: eliminar desde los paquetes caché y ficheros de encabezado.



Paquetes deb (Debian, Ubuntu y otros)
  1. dpkg -i package.deb: instalar / actualizar un paquete deb.
  2. dpkg -r package_name: eliminar un paquete deb del sistema.
  3. dpkg -l: mostrar todos los paquetes deb instalados en el sistema.
  4. dpkg -l | grep httpd: mostrar todos los paquetes deb con el nombre “httpd”
  5. dpkg -s package_name: obtener información en un paquete específico instalado en el sistema.
  6. dpkg -L package_name: mostar lista de ficheros dados por un paquete instalado en el sistema.
  7. dpkg –contents package.deb: mostrar lista de ficheros dados por un paquete no instalado todavía.
  8. dpkg -S /bin/ping: verificar cuál paquete pertenece a un fichero dado.



Actualizador de paquetes apt (Debian, Ubuntu y otros)
  1. apt-get install package_name: instalar / actualizar un paquete deb.
  2. apt-cdrom install package_name: instalar / actualizar un paquete deb desde un cdrom.
  3. apt-get update: actualizar la lista de paquetes.
  4. apt-get upgrade: actualizar todos los paquetes instalados.
  5. apt-get remove package_name: eliminar un paquete deb del sistema.
  6. apt-get check: verificar la correcta resolución de las dependencias.
  7. apt-get clean: limpiar cache desde los paquetes descargados.
  8. apt-cache search searched-package: retorna lista de paquetes que corresponde a la serie «paquetes buscados».


Ver el contenido de un fichero
  1. cat file1: ver los contenidos de un fichero comenzando desde la primera hilera.
  2. tac file1: ver los contenidos de un fichero comenzando desde la última línea.
  3. more file1: ver el contenido a lo largo de un fichero.
  4. less file1: parecido al commando 'more' pero permite salvar el movimiento en el fichero así como el movimiento hacia atrás.
  5. head -2 file1: ver las dos primeras líneas de un fichero.
  6. tail -2 file1: ver las dos últimas líneas de un fichero.
  7. tail -f /var/log/messages: ver en tiempo real qué ha sido añadido al fichero.



Manipulación de texto
  1. cat file1 file2 .. | command <> file1_in.txt_or_file1_out.txt: sintaxis general para la manipulación de texto utilizando PIPE, STDIN y STDOUT.
  2. cat file1 | command( sed, grep, awk, grep, etc…) > result.txt: sintaxis general para manipular un texto de un fichero y escribir el resultado en un fichero nuevo.
  3. cat file1 | command( sed, grep, awk, grep, etc…) » result.txt: sintaxis general para manipular un texto de un fichero y añadir resultado en un fichero existente.
  4. grep Aug /var/log/messages: buscar palabras “Aug” en el fichero '/var/log/messages'.
  5. grep ^Aug /var/log/messages: buscar palabras que comienzan con “Aug” en fichero '/var/log/messages'
  6. grep [0-9] /var/log/messages: seleccionar todas las líneas del fichero '/var/log/messages' que contienen números.
  7. grep Aug -R /var/log/*: buscar la cadena “Aug” en el directorio '/var/log' y debajo.
  8. sed 's/stringa1/stringa2/g' example.txt: reubicar “string1” con “string2” en ejemplo.txt
  9. sed '/^$/d' example.txt: eliminar todas las líneas en blanco desde el ejemplo.txt
  10. sed '/ *#/d; /^$/d' example.txt: eliminar comentarios y líneas en blanco de ejemplo.txt
  11. echo 'esempio' | tr '[:lower:]' '[:upper:]': convertir minúsculas en mayúsculas.
  12. sed -e '1d' result.txt: elimina la primera línea del fichero ejemplo.txt
  13. sed -n '/stringa1/p': visualizar solamente las líneas que contienen la palabra “string1”.



Establecer caracter y conversión de ficheros
  1. dos2unix filedos.txt fileunix.txt: convertir un formato de fichero texto desde MSDOS a UNIX.
  2. unix2dos fileunix.txt filedos.txt: convertir un formato de fichero de texto desde UNIX a MSDOS.
  3. recode ..HTML < page.txt > page.html: convertir un fichero de texto en html.
  4. recode -l | more: mostrar todas las conversiones de formato disponibles.


Análisis del sistema de ficheros
  1. badblocks -v /dev/hda1: Chequear los bloques defectuosos en el disco hda1.
  2. fsck /dev/hda1: reparar / chequear la integridad del fichero del sistema Linux en el disco hda1.
  3. fsck.ext2 /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 2 en el disco hda1.
  4. e2fsck /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 2 en el disco hda1.
  5. e2fsck -j /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 3 en el disco hda1.
  6. fsck.ext3 /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 3 en el disco hda1.
  7. fsck.vfat /dev/hda1: reparar / chequear la integridad del fichero sistema fat en el disco hda1.
  8. fsck.msdos /dev/hda1: reparar / chequear la integridad de un fichero del sistema dos en el disco hda1.
  9. dosfsck /dev/hda1: reparar / chequear la integridad de un fichero del sistema dos en el disco hda1.



Formatear un sistema de ficheros
  1. mkfs /dev/hda1: crear un fichero de sistema tipo Linux en la partición hda1.
  2. mke2fs /dev/hda1: crear un fichero de sistema tipo Linux ext 2 en hda1.
  3. mke2fs -j /dev/hda1: crear un fichero de sistema tipo Linux ext3 (periódico) en la partición hda1.
  4. mkfs -t vfat 32 -F /dev/hda1: crear un fichero de sistema FAT32 en hda1.
  5. fdformat -n /dev/fd0: formatear un disco flooply.
  6. mkswap /dev/hda3: crear un fichero de sistema swap.



Partición de sistema swap
  1. mkswap /dev/hda3: crear fichero de sistema swap.
  2. swapon /dev/hda3: activando una nueva partición swap.
  3. swapon /dev/hda2 /dev/hdb3: activar dos particiones swap.



Salvas (Backup)
  1. dump -0aj -f /tmp/home0.bak /home: hacer una salva completa del directorio '/home'.
  2. dump -1aj -f /tmp/home0.bak /home: hacer una salva incremental del directorio '/home'.
  3. restore -if /tmp/home0.bak: restaurando una salva interactivamente.
  4. rsync -rogpav –delete /home /tmp: sincronización entre directorios.
  5. rsync -rogpav -e ssh –delete /home ip_address:/tmp: rsync a través del túnel SSH.
  6. rsync -az -e ssh –delete ip_addr:/home/public /home/local: sincronizar un directorio local con un directorio remoto a través de ssh y de compresión.
  7. rsync -az -e ssh –delete /home/local ip_addr:/home/public: sincronizar un directorio remoto con un directorio local a través de ssh y de compresión.
  8. dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz': hacer una salva de un disco duro en un host remoto a través de ssh.
  9. dd if=/dev/sda of=/tmp/file1: salvar el contenido de un disco duro a un fichero. (En este caso el disco duro es “sda” y el fichero “file1”).
  10. tar -Puf backup.tar /home/user: hacer una salva incremental del directorio '/home/user'.
  11. tar -czv –exclude=/root/dir1/* -f /var/salvas/cfg_$(date +%F_%H%M).tgz /etc /root: salvar los directorios /etc y /root (excluyendo el contenido del subdirectorio /root/dir1/) en un archivo comprimido, cuyo nombre contenga la fecha y hora actual.
  12. ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p': copiar el contenido de un directorio en un directorio remoto a través de ssh.
  13. ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p': copiar un directorio local en un directorio remoto a través de ssh.
  14. tar cf - . | (cd /tmp/backup ; tar xf - ): copia local conservando las licencias y enlaces desde un directorio a otro.
  15. find /home/user1 -name '*.txt' | xargs cp -av –target-directory=/home/backup/ –parents: encontrar y copiar todos los ficheros con extensión '.txt' de un directorio a otro.
  16. find /var/log -name '*.log' | tar cv –files-from=- | bzip2 > log.tar.bz2: encontrar todos los ficheros con extensión '.log' y hacer un archivo bzip.
  17. dd if=/dev/hda of=/dev/fd0 bs=512 count=1: hacer una copia del MRB (Master Boot Record) a un disco floppy.
  18. dd if=/dev/fd0 of=/dev/hda bs=512 count=1: restaurar la copia del MBR (Master Boot Record) salvada en un floppy.





CDROM
  1. cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force: limpiar o borrar un cd regrabable.
  2. mkisofs /dev/cdrom > cd.iso: crear una imagen iso de cdrom en disco.
  3. mkisofs /dev/cdrom | gzip > cd_iso.gz: crear una imagen comprimida iso de cdrom en disco.
  4. mkisofs -J -allow-leading-dots -R -V “Label CD” -iso-level 4 -o ./cd.iso data_cd: crear una imagen iso de un directorio.
  5. cdrecord -v dev=/dev/cdrom cd.iso: quemar una imagen iso.
  6. gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom -: quemar una imagen iso comprimida.
  7. mount -t udf,iso9660 -o loop cd.iso /mnt/iso: montar una imagen iso.
  8. cd-paranoia -B: llevar canciones de un cd a ficheros wav.
  9. cd-paranoia – ”-3”: llevar las 3 primeras canciones de un cd a ficheros wav.
  10. cdrecord –scanbus: escanear bus para identificar el canal scsi.
  11. dd if=/dev/hdc | md5sum: hacer funcionar un md5sum en un dispositivo, como un CD.
  12. eject -v: expulsar un medio o disco extraíble, ofreciendo información adicional.



Trabajo con la red (LAN Y WIFI)
  1. ifconfig eth0: mostrar la configuración de una tarjeta de red Ethernet.
  2. ifup eth0: activar una interface 'eth0'.
  3. ifdown eth0: deshabilitar una interface 'eth0'.
  4. ifconfig eth0 192.168.1.1 netmask 255.255.255.0: configurar una dirección IP.
  5. ifconfig eth0 promisc: configurar 'eth0'en modo común para obtener los paquetes (sniffing).
  6. dhclient eth0: activar la interface 'eth0' en modo dhcp.
  7. route -n: mostrar mesa de recorrido.
  8. route add -net 0/0 gw IP_Gateway: configurar entrada predeterminada.
  9. route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1: configurar ruta estática para buscar la red '192.168.0.0/16'.
  10. route del 0/0 gw IP_gateway: eliminar la ruta estática.
  11. echo “1” > /proc/sys/net/ipv4/ip_forward: activar el recorrido ip.
  12. hostname: mostrar el nombre del host del sistema.
  13. host www.example.com: buscar el nombre del host para resolver el nombre a una dirección ip(1).
  14. nslookup www.example.com: buscar el nombre del host para resolver el nombre a una direccióm ip y viceversa(2).
  15. ip link show: mostar el estado de enlace de todas las interfaces.
  16. mii-tool eth0: mostar el estado de enlace de 'eth0'.
  17. ethtool eth0: mostrar las estadísticas de tarjeta de red 'eth0'.
  18. netstat -tup: mostrar todas las conexiones de red activas y sus PID.
  19. netstat -tupl: mostrar todos los servicios de escucha de red en el sistema y sus PID.
  20. netstat -punta: mostrar todas las conexiones activas por dirección IP y puerto.
  21. tcpdump tcp port 80: mostrar todo el tráfico HTTP.
  22. iwlist scan: mostrar las redes inalámbricas.
  23. iwconfig eth1: mostrar la configuración de una tarjeta de red inalámbrica.
  24. whois www.example.com: buscar en base de datos Whois.



Redes de Microsoft Windows (Samba)
  1. nbtscan ip_addr: resolución de nombre de red bios.
  2. nmblookup -A ip_addr: resolución de nombre de red bios.
  3. smbclient -L ip_addr/hostname: mostrar acciones remotas de un host en windows.
Cortafuegos (iptables)
  1. iptables -t filter -L: mostrar todas las cadenas de la tabla de filtro.
  2. iptables -t nat -L: mostrar todas las cadenas de la tabla nat.
  3. iptables -t filter -F: limpiar todas las reglas de la tabla de filtro.
  4. iptables -t nat -F: limpiar todas las reglas de la tabla nat.
  5. iptables -t filter -X: borrar cualquier cadena creada por el usuario.
  6. iptables -t filter -A INPUT -p tcp –dport telnet -j ACCEPT: permitir las conexiones telnet para entar.
  7. iptables -t filter -A OUTPUT -p tcp –dport http -j DROP: bloquear las conexiones HTTP para salir.
  8. iptables -t filter -A FORWARD -p tcp –dport pop3 -j ACCEPT: permitir las conexiones POP a una cadena delantera.
  9. iptables -t filter -A INPUT -j LOG –log-prefix “DROP INPUT”: registrando una cadena de entrada.
  10. iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE: configurar un PAT (Puerto de traducción de dirección) en eth0, ocultando los paquetes de salida forzada.
  11. iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp –dport 22 -j DNAT –to-destination 10.0.0.2:22: redireccionar los paquetes diriguidos de un host a otro.
  12. iptables -t nat -S: Listar todas las reglas activas en la tabla nat.
  13. iptables-save -c > archivo: Salvar las reglas en un archivo (incluyendo los contadores de paquetes y bytes).
  14. iptables-restore -c < archivo: Restaurar las reglas desde un archivo (incluyendo los contadores de paquetes y bytes).


Monitoreando y depurando
  1. top: mostrar las tareas de linux usando la mayoría cpu.
  2. htop: mostrar y gestionar las tareas con una interfaz amistosa.
  3. ps -eafw: muestra las tareas Linux.
  4. ps -e -o pid,args –forest: muestra las tareas Linux en un modo jerárquico.
  5. ps aux | grep -i wget: listar todas las tareas activas que incluyen el comando wget (sintaxis BSD).
  6. pstree: mostrar un árbol sistema de procesos.
  7. kill -9 ID_Processo: forzar el cierre de un proceso y terminarlo.
  8. kill -1 ID_Processo: forzar un proceso para recargar la configuración.
  9. killall Nombre_Proceso: terminar un proceso por el nombre del comando y no por el ID.
  10. lsof -p $$: mostrar una lista de ficheros abiertos por procesos.
  11. lsof /home/user1: muestra una lista de ficheros abiertos en un camino dado del sistema.
  12. strace -c ls >/dev/null: mostrar las llamadas del sistema hechas y recibidas por un proceso.
  13. strace -f -e open ls >/dev/null: mostrar las llamadas a la biblioteca.
  14. watch -n1 'cat /proc/interrupts': mostrar interrupciones en tiempo real.
  15. last reboot: mostrar historial de reinicio.
  16. lsmod: mostrar el kernel cargado.
  17. free -m: muestra el estado de la RAM en megabytes.
  18. smartctl -A /dev/hda: monitorear la fiabilidad de un disco duro a través de SMART.
  19. smartctl -i /dev/hda: chequear si SMART está activado en un disco duro.
  20. tail /var/log/dmesg: mostrar eventos inherentes al proceso de carga del kernel.
  21. tail /var/log/messages: mostrar los eventos del sistema.
  22. multitail –follow-all /var/log/dmesg /var/log/messages: mostrar dos registros de eventos en una misma pantalla.



Otros comandos útiles
  1. apropos …keyword: mostrar una lista de comandos que pertenecen a las palabras claves de un programa; son útiles cuando tú sabes qué hace tu programa, pero de sconoces el nombre del comando.
  2. man ping: mostrar las páginas del manual on-line; por ejemplo, en un comando ping, usar la opción '-k' para encontrar cualquier comando relacionado.
  3. whatis …keyword: muestra la descripción de lo que hace el programa.
  4. mkbootdisk –device /dev/fd0 `uname -r`: crear un floppy boteable.
  5. gpg -c file1: codificar un fichero con guardia de seguridad GNU.
  6. gpg file1.gpg: decodificar un fichero con Guardia de seguridad GNU.
  7. wget -r www.example.com: descargar un sitio web completo.
  8. wget -c www.example.com/file.iso: descargar un fichero con la posibilidad de parar la descargar y reanudar más tarde.
  9. echo 'wget -c www.example.com/files.iso' | at 09:00: Comenzar una descarga a cualquier hora. En este caso empezaría a las 9 horas.
  10. ldd /usr/bin/ssh: mostrar las bibliotecas compartidas requeridas por el programa ssh.
  11. alias hh='history': colocar un alias para un commando –hh= Historial.
  12. chsh: cambiar el comando Shell.
  13. chsh –list-shells: es un comando adecuado para saber si tienes que hacer remoto en otra terminal.
  14. who -a: mostrar quien está registrado, e imprimir hora del último sistema de importación, procesos muertos, procesos de registro de sistema, procesos activos producidos por init, funcionamiento actual y últimos cambios del reloj del sistema.
  15. echo “128*1024*1024” | bc: calcular desde la consola el tamaño en bytes de 128 MiB.
  16. sudo !!: ejecutar como superusuario el último comando tecleado.
  17. clear: limpiar la pantalla.

Electrónica (parte II)

1.- ¿Qué es un circuito integrado?

Es un dispositivo electronico en el que cientos, miles e incluso millones de componentes discretos (transistores, resistencias, capacotores, diodos, etc.) trabajan armonicamente dentro de una pastilla a la que se le conoce con el nombre de chip. Los circuitos integrados son la base fundamental del desarrollo de la electrónica en la actualidad, debido a la tendencia a facilitar y economizar las tareas del hombre. 

Los circuitos cuyos componentes realizan operaciones análogas a las que indican los operadores lógicos se llaman "Circuitos Lógicos" o "circuitos digitales". Los Circuitos Lógicos están compuestos por elementos digitales como la compuerta AND (Y), compuerta OR (O), compuerta NOT (NO) y otras combinaciones muy complejas de los circuitos antes mencionados.
 

2.- ¿Qué es un circuito integrado lineal?

Los que admiten para la entrada un rango de señales dentro del cual se pueden tomar infinitos valores válidos, al igual que sucede en la salida.

3.-  Ejemplo de circuitos integrados lineales digitales.

Comparadores, convertidores DA, de interfase, temporizadores, osciladores controlados por voltaje (VCO), lazos de seguimiento de fase (PPL’s).

4.- ¿Como se clasifican los circuitos integrados?

Conforme al tipo de señal que emplean. Digitales y Lineales.

5.- ¿Como funcionan los circuitos integrados digitales?

Manejan señales discretas en forma de pulsos. Bajo este concepto, la existencia de un pulso representa el numero 1 y su ausencia el 0.

6.- ¿Qué es un circuito comparador?

Permite la entrada de voltajes lineales y proporciona una salida digital que indica cuando una entrada es menor o mayor que la segunda.  Es un circuito electrónico, ya sea analógico o digital, capaz de comparar dos señales de entrada y variar la salida en función de cuál es mayor. En un circuito electrónico, se llama comparador a un amplificador operacional en lazo abierto (sin realimentación entre su salida y su entrada) y suele usarse para comparar una tensión variable con otra tensión fija que se utiliza como referencia.

Como todo amplificador operacional, un comparador estará alimentado por dos fuentes de corriente contínua (+Vcc, -Vcc). El comparador hace que, si la tensión de entrada en el borne positivo (V1) es mayor que la tensión conectada al borne negativo (V2), la salida (Vout) será igual a +Vcc. En caso contrario, la salida tendrá una tensión -Vcc. Lo podemos resumir de la siguiente manera:

si V1 > V2 => (V1-V2) > 0 => Vout = +Vcc.

si V1 < V2 => (V1-V2) < 0 => Vout = -Vcc.


Un comparador es un circuito analógico que monitorea dos entradas de voltaje. Uno es llamado voltaje de referencia (Vref) y el otro voltaje de entrada (Vin). Cuando Vin se incrementa por encima o se reduce por debajo de Vref, la salida (Vout) del comparador cambia de estado entre bajo y alto . Los comparadores son circuitos no lineales que, como su nombre indica, sirven para comparar dos señales (una de las cuales generalmente es una tensión de referencia) y determinar cuál de ellas es mayor o menor.

La tensión de salida tiene dos estados (binaria) y se comporta como un convertidor analógico-digital de 1 bit. Su utilización en las aplicaciones de generación de señal, detección, modulación de señal, etc, es muy importante y constituye un bloque analógico básico en muchos circuitos. La función del comparador es comparar dos tensiones obteniéndose como resultado una tensión alta (VOH) o baja (VOL).

7.- ¿Que es el comparador no inversor?

En este comparador la tensión de referencia se aplica a la entrada inversora, y la señal a detectar será aplicada a la entrada no inversora. La tensión de referencia puede ser positiva o negativa.

8.- ¿El comparador inversor?


En este comparador la tensión de referencia se aplica a la entrada no inversora, y la señal a detectar será aplicada a la entrada inversora. La tensión de referencia puede ser positiva o negativa.

9.- Menciona un beneficio que se obtiene al incorporar un comparador a un CI.

Conmutación mas rápida entre los dos niveles de salida.

10.- ¿Que es un convertidor de señal analógica a digital?


Es un dispositivo electrónico capaz de convertir una señal analógica de voltaje en una señal digital con un valor binario. Se utiliza en equipos electrónicos como computadora, grabadores de sonido y de vídeo, y equipos de telecomunicaciones. La señal analógica, que varía de forma continua en el tiempo, se conecta a la entrada del dispositivo y se somete a un muestreo a una velocidad fija, obteniéndose así una señal digital a la salida del mismo.

Un convertidor A/D toma un voltaje de entrada analógico y después de cierto tiempo produce un código de salida digital que representa la entrada analógica. El proceso de conversión A/D es generalmente más complejo y largo que el proceso D/A, y se han creado y utilizado muchos métodos.

11.- ¿Que es un convertidor de señal digital – analógico?

Básicamente, la conversión D/A es el proceso de tomar un valor representado en código digital (código binario directo o BCD) y convertirlo en un voltaje o corriente que sea proporcional al valor digital. Este voltaje o corriente es una cantidad analógica, ya que puede tomar diferentes valores de cierto intervalo.

12.- ¿Cuál es la diferencia entre un convertidor digital-analógico y uno analógico-digital?

Un convertidor Analógico-Digital, obtiene un valor digital que representa un voltaje analógico de entrada, mientras que un convertidor digital analógico convierte un valor digital de nuevo a un voltaje analógico.

13.- ¿Que es un Amplificador Operacional ?

Puede ser utilizado para determinar cual de dos señales en sus entradas es mayor. (se utiliza como comparador). Basta con que una de estas señales sea ligeramente mayor para que cause que la salida del amplificador operacional sea máxima, ya sea positiva (+Vsat) o negativa (-Vsat).

Se trata de un dispositivo electrónico (normalmente se presenta como circuito integrado) que tiene dos entradas y una salida. La salida es la diferencia de las dos entradas multiplicada por un factor (G) (ganancia) El amplificador operacional es un dispositivo lineal de propósito general el cual tiene capacidad de manejo de señal desde f=0 Hz hasta una frecuencia definida por el fabricante; tiene además límites de señal que van desde el orden de los nV, hasta unas docenas de voltio (especificacion también definida por el fabricante). Los amplificadores operacionales se caracterizan por su entrada diferencial y una ganancia muy alta, generalmente mayor que 105 equivalentes a 100dB.

El Amplificador Operacional es un amplificador de alta ganancia directamente acoplado, que en general se alimenta con fuentes positivas y negativas, lo cual permite que tenga excursiones tanto por arriba como por debajo de tierra (o el punto de referencia que se considere). El nombre de Amplificador Operacional proviene de una de las utilidades básicas de este, como lo son realizar operaciones matemáticas en computadores analógicos (características operativas).

El Amplificador Operacional ideal se caracteriza por:

1. Resistencia de entrada,(Ren), tiende a infinito.
2. Resistencia de salida, (Ro), tiende a cero.
3. Ganancia de tensión de lazo abierto, (A), tiende a infinito
4. Ancho de banda (BW) tiende a infinito.
5. vo = 0 cuando v+ = v-


Originalmente los Amplificadores Operacionales se empleaban para operaciones matemáticas (suma, resta, multiplicación, división, integración, derivación, etc.) en calculadoras analógicas. De ahí su nombre.

El Amplificador Operacional ideal tiene una ganancia infinita, una impedancia de entrada infinita, un ancho de banda también infinito, una impedancia de salida nula, un tiempo de respuesta nulo y ningún ruido. Como la impedancia de entrada es infinita también se dice que las corrientes de entrada son cero.

Las primeras veces que se utilizaron los amplificadores operacionales fue en los computadores analógicos, hacia mediados del siglo XX e implementados con tubos de vacío. Realizaban sumas, diferencias, multiplicación, diferenciación e integración, y todo ello de forma analógica. De aquí se deriva su nombre “amplificador operacional”.

Las características principales de un operacional son:

1. La impedancia de entrada es muy alta, del orden de megohms.
2. La impedancia de salida Zout es muy baja, del orden de 1 ohm
3. Las entradas apenas drenan corriente, por lo que no suponen una carga.
4. La ganancia es muy alta, del orden de 10^5 y mayor.
5. En lazo cerrado, las entradas inversora y no inversora son prácticamente iguales.


14.- Circuitos básicos con operacionales

  1. Amplificador no inversor
  2. Amplificador inversor
  3. Buffer o seguidor
  4. Restador.
  5. Sumador
15.- Polarización DC para BJT

Los transistores tienen como función principal la amplificación de señales, para lograr este cometido deben ser polarizados adecuadamente mediante la aplicación de voltajes DC en sus uniones B-E y B-C. Esto se consigue a través de circuitos de polarización, los cuales garantizan que el transistor se encuentre ubicado en un punto sobre su "recta de carga" y en su zona activa.

Existen una gran variedad de circuitos de polarización, dentro de los cuales podemos identificar claramente cuatro tipos básicos:

a) circuito de polarización fija (corriente de base constante)
b) circuito de polarización estabilizada por emisor
c) circuito de polarización por divisor de voltaje ( tipo H o universal)
d) circuito de polarización por realimentación de colector



16. -Circuito de polarización fija

Este circuito es el mas sencillo de todos los circuitos de polarización. La resistencia Rc limita la corriente máxima que circula por el transistor cuando este se encuentra en saturación, mientras que la resistencia de base RB regula la cantidad de corriente que ingresa a la base del transistor (IB), la cual determina en que zona se polarizará el transistor (saturación, activa o corte).

lunes, 17 de noviembre de 2014

Electrónica (Parte I)


La electrónica es el campo de la ingeniería y de la física aplicada relativo al diseño y aplicación de dispositivos, por lo general circuitos electrónicos, cuyo funcionamiento depende del flujo de electrones para la generación, transmisión, recepción, almacenamiento de información, entre otros.

Prácticamente en todos los aspectos de la vida interviene, de una u otra forma, la energía eléctrica, siendo cada día más frecuente el uso que de ella se hace. Desde que suena el despertador por la mañana, encendemos la luz, conectamos la radio, la televisión, la lavadora, el ordenador, etc.; todo un sin fin de aparatos electrodomésticos, medios de transporte, comunicación y maquinaria funcionan con electricidad. Es, pues, de especial interés adquirir conceptos claros y concisos acerca de esta parte de la ciencia para poder aplicarlos práctica y correctamente a lo largo de nuestra vida profesional.

Teoría electrónica


Los átomos son la unidad básica de toda la materia, la estructura que define a todos los elementos y tiene propiedades químicas bien definidas. Todos los elementos químicos de la tabla periódica están compuestos por átomos con exactamente la misma estructura y a su vez, éstos se componen de tres tipos de partículas, como los protones, los neutrones y los electrones.

Cualquier átomo está constituido por un núcleo subdividido, a su vez, en protones y neutrones; en torno a dicho núcleo giran los electrones. El protón tiene carga positiva y el electrón carga negativa. En un átomo eléctricamente neutro, el número de protones es igual al número de electrones.



Si un átomo pierde electrones queda electrizado positivamente; si, por el contrario, los adquiere, queda electrizado negativamente. De todos es conocido el fenómeno de electrización de los cuerpos por frotamiento. El electrón es la parte más importante del átomo, ya que de su facilidad para moverse a lo largo de los cuerpos va a depender que éstos sean conductores o aislantes. Por tanto, podemos decir que la unidad elemental de carga eléctrica es el electrón.

Amperaje

El amperaje no es otra cosa que la fuerza o la potencia en una corriente eléctrica circulando entre dos puntos, estos son el negativo y el positivo a través de un conductor o cable eléctrico. La corriente eléctrica circula del negativo hacia el positivo.

Divisor de tensión

Un divisor de tensión es una configuración de circuito eléctrico que reparte la tensión de una fuente entre una o más impedancias conectadas en serie.

Electricidad

En electricidad se entiende por fuente al elemento activo que es capaz de generar una diferencia de potencial entre sus bornes o proporcionar una corriente eléctrica para que otros circuitos funcionen.

Tierra

Se emplea en las instalaciones eléctricas para llevar a tierra cualquier derivación indebida de la corriente eléctrica a los elementos que puedan estar en contacto con los usuarios (carcasas, aislamientos,...) de aparatos de uso normal, por un fallo del aislamiento de los conductores activos, evitando el paso de corriente al posible usuario.

Electrón

Un electrón es una partícula elemental estable cargada negativamente que constituye uno de los componentes fundamentales del átomo.

Cargas eléctricas

Las cargas eléctricas son partículas que ejercen fuerzas atractivas y repulsivas entre ellas.

Potenciómetro

Un potenciómetro es un componente electrónico similar a los resistores pero cuyo valor de resistencia en vez de ser fijo es variable, permitiendo controlar la intensidad de corriente a lo largo de un circuito conectándolo en paralelo ó la caída de tensión al conectarlo en serie

Circuito Abierto

Un Circuito Abierto (c.a.), es simplemente la no unión de dos conexiones, es decir, si por ejemplo tenemos un cable donde pasan unos 5 V, si lo cortáramos tendríamos dos cables, uno donde aún siguen pasando los 5 V y el otro extremo donde no existe ninguna tensión, es decir el cable está abierto. Como podemos ver, al estar abierto el circuito, no existe continuidad de corriente, o sea, no hay paso de corriente, esto es equivalente que tener una resistencia de valor infinito, donde esta absorbe toda la tensión y no deja pasar la corriente.

Fuente de Voltaje

Es un dispositivo que convierte la tensión alterna de la red de suministro, en una o varias tensiones, prácticamente continuas, que alimentan los distintos circuitos del aparato electrónico al que se conecta (ordenador, televisor, impresora, router, etc.).

Las fuentes de alimentación, para dispositivos electrónicos, pueden clasificarse básicamente como fuentes de alimentaciones lineales y conmutadas. Es un dispositivo electrónico capaz de generar una diferencia de potencial entre sus terminales (un voltaje) para generar una corriente eléctrica. En otras palabras son dispositivos que nos proveen el voltaje necesario para que los circuitos electrónicos funcionen, sin una fuente de voltaje, los circuitos simplemente no encienden.

Electrón libre

Electrón libre Aquel que sólo está débilmente sujeto por un átomo.

Aislante eléctrico

Un aislante eléctrico es un material con escasa capacidad de conducción de la electricidad, utilizado para separar conductores eléctricos evitando un cortocircuito y para mantener alejadas del usuario determinadas partes de los sistemas eléctricos que de tocarse accidentalmente cuando se encuentran en tensión pueden producir una descarga

Circuito eléctrico

El circuito eléctrico es el recorrido preestablecido por el que se desplazan las cargas eléctricas.

Circuito Cerrado

La noción de circuito cerrado refiere a la interconexión de dos o más componentes con, al menos, una trayectoria cerrada. El circuito cerrado en la electricidad implica un conjunto de fuentes, interruptores, resistencias, semiconductores, inductores, condensadores y cables, entre otros componentes. Gracias al circuito cerrado, el flujo de corriente eléctrica circula entre los componentes.

La corriente directa

La corriente directa (CD) o corriente continua (CC) es aquella cuyas cargas eléctricas o electrones fluyen siempre en el mismo sentido en un circuito eléctrico cerrado, moviéndose del polo negativo hacia el polo positivo de una fuente de fuerza electromotriz (FEM), tal como ocurre en las baterías, las dinamos o en cualquier otra fuente generadora de ese tipo de corriente eléctrica.

Tubos de vacío

Dispositivos electrónicos que consisten en una cápsula de vacío de Acero o de Vidrio, con dos o más electrodos entre los cuales pueden moverse libremente los Electrones.


Terminal

Un terminal es el punto en que un conductor de un componente eléctrico, dispositivo o red llega a su fin y proporciona un punto de conexión de circuitos externos.

El terminal puede ser simplemente el final de un cable o puede estar equipado con un conector o tornillo. En teoría de circuitos, terminal significa punto donde teóricamente se pueden hacer conexiones a una red. No se refiere necesariamente a ningún objeto físico real.

Regiones de operación

Un transistor de unión bipolar está formado por dos Uniones PN en un solo cristal semiconductor, separados por una región muy estrecha. De esta manera quedan formadas tres regiones:
  • Emisor, que se diferencia de las otras dos por estar fuertemente dopada, comportándose como un metal. Su nombre se debe a que esta terminal funciona como emisor de portadores de carga.
  • Base, la intermedia, muy estrecha, que separa el emisor del colector.
  • Colector, de extensión mucho mayor.

Amplificador electrónico

Amplificador electrónico puede significar tanto un tipo de circuito electrónico o etapa de este, como un equipo modular que realiza la misma función; y que normalmente forma parte de los equipos HIFI. Su función es incrementar la intensidad de corriente, la tensión o la potencia de la señal que se le aplica a su entrada; obteniéndose la señal aumentada a la salida. Para amplificar la potencia es necesario obtener la energía de una fuente de alimentación externa. En este sentido, se puede considerar al amplificador como un modulador de la salida de la fuente de alimentación.

La impedancia

La impedancia es la oposición al paso de la corriente alterna. A diferencia de la resistencia, la impedancia incluye los efectos de acumulación y eliminación de carga (capacitancia) e/o inducción magnética (inductancia). Este efecto es apreciable al analizar la señal eléctrica implicada en el tiempo.

Silicio

Símbolo Si, número atómico 14 y peso atómico 28.086. El silicio es el elemento electropositivo más abundante de la corteza terrestre. Es un metaloide con marcado lustre metálico y sumamente quebradizo. Por lo regular, es tetravalente en sus compuestos, aunque algunas veces es divalente, y es netamente electropositivo en su comportamiento químico. Además, se conocen compuestos de silicio pentacoordinados y hexacoordinados.

Corriente eléctrica

Recibe el nombre de corriente eléctrica el desplazamiento de electrones sobre un cuerpo conductor. Todos los cuerpos tienden a quedar en estado eléctricamente neutro; así, si se ponen en contacto dos cuerpos, uno cargado con exceso de electrones y otro con defecto. Se establecerá entre ellos un intercambio de electrones hasta que se igualen eléctricamente,

Circuito eléctrico

El circuito eléctrico es el camino a través del cual se desplazan los electrones.

Magnitudes eléctricas

En todo circuito eléctrico se ponen de manifiesto una serie de magnitudes eléctricas, como son: fuerza electromotriz, diferencia de potencial, cantidad de electricidad, intensidad de corriente, densidad de corriente, resistencia, potencia y energía.

Fuerza electromotriz (fem): Es la causa que origina el movimiento de los electrones en todo circuito eléctrico. Su unidad es el voltio (V).

Diferencia de potencial (ddp): También se conoce como tensión eléctrica y voltaje. Es el desnivel eléctrico existente entre dos puntos de un circuito. Su unidad es el voltio (V). Se mide con un voltímetro. Se representa con la letra U.

Cantidad de electricidad (Q): Es el número total de electrones que recorre un conductor. Como la carga del electrón es de un valor muy pequeño, la unidad práctica que se emplea es el Culombio (C).

Intensidad de corriente (1): Es la cantidad de electricidad que atraviesa un conductor en la unidad de tiempo (1 s). La unidad es el amperio (A). Se mide con un amperímetro.

Densidad de corriente eléctrica (b): Es el número de amperios que circula por cada mm2 de conductor, esto es, intensidad por unidad de sección. La unidad es el A/mm 2•

Resistencia (R): Es la dificultad que presenta un material al paso de la corriente eléctrica. Se representa con la letra R y su unidad es el ohmio (Q). Dicha dificultad responde a la atracción de los núcleos sobre los electrones en su propio desplazamiento. Cada material posee una resistencia específica característica que se conoce con el nombre de resistividad. Se representa con la letra griega «ro» (p).

Ley de Ohm

El famoso físico Ohm descubrió experimentalmente la relación que existe entre estas tres magnitudes eléctricas: intensidad, tensión y resistencia, estableciendo una ley que lleva su nombre y que dice así:

En un circuito eléctrico, la intensidad de corriente que lo recorre, es directamente proporcional a la tensión aplicada e inversamente proporcional a la resistencia que presenta éste.

La Figura nos muestra el circuito eléctrico básico, compuesto por pila o batería y un elemento resistivo R como carga. El voltímetro V nos medirá el valor de la tensión del circuito y el amperímetro A la intensidad que circula por él.



Potencia eléctrica (P)

Es la cantidad de trabajo desarrollada en la unidad de tiempo. En un circuito eléctrico es igual al producto de la tensión por la intensidad. Su unidad es el vatio (W). Se mide con un vatímetro. Son múltiplos del vatio (W), el kilovatio (1 kW = 1.000 W) y el megavatio (1 MW = 1.000.000 W).


Energía eléctrica (E)

Es el trabajo desarrollado en un circuito eléctrico durante un tiempo determinado. Viene dada por la fórmula:



Voltaje, corriente y resistencia

El voltaje es la magnitud física que, en un circuito eléctrico, impulsa a los electrones a lo largo de un conductor. Es decir, conduce la energía eléctrica con mayor o menor potencia.

Llamamos corriente eléctrica a aquella magnitud física que nos indica la cantidad de electricidad que recorre un conductor, durante una unidad de tiempo determinada

Resistencia eléctrica es toda oposición que encuentra la corriente a su paso por un circuito eléctrico cerrado, atenuando o frenando el libre flujo de circulación de las cargas eléctricas o electrones. Cualquier dispositivo o consumidor conectado a un circuito eléctrico representa en sí una carga, resistencia u obstáculo para la circulación de la corriente eléctrica.

Materiales conductores

Un conductor eléctrico es un material que ofrece poca resistencia al movimiento de carga eléctrica. Son materiales cuya resistencia al paso de la electricidad es muy baja. Los mejores conductores eléctricos son metales, como el cobre, el oro, el hierro y el aluminio, y sus aleaciones, aunque existen otros materiales no metálicos que también poseen la propiedad de conducir la electricidad, como el grafito o las disoluciones y soluciones salinas (por ejemplo, el agua de mar) o cualquier material en estado de plasma.

En general podemos denominar material conductor a cualquier sustancia o material que sometido a una diferencia de potencial eléctrico proporciona un paso continuo de corriente eléctrica.
En general todas las sustancias en estado sólido o líquido poseen la propiedad de conductividad eléctrica, pero algunas sustancias son buenos conductores, las mejores sustancias conductoras son los metales.

Dentro de los materiales metálicos más utilizados mencionamos: la Plata, el cobre, aluminio, aleaciones de aluminio, aleaciones de cobre y conductores compuestos de aluminio-acero y cobre-acero cuyas aplicaciones en las industrias eléctricas son muy útiles.

Resistencia

La  resistencia de un material es una medida que indica la facilidad con que una corriente eléctrica puede fluir a través de él. La resistencia de un conductor es directamente proporcional a su longitud e inversamente proporcional a su sección y varía con la temperatura.

Dirección de la corriente y el circuito eléctrico

Un electrón fluye en dirección contraria al campo eléctrico y sube la pendiente de potencial desde la placa negativa hasta la placa positiva. Si definimos la corriente como un flujo de carga positiva, la pérdida en energía a medida que la carga encuentra resistencia será de más a menos o "baja la pendiente de potencial". Por convención, se considerarán todas las corrientes como un flujo de carga positiva.

La dirección de la corriente convencional siempre es la misma que la dirección en la que se moverían las cargas positivas, incluso si la corriente real consiste en un flujo de electrones.


Aplicación de la Ley de ohm a circuitos resistivos serie-paralelo

La Ley de Ohm, postulada por el físico y matemático alemán George Simon Ohm, es una de las leyes fundamentales de la electrodinámica, estrechamente vinculada a los valores de las unidades básicas presentes en cualquier circuito eléctrico como son:

1. Tensión o voltaje (E), en volt (V).
2. Intensidad de la corriente (I), en ampere (A) o sus submúltipos.
3. Resistencia (R) de la carga o consumidor conectado al circuito en ohm ( ), o sus múltiplos.

La Ley de Ohm: establece que "La intensidad de la corriente eléctrica que circula por un conductor eléctrico es directamente proporcional a la diferencia de potencial aplicada e inversamente proporcional a la resistencia del mismo".

Esta ley no se cumple, por ejemplo, cuando la resistencia del conductor varía con la temperatura, y la temperatura del conductor depende de la intensidad de corriente y el tiempo que esté circulando.

La ley define una propiedad específica de ciertos materiales por la que se cumple la relación:
  • Circuito serie:
El circuito serie es una configuración de conexión en la que los bornes o terminales de los dispositivos (generadores, resistencias, condensadores, interruptor, entre otros.) se conectan secuencialmente.

El terminal de salida de un dispositivo se conecta al terminal de entrada del dispositivo siguiente, por ejemplo, el terminal positivo de una pila eléctrica se conecta al terminal negativo de la pila siguiente, con lo cual entre los terminales extremos de la asociación se tiene una diferencia de potencial igual a la suma de la de ambas pilas. Esta conexión de pilas eléctricas en serie da lugar a la formación de una batería eléctrica. Cabe anotar que la corriente que circula en un circuito serie es la misma en todos los puntos del circuito.
  • Circuito paralelo:
El circuito paralelo es una conexión donde, los bornes o terminales de entrada de todos los dispositivos (generadores, resistencias, condensadores, etc.) conectados coincidan entre sí, lo mismo que sus terminales de salida.

Dos depósitos de agua conectados en paralelo tendrán una entrada común que alimentará simultáneamente a ambos, así como una salida común que drenará a ambos a la vez. Las bombillas de iluminación de una casa forman un circuito en paralelo. Porque si una bombilla se apaga, las demás siguen encendidas.

La configuración contraria es el circuito en serie. En el cual, si una bombilla se apaga todas las demás bombillas se apagaran también.

Aplicación de la primera y segunda ley de kirchhoff

  • La primera ley de Kirchhoff:
Se conoce como la ley de corrientes de Kirchhoff (LCK) y Se basa en la ley de conservación de la carga eléctrica, y establece que:

"la suma de la corrientes en todo nodo debe ser siempre igual a cero"

Esto es la cantidad de carga que entra a un nodo cualquiera en un cierto instante, es igual a la cantidad de carga que sale de ese nodo.

Para entender mejor esta ley se puede asimilar un nodo como la interconexión de una red de acueducto, donde se tiene una conexión en forma de T, con tres tubos de los cuales por dos de ellos llega el agua y por el tercero sale la suma de los dos anteriores, si se lleva esto a la teoría de circuitos, la corriente viene siendo representada por el flujo de agua y los conductores por los tubos, dentro de los tubos, no se puede acumular el agua, por lo tanto toda la cantidad que entra en este sistema debe ser la misma que sale, de la misma forma se asume que en los conductores y nodos no se puede acumular carga, ni hay pérdidas de energía por calor, la corriente que entra al nodo debe ser la misma que sale.

  • La segunda ley de kirchhoff:
La segunda ley de Kirchhoff se conoce como la ley de voltajes de Kirchhoff (LVK) y su enunciado es el siguiente:

"La suma algebraica de los voltajes alrededor de cualquier lazo (camino cerrado) en un circuito, es igual a cero en todo instante".

La segunda regla se deduce de la conservación de la energía. Es decir, cualquier carga que se mueve en torno a cualquier circuito cerrado (sale de un punto y llega al mismo punto) debe ganar tanta energía como la que pierde.

Los condensadores

Los condensadores son dispositivos capaces de almacenar una determinada cantidad de electricidad. Se componen de dos superficies conductoras, llamadas armaduras, puestas frente a frente y aisladas entre sí por un material aislante que es llamado daléctrico. La capacidad de almacenar electricidad es proporcional directamente a la superficie enfrentada; inversamente proporcional a la distancia que separa las armaduras y depende del dieléctrico existente entre ambas.


Funcionamiento de un Condensador 


Aquí tenemos un ejemplo del funcionamiento de un condensador frente a una corriente alterna. Vemos un generador de corriente alterna que está conectado a un condensador. Debido a la tensión alterna U, el condensador resulta cargado, descargado, vuelto a cargar con polaridad opuesta; una vez más descargado, y así sucesivamente. Con ello circula una corriente cuya variación es senoidal. Pero, la corriente no circula a través del condensador, es decir a través de su dieléctrico que es aislante como hemos dicho, la corriente sólo circula de los bornes del generador a las armaduras del condensador y viceversa, es decir, aunque el circuito realmente no está cerrado el efecto es como si lo estuviera; y siendo éste el efecto, se suele decir que por el circuito circula una corriente eléctrica.

La intensidad de la corriente o, mejor dicho, el valor eficaz de la corriente alterna depende, aparte de la tensión del generador, de la capacidad del condensador y de la frecuencia de la propia corriente alterna. Cuanto mayor es la capacidad y más elevada la frecuencia, con tanta más violencia se desarrolla el proceso continuo de carga y descarga y, en consecuencia, tanto más intensa será la corriente. A pequeñas capacidades y frecuencias circulará sólo una débil corriente.

En lo que respecta a la corriente continua el comportamiento del condensador es diferente. Aquí  hay una interpretación práctica de la corriente. Frente a la corriente continua el condensador se comporta como un depósito que solamente se abre cuando la presión de alimentación (tensión) varía. Cuando la tensión continua aumenta, la corriente pasa de + hacia el polo -; cuando se estabiliza no hay paso de corriente, y cuando disminuye la tensión, la corriente circula en sentido inverso. El caso de la corriente alterna resulta diferente porque, como se deduce de lo explicado antes, esta corriente con sus cambios de fase carga y descarga sucesivamente al condensador.
Dentro de un circuito electrónico los condensadores se utilizan en los circuitos oscilantes uniendo su función a la que ejercen las inductancias (o bobinados) aprovechando sus condiciones de paso de la corriente alterna y bloqueo de la continua. 

Semiconductores

Son elementos que se comportan como un conductor o como aislante dependiendo de diversos factores, como por ejemplo el campo eléctrico o magnético, la presión, la radiación que le incide, o la temperatura del ambiente en el que se encuentre.

Los semiconductores suelen ser aislantes a cero grados Kelvin, y permiten el paso de corriente a la temperatura ambiente. Son elementos, como el germanio y el silicio, que a bajas temperaturas son aislantes, pero a medida que se eleva la temperatura o bien por la adicción de determinadas impurezas resulta posible su conducción. Algunos materiales semiconductores son por ejemplo el silicio, el germanio y el selenio.


Semiconductores extrínsecos: tipo n y tipo p

En el mismo momento que un cristal semiconductor de silicio de conducción “tipo-p” (positivo) se pone en contacto con otro cristal semiconductor también de silicio, pero de conducción 
“tipo-n”(negativo), se crea un diodo de unión “p-n”.

Si a un semiconductor intrínseco se le añade un pequeño porcentaje de impurezas, es decir, elementos trivalentes o pentavalentes, el semiconductor se denomina extrínseco, y se dice que está dopado. Evidentemente, las impurezas deberán formar parte de la estructura cristalina sustituyendo al correspondiente átomo de silicio.

Un Semiconductor tipo P se obtiene llevando a cabo un proceso de dopado, añadiendo un cierto tipo de átomos al semiconductor para poder aumentar el número de portadores de carga libres (en este caso positivos).

Un Semiconductor tipo N se obtiene llevando a cabo un proceso de dopado añadiendo un cierto tipo de átomos al semiconductor para poder aumentar el número de portadoras de carga libres (en este caso, negativas). 

Diodo semiconductor

El diodo semiconductor es el dispositivo semiconductor más sencillo y se puede encontrar, prácticamente en cualquier circuito electrónico. Los diodos se fabrican en versiones de silicio (la más utilizada) y de germanio.

Los diodos constan de dos partes, una llamada N y la otra llamada P, separados por una juntura llamada barrera o unión. Esta barrera o unión es de 0.3 voltios en el diodo de germanio y de 0.6 voltios aproximadamente en el diodo de silicio.

Principio de operación de un diodo

El semiconductor tipo N tiene electrones libres (exceso de electrones) y el semiconductor tipo P tiene huecos libres (ausencia o falta de electrones)

Cuando una tensión positiva se aplica al lado P y una negativa al lado N, los electrones en el lado N son empujados al lado P y los electrones fluyen a través del material P mas allá de los límites del semiconductor. De igual manera los huecos en el material P son empujados con una tensión negativa al lado del material N y los huecos fluyen a través del material N.

En el caso opuesto, cuando una tensión positiva se aplica al lado N y una negativa al lado P, los electrones en el lado N son empujados al lado N y los huecos del lado P son empujados al lado P. En este caso los electrones en el semiconductor no se mueven y en consecuencia no hay corriente


El diodo se puede hacer trabajar de 2 maneras diferentes:
  • Polarización directa
Es cuando la corriente que circula por el diodo sigue la ruta de la flecha (la del diodo), o sea del ánodo al cátodo. En este caso la corriente atraviesa el diodo con mucha facilidad comportándose prácticamente como un corto circuito.
  • Polarización inversa
Es cuando la corriente en el diodo desea circular en sentido opuesto a la flecha (la flecha del diodo), o sea del cátodo al ánodo. En este caso la corriente no atraviesa el diodo, y se comporta prácticamente como un circuito abierto.

Comparación entre el silicio y el germanio

  • Diodos de silicio
La construcción de un diodo de silicio comienza con silicio purificado. Cada lado del diodo se implanta con impurezas (boro en el lado del ánodo y arsénico o fósforo en el lado del cátodo), y la articulación donde las impurezas se unen se llama la "unión pn". Los diodos de silicio tienen un voltaje de polarización directa de 0,7 voltios. Una vez que el diferencial de voltaje entre el ánodo y el cátodo alcanza los 0,7 voltios, el diodo empezará a conducir la corriente eléctrica a través de su unión pn. Cuando el diferencial de voltaje cae a menos de 0,7 voltios, la unión pn detendrá la conducción de la corriente eléctrica, y el diodo dejará de funcionar como una vía eléctrica. Debido a que el silicio es relativamente fácil y barato de obtener y procesar, los diodos de silicio son más frecuentes que los diodos de germanio.
  • Diodos de germanio
Los diodos de germanio se fabrican de una manera similar a los diodos de silicio. Los diodos de germanio también utilizan una unión pn y se implantan con las mismas impurezas que los diodos de silicio. Sin embargo los diodos de germanio, tienen una tensión de polarización directa de 0,3 voltios. El germanio es un material poco común que se encuentra generalmente junto con depósitos de cobre, de plomo o de plata. Debido a su rareza, el germanio es más caro, por lo que los diodos de germanio son más difíciles de encontrar (y a veces más caros) que los diodos de silicio.


lunes, 3 de noviembre de 2014

Gestión de Memoria: Windows vs Linux

Gestión de memoria en Linux


Usa una tabla de página de tres niveles que son:


1. Directorio de páginas.
2. Directorio intermedio de páginas.
3. Tabla de páginas.


Para aumentar la eficiencia al  cargar y descargar estas  páginas desde o  hacia la memoria, utiliza un mecanismo llamado Sistema de Colegas, en donde las  páginas son agrupadas en marcos de tamaño fijo y para reemplazar páginas se utiliza el algoritmo del reloj en donde las páginas tienen una especie de variable de edad.


El algoritmo de reloj consiste en asociar un bit de usado y otro de modificado con cada una de las paginas, el usado se reemplaza por una variable de 8 bits, cada vez que se accede a una página esta variable se incrementa, después Linux recorre periódicamente la lista completa de páginas y decrementa la variable de edad de cada página a medida que va rotando por todas ellas en memoria principal. Una página que tiene un 0 es una página vieja ya que no se ha hecho referencia a ella desde hace ya algún tiempo y es el mejor candidato para el reemplazo.

Gestión de memoria en Windows


El gestor de memoria en Windows está hecho para trabajar con paginas que van de los 4kB hasta los 64kB. Cuando se crea un proceso el tamaño máximo es de 2GB, este espacio está dividido en páginas de tamaño fijo y poseen uno de los siguientes estados:

  • Disponible
  • Reservada
  • Asignada
Cuando hay espacio disponible en la memoria, el gestor de memoria virtual permite que los conjuntos residentes de los procesos activos crezcan. Entonces se trae una nueva página a la memoria sin expulsar ninguna.

Cuando la memoria empieza a escasear, el gestor de memoria virtual mueve las páginas que se han utilizado hace más tiempo de cada uno de los procesos hacia swap, liberando así memoria principal.

En conclusión existen algunas similitudes en cuanto a la  gestión de memoria en Windows y Linux pero cuando es necesario liberar memoria Windows lo hace una vez por segundo a diferencia en Linux que lo hace solo cuando es necesario, esto hace de Linux más eficiente.

Gestión de Memoria

La Memoria


La memoria física consiste en un área de almacenamiento temporal para los programas y los datos que se usan. A grandes rasgos, mientras más grande sea el espacio de memoria, más aplicaciones se podrán ejecutar al mismo tiempo. Además, mientras más rápida sea la memoria, más rápida será la reacción del sistema. Por eso, el sistema operativo debe estar organizado de manera lo suficientemente eficiente como para obtener el mejor rendimiento posible.

Gestión de memoria

Se denomina gestión de memoria al acto de gestionar la memoria de un dispositivo informático. De forma simplificada se trata de proveer mecanismos para asignar secciones de memoria a los programas que las solicitan, y a la vez, liberar las secciones de memoria que ya no se utilizan para que estén disponibles para otros programas.

La gestión de memoria también debe realizar las siguientes funciones:
  • permitir que la memoria se comparta (en sistemas de multiprocesos).
  • asignar bloques de espacio de memoria a distintas tareas;
  • proteger los espacios de memoria utilizados (por ejemplo, evitar que un usuario modifique una tarea realizada por otro usuario).
  • optimizar la cantidad de memoria disponible, específicamente a través de sistemas de expansión de memoria.

Expansión de memoria

Existen dos formas posibles de expandir la memoria:
  1. Dividiendo un programa de modo que una parte permanezca en la memoria de acceso aleatorio y que una parte se cargue en la memoria cuando se necesite acceder a los datos.
  2. Utilizando un mecanismo de memoria virtual que consiste en utilizar el disco duro como memoria principal y almacenar solamente las instrucciones y los datos utilizados por el procesador en la memoria RAM. El sistema operativo realiza esta operación creando un archivo temporal (conocido como SWAP o "archivo de intercambio") en el que se almacena la información cuando la memoria RAM ya no es suficiente. Esta operación produce una disminución considerable en el rendimiento, dado que se puede acceder al disco duro mucho más rápido que a la memoria RAM.
Los sistemas de memoria virtual separan las direcciones de memoria utilizadas por un proceso de las direcciones físicas reales, permitiendo la separación de procesos e incrementando la cantidad efectiva de memoria de acceso aleatorio utilizando la paginación. La calidad de la gestión de la memoria es crucial para las prestaciones del sistema. Los sistemas de gestión de memoria de sistemas operativos multitarea normalmente tratan con las siguientes tareas:

Reasignación: En los sistemas con memoria virtual, los programas en la memoria debe ser capaz de residir en diferentes partes de la memoria en diferentes momentos. Esto se debe a que cuando el programa se cambió de nuevo en la memoria después de ser intercambiado por un tiempo que no siempre se puede colocar en el mismo lugar. La unidad de gestión de memoria virtual también debe hacer frente a la concurrencia gestión de memoria en el sistema operativo por lo tanto debe ser capaz de trasladar los programas en la memoria y manejar referencias de la memoria y las direcciones en el código del programa para que siempre apuntan a la ubicación correcta en la memoria.

Protección: Los procesos no deberían poder referenciar la memoria de otros procesos sin permiso, para evitarlo existe la protección de memoria, que evita que código malicioso o erróneo de un programa interfiera con la operación de otros programas en ejecución.

Memoria compartida: Aunque la memoria utilizada por diferentes procesos suele estar protegida, algunos procesos puede que sí tengan que compartir información y, para ello, han de acceder la misma sección de memoria. La memoria compartida es una de las técnicas más rápidas para posibilitar la comunicación entre procesos.

Organización lógica: Los programas a menudo están organizados en módulos, algunos de los cuales pueden ser compartidos por diferentes programas, algunos son de sólo-lectura y otros contienen datos que se pueden modificar. La gestión de memoria es responsable de manejar esta organización lógica, que se contrapone al espacio de direcciones físicas lineales. Una forma de lograrlo es mediante la segmentación de memoria.

Organización física: La memoria suele dividirse en un almacenamiento primario de alta velocidad y uno secundario de menor velocidad. La gestión de memoria del sistema operativo se ocupa de trasladar la información entre estos dos niveles de memoria.

Memoria dinámica

Es un tipo de tecnología de memoria RAM. La memoria dinámica de acceso aleatorio se usa principalmente en los módulos de memoria RAM y en otros dispositivos, como memoria principal del sistema. Se denomina dinámica, ya que para mantener almacenado un dato, se requiere revisar el mismo y recargarlo, cada cierto período, en un ciclo de refresco

Es memoria que se reserva en tiempo de ejecución. Su principal ventaja frente a la estática, es que su tamaño puede variar durante la ejecución del programa. (En C, el programador es encargado de liberar esta memoria cuando no la utilice más). El uso de memoria dinámica es necesario cuando no conocemos el número de datos/elementos a tratar; sin embargo es algo más lento, ya que el tiempo ejecución depende del espacio que se vaha usar Hay que mencionar que la memoria estática es más rápida ya que está disponible desde que se inicio el programa.

Memoria estática


Es un tipo de memoria basada en semiconductores que a diferencia de la memoria DRAM, es capaz de mantener los datos, mientras esté alimentada, sin necesidad de circuito de refresco. Sin embargo, sí son memorias volátiles, es decir que pierden la información si se les interrumpe la alimentación eléctrica.


Es la memoria que se reserva en el momento de la compilación antes de comenzar a ejecutar el programa. Los objetos son creados al iniciar el programa y destruidos al finalizar el mismo. Mantienen la misma localización en memoria durante todo el transcurso del programa hasta que son destruidos. Los objetos administrados de este modo son: variables globales, variables estáticas de funciones, miembros static de clases y literales de cualquier tipo. 


Asignación de memoria


En informática, la asignación de memoria es el método de reservar memoria para fines específicos, por lo general, ejecución de programas. En otras palabras, es una forma de distribuir los recursos de memoria limitados, entre múltiples fragmentos de datos y códigos.

En la asignación dinámica de memoria, la memoria necesaria se asigna a medida que se necesita durante el tiempo de ejecución. Esto contrasta con la asignación estática de memoria, donde se asigna memoria en tiempo de compilación, antes de que el programa sea ejecutado.


La Asignación estática de memoria

La Asignación estática de memoria consiste en el proceso de asignar memoria en tiempo de compilación antes de que el programa asociado sea ejecutado, a diferencia de la asignación dinámica o la automática donde la memoria se asigna a medida que se necesita en tiempo de ejecución. La asignación estática de memoria es el proceso de asignar memoria en tiempo de compilación antes de que el programa sea ejecutado. Esto contrasta con la asignación dinámica de memoria, donde la memoria necesaria se asigna a medida que se necesita durante el tiempo de ejecución.

Por ejemplo, en programación, las constantes, que son conocidas en tiempo de compilación, tienen asignadas las porciones de memoria de forma estática antes de la ejecución del programa. También todas a las variables declaradas estáticamente se les asignan una porción estática de memoria.El inconveniente de la reserva estática es que la cantidad de memoria se reserva siempre antes de conocer los datos concretos del problema.




Asignación dinámica de la memoria

La asignación dinámica de la memoria es la asignación de almacenamiento de memoria para utilización por parte de un programa de computador durante el tiempo de ejecución de ese programa. Es una manera de distribuir la propiedad de recursos de memoria limitada entre muchas piezas de código y datos.



Un objeto asignado dinámicamente permanece asignado hasta que es desasignado explícitamente, o por el programador o por un recolector de basura; esto es notablemente diferente de la asignación automática de memoria y de la asignación estática de memoria (la de las variables estáticas). Se dice que tal objeto tiene tiempo de vida dinámico.



La memoria dinámica es un espacio de almacenamiento que se puede solicitar en tiempo de ejecución. Además de solicitar espacios de almacenamiento, también podemos liberarlos (en tiempo de ejecución) cuando dejemos de necesitarlos. El número de particiones y su tamaño es variable, las cuales son creadas dinámicamente para que se acomoden a las necesidades de cada proceso solicitante. Cuando un proceso termine o sea retirado de memoria el gestor de memoria puede devolver el espacio vacante al fondo de áreas de memoria libres a partir del cual se efectúan las asignaciones de particiones. El gestor de memoria puede continuar creando y asignando particiones a procesos solicitantes hasta que agote toda la memoria física o alcance el máximo grado de multiprogramación permitido. 


La segmentación

La segmentación es una forma de administrar la memoria que permite que el usuario vea la memoria como una colección de segmentos (partes), cada uno de los cuales tiene un nombre y un tamaño (que, además, puede variar dinámicamente).
  • Segmentación simple: cada proceso está dividido en varios segmentos. Un proceso carga todos los segmentos en partes dinámicas que no necesitan ser contiguas.
  • Segmentación de memoria virtual: como la segmentación simple, excepto que no es necesario cargar todos los segmentos de un proceso. Los segmentos no residentes necesarios se traen después de forma automática.
Un segmento es un espacio de memoria de tamaño variable, compuesto por:
  • Descriptor: Identificador único del segmento (dentro del espacio de memoria del proceso).
  • Tamaño del segmento
Ventajas de la segmentación
  • Al usuario se le simplifica el manejo de estructuras de datos de tamaño dinámico.
  • Se facilita el que los procesos compartan memoria.
  • Los segmentos pueden estar protegidos según la semántica de su contenido.
Características de la segmentación
  • Cuando un proceso requiere más memoria se crea un nuevo segmento.
  • Es posible la redimensión de segmentos siempre que haya posiciones libres contiguas, o crear un nuevo segmento y copiar el contenido del anterior
  • Es posible que los segmentos crezcan dinámicamente según las necesidades del programa en ejecución.
  • Existe la posibilidad de definir segmentos que aun no existan. Así, no se asignara memoria, sino a partir del momento que sea necesario hacer usos del segmento. Un ejemplo de esto, serian los  Arrays cuya dimensión no se conoce hasta tanto no se comienza a ejecutar el programa. En algunos casos, incluso podría retardar la asignación de memoria hasta el momento en el cual se referencia el Array  u otra estructura de dato por primera vez.

Paginación

Paginación Simple

La memoria principal se divide en varios marcos del mismo tamaño. Cada proceso se divide en varias páginas iguales del mismo tamaño que los marcos. Un proceso carga todas sus páginas en marcos disponibles n necesariamente contigua.


Paginación de memoria virtual


Cómo la paginación simple excepto que no es necesario cargar todas las páginas de un proceso. Las páginas no residentes necesarias se traen después en forma automática.

Los sistemas de paginación de memoria dividen los programas en pequeñas partes o páginas. Del mismo modo, la memoria es dividida en trozos del mismo tamaño que las páginas llamados marcos de página. De esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su última página, lo que minimiza la fragmentación interna y evita la externa.

En un momento cualquiera, la memoria se encuentra ocupada con páginas de diferentes procesos, mientras que algunos marcos están disponibles para su uso. El sistema operativo mantiene una lista de estos últimos marcos, y una tabla por cada proceso, donde consta en qué marco se encuentra cada página del proceso.

En la tabla de páginas de un proceso, se encuentra la ubicación del marco que contiene a cada una de sus páginas. Las direcciones lógicas ahora se forman como un número de página y de un desplazamiento dentro de esa página (conocido comúnmente comooffset). El número de página es usado como un índice dentro de la tabla de páginas, y una vez obtenida la dirección del marco de memoria, se utiliza el desplazamiento para componer la dirección real o dirección física. Este proceso se realiza en una parte del computador específicamente diseñada para esta tarea, es decir, es un proceso hardware y no software.

De esta forma, cuando un proceso es cargado en memoria, se cargan todas sus páginas en marcos libres y se completa su tabla de páginas.

Veamos un ejemplo:
Número de marco
Programa.#página
Dirección física
0
Programa A.0
1000:0000
1
Programa A.1
1000:1000
2
Programa A.2
1000:2000
3
Programa D.0
1000:3000
4
Programa D.1
1000:4000
5
Programa C.0
1000:5000
6
Programa C.1
1000:6000
7
Programa D.2
1000:7000



La tabla de arriba muestra una posible configuración de la memoria en un momento dado, con páginas de 4Kb. La forma en que se llegó a este estado puede haber sido la siguiente:
Se tienen cuatro procesos, llamados A, B, C y D, que ocupan respectivamente 3, 2, 2 y 3 páginas.
  1. El programa A se carga en memoria (se le asignan los marcos 0, 1 y 2)
  2. El programa B se carga en memoria (se le asignan los marcos 3 y 4)
  3. El programa C se carga en memoria (se le asignan los marcos 5 y 6)
  4. El programa B termina, liberando sus páginas
  5. El programa D se carga en memoria (se le asignan los marcos 3 y 4 que usaba el proceso B y el marco 7 que permanecía libre)

Paginación en memoria virtual

El único inconveniente de paginación pura es que todas las páginas de un proceso deben estar en memoria para que se pueda ejecutar. Esto hace que si los programas son de tamaño considerable, no puedan cargarse muchos a la vez, disminuyendo el grado de multiprogramación del sistema. Para evitar esto, y aprovechando el principio de cercanía de referencias donde se puede esperar que un programa trabaje con un conjunto cercano de referencias a memoria (es decir con un conjunto residente más pequeño que el total de sus páginas), se permitirá que algunas páginas del proceso sean guardadas en un espacio de intercambio (fragmentación interna) mientras no se necesiten.

Cuando ejecutamos un programa este puede caber o no en la memoria física, si se da la situación de que el proceso es mayor que la memoria, el SO se encarga de mantener en memoria las partes del programa que estamos usando y el resto en el disco duro. Pues bien, la técnica llamada ‘paginación’ se encarga del intercambio de información entre nuestra memoria y el disco duro cuando tiene que pasar información de la memoria al disco duro debido a lo comentado antes



La memoria virtual

La memoria virtual es una técnica de gestión de la memoria que permite que el sistema operativo disponga, tanto para el software de usuario como para sí mismo, de mayor cantidad de memoria que esté disponible físicamente. La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria caché (tanto dentro como fuera del CPU), la memoria RAM y el disco duro. En ese orden, van de menor capacidad y mayor velocidad a mayor capacidad y menor velocidad.


Muchas aplicaciones requieren acceso a más información (código y datos) que la que se puede mantener en memoria física. Esto es así sobre todo cuando el sistema operativo permite múltiples procesos y aplicaciones ejecutándose simultáneamente. Una solución al problema de necesitar mayor cantidad de memoria de la que se posee consiste en que las aplicaciones mantengan parte de su información en disco, moviéndola a la memoria principal cuando sea necesario. Hay varias formas de hacer esto.


Una opción es que la aplicación misma sea responsable de decidir qué información será guardada en cada sitio (segmentación), y de traerla y llevarla. La desventaja de esto, además de la dificultad en el diseño e implementación del programa, es que es muy probable que los intereses sobre la memoria de dos o varios programas generen conflictos entre sí: cada programador podría realizar su diseño teniendo en cuenta que es el único programa ejecutándose en el sistema. La alternativa es usar memoria virtual, donde la combinación entre hardware especial y el sistema operativo hace uso de la memoria principal y la secundaria para hacer parecer que el ordenador tiene mucha más memoria principal (RAM) que la que realmente posee. Este método es invisible a los procesos. La cantidad de memoria máxima que se puede hacer ver que hay tiene que ver con las características del procesador.


Marcos de Paginas


En sistemas operativos de computadoras, los sistemas de paginación de memoria dividen los programas en pequeñas partes o páginas. Del mismo modo, la memoria es dividida en trozos del mismo tamaño que las páginas llamados marcos de página. De esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su última página, lo que minimiza la fragmentación interna y evita la externa.

Tablas de páginas


En las tablas de páginas de un proceso, se encuentra la ubicación del marco que contiene a cada una de sus páginas. Las direcciones lógicas ahora se forman como un número de página y de un desplazamiento dentro de esa página (conocido comúnmente como offset).

El número de página es usado como un índice dentro de la tabla de páginas, y una vez obtenida la dirección del marco de memoria, se utiliza el desplazamiento para componer la dirección real o dirección física. Este proceso se realiza en una parte del computador específicamente diseñada para esta tarea, es decir, es un proceso hardware y no software.