miércoles, 14 de diciembre de 2011

Niveles de ejecución (runlevels)


Escrito esta:Dijo Jesús "Yo soy la vid verdadera, y mi Padre es el viñador."(Juan 15:1)

Tomado de:ac.usc.es

 El proceso init inicia el sistema en un determinado runlevel

  • el runlevel inicial especificado en /etc/inittab

Runlevel
determinada configuración software que permite la ejecución de una serio de procesos en la máquina
Los runlevels se identifican por números de 0 a 6

RunlevelDescripción
0parada del sistema
1modo monousuario; solo root puede entrar
2, 3, 4, 5modos multiusuario
6reiniciar el sistema
Stambién monousuario (usado por scripts)
La utilización de los runlevels 2-5 varía con la distribución de Linux:
  • en Debian los 4 son idénticos: modo multiusuario completo (con entorno de ventanas, si disponible); por defecto se usa el 2
  • en RedHat y similares:
    • 2: multiusuario sin NFS
    • 3: multiusuario completo (sin ventanas)
    • 4: no usado
    • 5: multiusuario completo (con ventanas)
Es posible cambiar de runlevel en cualquier momento usando el comando telinit o init:
  • Formato
    telinit [-t SEC] runlevel
  • SEC es el número de segundos que esperará init a que un proceso se detenga con un SIGTERM antes de antes de matarlo con un SIGKILL (por defecto, 5)
  • Ejemplo: pasa al runlevel 6 en 10 segundos (reinicia la máquina)
    telinit -t 10 6
  • Es posible hacer que init relea el fichero de configuración /etc/inittab:
    telinit q
  • podemos saber en que runlevel nos encontramos con el comando runlevel
    • runlevel: muestra el runlevel actual y el anterior
      # runlevel
      N 2
      indica que nos encontramos en el nivel 2 y que no hubo nivel anterior

El fichero /etc/inittab

Define como se ejecutan los runlevels
  • indica el runlevel por defecto
  • indica los scripts a ejecutar en cada runlevel
Formato de las líneas de inittab
identificador:runlevels:acción:proceso

  • identificador: nombre asociado a cada línea del fichero generalmente no superior a 4 caracteres
  • runlevels: lista de runlevels (todos seguidos) para los cuales esta línea se tendrá en cuenta
  • acción: indica de qué forma o bajo qué condiciones se ejecuta el comando del campo siguiente
  • proceso: comando que se ejecuta para esta entrada en los runlevels especificados
Algunas de las acciones de init son (para verlas todas ver el manual de inittab)
  • respawn: el proceso se reinicia si termina
  • waitinit inicia el proceso y espera a que termine para seguir
  • onceinit inicia el proceso una vez, cuando se entra en el runlevel
  • sysinit: el proceso se ejecuta durante el arranque de la sistema
  • ctrlaltdel: el proceso se ejecuta si se recibe un CTRL-ALT-DEL
  • powerwait: el proceso se ejecuta cuando se acaba la batería
  • powerokwait: el proceso se ejecuta cuando se recupera la energía
  • powerfailnow: el proceso se ejecuta cuando la batería está casi vacía
Ejemplo de inittab
# Número de runlevel por defecto.
id:2:initdefault:

# Script que se ejecuta siempre en cada inicio 
# independientemente del runlevel.
si::sysinit:/etc/init.d/rcS

# Script para cada runlevel 
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normalmente no se alcanza, sólo si falla el reinicio
z6:6:respawn:/sbin/sulogin

# Qué hacer si se presiona CTRL-ALT-DEL
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

# Qué hacer si la corriente se va/vuelve
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop

  • el script /etc/init.d/rcS se ejecuta en el arranque
    • este script llama a los scripts del directorio /etc/rcS.d
  • Por cada runlevel, se ejecuta el script /etc/init.d/rc X
    • este script llama a los scripts del directorio /etc/rcX.d

Directorios /etc/rcX.d

Los ficheros de estos directorio son de la forma:
[K|S]NNServicio
Al entrar en un runlevel se ejecutan todos los ficheros del /etc/rcX.d correspondiente
  • los que empiezan por K detienen servicios
  • los que empiezan por S los inician
  • los scripts se ejecutan por orden alfabético (primero K y después S)
Todos los ficheros son enlaces a los scripts reales, que están en el directorio /etc/init.d
  • estos script admiten, al menos, uno de los siguientes parámetros:
    • start inicia el servicio
    • stop para el servicio
  • Ejemplo, para y reinicia los servicios de red:
    # /etc/init.d/networking stop
    # /etc/init.d/networking start
Si queremos iniciar un nuevo servicio en un determinado runlevel
  • colocar el script de inicio en /etc/init.d
  • hacer un enlace de nombre SxyServicio en el runlevel
    • tener en cuenta posibles dependencias con otros servicios
  • hacer un enlace de nombre tipo K en el runlevel en que se quiera pararlo
    • un buen número de secuencia es 100-xy (el orden de matar los procesos inverso debe ser al de iniciarlos)
  • existen programas que nos facilitan la labor:
    • update-rc.d: crea y borra enlaces a los scripts init
    • sysv-rc-conf: GUI para consola
    • ksysv: entorno gráfico para KDE

Terminales

Despues de ejecutar los scripts de inicio, init crea un conjunto de terminales virtuales, siguiendo lo que se indica en /etc/inittab
.......
# Lanzar las terminales para el login de los usuarios
# Notar que el la mayoría de los sistemas tty7 es usado por X Window,
# así, para añadir mas getty's se debe saltar tty7
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

  • en esta configuración, los runlevels 2 y 3 arrancan 6 terminales y los 4 y 5 sólo 1
  • podemos cambiar de tty con Ctrl-Alt-F[1-6]
  • el tty7 se utiliza para pasar al entorno de ventanas
  • los terminales se lanzan con spawn para que se vuelvan a crear cuando salimos de la sesión
En este momento se puede acceder al sistema:
  • al iniciar la sesión en un terminal:
    • el proceso tty se convierte en un proceso login que chequea usuario y contraseña
    • si se accede con éxito, el proceso login se convierte en un shell
  • al salir de la sesión
    • el proceso bash muere
    • init relanza (respawn) un nuevo tty

miércoles, 30 de noviembre de 2011

Los Creadores de Lenguaje C y Unix

Escrito Esta:
Eclesiastés 9:5 Porque los que viven saben que han de morir, pero los muertos no saben nada, ni tienen ya ninguna recompensa, porque su memoria está olvidada.
Tomado de: Wikipedia
Dennis MacAlistair Ritchie (9 de septiembre de 1941 - 12 de octubre de 2011) fue un científico computacional estadounidense.
Colaboró en el diseño y desarrollo de los sistemas operativos Multics y Unix, así como el desarrollo de varios lenguajes de programación como el C, tema sobre el cual escribió un célebre clásico de las ciencias de la computación junto a Brian Wilson KernighanEl lenguaje de programación C.
Recibió el Premio Turing de 1983 por su desarrollo de la teoría de sistemas operativos genéricos y su implementación en la forma del sistema Unix. En 1998 le fue concedida la Medalla Nacional de Tecnología de los Estados Unidos de América. El año 2007 se jubiló, siendo el jefe del departamento de Investigación en software de sistemas de Alcatel-Lucent.
C y Unix
Artículo principal: C (lenguaje de programación)
Artículo principal: Unix
Ritchie es conocido sobre todo por ser el creador del lenguaje de programación C y cocreador, junto con Ken Thompson, del sistema operativo Unix. También fue coautor junto con Brian Kernighan del manual El lenguaje de programación C, que durante años fue el estándar de facto del lenguaje (conocido como K&R C), hasta la aparición del ANSI C.
Estas aportaciones han convertido a Ritchie en un importante pionero de la informática moderna. El lenguaje C aún se usa ampliamente hoy día en el desarrollo de aplicaciones y sistemas operativos, y ha sido una gran influencia en otros lenguajes más modernos como el lenguaje de programación Java. Unix también ha sentado las bases de los sistemas operativos modernos, estableciendo conceptos y principios que hoy son ampliamente adoptados.
Ken Thompson y Dennis Ritchie, creadores de C.


martes, 20 de septiembre de 2011

Programas desarrollados por GNU

Escrito esta:
Pero El les dijo: Soy yo; no temáis.(Juan 6:20)
 
Listado de algunos programas desarrollados por el proyecto GNU:
El proyecto GNU también ayuda con el desarrollo de otros paquetes, como:

Distribuciones de GNU

La única variante completamente GNU es el núcleo Hurd, la cual es distribuida como Debian GNU/Hurd y otros, aunque no hay ninguna versión oficial hasta el momento.
Linux es el núcleo más usado con GNU, aunque Linux en sí no es parte de él. GNU también es utilizado con otros núcleos, como Debian GNU/kFreeBSD, Debian GNU/NetBSD, Nexenta OS o GNU-Darwin.

miércoles, 14 de septiembre de 2011

Tux

Deuteronomio 4:23 Guardaos, pues, no sea que olvidéis el pacto que el SEÑOR vuestro Dios hizo con vosotros, y os hagáis imagen tallada en forma de cualquier cosa que el SEÑOR tu Dios te ha prohibido.
Tux es el nombre de la mascota oficial de Linux. Creado por Larry Ewing en 1996, es un pequeño pingüino de aspecto risueño y cómico. La idea de que la mascota de kernel Linux fuera un pingüino provino del mismo Linus Torvalds, creador de kernel Linux. Según se cuenta, cuando era niño le picó unpingüino, y le resultó simpática la idea de asociar un pingüino a su proyecto.

Origen
Existen dos versiones sobre el origen de su nombre. La primera sugiere que el nombre surge del hecho de que los pingüinos parecen vestir un esmoquin(que en inglés es tuxedo max, abreviado tux). La segunda es que las letras que componen Tux provienen de las palabras Torvalds Unix.
Tux fue diseñado durante un concurso para elegir un logotipo para Linux. Las herramientas utilizadas para su creación fueron, por supuesto, un computador con el sistema operativo con kernel Linux y el software libre de manipulación de imágenes GIMP. Algunas de las imágenes enviadas se encuentran aún disponibles en el sitio del concurso.

Todas las distribuciones de Linux o software libre tienen una version de Tux para mostrarlo tales como ubuntu, fedora, debian, suse, entre otros.

Su Uso
El logotipo se puede usar y modificar sin restricciones, siempre que se reconozca la autoría de Larry Ewing, ya que es su trabajo y se debe reconocer su autoría tal y como se indica en su página.
Tux se ha vuelto un icono para las comunidades de Linux y de software libre; un grupo de linuxeros británico incluso ha adoptado un pingüino en el zoológico de Bristol. Es mucho más famoso que su gran amigo, GNU, un ñu pacífico y algo tímido que representa el proyecto GNU.

Con respecto al origen de su nombre, una historia sugiere que proviene del hecho de que los pingüinos parecen vestir un esmoquín (en inglés tuxedo) y la segunda es que las letras que componen Tux provienen de las palabras Torvalds y UniX.

viernes, 5 de agosto de 2011

REFERENCIA DE COMANDOS UNIX-LINUX

Tomado de :Pello.info
La siguiente lista de comandos pretende ser de utilidad como referencia rapida para utilizar comandos de sistema. Se ha agrupado en dos: los comandos de sistema corrientes y los relacionados con la administracion.

Pueden probar los comandos de Linux en la siguiente Dirección: http://www.masswerk.at/jsuix/

claro no son todos pero si los basicos este es el :Manual man

Comando

ls Descripción: =list. listar contenido de directorios. Ejemplos: ls, ls -l, ls -fl, ls --color

cp Descripción: =copy. copiar ficheros/directorios. Ejemplos:cp -rfp directorio /tmp, cp archivo archivo_nuevo

rm Descripción: =remove. borrar ficheros/directorios. Ejemplos: rm -f fichero, rm -rf directorio, rm -i fichero

mkdir Descripción: =make dir. crear directorios. Ejemplos: mkdir directorio

rmdir Descripción: =remove dir. borrar directorios, deben estar vacios. Ejemplos: rmdir directorio

mv Descripción: =move. renombrar o mover ficheros/directorios. Ejemplos: mv directorio directorio, mv fichero nuevo_nombre, mv fichero a_directorio

date Descripción: gestion de fecha de sistema, se puede ver y establecer. Ejemplos: date, date 10091923

history Descripción: muestra el historial de comandos introducidos por el usuario. Ejemplos: history | more

more Descripción: muestra el contenido de un fichero con pausas cada 25 lineas. Ejemplos: more fichero

grep Descripción: filtra los contenidos de un fichero. Ejemplos:cat fichero | grep cadena

cat Descripción: muestra todo el contenido de un fichero sin pausa alguna. Ejemplos: cat fichero

chmod Descripción: cambia los permisos de lectura/escritura/ejecucion de ficheros/directorios. Ejemplos: chmod +r fichero, chmod +w directorio, chmod +rw directorio -R, chmod -r fichero

chown Descripción: =change owner. cambia los permisos de usuario:grupo de ficheros/directorios. Ejemplos: chown root:root fichero, chown pello:usuarios directorio -R

tar Descripción: =Tape ARchiver. archivador de ficheros. Ejemplos: tar cvf fichero.tar directorio , tar xvf fichero.tar, tar zcvf fichero.tgz directorio, tar zxvf fichero.tgz

gunzip Descripción: descompresor compatible con ZIP. Ejemplos: gunzip fichero

rpm Descripción: gestor de paquetes de redhat. Para instalar o actualizar software de sistema. Ejemplos: rpm -i paquete.rpm, rpm -qa programa, rpm --force paquete.rpm, rpm -q --info programa

mount Descripción: montar unidades de disco duro, diskette, cdrom. Ejemplos: mount /dev/hda2 /mnt/lnx, mount /dev/hdb1 /mnt -t vfat

umount Descripción: desmontar unidades. Ejemplos: umount /dev/hda2, umount /mnt/lnx

wget Descripción: programa para descargar ficheros por http o ftp. Ejemplos: wget http://www.rediris.es/documento.pdf

lynx Descripción: navegador web con opciones de ftp, https. Ejemplos: lynx www.ibercom.com, lynx --source http://www.ibercom.com/script.sh | sh

ftp Descripción: cliente FTP. Ejemplos: ftp ftp.ibercom.com

whois Descripción: whois de dominios. Ejemplos: whois ibercom.com

who Descripción: muestra los usuarios de sistema que han iniciado una sesion. Ejemplos: who, w, who am i

mail Descripción: envio y lectura de correo electronico. Ejemplos: mail pepe@ibercom.com < fichero, mail -v pepe@ibercom.com < fichero

sort Descripción: ordena el contenido de un fichero. Ejemplos: cat /etc/numeros | sort, ls | sort

ln Descripción: =link. para crear enlaces, accesos directos. Ejemplos: ln -s /directorio enlace

tail Descripción: muestra el final (10 lineas) de un fichero. Ejemplos:tail -f /var/log/maillog, tail -100 /var/log/maillog | more

head Descripción: muestra la cabecera (10 lineas) de un fichero. Ejemplos: head fichero, head -100 /var/log/maillog | more

file Descripción: nos dice de que tipo es un fichero. Ejemplos: file fichero, file *

Comandos de administracion

sysctl Descripción: Configurar los paràmetros del kernel en tiempo de ejuecución. Ejemplos: sysctl -a

ulimit Descripción: muestra los limites del sistema (maximo de ficheros abiertos, etc..) Ejemplos: ulimit

adduser Descripción: añadir usuario de sistema. Ejemplos: adduser pepe, adduser -s /bin/false pepe

userdel Descripción: = eliminar usuario de sistema Ejemplos: userdel pepe

usermod Descripción: = modificar usuario de sistema Ejemplos: usermod -s /bin/bash pepe

df Descripción: = disk free. espacio en disco disponible. Muy util. Ejemplos: df, df -h

uname Descripción: =unix name. Informacion sobre el tipo de unix en el que estamos, kernel, etc. Ejemplos: uname, uname -a

netstat Descripción: la informacion sobre las conexiones de red activas. Ejemplos: netstat, netstat -ln, netstat -l, netstat -a

ps Descripción: =proccess toda la informacion sobre procesos en ejecucion. Ejemplos: ps, ps -axf, ps -A, ps -auxf

free Descripción: muestra el estado de la memoria RAM y el SWAP. Ejemplos: free

ping Descripción: heramienta de red para comprobar entre otras cosas si llegamos a un host remoto. Ejemplos: ping www.rediris.es

traceroute Descripción: herramienta de red que nos muestra el camino que se necesita para llegar a otra maquina. Ejemplos: traceroute www.rediris.es

du Descripción: =disk use. uso de disco. Muestra el espacio que esta ocupado en disco. Ejemplos: du *, du -sH /*, du -sH /etc

ifconfig Descripción: =interface config. configuracion de interfaces de red, modems, etc. Ejemplos: ifconfig, ifconfig eth0 ip netmask 255.255.255.0

route Descripción: gestiona las rutas a otras redes. Ejemplos: route, route -n

iptraf Descripción: muestra en una aplicacion de consola TODO el trafico de red IP, UDP, ICMP. Permite utilizar filtros, y es SUMAMENTE UTIL para diagnostico y depuracion de firewalls Ejemplos: iptraf

tcpdump Descripción: vuelca el contenido del trafico de red. Ejemplos: tcpdump, tcpdump -u

lsof Descripción: muestra los ficheros(librerias, conexiones) que utiliza cada proceso Ejemplos: lsof, lsof -i, lsof | grep fichero

lsmod Descripción: Muestra los modulos de kernel que estan cargados. Ejemplos: lsmod

modprobe Descripción: Trata de instalar un modulo, si lo encuentra lo instala pero de forma temporal. Ejemplos: modprobe ip_tables, modprobe eepro100

rmmod Descripción: Elimina modulos del kernel que estan cargados Ejemplos: rmmod

sniffit Descripción: Sniffer o husmeador de todo el trafico de red. No suele venir instalado por defecto. Ejemplos: sniffit -i

lsusb
El comando lsusb en Linux se usa para mostrar la información sobre los buses USB y los dispositivos conectados a ellos . Las propiedades que se muestran son velocidad, BUS, clase, detalles de tipo, etc. Esta información se recopila escaneando /dev/bus/usb para obtener información sobre el dispositivo conectado, la identificación del dispositivo y la información del proveedor.

mkfs
Comando Linux MKFS, se  utiliza para dar formato a un dispositivo de almacenamiento de bloque con un determinado sistema de archivos.
Un Sistema de archivos es la estructura básica de toda los datos que se guarda, edita, borra o copia etc…en el ordenador, siendo toda esta información accesada a través de gestores de archivos en sus respectivos SO.
ext – Extended file system (sistema de archivos extendido)
ext2 – Second extended file system (segundo sistema de archivo extendido)
ext3 – Third extended file system (tercer sistema de archivos extendido), una forma de ext2 con registro en diario.

ext4 – Fourth extended file system (cuarto sistema de archivos extendido), una mejora de ext3 y también un sistema de archivos con registro en diario con soporte para extensiones.

Ejemplos prácticos mkfs:
#Crear filesystem
mkfs -t ext4 /dev/sdd1

mke2fs -t ext4 /dev/sdb


fsck
fsck (comprobación del sistema de archivos) es una utilidad de línea de comandos que le permite realizar comprobaciones de coherencia interactivas y reparaciones en uno o más sistemas de archivos de Linux. Utiliza programas específicos para el tipo de sistema de archivos que comprueba.

Ejecute fsck para reparar el sistema de archivos:

sudo fsck -p /dev/sdc1
La -p indica a la fsck que repare automáticamente cualquier problema que pueda solucionarse de forma segura sin la intervención del usuario.


split
El comando split es una de las herramientas de coreutils del sistema GNU con kernel Linux.
El comando split sirve para dividir un archivo grande en varios archivos pequeños. Podemos realizar esa división por número de líneas, por tamaño u otras opciones.
Podemos dividir el archivo en archivos de 100 líneas cada uno mediante:

split -l 100 archivo.txt

También podemos dividir el archivo grande en archivos más pequeños y cada uno de un tamaño determinado, por ejemplo 10 Megas:

split -b 10M archivo.txt

Podemos hacer que nuestros archivos divididos no terminen con letras como hemos visto (aa, ab, ac) si no que vayan numerados empezando por el 0. Para ello utilizamos la opción -d:

split -d -b 10M archivo.txt

Pero quizás queremos que no sean números de dos dígitos, si no de 2 o más, para ello añadimos la opción -a y el número de dígitos que queremos:

split -a 3 -d -b 10M archivo.txt

También podemos cambiar el nombre x que le pone el comando split por un prefijo que nosotros determinemos. Para ello escribimos nuestro prefijo detrás del nombre del archivo. En este caso sustituiremos la x por logs_

split -a 3 -d -b 10M archivo.txt logs_

Quizás queremos dividir nuestro archivo no en líneas o no por tamaño, si no simplemente porque queremos forzar el comando para que lo divida en un número determinado de archivos. Para ello usaremos la opción -n y lo dividiremos en 5 partes:

split -n 5 archivo.txt log_

Con todo esto y mucho más podemos utilizar el comando split en GNU/Linux para dividir archivos, pero ¿y si queremos volver a unir los archivos en uno solo?

Para eso utilizamos el comando cat. Por ejemplo, si tenemos los 5 archivos divididos en una carpeta, que se llaman xaa, xab, xac, xad, aae y los queremos unir en un archivo llamado log.txt:

cat xa* > log.txt

Podemos comprobar que el archivo generado es idéntico al que utilizamos originalmente para dividirlo mediante la suma de verificación que nos genera el comando sha256sum

sha256sum archivo.txt log.txt

Y los valores que nos de, deberán ser idénticos.


domingo, 24 de julio de 2011

Núcleo Linux

Linux es un núcleo de sistema operativo libre tipo Unix. Es uno de los principales ejemplos de software libre. Linux está licenciado bajo la GPL v2 y está desarrollado por colaboradores de todo el mundo. El desarrollo del día a día tiene lugar en la Linux Kernel Mailing List.

El núcleo Linux fue concebido por el entonces estudiante de ciencias de la computación finlandés, Linus Torvalds, en 1991. Linux consiguió rápidamente desarrolladores y usuarios que adoptaron códigos de otros proyectos de software libre para su uso en el nuevo sistema operativo. El núcleo Linux ha recibido contribuciones de miles de programadores.

Normalmente Linux se utiliza junto a un empaquetado de software, llamado distribución Linux.

Historia

En abril de 1991, Linus Torvalds, de 21 años, empezó a trabajar en unas simples ideas para un núcleo de sistema operativo. Comenzó con un intento por obtener un núcleo de sistema operativo gratuito similar a Unix que funcionara con microprocesadores Intel 80386. Luego, el 25 de agosto de 1991, Torvalds escribió en el grupo de noticias comp.os.minix:

"Estoy haciendo un sistema operativo (gratuito, sólo un hobby, no será nada grande ni profesional como GNU) para clones AT 386(486). Llevo en ello desde abril y está empezando a estar listo. Me gustaría saber su opinión sobre las cosas que les gustan o disgustan en minix, ya que mi SO tiene algún parecido con él.[...] Actualmente he portado bash(1.08) y gcc(1.40), y parece que las cosas funcionan. Esto implica que tendré algo práctico dentro de unos meses..."
Después de esto, muchas personas ayudaron con el código. En septiembre de 1991 se lanzó la versión 0.01 de Linux. Tenía 10.239 líneas de código. En octubre de ese año, se lanzó la versión 0.02 de Linux; luego, en diciembre se lanzó la versión 0.11. Esta versión fue la primera en ser self-hosted

(autoalbergada). Es decir, Linux 0.11 podía ser compilado por una computadora que ejecutase Linux 0.11, mientras que las versiones anteriores de Linux se compilaban usando otros sistemas operativos. Cuando lanzó la siguiente versión, Torvalds adoptó la GPL como su propio boceto de licencia, la cual no permitía su redistribución con otra licencia que no sea GPL.

Se inició un grupo de noticias llamado alt.os.linux y el 19 de enero de 1992 se publicó en ese grupo el primer post. El 31 de marzo, alt.os.linux se convirtió en comp.os.linux. XFree86, una implementación del X Window System, fue portada a Linux, la versión del núcleo 0.95 fue la primera en ser capaz de ejecutarla. Este gran salto de versiones (de 0.1x a 0.9x) fue por la sensación de que una versión 1.0 acabada no parecía estar lejos. Sin embargo, estas previsiones resultaron ser un poco optimistas: desde 1993 a principios de 1994, se desarrollaron 15 versiones diferentes de 0.99 (llegando a la versión 0.99r15).

El 14 de marzo de 1994, se lanzó Linux 1.0.0, que constaba de 176.250 líneas de código. En marzo de 1995 se lanzó Linux 1.2.0, que ya estaba compuesto de 310.950 líneas de código.

En mayo de 1996 Torvalds decidió adoptar al pingüino Tux como mascota para Linux.

La versión 2 de Linux se lanzó el 9 de junio de 1996 y fue un gran éxito. A éste le siguieron grandes desarrollos:

  • 25 de enero de 1999: se lanzó Linux 2.2.0 con 1.800.847 líneas de código.
  • 18 de diciembre de 1999: se publicaron parches de IBM Mainframe para 2.2.13, permitiendo de esta forma que Linux fuera usado en ordenadores corporativos.
  • 4 de enero de 2001: se lanzó Linux 2.4.0 con 3.377.902 líneas de código.
  • 17 de diciembre de 2003: se lanzó Linux 2.6.0 con 5.929.913 líneas de código.
  • 24 de diciembre de 2008: se lanzó Linux 2.6.28 con 10.195.402 líneas de código.
  • 20 de octubre de 2010: se lanzó Linux 2.6.36 con 13.499.457 líneas de código.

Su código fuente está disponible para descarga en el sitio web oficial.

El 30 de mayo de 2011, Linus Torvalds anunció que la versión del núcleo dará el salto a la 3.0 en la siguiente publicación.

Lenguajes de programación

Linux está escrito en el lenguaje de programación C, en la variante utilizada por el compilador GCC (que ha introducido un número de extensiones y cambios al C estándar), junto a unas pequeñas secciones de código escritas con el lenguaje ensamblador. Por el uso de sus extensiones al lenguaje, GCC fue durante mucho tiempo el único compilador capaz de construir correctamente Linux. Sin embargo, Intel afirmó haber modificado su compilador C de forma que permitiera compilarlo correctamente.

Asimismo se usan muchos otros lenguajes en alguna forma, básicamente en la conexión con el proceso de construcción del núcleo (el método a través del cual las imágenes arrancables son creadas desde el código fuente). Estos incluyen a Perl, Python y varios lenguajes shell scripting. Algunos drivers también pueden ser escritos en C++, Fortran, u otros lenguajes, pero esto no es aconsejable. El sistema de construcción de Linux oficialmente solo soporta GCC como núcleo y compilador de controlador.

Tomado de: wikipedia.org

lunes, 20 de junio de 2011

Mitos y leyendas

El software libre es gratuito. Esta es la creencia más arraigada entre la gente y por supuesto totalmente falsa. El software libre no tiene por qué ser gratuito, aun cuando puedas conseguirlo gratuitamente. Es perfectamente normal cobrar por ello (si no mirad la cantidad de distribuciones que son comerciales), generalmente no hay un pago por licencia, siendo lo normal el pago por el soporte y mantenimiento, que un usuario normal no suele usar pero sí generalmente empresas. Ni que decir tiene que hay muchas más formas, pero no es el objetivo, al menos de momento.

Linux sólo es para hackers y programadores. Otra cosa que es totalmente falsa y que aún sigue en la mente de muchos. Linux es cada vez más un sistema operativo de lo más versátil al que le queda muy pocos campos en los que se queda corto.

Linux es difícil. Realmente esto con los nuevos escritorios y las instalaciones tan sencillas que se nos ofrecen es ya algo del pasado. Lo único que requiere Linux es tener unos conocimientos mínimos que tampoco son nada del otro mundo para poder empezar a usarlo. Otra cosa es que no tengamos paciencia ya que el cambio siempre es costoso, tanto por la comodidad de lo conocido como por querer aprender algo nuevo en poco tiempo.

Linux es seguro. Esto es según nosotros queramos que lo sea, por defecto sí es más seguro, pero esto no da más que una falsa seguridad. Hay que recordar que no hay configuraciones por defecto buenas y un sistema mal mantenido y configurado es algo bastante vulnerable. Linux es tan seguro como nosotros de paranoicos para que lo sea.

En Linux no existen virus. Otra cosa totalmente falsa y que muchísima gente cree o piensa que hay 10 ó 12 a lo sumo. Hay varios factores por los que los virus en Linux no tienen mucho alcance. Lo primero es que el usuario medio de Linux no es ni mucho menos el usuario medio de Windows, y muchas técnicas de ingeniería social usadas por los virus no surten mucho efecto, amén de que se acostumbra a conocer el origen de los programas. Otro factor a tener en cuenta es que Linux no es la plataforma mayoritaria, y bien es sabido que todo creador quiere que su creación llegue lo más lejos posible. Y totalmente obvio es que la seguridad es mejor y los errores se corrigen mucho más rápidamente al ser un sistema abierto. Para los incrédulos, decir que hay más de 300 virus para Linux, pero lo bueno es que muchos de ellos son pruebas y virus de “laboratorio”. Lo que sí podemos es llegar a la conclusión de que el riesgo de virus en un sistema Linux es tan pequeño que no es nada preocupante no tener un antivirus, que generalmente sirven para limpiar virus de Windows ya que hay muchos servidores Linux en Internet.

Qué puedo y no puedo hacer con software libre.

Los derechos que tenemos con el software libre (la licencia GPL de la GNU es la más representativa aunque existen muchísimas más como por ejemplo la BSD, ver http://www.fsf.org/licensing/licenses/index_html#GPLCompatibleLicenses) es que podemos copiarlo, modificarlo e incluso redistribuirlo y cobrar por ello si quisiéramos (otra cosa es que nos paguen por ello), pero bajo unos deberes. En el caso concreto de nuestro representativo ejemplo, la licencia GPL, tienes que distribuir el código, respetar la licencia y las notas de autor, siendo ilegal apropiarse de ese código. Si tú modificas algo con licencia GPL el nuevo código será forzosamente GPL (otra cosa es que tú uses código propietario apoyado en GPL), y evidentemente tú serás el autor de ese código que añades. Para una mejor información lee la propia GPL, es un poco pesada pero bueno.

Nota: Software abierto no es lo mismo que software libre, con un software abierto puedes ver su código pero no tienen que cumplirse los otros derechos.

Características de GNU/Linux.

Multitarea. Puede hacer varias cosas a la vez y además hay que destacar que es el multitarea más eficiente que he visto nunca.

Multiusuario. Cualquier Linux puede tener muchos usuarios concurrentemente usándolo en Tiempo real y sin ningún programa añadido, ya sea por consolas virtuales, sesiones remotas o terminales.

Multiprocesador. Maneja dos o más procesadores a la vez, sin por ello tener que pagar nada de más.

Soportado por múltiples arquitecturas. ¿Conoces alguna arquitectura de computador? Seguro que ya hay una versión de Linux para ella a menos que sea demasiado nueva (y ya tiene que serlo) para que no la haya. Hay que destacar que no existen versiones de Linux para arquitecturas Intel más bajas que el 386. ¿Sale una nueva arquitectura? Seguro que si no está ya soportada pronto lo estará, mirad si no qué rápido fue soportado el AMD 64.

Dónde conseguir GNU/Linux.

Pues es bien sencillo, si no conoces a nadie que tenga una distribución que pueda pasarte, puedes conseguirlas en cualquier buscador web y encontrarás casi todas las distribuciones disponibles. Si no tienes una buena conexión a Internet u oportunidad de que alguien baje una por ti, sólo tienes que acercarte a una librería o kiosco y buscar una revista especializada, seguro que alguna trae una distribución incluida.

Pero como siempre todo es cuestión de gustos, y lo aquí expuesto esta basado en la experiencia y mi opinión personal. Seguro que encuentras el sabor Linux (Linux like) que más te gusta.

Tomado de: matados2k

viernes, 13 de mayo de 2011

Richard Stallman

Escrito esta:
"Porque de tal manera amó Dios al mundo, que dio a su Hijo unigénito, para que todo aquel que cree en El, no se pierda, mas tenga vida eterna." ( Juan 3:16)
"Jesús le dijo: Yo soy la resurrección y la vida; el que cree en mí, aunque muera, vivirá,"
(Juan 11:25)

El Hombre:

Richard Matthew Stallman

(nacido en Manhattan, Nueva York, 16 de marzo de 1953), con frecuencia abreviado como "rms", es un programador estadounidense y fundador del movimiento por el software libre en el mundo.

Entre sus logros destacados como programador se incluye la realización del editor de texto GNU Emacs, el compilador GCC, y el depurador GDB, bajo la rúbrica del Proyecto GNU. Sin embargo, es principalmente conocido por el establecimiento de un marco de referencia moral, político y legal para el movimiento del software libre, como una alternativa al desarrollo y distribución del software no libre o privativo. Es también inventor del concepto de copyleft (aunque no del término), un método para licenciar software de tal forma que su uso y modificación permanezcan siempre libres y queden en la comunidad.

Iniciativa GNU

Al anuncio inicial del proyecto GNU siguió, en 1985, la publicación del Manifiesto GNU, en el cual Stallman declaraba sus intenciones y motivaciones para crear una alternativa libre al sistema operativo Unix, al que denominó GNU (GNU No es Unix), pronunciado de forma parecida a ñu, en inglés (de ahí los dibujos-logotipos que lo representan). Poco tiempo después fundó la organización sin ánimo de lucro Free Software Foundation para coordinar el esfuerzo. Inventó el concepto de copyleft, que fue utilizado en la Licencia Pública General GNU (conocida generalmente como la "GPL") en 1989. La mayor parte del sistema GNU, excepto el núcleo, se completó aproximadamente al mismo tiempo.

Copyleft

El copyleft es una práctica al ejercer el derecho de autor que consiste en permitir la libre distribución de copias y versiones modificadas de una obra u otro trabajo, exigiendo que los mismos derechos sean preservados en las versiones modificadas. La efectividad de ejercerlo puede depender de la legislación particular a cada país, pero en principio se puede utilizar para programas informáticos, obras de arte, cultura, ciencia, o cualquier tipo de obra o trabajo creativo que sea regido por el derecho de autor.

El término surge en las comunidades de software libre como un juego de palabras entorno a copyright: "derecho de autor", en inglés (literalmente: "derecho de copia"). Se puede traducir por "izquierdo de autor", aunque esta propuesta no refleja otro sentido de left en inglés: pretérito del verbo dejar. Se considera que una licencia libre es copyleft cuando además de otorgar permisos de uso, copia, modificación y redistribución de la obra protegida, contiene una cláusula que impone una licencia similar o compatible a las copias y a las obras derivadas.

Tomado de: Wikipedia

martes, 3 de mayo de 2011

La Raiz de los Sistemas Operativos

Escrito esta:
Recorred las calles de Jerusalén, y mirad ahora, y sabed, y buscad en sus plazas si podéis hallar algún hombre, si hay alguno que haga juicio, que busque verdad; y yo la perdonaré. (Jeremías 5:1)

Resumen:
Sistema Operativo
Un sistema operativo (SO) es el programa o conjunto de programas que efectúan la gestión de los procesos básicos de un sistema informático, y permite la normal ejecución del resto de las operaciones.

Historia

Los primeros sistemas (1945-1960) eran grandes máquinas operadas desde la consola maestra por los programadores. Durante la década siguiente (1950-1960) se llevaron a cabo avances en el hardware: lectoras de tarjetas, impresoras, cintas magnéticas, etc. Esto a su vez provocó un avance en el software: compiladores, ensambladores, cargadores, manejadores de dispositivos, etc.

A finales de los años 80, una computadora Commodore Amiga equipada con una aceleradora Video Toaster era capaz de producir efectos comparados a sistemas dedicados que costaban el triple. Un Video Toaster junto a Lightwave ayudó a producir muchos programas de televisión y películas, entre las que se incluyen Babylon 5, Seaquest DSV y Terminator II.[6

Tipos de núcleo

No necesariamente se necesita un núcleo para usar una computadora. Los programas pueden cargarse y ejecutarse directamente en una computadora «vacía», siempre que sus autores quieran desarrollarlos sin usar ninguna abstracción (informatica) del hardware ni ninguna ayuda del sistema operativo. Ésta era la forma normal de usar muchas de las primeras computadoras: para usar distintos programas se tenía que reiniciar y reconfigurar la computadora cada vez. Con el tiempo, se empezó a dejar en memoria (aún entre distintas ejecuciones) pequeños programas auxiliares, como el cargador y el depurador, o se cargaban desde memoria de sólo lectura. A medida que se fueron desarrollando, se convirtieron en los fundamentos de lo que llegarían a ser los primeros núcleos de sistema operativo.

Hay cuatro grandes tipos de núcleos:

  • Los núcleos monolíticos facilitan abstracciones del hardware subyacente realmente potentes y variadas.
  • Los micronúcleos (en inglés microkernel) proporcionan un pequeño conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad.[5]
  • Los núcleos híbridos (micronúcleos modificados) son muy parecidos a los micronúcleos puros, excepto porque incluyen código adicional en el espacio de núcleo para que se ejecute más rápidamente.
  • Los exonúcleos no facilitan ninguna abstracción, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.

Sistemas operativos con núcleos monolíticos

Un sistema operativo con núcleo monolítico concentra todas las funcionalidades posibles (planificación, sistema de archivos, redes, controladores de dispositivos, gestión de memoria, etc) dentro de un gran programa. El mismo puede tener un tamaño considerable, y deberá ser recompilado por completo al añadir una nueva funcionalidad. Todos los componentes funcionales del núcleo tienen acceso a todas sus estructuras de datos internas y a sus rutinas. Un error en una rutina puede propagarse a todo el núcleo.

Entre los sistemas operativos que cuentan con núcleos monolíticos se encuentran:

Tomado todo de :Wikipedia

domingo, 1 de mayo de 2011

Blog Nuevo desde 0 y Linux desde 0

Seguir con Linux

Claro que Si, No lo Cambio, Aunque tengo otras un Nuevo AMOR y es DIOS todo Poderoso que es mi Prioridad y mi Salvador CRISTO, ya que he estudiado muchos libros, y el libro que me llena es La Biblia y aunque lo ley todo cada día al estudiarlo se descubre algo nuevo para mi vida.

Espero Llevar una Secuencia desde 0 de Linux.

Saludos a Todos
es : El Instructor kyrb2000