jueves, 5 de mayo de 2016

11º TEORÍA DE S.O, NUCLEO Y SISTEMA DE ARCHIVOS

S.O, NUCLEO Y SISTEMA ARCHIVOS

SISTEMAS OPERATIVOS
Un Sistema Operativo es el programa (o software) más importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas básicas, tales como reconocimiento de la conexión del teclado, enviar la información a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos periféricos tales como impresoras, escáner, etc.


INTÉRPRETE DE ÓRDENES
El programa principal del sistema es un intérprete de órdenes o de comandos, es un programa informático que tiene la capacidad de traducir las órdenes que introducen los usuarios, mediante un conjunto de instrucciones facilitadas por él mismo directamente al núcleo y al conjunto de herramientas que forman el sistema operativo.


FUNCIONES PRINCIPALES DE UN SISTEMA OPERATIVO
Las cuatro grandes funciones del Sistema Operativo son:
Coordinar y manipular el hardware del computador
Organizar los archivos en diversos dispositivos de almacenamiento
Gestionar los errores de hardware y la pérdida de datos
Encargado de brindar al usuario una interfaz con la cual pueda operar de manera fácil todas las funciones anteriormente descritas.


OTRAS FUNCIONES DE UN S.O
Las distintas funciones de los Sistemas Operativos son: Gestión de tareas, Interpretación de comandos, Control de recursos, Manejo de dispositivos de E/S, Manejo de errores, Secuencia de tareas, Protección, Multiacceso y Contabilidad de recursos.


ORGANIZACIÓN DE UN SISTEMA OPERATIVO
La organización de un Sistema Operativo está compuesta por lo siguiente:
En el primer nivel y más bajo, se encuentra el núcleo (kernel), que es el que tiene contacto directo con los circuitos electrónicos.
En el segundo se encuentran las rutinas que implementan los servicios que ofrece el Sistema Operativo, como el manejo de lo discos, el monitor, teclado y la gestión de los procesos.
En el tercero se encuentran el gestor de la memoria y de archivos.
El cuarto, están los procesos que permiten la comunicación del usuario con el Sistema Operativo: el caparazón [shell] y las órdenes propias del Sistema Operativo. La comunicación sólo es posible entre los niveles inmediatamente superior e inferior.


PROCESOS
Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea.
Estados de un Proceso
Ejecución: El proceso está actualmente en ejecución.
Listo: El proceso está listo para ser ejecutado, sólo está esperando que el PLANIFICADOR así lo disponga.
Espera: El proceso no puede ejecutar hasta que no se produzca cierto suceso, como una operación de Entrada/Salida.
Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal.
Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque terminó o por algún fallo, como un error de protección, aritmético, etc.




MASTER BOOT RECORD
El Master Boot Record es el primer sector ó sector cero de un dispositivo de almacenamiento de datos, como un disco duro. A veces, se emplea para el arranque del sistema operativo con bootstrap, otras veces es usado para almacenar una tabla de particiones y, en ocasiones, se usa sólo para identificar un dispositivo de disco individual, aunque en algunas máquinas esto último no se usa y es ignorado. 
El Master Boot Record está compuesto por un código ejecutable y las entradas de la tabla de particiones. 
Bootstrap es un término utilizado para describir el arranque, o proceso de inicio de cualquier ordenador. Suele referirse al programa que arranca un sistema operativo como por ejemplo GRUB, LiLo o NTLDR. Se ejecuta tras el proceso POST del BIOS. También es llamado Bootstrap Loader (Cargador de inicialización). 


Los 512 bytes del sector de arranque están distribuidos de la siguiente forma:
Código maestro de carga ó Boot Loader, tamaño 446 bytes.
Tabla de particiones, tamaño 64 bytes.
Firma o validación del MBR, tamaño 2 bytes.


EL NÚCLEO
Un núcleo es un software que actúa de Sistema Operativo, es el que facilita los distintos programas de acceso seguro al hardware de la computadora, en conclusión es el encargado de gestionar recursos a través de servicios de llamada al sistema. 
Su función es garantizar la carga y la ejecución de los procesos, las entradas/salidas y proponer una interfaz entre el espacio núcleo y los programas del espacio del usuario.


TIPOS DE NUCLEOS
Núcleos Monolíticos: Facilitan abstracciones del hardware subyacente realmente potentes y variadas
Núcleos Micronúcleos: Proporcionan un pequeño conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad.
Núcleos Híbridos: 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.
Núcleos 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.

EL KERNEL
Un núcleo o kernel, es un software que trabaja en un sistema operativo como puede ser Linux o Windows, como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware.


CONVENCIONES PARA NOMBRAR LOS DISCOS (EN LINUX)
Linux, al igual que Windows NT, puede instalarse en una partición primaria o en una partición lógica, en cualquiera de los discos duros. Si la instalación no se realiza en una partición primaria del primer disco duro, es necesario instalar un gestor de arranque. Linux proporciona un potente gestor de arranque llamado LILO. Las posibilidades de instalación son dos: instalarlo en la partición de Linux o en el sector de arranque del disco duro (Master Boot Record). La primera opción es preferible si Linux se instala en una partición primaria del primer disco duro (debe ser la partición activa) junto a otro sistema operativo.


CARGADORES DE ARRANQUE PARA LINUX
Es un programa sencillo, diseñado exclusivamente para preparar todo lo que necesita el sistema operativo para funcionar. Normalmente se utilizan los cargadores de arranque multietapas, en los que varios programas pequeños se suman los unos a los otros, hasta que el último de ellos carga el sistema operativo. En los ordenadores modernos, el proceso de arranque comienza con la CPU ejecutando los programas contenidos en la memoria ROM en una dirección predefinida (se configura la CPU para ejecutar este programa, sin ayuda externa, al encender el ordenador).


SISTEMA DE ARCHIVOS
Los sistemas de archivos o fichero, estructuran la información guardada en una unidad de almacenamiento (Disco Duro) que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos manejan su propio sistema de archivos.


FUNCIONES DEL NÚCLEO O KERNEL
Su función principal es facilitar a diferentes programas un acceso seguro al hardware, se encarga de gestionar recursos a través del sistema.


ARQUITECTURA DE WINDOWS Y DE LINUX
Actualmente Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones. También, a diferencia de los núcleos monolíticos tradicionales, los controladores pueden ser prevolcados (detenidos momentáneamente por actividades más importantes) bajo ciertas condiciones. Esta habilidad fue agregada para gestionar correctamente interrupciones de hardware, y para mejorar el soporte de multiprocesamiento simétrico.

COMPARACIÓN ENTRE EL NÚCLEO DE LINUX Y WINDOWS
En las discusiones típicas de “Windows vs Linux” suelo ver como algo habitual que se limiten a facilidad de uso, programas de terceras compañías (software, juegos, etcétera) y algo de FUD por en medio pero nunca se comenta cosas como el núcleo, algo que suele ser muy importante. 


Diferencias: 
El tamaño resultante del kernel (sin drivers/módulos) también es exageradamente, Linux ocupa 1.3MB frente a los 4.6MB de Windows. 
El tamaño en líneas de código en Windows aumenta en cada versión (actualmente 10 millones de líneas) de forma exagerada aunque Linux en cada versión mete soporte para mucho hardware sin que aumente el número tanto (4 millones actualmente) osea que no sé que pensar. El número anterior es sin drivers, si incluimos los drivers los números se disparan y la diferencia también (Windows 25 millones, Linux 8). 
Otro dato interesante es el tiempo de desarrollo, cada “versión menor” (en el caso de linux los 2.6.x) dura 3 meses en linux y 31 en Windows. En las versiones mayores la cosa ya se balancea menos: Linux tarda 35 meses y Windows 38. Aquí se puede observar lo que decía Linus Torvalds (si no me falla la memoria): lanza versiones rápidamente, continuamente.


NOMENCLATURA DEL KERNEL EN LINUX
El kernel de Linux (Linux) está escrito en C y es código abierto licenciado bajo licencia GNU/GPL (excepto el planificador de recursos, el cual pertenece a Linus Torvalds y al resto de programadores que se han ocupado de dicha parte), con lo cual tenemos acceso al código para su estudio y/o modificación.


La nomenclatura del Kernel se divide en 3 campos separados por un punto
Primer campo: Número de la versión. 
Segundo campo: Numero de "sub-versión", por llamarlo de algún modo, es la versión dentro de la propia versión, si este número es par, la versión será estable, si por el contrario es impar, ésta será inestable.
Tercer campo: Nivel de corrección el en que se encuentra.


TIPOS DE SOFTWARE POR DISTRIBUCIÓN


Software Libre: Es la denominación del software que respeta la libertad de los usuarios sobre su producto adquirido y, por tanto, una vez obtenido puede ser usado, copiado, estudiado, modificado y redistribuido libremente. Según la Free Software Fundación, el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, modificar el software y distribuirlo modificado.
Software Gratuito: El término freeware define un tipo de software no libre que se distribuye sin costo, disponible para su uso y por tiempo ilimitado siendo una variante gratuita del shareware, en el que la meta es lograr que un usuario pruebe el producto durante un tiempo ("trial") limitado, y si le satisface, pague por él, habilitando toda su funcionalidad. A veces se incluye el código fuente pero no es lo usual.
Software de Dominio Público: Es aquel software que no requiere de licencia, pues sus derechos de explotación son para toda la humanidad, porque pertenece a todos por igual.


SISTEMAS DE ARCHIVOS USADOS POR S.O

Sistema operativo 
Tipos de sistemas de archivos admitidos

Dos 
FAT16

Windows 95 
FAT16

Windows 95 OSR2 
FAT16, FAT32

Windows 98 
FAT16, FAT32

Windows NT4 
FAT, NTFS (versión 4)

Windows 2000/XP 
FAT, FAT16, FAT32, NTFS (versiones 4 y 5)

Linux 
Ext2, Ext3, ReiserFS, Linux Swap (FAT16, FAT32, NTFS)

MacOS 
HFS (Sistema de Archivos Jerárquico), MFS (Sistemas de Archivos Macintosh)

OS/2 
HPFS (Sistema de Archivos de Alto Rendimiento)

SGI IRIX 
XFS

FreeBSD, OpenBSD 
UFS (Sistema de Archivos Unix)

Sun Solaris 
UFS (Sistema de Archivos Unix)

IBM AIX 
JFS (Sistema Diario de Archivos)





PARTICIONES EN LINUX


Swap: Se usa para la memoria virtual, cuyo tamaño es aproximadamente equivalente al tamaño de la memoria.
Root: / Contiene los datos más importantes para el sistema y es el punto de montaje para otras particiones.
Las necesidades para la partición raíz en términos de tamaño son muy limitadas, 300MB es suficiente.
El directorio raíz: / El directorio raíz contiene toda la jerarquía del sistema. No se puede clasificar ya que sus subdirectorios pueden,




DIRECTORIOS USADOS EN LINUX


/bin: archivos binarios esenciales del sistema. Este directorio contiene los comandos básicos que usarán todos los usuarios y son necesarios para la operación del sistema: ls, cp, login, etc. Estático, no compartible. 
/boot: contiene los archivos que necesita el administrador de arranque de GNU/Linux (grub o LILO para las plataformas Intel). Este puede, o no, contener al núcleo: si el núcleo no está aquí, debe estar ubicado en el directorio raíz. Estático, no compartible. 
/dev: archivos de los dispositivos del sistema (dev por DEVices, Dispositivos). Estático 
/etc: este directorio contiene todos los archivos de configuración específicos a la máquina. Estático 
/home: contiene todos los directorios personales de los usuarios del sistema. Este directorio puede, o no, ser compartible (algunas redes grandes lo hacen compartible por NFS). No estático, compartible. 
/lib: este directorio contiene las bibliotecas esenciales al sistema; también contiene los módulos del núcleo en /lib/modules. Todas las bibliotecas que necesitan los binarios presentes en los directorios /bin y /sbin se deben ubicar aquí, junto con el vinculador ld.so. Estático 
/mnt: directorio que contiene los puntos de montaje para los sistemas de archivos temporales. No estático 
/opt: este directorio contiene los paquetes que no son necesarios para la operación del sistema. Se recomienda poner los archivos estáticos (binarios, bibliotecas, páginas de manual, etc.) de tales paquetes en el directorio /opt/nombre_del_paquete y sus archivos de configuración específicos para la máquina en /etc/opt. 
/root: directorio personal de root. No estático 
/sbin: contiene los binarios del sistema esenciales para el arranque del mismo, sólo utilizables por root. Un usuario no privilegiado también puede ejecutarlos pero no llegará muy lejos. Estático 
/tmp: directorio destinado a contener archivos temporales que pueden crear ciertos programas. No estático

miércoles, 4 de mayo de 2016

7º TALLER PRÁCTICO # 1 - REFERENCIA RELATIVA



Para realizar las tablas de multiplicar, es importante conocer algunos conceptos básicos.
1. Recuerde que una celda es la intersección entre una fila y una columna
2. Recuerde que las filas se identifican por números y las columnas por letras
3. Recuerde que para realizar una función o una "fórmula" es indispensable escribir el símbolo de igual (para escribir el símbolo de igual debe oprimir la tecla de shift y el 0 alfanumérico)


Ya estamos listos para empezar.

En la columna A, debes ingresar el número que corresponde a la tabla que vas a realizar, hagamos la tabla del 1

Digitamos el número 1 y oprimos la tecla de enter

Recuerde que para estirar la formula debe ubicar el cursos en la esquina de la celda y hacer clic cuando el símbolo de cruz blanca del cursor, ser convierta en una cruz negra y mantenerlo presionado mientras estira (mueve el ratón) hacia abajo la cantidad de celdas necesarias
Luego en la columna B, indicaremos el operador, como estamos haciendo las tablas multiplicar, tendremos que usar algo que se le parezca, en este caso la letra "X. Digitamos la letra X y oprimimos enter



Luego tendremos que digita el número por el cual vamos a multiplicar, recordemos que en la tabla de multiplicar, cada tabla se multiplica por los número 1 hasta el 9








Para entender en donde está el resultado de la operación, usamos el símbolo de igual, así que vamos a escribirlo 9 veces. Para escribirlo, siga está instrucción al pie de la letra.Escriba el símbolo de igual y oprima la tecla enter, en caso de cometer algún error o que no le permita avanzar, presione la tecla ESC o la tecla de enter y borre el error cometido.


Ahora vamos a la parte más importante, realizar una operación entre celdas, estas funciones permiten facilitar la obtención de resultados pues disminuyen la cantidad de parámetros que es necesario modificar.

Entonces, para realizarlo, escriba el símbolo de igual, seguido coloque el nombre de la celda en la que aparece el primer valor (el que corresponde a la tabla que está trabajando), luego coloque el nombre de la celda, donde está el segundo valor (por el cual va a multiplicar el número que corresponde a la tabla).


En el ejemplo, podemos ver que vamos a multiplicar el número 1 que se encuentra en la celda A1 con el número 1 que se encuentra en la celda C1, en este momento algunos se preguntan, ¿no es más fácil escribir =1*1 y listo?, tienen razón, es más fácil, pero usar el nombre de la celda es más inteligente, ahora yo pregunto, ¿que prefieres hacer, lo más fácil o lo más inteligente? Al usar el nombre de la celda, podras usar tu superhipermegarecontrahabilidad para copiar y pegar, y así poder terminar la actividad más rápido. Otro dirá, no es más fácil que yo mismo escriba la respuesta en lugar de usar fórmula. Pues sí, tienes razón, sería más fácil y así practicarías las tablas de multiplicar, pero mi taller se trata del uso de funciones (operaciones entre celdas o fórmulas) y no tanto de saber multiplicar.

A lo que vamos


Al oprimir la tecla enter, notaremos que si todo es correcto, aparece el número 1, que corresponde a multiplicar 1x1, si queremos ver el contenido de la celda, este será visible en el campo "fórmula"

Ahora, un truco que podemos utilizar para disminuir la cantidad de datos u operaciones digitadas, tomemos en cuenta lo siguiente:
al seleccionar una celda, notaremos que en la parte derecha aparece una recuadro, un puntito, una patica, una lengueta, puedes llamarlo como quieras, pero igual ahí está. cuando colocamos el cursos del ratón sobre esta lengueta, veremos que el cursor se convierte en una cruz


Cuando el cursor se haya convertido en la crucecita, haremos clic y arrastraremos el cursor (estiraremos el cursor) hacia abajo y veremos que al soltar el clic, deben aparecernos los resultados de las siguientes celdas.







Ahora, por favor, realice las tablas de multiplicar desde la 1 hasta la 9. Podría parecerse a la siguiente imagena

5º TALLER VARIABLES 2 - VUELVE GATITO

  1. Cree una variable global llamada paso
  2. Fije el valor de la variable paso a 10
  3. Inserte un bloque ir a x: -200 y: 0
  4. Inserte un bloque por siempre
  5. Dentro del bloque por siempre inserte un bloque mover pasos y coloque dentro la variable paso
  6. Inserte un bloque si y coloque un operador __ > ___ dentro, antes del signo mayor que coloque un bloque posición en x y después del signo mayor que coloque el número 200
  7. Fije el valor de la variable paso a -10
  8. Inserte otro bloque si y coloque un operador __ < ___ dentro, antes del signo mayor que coloque un bloque posición en x y después del signo mayor que coloque el número -200
  9. Fije el valor de la variable paso a 10