miércoles, 26 de marzo de 2008
Redes.
Existen varias definiciones acerca de que es una red, algunas de las cuales son:
* Conjunto de operaciones centralizadas o distribuidas, con el fin de compartir recursos "hardware y software".
* Sistema de transmisión de datos que permite el intercambio de información entre ordenadores.
* Conjunto de nodos "computador" conectados entre sí.
TIPOS DE REDES
Existen varios tipos de redes, los cuales se clasifican de acuerdo a su tamaño y distribución lógica.
Clasificación segun su tamaño
Las redes PAN (red de administración personal) son redes pequeñas, las cuales están conformadas por no más de 8 equipos, por ejemplo: café Internet.
CAN: Campus Area Network, Red de Area Campus. Una CAN es una colección de LANs dispersadas geográficamente dentro de un campus (universitario, oficinas de gobierno, maquilas o industrias) pertenecientes a una misma entidad en una área delimitada en kilometros. Una CAN utiliza comúnmente tecnologías tales como FDDI y Gigabit Ethernet para conectividad a través de medios de comunicación tales como fibra óptica y espectro disperso.
Las redes LAN (Local Area Network, redes de área local) son las redes que todos conocemos, es decir, aquellas que se utilizan en nuestra empresa. Son redes pequeñas, entendiendo como pequeñas las redes de una oficina, de un edificio. Debido a sus limitadas dimensiones, son redes muy rápidas en las cuales cada estación se puede comunicar con el resto. Están restringidas en tamaño, lo cual significa que el tiempo de transmisión, en el peor de los casos, se conoce. Además, simplifica la administración de la red.
Suelen emplear tecnología de difusión mediante un cable sencillo (coaxial o UTP) al que están conectadas todas las máquinas. Operan a velocidades entre 10 y 100 Mbps.
Características preponderantes:
* Los canales son propios de los usuarios o empresas.
* Los enlaces son líneas de alta velocidad.
* Las estaciones están cercas entre sí.
* Incrementan la eficiencia y productividad de los trabajos de oficinas al poder compartir información.
* Las tasas de error son menores que en las redes
WAN.
* La arquitectura permite compartir recursos.
LANs mucha veces usa una tecnología de transmisión, dada por un simple cable, donde todas las computadoras están conectadas. Existen varias topologías posibles en la comunicación sobre LANs, las cuales se verán mas adelante.
Las redes WAN (Wide Area Network, redes de área extensa) son redes punto a punto que interconectan países y continentes. Al tener que recorrer una gran distancia sus velocidades son menores que en las LAN aunque son capaces de transportar una mayor cantidad de datos. El alcance es una gran área geográfica, como por ejemplo: una ciudad o un continente. Está formada por una vasta cantidad de computadoras interconectadas (llamadas hosts), por medio de subredes de comunicación o subredes pequeñas, con el fin de ejecutar aplicaciones, programas, etc.
Una red de área extensa WAN es un sistema de interconexión de equipos informáticos geográficamente dispersos, incluso en continentes distintos. Las líneas utilizadas para realizar esta interconexión suelen ser parte de las redes públicas de transmisión de datos.
Las redes LAN comúnmente, se conectan a redes WAN, con el objetivo de tener acceso a mejores servicios, como por ejemplo a Internet. Las redes WAN son mucho más complejas, porque deben enrutar correctamente toda la información proveniente de las redes conectadas a ésta.
Una subred está formada por dos componentes:
Líneas de transmisión: quienes son las encargadas de llevar los bits entre los hosts.
Elementos interruptores (routers): son computadoras especializadas usadas por dos o más líneas de transmisión. Para que un paquete llegue de un router a otro, generalmente debe pasar por routers intermedios, cada uno de estos lo recibe por una línea de entrada, lo almacena y cuando una línea de salida está libre, lo retransmite.
INTERNET WORKS: Es una colección de redes interconectadas, cada una de ellas puede estar desallorrada sobre diferentes software y hardware. Una forma típica de Internet Works es un grupo de redes LANs conectadas con WANs. Si una subred le sumamos los host obtenemos una red.
El conjunto de redes mundiales es lo que conocemos como Internet.
Las redes MAN (Metropolitan Area Network, redes de área metropolitana) , comprenden una ubicación geográfica determinada "ciudad, municipio", y su distancia de cobertura es mayor de 4 Kmts. Son redes con dos buses unidireccionales, cada uno de ellos es independiente del otro en cuanto a la transferencia de datos. Es básicamente una gran versión de LAN y usa una tecnología similar. Puede cubrir un grupo de oficinas de una misma corporación o ciudad, esta puede ser pública o privada. El mecanismo para la resolución de conflictos en la transmisión de datos que usan las MANs, es DQDB.
DQDB consiste en dos buses unidireccionales, en los cuales todas las estaciones están conectadas, cada bus tiene una cabecera y un fin. Cuando una computadora quiere transmitir a otra, si esta está ubicada a la izquierda usa el bus de arriba, caso contrario el de abajo.
Redes Punto a Punto. En una red punto a punto cada computadora puede actuar como cliente y como servidor. Las redes punto a punto hacen que el compartir datos y periféricos sea fácil para un pequeño grupo de gente. En una ambiente punto a punto, la seguridad es difícil, porque la administración no está centralizada.
Redes Basadas en servidor. Las redes basadas en servidor son mejores para compartir gran cantidad de recursos y datos. Un administrador supervisa la operación de la red, y vela que la seguridad sea mantenida. Este tipo de red puede tener uno o mas servidores, dependiendo del volumen de tráfico, número de periféricos etc. Por ejemplo, puede haber un servidor de impresión, un servidor de comunicaciones, y un servidor de base de datos, todos en una misma red.
Clasificación según su distribución lógica
Todos los ordenadores tienen un lado cliente y otro servidor: una máquina puede ser servidora de un determinado servicio pero cliente de otro servicio.
Servidor. Máquina que ofrece información o servicios al resto de los puestos de la red. La clase de información o servicios que ofrezca determina el tipo de servidor que es: servidor de impresión, de archivos, de páginas web, de correo, de usuarios, de IRC (charlas en Internet), de base de datos...
Cliente. Máquina que accede a la información de los servidores o utiliza sus servicios. Ejemplos: Cada vez que estamos viendo una página web (almacenada en un servidor remoto) nos estamos comportando como clientes. También seremos clientes si utilizamos el servicio de impresión de un ordenador remoto en la red (el servidor que tiene la impresora conectada).
Todas estas redes deben de cumplir con las siguientes características:
* Confiabilidad "transportar datos".
* Transportabilidad "dispositivos".
* Gran procesamiento de información.
y de acuerdo estas, tienen diferentes usos, dependiendo de la necesidad del usuario, como son:
* Compañías - centralizar datos.
* Compartir recursos "periféricos, archivos, etc".
* Confiabilidad "transporte de datos".
* aumentar la disponibilidad de la información.
* Comunicación entre personal de las mismas áreas.
* Ahorro de dinero.
* Home Banking.
* Aportes a la investigación "vídeo demanda,line T.V,Game Interactive".
TOPOLOGIAS
Bus: esta topología permite que todas las estaciones reciban la información que se transmite, una estación trasmite y todas las restantes escuchan.
Ventajas: La topologia Bus requiere de menor cantidad de cables para una mayor topologia; otra de las ventajas de esta topologia es que una falla en una estación en particular no incapacitara el resto de la red.
Desventajas: al existir un solo canal de comunicación entre las estaciones de la red, si falla el canal o una estación, las restantes quedan incomunicadas. Algunos fabricantes resuelven este problema poniendo un bus pararelo alternativo, para casos de fallos o usando algoritmos para aislar las componentes defectuosas.
Existen dos mecanismos para la resolución de conflictos en la transmisión de datos:
CSMA/CD: son redes con escucha de colisiones. Todas las estaciones son consideradas igual, por ello compiten por el uso del canal, cada vez que una de ellas desea transmitir debe escuchar el canal, si alguien está transmitiendo espera a que termine, caso contrario transmite y se queda escuchando posibles colisiones, en este último espera un intervalo de tiempo y reintenta nuevamente.
Token Bus: Se usa un token (una trama de datos) que pasa de estación en estación en forma cíclica, es decir forma un anillo lógico. Cuando una estación tiene el token, tiene el derecho exclusivo del bus para transmitir o recibir datos por un tiempo determinado y luego pasa el token a otra estación, previamente designada. Las otras estaciones no pueden transmitir sin el token, sólo pueden escuchar y esperar su turno. Esto soluciona el problema de colisiones que tiene el mecanismo anterior.
Redes en Estrella
Es otra de las tres principales topologías. La red se une en un único punto, normalmente con control centralizado, como un concentrador de cableado.
Redes Bus en Estrella
Esta topología se utiliza con el fin de facilitar la administración de la red. En este caso la red es un bus que se cablea físicamente como una estrella por medio de concentradores.
Redes en Estrella Jerárquica
Esta estructura de cableado se utiliza en la mayor parte de las redes locales actuales, por medio de concentradores dispuestos en cascada para formar una red jerárquica.
Redes en Anillo
Es una de las tres principales topologías. Las estaciones están unidas una con otra formando un círculo por medio de un cable común. Las señales circulan en un solo sentido alrededor del círculo, regenerándose en cada nodo.
Ventajas: los cuellos de botellas son muy pocos frecuentes
Desventajas: al existir un solo canal de comunicación entre las estaciones de la red, si falla el canal o una estación, las restantes quedan incomunicadas. Algunos fabricantes resuelven este problema poniendo un canal alternativo para casos de fallos, si uno de los canales es viable la red está activa, o usando algoritmos para aislar las componentes defectuosas. Es muy compleja su administración, ya que hay que definir una estación para que controle el token.
Existe un mecanismo para la resolución de conflictos en la transmisión de datos:
Token Ring: La estación se conecta al anillo por una unidad de interfaz (RIU), cada RIU es responsable de controlar el paso de los datos por ella, así como de regenerar la transmisión y pasarla a la estación siguiente. Si la dirección de cabecera de una determinada transmisión indica que los datos son para una estación en concreto, la unidad de interfaz los copia y pasa la información a la estación de trabajo conectada a la misma.
Se usa en redes de área local con o sin prioridad, el token pasa de estación en estación en forma cíclica, inicialmente en estado desocupado. Cada estación cuando tiene el token (en este momento la estación controla el anillo), si quiere transmitir cambia su estado a ocupado, agregando los datos atrás y lo pone en la red, caso contrario pasa el token a la estación siguiente. Cuando el token pasa de nuevo por la estación que transmitió, saca los datos, lo pone en desocupado y lo regresa a la red.
PROTOCOLOS
Características
Un protocolo es el conjunto de normas para comunicarse dos o más entidades ( objetos que se intercambian información ) . Los elementos que definen un protocolo son :
* Sintaxis : formato , codificación y niveles de señal de datos .
* Semántica : información de control y gestión de errores .
* Temporización : coordinación entre la velocidad y orden secuencial de las señales .
Las características más importantes de un protocolo son :
* Directo/indirecto : los enlaces punto a punto son directos pero los enlaces entre dos entidades en diferentes redes son indirectos ya que intervienen elementos intermedios .
* Monolítico/estructurado : monolítico es aquel en que el emisor tiene el control en una sola capa de todo el proceso de transferencia . En protocolos estructurados , hay varias capas que se coordinan y que dividen la tarea de comunicación .
* Simétrico/asimétrico : los simétricos son aquellos en que las dos entidades que se comunican son semejantes en cuanto a poder tanto emisores como consumidores de información . Un protocolo es asimétrico si una de las entidades tiene funciones diferentes de la otra ( por ejemplo en clientes y servidores ) .
Funciones
1. Segmentación y ensamblado :generalmente es necesario dividir los bloques de datos en unidades pequeñas e iguales en tamaño , y este proceso se le llama segmentación . El bloque básico de segmento en una cierta capa de un protocolo se le llama PDU ( Unidad de datos de protocolo ) . La necesidad de la utilización de bloque es por :
La red sólo admite la transmisión de bloques de un cierto tamaño .
El control de errores es más eficiente para bloques pequeños .
Para evitar monopolización de la red para una entidad , se emplean bloques pequeños y así una compartición de la red .
Con bloques pequeños las necesidades de almacenamiento temporal son menores .
Hay ciertas desventajas en la utilización de segmentos :
La información de control necesaria en cada bloque disminuye la eficiencia en la transmisión .
Los receptores pueden necesitar interrupciones para recibir cada bloque , con lo que en bloques pequeños habrá más interrupciones .
Cuantas más PDU , más tiempo de procesamiento .
2. Encapsulado : se trata del proceso de adherir información de control al segmento de datos . Esta información de control es el direccionamiento del emisor/receptor , código de detección de errores y control de protocolo .
3. Control de conexión : hay bloques de datos sólo de control y otros de datos y control . Cuando se utilizan datagramas , todos los bloques incluyen control y datos ya que cada PDU se trata como independiente . En circuitos virtuales hay bloques de control que son los encargados de establecer la conexión del circuito virtual . Hay protocolos más sencillos y otros más complejos , por lo que los protocolos de los emisores y receptores deben de ser compatibles al menos .Además de la fase de establecimiento de conexión ( en circuitos virtuales ) está la fase de transferencia y la de corte de conexión . Si se utilizan circuitos virtuales habrá que numerar los PDU y llevar un control en el emisor y en el receptor de los números .
4. Entrega ordenada : el envío de PDU puede acarrear el problema de que si hay varios caminos posibles , lleguen al receptor PDU desordenados o repetidos , por lo que el receptor debe de tener un mecanismo para reordenar los PDU . Hay sistemas que tienen un mecanismo de numeración con módulo algún número ; esto hace que el módulo sean lo suficientemente alto como para que sea imposible que haya dos segmentos en la red al mismo tiempo y con el mismo número .
5. Control de flujo : hay controles de flujo de parada y espera o de ventana deslizante . El control de flujo es necesario en varios protocolos o capas , ya que el problema de saturación del receptor se puede producir en cualquier capa del protocolo .
6. Control de errores : generalmente se utiliza un temporizador para retransmitir una trama una vez que no se ha recibido confirmación después de expirar el tiempo del temporizador . Cada capa de protocolo debe de tener su propio control de errores .
7. Direccionamiento : cada estación o dispositivo intermedio de almacenamiento debe tener una dirección única . A su vez , en cada terminal o sistema final puede haber varios agentes o programas que utilizan la red , por lo que cada uno de ellos tiene asociado un puerto .
Además de estas direcciones globales , cada estación o terminal de una subred debe de tener una dirección de subred ( generalmente en el nivel MAC ) .
Hay ocasiones en las que se usa un identificador de conexión ; esto se hace así cuando dos estaciones establecen un circuito virtual y a esa conexión la numeran ( con un identificador de conexión conocido por ambas ) . La utilización de este identificador simplifica los mecanismos de envío de datos ya que por ejemplo es más sencillo que el direccionamiento global .
Algunas veces se hace necesario que un emisor emita hacia varias entidades a la vez y para eso se les asigna un direccionamiento similar a todas .
8. Multiplexación : es posible multiplexar las conexiones de una capa hacia otra , es decir que de una única conexión de una capa superior , se pueden establecer varias conexiones en una capa inferior ( y al revés ) .
9. Servicios de transmisión : los servicios que puede prestar un protocolo son :
Prioridad : hay mensajes ( los de control ) que deben tener prioridad respecto a otros .
Grado de servicio : hay datos que deben de retardarse y otros acelerarse ( vídeo ) .
Seguridad .
Protocolo CSMA/CD.
Carrier Sense Mutiple Acces with Collision Detection. En este tipo de red cada estación se encuentra conectada bajo un mismo bus de datos, es decir las computadoras se conectan en la misma línea de comunicación (cablado), y por esta transmiten los paquetes de información hacia el servidor y/o los otros nodos. Cada estacion se encuentra monitoriando constantemente la línea de comunicación con el objeto de transmitir o resibir sus mensajes.
Estándares para redes de la IEEE.
- IEEE 802.1
Estándar que especifica la relación de los estándares IEEE y su interacción con los modelos OSI de la ISO, así como las cuestiones de interconectividad y administración de redes.
- IEEE 802.2
Control lógico de enlace (LLC), que ofrece servicios de "conexión lógica" a nivel de capa 2.
- IEEE 802.3
El comité de la IEEE 802. 3 definió un estándar el cual incluye el formato del paquete de datos para EtherNet, el cableado a usar y el máximo de distancia alcanzable para este tipo de redes. Describe una LAN usando una topologia de bus, con un metodo de acceso al medio llamado CSMA/CD y un cableado coaxial de banda base de 50 ohms capaz de manejar datos a una velocidad de 10 Mbs.
- IEEE 802.3 10Base5.
El estándar para bus IEEE 802.3 originalmente fue desarrollado para cable coaxial de banda base tipo Thick como muna norma para EtherNet, especificación a la cual se hace referencia como 10Base5 y describe un bus de red de compuesto por un cable coaxial de banda base de tipo thick el cual puede transmitir datos a una velocidad de 10Mbs. sobre un máximo de 500 mts.
- IEEE 802.3 10Base2.
Este estándar describe un bus de red el cual puede transmitir datosa una velocidad de 10 Mbs sobre un cable coaxial de banda base del tipo Thin en una distancia máxima de 200 mts.
- IEEE 802.3 STARLAN.
El comité IEEE 802 desarrllo este estándar para una red con protocolo CSMA el cual hace uso de una topología de estrella agrupada en la cual las estrellas se enlazan con otra. También se le conoce con la especificación 10Base5 y describe un red la cual puede transmitir datos a una velocidad de 1 Mbs hasta una distancia de 500 mts. usando un cableado de dos pares trenzados calibres 24.
- IEEE 802.3 10BaseT.
Este estándar describe un bus lógico 802.3 CSMA/CD sobre un cableado de 4 pares trenzados el cual esta configurado físicamente como una estrella distribuida, capas de transmitir datos a 10 Mbs en un máximo de distancia de 100 mts.
- IEEE 802.4
Define una red de topología usando el método de acceso al medio de Token Paassing.
- IEEE 802.5 Token Ring.
Este estándar define una red con topología de anillo la cual usa token (paquete de datos) para transmitir información a otra. En una estación de trabajo la cual envía un mensaje lo sitúa dentro de un token y lo direcciona especificamente a un destino, la estacion destino copia el mensaje y lo envía a un token de regreso a la estación origen la cual remueve el mensaje y pasa el token a la siguiente estación.
- IEEE 802.6
Red de área metropolitana (MAN), basada en la topologia popuesta por la University of Western Australia, conocida como DQDB (Distribuited Queue Dual Bus) DQDB utiliza un bus dual de fibra óptica como medio de transmisión. Ambos buses son unidireccionales, y en contra-sentido. Con esta tecnologia el ancho de banda es distribuido entre los usuarios , de acuerdo a la demanda que existe, en proceso conocido como "inserción de ranuras temporales". Puesto que puede llevar transmisión de datos síncronicos y asíncronicos, soporta aplicaciones de video, voz y datos. IEEE 802.6 con su DQDB, es la alternativa de la IEEE para ISDN.
- IEEE 802.12
Se prevé la posibilidad de que el Fast EtherNet, adémdum de 802.3, se convierta en el IEEE 802.12.
MODELO OSI
Definición
Modelo abierto para arquitecturas funcionales de red, periféricos , archivos a compartir , utilidad de red.El sistema de comunicaciones del modelo OSI estructura el proceso en varias capas que interaccionan entre sí . Un capa proporciona servicios a la capa superior siguiente y toma los servicios que le presta la siguiente capa inferior .De esta manera , el problema se divide en subproblemas más pequeños y por tanto más manejables .
Para comunicarse dos sistemas , ambos tienen el mismo modelo de capas . La capa más alta del sistema emisor se comunica con la capa más alta del sistema receptor , pero esta comunicación se realiza vía capas inferiores de cada sistema .La única comunicación directa entre capas de ambos sistemas es en la capa inferior ( capa física ) .
Los datos parten del emisor y cada capa le adjunta datos de control hasta que llegan a la capa física . En esta capa son pasados a la red y recibidos por la capa física del receptor . Luego irán siendo captados los datos de control de cada capa y pasados a una capa superior . Al final , los datos llegan limpios a la capa superior .
Cada capa tiene la facultad de poder trocear los datos que le llegan en trozos más pequeños para su propio manejo . Luego serán reensamblados en la capa paritaria de la estación de destino .
Características
1. Arquitectura:
* Conocimiento del trafico.
* Trama - división de la información.
* Paquete - todos los datos a ser enviados.
* Segmento - Conjunto de trama.
2. Medio de Transmisión:
* Nic - red
* Asociación -router,bridge,gateway.
* Tecnología - red "lan, wan,man".
3. Topología:
* Distancia.
* Distribución.
* Enrutamiento
4. Capacidad mucha de banda:
* Proceso estocastico.
* Probabilidad de llegada.
* Distribución "binomial- normal ".
Primitivas de servicio y parámetros
Las capas inferiores suministran a las superiores una serie de funciones o primitivas y una serie de parámetros .La implementación concreta de estas funciones está oculta para la capa superior ., ésta sólo puede utilizar las funciones y los parámetros para comunicarse con la capa inferior( paso de datos y control).
sábado, 8 de marzo de 2008
Sistema Operativo Linux
Introducción
En una era de cambios en el ambiente computacional, de una amplia oferta en sistemas operativos e interfaces gráficas y sobre todo, del costo que representa contar con un sistema operativo que interactue con el software sin problemas, surge con fuerza inusitada: Linux
LINUX es un sistema operativo, compatible Unix. Dos características muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado, la primera, es que es libre, esto significa que no tenemos que pagar ningún tipo de licencia a ninguna casa desarrolladora de software por el uso del mismo, la segunda, es que el sistema viene acompañado del código fuente. El sistema lo forman el núcleo del sistema (kernel) mas un gran numero de programas / librerías que hacen posible su utilización.
LINUX se distribuye bajo la GNU Public License: Ingles , por lo tanto, el código fuente tiene que estar siempre accesible.
El sistema ha sido diseñado y programado por multitud de programadores alrededor del mundo. El núcleo del sistema sigue en continuo desarrollo bajo la coordinación de Linus Torvalds, la persona de la que partió la idea de este proyecto, a principios de la década de los noventa.
Día a día, más y más programas / aplicaciones están disponibles para este sistema, y la calidad de los mismos aumenta de versión a versión. La gran mayoría de los mismos vienen acompañados del código fuente y se distribuyen gratuitamente bajo los términos de licencia de la GNU Public License.
En los últimos tiempos, ciertas casas de software comercial han empezado a distribuir sus productos para Linux y la presencia del mismo en empresas aumenta rápidamente por la excelente relación calidad - precio que se consigue con Linux.
Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-. Pentium, Pentium Pro, Pentium II, Amiga y Atari, también existen versiones para su utilización en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.
Reseña
Historia del Linux: Linux fue creado originalmente por Linus Torvald en la Universidad de Helsinki en Finlandia, siendo él estudiante de informática. Pero ha continuado su desarrollado con la ayuda de muchos otros programadores a través de Internet.
Linux originalmente inicio el desarrollo del núcleo como su proyecto favorito, inspirado por su interés en Minix, un pequeño sistema Unix desarrollado por Andy Tannenbaum. Él se propuso a crear lo que en sus propias palabras seria un "mejor Minix que el Minix".
El 5 de octubre de 1991, Linux anuncio su primera versión "oficial" de Linux, versión 0.02. Desde entonces , muchos programadores han respondido a su llamada, y han ayudado a construir Linux como el sistema operativo completamente funcional que es hoy.
¿QUÉ ES LINUX?
Linux es un sistema operativo diseñado por cientos de programadores de todo el planeta, aunque el principal responsable del proyecto es Linus Tovalds. Su objetivo inicial es propulsar el software de libre distribución junto con su código fuente para que pueda ser modificado por cualquier persona, dando rienda suelta a la creatividad. El hecho de que el sistema operativo incluya su propio código fuente expande enormemente las posibilidades de este sistema. Este método también es aplicado en numerosas ocasiones a los programas que corren en el sistema, lo que hace que podamos encontrar muchisimos programas útiles totalmente gratuitos y con su código fuente. Y la cuestión es que, señores y señoras, Linux es un sistema operativo totalmente gratuito.
Mi máquina corre Linux, y puedo asegurar que es uno de los sistemas que más aprovecha mi computadora, es decir, con el consigo ejecutar tareas mucho más rápido que con otros sistemas operativos comerciales. Y es que Linux no requiere grandes prestaciones para funcionar.
Las funciones principales de este magnífico sistema operativo son:
Sistema multitarea En Linux es posible ejecutar varios programas a la vez sin necesidad de tener que parar la ejecución de cada aplicación.
Sistema multiusuario Varios usuarios pueden acceder a las aplicaciones y recursos del sistema Linux al mismo tiempo. Y, por supuesto, cada uno de ellos puede ejecutar varios programas a la vez (multitarea).
Shells programables Un shell conecta las ordenes de un usuario con el Kernel de Linux (el núcleo del sistema), y al ser programables se puede modificar para adaptarlo a tus necesidades. Por ejemplo, es muy útil para realizar procesos en segundo plano.
Independencia de dispositivos Linux admite cualquier tipo de dispositivo (módems, impresoras) gracias a que cada una vez instalado uno nuevo, se añade al Kernel el enlace o controlador necesario con el dispositivo, haciendo que el Kernel y el enlace se fusionen. Linux posee una gran adaptabilidad y no se encuentra limitado como otros sistemas operativos.
Comunicaciones Linux es el sistema más flexible para poder conectarse a cualquier ordenador del mundo. Internet se creó y desarrollo dentro del mundo de Unix, y por lo tanto Linux tiene las mayores capacidades para navegar, ya que Unix y Linux son sistemas prácticamente idénticos. Con linux podrá montar un servidor en su propia casa sin tener que pagar las enormes cantidades de dinero que piden otros sistemas.
Linux no sacrifica en ningún momento la creatividad, tal y como lo hacen algunas compañías informáticas. Linux es una ventana abierta por la que es posible huir hacia un mundo donde la verdadera informática puede ser disfrutada sin limites ni monopolios.
Linux es distribuido mediante una serie de distribuciones como RedHat, Slackware, Debían ... las cuales se diferencian por su método de instalación y por los paquetes (software) que viene incluido. Es posible que encuentre a la venta versiones de Linux y piense: "si, si.... decían que era gratis..." No se asuste, todo el software de Linux esta regido por la licencia de GNU, con la cual cualquier persona puede modificar un programa y venderlo según el desee, con la condición que la persona que compra ese producto puede realizar la misma acción o simplemente hacer copias para todos aquellos que lo quieran sin tener que pagar más (por lo tanto no se extrañe si encuentra distribución comerciales). Esta licencia es la garantía que afirma la absoluta libertad de este sistema operativo. Si no desea ni siquiera pagar esa mísera cantidad puede descargárselo de Internet totalmente gratis (bueno, sólo tendrá que pagar la factura de teléfono ).
Características de Linux
multitarea: varios programas (realmente procesos) ejecutándose al mismo tiempo.
multiusuario: varios usuarios en la misma máquina al mismo tiempo (y sin licencias para todos).
multiplataforma: corre en muchas CPUs distintas, no sólo Intel.
funciona en modo protegido 386.
tiene protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema.
carga de ejecutables por demanda: Linux sólo lee de disco aquellas partes de un programa que están siendo usadas actualmente.
política de copia en escritura para la compartición de páginas entre ejecutables: esto significa que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria.
memoria virtual usando paginación (sin intercambio de procesos completos) a disco: una partición o un archivo en el sistema de archivos, o ambos, con la posibilidad de añadir más áreas de intercambio sobre la marcha (se sigue denominando intercambio, es en realidad un intercambio de páginas). Un total de 16 zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un momento dado con un límite teórico de 2Gb para intercambio.
la memoria se gestiona como un recurso unificado para los programas de usuario y para el caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y éste puede a su vez ser reducido cuando se ejecuten grandes programas.
librerías compartidas de carga dinámica (DLL's) y librerías estáticas también, por supuesto.
se realizan volcados de estado (core dumps) para posibilitar los análisis post-mortem, permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también tras abortar éstos por cualquier motivo.
casi totalmente compatible con POSIX, System V y BSD a nivel fuente.
mediante un módulo de emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel binario.
todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; además todo ello se puede distribuir libremente. Hay algunos programas comerciales que están siendo ofrecidos para Linux actualmente sin código fuente, pero todo lo que ha sido gratuito sigue siendo gratuito.
control de tareas POSIX.
pseudo-terminales (pty's).
emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de coprocesador matemático. Por supuesto, si tu ordenador ya tiene una FPU (unidad de coma flotante), será usada en lugar de la emulación, pudiendo incluso compilar tu propio kernel sin la emulación matemática y conseguir un pequeño ahorro de memoria.
soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos dinámicamente.
consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del hardware de video). Se crean dinámicamente y puedes tener hasta 64.
soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los sistemas de archivo típicos de System V, y tiene un avanzado sistema de archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres de longitud.
acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un sistema de archivos especial: no necesitas ningún comando especial para usar la partición MS-DOS, parece un sistema de archivos normal de Unix (excepto por algunas graciosas restricciones en los nombres de archivo, permisos, y esas cosas). Las particiones comprimidas de MS-DOS 6 no son accesibles en este momento, y no se espera que lo sean en el futuro. El soporte para VFAT (WNT, Windows 95) ha sido añadido al núcleo de desarrollo y estará en la próxima versión estable.
un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en un sistema de archivos DOS.
soporte en sólo lectura de HPFS-2 del OS/2 2.1
sistema de archivos de CD-ROM que lee todos los formatos estándar de CD-ROM.
TCP/IP, incluyendo ftp, telnet, NFS, etc.
Appletalk disponible en el actual núcleo de desarrollo.
software cliente y servidor Netware disponible en los núcleos de desarrollo.
LINUX - COMANDOS BÁSICOS
date muestra la fecha del sistema.
date –u mmddhhhhaa cambia la fecha del sistema, ej. 1202120095 es igual a mes 12, día 02, hora 12:00 y año 1995.
logout sale de la actual sesión.
login sale de la actual sesión.
^D sale de la actual sesión.
Alt+F1 inicia una consola virtual (varias a la vez: F1,F2,F3...)
passwd cambia el password del actual usuario.
^C aborta programa en ejecución.
^S paraliza la pantalla.
^Q anula la paralización de la pantalla.
who lista los usuarios conectados.
who am i lista tu nombre.
who you are lista tu nombre.
mail nombre envía correo, se finaliza escribiendo un punto en una línea sola.
mail visualiza tu correo, teclea ? para ayuda.
ls lista directorios y ficheros.
ls –i lista directorios y ficheros con sus i-números.
ls –a lista directorios y ficheros en orden alfabético.
ls –s lista directorios y ficheros con su tamaño en bloque (1 bloque= 512 bytes)
ls –r lista directorios y ficheros en orden inverso.
ls –u lista directorios y ficheros según último acceso.
ls –l lista todos los directorios y ficheros en formato largo.
Head –nº lines selecciona la primera línea (ej. lshead –1 lines)
cat file file ... visualiza seguidamente los ficheros indicados.
cat file file > file graba los dos archivos en uno.
ln file link crea un enlace a un archivo, los dos contienen el mismo fichero físico, si cambias uno, cambia el otro. Pero si borras uno todavía queda el otro.
cp file file copia ficheros.
rm file borra ficheros.
mv file file mueve o cambia de nombre.
pwd muestra el directorio actual.
cd cambia de directorio.
mkdir directorio crea un directorio.
rmdir directorio borra un directorio.
comando & hace que el proceso sea desatendido en 2º plano (background).
ps [nº] muestra los procesos desatendidos.
ps alx muestra los procesos desatendidos asociados a la terminal (a), los no asociados (x) y hace una lista larga (l).
Elementos de la lista larga:
STA (Estado del proceso)
O (Inexistente) S (Durmiendo) W (Esperando)
I (Intermedio) R (Ejecutándose) Z (Terminado)
Z (Parado)
UID (Nº de Identificación del propietario)
PID (Nº de Identificación del proceso)
PPID (Nº de Identificación del proceso padre)
PRI (Prioridad, nº altos=baja prioridad)
WCHAN (Suceso al que espera) NICE (Nº para calcular la pri.)
TTY (Terminal) STTY (Tiempo de ejecución)
kill nº detiene la ejecución de un proceso en background.
at hora o fecha
comando > file redirecciona la salida a un archivo.
(comando ; comando) > file redirecciona toda la salida del conjunto a un archivo.
comando >> file redirecciona la salida a un archivo, pero lo añade al final de este.
comando <> file redirecciona de forma contraria para acabar llevando el resultado a un archivo.
comando comando tubo (pipeline) la salida del 1º la envía hacia el 2º.
*, ?, [...], ... caracteres de sustitución.
echo * lista directorios y ficheros.
echo –n "Hoy es `date`, hola $variable" hace eco sin carro de retorno (-n) de la frase Hoy es, ejecuta el comando date (entre acentos), hace eco de hola y imprime el contenido de la variable. Para eliminar los valores especiales de algunos caracteres deberemos escribir / antes, ejemplo "Hola /"Pepe/"".
mesg y permite que te escriban los usuarios del sistema.
mesg n prohibe que te escriban a los usuarios del sistema.
mesg muestra el estado actual (escribir o no).
tty muestra tu número (archivo) de terminal.
write nombre [tty] para comunicarse con un usuario conectado al sistema. Para salir ^D, para indicar al otro el fin del mensaje –oo-, y el fin de la comunicación –oo-. Si el usuario pertenece a otra terminal, se debe indicar. Si el usuario tiene el mesg en no o esta realizando una tarea específica no podremos comunicarnos.
cmp file file comprueba si son idénticos, si lo son no aparece ninguna salida.
comm [-nº] file file lista las palabras comunes de los dos archivos, en el número se indica la columna a comparar: 0,1,2,3.
diff file file lista las palabras diferentes de los dos archivos.
find . –file ... –mtime 1 –size +10 –type f busca en el directorio actual los ficheros con dicho nombre, que hayan sido modificados hace 1 día, con un tamaño mayor a 10 bloques y del tipo fichero.
find / -name ... –atime 1 –size –20 –type d busca en el directorio actual los directorios con dicho nombre, que hayan tenido acceso hace 1 día, con tamaño menor que 20 bloques y del tipo directorio.
find . –name –ok rm {} \; busca en el directorio actual y borra los ficheros encontrados que cumplan los requisitos.
lpr file imprime el archivo.
pr file imprime el archivo junto a un encabezamiento, la fecha, hora, ...
tail nº file muestra la cola de un archivo, en nº se debe especificar: +2l (a partir de la segunda línea por arriba), -10l (a partir de la décima línea por abajo). Si en lugar de l (línea) podemos escribir b (bloque) ó c (carácter).
tr caracteres caracteres cambia los caracteres por los indicados a continuación. (Ejemplo: tr abc ABC).
tee file muestra los datos en un punto intermedio.
du muestra el tamaño por bloques de cada archivo y directorio.
du –s muestra el tamaño total por bloques.
file file indica el tipo de archivo que es (empty\ cannot open\ directory\ English text\ ascii text\ data).
stty información sobre nuestro terminal.
stty [-] raw lee carácter a carácter. Se anula añadiendo el signo – al comando.
stty [-] cooked lee línea a línea. Se anula añadiendo el signo – al comando.
stty [-] cbreak mezcla de los dos anteriores. Se anula añadiendo el signo – al comando.
stty [-] nl no retorna el carro hasta el principio (se anula con ^J).
stty [-] echo no se ven las pulsaciones en pantalla. Se anula añadiendo el signo – al comando.
sort file muestra en pantalla el archivo ordenado por la 1ª columna (para indicar la segunda columna añadir +1 y así sucesivamente).
sort file –u muestra en pantalla el archivo ordenado por la 1ª columna sin las líneas duplicadas.
sort file –b muestra en pantalla el archivo ordenado por la 1ª columna ignorando espacios en blanco.
sort file –f muestra en pantalla el archivo ordenado por la 1ª columna distinguiendo entre minúsculas y mayúsculas.
sort file –r muestra en pantalla el archivo ordenado por la 1ª columna en orden inverso.
sort file –c comprueba si el archivo ya esta ordenado.
grep palabra file busca unos caracteres determinados en un fichero. grep –v palabra file busca las líneas que no contienen dicha palabra. grep –c palabra file muestra el número de líneas que contienen la palabra. grep –y palabra file busca la palabra en el fichero sin distinguir entre
minúsculas y mayúsculas.
grep –n palabra file busca la palabra y muestra su línea con el número de
esta.
uniq file muestra el archivo sin las líneas que estén repetidas.
wc file muestra el número de líneas, palabras y caracteres (en este orden) del archivo.
wc –l file muestra el número de líneas del archivo.
wc –w muestra el número de palabras del archivo.
wc –c muestra el número de caracteres del archivo.
cal [nº mes] nº año imprime un calendario del mes y/o año indicado. Mes: 1-12, año 1-9999.
newgrp grupo cambia de grupo.
sum file suma las palabras de un archivo.
expr nº + nº suma +, resta -, multiplica *, divide /,... una expresión.
wall mensaje manda un mensaje a todos los usuarios. (Solo lo recibirán los usuarios que tengan su sistema configurado para poder recibir estos mensajes)
id muestra nuestro UserId y el GroupId.
chmod nºnºnº file cambia los permisos de un archivo. 1: Permiso de ejecución (x), 2: Permiso de escritura (w), 3: Permiso de lectura ( r). Se deben sumar para poner más de uno. El primer número corresponde al creador del archivo, el segundo al grupo del creador, y el tercero al resto de usuarios. Ej. 666 : todo el mundo tiene permiso de todo.
chown nombre file cambia el propietario de un archivo.
chgrp grupo file cambia el grupo del propietario de un archivo.
umask muestra los permisos por defecto de los archivos creados. Ej. 022 entonces 666-022=644, es decir usuario permiso de w, r, grupo permiso de r y lo otros permiso de r.
umask nº cambia los permisos por defecto de los archivos creados. Ej. umask 000: todo el mundo tiene todos los permisos al ser creado un archivo.
Archivos especiales:
/etc/passwd Contiene todos los logins y passwords
/etc/motd Mensaje del día
/etc/profile Se ejecuta al introducir al entrar en el sistema
Versiones
El desarrollo inicial Linux ya aprovechaba las características de conmutación de tareas en modo protegido del 386, y se escribió todo en ensamblador.
Linus nunca anunció la versión 0.01 de Linux (agosto 1991), esta versión no era ni siquiera ejecutable, solamente incluía los principios del núcleo del sistema, estaba escrita en lenguaje ensamblador y asumía que uno tenia acceso a un sistema Minix para su compilación.
El 5 de octubre de 1991, Linus anunció la primera versión "Oficial" de Linux, - versión 0.02. Con esta versión Linus pudo ejecutar Bash (GNU Bourne Again Shell) y gcc (El compilador GNU de C) pero no mucho mas funcionaba. En este estado de desarrollo ni se pensaba en los términos soporte, documentación, distribución.
Después de la versión 0.03, Linus salto en la numeración hasta la 0.10, más y más programadores a lo largo y ancho de internet empezaron a trabajar en el proyecto y después de sucesivas revisiones, Linus incremento el numero de versión hasta la 0.95 (Marzo 1992). Mas de un año después (diciembre 1993) el núcleo del sistema estaba en la versión 0.99 y la versión 1.0 no llego hasta el 14 de marzo de 1994.
La versión actual del núcleo es la 2.2 y sigue avanzando día a día con la meta de perfeccionar y mejorar el sistema.
La ultima versión estable es la versión 2.2, que soporta muchos más periféricos, desde procesadores hasta joysticks, sintonizadores de televisión, CD ROMs no ATAPI y reconoce buena cantidad de tarjetas de sonido. Incluye también soporte para tipos de archivos para Macintosh HFS, Unix UFS y en modo de lectura, HPFS de OS/2 y NTFS, de NT.
Otras Versiones:
Linux 2.0
Linux 2.2
Linux 2.3
Comparación
Diferencias principales entre DOS y Linux
Se señala las diferencias de Linux con el DOS y no con otro S.O. porque la mayoría provienen del DOS.
No existe el concepto de unidad de disco. Todas las unidades en Linux se 'montan' como si fueran un subdirectorio más.
No existe el concepto de extensión del nombre de un fichero. Los ficheros pueden tener nombres de hasta 256 caracteres. Los puntos están permitidos en el nombre de un fichero. Así, un fichero se podrá llamar:
DOSEMU-HOWTO.español.tar.gz
por poner un ejemplo.
Los subdirectorios no se separan con el carácter '\', como en DOS, sino con el carácter '/'. Ejemplo:
/usr/src/linux-1.2.13/Makefile
Existe diferencia entre mayúsculas y minúsculas. Por ejemplo, no es lo mismo 'dir' que 'DIR' que 'Dir'...
Adiós a los atributos de los ficheros, tal y como los conoce el DOS. Cada fichero tendrá ahora 10 'atributos'.
Entre un comando y sus parámetros deberemos dejar obligatoriamente un espacio en blanco. Por ejemplo 'cd..' no funcionará mientras que 'cd ..' sí.
IMPORTANTE: Un sistema Linux NUNCA se puede apagar por las buenas. Antes le hemos de advertir al S.O. de que vamos a apagarlo (o reiniciarlo). La razón de que esto deba ser así es para que al sistema le dé tiempo de escribir en disco todos los datos que tuviera pendientes de escribir, salir ordenadamente de todas las aplicaciones que tuviera arrancadas y desmontar todas las unidades que tuviera montadas.
Existen muchas otras diferencias (gestión de memoria plana, ...), pero las mencionadas son las que más nos pueden influir en la forma de trabajar, al menos en principio.
¿Qué es el kernel?
El kernel o núcleo de linux se podría definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.
Las funciones mas importantes del mismo, aunque no las únicas, son:
Administración de la memoria, para todos los programas en ejecución.
Administración del tiempo de procesador, que estos programas en ejecución utilizan.
Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.
Existen dos versiones del Linux kernel:
Versión de producción: La versión de producción, es la versión estable hasta el momento. Esta versión es el resultado final de las versiones de desarrollo o experimentales.
Cuando el equipo de desarrollo del kernel experimental, decide que ha conseguido un kernel estable y con la suficiente calidad, se lanza una nueva versión de producción o estable. Esta versión es la que se debería utilizar para un uso normal del sistema, ya que son las versiones consideradas mas estables y libres de fallos en el momento de su lanzamiento.
Versión de desarrollo: Esta versión es experimental y es la que utilizan los desarrolladores para programar, comprobar y verificar nuevas características, correcciones, etc. Estos núcleos suelen ser inestables y no se deberían usar, a no ser que sepas lo que haces.
Como interpretar los números de las versiones:
Las versiones del kernel se numeran con 3 números, de la siguiente forma: XX.YY.ZZ
XX: Indica la serie principal del kernel. Hasta el momento solo existen la 1 y 2. Este numero cambia cuando la manera de funcionamiento del kernel ha sufrido un cambio muy importante.
YY: Indica si la versión es de desarrollo o de producción. Un numero impar, significa que es de desarrollo, uno par, que es de producción. ZZ: Indica nuevas versiones dentro de una versión, en las que lo único que se ha modificado, son fallos de programación /bugs.
Unos ejemplos nos ayudaran a entenderlo mejor:
ej1: versión del kernel 2.0.0: Kernel de la serie 2 (XX=2), versión de producción 0 (YY=0 par), primera versión de 2.0 (ZZ=0)
ej2: versión del kernel 2.0.1: Kernel de la serie 2, versión 0, en el que se han corregido errores de programación presentes en la versión 2.0.0 (ZZ=1)
ej3: versión del kernel 2.1.100: versión 100 del kernel de desarrollo 2.1.
Sistemas de Archivos
Sistema de ficheros linux (I)
Bueno como sabrás el DOS funciona con FAT, File Allocation Table, o sea una tabla a principio del disco duro donde se almacena, la información de cada bloque del disco, de manera que tenemos una lista enlazada para cada fichero.
--------- 2 0 FICHERO A bloques 0 2 6 --------- 3 1 FICHERO B bloques 1 3 4 --------- 6 2 --------- 4 3 --------- fin 4 --------- 5 --------- fin 6 ---------
Para leer un fichero A leemos en la fat el bloque 0, vemos donde continua y leemos la fat en el bloque 2, leemos el bloque del disco, y volvemos a leer el bloque de la fat donde esta el bloque 6. Esto parece rápido, y lo es i la FAT esta en memoria, pero si calculamos lo que puede ocupar una FAT de un disco duro de 1Giga donde el disco esta dividido en bloques de pongamos 4024Kb y pongamos 20 bytes por descriptor, tenemos una FAT de 5 megas, (no recuerdo de cuanto era el tamaño de bloque/descriptor en MSDOS), lo cual no se puede tener en memoria y si hay que leer cada vez de disco es muy lento. Cuando MSDOS funcionaba en disquete no era demasiado problema tener en memoria unos Ks de FAT, pero con los disco de ahora de Giga ya es un problema.
¿Como lo hace UNIX? ¿Y por supuesto ext2 de Linux? Con otra estructura de datos llamada i-nodes, que para cada fichero tiene un array, con las posiciones del disco donde se encuentra este. De esta manera cuando queremos leer un fichero, leemos solo un trozo de disco contiguo, donde encontramos todas las referencias a ése y no toda la FAT que puede ser de mas de un mega. Con los nodos-i (o inodes) no ahorramos espacio de disco (con respecto a FAT), la información de en que bloques esta cada fichero la tenemos igual pero mejor organizada.
Las tablas de i-nodes tienen un tamaño limitado, pero en caso de que se llenen con indirecciones se accede a otras tablas de i-nodes, con lo que el limite del tamaño de los ficheros es grande. (bueno esto lo he explicado un poco por encima se podría explicar extensamente).
IN> Me imagino que el ext2 es mejor que el msdos, pero realmente que IN> diferencias hay entre ellos (menos lo de los permisos y la lon- IN> gitud del nombre de los ficheros).
Pues como has visto es mas rapido y eficiente, aparte de no tener las limitaciones de usuario, permisos, nombres largos, etc.
El tamaño de bloque de disco, en MS DOS es fijo en función del tamaño de la partición, en linux en el momento en que formateas la partición con mkfs (o mk2efs no recuerdo) puedes elegir el tamaño del bloque según vayas a tener mas ficheros pequeños, o mas ficheros grandes.
Sistema de ficheros linux (II)
El ext2 tiene un tamaño de i-nodo fijo entre 1 y 4K, independientemente del tamaño de la partición. El tamaño del i-nodo se selecciona al crear el sistema de archivos y es seleccionable por el usuario.
El ext2 tiene una unidad similar al cluster, llamada bloque, y que es, por lo general de 1K, especificable por el usuario e independiente del tamaño de la partición, lo cual asegura un buen aprovechamiento del espacio libre con archivos pequeños.
El ext2 no usa una FAT, sino una tabla de i-nodos distribuidos en un número determinable de grupos a través de la superficie, lo cual permite balancear la distribución de los bloques de archivos en la superficie a través de dichos grupos para asegurar la mínima fragmentación.
El ext2 tiene un límite máximo de 4GB de archivo, pero no limita el tamaño máximo de la partición a 4GB, como es el caso de la FAT.
El ext2 tiene soporte para detección de un sistema de archivos desmontado incorrectamente cuando el sistema se apaga de forma errónea, y capacidad para autorecuperarlo en caso de fallo accidental.
El ext2 mantiene información de la última vez que se montó y se accedió al volumen (sistema de archivos), así como del número de veces que se ha montado dicho volumen desde la última comprobación automática, así como la fecha en la que se comprobó su integridad por última vez.
El ext2 permite asignar un porcentaje del disco duro que se reserva para el uso de usuarios con un "uid" y "gid" específicos.
El ext2 es un sistema de archivos mucho más avanzado que el MS-DOS, con soporte de corrección y detección de errores, compresión de archivos (todavía por implementar), mayor tolerancia a la fragmentación de archivos y con unos tiempos de respuesta muy superiores, aunque a un coste superior de utilización de memoria.
¿Qué es la Swap?
La swap es un espacio reservado en tu disco duro para poder usarse como una extensión de memoria virtual de tu sistema. Es una técnica utilizada desde hace tiempo para hacer creer a los programas que existe mas memoria RAM de la que en realidad existe. Es el propio sistema operativo el que se encarga de pasar datos a la swap cuando necesita mas espacio libre en la RAM y viceversa.
En Linux, la memoria total disponible por el sistema estará formada por la cantidad de memoria RAM instalada + la swap disponible. El acceso a la swap (disco duro) es mas lento que el acceso a la memoria RAM, por lo que si nuestro ordenador esta muy cargado de trabajo y hace un uso intensivo de la swap, la velocidad del sistema disminuirá. Un uso muy intensivo y continuado de la swap es un indicativo de que necesitamos mas memoria en nuestro sistema para que funcione desahogado con el uso que le estamos dando.
En linux generalmente se usa como mínimo una partición dedicada a swap (aunque también se puede tener un fichero swap).
¿Cuanta Swap necesito?
Esta es otra pregunta que es difícil de contestar: Todo dependerá del uso que se le vaya a dar al sistema y del espacio libre que tengamos.
Si vas a utilizar muchos programas a la vez y tienes poca memoria RAM, necesitaras mas swap, si tienes mucha RAM, no necesitaras tanta swap. Hay que recordar que un uso no intensivo de la swap es normal y no afectara mucho a la velocidad del sistema, pero como hemos dicho antes, un uso muy intensivo y continuado es un indicativo de que necesitamos mas memoria RAM.
No existe una formula mágica para saber cuanto espacio deberíamos reservar para swap. Hay que recordar que la memoria total disponible en Linux es RAM + Swap. Como datos orientativos podríamos decir que como mínimo, esta combinación debería ser de 32MB para sistemas que se utilicen en modo texto y de 64MB en adelante para sistemas que se utilicen en modo gráfico.
Aquí tienes una serie de consejos sobre la swap:
Es recomendable el tener siempre algo de swap configurada, incluso en sistemas con mucha memoria.
En linux no se puede tener mas de 128MB en una partición swap, si necesitas mas de 128MB de swap, puedes tener mas de una partición dedicada a swap, por ejemplo, dos de 128MB
Si tienes mas de un disco, instala la swap en el que trabaje mas rápido.
Si tienes mas de un disco que se puedan acceder simultáneamente (por ej. dos SCSI, o dos IDE en diferentes canales IDE), se puede ganar algo de velocidad teniendo una particion swap en cada uno de estos discos.
Para un uso privado "normal-alto" del sistema, aquí tienes unos ejemplos orientativos de la cantidad de swap recomendable:
16MB RAM + 64MB Swap
32MB RAM + 96MB Swap
64MB RAM + 64MB Swap
128MB RAM + 128MB Swap
256MB RAM + 128MB Swap
Como dato anecdótico, decir que existen servidores, en donde la cantidad de swap llega a ser de 256MB y hasta 512MB aunque yo tengo ordenadores con 16MB de RAM y 16MB de Swap como servidores de impresión que funcionan sin ningún problema.
En fin, cada uno debe de saber el uso que le va a dar a su sistema y analizar la cantidad de memoria necesaria, aunque si tienes espacio de sobra en el disco, mas vale tener mas Swap disponible que la necesaria, por lo que pueda ocurrir en un futuro, como dice el dicho, mas vale que sobre que no que falte.
Manejo de memoria
¿Qué es una partición? ¿Cómo creo una partición?
Particionar el disco duro es una manera de dividir el disco físico en varios discos lógicos. O lo que es lo mismo, al particionar un disco, dividimos el disco en varias particiones independientes unas de otras, creando la ilusión de que tenemos diferentes discos, cuando en realidad lo que tenemos es un solo disco físico dividido en partes. Una partición es una de estas partes (divisiones) del disco.
Existen dos clases de particiones: primarias y extendidas. En un disco solo podrás tener como máximo 4 particiones primaria y 1 extendida. En la partición extendida se podrán definir todas (bueno también existe un limite, pero es alto) las unidades lógicas que queramos. Con este sistema podemos tener una gran cantidad de particiones en nuestro disco.
Cualquier disco que tengamos en nuestro ordenador tiene al menos una partición primaria, que en la mayoría de los casos tiene un tamaño equivalente al total del disco.
Unos ejemplos aclararan las cosas:
Un disco de 1Gb con una sola partición, tendrá una partición primaria de 1Gb (total del disco).
Ese mismo disco podría tener 4 particiones primarias de 0.25Gb cada una, dando la ilusión de que tenemos 4 discos duros de 0.25Gb en vez de un solo disco de 1Gb.
Otra combinación posible podría ser 4 particiones primarias de 0.10Gb y 1 extendida con 6 unidades lógicas de 0.10Gb, en este caso parecería que tenemos 10 discos duros de 0.10Gb cada uno.
Las combinaciones son múltiples y variadas y dependerán de nuestros gustos y de lo que necesitemos.
Casi todos los sistemas operativos traen un programa con el que podemos crear, modificar, borrar las particiones de nuestro disco. En Ms-Dos/Windows de llama FDISK, este programa solo puede trabajar con particiones de Ms-Dos/Windows. En Linux también se llama FDISK (/sbin/fdisk), pero es un programa mas potente, capaz de trabajar y crear particiones tanto para Linux como otros sistemas operativos. Si vas a trabajar con Linux, es recomendable el uso del FDISK que viene con tu distribución, para evitar problemas.
Al contrario que Ms-Dos, Windows, OS/2, las diferentes particiones en linux no se denominan C:, D:, E:, ...., etc, existe una denominación propia:
Si los discos son IDE:
/dev/hda: Disco duro IDE como master en el canal IDE 1.
/dev/hda1: Partición primaria 1 en /dev/hda
/dev/hda2: Partición primaria 2 en /dev/hda
/dev/hda3: Partición primaria 3 en /dev/hda
/dev/hda4: Partición primaria 4 en /dev/hda
/dev/hda5: Partición extendida 1 en /dev/hda
/dev/hda6: Partición extendida 2 en /dev/hda
.....
.....
/dev/hda16: Partición extendida 16 en /dev/hda
/dev/hdb: Disco duro IDE como esclavo en el canal IDE 1.
/dev/hdb1: Partición primaria 1 en /dev/hdb
........
........
/dev/hdc: Disco duro IDE como master en el canal IDE 2.
/dev/hdc1: Partición primaria 1 en /dev/hdc
........
........
/dev/hdd: Disco duro IDE como esclavo en el canal IDE 2.
/dev/hdd1: Partición primaria 1 en /dev/hdd
........
........
Si los discos son SCSI:
/dev/sda: Disco duro SCSI nr.1.
/dev/sda1: Partición primaria 1 en /dev/sda
........
........
/dev/sdb: Disco duro SCSI nr.2.
/dev/sdb1: Partición primaria 1 en /dev/sdb
........
........
IMPORTANTE: Es muy importante saber lo que se esta haciendo cuando trabajas con programas que modifican la tabla de particiones de un disco. Al cambiar la tabla de particiones de vuestro disco, se pierden los datos contenidos en las particiones afectadas. Realizar copias de seguridad de los datos que quieras mantener antes de usar FDISK.
Particiones de disco
Con el fin de instalar Linux, debes tener espacio disponible para el. Este espacio de disco necesita estar separado del espacio de disco usado por otros sistemas operativos que puedas tener instalados en tu ordenador, tal que Windows, OS/2, o incluso una versión diferente de Linux.
Un disco puede dividirse en diferentes particiones. Se puede acceder cada partición como si fuera un disco separado. Además cada partición tiene un tipo que se usa para indicar como esta almacenada la información en la partición. Por ejemplo, hay distintos tipos de particiones usados por DOS, OS/2, y Linux.
Aun si vas a instalar Linux en su propio disco duro, o en un ordenador que no contiene ningún otro sistema operativo, seguirás necesitando crear particiones para que las use Linux. En este caso es muy sencillo, ya que no hay otras particiones en el disco duro de las que preocuparse.
Por otra parte, puede querer instalar Linux en un disco que ya contiene software o datos de un sistema operativo diferente. Las cosas pueden ser algo mas delicadas en esta situación, ya que un error puede destruir tus particiones actuales, por no mencionar los datos que contengan.
Durante el proceso de instalación, tendrás la oportunidad de crear particiones para Linux. Llegado este punto, tu mayor preocupación será estar seguro de tener suficiente espacio disponible para las particiones Linux. Déjame repasar las diferentes formas de liberar espacio para las particiones Linux.
Estrategias para cambiar particiones
Hay tres posibles escenarios a los que puedes hacer frente cuando intentas cambiar las particiones de tu disco duro:
Hay espacio libre disponible y no particionado.
Hay una partición no usado disponible.
Hay espacio libre disponible en una partición usada actualmente.
Veamos cada escenario en orden.
Usando espacio libre no particionado
Todo el espacio no forma parte de ninguna partición definida.
En este caso, puedes crear simplemente las particiones necesarias a partir del espacio libre.
Usando una partición no usada
El año pasado reemplazaste tu pequeño disco duro de 105MB en tu sistema Windows por un mounstro de 1.2GB. Lo particionaste en dos partes iguales, pensando en que usarías el ``dispositivo'' C: (en realidad la primera partición del dispositivo) para Windows, y el ``dispositivo'' D: (en realidad ls segunda partición del dispositivo) para tu colección de programa de libre distribución que copiaste de Internet. Bien, has estado tan acostumbrado a usar C: que nunca has puesto nada importante en D:.
Si te encuentras en esta situación, puedes usar el espacio asignado a la partición en desuso. Tendrás que borra la partición, y crear las apropiadas particiones Linux en su lugar.
Usando espacio libre de una partición activa
Esta es la situación mas común. Es además, desafortunadamente, la mas difícil de tratar. El principal problema es que tenemos el espacio suficiente, pero esta actualmente asignada a una partición en uso. Si compras un ordenador con software preinstalado, el disco duro tendrá seguramente una gran partición conteniendo el sistema operativo y los datos.
Además de añadir un nuevo disco duro en tu sistema, tienes otras dos opciones:
Cambio de particiones destructivo -- Básicamente, borras la única partición grande, y creas varias mas pequeñas. Como puedes imaginar, cualquier dato que tengas en esta partición será destruido. Esto quiere decir que es necesario hacer una copia de seguridad completa. Por tu propio interés, haz dos copias de seguridad, usa la verificación (si esta disponible en tu software de backup), e intenta leer los datos de la copia de seguridad antes de borrar la partición. Ten también en cuenta que si hay un sistema operativo de algún tipo instalado en la partición, será necesario instalarlo de nuevo también.
Después de crear una partición mas pequeña para tu software actual, puedes instalar de nuevo cualquier software, restaurar tus datos, y continuar con la instalación de Linux. Cambio de particiones no destructivo -- En este caso, ejecutas un programa que hace lo que parece imposible; hace una partición grande mas pequeña sin perder ninguno de los ficheros almacenados en la partición. Mucha gente ha encontrado este método seguro y libre de problemas; sin embargo, recomendamos que hagas una copia de seguridad de la partición a la que vayamos a cambiar el tamaño, por si acaso.
Hardware requerido
El Linux funciona correctamente en un 386 SX con 4 Mb de memoria. Pero se deberá tener en cuenta que aquellas aplicaciones con fuerte requerimiento de memoria y carga de la CPU (por ejemplo, las X Windows) irán sumamente lentas.
Una configuración mucho más 'usable' sería la siguiente: 486 DX 33 MHz o superior, con 8 Mb de memoria RAM y con tarjeta de video VGA o superior.
Unidad de CD-ROM es altamente recomendable. Casi mejor habría que decir que imprescindible, dado que las distribuciones vienen en ese formato. En la actualidad, la mayoría de ellas están soportadas por el Linux. Asimismo tiene soporte para módem y tarjeta de sonido.
De todas formas, los propietarios de máquinas inferiores a la descrita (¿todavía queda alguno? };-) que no se desanimen. Simplemente deberán tener más paciencia. Y es mi obligación puntualizar que muchas veces se obtienen mejores resultados con más memoria que con más potencia de CPU.
Debo puntualizar que en 286 no funcionará el Linux. El kernel está hecho para 386. Hay, sin embargo, un grupo de gente que está trabajando en una versión de Linux para procesadores 8086, pero aún está en fase de proyecto.
En cuanto al espacio en disco duro, dependerá en gran medida de lo que se pretenda hacer desde Linux. Según el 'Linux installation and getting started', con 10 Mb de partición se puede hacer una instalación mínima pero usable (personalmente me parece bastante optimista). Yo creo que alrededor de 100 Mb resulta espacio suficiente para un Linux completo, incluidas las X Windows. A partir de ahí, lo que cada uno considere...
Al hacer cálculos del espacio en disco duro necesario, deberemos tener en cuenta que se necesita hacer una partición de swap. El tamaño de la misma dependerá de la cantidad de memoria RAM disponible: a más memoria, menos swap necesitaremos.
¿Dónde instalo Linux?
Linux se puede instalar en cualquier disco que tengas en tu sistema y en cualquier particion del disco duro (Primaria o extendida).
No podrás tener Linux en una partición compartida con otro sistema operativo, Linux necesita su propia particion/es para funcionar.
¿Cuantas particiones necesito para Linux?
La respuesta rápida y fácil es: recomendable al menos dos, una para el sistema/datos y otra para Swap. Usualmente se suelen tener tres, una para el sistema/programas (/), otra para los datos (/home) y otra para swap.
La respuesta larga y no tan fácil es mas complicada de explicar: Todo dependerá muchisimo del uso que se le vaya a dar al sistema.
Para sistemas que se utilicen de forma particular y por uno o pocos usuarios bastara con las dos/tres particiones antes mencionadas, esto evitara los problemas de saber que cantidad de espacio necesitan las diferentes particiones y el quedarnos sin espacio en alguna particion vital, mientras que nos sobra en otras.
Para sistemas servidores, con gran cantidad de servicios y usuarios es muy recomendable tener varias particiones/discos. Existe un documento (HOWTO: Multi Disk System Tuning) muy bueno y quizás complicado para el principiante que explica cuantas particiones y discos y que tamaño deberían tener en función del uso que se le vaya a dar al sistema, o en cualquier servidor con documentación Howto.
¿Porque necesito diferentes particiones?
El particionar el disco, es simplemente una manera de organizar tu disco duro. Podrás organizarlo con una sola partición o en varias. Es el usuario el que deberá decidir cuantas particiones tendrá su disco, y el tamaño de las mismas, hay que recordar, que al menos hay que tener una partición primaria.
Desventajas de tener vuestro disco dividido en diferentes particiones.
Ninguna
Ventajas en tener vuestro disco particionado en varias particiones:
Si tienes un error/problema en una de ellas, las demás no se verán afectadas.
Poder tener diferentes sistemas operativos en vuestra maquina, totalmente independientes unos de otros.
Poder tener vuestros archivos de datos en particiones totalmente independientes.
Poder borrar/cambiar el contenido de una partición, sin que esto afecte a las demás.
ANEXO
CONCLUSIÓN
Una de las más importantes es que Linux es una excelente elección para trabajar con UNIX a nivel personal. Linux permite desarrollar y probar el software UNIX en su PC, incluyendo aplicaciones de bases de datos y X Windows. Con Linux, se puede correr un sistema UNIX y adaptarlo a las necesidades. La instalación y uso de Linux es también una excelente manera de aprender UNIX si no se tiene acceso a otras máquinas UNIX.
Linux no es solo para los usuarios personales de UNIX. Es robusto y suficientemente completo para manejar grandes tareas, así como necesidades de cómputo distribuidas. Muchos negocios especialmente los pequeños se están cambiando a Linux en lugar de otros entornos de estación de trabajo basados en UNIX. Grandes vendedores de software comercial se están dando cuenta de las oportunidades que puede brindar un sistema operativo gratuito.
Linux es, propiamente, el núcleo de un sistema operativo. Es decir, el conjunto de programas que controla los aspectos más básicos del funcionamiento de un ordenador. Su desarrollo lo inició en 1991 Linus Tovalds, entonces estudiante en la Universidad de Helsinki, en Finlandia, y se completó con miles de aportaciones a través de Internet.