Logo Studenta

arquitectura-gnu-linux

¡Este material tiene más páginas!

Vista previa del material en texto

Arquitectura del 
sistema operativo 
GNU/Linux 
Luis	
  Eduardo	
  Sepúlveda	
  R.	
  
  Núcleo	
  de	
  un	
  sistema	
  operativo.	
  
  Funciones	
  más	
  importantes:	
  
  Administración	
  de	
  la	
  memoria.	
  
  Administración	
  de	
  los	
  procesos	
  
  Control	
  de	
  acceso	
  a	
  los	
  periféricos.	
  
  Linux	
  es	
  el	
  kernel	
  desarrollado	
  por	
  Linus	
  
Torvalds.	
  
  Gracias	
  a	
  la	
  colaboración	
  de	
  millones	
  de	
  
programadores	
  en	
  todo	
  el	
  mundo	
  ha	
  
evolucionado.	
  	
  
  Linux	
  es	
  monolítico,	
  a	
  diferencia	
  de	
  la	
  
tecnología	
  microkernel	
  que	
  se	
  consideraba	
  
más	
  apropiada	
  para	
  ese	
  tipo	
  de	
  productos.	
  
  Los	
  controladores	
  de	
  los	
  dispositivos	
  pueden	
  
ser	
  configurados	
  como	
  módulos	
  .	
  	
  
  Linux	
  ha	
  sido	
  criticado	
  por	
  no	
  tener	
  controladores	
  
para	
  toda	
  los	
  posibles	
  componentes	
  de	
  hardware.	
  
  El	
  aumento	
  significativo	
  en	
  cantidad	
  de	
  usuarios	
  y	
  	
  
desarrolladores,	
  sumado	
  al	
  interés	
  de	
  los	
  
fabricantes	
  ha	
  permitido	
  mejorar	
  notablemente	
  el	
  
soporte	
  de	
  hardware.	
  
  Todo	
  sistema	
  operativo	
  necesita	
  almacenar	
  una	
  gran	
  
cantidad	
  de	
  archivos:	
  
  Archivos	
  de	
  configuración	
  del	
  sistema	
  
  Archivos	
  log	
  
  Archivos	
  de	
  los	
  usuarios	
  
  Aplicaciones	
  
  Controladores	
  
  ...	
  	
  
  Un	
  sistema	
  de	
  archivos	
  es	
  el	
  programa	
  que	
  se	
  encarga	
  de	
  
realizar	
  las	
  operaciones	
  relacionadas	
  con	
  el	
  
almacenamiento	
  y	
  manipulación	
  de	
  los	
  archivos.	
  
  Linux	
  puede	
  funcionar	
  con	
  diferentes	
  sistemas	
  de	
  
archivos.	
  Por	
  lo	
  general	
  utiliza	
  ext2,	
  ext3,	
  ext4,	
  	
  reiserFS,	
  
etc.	
  	
  
  La	
  evolución	
  de	
  los	
  sistemas	
  de	
  archivos	
  ha	
  
permitido	
  mayor	
  eficiencia,	
  así	
  como	
  en	
  
procesos	
  de	
  recuperación.	
  
  En	
  Unix	
  todo	
  es	
  un	
  archivo.	
  
  Cuando	
  se	
  va	
  a	
  utilizar	
  un	
  dispositivo	
  de	
  
almacenamiento,	
  se	
  debe	
  asociar	
  con	
  (montar	
  
en)	
  un	
  directorio	
  existente.	
  
  A	
  diferencia	
  de	
  Windows,	
  la	
  estructura	
  lógica	
  del	
  
sistema	
  de	
  archivos	
  carece	
  del	
  concepto	
  de	
  unidades	
  
que	
  se	
  identifican	
  con	
  letras	
  y	
  están	
  asociadas	
  a	
  un	
  
dispositivo	
  de	
  almacenamiento	
  o	
  una	
  partición	
  en	
  el	
  
disco.	
  
  Cada	
  disco	
  físico	
  o	
  lógico	
  ocupa	
  un	
  lugar	
  en	
  el	
  árbol	
  de	
  
directorios	
  del	
  sistema	
  de	
  archivos.	
  
  La	
  estructura	
  de	
  archivos	
  y	
  directorios	
  
(carpetas)	
  de	
  Linux	
  es	
  similar	
  a	
  la	
  de	
  los	
  
sistemas	
  UNIX.	
  
  En	
  Linux,	
  así	
  como	
  en	
  UNIX,	
  el	
  símbolo	
  que	
  se	
  
utiliza	
  para	
  separar	
  los	
  directorios	
  es	
  /,	
  a	
  diferencia	
  
de	
  Windows	
  que	
  es	
  \.	
  
  Linux	
  diferencia	
  las	
  letras	
  mayúsculas	
  de	
  las	
  letras	
  
minúsculas,	
  como	
  sucede	
  en	
  el	
  lenguaje	
  de	
  
programación	
  Java.	
  
  Los	
  nombres	
  de	
  los	
  archivos	
  no	
  necesitan	
  una	
  
extensión	
  para	
  identificar	
  de	
  qué	
  se	
  trata	
  
  La	
  longitud	
  del	
  nombre	
  de	
  un	
  archivo	
  puede	
  ser	
  lo	
  
suficientemente	
  extensa	
  para	
  poder	
  utilizar	
  
nombres	
  significativos	
  que	
  ayuden	
  a	
  identificar	
  el	
  
contenido.	
  
  En	
  lo	
  posible,	
  debe	
  evitar	
  el	
  uso	
  de	
  ciertos	
  símbolos	
  como	
  el	
  
espacio	
  en	
  blanco,	
  ñ,	
  á,	
  é,	
  í,	
  ó,	
  ú,	
  ',	
  `,	
  ´,	
  los	
  cuales	
  a	
  pesar	
  de	
  
ser	
  aceptados	
  por	
  algunos	
  sistemas	
  operativos,	
  pueden	
  
ocasionar	
  dificultades	
  asociadas	
  con	
  la	
  compatibilidad.	
  
  Otros	
  símbolos	
  como	
  @,	
  *,	
  /,	
  ?,	
  >,	
  <,	
  |,	
  tienen	
  un	
  significado	
  
especial	
  en	
  el	
  sistema	
  GNU/Linux	
  y	
  no	
  pueden	
  ser	
  utilizados	
  
como	
  nombres	
  de	
  archivo.	
  
/	
   Es	
  el	
  directorio	
  raíz.	
  
/etc	
   Contiene	
  los	
  archivos	
  de	
  configuración	
  de	
  la	
  
mayoría	
  de	
  los	
  programas.	
  
/home	
   Contiene	
  los	
  archivos	
  personales	
  de	
  los	
  
usuarios.	
  
/bin	
   Contiene	
  los	
  comandos	
  básicos	
  y	
  otros	
  
programas.	
  
/dev	
   Contiene	
  archivos	
  que	
  representan	
  los	
  
dispositivos.	
  
/tmp	
   Contiene	
  archivos	
  temporales.	
  
/usr	
   Contiene	
  programas	
  y	
  librerías	
  instalados	
  con	
  
la	
  distribución.	
  
/usr/local	
   Contiene	
  programas	
  y	
  librerías	
  instalados	
  por	
  
el	
  administrador.	
  
/sbin	
   Contiene	
  comandos	
  administrativos.	
  
/lib	
   Contiene	
  librerías	
  varias	
  y	
  módulos	
  del	
  kernel.	
  
/var	
   Contiene	
  archivos	
  log,	
  bases	
  de	
  datos,	
  
contenidos	
  del	
  servidor	
  Web,	
  copias	
  de	
  
seguridad.	
  
/boot	
   Contiene	
  archivos	
  necesarios	
  para	
  el	
  arranque	
  
del	
  sistema,	
  así	
  como	
  el	
  kernel.	
  
/root	
   Contiene	
  archivos	
  del	
  administrador	
  del	
  
sistema.	
  
  Por	
  lo	
  general,	
  los	
  usuarios	
  utilizan	
  el	
  bash	
  
shell,	
  aunque	
  cada	
  uno	
  puede	
  elegir	
  el	
  que	
  
desee	
  y	
  tenerlo	
  predeterminado	
  para	
  que	
  se	
  
lance	
  automáticamente	
  al	
  iniciar	
  una	
  sesión.	
  
  El	
  shell	
  es	
  considerado	
  un	
  lenguaje	
  de	
  
programación,	
  debido	
  a	
  que	
  ofrece	
  manejo	
  de	
  
variables,	
  estructuras	
  de	
  control	
  y	
  repetición	
  
que	
  le	
  permiten	
  al	
  administrador	
  del	
  sistema	
  
automatizar	
  procesos	
  que	
  faciliten	
  su	
  trabajo	
  
o	
  aumentar	
  la	
  productividad.	
  
  GNU/Linux	
  puede	
  ser	
  manejado	
  en	
  modo	
  texto	
  a	
  
través	
  de	
  comandos	
  o	
  en	
  forma	
  gráfica	
  mediante	
  el	
  
uso	
  del	
  ratón.	
  
  El	
  sistema	
  de	
  ventanas	
  es	
  una	
  aplicación	
  que	
  ofrece	
  
las	
  funciones	
  básicas	
  (primitivas)	
  para	
  el	
  manejo	
  de	
  
ventanas	
  como	
  maximizar,	
  minimizar,	
  cambiar	
  el	
  
tamaño,	
  cambiar	
  la	
  posición,	
  etc.	
  
  Es	
  una	
  arquitectura	
  de	
  ventanas	
  que	
  permite	
  
disponer	
  de	
  un	
  entorno	
  gráfico	
  a	
  las	
  estaciones	
  de	
  
trabajo.	
  
  X	
  Window	
  es	
  independiente	
  de	
  la	
  plataforma	
  y	
  
puede	
  ser	
  instalada	
  en	
  cualquier	
  sistema	
  tipo	
  
UNIX.	
  
  X	
  Window	
  funciona	
  como	
  una	
  aplicación	
  
cliente	
  –	
  servidor.	
  
  La	
  arquitectura	
  cliente	
  –	
  servidor	
  de	
  X	
  Window	
  
da	
  flexibilidad	
  de	
  ubicación	
  y	
  de	
  sistema	
  
operativo.	
  
  El	
  servidor	
  recoge	
  los	
  eventos	
  que	
  producen	
  
los	
  dispositivos	
  de	
  entrada	
  como	
  teclado	
  y	
  
ratón,	
  procesa	
  los	
  eventos	
  y	
  envía	
  al	
  cliente	
  las	
  
instrucciones	
  para	
  que	
  muestre	
  los	
  resultados	
  
en	
  el	
  dispositivo	
  de	
  salida	
  (la	
  pantalla)	
  
independiente	
  de	
  su	
  apariencia.	
  
  Es	
  un	
  servidor	
  especial	
  de	
  X	
  Window	
  que	
  se	
  
encarga	
  de	
  administrar	
  las	
  ventanas.	
  	
  
  Las	
  aplicaciones	
  son	
  independientes	
  del	
  
gestor	
  de	
  ventanas,	
  por	
  lo	
  que	
  puede	
  haber	
  
variedad	
  para	
  elegir.	
  
•  Ofrece	
  unas	
  APIs	
  para	
  facilitar	
  la	
  interacción	
  
de	
  las	
  aplicacionescon	
  el	
  sistema	
  de	
  
ventanas.	
  
  Son	
  ambientes	
  integrados	
  de	
  aplicaciones	
  de	
  
escritorio	
  y	
  herramientas	
  de	
  administración	
  del	
  
sistema.	
  
  Los	
  entornos	
  de	
  escritorio	
  más	
  populares	
  son	
  KDE	
  
(the	
  K	
  Desktop	
  Environment)	
  y	
  GNOME	
  (GNU	
  
Object	
  Model	
  Environment).	
  	
  
  Son	
  la	
  vista	
  que	
  se	
  ofrece	
  al	
  usuario	
  final.	
  
  Están	
  pensados	
  para	
  acercarse	
  a	
  usuarios	
  no	
  
expertos.	
  
  No	
  son	
  un	
  producto	
  terminado,	
  están	
  en	
  
continua	
  evolución.	
  
  Es	
  un	
  proyecto	
  de	
  desarrollo	
  de	
  software	
  libre	
  
para	
  la	
  creación	
  de	
  entornos	
  de	
  escritorio	
  
amigables	
  para	
  diversos	
  sistemas	
  operativos.	
  
  Similar	
  a	
  los	
  escritorios	
  de	
  Windows.	
  
  En	
  su	
  mayoría,	
  el	
  nombre	
  de	
  las	
  aplicaciones	
  
de	
  KDE	
  inicia	
  con	
  K	
  como	
  Konkeror,	
  un	
  
navegador	
  Web	
  y	
  de	
  archivos;	
  Kopete,	
  un	
  
programa	
  cliente	
  para	
  mensajería	
  
instantánea;	
  Konsole,	
  un	
  emulador	
  de	
  
terminal,	
  etc.	
  
  Es	
  un	
  sistema	
  de	
  escritorio	
  intuitivo	
  y	
  atractivo.	
  
Fácil	
  de	
  entender	
  para	
  el	
  usuario	
  final.	
  
  Proporciona	
  además	
  un	
  entorno	
  de	
  desarrollo	
  para	
  
crear	
  nuevas	
  aplicaciones.	
  
  Nautilus	
  es	
  la	
  aplicación	
  para	
  explorar	
  los	
  archivos.	
  
  ¿Cuál	
  escoger?	
  
  Depende	
  del	
  gusto	
  del	
  usuario.	
  
  Una	
  frase	
  famosa:	
  
  KDE	
  es	
  como	
  la	
  ciudad,	
  GNOME	
  es	
  como	
  el	
  campo.	
  
  KDE	
  es	
  completamente	
  configurable,	
  mientras	
  
GNOME	
  es	
  muy	
  agradable	
  y	
  sencillo.	
  
  Es	
  un	
  proyecto	
  que	
  aprovecha	
  las	
  
características	
  de	
  las	
  tarjetas	
  aceleradoras	
  
gráficas	
  para	
  hacer	
  más	
  vistosa	
  la	
  
presentación	
  que	
  ve	
  el	
  usuario.