sábado, 16 de abril de 2011

sistemas operativos

 ¿Qué es un Sistema Operativo?

Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un administrador de los recursos de hardware del sistema. 
En una definición informal es un sistema que consiste en ofrecer una distribución ordenada y controlada de los procesadores, memorias y dispositivos de E/S entre los diversos programas que compiten por ellos.
A pesar de que todos nosotros usamos sistemas operativos casi a diario, es difícil definir qué es un sistema operativo. En parte, esto se debe a que los sistemas operativos realizan dos funciones diferentes. 
Proveer una máquina virtual, es decir, un ambiente en el cual el usuario pueda ejecutar programas de manera conveniente, protegiéndolo de los detalles y complejidades del hardware. Administrar eficientemente los recursos del computador. 
progragama principal del sistema


El programa principal del sistema son los sistemas operativos ya que este  se encuentra almacenado en la memoria secundaria, Primero se carga y ejecuta un pedazo de código que se encuentra en el procesador, el cual carga el BIOS, y este a su vez carga el Sistema Operativo que carga todos los programas de aplicación y software variado.












¿Cuáles son las cuatro grandes funciones del sistema operativo?


¿Cuáles son los sistemas operativos existentes?

-              Linux

  Windows XP

Windows vista

     Unix.

  MAC/OS X
-          


funciones de los sistemas operativos


Definiciones de los sistemas operativos.

Un sistema operativo es un programa que actúa como intermediario entre el usuario y el hardware de un computador y su propósito es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El objetivo principal de un sistema operativo es lograr que el sistema de computación se use de manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente.

Un sistema Operativo (SO) es en sí mismo un programa de computadora. Sin embargo, es un programa muy especial, quizá el más complejo e importante en una computadora. El SO despierta a la computadora y hace que reconozca a la CPU, la memoria, el teclado, el sistema de vídeo y las unidades de disco. Además, proporciona la facilidad para que los usuarios se comuniquen con la computadora y sirve de plataforma a partir de la cual se corran programas de aplicación.
Cuando enciendes una computadora, lo primero que ésta hace es llevar a cabo un autodiagnóstico llamado auto prueba de encendido (Power On SelfTest, POST). Durante la POST, la computadora identifica su memoria, sus discos, su teclado, su sistema de vídeo y cualquier otro dispositivo conectado a ella. Lo siguiente que la computadora hace es buscar un SO para arrancar (boot).
Una vez que la computadora ha puesto en marcha su SO, mantiene al menos parte de éste en su memoria en todo momento. Mientras la computadora esté encendida, el SO tiene 4 tareas principales: 

· Proporcionar ya sea una interfaz de línea de comando o una interfaz gráfica al usuario, para que este último se pueda comunicar con la computadora. Interfaz de línea de comando: tú introduces palabras y símbolos desde el teclado de la computadora, ejemplo, el MS-DOS. Interfaz gráfica del Usuario (GUI), seleccionas las acciones mediante el uso de un Mouse para pulsar sobre figuras llamadas iconos o seleccionar opciones de los menús. 

· Administrar los dispositivos de hardware en la computadora. Cuando corren los programas, necesitan utilizar la memoria, el monitor, las unidades de disco, los puertos de Entrada/Salida (impresoras, módems, etc.). El SO sirve de intermediario entre los programas y el hardware. 

· Administrar y mantener los sistemas de archivo de disco. Los SO agrupan la información dentro de compartimientos lógicos para almacenarlos en el disco. Estos grupos de información son llamados archivos. Los archivos pueden contener instrucciones de programas o información creada por el usuario. El SO mantiene una lista de los archivos en un disco, y nos proporciona las herramientas necesarias para organizar y manipular estos archivos. 

· Apoyar a otros programas. Otra de las funciones importantes del SO es proporcionar servicios a otros programas. Estos servicios son similares a aquellos que el SO proporciona directamente a los usuarios. Por ejemplo, listar los archivos, grabarlos a disco, eliminar archivos, revisar espacio disponible, etc. Cuando los programadores escriben programas de computadora, incluyen en sus programas instrucciones que solicitan los servicios del SO. Estas instrucciones son conocidas como "llamadas del sistema"


clasificación de los sistemas operativos


Los sistemas operativos los podemos clasificar en:
• Sistemas  operativos  monotarea:  Sólo   pueden  manejar  un proceso,  es  decir ,  las
  tareas deben  ejecutarse  una  tras  otra.  Por  ejemplo,  el  sistema  DOS  es   monotarea,
al   no   poder  ejecutar  varias   aplicaciones   simultáneamente,  aunque   existieron  varios
intentos  de  añadirle esta capacidad.
•     Sistemas  operativos  multitarea:
La  computadora  puede  procesar  varias  tareas  al  mismo tiempo. Podemos distinguir:  
     Conmutación   de   contextos:   Es    un    tipo    simple    de   multitarea    en   el   que
dos   más  aplicaciones   se   cargan   al   mismo   tiempo,  pero sólo  se  procesa  la  que
se  encuentra  en primer  plano,  que   es  la   que   está   utilizando  el   usuario.  Cuando  el
usuario  cambia   de  aplicación ,  se  produce  un  intercambio  entre  ambas tareas, pasando
la aplicación  activa  a segundo  plano,  efectuándose un almacenamiento del estado en el que
se encuentra. Por otro  lado  la  aplicación  que  estaba  en  segundo plano  pasa   reanudar
su  procesamiento recuperando la situación en la que se había detenido.  
     Multitarea  cooperativa:   Las   tareas    en  segundo   plano reciben  tiempo   de   proceso
durante los  tiempos  muertos  de  la  tarea  que  se  encuentra  en primer  plano.  Esto  ocurre
cuando dicha aplicación espera información del usuario para poder continuar.  
     Multitarea  de  tiempo  compartido:  Cada  tarea   recibe   un  tiempo   de   procesamiento
durante una fracción de segundo. Se puede establecer un orden de prioridades  entre las tareas
o simplemente  seguir  un  orden  secuencial.  Dado  que  el  sentido temporal  del  usuario  es
mucho  más  lento  que  la  velocidad  de  procesamiento  del ordenador ,  las  operaciones  de
multitarea  en  tiempo  compartido  parecen  ser  simultáneas. Todos  los  sistemas  operativos
actuales (Linux, toda la familia Windows, Mac OS, OS/2 de IBM¼) utilizan esta técnica.
En concreto, el   sistema  operativo  Windows,   alguno  de  los mencionados  anteriormente,
crean   un  entorno  de  ejecución   propio   independiente   para cada  tarea,  como  si  cada
aplicación   corriese  en  una  máquina  independiente  llamada máquina  virtual.  Cada  una  de
de estas  máquinas virtuales    posee    sus    correspondientes   dispositivos    virtuales,    que
representan a cada uno de los recursos del ordenador (memoria, disco duro, impresora¼).
Por  ejemplo  ,   cuando   un    programa    ejecuta    la   instrucción  de  impresión ,  se  realiza
sobre laimpresora virtual de su máquina virtual. Esta petición es recibida por el sistema operativo,
que está   coordinando   todos   los   dispositivos   virtuales   y  lanza   el   comando   sobre   la
impresora   real.   Esto   facilita   enormemente   la  programación de  aplicaciones,  ya  que  se
realiza  sobre  dispositivos  virtuales,  siendo el sistema operativo elencargado final de realizar la
operación.
  •     Sistemas operativos monousuario: Sólo  pueden  atender  a  un único usuario, que es el
que haya iniciado sesión en el sistema. Esto ocurreen el sistema operativo DOS e incluso  en  el
actual Windows XP y sus predecesores.  
•     Sistemas operativos multiusuario:
Pueden  atender  simultáneamente  las  peticiones de dos  más usuarios,  que  comparten  los
recursos  del  sistema  informático  al  que  se  conectan.
Este  tipo  de  sistemas  se  emplean  especialmente  en  redes,  ya que  cada  usuario  necesita
 de  un terminal  independiente  para  conectarse  con  el  equipo que  tiene  instalado  el  sistema.
  Esto ocurre con Linux o la familia Windows 2003 y predecesores.



organización de un sistema operativo

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 inferio


En informatica que es un proceso.

Uproceso es un programa en ejecución. Los procesos son gestionados por el sistema operativo y están formados por:

§  Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
§  Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.
§  Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
§  Otra información que permite al sistema operativo su planificación.
Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución.
Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria.
En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.

llll

los estados de proceso

ESTADOS DE PROCESOS ž Los cinco estados de este diagrama son los siguientes:

-          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.
-          En 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 grupoo de procesos ejecutables, ya sea porque terminó o por algún fallo, como un error de protección, aritmético, etc.



master boot record (MBR)



Un master boot record (MBR) 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 particionesy, 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.






compuesto el MBR

El Master Boot Record (MBR) es un pequeño programa que es ejecutado en cada Inicio del sistema operativo y se encuentra ubicado en el primer sector absoluto (Track 0, head 0, sector 1) del disco duro en una PC y que busca la Tabla de Particiones para transferirla al Sector de Arranque (Boot). 

El MBR está compuesto por código ejecutable y las entradas de la Tabla de Particiones.  







bootstrap
BOOTP son las siglas de Bootstrap Protocol. Es un protocolo de red UDP utilizado por los clientes de red para obtener su dirección IP automáticamente. Normalmente se realiza en el proceso de arranque de los ordenadores o del sistema operativo. Originalmente está definido en el RFC 951.
Este protocolo permite a los ordenadores sin disco obtener una dirección IP antes de cargar un sistema operativo avanzado. Históricamente ha sido utilizado por las estaciones de trabajo sin disco basadas en UNIX (las cuales también obtenían la localización de su imagen de arranque mediante este protocolo) y también por empresas para introducir una instalación preconfigurada de Windowsen PC recién comprados (típicamente en un entorno de red Windows NT).
Originalmente requería el uso de un disquete de arranque para establecer las conexiones de red iniciales, pero el protocolo se integró en la BIOS de algunas tarjetas de red (como la 3c905c) y en muchas placas base modernas para permitir el arranque directo desde la red.
DHCP es un protocolo basado en BOOTP, más avanzado, pero más difícil de implementar. Muchos servidores DHCP también ofrecen soporte BOOTP.


sector de arranque del disco duro 

El sector de arranque es el primer sector de todo disco duro (cabeza 0, cilindro 0, sector 1). En él se almacena la tabla de particiones y un pequeño programa master de inicialización, llamado también Master Boot. Este programa es el encargado de leer la tabla de particiones y ceder el control al sector de arranque de la partición activa. Si no existiese partición activa, mostraría un mensaje de error.
El espacio particionado es el espacio del disco que ha sido asignado a alguna partición. El espacio no particionado, es espacio no accesible del disco ya que todavía no ha sido asignado a ninguna partición. A continuación se muestra un ejemplo de un disco duro con espacio particionado (2 particiones primarias y 2 lógicas) y espacio todavía sin particionar.


El caso más sencillo consiste en un sector de arranque que contenga una tabla de particiones con una sola partición, y que esta partición ocupe la totalidad del espacio restante del disco. En este caso, no existiría espacio sin particionar.




función del núcleo
Los núcleos tienen como funciones básicas 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.
Aparte de las funcionalidades básicas, el conjunto de las funciones de los puntos siguientes (incluidos los pilotos materiales, las funciones de redes y sistemas de ficheros o los servicios) necesariamente no son proporcionados por un núcleo de sistema de explotación. Pueden establecerse estas funciones del sistema de explotación tanto en el espacio usuario como en el propio núcleo. Su implantación en el núcleo se hace en el único objetivo de mejorar los resultados. En efecto, según la concepción del núcleo, la misma función llamada desde el espacio usuario o el espacio núcleo tiene un coste temporal obviamente diferente. Si esta llamada de función es frecuente, puede resultar útil integrar estas funciones al núcleo para mejorar los resultados.
 

n
f

los cuatro 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.

¿Que es el kernel?




(de la raíz germánica Kern) es un software que actúa de sistema operativo. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. 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. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.



 En linux cuales son las convenciones para nombrar los discos



  1. Los discos del IDE primario se denominan /dev/hda y /dev/hdb (en el orden master y slave)
  2. Los discos de la interfaz secundaria se se denominan /dev/hdc y /dev/hdd (en el orden master y slave)
  3. Si posee otras interfaces IDE los dispositivos se denominarán /dev/hde, /dev/hdf, etc.
  4. Los discos SCSI o SATA se denominan /dev/sda, /dev/sdb, etc.
  5. Los CD-ROM SCSI se denominan /dev/scd0, /dev/scd1, etc.

Cargadores de arranque para GNU/Linux



El proceso de arranque de GNU/Linux es el proceso de inicialización del sistema operativo. Este, en muchas maneras, es muy similar al de los sistemas BSD y otros similares a Unix, del cual se deriva.

En GNU/Linux, el proceso de arranque (boo) es un flujo que comienza en el BIOS, sigue al cargador de arranque y luego hacia el kernel. El kernel entonces inicia el planificador (para permitir multitarea) y ejecuta el primer programa de entorno de es decir, el exterior del kernel space llamado (Init) el cual configura el entorno del usuario y permite la interacción del usuario mismo y loguearnos en el sistema, para lo cual en este punto el kernel se vuelve inactivo, a menos que sea llamado externamente.
Durante el apagado (shutdown) Init es llamdo para cerrar todas las funciones del user space de manera controlada, de nuevo dirigido con scripts, 
seguidamente el Init termina el Kernel ejecuta su propio apagado (shutdown).

 ¿Qué es un sistema de archivos?

 Es un método para organizar, almacenar, direccionar, manipular y recuperar información en una unidad de almacenamiento. Cada sistema operativo tiene su propio sistema de archivos. Los más conocidos son FAT32 y NTFS para sistemas Windows y Ext2, Ext3 y Swap para GNU/Linux.




Funciones del núcleo o kernel
Los núcleos tienen como funciones básicas 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.
Otras  funciones importantes del núcleo son:
·         Administración de la memoria para todos los programas y procesos en ejecución.
·         Administración del tiempo de procesador que los programas y procesos en ejecución utilizan.
·         Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.
·         Manejo de interrupciones.
·         Despacho.
·         Suspensión y reanudación de procesos.
·         Sincronización de procesos. 
·         Comunicación entre procesos.
·         Manipulación de los bloques de control de procesos.
·         Apoyo para las actividades de entrada / salida.
·         Apoyo para asignación y liberación de memoria.
·         Apoyo para el sistema de archivos.
·         Apoyo para el mecanismo de llamada y retorno de un procedimiento.
·         Apoyo para ciertas funciones de contabilidad del sistema.

¿Cuál es la arquitectura de Windows y de Linux?

ARQUITECTURA DE WINDOWS:Un Sistema Operativo serio, capaz de competir en el mercado con otros como unix que ya tienen una posición privilegiada, en cuanto a resultados, debe tener una serie de características que le permitan ganarse ese lugar. Algunas de estas son:
Que corra sobre múltiples arquitecturas de hardware y plataformas.
· Que sea compatible con aplicaciones hechas en plataformas anteriores, es decir que corrieran la mayoría de las aplicaciones existentes hechas sobre versiones anteriores a la actual, nos referimos en este caso particular a las de 16-bit de MS-DOS y MicrosoftWindows 3.1.
· Reúna los requisitos gubernamentales para POSIX (Portable Operating System Interface for Unix).
· Reúna los requisitos de la industria y del gobierno para la seguridad del Sistema Operativo.
· Sea fácilmente adaptable al mercado global soportando código Unicode.
· Sea un sistema que corra y balancee los procesos de forma paralela en varios procesadores a la vez.
· Sea un Sistema Operativo de memoria virtual.

Arquitectura 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

arquictectura de linux y de windows


ARQUITECTURA DE LINUX:
       ·         Linux no es un bloque monolítico
       ·         Varios componentes trabajan en conjunto, diseñados por personas   diferentes y conjuntadas en distribuciones
      ·         Solo del exterior el núcleo Linux parece una unidad
      ·         Existe una diferencia entre el núcleo y las aplicaciones
      ·         Linux trata de adaptarse a la máquina.
      ·         El mismo código debe existir para diferentes implementaciones y funcionar de la misma forma
      ·         Elementos del núcleo que dependen del tipo de procesador son almacenados en directorios aparte
      ·         En directorio /usr/src/linux/arc se encuentra un directorio por microprocesador soportado
ARQUITECTURA DE WINDOWS:Un Sistema Operativo serio, capaz de competir en el mercado con otros como unix que ya tienen una posición privilegiada, en cuanto a resultados, debe tener una serie de características que le permitan ganarse ese lugar. Algunas de estas son:
Que corra sobre múltiples arquitecturas de hardware y plataformas.
· Que sea compatible con aplicaciones hechas en plataformas anteriores, es decir que corrieran la mayoría de las aplicaciones existentes hechas sobre versiones anteriores a la actual, nos referimos en este caso particular a las de 16-bit de MS-DOS y MicrosoftWindows 3.1.
· Reúna los requisitos gubernamentales para POSIX (Portable Operating System Interface for Unix).
· Reúna los requisitos de la industria y del gobierno para la seguridad del Sistema Operativo.
· Sea fácilmente adaptable al mercado global soportando código Unicode.

núcleo de Windows 7 (MinWin)

En el MinWin se ejecutaron trece tareas de las cuales muchas se conocen del administrador de tareas como: mss.exe, csrss.exe, svchost.exe… así como el mini servidor web httpsrv.exe, el sistema operativo se ejecutó bajo Virtual PC y esto sirvió para conocer la cantidad de recursos que consume este sistema operativo al desnudo.
 

nomenclatura del kernel en Linux

NoOriginalmente Linux era monolítico todas las funcionalidades estaban incluidas en el código del núcleo y era necesario recompilarlo para soportar un nuevo dispositivo , Sin embargo, esta idea no encaja con la enorme diversidad de componentes hardware que existen. Raro es que todo el mundo posea los mismos componentes en su ordenador y Linux, como buen sistema operativo Unix pretende obtener todo el partido de la máquina en la que se está ejecutando. Debido a todo esto, el diseño fue migrando paulatinamente a un modelo basado en módulos. Se procura así que el núcleo sea lo más ligero posible y cuando sea necesario añadir una nueva funcionalidad como soportar una nueva tarjeta de sonido, sólo haya que compilar el módulo y añadirlo al núcleo.


La nomenclatura del Kernel se divide en 3 campos separados por un punto (.), estos son:
Primer campo: Número de la versión, actualmente a fecha de este documento es la 2.
Segundo campo: Numero de "sub-versión", por llamarlo de algun modo, es la version dentro de la propia versión, si este numero es par, la versión sera estable, si por el contrario es impar, ésta sera inestable.
Tercer campo: Nivel de corrección el en que se encuentra.
Asi pues el primer paso para configurar nuestro propio Kernel será bajarnoslo, lo podreis encontar en ftp://ftp.kernel.org/pub/linux/kernel/
En esta dirección de ftp encontrareis varios directorios, los que nos atañen son los del tipo v2.4 (última versión estable hasta el momento).

¿Cuál es la vulnerabilidad del núcleo de Windows vista?

La vulnerabilidad  se encuentra en el sistema de red cuando se envían solicitadas a la API “iphlpapi.dll”. El error está comprobado en vista Ultimate y Enterprise y según los investigadores “es muy probable que afecte al resto de versiones de 32 y 64 bits”. Windows Xp no está afectado, según explican.
El exploit puede ser usado para apagar la computadora o provocar la pérdida de conectividad de la Red usando ataques de denegación de servicio (DOS). Aunque se necesitan permisos de administrador para aprovechar la vulnerabilidad, la misma podría ser explotada mediante envío de paquetes DHCP sin permisos de administración, según explican desde el grupo de seguridad austriaco, que informó que llevaban trabajando desde el mes pasado con responsables del “Microsoft Security response Center” para “ubicar, clasificar y corregir la vulnerabilidad.Una solución que en principio no llegará hasta la publicación del segundo paquete de servicio de Windows vista aunque no se conoce que la vulnerabilidad  haya sido explotada.



 

   



por qué Linux es llamado GNU/LINUX


Linux es un núcleo de sistema operativo libre tipo Unix.  Es uno de los principales ejemplos de software libre
27  GNU/Linux es uno de los términos empleados para referirse a la combinación del núcleo o kernel libre similar a Unix denominado Linux, que es usado con herramientas de sistema GNU. Su desarrollo es uno de los ejemplos más prominentes de software libre; todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL (Licencia Pública General de GNU) y otra serie de licencias libres.




diferencia entre GNU Hurd y GNU Mach

GNU Hurd. 

- Es un conjunto de programas servidores que simulan un núcleo Unix que establece la base del sistema operativo GNU. 


- Hurd intenta superar los núcleos tipo Unix en cuanto a funcionalidad, seguridad y estabilidad, aun manteniéndose compatible con ellos. Esto se logra gracias a que Hurd implementa la especificación POSIX (entre otras), pero eliminando las restricciones arbitrarias a los usuarios.



GNU Mach.
- Es el micronúcleo oficial del Proyecto GNU. Como cualquier otro micronúcleo, su función principal es realizar labores mínimas de administración sobre el hardware para que el grueso del sistema operativo sea operado desde el espacio del usuario.

- En la actualidad el GNU Mach sólo funciona en máquinas de arquitectura Intel de 32 bits  y su uso más popular es servir de soporte a Hurd, el proyecto que pretende reemplazar a los núcleo tipo Unix en el sistema operativo libre GNU.



Diferencias entre software libre, software gratuito y software de dominio público

Software libre: el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software; de modo más preciso, se refiere a cuatro libertades de los usuarios del software:
§   la libertad de usar el programa, con cualquier propósito;
§   la libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a tus necesidades;
§   la libertad de distribuir copias del programa, con lo cual puedes ayudar a tu prójimo;
§   la libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie.

software gratuito: Mucha gente utiliza la expresión software de «código abierto» para referirse, más o menos, a la misma categoría a la que pertenece el software libre. Sin embargo, no son exactamente el mismo tipo de software: ellos aceptan algunas licencias que nosotros consideramos demasiado restrictivas, y hay licencias de software libre que ellos no han aceptado. Sin embargo, las diferencias entre lo que abarcan ambas categorías son pocas: casi todo el software libre es de código abierto, y casi todo el software de código abierto es libre.


Software de dominio público: El software de dominio público no está protegido por las leyes de derechos de autor y puede ser copiado por cualquiera sin costo alguno. Algunas veces los programadores crean un programa y lo donan para su utilización por parte del público en general.  La tendencia a consumir lo que es gratis, o muy barato, crece con este efecto de "canilla libre" e incide negativamente sobre una selección crítica del software en cuestión. Algunos son realmente aprovechables, otros no. El problema habitual es que el administrador de un establecimiento escolar, por ejemplo, ante la alternativa de comprar un nuevo software educativo o acceder al de dominio público, podrá inclinarse hacia este último sin contar con suficientes elementos de juicio respecto de su verdadera utilidad pedagógica. Sería como salir a comprar un libro por el precio y no por el contenido.







3 comentarios: