_..- División de Ciencias Básicas e Ingeniería &/i2JXc,rc? Informe Final Del PROYECTO TERMINAL II 4’ Windows NT Administración, Programacion tlnteracción de Unix con Windo ASESOR : INGENIERO VICTOR ALCARAZ PARAMO ELABORO : LUIS ROBERTO SANCHEZ ’/ 1 INDICE 1. lndice .................. 1 2. JUSTlFlCAClON ..................4 3. OBJETIVOS ................................... 6 4. INTRODUCCION A WINDOWS NT.................7 5. ARQUITECTURA GENERAL DE WINDOWS NT.................13 6. SISTEMA DE ARCHIVOS DE NT (FILE SYSTEM) .................17 6. MANEJO DE PROCESOS EN NT .................20 7. MANEJO DE MEMORIA EN NT .................44 8. NT EN RED .................72 9. NT COMO SERVIDOR DE ARCHIVOS .................110 1O.NT COMO SERVIDOR DE APLCIACIONES ( WEB Y E - M A l l ) .................111 11.NT COMO SERVIDOR DE IMPRESORAS .................113 14. LlNUX RED HAT .................114 15.ARQUlTECTURA GENERAL DE LINUXRED HAT.................126 16.SlSTEMA DE ARCHIVOS DE LlNUX (FILE SYSTEM) .................137 17.MANEJO DE PROCESOS EN LlNUX .................139 18.MANEJO DE MEMORIA EN LlNUX .................153 2 I 225933 19.LlNUX COMO SERVIDORDE ARCHIVOS .................173 20. LlNUX COMO SERVIDOR DE APLICACIONES ( WEB Y E-MAIL ) .................174 21.LlNUX COMO SERVIDOR DE IMPRESORAS .................187 24. DIFERENCIASEN LlNUX REDHAT (UNIX) Y WINDOWS NT.................21 1 25. DIFERENCIAEN EL CONTROL DE PROCESOS DE WINDOWS NT Y LlNUX REDHAT (UNIX) .................211 26. DIFERENCIA ENEL CONTROL DE MEMORIA DE WINDOWS NT Y LlNUX REDHAT (UNIX) .................215 40. Diferencias entre sistemasde archivos NTFS y HPFS................,217 41. Diferencias entre WindowsNT y Unix como servidoresde E-mail y Web................,219 42. CONCLUSIONES .................220 43. Otras experiencias .................227 45. GLOSARIO.................229 46. BlBLlOGRAFlA.................230 t ' Y L 1 ,L" . I . ' 3 .. 4 , 1 L. I I Actualmente en el mundo de la informática y de la computación en general, existen una serie de cambios que se suceden en Forma constante de manera casi imprevista. El objetivo principal de este trabajo así como del mismo proyecto de investigación es El de adentrarse al mundo de las redes en el mundo Windows NT debido a que este es operativo de los "90s" como muchos el sistema Le llaman, no sin hacer a un lado los conocimientos adquiridos a lo largo de la carrera de computación. Otro de los puntos importantes era poder "aterrizar" los conocimientos adquiridos, esto es : poner en práctica la teoría aprendida en nuestro caso en particular fue el de poder Integraraunquefueradeforma ficticia servidores NT conUNIX,paraellosetomocomomodelo experimentalelcentrodecomputodelamaestríade la Lic. enQuímica,en la cual se contaba con máquinasconsistemaoperativolRlXqueestabansiendodesaprovechadas y noexistíaninguna administraciónde la redparapoderasegurarlaintegridad y funcionamientoóptimodelcentro.Este problemáticaseplanteamejoren los ObjetivosporalcanzarparaelSistemaDeComputoDeLa Maestría de Computo. No obstante aunque se plantearon estos objetivos y metas no fue posible implementarlo en la realidad aunque si hacer una "emulación del sistema" a través del sistema operativo LINUX y conello adentrarse al mundo LINUX Red Hat y porlo mismo a UNlX y sus clones con ello fue posible integrase al mundo de las redes de computadoras y enfrentarse a problemas tales como la Instalación de Windows, NT Instalación de LINUX, Configuración de Linux y NT así como aspectos de administración de redes UNIX, NT , Programación en 32 Bits para Windows NT, Manejo de Correo electrónico en LINUX y NT, compartir recursos con SAMBA entre LINUX y NT, Correr programas de UNlX en con un telnet de Windows NT o 9X, usar cuentas FTP y en general planear la distribución de Servidores de Archivos, Servidores De correo Electrónico, Servidores de Internet, Servidores de Impresión etc. 4 IIOBJETIVOS Aplicar los conocimientos adquiridos a lo largo de la carrera y las diferentes materias Conocer a fondo la estructura y funcionamiento de Windows NT a nivel dered, sistema operativo, programación etc,.., Integrar sistemas enRed entre Windows NT y Linux Red Hat NT y Unix Simular un ambiente heterogéneo de redes Diseñar un ambiente de red queatienda los problemas del departamento de la maestría en la licenciaturade química y funcionamientodela Comprender y aplicarlaestructura programación orientada a objetos bajo 32 bits con el lenguaje Visual C++, aplicándolo en WindowsNT Aprender y aplicarensimulaciónlaadministración Windows NT y Unix "linux" de redes Detectar los puntos débiles de cada uno de los sistemas operativos Windows NT y Unix Ser capaces de instalar, poner a punto los sistemas operativos Windows NT y Linux; así como aplicaciones que interactúen en cada uno de los sistemas NT y Linux 3 5 INTRODUCCION WINDOWS NT A lo largo de la historia de la ciencia dela computación ha sido de vital importancia,el poder contar con una interfaz que oculte a la vista "acciones" del usuario así como todas las instrucciones de lenguaje ensamblador o máquina que se realizan cada vez que se formatea un disquete o que se grabaun archivo o se imprime etc.. . Esta es la laborde un sistema operativo por lo cual la mayoría de los fabricantes de computadorasse vieron enla necesidad de además de crear, el hardware deberían de crear softwareo conjunto de programas para que el usuario pudiera haceruso de todas las ventajas de una computadora. Uno de estos fabricantes fue IBM quien lanzo la primera computadora personal creo junto con un asociadollamado Microsoft (De Bill Gates) crearonelprimersistemaoperativoparaestetipode computadoras personales, llamado MS-DOS, que aunque era muy rústico en un principio cubría las necesidades del usuariodeaquelentonces,mástarde la aparición de Machintosh elcuallanzoal mercadounsistemaoperativoque no erabasadoentexto o comandosdelínea, si no quepor el contrario ofrecía al usuario una interfaz gráfica para el usuario (GUI), este esquema aunque eraya muy , conocido en sistemas UNIX,en el ámbito de las computación personal fue una novedad muy importante por lo cual Microsoft decide crear su propio GUI llamado Windows X.Y que incluía además de los comandos de su antecesor MS-DOS también incluía procesadores de palabras, un "Command Shell" o administrador de archivos, yla oportunidad de poder manejar en un modo virtual la mukitarea, al poder hacer uso de 2 ó hasta a veces más programas a la vez, con esto y otras necesidades que se fueron adquiriendo en el transcurso de los años , como fue la aparición de las redes de computadoras, era necesario poder implementa, estas opciones dentro del mismo sistema operativo sin dejar de atender las necesidades antes mencionadas delos usuarios, para ello Microsoft crea su versión deWindows para trabajo en queaunquenoeramásquelaunióndeprogramasdeunsistemaderedesllamado MANAGER anexado a las utilidades de Windows. P P O LAN- Más tarde Bill Gates viendo el crecimiento casi exponencial del mercado de las redes de computadoras piensa en crear un sistema operativo que contara además de las instrucciones de Lan-Manager con otros tipos de protocolos de redes entre ellos TCP/IP, PWSPX y otros protocolos de fabricantes llamadas "propietarias" tal comola Token Ring de IBM , NetBIOSPJetBEUI, DLC y las redes de Mac System 7.x (Cliente) . Por lo mismo Windows NT se le llama un sistema operativo de red abiertoya que . Para comenzarel soporta diferentes tiposde conexión a diferentes protocolos y redes de computadoras proyecto de Microsoft comenzó con la creación de redes punto a punto de trabajo en grupo en el caso de Windows para trabajo en Grupo o 3.1 1 , en las cuales los usuarios de estos recursos pueden utilizar los recursos mutuamente. Cada usuario puede decidir por si mismo que recursos de su computadora quiere ofrecer a los miembros del grupo de trabajo y cuales no. La utilización de archivos y directorios esta graduada mediante simples derechos de acceso . Sólo es posible pasar a otros grupos de trabajo de la misma red registrándose en la red en cuestión . Con la consecuencia de que un miembro de la misma red o grupo de trabajo utilice los recursos de otro sin su autorización. Este tipo redes punto apunto que diseñoMicrosoftnoexisteningunadiferenciaentreutilizaryofrecerservicios ni tampoconinguna instancia central para el control de los derechos de acceso y las utilizaciones en la red . Únicamente el personal de Novel NetWare separa rigurosamente entre sí los grupos de trabajo incluso las redes punto a punto. Debido al avance en las aplicaciones que se estaban usando en las redes de computadoras yla falta de seguridad que se estaba aplicando a las redes, punto apunto se decide crear leyes de protección de datosenellosebasoelconceptodelasredes Cliente-Servidor en lascualescomomínimo una computadora sume el papel de vigilante y coordinador (como el concepto de Dominios de Microsoft). Mientras que un grupo de trabajo no es nada más que el nombre de un grupo de computadoras que 6 comparten ciertos recursos, detrás deundominiodehayungrupodecomputadorasqueposeenun concepto de seguridad común. Este concepto de dominio es aplicable a las redes NT . Pero no tan solo había que dominar los conceptos anteriores si no ir más allá por lo cual a partir de que Windowsparatrabajoengrupo 3.11hizo su apariciónysevio la necesidaddecrearunambiente heterogéneoderedesentoncesseempezó,aplanearunsistemaoperativopara la décadade los noventas en el cual, además de poder usar las características de ser multitarea también se aprovechara elconceptodeusarredesen unambientecliente-servidorconunaseguridadaceptablepararedes corporativas o conrecursosqueporsuscaracterísticasmerecieranunciertoniveldeseguridad, así como también que el código en el cual fuera hecho no restringiera al usuario a instarlo o echarlo en marcha en una cierta plataforma solamente, si no que este nuevo sistema operativo pudiera portarse en diferentes modelos de Hardware, para ellolos módulos de este sistema operativo deberían encapsularse y separarse en módulos buen planeados para que al hacer la migración a otra plataforma de hardware fuesecasitransparente la migracióndeesteúltimo,poresoNTfueescritoen sumayorparteen Lenguaje C el cual permite un rango de portabilidad muy grande y por ello mismo NT puede instalarse desde una máquina X86 o superior (con un procesador o varios procesadores CISC) o bien enuna RISC) Power PC o en una computadora de alto rendimiento como una HP-Netserver (con procesadores ambas . No obstante lo anterior otro de los puntos centrales del diseño de este nuevo sistema operativo de red, había que trabajar en la confiabilidad en cuanto a prueba de fallos en aplicaciones. Lo anterior fue tomado en cuenta por que se deseaba mantener la compatibilidad con aplicaciones de MS-DOS, Windows 3.XY, Windows 9x, OS/2 y aplicaciones con el estándar POSK . Por lo cual era muy factible que alguna de estas aplicaciones de un ambiente tan heterogéneo y multitarea dejara colgado al usuario, por ello se diseña un sistema de Memoria Virtual muy adecuado, así como un sistema de archivo que fuese capaz de soportar estas aplicaciones, ofrecer un nivel de seguridad contra virus y un margen de . seguridad contra fallo de aplicaciones mínimo que no se había observado en Windows 3.xy Lo anterior pudo ser previsto y planeado para poder asegurar un productoque no solo sirviera como un ambiente de trabajo para escritorio o tan solo un ambiente agradable para un usuario como lo habían sidoWindows3.XYywindows9xpor lo quese dieron a la tarea de crear un sistema operativo con ambiente de red con un cierto nivel de seguridad, que además pudiera ofrecer un buen desempeño en manejo de memoria y de archivos, un sistema operativo que pudiera trabajar a nivelde red en cuanto a funcionar como servidor de Archivos. Aplicaciones, Impresión , Web, Correo Electrónico y de aplicaciones de 32 Bits para ambientes de rede BackOffce que incluye aplicaciones de bases de datos como SQL Server,ExchangeServer,SNAServerySMSquesonpropiasdeMicrosoft.Comotambiénpoder interactuar y estar conectados a un ambiente heterogéneo de redes es decir un sistema operativo que pudiese soportar el acceso / manejo de diferentes tipos de protocolos de redes tales como son TCP/IP, 0.92, Novel1 IPX, Token Ring, o redes remotas con SLIPo PPP etc . S como lo son los productos de Conservando un ambiente de trabajo de escritorio amigable como el de Windows 9x pero con mayor confiabilidadencuantoatolerancia de fallos.Todo lo anteriorselogroconseguiren 2 productos Windows NT Server y WindowsNT Workstation. Estos dos productos aunque tiene las mismas bases en cuanto a concepto de ser sistemas operativos ofrecen diferentes ventajas y obviamente desventajas a continuación se muestra un resumen de componentes comunes y diferencias entre Windows NT Server Y Windows NT Workstation. 7 Con lo anterior se puede decir que Windows es un sistema operativo para los noventas; pero en realidad conviene utilizarlo como plataforma de red , o como PC de escritorio ;Que ventajas tendrá sobre UNlX u otro sistema operativo?. 8 de un El Verificador de archivos del sistema le sigue la pista a los archivos críticos que aseguran la operación del i?:: sistema. Si estos archivos son transferidos o cambiados, este verificador ofrece una manera fácil de restaurarlos. Una vez que se detectan los cambios de archivo, se ofrece al usuario varias líneas de : acción. + #& La presentaciónWindows (2.0,2.1, 3.0y 3. l x o para trabajo en grupo) Después de la aparición de Machintosh y su sistema operativo gráfico Microsoft espero u tiempo hasta que llego el procesador 286 el cual se basaba en un BUS de 16 bitsque permitía manejar untotal de memoria en direccionamiento de más de 1024 kb es decir borrar la limitante de el Mega de memoria. Meses después hace su aparición el procesador 386 que se basaba en un direccionamiento de 16 bits además de nuevas instrucciones en ensamblador para poder manejar máseficientemente este direccionamiento y con ello rebasar el, límite de 2 mb físico de las 286 con ello los gráficos podrían hacerse relativamente más fácil pues como se sabe un GUI esta basado en el número de píxeles que se puedan administrar y manejar, con ello además de estos importantes descubrimientos en Hardware Microsoft también implementa el concepto de Swap (Espacio en disco duro intercambiable, en el caso de que la memoria RAM se agote). 10 Similitudes entre windows9x y windows NT MS-DOS El sistema operativo DOSes la primera interfaz no grafica que permite al usuariode una computadora personal accederal hardware , ejecutar programas y sacar rendimientoun a equipo capazde realizar una gran variedad de trabajos. Proporciona el medio para identicar al hardware que programa o mandado se quiere ejecutar, donde se encuentra el programa o mandato etc. Historia En el año de1981 después de IBM lanza su primera computadora personal se da cuenta que necesitaba le pide ala empresa Microsoft Corporation en alianza un S.O. para poder operar a su invento para ello con la misma IBM que crearanal MS-DOS. Este primerS.O. permitia ejecutar ordenes básicas para su funcionamiento , una de estas primeras ccaracteristicas el uso de un sistema de archivos que ha permitido compatibilizar estos en las sucesivas versiones así como enotrosS.0. como OS/2 , windos 3.x y finalmente Windows NT, esta versión era utilizada y almacenada en discos de5.25 pulgadas de una sola cra con capacidad de160KB, posteriormene en 1982 se mejora esta versión almacenandola en discos de 360K. En 1983 se hizo una gran mejora hacendo una mejor gestión de dse archivos (aparecen los subdirectorios, etc..) se amplian el conjunto de ordenes y mejorando las existentes . En 1984 aparecne los disco de Alta densidad y con ello una nueva versión DOS de y con ellola primera versión de red DOS3.1 que permitela conexión de computadoras personales bajo DOS en Redes de Area Local y su utilizacióncomo servidores de entornos Multiusuario a continuación se explica muy brevemente la estructura del sistema operativo DOS m Como se puede observar en el esquema el primer componente que se ve interactuar el es el cual hace un test del equipo permite intercambio de datos entre dispositivos de entrada y salida tales el como teclado yel monitor o el teclado y el Flopy etc. El siguiente nivel esta integrado por el el núcleo del sistema operativo que esta en memoria desde que se inicia el equipo, este núcleo esta compuesto por el interprete de comandos Command.com que es el encargado de poder ejecutar una serie de comandos que quedan residentes en memoria así como tambien de dos archivos denominados ocultos que permiten actualizar las variantes del hardware de la computadora víaBIOS. Direccionamiento de memoria principal Este se hace de modo reales decir; se accede directamente a posiciones físicas de la memoria . Se y un desplazamiento. LAS direcciones utliza ekl esquema de direccionamiento basado en un segmento de un segmento son de 16 bits por lo tanto se puede hacer referncia a 64 KB pero se puede desplazar a la izquierda hasta4 bits sin perder los más significativos, con lo cual se dispone de1 .O24 K o 1 Mbyte . Como los cuatro últimosbits son cero, las posiciones que se pueden direccionar van 16 de en 16 direcciones. Lo anterior se explicaya que debido a que MS-DOS se basaba en máquinas XT con un 2 a la 8 por lo que tenemos un direccionamiento de 256 bits de 8 bits se tenía un direccionamiento de posteriormente la AT 386 tenia un bus de 16 bits 2 a la 16 que hace un total de65536 bits, actualmente BUS de 32 bits o sea 2 a la 32 4294967296 las máquinas486 a la pentium más reciente operan con un bits o cuatro billonesde bytes (4 gigabytes). 9 No obstante todas las mejoras anteriormente mencionada se heredaba la FAT, el commad. comy en realidad todas las mejoras ofrecidas gráficamente para administrar los acrhivos desde el File Manager Ydministrador de archivos” era una mascara de pixeles de los antiguos pero eficientes comandos de MS-DOS (format.com, Dir, tree.com, md, cdetc). También nmo podemos dejar de mencionar el fatidoc mensaje de APLICATION IN ERROR FATAL PROTECTIONMODE APLICATION etc que no eraotra cosa que lapesima administración de memoria entre las aplicaciones y el kernel, administradores de archivos y demeoria del propio Windows,ya que en estas versiones así como en las actuales de windows 9x una palicación puede tratar de ocuparya seaen meoriafísica como en SWAPla misma dirección de memoria que el kernel o el administrador de archivoso hasta el mismo administrador de gráficos, por lo que el “Semaforo delS.O. ” no permiteel paso del procesoy prefiere matar a laaplicación , so siempre con exito ya que también con esto se puede quedar colgado el S.O. ya que anteriormente se pudo hacver accedidoa regiones de meoria prohibidos sin poder ser detectados a tiempo. Lo más importantey destacable dela aparición de Windows ademas de la interfaz gráfica fué , la precencia de incluir en sus conceptos de RED nuevas tecnologías y también nuevos conceptos de redes creadas por Microsoft que actualmente tienen jucho peso. 11 modos 4 ARQUITECTURA GENERAL DE WINDOWS NT Un sistema operativo es un programa de computadora complejo, actualmente los sistemas operativos ofrecen dos servicios fundamentalmente . Hacen que el hardware de la computadora se más fácil de utilizar creando una máquina virtual, que es muy diferente dela máquina real . Su segunda labor es la de que un sistema operativo compartelos recursos de hardware entrelos usuarios . Uno de estos recursos más importantes es el procesador Además de compartir el procesador el sistema operativo divide la memoria y regula el accesolos a archivos y dispositivos dela computadora. Los Modelos de Windows NT El diseño de Windows NT se guió por una combinación de varios modelos . El principal es el modelo Cliente / servidor para con ello proporcionar múltiples entornos de sistemas operativos (Inicialmente Windows, MS-DOS, 0S/2y POSIX) a sus usuarios .Emplea a la vez un modelo de objetos para manejar uniformemente los recursos del sistema operativo y concedérselos después alos usuarios . Un tercer modelo es el multiproceso simétrico (SMP, symetric multiprocessing), permite que Windows NT consiga el máximo rendimiento en entornos con multiprocesadores. Modelo Cliente Servidor Un método sencillo y común en los sistemas operativos más pequeños como el MS-DOS, es crear el sistema operativo como un conjunto de procedimientos y permitir que cualquier procedimiento invoque a otro, esto obviamenterestafiabilidadyeficienciaal S.O. ya queunaaplicaciónpuedetransgredirla seguridad de otrao su espacio de memoria.. En todos los sistemas operativos excepto en los monolíticos mas sencillos las aplicaciones están separadas del propio sistema operativo . Esdecir el código del modo kernel), con sistemaoperativo se ejecutaenunmodo deprocesadorprivilegiado(llamado acceso a los datos del sistema y al hardware; las aplicaciones se ejecutan en un modo de procesador privilegiado (denominado modo usuario), con un número limitado de interfaces y con acceso limitado a los datos del sistema. En la siguiente figura se muestra la estructura monolítica de un sistema operativo con separados. Y kernel Un método diferente consiste en dividir el sistema operativo en módulos y estratificarlos . Cada módulo proporciona un conjunto de funciones que pueden ser llamadas por otros módulos. El código de un nivel concreto solamente hace llamadas a códigos de niveles inferiores. solo a interfaces de Una ventaja de la estructura estratificada es que a cada nivel de código tiene acceso másbajonivelyalasestructurasdedatosqueprecisa,limitandodeestamanera la dispersióndel código. Un tercer modelo en la estructura de un sistema operativo es el modelo cliente servidor . La idea es dividir al sistemaoperativoenvariosprocesoscadauno de los cuales seencargadeunconjunto se determinado de servicios . Cada servidor se ejecuta en modo Usuario, ejecutando un ciclo que verifica si un cliente ha solicitado uno de sus servicios . El cliente que puede ser o bien un componente del sistemaoperativo o bienunprogramadelaaplicación , solicitaunservicioenviandounmensajeal modo kernel envía el servidor . Un kernel del sistema operativo (o microkernel) que se ejecuta en mensaje al servidor, este efectúa la operación, y el kernel devuelve los resultados al siguiente con otro como mensaje muestra en la figura.siguiente Elmétodo Cliente / servidor tienecomoresultadounsistemaoperativocuyoscomponentesson pequeños y autónomos Puesto que cada servidor se ejecuta en un proceso modo usuario independiente, un servidor puede fallar (y alo mejor ser reiniciado) sin corromper ni dañar elresto del sistema operativo . En la siguiente figura se muestra un modelo teórico de un sistema cliente / servidor . El Kernelconsisteúnicamenteenunaherramientadepasodemensajes . Enrealidadlossistemas cliente / servidor pueden ser muy variados , algunos hacen muy pocas labores dentro del modo kernel y otros hace más . La estructura de Windows NT se beneficia tanto el modelo estratificado como del modelo cliente servidor . La parte en modo kernel de Windows NT se denomina Windows NT Executive (El ejecutor de la gestióndememoria Windows NT) . Esteenglobauna serie decomponentesqueimplementan virtual, administración de objetos (recursos), sistemas de archivosy de E/S (incluyendo drivers dered) de comunicacióndeprocesos,ydiversosaspectosdelsistemadeseguridad . Estoscomponentes interactúan entre ellos básicamente de una forma más modular que estratificada . Sin embargo el modelo y en estratificado del sistema operativo entra en juego en el sistema de E/S del ejecutor de Windows NT, : el kernel de NTylacapa deabstraccióndelhardware(HAL,hardware susporcionesmásbajas abstractionlayer) . Elrestode los componentesdelejecutordeNTestándistribuidosencapaspor encima de estas dos partes . El kernel de NT realiza funciones de sistema operativo bajo nivel, muy parecidas a las encontradas en los sistemas operativos de cliente I servidor y microkernel (por ejemplo planificación de tareas, distribución de interrupciones y excepciones, y sincronización de procesadores). También proporciona un conjunto de rutinas y objetos básicos que el resto del ejecutor necesita utiliza para implementar operaciones de alto nivel. Por debajo del kernel se encuentra la DLL (dinamic link library, o librería de enlace dinámico) del HAL, una capa de código que protege al kernel y al resto del ejecutordeNT de las diferenciashardwareespecificasdecadaplataforma.ElHALmanipula directamente al hardware.El modelo cliente/ servidor que usa Windows NT se muestra a continuación. 13 delLas ventajas O O O Simplifica el sistemaoperativobase,esdecir, el ejecutordeWindowsNT.Unobjetivo de Windows NT es proporcionar API de Win32 MS-DOS, Windows de 16 bits, POSlX y OS12. El trasladodecadaAPIaunservidorindependientementeevitaconflictosyduplicacionesdel ejecutor y permite añadir nuevos API fácilmente. Mejora la fiabilidad . Cada servidor se ejecuta en un proceso separado, dividido dentro de su propia memoria,y de esa manerase queda protegido de otros procesos Se adapta perfectamente al modelo de procesamiento distribuido. Puesto que las computadoras conectadas de una red están basados en un modelo cliente/servidor y utilizan mensajes para comunicarse, los servidores locales pueden enviar fácilmente mensajes a máquinas remotas y en nombre de aplicaciones clientes. Los clientes no necesitan saber si ciertas solicitudes están siendo atendidas localo remotamente. Modelo de Objetos Aunque no es estrictamente un sistema orientado a objeto (como Meyer lo define), Windows NT utiliza objetos para representar recursos del sistema. Cada recurso del sistema que puede ser compartido por más de un proceso (incluyendo archivos, memoria compartida, y dispositivos físicos) está implementado como un objeto y se maneja mediante el empleo de servicios de objeto. Además de reducir algunas los efectos de un cambio, construir un sistema operativo basado en objetos tiene ventajas. 14 o El sistema operativo accede y manipula sus recursos uniformemente . Crea, borra, y referencia un objeto de evento dela misma forma que lo hace con un objeto de proceso. 0 La seguridad se simplifica, puesto que todos los objetos están protegidos de la misma forma. 0 Los objetos son un paradigma conveniente y uniforme para compartir recursos entre dos o más procesos . Los controladores (handles) de objetose utilizan para manipular todo tipode objetos . Dos procesos comparten un objeto cuando cada uno abre un handle a el . El sistema operativo puederastrearcuantoshandlesestánabiertosaunobjetoparadeterminar si elobjetoesta todavía siendo utilizado. Multiprocesamiento simétrico Lamultitareaes la técnicaparacompartirun Único procesadorentremúltiplestareas.Sinembargo, cuando un ordenador tiene más de un procesador, el modelo de multitarea tiene que ser ampliado a un modelo multiproceso . Un ordenador que tiene dos procesadores puede ejecutar dos tareas simultáneamente . De estaforma,dondeunsistemaoperativomultitareaaparentaejecutarmúltiples tareas al mismo tiempo , un sistema operativo multiproceso lo hace realmente, ejecutando una tarea en cada uno de sus procesadores. WindowsNTincorporavariascaracterísticasquesonvitalesparasuéxitocomosistemaoperativo multiproceso. 0 0 o 0 Laposibilidaddeejecutarelcódigodelsistemaoperativo en cualquierade los procesadores disponibles y en múltiples procesadores al mismo tiempo. Múltiples hilos de ejecución(therads)dentrode unÚnico proceso. Los hilospermitenaun proceso ejecutar diferentes partesde su programa en diferentes procesadores simultáneamente. Procesos de servidor que utilizan múltiples hilos para procesar llamadas de más de un cliente simultáneamente. Mecanismosadecuadosparacompartirobjetosentreprocesosyflexibilidaddecomunicación entre procesos, incluyendo compartición de memoria y un pase de mensajes optimizado. Para poder entender estos modelos yla forma en que esta diseñado Windows NT es necesario revisar la Estructura de Windows NT 5 15 ablas SISTEMA DE ARCHIVOS DE WINDOWS NT NTFS las Desde el punto de vista del usuario, NTFS organiza los archivos en directorios que, al igual que en HPFS, están ordenados. Sin embargo, a diferencia de FAT o HPFS, no hay objetos "especiales" en el disco y no existe ninguna dependencia del hardware subyacente, como los sectores de 512 bytes. Adem S, no hay ubicaciones especiales en el disco, como ocurre O los superbloques HPFS. en FAT Los objetivosde NTFS consistenenproporcionar:Fiabilidad,estabilidad,seguridady accesibilidad de acuerdo a la siguiente tabla se muestran las características de este sistema de archivos comparados contra FAT erable porque realiza un seguimiento de las transacciones efectuadas en el sistema Funcionalidad aaregada Uno de los objetivos de diseño principales de WindowsNT en todos los niveles es proporcionar una plataforma ampliable sobre la que se pueda construir, y NTFS no es una excepción. NTFS proporciona una plataforma rica y flexible para se puedan utilizar otros sistemas de archivos. Además, NTFS es totalmente compatible con el modelo de seguridad 16 de Windows NT y admite múltiples secuencias de datos. Un archivo de datos ya no es un Único flujo de datos. Por último, en NTFS los usuarios pueden agregar sus propios atributos personalizados a un archivo. Compatibilidad con POSIX NTFS es el más compatible con POSIX.l de los sistemas de archivos admitidos porque acepta los siguientes requisitos POSIX.l: Nomenclatura con distinción de mayúsculas y minúsculas: En POSIX, LÉAME.TXT, Léame.txt y Iéame.txt son todos archivos distintos. Marca de tiempo adicional: La marca de tiempo adicional proporciona la hora a la que se tuvo acceso al archivo por última vez. Vínculos activos: Un vínculo activo se produce cuando dos nombres de archivo distintos, que se pueden encontrar en directorios distintos, señalan a los mismos datos. Suuresión de limitaciones En primer lugar, NTFS ha incrementado enormemente el tamaño de los archivos y de los volúmenes, por lo que ahora pueden ser de hasta 2/\64 bytes (16 exabytes o 18.446.744.073.709.551.616 bytes). NTFS también ha vuelto al concepto FAT de los clústeres para evitar el problema de HPFS de un tamaño fijo de sector. Esto se ha hecho porque Windows NT es un sistema operativo portátil y es probable encontrar en algún punto una tecnología de disco distinta. Por tanto, se consideró que los 512 bytes tenían muchas posibilidades de no ser siempre una buena opción para la asignación. Esto se consigue al permitir que el clúster se defina como múltiplos del tamaño de asignación natural del hardware. Por último, en NTFS todos los nombres de archivo se basan en Unicode y se mantienen los nombres de archivo 8.3 así como los nombres largos. Ventaias de NTFS NTFS es el mejor sistema para volúmenes de 400 MB o más. Esto se debe a que en NTFS no se degrada el rendimiento con tamaños de volúmenes mayores, como sucedía en FAT. El sistema de recuperación diseñado en NTFS es tal que nunca debería ser necesario ejecutar un programa de reparación de discos en una partición NTFS. Para obtener información acerca de las ventajas adicionales de NTFS, consulte: -"Concepts and Planning Guide" (Guía de conceptos y diseño) de Windows NT Server, capítulo 5, la sección titulada "Choosing a File System" (Elección deun sistema de archivos) Microsoft -Kit de recursos de Microsoft Windows NT Workstation 4.0, capítulo 18, "Elección deun sistema de archivos" -"Resource Guide" (Guía de recursos) del Kit de recursos de Microsoft Windows NT Server 4.0, capítulo 3, la sección titulada "Which File System to Use on Which Volumes" (Qué sistema de archwos utilizar en cada volumen) Desventaias de NTFS No se recomienda utilizar NTFS en un volumen que sea menor de 400 MB, 17 aproximadamente, debido a la carga de espacio que supone NTFS. Esta carga de espacio son los archivos de sistema NTFS que normalmente utilizan al menos 4 MB de espacio de la unidad en una partición de 100 MB. Actualmente, no se ha integrado en NTFS el cifrado de archivos. Por tanto, cualquiera puede iniciar en MS-DOS, u otro sistema operativo, y utilizar un programa de modificación de discos de nivel inferior para ver los datos almacenados en un volumen NTFS. No es posible dar formato a un disquete con el sistema de archivos NTFS. Windows NT da formato a los disquetes con el sistema de archivos FAT debido a que la carga que implica NTFS no cabría en un disquete. Para obtener más información acerca de las desventajas de NTFS, consulte: -"Concepts and Planning Guide" (Guía de conceptos y diseño) de Microsoft Windows NT Server, capítulo 5, la sección titulada "Choosing a File System" (Elección de un sistema de archivos) -Kit de recursos de Microsoft Windows NT Workstation 4.0, capítulo 18, "Elección de un sistema de archivos" -"Resource Guide" (Guía de recursos) del Kit de recursos de Microsoft Windows NT Server 4.0, capítulo 3, la sección titulada "Wluch File System to Use on Whch Volumes" (Qué sistema dearchivos utilizar en cada volumen) Convenciones de nomenclatura de NTFS Los nombres de archivos y de directorios pueden tener una longitud de hasta 255 caracteres, incluida la extensión. Los nombres conservan las mayúsculas y las minúsculas, pero no distinguen entre mayúsculas y minúsculas. NTFS no distingue los nombres de archivo según el uso de mayúsculas o minúsculas. Los nombres pueden contener cualquier carácter excepto los siguientes: ?"/\<>*I: 18 entre MANEJO DE PROCESOS EN WINDOWS NT PROCESOS E HILOS Unprogramaesunasecuenciaestáticadeinstrucciones,mientrasqueunprocesoesunallamada dinámica a un programa junto con los recursos del sistema necesarios para que el programa se ejecute. Un proceso representa una unidad de posesión de un recurso y el trabajo a realizar. Es un medio del sistema operativo de organizar las múltiples tareas que debe llevar a cabo. El sistema operativo reserva una parte de los recursos del ordenador para cada proceso, y se asegura de que cada programa de un proceso es enviado a ejecución de forma ordenada y controlada en el tiempo. Los sistemasoperativosgeneralmentetienenuncuerpodecódigoqueadministralacreacióny eliminación de procesos, y las relaciones entre éstos. Este código se denomina estructura de proceso y está implementado en Windows NT por el administrador de procesos. Mark Lucovsky, un desarrollador de Windows NT que escribió los componentes de la estructura de proceso para el sistema UNlX y para un sistema operativo basado en objetos, diseño y escribió el administrador de procesos del ejecutor de Windows NT. Resume su objetivo fundamental en una frase: proporcionar un conjunto de servicios de los subsistemasdeentornoparaemularsusparticulares procesonativosquepuedanemplear estructurasdeprocesos.EstepropósitoevolucionóconelobjetivodeWindowsNTdeproporcionar múltiples entornos sistema de operativo ejecutasen se que modo usuario. en Los procesos nativos de Windows NT tienen varias características quelos distinguen de los procesos de otros sistemas operativos: Los procesos de WindowsNT son implementados como objetos y se accede a ellos utilizando servicios de objeto. UnprocesodeWindows direcciones. NT puedetenermúltipleshilosdeejecucióndentrodesuespaciode Los objetos proceso ylos objetos hilo tienen características de sincronización internas. EladministradordeprocesosdeWindowsNTnomantienerelacionespadre relaciones crea. los que procesos / hijo uotro. tipo de Qué es un proceso? En el más elevadonivel de abstracción, un proceso consta de: Un programa ejecutable que define el código y los datos iniciales. Un espacio de direcciones privado, que es un conjunto de direcciones de la memoria virtual que puede emplear un proceso. Recursosdelsistema,comosemáforos,puertosdecomunicaciones, operativo reserva para el proceso cuando se ejecuta un programa. y archivos,que el sistema En Windows NT, un proceso ha de incluir un cuarto elemento antes de poder realizar un trabajo. AI menos un hilo de ejecución Procesos e hilos 19 Un hilo es una entidad dentro de un proceso que el kernel de Windows NT planifica para su ejecución. Sin éI, el programa del proceso no puede ejecutarse. Espacio de direcciones El sentido común dicta que un procesono debería ejercer un control ilimitado sobre otros procesos. Una manera que tiene Windows NT de conseguir esto es utilizar un sistema de memoria virtual. Con memoria virtual, los programadores (ylos procesos que ellos crean) tienenuna visión lógica de la memoria que no se corresponde con la disposición física. Esto se ilustra mejor en la siguiente figura: d C . * d I , . I Memoria virtual versus memoriafísica Cada vez que un proceso emplea una dirección de memoria, el sistema de memoria virtual, traduce la direcciónlógicaaunadirecciónfísica.Tambiénevitaque los procesosaccedandirectamentea la memoria virtual ocupada por otros procesoso por el sistema operativo. Para ejecutar código del sistema operativo o para acceder a la memoria del sistema operativo, unhilo tiene que ejecutarse enel modo no restringido denominado modo kernel. Sin embargo, la mayoría de los procesos son procesos de modo usuario, es decir, procesos cuyos hilos se ejecutan principalmente en el modo restringido del procesador denominado modo usuario. Un hilo modo usuario consigue acceso al sistema operativo llamando a un servicio del sistema. Cuando el hilo llama al servicio, el procesador lo atrapa y conmuta su ejecución de modo usuario a modo kernel.El sistema operativo tomael control del hilo, validandolos argumentos que el hilo pasó al servicio del sistema y ejecutando el servicio. AI final, el sistema operativo vuelve a pasarel hilo a modo usuario antes de dar el control al programa del usuario. De esta forma, el sistema operativo se protege asimismo y a sus datos de cualquier modificación por parte de los procesos de usuario. Los programas de aplicación se ejecutan en modo usuario, y sucede lo mismo con los subsistemas protegidos de Windows NT. Estos últimos son procesos servidores en modo usuario que proporcionan importantes prestaciones del sistema operativo. Están implementados como servidores para simplificarel 20 sistema operativo base y hacerlo extensible. Los subsistemas se ejecutan en modo usuario para que el espacio de direcciones de cada uno esté protegido de procesos de aplicaciones y de otros subsistemas. Colección de recursos Ademásdeunespaciodedireccionesprivado,cadaprocesotieneasociadounconjuntodiversode y sus recursos. recursos del sistema. La siguiente figura muestra un proceso típico Si el proceso necesita información sobre su Token de acceso, o cambiar alguno de sus atributos, el proceso debe abrir un handle a su objeto Token. El sistema de seguridad determinarási se puede hacer uno. Este proceso particular no ha abierto un handle a su Token de acceso; de ahí que no haya una flecha desde latabla de objetos al token de acceso. Bajo el Token de acceso hay una serie de estructuras de datos creadas por el administrador de memoria virtual para controlar o rastrear las direcciones virtuales empleadas por el proceso. El proceso no puede leer o alterardirectamenteestasestructurasdedatos; el administradorde VM lascrea y modifica indirecta Procesos e hilos mente a medida que el programa reserva memoria. En la parte inferior de la figura se muestra la tabla de objetos del proceso. El proceso ha abierto handles a un hilo, a un archivo, y a una sección de memoria compartida. (La descripción de la dirección virtual registra las direcciones virtuales ocupadas por el stack del hilo y el objeto sección, según indican las flechas que van de la descripción de dirección virtual a esos objetos). Además de los recursos tangibles mostrados en la figura, cada proceso tiene un conjunto de límites de cuotas de recursos que restringen cuánta memoria pueden utilizar sus hilos para abrir handles a objetos. Cada proceso tiene también una prioridad de ejecución base y una afinidad de procesador por defecto, cuestiones que son descritas más adelante. Objeto proceso EnelejecutordeWindowsNT, los procesossonsimplementeobjetoscreados y eliminadosporel administrador de objetos. El objeto proceso, al igual que otros objetos, contiene una cabecera que el administrador de objetos crea e inicializa. Esta cabecera almacena atributos estándar de objeto, como el descriptor de seguridad del objeto proceso, el nombre del proceso (si tiene alguno para propósitos de compartición), y el directorio objeto en el cual está almacenado su nombre, si es aplicable. 21 El administrador de procesos define los atributos almacenados en el cuerpo de los objetos proceso, y también proporciona servicios del sistema que guardan y cambian estos atributos. En siguiente figura4-3 se ilustranlos atributos y servicios para Por ejemplo, en un ordenador multiproceso, la afinidad del procesador podría obligar a que los hilos del proceso fueran ejecutados en un subconjunto de los procesadoresdisponibles.Deformasimilar, los límites Atributos del cuerpo de objeto Procesos e hilos de cuota regulan cuánta memoria, espacio de paginado de archivos, y tiempo de ejecución pueden emplear colectivamente los hilos del proceso. Objeto proceso ' I La prioridad base del proceso ayuda al kernel de WindowsNT a regular la prioridad de ejecución de los hilos en el sistema. La prioridad de hilos individuales varía pero siempre permanece dentro del rango de la prioridad base del proceso. Los subsistemas de entorno pueden emplearla prioridad base del objeto proceso kernel. Qué sonlos hilos? Si el lector está familiarizado con el tema de los hilos, es probable quehaya encontrado varias definicionesde hilo, entre las que se incluyen: "una unidadde ejecución", "un contador de programaindependiente", o una entidad planificable dentro de un proceso". Aunque cada una de estas definiciones es en esencia correcta, ninguna es satisfactoria. Qué es exactamente "una unidad de ejecución?; quées lo que se ejecuta en un procesador? Mientras que un proceso lógicamente representa un trabajo que el sistema operativo debe realizar, un hilo representaunadelasmuchassubtareasnecesariasparallevaracabo el trabajo.Porejemplo, 22 supóngase que un usuario pone en marcha una base de datos en una ventana. El sistema operativo representaestainvocaciónalabasededatoscomounprocesosencillo.Ahorasupóngasequeel usuario quiere que sea generado el informe de una nómina desde la base de datos y se envíe a un archivo (supuestamente una larga operación). Mientras esta operación está en marcha, el usuario puede hacer otra consulta a la base de datos. El sistemaoperativorepresentacadaunadeestassolicitudes(elinformede la nóminay la nueva consulta a la base de datos) como hilos independientes dentro del proceso de la base de datos. Los hilos pueden planificarse para que se ejecuten independientemente en el procesador, lo cual permite que las dos operaciones se ejecuten al mismo tiempo (concurrentemente). Los sistemas operativos proporcionan hilos para lograr esta concurrencia de una forma conveniente y eficaz. Se examinará con más detalle este asunto más adelante. A continuación se enumeranlos componentes esenciales de un hilo del ejecutor de Windows NT: Un Único identificador, denominado ID cliente Los contenidos de un conjunto de registros volátiles que representan el estado del procesador Dos pilas, una para que la utilice el hilo mientras se ejecuta en modo usuario, y otra cuando se ejecute en modo kernel Un área de almacenamiento privado para ser empleada por los subsistemas, las librerías en tiempo de ejecución, y las librerías de enlace dinámico (DLL) Los registros volátiles, las pilas, y el área de almacenamiento privado se denominan contexto del Los datos reales que componenel contexto de un hilo varían de un procesador a otro. hilo. Unhiloresidedentrodelespaciodedireccionesvirtualesdeunproceso,utilizando el espaciode direccionescomoalmacéndurantesuejecución. Si existemásdeunhiloen el mismoproceso, comparten el mismo espacio de direcciones y todos los recursos del proceso, incluyendo su Token de acceso, su prioridad base, y los handles de objeto de su tabla de objetos. El kernel planifica la ejecución de los hilos en un procesador. Por lo tanto, cada proceso de Windows NT debe tener al menos un hilo antes de que se pueda ejecutar. Multitarea y multiproceso Unprocesador sólo puedeejecutarunhiloenunmomentodeterminado.Sinembargo,unsistema operativo multitarea permite a los usuarios ejecutar múltiples programas, y parece ejecutar todos ellos al mismo tiempo. Logra esta impresión dela siguiente manera: 1. Ejecuta un hilo hasta que la ejecución del hilo se interrumpa o hasta que el hilo tenga que esperar a que quede disponible un recurso 2. Salva el contexto del hilo 3. Carga el contexto de otro hilo 4. Repite esta secuencia mientras haya hilos esperando a ser ejecutados Cambiar la ejecución del procesador de un hilo a otro según se ha indicado, se denomina conmutación de contexto. En Windows NT, la conmutación de contexto la realiza el componente kernel del ejecutor. Como se ilustra con dos hilos en la figura4-4, un sistema operativo multitarea al tema continuamente su ejecución de un hilo a otro. Eventualmente, cada hilo finaliza su subtarea y luego, o es finalizado, o se le 23 da otra tarea. La extraordinaria velocidad del procesador consigue la ilusión de que todos están ejecutando al mismo tiempo. los hilos se La multitarea incrementa la cantidad de trabajo que realiza el sistema porque la mayoría de los hilos no se pueden ejecutar continuamente. De vez en cuando, un hilo detiene su ejecución y espera hasta que un lento dispositivo de E/S complete una transferencia de datos o mientras otro hilo está empleando un recurso que necesita, por ejemplo. Cuando un hilo tiene que esperar, la multitarea permite que otro hilo se ejecute, aprovechandolos ciclos del procesador que de otra manera se perderían. r-----"--- Hecha La multitarea preemptiva (multitarea real) es un tipo de multitarea en la cual el sistema operativo no esperaaqueunhilocedavoluntariamente el procesadoraotroshilos.Enlugardeeso,elsistema operativo interrumpe un hilo después de que haya estado ejecutándose durante un tiempo establecido, denominado quantumde tiempo, o cuando un hilo con una prioridad más alta (como el correspondiente a una entrada del usuario) está listo para su ejecución. Esta multitarea evita que un hilo monopolice el procesador, y permite que otros hilos utilicen suparte del tiempo de ejecución compartido. El ejecutor de Windows NT es un sistemaconmultitareareal o preemptiva,comosuentornoWindowsprincipal denominado subsistemaWin32. En las versiones de Windows no preemptivas, basadas en MS-DOS, un hilo tenía que ceder voluntariamente el control del procesador para que pudiera haber multitarea. Las aplicaciones primitivas o con mal comportamiento podían acumular mucho tiempo de procesador, en detrimentodeotrasaplicaciones o delsistemaen su totalidad.Algunasvecesdoshilosnecesitan comunicarse entre ellos para coordinar sus actividades hacia la consecución un de objetivo común. Eltérminohilo es relativamentenuevo).Puestoquecadaprocesoteníaunespaciodedirecciones o unarchivo separado, dos procesosteníanqueestablecer, o un áreadememoriacompartida, compartido, para comunicarse. Las vías de comunicación (pipes) fueron y son utilizadas para llevar a cabo este tipo de comunicación interprocesos. Ver la figura sig .- 24 Figura 4-5. Compilación en dos procesos .. Utilizar dos procesos (cada uno con un hilo) para preprocesar y compilar un programa sería más rápido queemplearun Únicoproceso,debidoaqueunsistemaoperativomultitareapuedeentremezclar la ejecución de estos dos hilos. Tan pronto como el preprocesador deja algo en el buffer compartido, el compilador puede comenzar su trabajo. Las aplicaciones como estas que pueden ejecutarse en dos o más lugares se denominan aplicaciones concurrentes. La concurrencia en una aplicación es útil para una máquina con un solo procesador pero es mucho más útil en un ordenadorconmásdeunprocesador.Conmúltiplesprocesadores, el preprocesadoryel compilador,utilizandoelmismoejemplo,puedanejecutarseconcurrentemente. Si unaaplicación concurrente está bien diseñada y minimiza la reserva de recursos que hacen sus hilos, se puede ejecutar figura sig másrápidoenunordenadormultiprocesadorqueenunoconun Único procesador. La comparada con la figura ilustra estas r--------- ;, r ,.. 1, .* Hecho ...... Hilo 1 ...... ........ . _ ...... Multitarea Unsistemaoperativomultiprocesoesaquélqueestáespecialmentedisetiadoparaejecutarseen ordenadoresconmásdeunprocesador.Unsistemaoperativoconmultiprocesosimétrico (SMP), tal comoWindowsNT,puedeejecutarcódigodesistemaoperativoycódigo deusuarioencualquier procesador disponible. Cuando hay más hilos a ejecutar que procesadores para ejecutarlos, un sistema operativoSMP también los hilos en espera. realiza multitarea, dividiendo el tiempo de cada procesador entre todos 25 ,' 7.. Multihilo No siempre es eficiente utilizar dos procesos para lograr concurrencia. En algunos sistemas UNlX por ejemplo, cuando un proceso crea o se bifurca en otro, el sistema tiene que copiar todo el contenido del espacio de direcciones del primer proceso al espacio de direcciones del nuevo proceso. Para grandes espaciosdedireccionesestaoperaciónconsumemuchotiempo. Es más, los dosprocesosdeben establecer un caminoparacompartirdatos,que es untrabajorápidoyfácil enalgunossistemas operativosperonoenotros.WindowsNTresuelveestosproblemasproporcionandomecanismos convenientes para la compartición de memoria: utilizando memoria de "copia-si-hay-modificación" para evitar copiar un espacio de direcciones entero de un proceso a otro, e implementando una característica de paso de mensajes optimizada localmente. Incluso con tales mejoras, hay veces que es más ventajoso un mecanismo distinto a la concurrencia, denominado procesos Multihilo. Como se dijo anteriormente, el término hilo se refiere al movimiento de un procesador a través de las instrucciones de un programa; cadahilo representa un contadorde programa independiente. Un proceso Multihilo tiene doso más hilos (y contadores de programa) dentrode un mismo proceso, compartiendoel mismo espacio de direcciones,los handles a objetos, y otros recursos. Cada proceso de Windows NT se crea con un Único hilo. Un programa puede crear hilos adicionales en el proceso a medida que los necesita. Estos hilos adicionales se suelen emplear para las operaciones asíncronas de un programa (es decir, las operaciones que pueden ocurrir en cualquier momento sin afectar al flujo principal del programa). Las operaciones de E/S suelen encajar en esta categoría. Utilizando un hiloparaejecutar el programaprincipalycreandootroparacontrolar el dispositivo, el sistemapuedeplanificarambasoperacionesindependientemente en unprocesador,yproporcionar multitarea. AI ejecutarse en un ordenador multiprocesador, los dos hilos pueden ejecutarse simultáneamente sinla sobrecarga de crear un segundo proceso e inicializar su espacio de direcciones. Para lograr concurrencia empleando hilos, un programa crea dos o más hilos para ejecutar distintas partes de su programa dentro delmismo proceso. En lafigura 4-7 se muestra un compilador Multihilo. " . .. .......... .,I: Compilador Multihilo Los procesosMultihilologran la concurrenciasinlasdesventajas de utilizardosprocesos.Loshilos requieren menos sobrecarga y sonmás rápidos de crear que los procesos. (Algunas veces se les llama "procesos ligeros" por esta razón). También, debido a que todos los hilos de un proceso comparten la 26 misma memoria, excepto sus pilas (stacks) y el contenidode los registros, no se requieren mecanismos especiales de paso de datos. Un hilo simplemente escribe su salida en memoria, y otro hilo la lee como entrada. De forma similar, todos los recursos del proceso (objetos) están igualmente disponibles para todos los hilos del proceso. El kernel de Windows NT utilizaunesquemadeprioridadesparaseleccionarelordenenelcualse ejecutan los hilos. Los hilos de prioridad más alta se ejecutan antes quelos hilos de prioridad más baja, y el kernelcambialaprioridaddeun hilo periódicamenteparaasegurarsedequetodos los hilosse ejecutarán.Unaaplicaciónpuede permitir quesushilosseejecutenencualquierprocesadordeun ordenador multiprocesador, o puede limitar su ejecución a un subconjunto de procesadores. La creación de un proceso Multihilo es una solución ideal para aplicaciones de servidor (tales como los subsistemas protegidos de Windows NT) que reciben peticiones de clientes y ejecutan el mismo código para cada petición..La Figura ilustra este punto. RocaKI&rrvMor Servidor rnultihilo Enestafigura,dosprocesosclientes(cadaunoconun Únicohilo,representadoconuna línea serpenteante) utilizan el mecanismo de paso de mensajes para enviar un mensaje al proceso servidor. y atender a los clientes. Hay múltiples hilos de servidores disponibles para ejecutar código de servidor 27 Servidor multihilo Servidor Multihilo Nótese que escribir aplicaciones Multihilo requiere gran cuidado, debido a quetodos los hilos de un proceso tienen acceso completo al espacio de direcciones del proceso. Los hilos pueden accidentalmente interferirse unos con otros, leyendo o escribiendo en memoria cuando no deben. Tal no es el caso de las aplicaciones que utilizan dos procesos para lograr la concurrencia y que se comunican explícitamente a través de mensajes o vías de comunicación (pipes). Un proceso no puede destrozar o corromper, ni accidental ni deliberadamente, el espacio de direcciones de otro proceso. Esta es la razónporlaque los subsistemasprotegidosdeWindowsNTseimplementancomoprocesos servidoresindependientes(yporlaquerecibenelnombredesubsistemas"protegidos").Cada subsistemamantiene el controlsobre suespacio de direccionesprivado,sininterferenciasdeotros subsistemas o procesos de usuario. Dentro de un servidor, sin embargo, tiene ventajas que múltiples hilos puedan ejecutar y compartirlos mismos recursos yel mismo espacio de direcciones. Las dos técnicas para lograr la concurrencia, utilizar procesos múltiples e hilos múltiples dentro de un proceso, son muy útiles. Los objetivos de la aplicación determinan qué estructuraes más beneficiosa en un programa particular. A continuación se repasan algunos términos relativos a la implementación de procesos de un sistema operativo: Multitarea. Dividir el tiempo del procesador entre los hilos que esperan a ejecutarse. Crea la ilusión de que todos los hilos se ejecutan simultáneamente. Multiproceso. Ejecutarel mismo código de sistema operativo en ordenadores con un sólo procesador y en ordenadores multiprocesadores. Un sistema operativo con multiproceso simétrico ejecuta el código del sistema y el código de usuario en todos los procesadores disponibles. Multihilo. Soportarmás de un hilo dentro de unÚnico proceso. Un sistema operativo avanzado debería suministrar todas estas características (Windows NTlo hace). 28 \ Hlk swvkw Objeto hilo Un proceso de WindowsNT permanece inanimado hasta que tiene un hilo que puede ser asignado para la ejecución. Una vez que un proceso tiene un hilo, ese hilo puede crear hilos adicionales. Como los procesos, los hilos del ejecutor de Windows NT están implementados como objetos, y son creados y eliminados por el administrador de objetos. El administrador de procesos define el cuerpo de los objetos hilo y los servicios del sistema utilizados para manipular los hilos una vez que éstos han sido creados. En la figura que se representael objeto hilo. La tabla describe los atributos del objeto hilo. Propósito Atributo ID de cliente __- __..____ Valor imico que identifica a un hilo cuando invoca a un servidor Contexto de hilo Conjunto de valores deregistro y otros datos vol~tilesque definen el estado de la ejecucibn de un hilo Prioridad dinhmica Prioridad de la ejecuci6n del hilo en un momento determinado Prioridad base Limite m& bajo de la prioridad d d im c ia del hilo Afinidad con el procesador del hilo Conjunto de procesadores en los cuales puede ejecutarse el hilo, es un subconjunto de la afinidad con el procesador del proceso del hilo Tiempo de ejecucibn del hilo Cantidad acumulativa de tiempo enla que un hilo se ha ejecutado en modo usuario y en modo kernel Estado de alerta Flag que indica si el hilo debería ejecutar una llamada de procedimiento asincrono (APC, asynchronowprocedure call) Cuenta de suspensidn Ntunero de veces que la ejecucidn del hilo ha sido suspendida sin ser reanudada Token de imitacibn Token de acceso temporal que permite a un hilo llevar a cabo operaciones en nombre deotro proceso (utilizado por los subsistemas) Puerto de teminaci6n Canal de commicaci6n interprowso al cual envía un mensaje el adminisbadm de procesos cuando el hilo termina ( u t i l i ~ d opot los subsistemas) Estado de salida Raz6n de la terminacidn de un hilo del hilo ~. ~- ~ Tabla 4-2. Atributos del objeto hilo Como se puede ver,algunos de los atributos del objeto hilo se parecenasusanálogosdelobjeto proceso. De hecho, ciertos atributos, tales como la afinidad con el procesador del hilo y la prioridad dinámica, realmente restringen o cualifican los valores aplicados al proceso en su totalidad. Por ejemplo, cada hilo tiene una afinidad con el procesador que es un subconjunto (igual o menor) de la afinidad con el procesador asignada a su proceso. Por lo tanto, diferentes hilos dentro de un proceso pueden ser forzados a ejecutarse en diferentes subconjuntos de procesadores. De forma parecida, cada hilo tiene una prioridad de ejecución base que oscila desde dos niveles por debajo de la prioridad base del proceso, hasta dos niveles por encima de ella, como se muestra en figura 30 la 15 14 13 12 11 10 PrlorMsd 9 6 7 6 5 4 3 2 + p o d r i r i a d b a s e d e p l r o c e s o 1 O figura. Relaciones de prioridad2 En dichafiguraseobservaquecadahilotambiéntiene una prioridaddinámica quecomienzaen la prioridad base del hilo y varía de forma ascendente dependiendo del tipo de trabajo que el hilo esté realizando. Por ejemplo, sí un hilo está respondiendo a la entrada de un usuario, el kernel de Windows NT aumenta su prioridad dinámica; a medida que ese proceso llega a su fin, el kernel baja gradualmente su prioridad dinámica a su prioridad base. AI bajar la prioridad base de un hilo y aumentar la prioridad base de otro hilo, los subsistemas pueden controlar las prioridades relativas de los hilos dentro de un proceso. La prioridad base del proceso controla cuánto pueden subir o bajar las prioridades de los hilos de ese proceso y lasde los hilos de otros procesos relacionados con estos. Esta figura sólo ilustra los hilos de prioridad variable, que se ejecutan en prioridades desde O hasta 15. Los hilos de tiempo real se ejecutan con prioridades desde 16 hasta 31. AI igual que las prioridades de los hilos, existen otros atributos en el objeto hilo que permiten al sistema operativo (y particularmente a los subsistemas de entorno) controlar los hilos que crea. Por ejemplo, el atributocontextodehilocontienetodo lo queelsistemaoperativonecesitasaberparacontinuarla ejecución de un hilo después de que haya sido interrumpida (a saber, los valores almacenados en los registros del procesador yen las pilas modo kernel y modo usuario del hilo).AI suspender un hilo, alterar su contexto modo usuario, y después restaurar el hilo,un subsistema de entorno puede modificar el comportamientodelhilo o comenzarsuejecución en unlugardiferentedeaquél enquefue suspendida.(Los depuradores de modo usuario pueden utilizar también esta característica para controlar la ejecución de los hilos). "Alertar un hilo", es otro servicio proporcionado por los objetos hilo, es una característica que permite a un subsistema de entorno u otras partes del sistema operativo, avisar asincrónicamente a algún hilo de que debe ejecutar un procedimiento especial.Un hilo que espera ser alertado puede llamar un a servicio para comprobarsi hay pendiente una alerta. El puerto de terminación de un hilo es similar a una excepción de proceso y alos puertos de depuración. El puerto de terminación permite que un subsistema de entorno sea avisado cuando termina un hilo en uno de sus procesos clientes. Puede entonces actualizar la información que mantenga sobre el sobre el procesoen el cual reside el hilo. El servicio actualizar hilo permite a un hilo adquirir rápidamente un handle a 31 hilo o sí mismo, sin abrir uno específicamente. Puede utilizar el handle, por ejemplo, para recuperar información sobre éI mismo, tal como su tiempo de ejecución total, su prioridad de ejecución actual, y su afinidad con el procesador. Sincronizacidn Cuandoseejecutaunaaplicaciónconcurrente,sushilosrequierenamenudounamanerade comunicarseentreellosparacoordinarsusactividades.Elpasodedatosatravésdevíasde comunicación(pipes)es un ejemplo de comunicación. Sin embargo, la forma más simple de comunicación se denomina sincronización. La sincronización se refiere ala habilidad de un hilo de parar voluntariamente su ejecución y esperar hasta que otro hilo lleve a cabo alguna operación. Todos los sistemas operativos con multiproceso o multitarea deben proporcionar alos hilos una manera de esperar a que otro hilo haga algo (por ejemplo, liberar una unidad de disco, o terminar de escribir en un bufferde memoria compartida). El sistemaoperativodebetambiénpermitirqueunhiloindiqueaotroshilosquehaterminadotal operación. Una vez avisado, un hilo que esperaba puede continuar su ejecución. En el ejecutor de Windows NT, estas características de espera e indicación están implementadas como los que un hilo parte de la arquitectura de objeto. Los objetos sincronización son objetos del ejecutor con puede sincronizarsu ejecución. Los objetos sincronización incluyenlos siguientes: Objetos proceso Objetos hilo Objetos archivo Objetos evento Objetos parde eventos Objetos semáforo Objetos timer (temporizador) Objetos mutante Los primeros tres objetos listados sirven a otros propósitos además la desincronización, pero los últimos cinco objetos sólo existen para soportar dicha sincronización. Juntos, estos objetos del ejecutor permiten a los hilos coordinar sus actividades con una variedad de sucesos del sistema, aplicando diferentes reglas según las situaciones. los dos estados posibles siguientes: el En un momento dado, un objeto sincronización está en uno de estado señalado y el estado no señalado. El estado señalado se define de manera diferente según los objetos. Un objeto hilo está en el estado no señalado durante su existencia, y el kernel de NT lo coloca en el estado señalado cuando termina. De forma parecida, el kernel configura un objeto proceso en el estado señalado cuando termina el último hilo del proceso. En contraste, el objeto Procesos e hilos timer, como un cronómetro, es configurado para "dispararse" en cierto momento,y cuando el tiempo expira, el kernel lo coloca en el estado señalado. los serviciosdeesperadelsistema Parasincronizarseconunobjeto,un hilo llama aunode proporcionadospor el administradordeobjetos,pasandounhandlealobjetoconelquequiere sincronizarse. El hilo puede esperar a uno o varios objetos, y puede también especificar que su espera deberíasercancelada si nofinaliza enunacantidad de tiempodeterminada.Siempreque el kernel coloca un objeto enel estado señalado, comprueba si hay algún hilo que esté esperandoal objeto. Si es así, el kernelliberauno o m& de los hilos de suestadodeesperaparaquepuedancontinuar 32 ejecutándose. AI elegir un mecanismo de sincronización, un programa debe tener en cuenta las reglas que gobiernan el comportamiento de los distintos objetos sincronización. El que la espera de un hilo finalice cuando un objeto sea puesto en estado señalado, varía con el tipo de objeto que elhilo está esperando, como ilustra latabla Tipo de objeto Se coloca en señalado cuando Efecto sobre los hilos que esperan el estado Proceso Termina iiltimo el hilo Todos liberados Hiloliberados Todos hilo Termina el Fichero Se completan las operaciones de US Evento Elestablece hilo evento Todos elliberados Par deeventcs El cliente o el hiloservidor Otro hilodedicado dedicados establecen el evento liberado SemAforo LasemAforo cuenta del Todos liberados llega a cero Timer alcanza Se tiempo el establecida Todos o expira el intervalode tiempo Mutante Elmutante libera hilo al T ~ O liberados S liberados Un liberado hilo .. Tabla. Definiciones del estado señalado Cuando un objeto se coloca en el estado señalado,los hilos que esperan son generalmente liberados de susestadosdeesperainmediatamente.Porejemplo,unobjetoeventoseutilizaparaanunciar la ocurrencia de algún evento. Cuando el objeto evento se coloca en el estado señalado, todos los hilos que esperan a ese evento son liberados. La excepción es cuando un hilo está esperando a más de un objetoalmismotiempo; tal hilotendríaquecontinuaresperandohastaque los objetosadicionales alcanzaran el estado señalado. los En contraste con el objeto evento, un objeto mutante (que se hace visible como un objeto mutex para programadoresdeWin32)tieneundominioasociadocon él. Seutilizaparaconseguiracceso mutuamenteexcluyenteaunrecurso,y sólo un hilo en un momento determinado puede sostener el lo colocaenelestadoseñaladoyentonces mutante.Cuandoselibera el objetomutante,elkernel selecciona uno de los hilos que esperan para que se ejecute. El hilo seleccionado por el kernel adquiere el objeto mutante, yel resto de los hilos continúan esperando. los programadores de Las semánticas de sincronización del ejecutor de Windows NT son visibles para Win32atravésde las funcionesdel API WaitForSingleObjectOy WaitForMultipleObjectsQ, queel subsistemaWin32implementaalllamaraserviciosdelsistemaanálogossuministradosporel administrador de objetos de Windows NT. Un hilo de una aplicación Win32 puede sincronizarse con un objeto proceso, hilo, evento, semáforo, mutex,o archivo de Win32. Alertas y llamadas deprocedimientos asíncronos En algunas situaciones, es útil permitir a un hilo que notifique asincrónicamente a otro hilo que pare 33 lo que esté haciendo. Esta operación, denominada alerta en el ejecutor de Windows NT, está estrechamente relacionada con la sincronización. Supóngase que una aplicación de base de datos está respondiendo a una operación de consulta. Podría o en uno remoto. Para que no no saber si los datos que necesita están disponibles en un ordenador local haya posibilidad de fallar, poneen marcha dos hilos; uno busca los datos localmente, y el otro busca los datos en la red. Tan pronto como un hilo encuentra los datos, alerta al otro hilo. En respuesta, al hilo alertado detienelo que está haciendo y regresa, listo para trabajar en una nueva tarea. Lacapacidad de alertano esde uso general enWindowsNT, exceptoencombinaciónconotro mecanismo de notificación asíncrona, denominado llamada de procedimiento asíncrono (APC, asynchronous procedure calO. De vez en cuando, el sistema operativo necesita notificar a un hilo que debe llevar a cabo alguna acción. A veces, el hilo debe hacer el trabajo después de que ocurra un evento. Por ejemplo, un usuario puede decirle a Windows que le envíe un mensaje para recordarle la horadeunareuniónprogramada.EnWindowsNT,estetipodenotificaciónasíncrona es ejecutada empleando una APC en modo usuario (es decir, el subsistema Win32 llama al ejecutor de Windows NT para establecer un contador y proporciona un puntero a un procedimiento (una APC) que enviará un mensaje al usuario. Cuando expira el tiempo, el ejecutor de Windows NT insta aun hilo del subsistemaWin32 a que ejecute el procedimientoAPC. Posteriormente, el hilo de Win32 prosigue con lo que estaba haciendo. Aunque algunas operaciones asíncronas son generadas por los programas de modo usuario,la mayoría son generadas por el sistema operativo, y particularmente por el sistema de E/S de Windows NT. Dicho sistema es asíncrono, lo cual significa que el que llama puede poneren marcha una operación de E/S y luego hacer otro trabajo mientras un dispositivo completa la operación. Cuando el dispositivo termina de transferir los datos, el sistema de E/S debe interrumpir lo que quiera que el hilo solicitante estuviera haciendo y copiar los resultados de la operación de E/S al espacio de direcciones del hilo.El sistema de E/S utiliza unaAPC de modo kernel para llevar a cabo esta acción. Las APC de modo kernel y modo usuario varían en diversos aspectos, pero hay una diferencia que es especialmente notable. UnaAPCde modo kernel puede interrumpir la ejecución de un hilo de modo usuario en cualquier momento y obligarle a ejecutar el procedimiento. Ordinariamente, esto sucede de maneratransparenteparaunaaplicación.Ocurreunainterrupciónsoftware y, comounainterrupción hardware, el sistema simplemente "roba" el hilode la aplicación durante un breve periodo de tiempo y lo utiliza para ejecutarel procedimiento APC. UnaAPC de modousuario,por el contrario, sólo puedeserentregadaenpuntosdecontrol determinados, cuando el hilo que la solicitó está preparado para ejecutarla. Windows NT suministrados maneras en las que un hilo puede controlar cuando recibe una notificación asíncrona de modo usuario (una alerta o una APC de modo usuario).El hilo puede, o llamar a un servicio que su espera nativo para comprobarsi ha sido alertado, o esperar a un handle de objeto, especificando puede ser interrumpida por una alerta. En cualquiera de los casos, si una APC de modo usuario está pendientedelhilo, el kernel de Windows NT lo libera,yelhiloejecuta el procedimiento.Elkernel entonces reanudala ejecución delhilo desde el punto en el cual fue interrumpido. Las alertas y las APC del API de Win32 son visibles a través de sus funciones de E/S extendidas (sólo Windows NT). Las rutinas del API ReadFileExO y WriteFileExO permiten a un hilo leer o escribir en un archivoasincrónicamente,proporcionandounafuncióndeAPCque el hilo ejecutarádespuesde WaltForMuItipleObjectsExQ completar la operación de E/S. LasfuncionesWaitForSingleobjectExQy permiten al hilo esperar en un estado de alerta, en algún punto, tras resolver la llamada de E/S. El subsistema POSIX no proporciona las características de APC a las aplicaciones POSIX, pero utiliza las APC de modo kernel para emular la liberación de señales POSIX en procesos POSIX. Deforma similar, subsistemas de entorno futuros podrán utilizar las APC para implementar otras características de 34 notificación asíncrona. El asuntodelasAPCreapareceendiscusionesposterioressobreelkernelde Windows NT, que controla el procesamiento de las APC y el sistemaE/S, de que las utiliza mucho. Estructura de procesos Losprocesossonestructurasdinámicas,creadasyeliminadasdurantelaejecucióndelsistema operativo. Un proceso crea otro, y éste puede a su vez crear otros. El término estructura de proceso hacereferenciaacómounsistemaoperativocrea,manejaydescartaprocesosehilos,ycómoun proceso se relaciona con otros durante su existencia. los LosprogramadoresqueescribenaplicacionesparaWin32,MS-DOS,OS/2,0POSIX,nuncaven procesosehilosnativosdeWindowsNT. El subsistemaWin32yotrossubsistemasescudana los programadores de ellos, creando entornos a medida en los cuales un programador de Win32 sólo ve procesos tipo Win32, un programador de POSIX sólo ve procesos tipo POSIX, etc. Sin embargo, son las características internas de la estructura de procesos del ejecutor de Windows NT las que permiten que estos entornos dispares coexistan en el mismo sistema operativo. Requisitos del subsistema de entorno Unade las principalestareasdeunsubsistemadeentornodeWindowsNTesemularelAPIque esperan las aplicaciones cliente del subsistema (los API de Win32 o POSIX, por ejemplo). Otra función importante es implementar las estructuras de proceso requeridas por dichas aplicaciones. Mark Lucovsky y Steve Wood, que diseñaron el POSIX original de Windows NT y los subsistemas de Procesos e hilos entornodeOS/2,consideraroncuidadosamente las característicasque éstos y futuros subsistemas requerirían para emular sus respectivos API. Ellos identificaron las siguientes características relativas a los procesos, como las que podían ser requeridas por un entorno típico: Creación y terminación de procesos e hilos Registro y mantenimientode las relaciones entre procesos Realización de operaciones (locales y de red) en nombre de un proceso cliente Lectura, escritura y otras acciones a llevar a cabo en el espacio de direcciones de un proceso cliente Detención de un hilo de cliente, posibilidad de alteración de su contexto de modo usuario y restauración del mismo Captura y manejo de excepciones generadas por procesos cliente La creación de un proceso, primer ítern de la lista, es una operación muy corriente en un subsistema, e ilustra cómo los subsistemas de entorno realizan su trabajo utilizando servicios de proceso nativos. La figura 4-77 representa la relación entre la creación de un proceso desde un programa de aplicación y la creación de un proceso del ejecutor de Windows NT. Unaaplicacióncliente(Win32,POSIX o OS/2enesteejemplo)creaunprocesoutilizandoelAPI adecuadoparasuentorno.Lainvocacióna la creacióndeunprocesoestransmitidaatravésdela característica de paso de mensajes del ejecutor de Windows NT al servidor adecuado, el cual llama al administrador de procesos para crear un proceso nativo. Tras crear un proceso nativo, el administrador de procesos devuelve un handle a un objeto proceso. subsistema de entorno toma el handle y construye el valor de devolución adecuado esperado por la aplicación cliente original..€n la figura 4-72 se muestra lo que devuelve cada subsistema. El Nótese que un subsistema de entorno debe hacer algún trabajo adicional después de recibir un handle de proceso del administrador de procesos y antes de devolver un resultado a la aplicación cliente. Por ejemplo, el subsistema puede llamar al administrador de procesos otra vez con el fin de crear un hilo 35 para el nuevo proceso. Como muestra la figura , diferentes entornos de sistemas operativos devuelven diferentes resultados cuando se crea un proceso. De forma parecida, los sistemas operativos, varían en cuanto a las reglas y convenciones que adoptan para la administración delos procesos. Una de las diferencias fundamentales entre los entornosdesistemaoperativodisponibles en Windows NT es sucapacidadparasoportar procesosMultihilo.Win32yOS/2,porejemplo,permitenmúltipleshilosporproceso,mientrasque POSIX, MS-DOS, y el entorno de16 bits de Windows Otro ejemplo de las diferencias entre entornos de sistema operativo es la forma en que los procesos de cada subsistema se relacionan unos con otros. POSIX y OS/2,porejemplo,organizansusprocesos clienteenjerarquías, o árbolesproceso.Cadaunodeéstoscreaunprocesoinicialquecrea los denominados procesos hijo.Los procesos hijos, a suvez, crean sus propios procesos hijo. Exceptopara el procesoinicial,cadaprocesotieneunpadre características. La figura4-1 3 ilustra estas relaciones. del cualheredaciertosrecursosy POSIX y OS/2 utilizan las relacionesentre sus procesos cliente para manejarlos. Por ejemplo, cuando un proceso POSIX o un proceso OS/2 finaliza, el sistema Aplicación Creaci6n de un proceso . Creación de un proceso El S.O. operativo sigue la pista y finaliza todos los procesos que cuelgan de él. Además, un sistema operativotipoPOSIXmantieneotrasclasesderelacionesentreprocesos,incluyendogruposde procesos (colecciones de procesos relacionados) y sesiones (colecciones de grupos de procesos). Los 36 sistemas POSlX implementan una detallada semántica de control de procesos procesos y sesiones, que no se contempla en otros sistemas operativos. relativa a los grupos de El ejecutor de Windows NT debe permitir que cada uno de sus subsistemas de entorno soporten las relaciones de procesos que requieran. Aplicación Figura Retorno tras la creación de un proceso y elusodeprocesosdeunÚnicohilo Ademásde las diferenciasenlaagrupacióndeprocesos procesos Multihilo, los subsistemas de entorno difieren en las reglas que emplean para crear nuevos procesos.La tabla 4-4 detallaalgunasde las diferenciasentrelasestructurasdeprocesodetres entornos de sistema operativo soportados por Windows NT. Jerarquía de proee;sos de OS2 o POSIX Windows (32 bits) POSIX os12 Figura Jerarquía de procesos de OS/2 o POSlX 37 o Tabla. Semánticas de la creación de procesos Continuación Windows (32 bits) X¡lOS POSIX 0512 Crea un hilo y Crea un hilo pero Crea un hilo y soporta multihilo no soporta multihilo soporta multihilo Tabla. Continuación Comosepuedever, la jerarquíasdeproceso, la inicializacióndelespaciodedirecciones, los diferentes entornos. identificación de proceso varían en y la Aunque algunas de las diferencias parecen secundarias, el administrador de procesos debe soportar todos los entornos igualmente bien y debe permitir que sus diferentes estructuras de proceso coexistan sin conflicto. 38 Estructura de proceso nativo AI diseñar la estructura de proceso nativo de Windows NT, los desarrolladores rápidamente se dieron cuentadequeincluso si fueraposible,proporcionartipos múltiples deestructurasdeprocesoenel sistema operativo básico daría como resultado un sistema enormemente complejo caótico. y Afortunadamente,lamayoríade los detallespertenecientesalaestructuradeprocesonoson fundamentales para el funcionamiento del sistema operativo subyacente. Las estructuras de proceso podían ser implementadas enlos subsistemas de entorno de modo usuario fuera del ejecutor de Windows NT. Para llevar a cabo esto, la estructura de proceso del ejecutor no hace cumplirningúnconjuntodereglasquepuedaexcluiraotroconjuntodereglas.Enlugar deeso, suministraunconjuntobásico demecanismosque los sistemaspuedenutilizarcomofundamentou origen para implementar sus propias estructuras de proceso. Como ejemplo de esta idea, la tabla 4-5 detalla el flexible proceso de creación de reglas del ejecutor de Windows NT. El ejecutor contempla la creación de un proceso como la creación de un objeto, nada más. Cuando el administrador deprocesosfinaliza la creacióndeunnuevoproceso,devuelveelhandledelnuevo proceso al subsistema de entorno. El subsistema es responsable de llamar al administrador de procesos para crear un hilo en el proceso. El administrador de procesos de Windows NT no registra qué procesos crearon otros procesos. Por lo tanto, para emular las relaciones de procesos únicas, requeridas por sus aplicaciones, cada subsistema de entorno mantiene registros de los procesos cliente que ha creado y las relaciones que existen entre ellos. Herencia El que llama especifica un padre desde el cual el nuevo proceso hereda los handles de objeto que fueron abiertos con el atributo de herencia Inicialización del lnicializa el espacio de direcciones del nuevo procesó espacio de con un programa ejecutable o como una copia del direcciones espacio de direcciones del padre Identificación de Devuelve un handle de objeto de Windows NT proceso para el nuevo proceso Hilos No crea un hilo en el nuevo proceso automáticamente, pero soporta Multihilo Tabla 4-5. Semánticas de creación de procesos nativos de Windows NT Administración de procesos cliente Un proceso nativo de Windows NT debe recibir un conjunto mínimo de recursos, además de un hilo, para poder llevar a cabo cualquier trabajo. Volviendo a la figura 4-2, se observa que un proceso tiene un Token de acceso, diversos contenidos en el espacio de direcciones, y handles a objetos. Estos recursos, más cuotas específicas de proceso y otros parámetros, son en su totalidado en parte heredadas de otro proceso (un "proceso padre"). El término "proceso padre" se encierra entre comillas debido ala noción única que tiene Windows NT de un padre asignable. Considérese ahorafigura la 39 el ejecutor de “r’q . . Asignación de un procesopadre En esta figura,una aplicación POSlX llamaal subsistema POSlX para crearun nuevo proceso POSIX.El subsistema, también un proceso, llama al ejecutor de Windows NT para crear un proceso nativo. Debido a que el subsistema POSlX está actuandoen nombre de la aplicación cliente, el nuevo proceso debería heredar sus recursos del cliente, no del subsistema. Lo mismo ocurre en aplicaciones Win32 y OS/2 al crear nuevos procesos. Para permitir a los subsistemas de entorno emular la semántica de herencia de procesosquesusaplicacionesrequieren,elservicio de creacióndeprocesosdelejecutorpermite opcionalmente al que llama(el subsistema en este caso) especificar el padre del nuevo proceso. El nuevo proceso nativo de Windows NT hereda del padre el Token de acceso, los límites de cuota, la prioridad base,y la afinidad por defecto con el procesador. También hereda los handles de la tabla de objeto del padre que fueron abiertos con una designación de herencia. El espacio de direcciones del padre también puede ser heredado si el subsistema lo solicita. El subsistemaPOSlXutilizaestacaracterísticaparaemular la funcióndel APIdePOSlXdenominada forkQ, mientras que los subsistemas Win32 y OS/2 especifican que una imagen ejecutable sea cargada en el espacio de direcciones del nuevo proceso. Antes de que un nuevo proceso pueda ejecutarse, debe recibir un hilo. Para una aplicación Win32 u OS/2, la creación de un hilo no es considerada una operación independiente de la creación de un nuevo de creación de proceso. Las aplicacionesWin32 y OS/2 esperan queel hilo esté allí listo cuando la rutina procesosretorne.Sinembargo,enWindowsNTnosecreaelhiloautomáticamente,asíque los subsistemas deben llamaral administrador de procesos de nuevo para crear un hilo en el nuevo proceso. AI crear un hilo, el administrador de procesos permite que los subsistemas especifiquen el proceso al cual pertenece el nuevo hilo. Esto permite al subsistema Win32, por ejemplo, crear un proceso para uno de sus clientes y luego situar unhilo en el espacio de direcciones de ese cliente. Elnuevohilocomienzaejecutándoseen la prioridadbasedelprocesocliente,en el conjunto de procesadores listados en la afinidad con el procesador del cliente, y bajo las restricciones del Token de acceso del Además de la creación de procesos e hilos en nombre de otros procesos, el administrador de procesos de Windows NT proporciona características que permiten que un subsistema se conecte al espacio de 40 direcciones de un cliente y lea o escriba en éI, reserve y libere la memoria virtual de un cliente, y que suspenda los hilos de un cliente, altere los estados de ejecución de los hilos, y los vuelva a pone en marcha. El subsistema puede también duplicar handles de objeto desde su propia tabla de objetos a la tabla de objetos del cliente. Además, puede finalizar los hilos de un cliente así como un proceso cliente. Estas potentes características proporcionan a los subsistemasdemodousuariouncontrolqueen la mayoría de los sistemas operativos está limitado por el código del sistema operativo de modo kernel. Dan libertad a los subsistemas de entorno para controlar sus aplicaciones cliente y para establecer un entorno de sistema operativo para ellas que difiera del entorno nativo del ejecutor de Windows NT. 225933 Prevención de malos usos La creación de procesos e hilos en nombre de otro proceso, la lectura y escritura en la memoria virtual de otro proceso, y el control de los hilos de otro proceso, son todas operaciones que no deben hacerse indiscriminadamente. Para prevenir un mal uso, el sistema de seguridad de Windows NT (y concretamente sus mecanismos de protección de objetos) asegura que tales operaciones con controladas cuidadosamente. los subsistemasdeentornodeWindows NT,sonsimplementeprocesos Ensunivelmásbásico, ordinarios. Como otros procesos, determinan qué derechos de acceso están garantizados losaprocesos queelloscrean.Debidoaqueprácticamente todos los procesosdemodousuariosoncreadospor subsistemas de entorno, los subsistemas controlan las acciones de todos los procesos de usuario del sistema. Por ejemplo, al crear un proceso cliente, un subsistema deniega al cliente la posibilidad de no tener en cuenta al subsistema y finalizar porsí mismo llamando a un servicio nativo de Windows NT. Si no fuera así, el proceso podría dejar las estructuras de datos globales del subsistema en un estado inconsistente, desbaratando posiblemente otros procesos que estuvieran bajo el controlde ese entorno. El subsistema previene de este acciónal no dar al nuevo proceso acceso de borrado de su propio objeto proceso en la lista de control de acceso del objeto (ACL). Sin el acceso de borrado, el proceso nunca puede abrir un handle de objeto que le permita terminar por sí mismo, y el sistema de seguridad no permitirá que el serviciode terminación logresu objetivo, a menos que se le pase un handle válido. Debido a la forma en que trabaja la seguridad de objetos, a no ser que un subsistema explícitamente confiera una característica a un proceso cliente, éste no puede adquirirla. De este modo, el diseñadorde un subsistema, no necesita pensar en todas las acciones erróneas que un proceso de usuario podría hacer para prevenirlas. En lugar de eso, es suficiente decidir tan sólo lo que el proceso debería poder hacer, y garantizar al cliente estas capacidades. En general, esto significa que ningún proceso de modo usuarioordinariopuedellamarconéxitoaserviciosnativosdeWindowsNT. Un procesodemodo API proporcionadas por el subsistema que lo creó. usuario sólo puede llamar a las funciones del Estos mismos mecanismos también evitan quelos procesos de modo usuario finaliceno manipulen otros procesos. Un proceso sólo puede llamar a aquéllas funciones del API disponibles en su entorno (Win32o POSIX, por ejemplo) para manipular a otros procesos. Además, la capacidad que tiene un proceso de llamar incluso a aquellos servicios está restringida por sus derechos de acceso los a objetos nativos que estaría afectando. Una vez más, al nodar al proceso cliente derechos de acceso para objetos nativos, un subsistema de entorno puede prevenir al cliente de un mal comportamiento. La lo garantiza. arquitectura de seguridadde Windows NT, trabajandosin descanso en modo background, Conclusiones Losprocesossonunadivisiónfundamentaldeltrabajoy los recursos en WindowsNT.Permitenal sistemaoperativodividir su laborenunidadesfuncionales,paralograrunautilizacióneficientedel los procesos enunidadesejecutablesdenominadashilos.Loshilos procesador.WindowsNTdivide 41 permiten que un Único proceso ejecute concurrentemente diferentes partes de su programa y logre una mejor utilización del procesador, especialmente en ordenadores multiprocesador. Unprocesoconstadeunespaciodedireccionesy Comparten cuando se ejecutan. un conjunto de recursosquetodossushilos Laestructuradeprocesosdelejecutor deWindowsNTesprimitivayflexible,permiteque los subsistemas deentornoconstruyancualquiersemánticaquerequieranparadarsoporteasus aplicaciones clientes. Tienen libertad para establecer jerarquíasde procesos, implementar una herencia de procesos, e inicializar el espacio de direcciones de sus clientes cuando vean la necesidad. Pueden tambi6n controlar sus procesos cliente de otras formas, llevando a cabo acciones en nombre de sus clientes, y leyendo y escribiendolaen memoria virtual de sus clientes. Todas estas características son seguidas por el sistema de seguridad, que comprueba los derechos de acceso que tiene un proceso sobre los objetos que está intentando manipular antes de permitir tales operaciones. la El prbximo capítulose centra conmás detalle en la estructura delos subsistemas de Windows NT y en característicadepaso de mensajesde la LPC, quepermitequeprocesosclienteysubsistemasse comuniquen unos con otros. 42 MANEJO DE MEMORIA EN WINDOWS NT Enalgúnmomento, los computadorasfueronsistemasdeunÚnicoprocesoyunÚnicohilo.Los programadores, tanto los experimentados como los aspirantes, tenían que reservar tiempo para trabajar desdeunaconsoladelsistema.Elprogramadorera el sistemaoperativo,responsabledecargar manualmente un programa en la memoria utilizando conmutadores, cinta de papel,o tarjetas perforadas. Unavezque el programasehabíacargado,elprogramadorintroducíaunadireccióndecomienzoy dirigía el procesador a ella para comenzar la ejecución. No era posible cargar y ejecutar más de un programa a la vez. No es necesario decir que el procesador permanecía ocioso gran parte del tiempo. Enlatecnologíadesistemasoperativos, el avancehasignificadoencontrarmanerasdemantener ocupado al procesador el mayor tiempo posible, y de este modo, conseguir que haga más trabajos. Los sistemasmultitareacargan múltiples programasenmemoriaymantienenalprocesadorocupado dedicándole a todos ellos. Cómo el sistema operativo distribuyela memoria disponible entre los procesos a la vez que protege el código y los datos de cada proceso frente a los otros procesos, es el tema de la administración de memoria, y en el caso de Windows NT, la administración de la memoria virtual. la En los primeros días de la computación, no era posible ejecutar un programa que fuera mayor que memoria física de la computadora. Más tarde, los programadores comenzaron a escribir overlays, que son programas que pasan parte de su códigoal disco y cargan otras partes del programa en la memoria. Cuando se necesitaba el código del disco, el programador lo volvía a cargar en memoria, cubriendo el código que ya no se utilizaba. Aparte de ser tediosos de programar y difíciles de mantener y actualizar, los overlaysrequeríanquecadaaplicaciónrecrearaelcódigoqueintercambiabaelcontenidode la memoria con el disco. La memoria virtual (VM) le quitó al programador la responsabilidad de la administración de memoria se la confirió al sistema operativo. La VM es un sistema centralizado para hacer el intercambio (swapping) de los contenidos de memoriaal disco cuando la memoria se llena. Permite que los programadores creen y ejecuten programas que requieran más memoria de la que está presenteensuscomputadoraes,ysehaconvertidoenlatécnicadeadministracióndememoria los sistemasoperativosmássimples. El componentedememoria estándarparatodos,exceptuando virtual del ejecutor de Windows NT, el administrador de VM, es el sistema de administración de memoria nativo de WindowsNT. Cualquierade las características deadministracióndememoriaqueunsubsistemadeentorno proporciona están basadas en el administrador de VM de Windows NT. Fue diseñado e implementado por Lou Perazzoli, que también era el coordinador de ingeniería y líder de proyecto de Windows NT. los siguientes objetivos para el administrador de Junto con otros miembros del equipo, Lou estableció VM: Hacerlo tan portable como fuera posible. Hacer que trabajara de manera fiable y eficiente en todos los tamaños de aplicación, sin que fuera o de un administrador. necesaria una sintonización por parte de un usuario Proporcionar características de administración de memoria modernas, tales como archivos mapeados, memoriadeescritura-sobre-copia,ysoportedeaplicacionesconespaciosdedireccionesgrandesy posiblemente esparcidos. Permitir a los procesos reservar y administrar memoria privada. Proporcionarmecanismosquesoporten los subsistemasdeentorno,talescomo permitir queun subsistema (con los derechos de acceso apropiados) administrela memoria virtual de un proceso cliente. 43 Hacer un balance entre las necesidades del multiprocesamiento y la velocidad del acceso a memoria. (Por ejemplo, proteger las estructuras de datos utilizando múltiples niveles de cierres puede incrementar el paralelismo del administrador de VM, pero cada cierrecrea una sobrecarga adicional). La memoria tiene diversas características: una estructura física,una estructura lógica, y una manera en la cual el sistema operativo traduce (o no traduce) de una estructura a otra. La memoria física está organizadacomounaseriedeunidadesdealmacenamientode 1 byte.Losbytessenumeran comenzando con el O hasta la cantidad de memoria disponible en la configuración del sistema (menos I ) , como se muestra enla figura Fig. OOBFFFFFh OOBFFFFEh 003FFFFDh OOBFFFFCh 0000001 1 h OOOOOOlOh OOOOOOOFh 0000006Eh ooooóóosh 00000008h 00000003h 00000002h O0000001 h OOOOOOOOh Espacio de direcciones físicas Este conjunto de números (mostrados aquíen forma hexadecimal) abarca el espacio de direcciones físicas de la máquina.2 La memoria lógica, comúnmente Ilambda memoria virtual, es la forma en la que un programa ve la la estructura de la memoria, y en los sistemasoperativosmodernosraramentesecorrespondecon memoria física. Los sistemas de memoria virtual normalmente adoptan, o una apariencia segmentada de memoria o una apariencia lineal. Los primeras computadoras es personales basados en los componentesdeIntel,desde el Intel 8086 hastaelIntel 80286, utilizan unmodelosegmentado.Un sistema de direccionamiento segmentado dividela memoria física en unidades de direcciones contiguas (normalmente)denominadassegmentos. Una direccióntípicaincluye el número de segmento y un desplazamiento (offset) dentro del segmento. En contraste, la mayoría de los procesadores RISC, e incluso los recientes procesadores ClSC de Intel, soportan una arquitectura de direccionamiento lineal. El direccionamientolinealsecorrespondemáscon la estructurafísicarealde la memoriaqueel direccionamiento segmentado. Las direcciones de un esquema lineal comienzan en O, y llegan, byte a byte, hasta el límite superior del espacio de direcciones. Un espacio de direcciones virtuales es un conjunto de direcciones de memoria disponibles para que la utilicen los hilosdeunproceso.Cadaprocesotieneunespaciodedireccionesvirtual Único, generalmente mucho más grande quela memoria física. Aunqueel número de direcciones físicasde un computadora particular está limitado por la cantidad de memoria que tiene el computadora (en la que cada byte tiene una dirección única), el número de direcciones virtuales está limitadosólo por el número de bits deunadirecciónvirtual.Cada BIT puedeestará "1" o a "O"; deestemodo,porejemplo,el procesador MIPS R4000, que tiene direcciones de32 bits,3 ostenta un espacio de direcciones virtual de 44 232, o cuatro billones de bytes (4 gigabytes), como ilustra la figura Siguiente. La discrepancia entre un espacio de direcciones físicas y un espacio de direcciones virtuales exige las dos tareas siguientes de un sistema de memoria virtual: Traducir, o mapear, un subconjunto de las direcciones virtuales década proceso a localizaciones de memoria física. Cuandoun hilo leeo 2. Tambib existenmáquinasorientadasapalabra,peroestecapítulo máquinas orientadas a byte. sólo hacereferenciaalas 3. El procesador MIPS R4000 realmente proporciona direccionesde 64 bits, pero permite que un sistema operativo utilice direccionesde 32 o 64 bits. La primera versiónde Windows NT utiliza direcciones de 32 bits para ser compatible con el procesador Intel 386. -Jdo Dl-#* 1- eso bytrr FFFFFFFFh FFFFFFFEh FFFFFFFDh FFFFFFFCh FFFFFFF4h FFFFFFF3h FFFFFFF2h FFFFFFFlh 4-k 003FFFFFh OO3FFFFEh 003FFFFOh 003FFFFCh = 4 M6 __~- 0000001 1 h O O O O O O l Oh OOOOOOOFh OOOOOOOEh OOOOOOOOh OOOOOOOCh OOOOOOO6h OOOOOOOAh OOOOOOOeh 00000008h 00000003h 00000002h 00000001h OOOOOOOOh Figura. Espacio de direcciones virtuales lineal escribe en su espacio de direcciones virtuales,el sistema de memoria virtual (parte del cual puede estar implementado en hardware) utilizaba dirección virtual para encontrar el espacio físico correcto antes de transferir los datos. 45 Pasar algunos de los contenidos de memoria al disco cuando la memoria está sobre-comprometida, es decir, cuando los hilos del sistema tratan de utilizar más memoria de la que está físicamente disponible. La primera tarea, pasar las direcciones virtuales a direcciones físicas; permite que un programa sea fácilmente colocado en memoria cuando se está ejecutando. El sistema de memoria virtual mueve partes del programaal disco y las vuelve a traer la a memoria, posiblemente colocándolas en un lugar diferente. Después actualiza las correspondencias entre memoria lógica y memoria fisica, para apuntar a la nueva localización. La segunda tarea, trasladar los contenidosdememoriaaldisco,esconsecuenciade la primera. Claramente, es imposible para un proceso, direccionar4 GB de memoria cuando sólo hay 4 MB de memoriafísicapresentes en la máquina.Lossistemasdememoriavirtuallogran esta hazaña utilizandolaunidad de discocomo"memoria"backup(denominadaalmacén de apoyo).Cuando la memoria física está sobre-comprometida, el sistema de memoria virtual selecciona los datos almacenadosenmemoriaquevanasertrasladados,yentonceslostransfieretemporalmentea un archivo del disco. Cuando los datos son requeridos de nuevo por un hilo que se está ejecutando, el sistema de memoria virtual vuelve a transferirlosla amemoria. Mover los datos de un lado para otro entre la memoria y el disco podría ser una tarea inaceptablemente lenta si el administradordememoriavirtualmovieraunbytecada vez.Por lo tanto, el espaciode direccionesvirtualesestádivididoenbloquesdeigualtamañodenominadospáginas.Igualmente, la memoria física está dividida en bloques denominados marcos de página se queutilizan para contener las páginas. Cada proceso tiene un conjunto de páginas de su espacio de direcciones virtuales que están presentes enla memoria físicaen un momento dado. Las páginas que están presentes enla memoria física y están inmediatamente disponibles se denominan páginas válidas. Las páginas que están almacenadas enel disco (o que están en memoria pero no están . inmediatamente disponibles)se denominan páginas inválidas, como ilustra la figura Figura 46 Paso de paginasvirtuales a marcos de pkgina físicos Cuando un hilo en ejecución accede a una dirección virtual de una página marcada como "inválida", el procesador emite un bloqueo de sistema denominado falta de página. El sistema de memoria virtual localiza la página requerida en el disco y la carga en un marco de página libre de la memoria física. Cuando disminuyeel número de marcos de página disponibles,el sistema de memoria virtual selecciona marcos de página a liberar y copia sus contenidos al disco. Esta actividad, conocidacomo paginación, es imperceptible para el programador. Las faltas de página pueden ser operaciones muy "caras", es decir, pueden requerir muchos ciclos de procesador para completarse. Sin embargo, las páginas de gran tamaño contrarrestan este coste, puesto que se cargan más datos en memoria por cada falta de página, y por lo tanto, tienden a ocurrir menos faltas de página. (Por supuesto, una página demasiado grande puede tener como consecuencia que se estén cargandomás datos de los necesarios, así que hay que llegar a una solución de compromiso entre tamañosdepáginagrandesypequeños.) El númerodebytesde una páginaesgeneralmente una potencia de 2, y a menudo est& determinado por el hardware. Windows NT adoptael tamaño de página establecido por el procesador Intel 386,queesde212,04 KB. (El procesador MIPS R4000permite al software determinar el tamaño de la página.) los datos hacia y desde el Aunque trasladar las direcciones virtuales a direcciones físicas y transferir almacén de apoyo son las tareas principales de un sistema de memoria virtual, debe realizar también otras funciones,como son: Permitir quedos procesos compartan memoria fácil y eficientemente. A menos que se indique otra cosa, cuando este capitulo se refiere al Intel 386, se debe suponer que la el AMD386de informaciónesigualmenteválidaparaprocesadorescompatibles386(talescomo Advanced Micro Devices) y paralos procesadores Intel posteriores compatibles (comoel Intel 486). Proteger tantola memoria compartida como la privada, de accesos no autorizados. Si se ejecuta en computadora es multiprocesador, comoes el caso de Windows NT, debe responder a faltas de página de más de un hilo a la vez. 47 Características del modo usuario El administrador de VM de Windows NT proporciona una valiosa funcionalidad a los procesos en modo usuarioatravésdesusserviciosnativos. Los subsistemas de entornoutilizan los serviciospara administrarsusprocesosclientes.ElsubsistemaWin32tambiénexportaalguna de las capacidades suministradas porlos servicios nativos de memoria del API de Win32. El administrador deVM permite a los subsistemas en modo usuario compartir la memoria eficientemente utilizandoobjetosquesonprotegidos,nombrados,ymanipuladoscomocualquierade los demás procesosdelejecutor.Lossubsistemaspuedenseleccionarelniveldeprotección de páginaen la memoria privada, y pueden "cerrar" páginas seleccionadas de la memoria. Pueden también aprovechar los archivos mapeados y administrar el espacio de direcciones virtuales de sus clientes. Las siguientes subsecciones se centran en las capacidades del administrador de VM, disponibles en modousuario:gestionarelespaciodedireccionesvirtualesdeunproceso,compartirmemoriaentre procesos, y protegerla memoria virtual de un proceso de otros procesos. Administración de memoria Como mostraba el Capítulo4 en el diagrama de atributos y servicios de los objetos proceso (figura 63), el administrador de VM suministra un conjunto de servicios nativos que un proceso puede utilizar para gestionar directamentesu memoria virtual.Estos servicios permiten que un proceso haga lo siguiente: Reserve memoria en un proceso de dos etapas Lea y escribaen la memoria virtualEl administrador de memoria virtual Cierre páginas virtuales dela memoria física Obtenga informaciónsobre páginas virtuales Proteja páginas virtuales Pase páginas virtualesal disco El administrador de VM establece un método de dos fases para reservar memoria (reservarla y luego comprometerla). La memoria reservada es un conjunto de direcciones virtuales que el administrador de VMha reservadopara uso futurodeunproceso.Lareservadememoria,esdecir, la reservade direcciones virtuales, es una operación rápida y económica en WindowsNT. La memoria comprometida esmemoriapara la cual eladministradordeVMhaestablecidoespacioaparteensuarchivode paginación, el archivo del disco en el cual escribe las páginas virtuales cuando las quita de la memoria. Cuando un hilo reserva memoria virtual, puede reservar y comprometer la memoria simultáneamente,o puede simplemente reservarla memoria, comprometiéndolasólo si es necesario. Lareservade memoria es útil cuando un hiloestácreandoestructuras de datosdinámicas. El hilo reservaunasecuenciadedireccionesvirtualesquecomprometehastadondeesnecesario,para contener datos. Si la estructura de datos necesita crecer, el hilo puede comprometer memoria adicional de la región reservada. Esta estrategia garantiza que ningún otrohilo que se ejecute dentro del proceso (un paquete de librería, por ejemplo) o de otro proceso (tal como un hilo del subsistema Win32) pueda utilizar los espacios virtuales contiguos que la estructura de datos podría necesitar para expandirse. Un hilo puede seleccionar la dirección virtual de comienzo de una región reservada, o puede permitir al administrador de VM encontrar un lugar para ellaelen espacio de direcciones virtuales del proceso. El administradorde VMdeducedelarchivodepaginacióndeunproceso la cuotaparamemoria comprometida,pero no la de memoriareservada.Estedobleniveldesernánticaspermiteaunhilo reservar una gran regiónde memoria virtual pero evitar que se cargue en su cuota hasta que la memoria sea realmente necesitada. También ayuda a mantener el archivo de paginación libre para páginas de 48 memoria virtual que están siendo realmente utilizadas. Cuando un rango de direcciones particular no está siendo utilizado, un hilo puede "descomprometerlo" y de este modo liberar espacio del archivo de paginaciónyrestaurarlacuotadelarchivodepaginacióndelproceso.(VerCapítulo 4 paramás información sobre las cuotasde procesos.) Para aplicaciones en las que el tiempo es un parámetro crítico y aplicaciones con otros requerimientos de rendimiento, el administrador de VM permite que un subsistema de modo usuario u otros procesos con privilegios especiales cierren páginas individuales seleccionadas en la memoria. Esto asegura que una página crítica no será eliminada de la memoria mientrasse esté Como otros servicios de Windows NT, los servicios del administrador de VM permiten que el solicitante suministre un handledeprocesoparaindicar un procesocuyamemoriaindividual va asermanipulada. El solicitante puede manipular su propia memoria individual o la de otro proceso. Esta característica es muy potente, porque permite a un procesó en modo usuario gestionar el espacio de direccionesde otro. Porejemplo,unprocesopuedecrear otro proceso, dándose a sí mismo el derecho de manipular la memoriaindividualdelnuevoproceso.Después,elprimerprocesopuedereservar y liberar,yleery escribirenmemoria, en nombredelsegundoproceso,llamandoa los serviciosdememoriavirtualy pasando el handledelsegundoproceso.Estacaracterística esutilizadapor los subsistemaspara gestionar la memoriade sus procesos clientes. Las aplicaciones Win32 tienen acceso a muchas de estas características del administrador de VM a travésdelAPI de Win32.Puedenreservaryliberarmemoriaindividual,leeryescribirenmemoria individual,pasarpáginasindividualesaldisco,obtenerinformaciónacerca de un rango de páginas individuales,cerrarpáginasindividualesde la memoria,yprotegerpáginasespecíficas.Sinembargo, ninguna de estasfuncionesdel API permiten aun programaWin32manejar la memoriavirtualdeotro proceso,con la excepción delasfuncionesReadProcessMemory() y WriteProcessMemory-.Estas funcionesestándestinadasalusodedepuradoresenmodousuario,paraqueestablezcanpuntosde parada mantengan y datos instancia deproceso un deque está siendo depurado. Compattición de memoria Una tarea importante de cualquier sistema de administración de memoria es permitir que los procesos compartan memoria cuando lo requieran o cuando dicha compartición haga más eficiente al sistema operativo. Puesto que cada proceso tiene un espacio de direcciones virtuales independiente, el sistema operativo puede cargar el compilador en memoria una vez, y cuando otro proceso invoque al compilador, el administrador de memoria puede simplemente mapear las direcciones indiindividuales del segundo proceso a los marcos de página fisicos ya ocupados por el compilador, como ilustra la figura 6-4. De forma similar, s i dos procesos que están cooperando crean un buffer de memoria compartida, el espacio de direcciones virtuales de cada proceso puede ser mapeado a los mismos marcos de página fisicos ocupado por el buffer. El subsistema Win32 hace que las características de compartición de memoria del ejecutor de Windows NT estén disponibles para las aplicaciones Win32 a través de sus funciones de mapeo de archivos del API. 49 .', _. I. ..1: S 1.- ' <i- 'X u m 5 30 'ij ;$ J L. I . ComparticiOn de memoria Secciones, vistas,y archivos mapeados AI igual que todos los otros componentes de Windows NT, el administrador de VM es completamente paralelo. Se ejecuta simultáneamente en todos los procesadores de un computadora multiprocesador y debecompartirsusestructuras de datosentre los hilosqueseesténejecutandoendiferentes procesadores.Por lo tanto,eraimportantecrearunasolucióneficienteyseguraparacompartir la memoria en Windows NT,no sólo para los programas en modo usuario sino parael sistema mismo. La memoria compartida puede definirse como memoria que es visible desde más de un proceso o que esta presente en más dc un espacio de direcciones virtuales. El método de Windows NT para compartir recursosesimplementarloscomoobjetosprotegidos,y la memoria no esunaexcepción. El objeto sección, que el subsistema Win32 pone a disposición como un objeto mapeado de archivo, representa un bloque de memoria que dos o más procesos pueden compartir. Unhilo de un proceso crea un objeto sección y le da un nombre para que los hilos de otros procesos puedan abrir handles aél. Tras abrir un handle a un objeto sección, un hilo puede mapear la sección o partes de la sección en su propio espacio de direcciones virtuales (o en el de otro proceso). Un objeto sección de Windows NT puede ser bastante grande, abarcando decenas, centenas o incluso miles de páginas. Para conservar su espacio de direcciones virtuales, un proceso necesita mapearsólo la porción del objeto sección que requiere; la porción que mapea se denomina vista de la sección. Una vistaproporcionaunaventanaaunaregión de memoriacompartida,ydiferentesprocesospueden mapear diferenteso incluso múltiples vistas de una sección, como muestra Mapear vistas de una sección permite que un proceso acceda a grandes bloques de memoria que de otra forma no tendrían suficiente espacio de direcciones virtuales la para operación de mapeado. AI igualque la memoria privada, los contenidosdelamemoriacompartidasonpaginadosaldisco cuando la demanda de memoria es alta.El administrador de VM escribe la mayoría de las páginas, tanto privadas como compartidas, en el archivo de paginación cuando las quita de la memoria. Sin embargo, el administrador de VM también permite que los objetos sección sean paginados a un archivo mapeado. La base de datos de los empleados de la empresa es un ejemplo de un archivo mapeado. El programa de la base de datos utilizael objeto sección para traerlos contenidos del archivo dela base de datos ala al archivocomo si fueraunagrancadena, memoriavirtual. El programapuedeentoncesacceder mapeando diferentes vistas del objeto sección y leyendo o escribiendo en la memoria antes que en el archivo (una actividad denominadaE/S de archivo mapeado). Cuandoel programa accede a una página inválida (una que no está en memoria física) tiene lugar una falta de página, y el administrador de VM trae automáticamente la página a la memoria desde el archivo mapeado. Si la aplicación modifica la página, el administrador deVM escribe los cambios en el archivo durante sus operaciones de paginación normales. 50 Objeto seccidn El ejecutor de Windows NT utiliza archivos mapeados para cargar imágenes ejecutables en memoria, y el administrador de cache del sistema utiliza archivos mapeados para leery escribir páginas cacheadas. El sistema de E/S de Windows NT utiliza archivos mapeados en memoria para llevar las peticiones de E/S, permitiendo queel administrador deVM pagine los cambios al disco como partede sus operaciones normales de paginación. Las aplicaciones Win32 pueden utilizar archivos mapeados para llevar a cabo convenientemente la E/S aleatoria (además de la E/S secuencial) a archivos grandes. La aplicación crea unobjetoarchivo-mapeadodeWin32(quecorrespondeaunobjetoseccióndeWindowsNT),para contener el archivo, y luego lee o escribe enlugaresaleatoriosdelarchivo.Eladministradorde VM página automáticamente las partes necesarias del archivo y escribe los cambios enel disco. Objeto sección Losobjetossección,aligualqueotrosobjetos,sonreservados y liberadospor el administradorde objetos. Este crea e inicializa una cabecera de objeto, que utiliza paraadministrarlosobjetos; el administradorde VM defineelcuerpodelobjetosección.También implementa los servicios a los que pueden llamar los hilos en modo usuario, para recuperary cambiar los atributos almacenados enel cuerpo delos objetos sección.En la figura 6-6 se muestra el objeto sección. La siguiente tabla resumelos atributos únicos almacenadosen los objetos 51 'ramaiio máximo Protección de página Protección de la memoria basada en phginas, asignada a todas l a s páginas de la sección cuando es creada Fichero de paginacibdfichero mapeado Indica si la sección es creada vacía (respaldada por el fichero de paginación)o cargada con un fichero (respaldada p o r el fichero mapeado) Basaddno basada Indica si una secci6n es una secci6n basada, que debe aparecer en la misma direcciónvirtual en todos los procesos que la comparten,o una sección no basada, que puede aparecer en direcciones virtuales diferentespara los distintos procesos Tabla de . Atributos del objeto sección Mapear una vista de un objeto sección hace visible una parte de la sección en el espacio de direcciones virtualesdeunproceso.Igualmente,desmapearunavistade una sección la eliminadelespaciode direcciones virtuales del proceso. La compartición tiene lugar cuando dos procesos mapean partes del mismo objeto sección en sus espacios de direcciones. Cuando dos procesos comparten memoria de esta forma, deben sincronizar su acceso a ella para evitar cambiar los datos al mismo tiempo. Pueden utilizarse eventos, semáforos, o incluso cierres dependientes del hardware para sincronizar el acceso a unaseccióncompartida.Losobjetossecciónnoestándefinidoscomoobjetossincronizaciónen sí mismos; es decir, un hilo no puede sincronizar su ejecución esperando un handle aun objeto sección. LasaplicacionesWin32puedenutilizarmutexes,eventos,seccionescríticas o semáforospara sincronizar sus accesos al objeto mapeación de archivo (su equivalente de un objeto sección). Para mapear una vista de una sección, un proceso debe adquirir primero un handle a ella. El proceso que crea el objetosecciónsiempretieneunhandle.Si la seccióntieneunnombre,otrosprocesos pueden abrir handles a dicho objeto sección (aquellos que tengan los derechos de acceso adecuados). También, a un proceso se le puede dar un handle al objeto sección a través dela herencia del procesoo cuando otro proceso duplicasu handle de sección y pasael handle duplicado al proceso destinatario. En todos estos casos tiene lugar la compartición de memoria. Si se crea una sección Compartida como un objeto temporal, el administrador de objetos borra la memoria compartida cuando es liberada la última referencia al objeto sección. Los objetos sección permanentes no son borrados. Protección de memoria La protección de memoriaen Windows NT seda de cuatro maneras. Las tres primeras son comunes a la mayoría de los Sistemas operativos modernos: Un espacio de direcciones independiente para cada proceso. El hardware no permite que ningún hilo acceda a las direcciones virtualesde otro proceso. Dos modos de operación:modokernel,quepermitea sistema; y modo usuario, que no lo permite. los hilosaccederalcódigoy los datosdel Unmecanismodeprotecciónbasadoenpáginas.Cadapáginavirtualtieneunconjunto de flags los tipos de acceso permitidosen modo usuario y en modo kernel. asociados a ella que determinan Y los siguientes mecanismos, exclusivos de WindowsNT, proporcionan una forma más de protección de memoria: 52 Protección de memoria basada en objeto. Cadavez que un proceso abre un handle aun objeto sección o mapea una vistade éI, el monitor de referenciade seguridad de Windows NT comprueba si el proceso que intenta la operación tiene acceso permitido al objeto. Memoria privada de un proceso Cada vez que un hilo utiliza una dirección, el administradorde VM del ejecutor de Windows NT ,junto con el hardware, interviene y traduce las direcciones virtuales a direcciones físicas. Un sistema de memoria virtual, al controlar la traducción de direcciones virtuales, puede asegurar que los hilos de un proceso no acceden a un marcode página de la memoriaque pertenezca a otros procesos. Además de la protección implícita ofrecida por la traducción de direcciones físicas a virtuales, todos los procesadoresquesoportanmemoriavirtualproporcionanalgunaformadeprotecciónde memoria controladaporhardware.Sinembargo,lasproteccionesqueproporcionanysusimplementaciones hardware varían de unos a otros. A menudo la protección hardware es mínima y debe ser completada con mecanismos proporcionados por el software de memoria virtual. Este hecho hace que el administrador de VM de Windows NT esté más sujeto a diferencias de hardware que otras partes del sistema operativo. La protecciónde páginas basada en hardware, tiene efecto cada vez que un hilo accede a la memoria. En el procesador MIPS R4000, por ejemplo, cada página de la memoria virtual de un proceso está diseñada como, o una página en modo usuario (por debajo de 2 GB),o una página en modo kernel (por encima de 2 GB), y como página de sólo lectura o como página de lectura y escritura. Siun hilo de ejecución está ejecutándose en modo kernel, el procesador le permite leer cualquier página válida de la memoria y escribir en páginas válidas que tengan la designación de lectura y escritura. Si el hilo está ejecutándose en modo usuario, sólo puede leer páginas de usuario válidas y escribir en aquéllas páginas de usuario válidas que tengan la designación de lectura y escritura. Utilizando los servicios nativos de la memoria virtual, un subsistema de entorno puede controlar el nivel de protección de las páginas virtuales privadas. Este control puede llevar a programas más fiables, al asegurar que los hilos no escriben en páginas que son de sólo lectura. Esta característicaes también útil El administrador deVM proporciona protección de página guardián para facilitar comprobación de límites automáticos en las pilas, pero este tipo de protección de página puede ser empleado para demarcar también otras estructuras de datos. Cuando un hilo accede a una pagina guardián, el administrador de VM El administrador de memoriavirtualgeneraunaexcepción depáginaguardián,yelquerealiza la llamadarecibe el mensajedequeestaba"tocando" la páginaguardián.Eladministradorde VM entonces, permite que la operación continúe. Si un subsistema u otra aplicación nativa sitúa una página guardián al final de un array dinámico, por ejemplo, el subsistema recibirá un aviso del administrador de VM cuando acceda a la página guardián, y puede extender el array dinámicamente. La protección de página de no acceso se utiliza para prevenir que cualquier hilo lea o escriba a una página concreta. El administrador deVM emite una excepción si se accede a una dirección de la página. A las páginas virtuales que no han sido reservadas en absoluto, o a aquéllas que han sido reservadas pero no comprometidas, el administrador de VM les asigna protección de página de no acceso. Esta protección esutilizadaprincipalmentepor los depuradores.ElsubsistemaWin32hacevisibleslas protecciones de página del administrador de VM frente a las aplicaciones Win32 a través de su función VirtualProtectQ. sólo lectura, Esta función permite a las aplicaciones designar páginas virtuales individuales como de lectura I escritura, o no acceso. No proporciona las protecciones de página guardián, de sólo ejecución, ni de escritura sobre copia. 53 Memoria compartida Laprotección depáginadeescriturasobrecopiamencionadaenlasubsecciónprevia,esuna optimización que utiliza el administrador deVM para ahorrar memoria. Cuando dos procesos quieren leer y escribir los mismos contenidos de memoria (pero no compartirlos), el administrador de VM asigna la protección de página de escritura sobre copia a esa región de memoria. Entonces compartela memoria física entre los procesoscontaldequeningunodeellosescribaenella.Siunhilodeunode los procesosescribe enunapágina, el administradorde VM copiaelmarcodepáginafísicoaotra localización en memoria, actualizael espacio de direcciones virtuales del proceso que apunta a la copia, y selecciona una nueva protección de página,la de lecturaI escritura. Como se muestra en la figura 6-7, la página copiada no es visible para los hilos de otros procesos.Por lo tanto, el hilo puede escribir en su copia dela página sin afectar alresto de los procesos que están utilizando la página. La protección de escritura sobre copia es útil para las páginas que contienen código; asegura que sólo es afectado por el cambio el proceso cuyo hilo modifica la imagen. Sin embargo, si un programador establece un punto de parada (breakpoint) mientras depuraun programa, el depurador debe aiiadir una instruccióndebreakpointalcódigo.Parahaceresto,primerocambia la proteccióndelapáginaa escritura sobre copia. El administrador de VM inmediatamente crea una copia privada de la página de código para el proceso cuyo hilo estableceel punto de parada. Los demás procesos continúan utilizando el código sin modificar. El subsistema Win32 no PratecCidn ds eacriulra Miobre W a hace directamente disponible la protección de página de escritura sobre copia a las aplicaciones Win32, pero indirectamente utilizala protección de escritura sobre copia para implementar datos de instancia por proceso en sus librerías de enlace dinámico (DLL) yen cualquier parte. La protección de escritura sobre copiaesunejemplodeunatécnica de optimizacióndenominadaevaluaciónperezosaque el administrador de VM utiliza siempre que es posible. Los algoritmos de dicha evaluación evitan llevar a cabo una operación "costosa" hasta que sea absolutamente necesaria. Si la operación no se requiere nunca, entonces no se pierde tiempo en ella. El subsistema POS IX es un componente que se beneficia mucho de esta optimización. Típicamente, cuandoun proceso llamaa la función del API fork() para crear otroprocesoenunsistemaPOSIX, el sistemaoperativocopia el espaciodedireccionesdelprimer 54 proceso en el segundo, una operación que consume tiempo. La nueva aplicación frecuentemente llama a la función del API execQ inmediatamente, que reinicializa el espacio de direcciones con un programa ejecutable,haciendoportantosuperflua la otraoperación de copia. El algoritmo de la evaluación perezosadeladministradordeVM,encontraste,simplementemarcalaspáginaspadreconla designación de protección de escritura sobre copia, y comparte dichas páginas padre con el hijo. Si el procesohijo (o padre)nuncaescribe ensuespaciodedirecciones, los dosprocesoscontinúan compartiendo y no se lleva a cabo ninguna copia. Si uno de los procesos escribe, el administrador de VM copia sólo las páginas en las que el proceso ha escrito, en lugar de copiar el espacio de direcciones completo. o en Todos los mecanismosdeproteccióndememoriadescritoshastaaquísonimplementados hardware, o en software de administraciónde memoria de bajo nivel, quese invoca cada vez que un hilo utilizaunadirección.Laarquitectura deobjetosdeWindowsNTproporcionaunacapaadicionalde protecciónalamemoriacompartidaentre dosprocesos. El subsistemadeseguridadprotegea los objetosseccióndela misma forma queprotegeaotrosobjetosdelejecutor,utilizandolaslistasde control de acceso (ACL). (Ver Capítulo 3). Un hilo puede crear un objeto sección cuya ACL especifique qué usuarios o grupos de usuarios pueden leer, escribir, obtener información, o ampliar el tamaño de la sección. El monitor de referencia de seguridad compruebala protección de un objeto sección siempre queun hilo intenta abrir un handle a una sección o mapear una vista de la misma.Si la ACL no permite la operación, el administrador de objetos rechazala llamada. Una vez que un hilo ha abierto con éxito un handle a una sección, sus acciones están todavía sujetas a las protecciones basadas en páginas descritas anteriormente. Un hilo puede cambiar el nivel de protección de página en las páginas virtuales de una sección, cambio no viola laACL del objeto sección. si el implementación de memoria virtual Hastaaquí,estecapítulosehacentrado en los principiosgeneralesdelamemoriavirtual y las características de modo usuario proporcionadas por el administrador de VM del ejecutor de Windows NT. Las siguientes subsecciones ahondanen asuntos internos, las estructuras de datos y los algoritmos que no sonvisibles al código de modousuario,peroqueafectan al funcionamiento y rendimientode la memoria virtual. Primero se describe la disposición del espacio de direcciones virtuales de un proceso, seguido por una explicación delos mecanismos de paginación y las políticas de gobierno del empleo de la memoria de un proceso. Sigue una breve descripción de las dos estructuras de datos principales dela los asuntosdemásaltonivel, el multiprocesamientoy la memoriavirtual.Finalmente,setratan portabilidad del sistema de memoria virtual. Espacio de direcciones Cada proceso nativo de Windows NT tiene un gran espacio de direcciones virtuales de 4 GB, de los cuales 2 GB están reservados para el uso del sistema.5 La mitad inferior del espacio de direcciones virtuales es accesible alos hilos de modo usuario y modo kernel, y es única para cada proceso. La mitad superior es accesible sólo para los hilos en modo kernel y es la misma para todos los procesos. En la figura 6-8 se ilustra el espacio de direcciones virtuales de un proceso. (el código que hace la paginación, por ejemplo). Cuando se crea un nuevo proceso, puede especificarse que el administrador de VM inicialice su espacio de direcciones virtuales duplicando el espacio de direcciones virtuales de otro proceso, o mapeando un archivo en suespaciodedireccionesvirtuales.Porejemplo,elsubsistemaPOSLXutiliza la primera El espacio de direcciones del proceso hijo es táctica cuando uno de sus clientes crea un proceso hijo. una réplica del espacio del proceso POSlX padre. (Realmente, el padre y el hijo comparten páginas de escritura sobre copia, así que la copia no tiene lugar inmediatamente). La segunda táctica se utiliza 55 cuando se crea un nuevo proceso para ejecutar un programa ejecutable. Por ejemplo, cuando un usuario ejecuta la utilidadchkdsk,eladministrador de procesosdeWindows NT creaunprocesoy el administrador de VM inicializa su espacio de direcciones con la imagen de chkdsk, que es entonces ejecutada. Lossubsistemasdeentornopuedenpresentarasusprocesosclientes,vistasdememoriaque no corresponden al espacio de direcciones virtuales de un proceso nativo de Windows NT. Las aplicaciones Win32utilizanunespaciodedireccionesqueesidéntico al espacio de direccionesnativo,pero el subsistema OS/2 y las máquinas DOS virtuales (VDM), presentan a sus clientes vistas de la memoria alteradas. Paginación El diseñodeuncomponentedeunsistemaoperativoamenudoserevela preguntas importantes: éI mismo al hacer dos ¿Qué mecanismos utiliza el componente para llevar a cabo su trabajo? ¿Qué políticas gobiernanlos mecanismos? Los mecanismos de memoria virtual incluyen la manera en la que el administrador de VM traduce las direcciones virtuales a direcciones físicas la y manera en que introduce las páginasen la memoria física. Las políticas de memoria virtual, encontraste, determinan por ejemplo cuándo introducir una página enla memoria y dónde situarla. A menudo el procesador proporciona mecanismos primitivos de paginación, que complementa el sistema de memoria virtual. El paginador, el código del administrador de VM que transfiere las páginas desde y hacia el disco, es un importante intermediario entre los mecanismos hardware y las políticas software: Haceválidaunapáginainválidacuandotienelugarunafaltadepágina(porejemplo, al cargaruna página en la memoria desde el disco). Proporciona protección basada en páginas para las páginas inválidas, y mejora las protecciones que proporciona el hardware a las páginas válidas. Actualiza y mantiene las estructuras de datos de la administración de memoria. Además, el paginador refuerza las políticas de paginación establecidas el por administrador de VM Mecanismos de paginación Cada procesador que soporta memoria virtual lo hace de manera diferente.Por lo tanto, el código que se relaciona directamente con el hardware de memoria virtual no es portable y debe ser modificado para cada plataforma hardware. Las mejores circunstancias sedan, como en Windows NT, cuando tal código es pequeño y está bien aislado. aplicable alos procesadores ClSC de Intel, pero por simplicidad, aquí no se discuten en profundidad dichos El MIPSR4000contienedosmódulos:unaunidaddeprocesamientoRlSCde 32 bits(denominada CPl), y un módulo independiente situado en el mismo chip (denominado CPO)que controla la traducción de direcciones y el manejode excepciones. El CPO captura automáticamente cada dirección que genera unprograma,y la traduceadirecciónfísica.Si la páginaquecontiene la dirección esválida(está presente en memoria), el CPO la localiza y recuperala información. Si la página es inválida (no está presente en memoria),el CPO genera una falta de página, y se invoca al R4000 (así paginador del administrador de VM. Para asegurar accesos rápidos a memoria, el MIPS como los procesadoresIntel),proporciona un array de memoriaasociativa,denominado buffer de traducciónlookaside(TLB,translationlookasidebuffer).Lamemoriaasociativa,comoporejemplo el TLB, esunvectorcuyasceldaspuedenserleídassimultáneamenteycomparadasconunvalorde referencia. En el caso del TLB, el vector contienelos mapeados de página virtual a física, de las páginas 56 utilizadas más recientemente, y el tipo de protecciónde página aplicado a cada página. La figura 6-9 es una representación simplificada del TLB. Lasdireccionesvirtualesutilizadasconfrecuencia es probablequetenganentradasen el TLB,que proporciona una extremadamente rápida traducción de direcciones virtuales a fisicas, y por lo tanto, un rápido acceso a memoria. Si una dirección virtual no está presente en el TLB, podría estar todavía en memoria, pero Dirección virtual el software de memoria virtual, más que el hardware, debe encontrarla, en cuyo caso el tiempo de acceso es ligeramente mayor.Si una página virtual ha sido paginada fuera de la memoria, el sistema de memoria virtual hace inválida su entrada en el TLB. Si un proceso accede a ella de nuevo, se da una falta de página, y el administrador de VM vuelve a traer la página a la memoria y vuelve también a crear una entrada para ellaelen TLB. El kernel y el administrador deVM utilizan tablasde página creadascon software para encontrar páginas quenoestánpresentesenelTLB.Dichastablasseencuentranenlamayoríade los sistemasde memoria virtual; algunas veces son implementadas por el hardware otras y por el software. Conceptualmente, una tabla de página se parece a la estructura de datos mostradalaen Fig. I. Acceso al TLB Una entrada de una tabla de página (PTE,page table entry), contiene toda la información necesaria para que el sistema de memoria virtual localiceuna página cuando un hilo utiliza una dirección. En un sistema de memoria virtual sencillo, una entrada inválida en una tabla de página quiere decir que la página no está en la memoria físicay debe ser cargada del disco. Seda entonces una excepción de falta de página, y el software de paginación carga la página solicitada en la memoria y actualiza la tabla de página. El procesador vuelve a emitirla instrucción que generéla falta de página. Estavez, sin embargo, la entrada de la tabla de página es válida y se recuperan con éxito los datos de la memoria. 57 1' 1 I S 4 Entrrdas - delatabla 5 8 7 n Tabla de pcigina conceptual El MIPS R4000 tiene direcciones de 32 bits, o 232 posibles direcciones virtuales para cada proceso. Organiza estas direcciones virtuales en páginas de 212 bytes (4 KB), lo cual lleva a 220, o 1.048.576 páginas por cada espacio de direcciones. Si las entradas de la tabla de página ocupan4 bytes cada una, se necesitan 1024 marcos de página de almacenamiento (220 veces22, dividido por 212) para mapear toda la memoria virtual.Y todo esto considerandosólo un espacio de direcciones. Cada proceso tiene un espacio de direcciones independiente. Para evitar consumir toda la memoria con tablas de página, el administrador de VM página las tablas dentro y fuera de la memoria cuando se necesitan. El procesador MIPS R4000 permite al sistema operativo estructurar las tablas de página en el formato que sea más conveniente. Encontraste, el procesador Intel 386, establece un formato hardware para la tabladepágina.Paraproporcionarlamáximaportabilidadentreambostipos de procesadores,el administrador de VM adopta una estructura de tabla de página de dos niveles que imita al formato de Intel. La tabla del primer nivel, denominada directorio de página, apunta a las páginas de la tabla de página del segundo nivel. Este segundo nivel apuntalos a marcos de página reales, como se muestra en la figura 6-77 Cuando localiza una entrada dela tabla de página, el administrador de VM (y el kernel de WindowsNT)traduce una direcciónvirtualtipoMIPSaunadireccióntipoIntelutilizandodiferentes partes de ella como desplazamientos(offsets) en la estructurade la tabladepágina.Además,una entrada del TLB siempre contiene la dirección virtual base del directorio de página para los procesos que se estan ejecutando en ese momento. (Esta es la razón de que el proceso de un usuariono pueda "ver" el espacio de direcciones de otro.Tienendiferentesdirectorios de página,queapuntanadiferentes tablas de psgina). 58 1 Lasentradasdeldirectoriodepágina y de la tablas de página de un proceso pueden ser válidas o inválidas. Si una entrada del directorio de página es inválida, sucede una falta de página que carga la página directorio y localiza una página de la tabla de página. Cuando esta página de la tabla de página se hace válida, se comprueba la entrada correspondiente dela tabla de página. Si la entrada de la tabla de página también es inválida, sucede otra falta de página para localizar la página de código o datos. Las entradas de la tabla de página de estas tablas de página definidas en Windows NT suponen una mejora respecto a la página conceptual mostrada anteriormente. Cada entrada de la tabla de página (y cada entradadeldirectoriodepágina)tiene un flagdetransición. Si la entradade la tabladepáginaes marcada como inválida y el flag de transición está habilitado, la página está destinada a ser rechazada, pero sus contenidos son válidos todavía. Hacer válida una página transicional es una operación muy rápida porque el administrador de VM . Estructura de la tabla de página del Intel386 y del MIPS R40006 necesita leer la página de la memoria desde el disco. Las entradas de la tabla de página también contienen flags que registran los niveles de protección de páginas que el administrador deVM aplica a cada página. Cuando un marco de página es compartido entre dos procesos, el administrador de VM inserta un nivel se de indirección en sus tablas de página, como ilustra la figura. La estructura de datos que inserta denomina entrada prototipo dela tabla de página (PTE prototipo). 59 La PTE prototipo, una estructura de 32 bits que se parece a una entrada normal de la tabla de página, permite que el administrador de VM gestione las páginas compartidas sin necesidad de actualizar las tablas de página de cada proceso El administrador de memoria virtual Dirección virtual Figura siguiente. Traducción de direcciónde la memoria compartida está compartiendola página. Por ejemplo, una página decódigo o datoscompartida,podríaserpaginadaaldiscoenundeterminadopunto.Cuandoel administrador de VM recupera la página del disco, sólo necesita actualizar el apuntador almacenado en la PTE prototipo paraque apunte a la nueva localización física de la página. Las tablas de página de los procesos que están compartiendo la página permanecen igual. Las PTE prototipo son reservadas del espaciopaginadodelsistema,y así, al igualquelasentradasde la tabladepágina,puedenser paginadas si es necesario. DlncdlinvmJd I I I I I I I I “ d e l & * rFadu&&Mde dirmi6n da, la memaria compartida Políticas de paginación y conjuntos de trabajo Los sistemas de memoria virtual generalmente definen tres políticas que dictaminan cómo (o cuándo) llevar a cabo la paginación: una política de búsqueda, una política de emplazamiento, y una política de remplazamiento.) Una política de búsqueda determina cuándo el paginador trae una página del disco ala memoria. Un tipo de política de búsqueda, denominada política de paginación por demanda, carga una página en memoria física sólo cuando ocurre una falta de página. En un sistema de paginación por demanda, un proceso incurre en muchas faltas de página cuando sus hilos comienzan su ejecución por primera vez, cuando referencian el conjunto inicial de páginas que necesitan. Una vez que este conjunto de páginas está cargado en memoria, disminuyela actividad de paginacióndel proceso. 60 El administrador de VM de Windows NT utiliza un algoritmo de paginación por demanda con agrupación para cargar las páginasen memoria. Cuandoun hilo provoca una falta de página, el administrador de VM carga en memoria la página que falta, más un pequeño número de páginas circundantes. Esta estrategia trata de minimizar el número de faltas de página en las que un hilo puede incurrir. Debido a que los programas, especialmente los más largos, tienden a ejecutarse en pequeñas regiones de sus espacios de direcciones en un momento dado,cargandogruposdepáginasvirtualessereduceelnúmerode faltas de página. 225933 Cuando un hilo recibe una falta de página, el sistema de administración de memoria debe determinar también dónde poner la página virtual enla memoria física. El conjunto de reglasque utiliza se denomina política de emplazamiento. Las políticas de emplazamiento, aunque frecuentemente complicadas para las arquitecturas de memoria segmentada, son normalmente sencillas para las arquitecturas lineales, que sólo requieren encontrar un marco de páginalibre. En Windows NT, si la memoriano está llena, el administrador de VM simplemente selecciona el primer marco de página de una lista de marcos de página libres. Si la lista está vacía, recorre una serie de otras listas de marcos de página que mantiene; el orden del recorrido depende del tipo de falta de página que haya ocurrido. Si la memoriafísicaestállenacuandoocurreunafaltadepágina, se utiliza una políticade remplazamiento para determinarqué página virtual debe ser elimina de la memoria para hacer sitio a la nueva página. Las políticas de remplazamiento más comunesson least recently used(el menos utilizado recientemente,LRU)yfirst infirst out(primero en entrar,primero en salir, FIFO). ElalgoritmoLRU requiere que el sistema de memoria virtual controle cuándo se ha utilizado una página de la memoria. Cuando se requiere un nuevo marco de página, la página que no ha sido utilizada durante la mayor cantidad de tiempo es paginada al disco, y su marco es liberado para satisfacer la falta de página. El algoritmo FIFO es algo más simple; elimina la página que ha estado en memoria física la mayor cantidad de tiempo sin tener en cuenta con qué frecuencia ha sido utilizada. Laspolíticasderemplazamientopuedensertambiéncaracterizadascomoglobales o locales.Una política de remplazamiento local reserva un númerofijo (o, como enWindows NT, unnúmero dinámicamente ajustable) de marcos de página para cada proceso. Cuando un proceso utiliza todo lo que le corresponde, el software de memoria virtual libera (es decir, elimina de la memoria física) una de sus páginas para cada nueva faltade página que ocurra. Una política de remplazamiento globalpermite que una falta de página sea satisfecha por cualquier marco de página, sea o no ese marco perteneciente aotroproceso.Porejemplo,unapolíticaderemplazamientoglobalqueutiliceelalgoritmo FIFO localizaría la página que hubiera estado en memoria por más tiempo y la liberaría para satisfacer una falta de página; una política de rernplazamiento local limitaría esa búsqueda a la página más antigua del conjunto de páginas pertenecientes al proceso que hubiera emitido la falta de página. Las políticas de remplazamiento global tienen unos cuantos problemas. Primero, hacen vulnerables los a procesos del comportamiento de otros procesos. Por ejemplo, si uno o más procesos del sistema están utilizando grandes cantidades de memoria, es más probable que una aplicación en ejecución tenga una paginación pesada.Se incrementará el tiempo de ejecución. Segundo, una aplicación que no funcione bien puede minar el sistema operativo entero los procesos. EnWindows NT, es induciendoaunaactividaddepaginaciónexcesivaentodos importante que los subsistemas de entorno no compitan con otros procesos para que la compartición de memoria sea equitativa. Deben mantener un cierto número de páginas en memoria para ejecutar de manera eficiente, soportar y sus aplicaciones cliente adecuadamente. Por estas razones, el administrador de VM utiliza una política de remplazamiento local tipo FIFO. Este método requiere que el administradorde VM mantenga unseguimientodelaspáginasdecadaprocesoqueestánencada momento en memoria. Este conjunto de páginas se denomina conjunto de trabajo del proceso.7 Cuando es creado, cada proceso se le asigna un tamaño mínimo del conjunto de trabajo, que es 61 el número de páginas que el proceso tiene garantizadas en memoria mientras se está ejecutando. Si la memoria no está demasiado llena, el administrador de VM permite que el proceso tenga tantas páginas como indique su conjunto de trabajo máximo.8 Si el proceso requiere más páginas, el adminis7. P.J. Denning, que publicó su artículo seminal en 1970, utilizó el término working set (conjunto de trabajo) para referirse al número mínimo de páginas que un proceso debe teneren memoria física antesde que pueda progresar su ejecución. Un proceso con menos de su conjunto de trabajo es susceptible de desgranarse (continuas faltas de página). Nuestra definición, "el conjuntode páginas en memoria para un proceso en un momento dado" es ligeramente diferente de la definición de Denning, no y deben ser confundidas. 8. El administrador deVM también puede permitir que un proceso se exceda de su máximo si hay mucha memoria disponible. Las políticas de remplazamiento pueden ser también caracterizadas como globales o locales. Una política de remplazamiento local reserva un número fijo (o, como enWindowsNT,un número dinámicamente ajustable) de marcos de página para cada proceso. Cuando un proceso utiliza todo lo que le corresponde, el software de memoria virtual libera (es decir, elimina dela memoria física) una de sus páginas para cada nueva falta de página que ocurra. Una política de remplazamiento global permite que una falta de página sea satisfecha por cualquier marco de página,sea o no ese marco perteneciente a otro proceso. losa Las políticas de remplazamiento global tienen unos cuantos problemas. Primero, hacen vulnerables procesos del comportamiento de otros procesos. Por ejemplo,si uno o más procesos del sistema están utilizando grandes cantidades de memoria, es más probable que una aplicación en ejecución tenga una paginación pesada. Se incrementará el tiempo de ejecución. Segundo, una aplicación que no funcione bienpuedeminarelsistemaoperativoenteroinduciendoaunaactividaddepaginaciónexcesivaen todos los procesos. En Windows NT, es importante que los subsistemas de entorno no compitan con otros procesos para que la compartición de memoria sea equitativa. Deben mantener un cierto númerode páginas en memoria para ejecutar de manera eficiente, y soportar sus aplicaciones cliente adecuadamente. Por estas razones, el administrador de VM utiliza una política deremplazamientolocaltipo FIFO. Estemétodorequiereque el administradorde VM mantengaun seguimiento de las páginas de cada proceso que están en cada momento en memoria. Este conjuntode páginas se denomina conjunto de trabajo del proceso.7 Cuando es creado, a cada proceso se le asigna un tamaño mínimo del conjunto de trabajo, que es el número de páginas que el proceso tiene garantizadas en memoria mientras se está ejecutando. Si la memoria no está demasiado llena, el administrador de VM permite que el proceso tenga tantas páginas como indique su conjunto de trabajo máximo.8 Si el proceso requiere más páginas, el adminis7. P.J. Denning, que publicó su artículo seminal en 1970, utilizó el término working set (conjunto de trabajo) para referirse al número mínimo de páginas que un proceso debe tener en memoria física antes de que pueda progresar su ejecución. Un proceso con menos de su conjunto de trabajo es susceptiblede desgranarse (continuas faltas de página). Nuestra definición, "el conjunto de páginas en memoria para un proceso en un momento dado"es ligeramente diferente de la definición de Denning, y no deben ser confundidas. El administrador de VM también puede permitir que un proceso se exceda de su máximo si hay mucha memoria disponible. Administrador de VM elimina una de las páginas del proceso por cada nueva falta de página que el proceso genere. Para determinar qué página eliminar del conjunto de trabajo de un proceso, el administrador de VM emplea un sencillo algoritmo FIFO, eliminando las páginas que han estado más tiempo en memoria. (Debido a que las páginas eliminadas del conjunto de trabajo realmente permanecen en memoria física durante un tiempo después del remplazamiento, pueden volver a traerse al conjunto de trabajo Rápidamente sin que sea necesaria una operación de lectura del disco. Cuando la memoriafísicadisminuye, el administradorde VM utilizaunatécnicadenominadarecorte automáticodelconjuntodetrabajoparaincrementar la cantidad de memorialibredisponibleen el sistema. Examina cada proceso en memoria, comparando el tamaño actual de su conjunto de trabajo con el tamaño mínimo. Cuando encuentra procesos que utilizan más de su mínimo establecido, elimina páginas de sus conjuntosde trabajo, dejando esas páginas disponibles para otros usos. Si la cantidad de memoria libre es todavía demasiado baja, el administrador de VM continúa eliminando páginas de los 62 Tablas de phgina y base de datos.de marcos de pagina . . . -. . . . . . . . . I * . -v. 1 r . . *.l. . Tablas de página y base de datos de marcos de página de trabajo. El administrador de memoria está diseñado, a través de la utilización de la política de remplazamiento local y el recorte automático del conjunto de trabajo, para controlar la carga en memoria, y ajustar la utilización de memoria de Apuntador hacia delante manera acorde con ella. Pretende proporcionar el mejor rendimiento posible para cada proceso sin que ningún usuario individual o administrador tenga que sintonizar el sistema para cada caso. Base de datos de marcos de página Las tablas de página de un proceso controlan dónde se almacena una página virtual en la memoria física. El administrador de VM también necesita una estructura de datos para controlar el estado de la memoria física. Por ejemplo, necesita registrar si un marco de página está libre, y sino, quién lo está utilizando.Labasededatos de marcosdepáginacubreestanecesidad. Es un arraydeentradas numeradas desde el O hasta el número de marcos de página de la memoria del sistema (menos 1). Cada entrada contiene información sobre el correspondiente marco de página. En la siguiente figura se representa la base de datos de marcos de página y sus relaciones con las tablas de página. Como muestra esta figura, las entradas válidas de las tablas de página apuntan a entradas de la base de datos de marcos de página, y las entradas de dicha base de datos apuntan a su vez a la tabla de página que las está utilizando. El administrador de VM utiliza el apuntador de avance cuando un proceso accede a una dirección virtual válida. Sigue al apuntador para localizar la página física correspondiente a una dirección virtual. Algunas entradas inválidas de la tabla de página también se refieren a entradas en la base de datos de marcos de página. Estas entradas "transitorias" de la tabla de página se refieren a marcosde página que 64 pueden ser elegidos para volver a ser utilizados y que todavía no han vuelto a ser utilizados y que, porlo tanto, están aún intactos en memoria. Si el proceso accede a una de estas páginas antes de que sea utilizada de nuevo por otro proceso, el administrador VM de puede recuperar su contenido rápidamente. Otras entradas inválidas de la tabla de página contienen la dirección del disco donde se almacena página.Cuandounprocesoaccedeaunadeestaspáginas,tienelugarunafaltadepáginayel administrador de VMlee la página del disco. la Los marcos de página pueden estar en uno delos seis estados siguientes, en cualquier momento Válido. El marco de página es utilizado por un proceso, y una entrada válida de la tabla de página apunta a él. Cero. El marco de página estálibre y ha sido inicializado con ceros. Libre. El marco de página está libre pero no ha sido inicializado. Standby. Un proceso está utilizando el marco de página, pero dicho marco de página ha sido eliminado delconjuntodetrabajodelproceso.Laentradadelatabladepáginapara éI esinválidaperoestá marcada con un flag de transición. Modificado. Este estado es el mismo que el estado standby, excepto que el proceso que utiliza la página también ha escrito en ella, y los contenidos no han sido escritos todavía al disco. La entrada de la tabla de página para éI es inválida pero está marcada con un flag de transición. Malo. El marco de página ha generado error de paridad u otro tipo de error hardware y no puede ser utilizado. 65 Figura Listas de páginas en la base de datos de marcos de página De los marcos de página que no son utilizados, la base de datos de marcos de página enlaza aquellos que están en el mismo estado, creando de este modo cinco listas independientes: la lista de ceros, lade libres, lade standby, lade modificados, y la de malos. En la figura 6-14 se muestran las relaciones entre la base de datos de marcos de página y las listas de página. Como se muestra en la figura, estas listas llevan la cuenta de los marcos de página del computadora que no se utilizan. Aquellos que son utilizados por un proceso son apuntados por la tabla de página de ese proceso. Cuando un proceso termina con un marco de páginao cuando el administrador deVM página sus contenidos al disco, el marco de página se liberay el administrador deVM lo sitúa en unade sus listasde marcos de página. Cuando el administrador de VM necesita un marco de página inicializado (uno que contenga todo ceros) para atender una falta de página, trata de conseguir el primero de la lista de páginas de ceros; si la lista está vacía, obtiene uno dela lista de libres y lo pone a cero.9 Cuando el administrador de VMno necesita una página a cero, utiliza el primero de la lista de libres; si la lista de libres está vacía, utiliza uno de la lista de ceros. En cualquiera de estos casos, el administrador de VM utiliza la lista de standby si las dos y standby listascitadasestánvacías.Cuando el número de páginasenlaslistasdeceros,libres desciendepordebajodeunumbralmínimo,unhilodenominadoescritordepáginamodificada, "despierta", escribe los contenidos de las páginas modificadasal disco, y después las sitúa en la lista de páginas en estado standby para volver a ser utilizadas. Si incluso la lista de paginas modificadas fuera demasiado corta, el administrador 66 de VM comienza a de Visor del pottafolm Insta Ed*- PIF Subsistemas de entorno El subsistema de entorno de Wín32proporcionaelinterfaz de usuario de WindowsNT. No sólo controla la pantalladevideo,sinotambiénelteclado,elratón, y otrosdispositivosdeentradaconectadosala máquina.Además,esunservidordelasaplicacionesbasadasenWín32,implementando el APIde Win32. No todas las aplicaciones son aplicaciones Win32, y el subsistema Win32 no controla la ejecución de aplicacionesquenoseanWin32.Cuandoelusuarioejecutaunaaplicaciónquenoreconoceel subsistema Win32, el subsistema determina qué clase de aplicación es, y llama a otro subsistema para ejecutarla, o al código para inicializar un entorno MS-DOS en el cual poder ejecutar la aplicación (ver figura ). Cadaunode los subsistemasdeentornoproporcionanunAPIqueesutilizadoporsusaplicaciones y el subsistema cliente. Por ejemplo, el subsistema Win32 proporciona el API de Windows de 32 bits, OS/2 el API de OS/2. Las aplicaciones no pueden mezclary enlazar rutinas API de subsistemas distintos porque cada subsistema de entorno opera de forma diferente? Por ejemplo, un handle de archivo creado por el subsistema Win32 no se puede trasladar al subsistema POSIX. Es más,esasaplicacioneshíbridasnoseejecutaríanen los sistemasoperativosMS-DOS,Windows, POSIX, u OS/2. El MS-DOS y la emulación de Windows de 16 bits se suministra por un subsistema de entorno llamado MáquinaDOSVirtual(VDM,virtualDOSmachine),queproporcionaunentornocompletodeuna máquinaMS-DOS.LasaplicacionesenMS-DOS y las basadasenWindowsde16bitsseejecutan dentrodelcontextodeprocesosVDM, y adiferenciadeotrossubsistemasdeentorno,pueden ejecutarse múltiples procesos VDM al mismo tiempo. Puesto que el subsistema Win32 maneja todas las salidas de video, los demás subsistemas de entorno deben dirigir hacia éI sus propias salidas de video para que se visualicen. El VDM, al ejecutar aplicaciones Windows de 16 bits, traduce las llamadas de salida de las aplicaciones en llamadas a Win32 y las envía al subsistema Win32, mediante mensajes, para mostrar dichas salidas y POSIX,asícomocualquiernúmerodeVDMejecutando enpantalla.LossubsistemasdeOS/2 aplicacionesbasadasenMS-DOS,dirigen las salidasenmodo-carácterdesusaplicacionesal subsistema Win32, que muestra dichas salidas en ventanas de modo-carácter denominadas consolas. Unsubsistemadeentornopuedesoportarmuchasaplicacionescliente.Cadasubsistemahaceun seguimientodesusclientes y mantienelainformaciónglobalquecompartenlasaplicacionescliente. Aunque puedan ejecutarse varias VDMy subsistemas de entorno a la vez, Win32 es el Único subsistema que se hace visible. De caraal usuario la impresión es que Windows ejecuta todas las aplicaciones. 72 Servicios nativos Los subsistemasdeentornoimplementansusfunciones API llamandoa los serviciosnativosde Windows NT, queson los servicios del sistema proporcionados por los componentes individuales del ejecutor de NT. El administrador de memoria virtual proporciona los servicios de asignación y liberación de memoria, por ejemplo, mientras que el administrador de procesos proporciona servicios para crear y eliminar los procesos e hilos. Como ilustra la figura 2-1 1, cuando un subsistema llama a un servicio nativo de Windows NT, el hardware detecta la llamada y transfiere el control al ejecutor. El servicio se ejecuta entonces en modo kernel. 73 FUNCIONAMIENTO EN RED 225933 Durante el desarrollodeWindows NT,unopodíapasearporlassalasocupadas por elequipode desarrollo y ver quizás ala mitad de las personas llevando alguna de las muchas camisetas que se repartían entre los trabajadores de Microsoft en una u otra de las reuniones, o por lograr algún objetivo. Hastahacepoco,lasredesdeordenadorespersonaleseranañadidasgeneralmenteasistemas operativos existentes cuando se presentaba la necesidad de la comunicación entre ordenadores. Por ejemplo,aMicrosoftLANManageramenudose le denomina"sistemaoperativo de red",pero en realidadesunconjuntodesofisticadasaplicacionesydriversqueañadencaracterísticasdereda sistemasoperativosexistentes (en concreto, MS-DOS, OS/2y UNIX). Suministraprestacionestales como cuentas de usuario, seguridad de recursos, y mecanismos de comunicación entre ordenadores, incluyendovíasdecomunicación(pipes) con nombreybuzones de correo. Aunque las primeras versiones de LAN Manager todavía realizan estas funciones cruciales para otros sistemas operativos, en Windows NT, el software de funcionamiento en red ya no está implementado como una capa que se le añade al sistema operativo.En lugar de eso, es una parte del ejecutor de WindowsNT, con las características listadas arriba incluidas en el sistema operativo. Así, ¿qué significa que el funcionamiento en red forma parte del sistema? Esta pregunta tiene varias respuestas, pero la más básica es que el software de trabajo en red peer-to-peer o de igual-a-igual (también llamado grupo de trabajo) está incluido en el producto Windows NT. El sistema está equipado para soportar copia de archivos, correo electrónico, e impresión remota sin que sea necesario que el usuario instale un software de servidor especial en ninguna de las máquinas. Debido a que el funcionamiento en red es una parte del sistema operativo, el software de red puede aprovechar los interfaces de sistema operativo internos utilizados por otros componentes del ejecutor de WindowsNTparaoptimizar su rendimiento.Esteasunto se tratacondetalle más adelanteeneste capítulo. Además de incluirlascaracterísticasdefuncionamientoen red en el sistemaOperativo, el objetivo predominantede la aplicación de reddeWindows NT, comodescribióDaveThompson, jefe de desarrollo del equipo de red de Windows NT, fue proporcionar a los fabricantes de software y hardware de red la posibilidad de "enchufar y jugar" (empezar a funcionar inmediatamente) con NT. Con esto, éI queda decir que las redes, drivers de red, y servidores de red (como Novel1 NetWare, Banyan VINES, y Sun NFS) existentes pueden interactuar e intercambiar datos con los sistemas Windows NT fácilmente. Con tantos protocolos, tarjetas y drivers de red que soportar, Microsoft tenía que apoyarse en otros fabricantes que le ayudaran a producir varias partes del software de red de Windows NT. Esta tarea está facilitada, porque Windows NT contiene mecanismos que posibilitan que el softwarered de integrado sea cargado o eliminado del sistema operativo, y los mismos mecanismos pueden utilizarse para cargar o eliminar otro software de red. Además de permitir la carga y descarga del software de red, entre los objetivos del funcionamiento en red de Windows NT se incluyen los siguientes: lnteroperar con versiones existentes de LAN Manager que se ejecutan en otros sistemas operativos. Permitir que las aplicaciones (sin modificarsu código) accedan a sistemas de archivos que no sean de Microsoft, en otras redes que no sean LAN Manager. Proporcionar las prestaciones apropiadas para construir aplicaciones distribuidas, tales como Microsoft SQL Server, aplicaciones de procesamiento de transacciones, etc. Estecapítulopresentaalgunasdelascaracterísticasquehacen Único el funcionamiento enredde Windows NT. La primera sección describe los principales componentes del funcionamiento en red y sus conexiones a los primeros productos de funcionamiento enreddeMicrosoft.Lasegundasecciónse centrasobre el significadode"funcionamientoenredcomopartedelsistema".Latercerasección Examina el diseño abierto de red de Windows NT, que permite que LAN Manager, NetWare, y otros componentesde red sean cargados en el sistema dinámicamente. La cuarta seccióndescribealgunasdelasformasenlasqueestáequipadoWindowsNTparasoportar 74 Servicios nativos Los subsistemasdeentornoimplementansusfunciones API llamandoa los serviciosnativos de Windows NT, que son los servicios del sistema proporcionados por los componentes individuales del ejecutor de NT. El administrador de memoria virtual proporciona los servicios de asignación y liberación de memoria, por ejemplo, mientras que el administrador de procesos proporciona servicios para crear y eliminar los procesos e hilos. Como ilustra la figura 2-11, cuando un subsistema llama a un servicio nativo de Windows NT, el hardware detecta la llamada y transfiere el control al ejecutor. El servicio se ejecuta entonces en modo kernel. 73 aplicacionesdistribuidasatravésdesusprestaciones devíasdecomunicación(pipes)connombre, buzonesdecorreos,yllamadasdeprocedimientoremoto'&(RPC).Laúltimaseccióndescribeel funcionamientoenred avanzado y las prestacionesdeseguridaddistribuida de WindowsNT,que soporta las necesidades de grandes redes de ordenadores, como por ejemplo, las redes que abarcan toda una empresa. Antecedentes El funcionamiento en red esun asunto complicado, empapado en notas a pie de página históricas, e inundado de acrónimos (incluso cuando la historia entera del funcionamiento en red de los ordenadores tiene sólo unas dos décadas de edad). En su infancia, el funcionamiento en red simplemente significaba la conexión de dos ordenadores con un cable y permitir que los archivos fueran transferidos de uno a otro a través de dicho cable. Con el tiempo, los fabricantes de ordenadores desarrollaron arquitecturas de red únicas que trabajaban dentro de sus propios sistemas pero no a través de diferentes tipos de sistemas. En nuestros días, sin embargo, es común que tanto los individuos como las empresas tengan una mezcolanzade hardware de ordenador, y que todos los componentes se comuniquen. En algunos aspectos, el reto de mezclar diferentes arquitecturas de red se parece al problema planteado don los dispositivos de E/S que deben soportarlos sistemas operativos. Abundan las incompatibilidades, y hay que establecer un modelo en el cual encajen los diferentes componentes. En Windows NT, el software de funcionamiento en red está implementado en gran parte como una serie de sofisticadas extensiones del sistema de EISde NT. Esto tiene sentido sise entiendeel funcionamiento enred como el medio por el cual los usuarios y las aplicaciones pueden acceder, no sólo a los recursos locales, sino también a recursos remotos tales como archivos, dispositivos, al final, y procesadores. Antes de examinar el software de funcionamiento en red de Windows NT, las siguientes dos secciones tratanprimerosobre los precursoresdealgunos de los componentesdelfuncionamiento en redde Windows NT, y después sobre cómo esos componentes encajan en el modelo estándar de funcionamiento en red. ' Historia La historia de Microsoft en el negocio del funcionamiento en red comienza con la versión 3.1 de MSDOS. Esta versión de MS-DOS añadía al sistema de archivos FAT extensiones necesarias sobre cierre de archivos y cierre de registro, que permitíanque más de un usuario accediera a los archivos MS-DOS. Con la liberación dela versión 3.1 de MS-DOS en 1984, Microsoft también liberó un productodenominadoMicrosoftNetworks,alquesehacereferenciademanerainformalcomo"MSNET". MS-NET estableció algunas tradiciones que aún perduran en LAN Manager y ahora en Windows NT. Por ejemplo,cuando un usuario o una aplicaciónemitían una peticióndeE/Sdestinadaa unarchivo, directorio, o impresora remota, MS-DOS detectaba la referencia de red la y pasaba a un componente del software MS-NET denominado redirector. El redirector de MS-NET aceptaba la solicitud y la enviaba, o "redirigía" aun servidor remoto. Aunque completamente rediseñado y mucho más sofisticado, el funcionamiento en red de Windows NT también incluye un redirector. De hecho puede incorporar múltiples redirectores, cada uno de los cuales dirige las solicitudes de E/S a sistemas de archivoso dispositivos remotos. Otra parte de MS-NET que se ha conservado en Windows NT es su protocolo de bloque de mensaje del es el conjunto de regias y servidor (SMB, Server message block). Dicho de manera sencilla, un protocolo convencionesporlacualdosentidades, en estecaso,ordenadores, se comunican.Elsoftwarede funciona-mientoenredgeneralmenteconsta de múltiplesniveles de protocolossituadosencapas. Dependiendo de con qué ordenadores se vaya a comunicar un sistema, puede soportar (como en el caso de Windows NT) diferentes protocolos en los diferentes niveles dela jerarquía. El protocolo SMB de MS-NET es una especificación de alto nivel para formatear mensajes y enviarlos a través de la red. Un API denominado inferfaz NetBlOS se utilizaba para pasar solicitudes de E/S estructuradas en el formato SMBaunordenadorremoto. El protocolo SMB yelAPINetBlOSfueronadoptadosennumerosos productos dela industria del funcionamiento en red y también aparecieron en Windows NT. Otro descendiente de MS-NET es el servidor de red. El servidor de red de MS-NET era un software que residía en el ordenador remoto, transformándolo en un servidor de archivos e impresión dedicado: El 75 software simplemente monitorizaba la conexión con la red y esperaba la llegada de los SMB. Entonces los desempaquetaba, determinaba lo que solicitaban, llevaba a cabo la operación (como por ejemplo,leerdatosdeunarchivo),ydespuésenviabadevuelta los resultadosenotro mensaje SMB. El término servidor se utiliza a menudo en el contexto del funcionamiento en red, para referirse a un ordenador que está configurado para aceptar peticiones de unordenadorremoto.Sin embargo, puede pensar que un servidor de red es funcionalmente equivalente a un servidor local(unsubsistemaprotegido,según la terminología deWindows NT) queaceptapeticionesdeun proceso de otra máquina en lugar de un proceso de la misma máquina. El software de funcionamientoen red que forma parte de Windows NT incluye un servidor de red básico que habla el protocolo SMB (haciéndolo compatible con MS-NET y LAN Manager). Además, Windows NT puede cargar otros servidores de red y ejecutarlos junto a su servidor interno. Para grandes redes de empresa,estarácompatibleunproductoadicional,tentativamentedenominadoLANManagerfor Windows NT. Transformará una Workstation de red en un avanzado servidor de dominio. Un servidor de dominio tiene la característica de compartir cuentas de usuario e información de seguridad con múltiples sistemas asociados, agrupados juntos en un dominio de red, y con otros dominios de red de confianza. También proporciona prestaciones que posibilitan características avanzadas como por ejemplo, discos tolerantes a fallos. Estas capacidades permiten a Windows NT soportar las necesidades de grandes redesde empresa. Incidentalmente, MS-NET también incluye un conjunto de utilidades y una sintaxis de comandos para acceder a discos e impresoras remotas. Como se podía suponer, incluye la nomenclatura NET USE X: \\SERVER \\SHARE. Los nombres precedidos de la cadena \\ indican nombres de recursos de la red se denominan nombres de convención de nombrado uniforme (UNC). El modelo de referenciaOS1 AndrewTanenbaum,ensulibroComputerNetworks,defineunareddeordenadores como "una colección interconectada de ordenadores autónomos".3 Es decir, cada ordenadores físicamente independiente y ejecuta su propio sistema operativo. Este es el entorno para el que fue diseñada la arquitectura de red de Windows NT. El objetivo del softwarede redes tomar una petición (normalmente una petición de E/S) de una aplicación deunamáquina,pasarlaaotramáquina,ejecutar la peticiónen la máquinaremota,ydevolver los resultados ala máquina original. Lograr esto requiere transformar la petición varias veces en el camino. Una petición de alto nivel, como "lee x número de bytes del archivo y en la máquina" requiere que el software determine cómo llegar ala máquina z, yelsoftware de comunicación que esamáquinaentiende.Despuéshayquecambiarla solicitud para transmitirla a través de la red, por ejemplo, dividirla en cortos paquetes de información. Cuando la petición alcanza el otro lado, debe comprobarse que está completa, debe decodificarse, y enviarse al componente correcto de sistema operativo para ejecutar la petición. Finalmente, hay que codificar la respuesta para enviarladel vuelta a travésde la red. Para ayudar a que los diferentes fabricantes de ordenadores estandarizaran e integraransu software de funcionamientoenred, la OrganizaciónInternacional de Estándares (ISO, InternationalStandars Organization) definió un modelo software para enviar mensajes entre las máquinas. El resultado es el 051, Open modelodereferenciapara la interconexióndesistemasabiertos(modelodereferencia Systems Interconnection).El modelo define siete capas de software, como muestra la figura 9-1. El modelo de referencia OS1 es un esquema idealizado que pocos sistemas implementan con precisión, pero se utiliza con frecuencia para encuadrar el estudio los de principios del funcionamiento en red. Cada capa en una máquina supone que está "hablando" con su capa análoga de la otra máquina. Ambas máquinas"hablan"el mismo lenguaje, o protocolo,en el mismo nivel.Enrealidad,sinembargo,una transmisión de red debe descender por cada capa de la máquina cliente, transmitirse a través dela red, ydespuésascender por cadacapade la máquinadestinohastaquealcanzaunacapaquepuede entender e implementarla petición. El propósito de cada capa del modelo es proporcionar servicios a las capas más altas y abstraer cómo se implementan los servicios en las capas más bajas. Detallar el propósito de cada capa va más allá del alcance de este libro, pero a continuación se dan unas breves descripciones de cada una de ellas: 76 Capa de aplicación (nivel 7). Controla la transferencia de información entre dos aplicaciones de red, incluyendo funciones como las comprobaciones de seguridad, identificación de las máquinas participantes, e iniciación del intercambio de datos. Capadepresentación(nivel 6). Controlaelformatode los datos,incluyendocuestionescomo si colocar un fin de línea en el retomo de carrolalimentación de línea (CR/LF)o sólo retomo de carro (CR),si los datos son comprimidoso codificados, etc. Capadesesión(nivel 5). Gestiona la conexiónentrelasaplicacionesqueestáncooperando, incluyendo sincronización de alto nivel y seguimiento de qué aplicación está "hablando" y cuál está "escuchando". Capa de transporte (nivel4). Divide el mensaje en paquetes y les asigna números de secuencia para asegurarqueserecibentodos y enelordencorrecto.Tambiénprotegealacapadesesiónde los efectos de cambios en el hardware. Capa de red (nivel 3).Controla el encaminamiento, control de la congestión, y funcionamiento de red. Es la capa más alta que entiende la topología de la red, es decir, la configuración física de las máquinas en la red, el tipo de cableado utilizado para conectarlas, y diversas limitaciones de ancho de banda, longitud delos cables que se pueden utilizar, etc. Capa de enlace (nivel 2). Transmite las tramas de datos de bajo nivel, espera el reconocimiento de que han sido recibidas, y retransmite las tramas que se pierden en líneas no fiables. Capa física (nivel 1). Pasa los bits al cable de la red o al medio de transmisión física que se esté empleando. Las líneas punteadas de la figura 9-1 representan los protocolos utilizados para transmitir una petición a una máquina remota. Como ya se ha dicho, cada capa de la jerarquía supone que está hablando conia capa análoga de la otra máquina, y ambas utilizan un protocolo común. La colección de los verdaderos protocolos a través de los cuales una petición recorre su camino ascendiendo y descendiendo por las capas de la red se denomina stack (pila) de protocolos. La figura 9-2 representa los componentes del funcionamientoen red de Windows NT, cómo encajan en el modelo de referencia OSI, y qué protocolos utilizan entre las capas. Los diversos componentes se describen más adelante en este capítulo. 77 .. . 1. u Entwno NDISY Modelo OS1 y componenteS .del funcionamiento en red de Windows NT Comomuestra la figura,lascapas OS1 nosecorrespondenconelsoftwarereal. El softwarede transporte, por ejemplo, cruza frecuentemente varias fronteras. De hecho, a menudo se hace referencia al conjunto de las cuatro capas inferiores de software como el "transporte".Ya los componentesde software que residen en las tres capas superiores se les denomina "usuarios del transporte". El resto de este capítulo examina los componentes del funcionamiento en red mostrados en la figura anterior(asícomootroscomponentesnomostrados en la figura),cómoencajanjuntos, y cómose relacionan con Windows NT para formar un todo. Funcionamiento en red integrado La sección previa trata cómo algunos delos componentes del funcionamiento en red de WindowsNT se OSI. La figura sig muestracómoencajandichos corresponden con elmodelodereferencia componentes en Windows NT. 78 I - DrhlIHs dew Visión simplifkada dsl lado d e l Cliwds la EfS de'la red El software de modo usuario (el API de E/S de Win32, por ejemplo) emite una petición de E/S remota llamando a los servicios nativos de E/S de Windows NT. Tras algún procesamiento inicial (descrito más adelante), el administrador de E/S crea un paquete de petición de E/S (IRP) y pasa la petición a uno de sus drivers de sistemas de archivos registrados (en este caso, el redirector de Windows NT). El redirector remite elIRP a los drivers de la capa más baja (los drivers de transporte), que lo procesan y lo sitúan en la red. Cuando la petición llega al Windows NT de destino, es recibida por los drivers de transporte y luego pasa a través de más drivers. La figura 9-4 ilustra la recepción de una petición de escritura de red. Una operación de lectura seguiría el mismo camino hacia el servidor, con los datos devueltos a través del camino inverso. Más adelante en este capitulo se presentan más detalles sobre el redirector, el servidor, y los drivers de transporte. 79 dedisco YS de la red Los A P I de red Windows NT proporciona diversos medios para que una aplicación acceda a la red: El APIdeE/SdeWín32.Lasrutinas de E/S realizanfuncionesestándares de apertura,cierre, lectura, escritura, y otras más. Pasan a través de la red sólo cuando el archivo o la vía de comunicación (pipe) con nombre a la que se pretende acceder reside en una máquina remota. Generalmente esto significa que el nombre de archivoes un nombre UNC, o que el nombre comienza con una letra de disco que se refiere a una máquina remota. El API de red de Win32 (WNet). Estas rutinas son útiles para aplicaciones, tales como el Windows File Manager (el administrador de archivos de Windows), que se conecta e inspecciona sistemas de archivos remotos. Las rutinas de WNnet pueden ser utilizadas para inspeccionar sistemas de archivos Microsoft u otros, a través de redes como LAN Manager, NetWare,y VINES, por citar algunas. LosAPIdelasvíasdecomunicación(pipes)connombre y buzonesdecorreos de Win32. Proporcionan un interfazde alto nivel parael paso de mensajes entredos procesos, independientemente de si el proceso destinatario es local o remoto. Los buzones de correos son parecidos,. excepto que en lugardeproporcionaruncamino de comunicaciónunoauno"entre el remitente y el destinatario, proporcionan mecanismos de comunicación "muchos a uno" y "uno a muchos". Los buzones de correo son útiles para difundir mensajes entre cualquier número de procesos. El APINetBIOS.EsteAPIproporcionacompatibilidadparaaplicacionesMS-DOS,Windowsde32 bits, y OS/2 que pasan corrientes de datos directamente a través de la red. También se suministra una nueva versión para32 bits. 80 El API de Windows Sockets. Este nuevo API proporciona sockets o enchufes de 16 y de 32 bits; que son un interfaz estándar tipo UNIX para el funcionamiento en red. Windows NT también proporciona capas más bajas decódigoquesoportanaplicacionesUNIXypermitenqueWindowsNTparticipe fácilmente en la red de área extendida Internet. Lacaracterísticadellamadadeprocedimientoremoto(RPC).librería en tiempodeejecucióny el compilador permiten que los programadores escriban fácilmente aplicaciones distribuidas (ver secci6n 9.4.1 para más información). Cada API encuentra su camino haciala red a través dc diferentes rutas.La figura 9-5 muestra rutinasde E/SdeWin32quecIsubsistemaWin32irnplementallamandoa los servicios del sistema de EIS de El APIdeWindows WindowsNT.4 El administrador de E/S entoncesmanda los IRPalredirector. Sockets y el API deNetBIOS, en contraste, son DLL que llaman a servicios deE/S de Windows NT, y el administrador de E/S lmanda los IR? a los drivers de Windows Sockets y NetBlOS respectivamente. Como muestra la figura sig, llama al API de WNet (implementado como una DLL) dando un rodeo a través del componente de funcionamiento en red denominado servicio de Workstation. En la jerga del funcionamiento en red, el término servicio se refiere a un proceso servidor que proporciona una función específica (refiriéndose aun trabajo) y que quizás exportaun AH que soporte esa función. Las funciones de servicio incluyen las siguientes: Administrar el redirector integrado(el servicio de workstation) y el servidor(el servicio de servidor). Enviar mensajes de alerta a los usuarios conectados (el servicio de alerta). Por ejemplo, cuando se llena el disco duro. Recibir mensajes de otros sistemas (el servicio de mensajería), como por ejemplo, la notificación de que se ha completado un trabajo de impresión. 81 Diferentes rutas para llegara la red Unservicioesunprocesoparecidoa unsubsistemaprotegidodeWindowsNT.Algunosservicios simplemente se ejecutan en modolatente(ensegundoplano, o background),mientras que otros los hilosdeotrosprocesospuedenllamarenviandomensajes al servicio.A proporcionanAPIque diferencia de los subsistemas protegidos, los servicios que proporcionan API generalmente utilizan la característica de paso de mensajes RPC en lugar de la LPC para comunicarse con los clientes. Utilizar las RPC pone el servicio a disposición de los procesos de máquinas remotas, así comode los procesos locales (ver sección9.4.1 para más información). El serviciodeWorkstationesesencialmenteuna"cubierta" de modousuarioparaelredirectorde Windows NT. Realizael trabajo para cl soporte del API de WNet, proporciona funciones de configuración paraelredirector, y contienecódigodemodousuarioparadevolverlasestadísticasdelredirector. 82 Cuando una aplicación llama auna función del API de WNet,la llamada pasa primero al Un componente denominado el controlador de servicio es responsable de cargar y poner en marcha los servicios de Windows NT. Es también el medio por el cual aquellos drivers que no se han cargado al iniciar el sistema se pueden cargar y descargar después. Muchos de los componentes de funcionamiento en red están implementadoscomodriversypor lo tanto,soncargadosenelsistema(oeliminadosde éI) por el controlador de servicio. Componentes de funcionamiento en red integrados Aunque muchos componentes de software están involucrados en el funcionamiento en red de Windows NT, dos de los más importantes son los que tienen la historia más larga en Microsoft: el redirector y el servidordered.Como en el softwareoriginalde MS-NET, el redirectordirigelaspeticionesdeE/S emitidas localmente a un servidor remoto, y el servidor recibe y procesa tales peticiones. Desde luego, excepto por los nombres, poco más acerca del redirectoro el servidor se parece al software original. Los originales fueron escritos en lenguaje ensamblador y entrelazados en tomo al software del sistema MSDOS existente. Aunque el nuevo redirector y servidor forman parte de Windows NT,nodependen de la arquitectura hardware en la que se está ejecutando el sistema operativo. Están escritos en C e implementados como drivers de sistemasdearchivos,quepuedensercargados o eliminadosdelsistemaencualquier momento. Pueden también coexistir con los redirectores y servidores de otros fabricantes. lmplementar el redirector y el servidor como drivers de sistemas de archivos les hace ser parte del ejecutor de Windows NT. Como tales, tienen acceso a los interfaces especializados que proporciona el administrador de E/S a los drivers. Estos interfaces, a su vez, fueron diseñados teniendo presentes las necesidades de los componentes de red. Este acceso a los interfaces de driver, más la posibilidad de llamar directamente a funciones del administrador de cache, contribuye enormemente a aumentarel rendimiento del redirector y el servidor. El modelo de driver estratificado del administrador de E/S imita la estratificación natural delos protocolos de red. Puesto queel redirector y el servidor son drivers, pueden ser colocados en capas sobre cuantos drivers de protocolo de transporte sea necesario.Estaestructurahace que los componentesderedseanmodulares,ycreaunas transiciones eficientes desde la capa del redirector o del servidor, hacia la capa de transporte y la capa física de la red. Redirector Un redirector de red proporciona las prestaciones necesarias para que una máquina basada en Windows NT acceda a los recursos de otras máquinas de la red. El redirector de Windows NT puede acceder a archivos, vías de comunicación (pipes) con nombre, e impresoras remotas. Debido a que implementael protocolo SMB, trabaja conlos servidores existentes de MS-NET y LAN Manager, permitiendo el acceso a los sistemas MS-DOS, Windows yOS/2 desde Windows NT Los mecanismos de seguridad aseguran que los datos de Windows NT compartidos en la conexión de red están protegidos de accesos no autorizados. AI igual que un driver de sistema de archivos, el redirector funciona como otros drivers. Cuando se carga en el sistema, su rutina de inieialización crea un objeto Devicekedirector) pararepresentarlo.Larutinadeinicializacióntambién dispositivo(denominado establece códigos de función que representan las operaciones que controlan y registran los puntos de entrada del driver (rutinas de despacho) para esas operaciones. Cuando el administrador de E/S recibe una petición de E/S de red, crea un IRP y llama a una rutina de despacho del redirector, pasando de largo el IRP. Después de queel redirector procesa la petición (al acceder ala red), se completa el IRP, y se devuelven los resultados al solicitante. Entreelenvíodeunapeticiónylarecepción de unaréplica,elredirectordesempeñaunatarea primordial: proporcionar un "sistema de archivos" que se comporte como un sistema de archivos local aunque funcione sobre un medio inherentemente informal (una red). El enlace físico de un ordenador a otro sencillamente falla mucho más a menudo que el enlace entreun ordenador y su disco duro o unidad de disco flexible. Cuando falla el enlace, el redirector es responsable de recuperarla conexión, hasta donde sea posible, o de que el fallo ocurra de manera que las aplicaciones puedan volver a intentar la operación. El redirector utiliza varias técnicas para lograr esto. Por ejemplo, vuelve a conectar tranquilamente a un servidor cuando se pierde una conexión. También recuerda qué archivos 83 estaban abiertos y vuelve a abrirlos bajo ciertas circunstancias. (Bajoel redirector, la capa de transporte asegura la fiabilidad en las transmisiones de datos a nivel de bits). AI igual que otros drivers de sistemas de archivos, el redirector debe trabajar dentro del modelo de E/S asíncrono,permitiendooperacionesdeE/Sasíncronocuandosonemitidas.Cuando una peticiónde modo usuario es emitida asincrónicamente (comose describía en el Capitulo 8) el redirector de red debe la mayoría de los casos,una volverinmediatamente,haya o noterminadolaoperacióndeE/S.En petición de red de E/S asíncrona no termina inmediatamente, así que el redirector debe esperar a que se complete tras devolver el control al solicitante. Paradójicamente, el código de driver es activado siempre por un hilo que llama, dentro del contexto de ese hilo. No tiene espacio de direcciones de su propiedad ni otros hilos. ¿Cómo puede entonces el driver llamar a otra rutina para que espere? Este problema no es exclusivo de los redirectores; la mayoría de los drivers de sistemas de archivos presentan elmismo dilema. En el diseño del sistema de E/S original, los drivers de sistemasdearchivosquenecesitabanrealizarprocesamientoensupropiocontexto,simplemente creaban un proceso de modo kernel asociado con el driver y utilizaban sus hilos para llevar a cabo el procesamientoasíncrono.Sinembargo,estasolucióneracostosaentérminosdeutilizaciónde la memoria del sistema. Por lo tanto, fue ideada una nueva solución. Windows NT tiene un proceso especial del sistema para inicializar el sistema operativo cuando se pone en marcha. Este proceso tiene varios hilos trabajadores que entran en un bucle, esperando a ejecutar las peticiones en nombre de los drivers y otros componentes del ejecutor que realizan trabajos asíncronos. Si un driverde sistema de archivos necesitaun hilo para realizarun trabajo asíncrono, sitúa enla cola de este proceso especial un elemento de trabajo antes de devolver el control y uncódigodeestado al solicitante original. Se activa un hilodel proceso del sistema que lleva a cabo las operaciones necesarias para procesar la petición de E/S y completarel IRI' del solicitante original .El redirector envía y recibe los SMB para realizar su trabajo. Aunque por simplicidad, la figura 9-2 representa al redirector y al servidor como componentes de la capa de sesión del modelo OSL de funcionamiento en red,el protocolo SMB es en realidad un protocolo de la capa de aplicación, como ilustrala figura 9-6. El interfaz sobre el que el redirector envía sus SMB se denomina interfaz de driver de transporte (TDI, transport driver interface). El redirector llama a rutinas del TDI para transmitir los SMB a los diversos drivers de transporte cargados en Windows NT. Para llamar a funciones del IDI, el redirector debe abrir un canal denominado circuito virtual hasta la máquina de destino y después enviar sus SMB sobre ese circuitovirtual El redirectormantiene un circuitovirtualparacadaservidoralcualestéconectado Windows NT, y multiplexar las peticiones destinadas a ese servidor a través mismo del circuito virtual. La capa de transporte bajo el redirector determina cómo implementar realmente el circuito virtual y enviar los datos a través dela conexión de red. LarryOsterman,eldesarrolladoquetransformóelredirectordeMS-NETenelredirectorde LAN Manager 1.0 para MS-DOS, y después lo volvió a escribir para LAN Manager 2.0, también diseño el redirector de Windows NT. Además de mejorar la fiabilidad,lese exigió que proporcionan el cien por cien de compatibilidad conel protocolo SMB existente. Para lograr esto, utilizó el mismo protocolo que para pasar mensajes a servidores de nivel inferior (los servidores MS-NET yLAN Manager existentes). Mantener este protocolo permite que Windows NT interactúe conlos servidores de Windows, OS/2 o MS-DOS que ejecuten LAN Manager. Para las transmisiones entre los sistemas Windows NT. Ostermanmejoróelprotocolo SMB parasoportarlasoperacionescomunesdelsistemade E/S de Windows NT. Por ejemplo, el protocolo mejorado puede acomodar operaciones específicas de Windows NT, como por ejemplo, abrir un archivo con acceso de borrado, abrir un directorio, situar listas de control deacceso(ACL)enarchivosconpropósitosdeseguridad,yrealizaroperacionesdeconsultapara recuperar información acerca de archivos. Además, el nuevo protocolo SMB pasa las cadenas de texto como caracteres Unicode, para asegurar una transmisión correcta de los caracteres de conjuntos de caracteres internacionales. Servidor AI igualque el redirector, el servidordeWindowsNTestáescritoparateneruncienporciende compatibilidadcon los protocolosSMB de MS-NETyLANManager.Estacompletacompatibilidad permite que el servidor procese las peticiones que se originan, no sólo en otros sistemas Windows NT, AI igual que el sino también en sistemas en los que se esté ejecutando el software de LAN Manager. redirector, el servidor está implementado como un driver de sistema de archivos. 84 Alguien podría preguntarse por qué algo llamado "servidor", no está implementado como un proceso servidor. Podría ser razonable esperar que un servidor de red funcionara como un subsistema protegido (un proceso cuyos hilos esperan alas peticiones que llegan dela red, las ejecutan, y después devuelven el resultado a través de la red). Este método era la elección más obvia, y Chuck Lenzmeier la consideró cuidadosamentecuandocomenzó el diseñodelservidordeWindowsNT.Lenzmeier, el principal desarrolladordelservidor,con siete añosdeexperienciaen el funcionamientoenredbasadoen VAXNMS y en RPC, decidió implementar el servidor como un driver de sistema de archivos. Aunque el servidor no es un driver en el sentido usual, y aunque no gestiona un sistema de archivos, utilizar el modelo de driver proporciona ventajas respectolaaimplementación del servidor como un proceso. La principal ventaja es que,como un driver, el servidor existe dentro del ejecutor de Windows NT y puede llamar directamente al administrador de cache de WindowsNT para optimizar sus transferencias de datos. Por ejemplo, si el servidor recibe una petición para leer una gran cantidad de datos, llama al administrador de cache para localizar los datos en el cache (o para cargar los datos en el cache si aún no están allí) y para cerrarlos datos en memoria. El servidor entonces, transfierelos datos directamente desde el cache a la red, evitando de ese modo operaciones innecesarias de acceso al disco o copia de datos. De manera, similar, si se le pide que escriba datos, el servidor llama al administrador de cache los datosquese van arecibir,ypara que les seaasignadauna paraquereserveespaciopara localización de cache. Después, el servidor escribelos datos directamente en el cache. AI escribir en el cache en lugar de en el disco, el servidor puede devolver el control al cliente más rápidamente. El administradordecacheescribedespués los datos al disco en modo latente (utilizandoel software de paginación del administrador de VM). AI llamar al administrador de cache, el servidor está en efecto, asumiendo algunas de las responsabilidades del administrador deE/S en lo que respecta a lograr un procesamiento más agilizado. Otraformaen la queelservidorasumeestepapelesalformatearsuspropiosIR?ypasarlos directamente a los drivers de NTFS, FAT y HPFS. Puede también elegir copiar datos en o desde el cache en lugar de crear IRP. Si fuera un subsistema de modo usuario (o incluso uno de modo kernel), tendría que llamar a los servicios de E/S de Windows NT para procesar las peticiones que llegaran, lo cual requeridaun poco más de sobrecarga. Como driver de sistema de archivos, el servidor también tiene un poco más de flexibilidad de la que tendría como proceso.Por ejemplo, puede registrar tina rutina de terminación de E/S, lo cual permite que seallamadoinmediatamentedespuésdeque los drivers de lascapasmásbajasfinalicensu procesamiento, de forma que puede llevar a cabo cualquier procesamiento posterior que sea necesario. Aunque el servidor de Windows NT está implementado como un driver de sistema de archivos, otros servidores pueden ser implementados o como drivers o como procesos servidores. AI igual que el redirector, el servidor utiliza el proceso de sistema inicial para controlar las operaciones de E/S asíncronas y aquéllas operaciones con una elevada sobrecarga utilizadas ocasionalmente que no requieren una velocidad óptima, por ejemplo, abrir un archivo. Las operaciones que requieren la mayor velocidad, como por ejemplo, las operaciones de lectura y escritura, son ejecutadas directamente en el driver siempre que sea posible para evitar la sobrecarga de una selección de contexto. Aunque requiere unaseleccióndecontexto,utilizar el procesodesistemainicialpararealizarlasoperacionesde red permite que el servidoresperea los handles de objeto cuando sea necesario o quetomefaltasde página, y ninguna de estas operaciones pueden hacerse cuando se ejecuta en el contexto de afro hilo en un IRQL elevado. La posibilidad de tomar faltas de página quiere decir que menos cantidad del código de servidor debe permanecer residente en memoria. CuandoWindowsNT seponeenmarcha, el administradordeE/Scargaaquéllosdriversquese requieren primero en la secuencia de inicialización (como por ejemplo,los drivers de sistema de archivos y de disco, el driver de video, y los drivers de ratón y teclado). Cuando la secuencia de inicialización ha progresado lo suficiente para pasarde modo kernel a modo usuario, se invocaal controlador de servicio para cargar el resto de los drivers, incluyendo el servidor, el redirector ylos drivers de transporte de red. El controlador de servicio carga estos drivers llamando alas servicios del sistema de E/S, que las copian en memoria y ejecutan sus rutinas de inicialización. Cada rutina de inicialización de driver crea un objeto dispositivo y lo inserta en el espacio de nombres del administrador de objetos. El controlador de servicio puede ser invocado también en cualquier momento cuando el sistema está ejecutándose, para cargar o descargar servidores de redo para detenero poner en marcha servicios de red. 85 Resolución de nombres Uno de los principales objetivos que implementa Windows NT es extender el alcance del sistema deE/S local para incluir recursos remotos. Puesto que tales recursos son objetos, el software de funcionamiento en red debe trabajar dentro de la estructura de objetos locales para acceder a esos recursos. Cuando una aplicación abre un archivo, realmente abre un handle aun objeto archivo de Windows NT.El objeto archivo contiene datos específicos para esa "instanciade apertura" del archivo, por ejemplo, datos tales como el modelodecomparticióny el punterodearchivo. El procesamientoes el mismo cuando el archivo a ser abierto está localizado en un ordenador remoto. El administrador de objetos se involucra al crear un objeto archivo y abrir un handle él. a Como con los archivos locales, hay que resolver el nombre de archivo que abre la aplicación, es decir, el sistema operativo debe determinaren qué dispositivo está el archivo, y dónde está el archivo dentro del sistemadearchivos.Paraarchivosremotos, el sistemaoperativotambiéndebedeterminar enqué máquina está almacenadoel archivo y cómo enviar una petición ala máquina. Supóngase, que el usuario ha asignado una letra de unidad de disco a un servidor remoto emitiendo el comandoNETUSET:\\TOOLSERV\TOOLS. El serviciode Workstation creaunobjetodeenlace simbólico denominado T: en el espacio de nombres del administrador objetos de Windows NT, como muestra la figura sig. \ FbPPYo ... Redrectnr ... A: Espacio de nombres del administrador de objetos Más tarde una aplicación Win32 abre el archivo remoto T: \editor.exe. El subsistema Win32 traduce el nombre a un objeto del Windows NT,\DosDevices\T:\editor.exe y llama al ejecutor de Windows NT para abrir el archivo. Durante el procesamiento, el administrador de objetos descubre que \DosDevices\T: es un objeto de enlace simbólico y sustituye el nombre especificado por \DosDevices-T:. Como muestrala figura siguiente , \Device\Redirector es el nombre del objeto dispositivo que representa el redirector de Windows NT,y T: se refiere al recurso remoto compartido de LAN Manager, que localizará el redirector. 86 \ . Resolución del nombre de fichero de red LosobjetosdispositivoseutilizanenWindowsNTcomopuntodelanzamientohaciaunespaciode nombres de objeto que no está controlado por el administrador de objetos de Windows NT. Al analizar un nombre de objeto, si el administrador de objetos encuentra un objeto dispositivo en el PATH, llama al métododeanálisisasociadoconelobjetodispositivo.Enestecaso,elmétodoesuna rutina del administrador de EIS que llama al redirector. El redirector construye los SMB y los pasa a través de un driver de transporte a un servidor de SMB remoto, el cual abre el archivo \edítor.exe de \\TOOLSER JITOOLS. El administrador de objetos de Windows NT crea un objeto archivo local para representar el archivo abierto y devuelve un handle de objeto al solicitante. De ahí en adelante, cualquier operación sobre el handle de objeto pasa directamente al redirector de Windows NT. Un espacio de nombres de objeto parecido existe en el sistema de destino de Windows NT. El espacio de nombres de objeto contieneel nombre \Device\Server, que se refiere al driver de sistema de archivos que implementa las funciones del servidor que forma parte de Windows NT. Sin embargo, este objeto dispositivo no se utiliza cuando el servidor recibe una petición. Sólo se utiliza cuando un administrador del sistema serefiere al servidor porel nombre mientras lo gestiona. Arquitectura abierta Puesto que el servidor de red está integrado en Windows NT, podría parecer que está "cableado" allí, pero no lo está. El objetivo de conectividad inmediata de Dave Thompson dictaba que Windows NT fuera lo tanto, no sólo el redirector, el servidor y los capaz de enlazarse a una gran variedad de redes. Por drivers de transporte tienen que cargarse y descargarse dinámicamente, sino que deben poder coexistir muchos de estos componentes. Windows NT soporta redes distintas de LAN Manager de varias formas: ProporcionaaccesoasistemasdearchivosquenosondeMicrosoft,paraconexiónderecursose inspección de red, y para E/S a archivos y dispositivos remotos, a través del API común Win32 WNet). (el API Permite que estén cargados al mismo tiempo múltiples drivers para protocolos de transporte de redy que los redirectores llamen a uninterfaz Único y común para acceder a ellos. Proporciona un interfaz y un entorno para drivers de tarjetas de red (NDIS 3.0) para acceder a los drivers de transporte de Windows NT, y para ganar portabilidad hacia sistemas MS-DOS futuros. Las siguientesseccionesexaminancadaunadeestascaracterísticas,yelsoftwareempleadopara implementarlas. Acceso en modo usuarioa sistemas de archivos remotos 87 Como se dijo en la sección 9.2.1, el WNet y los APIde E/S de Win32 proporcionan dos formas de acceder a archivos de sistemas remotos (y otros recursos) a las aplicaciones modo usuario. Ambos API utilizan las características del redirector para encontrar su camino en la red. Aunque el análisis anterior se centró en el software de red que forma parte del sistema, se pueden cargar redirectores adicionales en el sistema para acceder a distintos tipos de red. Esta sección amplía el ejemplo original examinando el softwarequedecidequéredirectorinvocarcuandosesolicitanpeticionesremotasde E/S. Los componentes responsables son: Proveedordeencaminamientomúltiple(MPR, multipleprovider router). UnaDLLquedeterminaa quéredaccedercuandounaaplicaciónutilizaelAPIWNetdeWin32parasupervisarsistemasde archivos remotos. Proveedor múltiple de UNC (MUP,múltipleUNC(MUP, múltiple UNCprovider).Undriverque determina a qué red acceder cuando tina aplicación utiliza el API de E/S de Win32 para abrir archivos remotos. Proveedor de encaminamiento múltiple parael API WNet Las funciones WNet de Win32 permiten a las aplicaciones (incluyendo al Administrador de Archivos de Windows) conectarse a recursos de red, como servidores de archivos, impresoras, e inspeccionar los contenidos de cualquier sistema de archivos remoto. Puesto que el API puede ser llamado para trabajar a través de diferentes redes utilizando diferentes protocolos de transporte, tiene que haber software para enviar correctamente la petición por la redy para comprender. los resultados devueltos por los servidores remotos. La figura muestra el software responsable de esta tarea. 88 Software de proveedor múltiple Un proveedor es software que configura a Windows NT como cliente de un servidor de red remoto. Algunas de las operaciones realizadas por un proveedor WNet incluyen el establecimiento yla liberación de conexiones de red, impresión remota, y transferencia de datos. El proveedor WNet que forma parte del sistema incluye una DLL, el servicio de Workstation, y el redirector. Otros fabricantes de redes sólo necesitan suministrar una DLL y un redirector. Cuando una aplicación llama a una rutina WNet la llamada pasa directamente aIaDLL del proveedor de encaminamientomúltiple(MPR),uncomponentedereddiseñadoporChuckChan. El MPRtomala llamada y determina qué proveedor WNet reconoce el recurso al que se está accediendo. Cada DLL de 89 proveedor bajo el MPR proporciona un conjunto de funciones estándares llamadas interfaz de proveedor. Este interfaz permite al MPRdeterminaraquéredestáintentandoacceder la aplicación, y dirigir la petición al proveedor adecuado de WNet. Cuando la rutina del API WNetAddConnection() llama al MPR para conectarse con un recurso de red remoto, el MPR comprueba el registro de configuración para determinar qué proveedores de red están cargados. Los llama de uno en uno en el orden en el cual están listados en el registro, hasta que un redirector reconoce el recurso, o hasta que se ha llamado a todos los proveedores. (El orden puede cambiarse también editando este registro). La función Wnetaddconnection() también puede asignar al recurso remoto una letra de unidad o nombre dedispositivo.Cuando selellamaparahacereso,Wnetaddconnection()encaminalallamadaal proveedor de red adecuado. El proveedor, a su vez, crea un objeto de enlace simbólico de Windows NT que mapea la letra de unidad que se está definiendo al redirector (es decir, el driver del sistema de archivos remoto) para esa red. La figura ilustra cómo los nombres de recursos de red encajan en el espacio de nombres del administrador de objetos de Windows NT. AI igualqueel.redirectorintegrado,otrosredirectorescrean un objetodispositivo en el espaciode nombresdeladministradordeobjetoscuandosoncargadosen el sistemaeinicializados.Entonces, cuando el WNetuotrosAPIllaman al administradordeobjetosparaabrirunrecurso enuna red diferente, el administrador de objetos utiliza el objeto dispositivo como punto de acceso al sistema de archivosremoto.Llamaa un método deanálisisdeladministrador de EIS asociadocon el objeto dispositivo, para localizar el driver de sistema de archivos del redirector que puede manejarla petición . , Proveedor múltiple de UNC (MUP) Proveedor de UNC múltiple para la EIS de archivos de Win32 90 El proveedor múltiple de UNC (MUP), diseñado por Manny Weiser, es un componente de red parecido al MPR.Gestionalaspeticionesde E/S destinadasaunarchivo o dispositivoconunnombreUNC (nombres que comienzan con los caracteres \\, indicando que el recurso existe en la red). El MUP toma esas peticiones, y al igual que el MPR, determina qué redirectorlocal va a reconocer el recurso remoto. A diferencia del MPR, el MUP es un driver de Windows NT (cargado en el momento de arrancar el sistema) que realiza peticiones de EIS a drivers de capas más bajas, en este caso a redirectores,según muestra la figura . 91 El driver MUP recibe la petición y envía asincrónicamente un IRP a cada redirector registrado. Entonces, espera a que alguno de ellos reconozca el nombre de recurso y conteste. Cuando un redirector reconoce nombre es \\ el nombre, indica qué parte del nombre es sólo para él. Por ejemplo, si el HELENC\PUBLICUnside\scoop.doc, elredirectordeWindowsNT lo reconoceytomalacadena \ILIELEMPUBLICcomopropia.EldriverMUPcogeestainformaciónydespuésenvíapeticionesque comienzan con esa cadena, directa- mente al redirector de Windows NT, saltflndose la operación de "sondeo". El cache del driver MUP tiene una característica de time-out, de forma que después de un período de inactividad,da por terminada la asociación de cadenas con un particular. Si más de un redirector llama a un recurso particular, el driver MUP utiliza la lista de registros cargados del registro de configuración para determinar qué redirector tiene preferencia. La lista de redirectores puede reordenarse editandola base de datos del registro. Protocolos de transporte Después de que una petición de red alcanza un redirector, la petición debe entregada a la red. Durante la última década, se han desarrollado muy protocolos diferentes para transmitir información a través de los protocolos,peroalmenosdebepermitirquepuedan redes.Windowsnoproporcionatodos proporcionados. Y cuanto más fácil sea esto, mejor. En Windows NT, los protocolos de transporte están implementados con drivers, que al igualque los servidores y los redirectores, pueden cargas descargarse del sistema. En el modelo de red tradicional, un redirector que útil un protocolo de transporte concreto, debe saber qué tipo de entrada está esperar el 92 driverdeprotocolo y enviarlelaspeticioneseneseformato.Lascapasbajasredirectordebenser escritas para soportar diferentes mecanismos de paso de da para cada transporte utilizado. Windows NT evita este problema proporcionando un Único interfaz programación denominado interfaz de driver de transporte (TDI, Transp. driver interface) para redirectoresy otros drivers de red de alto nivel.El 1 permite que redirectores y servidores permanezcan independientes de los transportes. De esa forma, unaversiónúnicadeunredirector o unservidorpuedeútil:cualquiermecanismodetransporte disponible, según muestra la figura El TDIesuninterfazasíncronoindependientedeltransporte,queimplementaunmecanismode direccionamiento genérico y un conjunto de servicios y librerías. Cada driver de transporte proporcionael interfaz en su capa más alta, de manera quelos redirectores (y los servidores en máquinas Windows NT remotas) puedan llamarlosin importar qué transporte esté utilizándose por debajo del interfaz. Para enviar una petición, el administrador de EIS llama a un redirector pasándole un IRP para que lo procese. El redirector integrado controla la petición pasando SMB a través de una conexión de circuito virtual a un servidor remoto. El TDI proporciona un conjunto de funciones que pueden utilizar los redirector para enviar cualquier tipo y de datos a través del transporte. El TDI soporta transmisiones orientadas a conexión (circuito virtual) transmisionesnoorientadasaconexión(datagrama).AunqueLANManagerutilizacomunicación orientadas a conexión, el software IPX de Novel1 es un ejemplo de red que empleo comunicaciones no os siguientes transportes: orientadas a conexión. Microsoft proporciona inicialmente1 93 TransporteNetBEUl(NetBIOSExtendedUserInterface).Protocolo de transportedeárea desarrollado para operar bajo el interfaz de red NetBlOS de Microsoft. local TransporteTCP/IP(TransmissionControl Protoco//lnfernefProtocol).Setratadeunprotocolo desarrollado por el Departamento de Defensa de EE.UU. para conectar sistemas heterogéneos en una red de área extendida. TCP/IP es utilizado comúnmente en las redes basadas en UNlX y permite que WindowsNTparticipe en los famososBBS,noticias,yserviciosde correo electrónico.Eltransporte TCPllP opera en un entorno compatible con STREAMS. Otros transportesque existen o se están desarrollando en Microsoft o en otros fabricantes son: IPX/SPX (Internet Packet Exchange/SequencedPacket Exchange). Es un conjunto de protocolos de transporte utilizado por el software NetWare de Novell. TransporteDECnet. Es unprotocolopropietarioutilizadoporDigitalEquipmentCorporationquese suministra para enlazar sistemas Windows NT con redes DECnet. . . AppleTalk. Protocolo desarrollado por Apple Computer Inc., que permite sistemas a Apple Machintosh comunicarse con Windows NT. Transporte XNS (Xerox Network System). Protocolo de transporte desarrollado por Xerox Corporation que se empleaba en las primeras redes Ethernet. El entorno STREAMS merece una mención especial. Es un entorno de desarrollo de drivers para UNlX System V que permite a los drivers de transporte lograr un alto grado de portabilidad de un sistema operativo a otro. Este entorno (que tiene por encima a TDI y por debajo NDlS a 3.0) permite que muchos drivers de transporte basados en STREAMSque ya existen,puedanconectarseaWindowsNTcon pocas o ninguna modificación. Los drivers de transporte como IPX/SPX, DECnet, y otros pueden ser implementados como drivers basados en STRIEAMS o como drivers monolíticos (como por ejemplo, NetBEUl). Entorno NDlS para driversde red Los drivers de protocolo en la sección anterior no realizan labores a nivel físico. La conexión física la proporciona una tarjeta de red que, o está integrada, o se añade en una ranura de expansión de la máquina. Cada tarjeta de red (a veces denominadas adaptadores de red) es capaz de comunicarse a través de un tipo particular de cable, utilizando una topología concreta de. red5 Lastarjetasderedvienencondriversdered,queen el pasadoimplementabanconfrecuenciaun protocolo específico de red (por ejemplo, XNS o TCPIIP). Debido a que Windows NT permite cargar muchos protocolos diferentes, cada fabricantede tarjetas de red que emplee este método podría querer prescribir sus drivers para soportar varios protocolos (lo cual no es una estrategia ideal). Para ayudar a los fabricantesaevitarestetrabajoinnecesario,WindowsNTproporciona un interfazy un entorno, denominado especificación de interfaz de driver de red (NDIS, network driver lnferface specification) que aíslaa los driversderedde los detallesdelosdiferentesprotocolosdetransporte,yviceversa. Se ilustra en la figura . 94 .' Enlugarde escribir undriverespecíficodetransporteparaWindowsNT, los fabricantesderedes proporcionan el interfaz NDlS como la capa más alta de un driver de red aislado. Hacer eso permite que cualquier driver de protocolo dirija sus peticiones de red a la de red llamando a su interfaz. De esa forma, un usuario puede comunicarse a través de una red TCP/IPy una NetBEUl (o DECnet, NetWare, VINES, etc.) utilizando una tarjeta de redy un Único driver de red. EJ interfaz /NDIS ha estado disponible en LAN Manager, pero esta actualizado en Windows NT mediante la versión 3.0 deNDIS.6Laversión 3.0 esportable(escritaenC),estáactualizadaparautilizar direcciones de 32 bits en lugar de direcciones de 16 bits, y soporta multiprocesador. Como versiones anteriores,puedecontrolarmúltiplesconexionesderedindependientes y múltiplesprotocolosde transporte simultáneamente. Cada driver de red NDlS es responsable de enviar y recibir paquetes a través de su conexión de red, y de gestionar la tarjeta física en nombre del sistema operativo. En su nivel más bajo el driver NDlS se comunica directamente con la tarjeta o tarjetas que sirve, utilizando rutinas NDlS para acceder a ellas.El driver NDlS pone en marcha la E/S en las tarjetas y recibe interrupciones de ellas. Llama a los drivers de protocolo de niveles superiores para indicar que ha recibido datos y para advertirles de la terminación de una transferencia de datos. NDlS permite que los drivers de red sean portables sin que sea necesario que tengan conocimiento del procesador o del sistema operativo bajo el cual se están ejecutando.Los drivers de red pueden llamar a sí mismosdeinformaciónespecíficade la plataforma,demaneraque rutinasNDlSparaaislarsea puedan moverse fácilmentede un sistema Windows NT a otro,o de Windows NT a futuros sistemas MSDos / Windows NT. En Windows NT,el software NDlS llama alas rutinas del kernel de Windows NT para 95 c adquirir y liberar cierres de giro (para operaciones seguras en multiprocesadores) y llama a rutinas del administrador de E/S para conectar objetos interrupción al IRQL adecuado de la tabla de despacho del kernel.Estosson sólo dosejemplosdetareasqueeldriverdetarjetaderedpodríanecesitarpara hacerlo por si mismo si estuviera escrito como un driver de Windows NT. Al llamar por el contrario a rutinas de NDIS, los drivers de NDIS escritos para Windows NT se mueven fácilmente al entorno de driver de dispositivo virtual de Windows. Entorno de aplicación distribuida Encontrasteconsudefinicióndeunareddeordenadores,AndrewTanenbaumdefineunsistema distribuido como aquél en el cual "la existencia de múltiples ordenadores autónomos es transparente (no visible) al usuario") Es decir, un Único sistema operativo controla varios ordenadores conectados en red, yplanificasusprocesadores.WindowsNTno esun sistemaoperativodistribuido. Se ejecuta en ordenadores multiprocesador, planificando todos los procesadores, pero requiere que los procesadores compartan memoria. Aunquenoesunsistemaoperativodistribuido,Windows NT proporcionaprestacionesparacreary ejecutaraplicacionesdistribuidas.Elprocesamientodistribuidosuelesignificarqueunusuariopuede imprimir desde uno de varios ordenadores al enviar un trabajo de impresión a un servidor de impresión remoto. De manera similar, era habitual que un ordenador entero fuera utilizado simplemente como un lugar para almacenar archivos compatibles, quelos usuarios pueden recuperar y copiar a máquinas locales para su procesamiento. Ahora, el procesamiento distribuido es más sofisticado. En lugar de almacenar archivos de bases de datos en una máquina remota y copiarlos a una máquina local cada vez que un usuario quiere consultar la base de datos, las aplicaciones, como por ejemplo, Microsoft SQL Server, permiten al usuario emitir una petición de consulta buscando y clasificando las operaciones en la máquina remota. Cuando se completa el procesamiento, sólo sedevuelven los resultados a la máquina del usuario. Este tipo de operación cliente/servidor minimiza la carga en la parte de la red que tiene la menor capacidad para controlarla, y manda el trabajo a un procesador remoto dejando libre el procesador local. La ventaja de tales aplicaciones es que extienden la capacidad de procesamiento de una Workstation de un solo usuario, explotando los ciclos de procesador de ordenadores remotos ya menudo más potentes. Este tipo de procesamientoes una extensión del modelo cliente/servidor presentado en el Capítulo5, en el cual un proceso cliente envía una petición a un proceso servidor para su ejecución. Aquí la diferencia es que el proceso servidor se ejecuta en un ordenador diferente. En el modelo cliente/servidor local de Windows NT, los dos procesos utilizan una herramienta de paso de mensajes denominada llamada de procedimiento local (LPC) para comunicarse través a de sus espacios de direcciones. Para procesamientodistribuidosenecesitaunaherramientamásgeneralpara el pasodemensajes.Se necesitaeliminardeestaherramientalassuposicionesacerca de aquéproceso le seráenviadoel mensaje y en qué ordenador se está ejecutando el proceso. También, puesto que no es probable que compartan memorialos procesos cliente y servidor (a menos que se estén ejecutando en el mismo ordenador), la herramienta debe asumir que todos los datos se copiarán de un espacio de direcciones discreto a otro, a través la dered. El procesamientocliente/servidorrepresenta la aproximacióndeunaaplicación(másque la deun sistema operativo) al procesamiento distribuido, pero no puede tener éxito sin el adecuado soporte del sistema operativo. El sistema operativo debe proporcionar las siguientes características para implementar con éxito el procesamiento cliente/servidor de red: Una manera de crear y ejecutar partes de una aplicación en ordenadores locales y remotos Mecanismos a nivelde aplicación para paso de mensajes entre procesos locales y remotos Soporte para operacionesde red, incluyendo herramientas de transporte Granpartedeestecapítulose ha dedicadoadescribirlaterceracaracterística.Lassiguientes subsecciones examinan las dos primeras. Llamada de procedimiento remoto* 96 Una llamada de procedimiento remoto (RPC, remote procedure call) es una herramienta que permite al programador crear una aplicación con cualquier número de funciones, algunas de las cuales se ejecutan localmente, y otras en ordenadores remotos gracias a una red. Proporciona una visión funcional de las operaciones de red más que una visión orientada al transporte, simplificando de esa forma el desarrollo de aplicaciones distribuidas. El software de funcionamiento en red está estructurado tradicionalmente en tomo a un modelo deE/S de procesamiento.EnWindows NT, porejemplo,seiniciaunaoperaciónderedcuandounaaplicación realizaunapeticiónde E/S remota. El sistemaoperativo lo procesaporconsiguienteenviándola al redirector que actúa como un sistema de archivos remoto. Después de que el sistema remoto completa lapetición y devuelve los resultados,latarjetaderedproduceunainterrupción. El kernelgestionala interrupcióny se completa la operación original de E/S, devolviendo los resultados al solicitante. La RPC emplea un método distinto. Las aplicaciones de RPC son como otras aplicaciones estructuradas, conunprogramaprincipalquellamaprocedimientos o afuncionesde librería paraejecutartareas específicas, según se muestra en la figura . Empleo de librerías por parte de una aplicación LadiferenciaentreaplicacionesRPC y aplicacionesnormales,esquealgunasdelasfuncionesde librería de unaaplicaciónRPCseejecutanenordenadoresremotos,mientrasqueotrasseejecutan localmente según muestra la figura . 97 Para la aplicación RPC, todos los procedimientos parece que se ejecutan localmente. En otras palabras, en lugar de hacer que el programador escriba código para transmitir peticiones de procesamiento o relacionadas con E/S a través de la red, para manejar protocolos de red, para tratar errores de red, esperar resultados, etc, el software de RPC controla estas tareas automáticamente. La prestación de RPC de WindowsNT puede trabajar a travésde cualquier transporte disponible cargado enel sistema. Para escribir una aplicaciónRPC, el programador decide qué procedimientosse ejecutarán localmente y cuáles se ejecutarán de forma remota. Por ejemplo, supóngase que una Workstation cualquiera tiene una conexión través a de red con un superordenador Cray, o con una máquina diseñada específicamente para operaciones vectoriales de alta velocidad.Si el programador estuviera escribiendo unaaplicaciónquemanipularagrandesmatrices,tendríasentido,desdeelpuntodevistadel rendimiento, mandar los cálculos matemáticos al ordenador remoto escribiendo el programa como una aplicación RPC. LasaplicacionesRPCtrabajandeestaforma:amedidaqueseejecutaunaaplicación,llamaa procedimientos locales así como a procedimientos que no están presentes en la máquina local. Para gestionarestoúltimo,seenlazalaaplicaciónconunaDLLlocalquecontieneprocedimientos fragmentados, uno para cada procedimiento remoto. Los procedimientos fragmentados tienen el mismo nombreyempleanel mismo interfazque los procedimientosremotos,pero enlugarderealizarlas operacionesrequeridas, el fragmentotoma los parámetrosquese le hanpasado y los forma para transmitirlos a través de la red. Formar los parámetros quiere decir ordenarlos y empaquetarlas de una forma determinada para adecuarlos a un enlace de red, como por ejemplo, resolver referencias y hacer copia de las estructuras de datos referidas por un puntero. 98 El fragmentollamaentoncesa los procedimientosRPCentiempodeejecuciónquelocalizanel ordenador donde residen los procedimientos remotos, determina qué mecanismos de transporte utiliza ese ordenador, y le envía la petición utilizando software de transporte local. Cuando el servidor remoto recibe la petición RPC, toma los parámetros, reconstruye la llamada de procedimiento original, y llama al procedimiento. Cuando finaliza el servidor, lleva a cabo la secuencia inversa para devolver resultados al solicitante. La RPC en tiempo de ejecución se ilustra en lafigura . Además de la RPC en tiempo de ejecución, la prestación de RPC de Microsoft incluye un compilador de definición de interfaz de Microsoft (MIDL, Microsoftlnterface Definition denominado lenguaje Language), que simplifica la creacióndeaplicacionesRPC. El programadorescribeunaseriede prototiposdefunciones(suponiendounaaplicaciónConC++)quedescribenlas rutinas remotas,y entoncessitúaalas rutinas enunarchivo.Entoncesañadeaestosprototiposalgunainformación adicional, como por ejemplo, el identificador exclusivo de red para el paquete de rutinas y un número de versión, además de atributos que especifican si los parámetros son de entrada, salida, o ambas cosas. Los prototipos "adornados" forman el archivo lenguaje de definición de interfaces (IDL) del programador. UnavezquesehacreadoelarchivoIDL,elprogramador lo compilaconelcompiladorMIDL,que producerutinasfragmentodelladoclienteydelladoservidor,asícomoarchivoscabeceraparaser incorporadosa la aplicación.Cuandolaaplicacióndelladoclienteseenlazaalarchivoderutinas fragmentadas, se resuelven todas las referencias a procedimientos remotos. Los procedimientos remotos son entonces instalados, utilizando un proceso similar de la máquina del servidor. El programador que 99 quiere llamar a una aplicación existente sólo necesita escribir el software del lado cliente y enlazar la aplicación ala herramienta localRPC en tiempo de ejecución. La RPC en tiempo de ejecución utiliza un interfaz proveedor de transporte de RPC genérico para comunicarse con un protocolo de transporte. El interfaz proveedor actúa como una estrechacapaentre la herramientade RPC yeltransporte,mapeandooperacionesdeRPCenlas funciones proporcionadas por el transporte. La característica de RlPC de Windows NT implementa DLL proveedorasdetransporteparalasvíasdecomunicación(pipes)connombre,NetBIOS,TCP/IP,y DECnet.SepuedensoportartransportesadicionalesescribiendonuevasDLLproveedoras. De forma similar, la herramienta RPC está diseñada para trabajar con distintas herramientas de seguridad de red. AI igualquelasDLLproveedorasdetransporte,lasDLLdeseguridadpuedenañadirseentrelas herramientas RPC y la red.En ausencia de otras DLL de seguridad, el software de RPC de Windows NT utiliza la seguridad integrada de las vías de comunicación (pipes) con nombre. La sección 9.4.2 describe éstas con más detalle. Para que una RPC interaccione con aplicaciones de RPC en otras máquinas, ambas deben emplear los mismos convenios deRPC. La característica de RPC de Microsoft se atiene al estándar de RPC definido por el Open Software Foundation(0SF) en su especificación de entorno de procesamiento distribuido (DCE).Deesaforma,lasaplicacionesescritasutilizando la RPCde Microsoftpuedenllamara procedimientos remotos puestos a disposición en otros sistemas que utilizan el estándar DCE. La mayoría de los servicios de red de Windows NT son aplicaciones RPC, lo cual significa que pueden ser llamados por procesos locales y procesos en ordenadores remotos. Entonces, un ordenador cliente remoto puede llamar al servicio de servidor de un usuario para enumerar recursos compartidos, abrir archivos, imprimir colas,o activar usuariosen el servidor de ese usuario,o puede llamar al servicio de mensajería de ese usuario para dirigirle mensajes (por supuesto, todo sujeto a las restricciones deSeguridad). Chuck Lenzmeier, que desarrollóel servidor de Windows NT, considera los a serviciosconposibilidadde RPCcomounode los másútilesyquemásconvieneconsiderardel funcionamiento en red de Windows NT. Vías de comunicación con nombre Las vías de comunicación (pipes) con nombre fueron concebidas originalmente por Microsoft como un interfaz de alto nivel para NetBIOS. NetBlOS supuso para las aplicaciones de funcionamiento en red lo que BIOS supuso para MS-DOS (realizó una abstracción del hardware). De esa forma, adoptó una visión de bajo nivel de las comunicaciones de red. Las vías de comunicación (pipes) con nombre proporcionan uninterfazmásabstractoyadecuadopara la red.Antesqueestarrelacionadas con laboresde encaminamiento, transmisión de datos, etc, un programador que las utilice puede simplemente abrir una vía (pipe) y situar datos en ella. Un usuario de la vía, la abre y lee datos de ella. La entrega a través de ordenadoresestácontroladaautomáticamente,yunallamadaaunavíadecomunicación(pipe)con nombre es equivalente a muchas operaciones de nivel de transporte. Las vías con nombre están implementadas en Windows NT por el driver de sistema de archivos de vías con nombre, un sistema de pseudo-archivos que almacena datos de la vía en memoria y los recupera según la demanda. Actúa como. un sistema de archivos normal a la hora de procesar peticiones a vías con nombre localeso al recibir peticiones de vías con nombre de un ordenador remoto. Cuando un programa local utiliza una vía con nombre que tiene un nombre UNC (nombre de red), el procesamiento se lleva a cabo como para cualquier otra petición de "archivo" remoto. El driver MUP intercepta la peticióny la envía al redirectorresponsable de esared.Lafigura9-18ilustrael procesamiento local y remoto a través de las vías de comunicación (pipes) con nombre. Las vías con nombre, como los archivos, están representadas como objetos archivo en Windows NT, y operanbajo los mismosmecanismosdeseguridadqueotrosobjetosdelejecutor de WindowsNT. Cuando un hilo local trata de abrir una vía con nombre, el acceso requerido por el hilo se comprueba con laACL del objeto archivo de la vías con nombre. Si no hay coincidencia, se deniega el acceso. La vía con nombre, por lo tanto, lleva seguridad integrada. Además, permite que un proceso adopte el contexto de seguridad de otro, una característica denominada imitación. Esta característica permite, por ejemplo, que un subsistema tomela identidad deun proceso clienteal abrir una vía con nombre remota. Debidoaquepuedenexistirtantoenordenadoreslocalescomoremotos,lasvíasconnombre los procesosclientesyservidoresdeunaaplicacióndistribuidase proporcionanmediosparaque comuniquen y compartan datos. Esta comunicación interprocesos esconde la comunicación intermáquina 1O0 de la aplicación. Por debajo de su API, la herramienta de vías con nombre utiliza uno de los transportes de menor nivel para transmitir sus datos. A diferencia dela RPC, las vías con nombre operan en un modelo centradoen E/S y son útiles para enviar corrientes de datos de un proceso a otro. LaRPCpuedeejecutarsesobremúltiplestransportesutilizandodiferentestiposdemecanismosde seguridad. Sin embargo, al operar en la red LAN Manager, utiliza vías de comunicación con nombre como transporte de red. AI hacer esto, las operaciones de RPC se benefician de la seguridad integrada que Windows NT aplica a las vías con nombre. Redes corporativas y seguridad distribuida ElsistemaWindowsNTestándarvieneconcaracterísticasdeservidorintegradasen él. EJservidor permiteoperacionesdetrabajo engrupo,talescomolacopiadearchivosentredossistemas o la configuración de una impresora que puede ser compartida por varias workstations. Este tipo de trabajo en red a baja escala es útil para pequeñas oficinas, redes caseras, o workstations individuales que se conectan a redes a través de líneas telefónicas. En oficinas más grandes o laboratorios, sin embargo, podrían requerirse más prestaciones. En capítulos anteriores de este libro se han descrito varías facetas de la seguridad de Windows NT. La seguridad es una parte importante de cualquier operación de red, necesaria para proteger los datos de un usuariodelaccesodeotrosusuarios.Laseguridad,sinembargo,tieneciertaslaboresdc administraciónasociadas. Por ejemplo,elCapítulo 5 describecómodebenacceder los usuariosa WindowsNT y cómosuinformacióndcpeticióndeacceso(logon)esautentificadaporelsistema operativo. Para que un usuario sea reconocido por el sistema operativo, un administrador de sistema debe establecer una cuenta parael usuario en el sistema al que quiere acceder. Windows NT almacena los nombres de cuentaycontraseñasenunabasededatosdenominada la basededatosde administración de cuentas de seguridad (SAM). Cuando un usuario trata de acceder a su propia Workstation, Windows NT comprueba la base de datos SAM asociada con su Workstation para autentificar su contraseña. En una pequeña red de sistemas cada usuario opera en una Workstation Windows NT y cada Workstation tienesu propia base de datos privada de cuentasde usuario, según ilustra la figura . workstation1 SAM1 workstation2 SAM2 workstation3 SAM3 Pequeña configuraciónde red Si un usuario particular quiere acceder a archivos(o dispositivos) de cada una de las workstations, debe tener una cuenta independiente en cada máquina. En términos prácticos, esto significa que si carga su contraseña y quiere mantenerla misma en cada una de las máquinas a las que accede, debe actualizar su contraseña en cada sistema por separado. Este tipo de mantenimiento de sistemas no tiene sentido para grandes negocios o instalaciones de redes corporativas. A medidaque se incrementa el número deworkstations, la labordeadministrarlas se incrementa proporcionalmente. Para acomodar las necesidades de redes de negocios, Cliff Van Dyke, 101 Jim Kelly, yJimHorne,diseñaronmejoraspara el software de red integradodeWindowsNT.El tentativamentedenominado LAN ManagerparaWindowsNT,añadecaracterísticas al soportede funcionamiento en red peer-fo-peer que existe en Windows NT.’ Permite la creación de dominios de red(una versión más primitiva apareceen LANManager 2.x) para simplificar la tarea de la administración del sistema. La figura ilustra un ejemplo de dominio de red. Configuración de red de tamario medio En la figura, el circulogranderepresentaundominiodereden el queestánenlazadostodos los ordenadores. El dominio incluye varias workstations y varios servidores denominados controladores de dominio. Cuando un usuario hace una petición de acceso (logon) selecciona si acceder a una cuenta definida en su propia Workstation o acceder a una cuenta situada en su dominio primario (el dominio al cual pertenecesu máquina). Si el usuarioaccedeaunacuentadesuWorkstation, el software de autentificaciónlocalutiliza la informaciónalmacenadaen la basededatos 5AMdelaWorkstationparaautentificarsulogon.En contraste, si el usuario accede al dominio, el software de autentificación local envíala petición de acceso al dominio para lograrla autentificación. El controladorde dominio primario tieneuna base de datosSAM que se aplica al dominio entero, y los controladores de dominio de backup mantienen copias dela base de datos. Esto libera al usuario de adquirir cuentas en cada servidor y mejora la tolerancia a fallos. Si un controlador de dominio particular cae, el sistema puede dirigir dinámicamente la petición de acceso aun servidor diferente. E n la figura anterior, la línea entre la Workstation y el controlador de dominio primario representa una relación de confianza, un término de seguridad que significa que la Workstation confía al dominio la tarea de determinar si el acceso de usuario es legitimo. Una relación de confianza permite a Windows NT establecer un canal seguro entrelos dos sistemas y acceder a recursos del dominio. Un efecto lateral de establecer un dominio es queelusuariotambiénpuedeaccederaldominiodesdecualquierotra 102 Workstation (o servidor) del dominioy acceder a su propia Workstation de forma remota. Por ejemplo,sí un grupo ha establecido un laboratorio de desarrollo o test de sistemas Windows NT, y esos sistemas son agrupados en un dominio,un usuario que tiene una cuentaen el dominio puede acceder a su cuenta desde cualquier sistema del laboratorio. La posibilidad de crear un dominio de red es conveniente para instalaciones de red de mediano tamaño, en las cuales se utilizan varios servidores porun gran número de workstations. En instalaciones aúnmásgrandes,talescomoredescorporativas, los dominiosson aún más valiosos; permiten a una compañía dividir sus recursos en varias unidades discretas (dominios) y gestionar las unidades de una manera flexible. La figura muestra una configuración de red de gran tamaño. Configuraciónde red de tamaño medio Estaredcontienetresdominiosdiferentes:dosparagruposdedesarrollo(denominados TEAMI y TEAM2) y unoparapersonaldeadministración del sistema(denominadoOPERATIONS).Existen relaciones de dominio de con- fianza entre los dominios de desarrolloy entre los dominios de desarrolloy el dominio de operaciones. Esta estructura permite a un desarrollador de TEAM 1,por ejemplo, acceder a su dominio primario desde una máquina del dominio TEAM2. Más interesante, sin embargo, es que esta y acceda estructura permite queunmiembrodelgrupodeoperacionesaccedaasucuentanormal transparentemente a los recursos de los dominios TEAMI y TEAM2 como si pertenecieran al dominio OPERATIONS. Los primeros productos LAN Manager, requerían personal de operaciones para obtener una cuenta en cada dominio que necesitaba administrar, pero LAN Manager for Windows NT suprime este requisito. En este ejemplo, después de que un administrador de sistema hace logon, puede acceder a los recursos de otros dominios. Cuanto se conecta al dominio TEAMI, el software de seguridad de de TEAM 1 comprueba si tieneunarelacióndeconfianzaconeldominioOPERATIONS.Larelación confianzaexiste,por lo queeldominio TEAMI utiliza su canal deseguridadparapasarunapetición implícita de logon al dominio OPERATIONS, que autentifica el usuario (accediendo a la base de datos SAM de OPERATIONS). Si la autentificación tiene éxito, el administradordelsistemapuedeinstalar 103 software, realizar backups, y otras labores de mantenimiento. Este tipo de seguridad distribuidapermite que un organismo con múltiples dominios gestione sus recursos más fácilmente a la vez que proporciona acceso a todoslos recursos dela red. Aunque las configuraciones de red de tamaño mediano y grande permitan alos usuarios flexibilidad enel acceso a los recursos, cada usuario puede configurar su propia máquina para limitar otros accesos ella a en los siguientes términos: o Aplicandolistasdecontroldeacceso(ACL)aarchivosyaotrosrecursoslocalesquepermiten deniegan el acceso a usuarios individuales o grupos de usuarios. Asignando o no privilegios a usuarios individualeso grupos de usuarios. Permitiendo explícitamente a individuoso grupos, el acceso al sistema mediante alguna o algunas de las siguientes formas: O Interactiva. Haciendola petición de acceso desdeel teclado O Red. Haciendo la petición de acceso a través de una conexión de red O Servicios.Haciendolapeticióndeaccesocomounservicio(comoporejemplo, mensajería o el de alerta) el serviciode Un usuario mantiene el control sobresu entorno denegando los privilegios a un individuo o aun grupo de individuos, asignando ACL a objetos locales, y limitando qué usuarios pueden acceder a una Workstation individual. Si el usuario quiere puede, denegar a todo el mundo excepto a éI mismo la posibilidad de acceder su amáquina por alguna razón. Haciendo una reflexión sobre su versatilidad, los desarrolladores se refierenalgunasvecesalsoftwaredeadministración de WindowsNTcomo "FlexAdmin". Ademásde los dominios, los dominios deconfianza, y la seguridaddistribuida,LANManagerfor WindowsNTproporcionaredundanciadealmacenamientoendisco,duplicación de archivos, y herramientas gráficas de administración de servidor. Conclusiones La proliferación de grandes redes de ordenadores y la necesidad de los usuariosdecomunicarse y compartir bases de datos centralizadasde información, ha elevado el software de red desdela esfera de la utilidad a la esfera de la necesidad. Participando en una o más redes, un sistema operativo puede incrementar su potencia de proceso y características de almacenamiento, permitir alos usuarios que se comuniquenyquecompartandatos,yproporcionarunconjuntomásrico de posibilidadesasus aplicaciones de lo que podría ofrecer si estuviera solo. Para proporcionar estas ventajas de una manera eficiente, el software de red de Windows NT forma parte de éI, operando en la misma base que el resto del ejecutor de Windows NT. Aunque estén integrados, los componentes de red no están cableados en el sistema. Los flexibles modelos de DLL y del sistemade E/S de Windows NT permiten al software ser añadido y eliminado dinámicamentedel sistema operativo. Windows NT proporciona varios interfaces de red que le permiten enlazarse a diferentes tipos de redes e interaccionarcondistintasclases de sistemasdeordenadores. El interfazproveedor permite a los fabricantes de redes distintos de Microsoft enlazarse a la supervisión de Win32 y a los API de E/S de archivos; la capa ID1 permite a los redirectores de red y a los servidores acceder y utilizar cualquier driver de transportedisponible sin modificar su código; la capa NDlS permite a los drivers de transporte acceder a cualquier tarjeta de red y dará portabilidad de drivers de red desde sistemas Windows Ni al entorno de driver de dispositivo virtual de Windows. Las prestacionesde las aplicaciones distribuidas, incluyendola RlPC y los mecanismos de comunicación interprocesos, permiten a los desarrolladores de aplicaciones explotar ordenadores bajo red al mandar trabajos intensivos a otras máquinaso accediendo a recursos remotos como si fueran locales. Además, LAN Manager para Windows NT amplía las posibilidades de red del sistema Windows Ni estándar para hacer frente a grandes redes con características de administración y seguridad distribuidas. Con sus 104 extensascaracterísticas dered,Windows NI puedetransformarelentornodetrabajodeunasola Workstation en una extensa red de recursos de ordenador. EPILOG0 Windows NT fue diseñado como un sistema operativo extensible, de forma que pudiera evolucionar de una manera consistente y modular a lo largo del tiempo. De hecho, ya ha comenzado a evolucionar en direcciones no resaltadasen este libro. El administrador de configuración, por ejemplo, se menciona solo muy brevemente pero representa la desaparición de los archivos AUTOEXEC.BAT y CONFIG.SYS, y de todos los archivos*.lNl que los usuarios sehanacostumbradoaver,trivializaryavecesromper. Diseñado principalmente por Bryan Willman y KeithLogan, el administrador de configuración tiene varios componentes,siendoelmásimportantedeelloselregistro de configuración,que es unlugarde almacenamiento de las características hardware de la máquinaen la que se está ejecutando el sistema operativo, el software instaladoen el sistema, y la personao personas que empleanel sistema. El primer y más importante objetivo del registro y su software asociado es hacer que los sistemas sean fáciles de emplear. Lo logra examinando el hardware y averiguando lo que puede en el momento del arranque, configurando automáticamente todo lo posible, preguntando al usuario el mínimo número de preguntas cuando se instala el sistema operativo, y almacenando toda esta información para no se le moleste al usuario varias veces por los mismos temas. Los drivers de dispositivo, las aplicaciones, y los usuariostambiénpuedensituarinformaciónenesteregistro,ypuedensolicitar la información que necesitendelmismo. El usuariopuedever,actualizar, o modificarlainformacióndeconfiguración utilizando el editor gráfico del registro. La información de este registro se almacena en objetos llave, que a objetos del ejecutor son sometidos alos mecanismos de seguridad y a otros mecanismos aplicados los de Windows NT. Este diseño le permite a Windows NT mantener una herramienta de almacenamiento unificadaparasuaparentementealeatoriainformación y, al mismotiempo, le permiteponer la información a disposición de los sistemas de la red de una forma distribuida pero segura. En la primera versión de Windows NT se introdujo un componente importante de tolerancia a fallos, gracias a los esfuerzos hercúleos de Bob Rinne y Mike Glass. Su driver de disco tolerante a falloses un driver con estructura de capas que intermedia entre el driver de disco y el driver del sistema. Según Bob, éste proporciona "protección de datos de disco a través de redundancia de particiones". Esto significa que una partición de disco puede ser duplicada dinámicamente de una o varias formas, de manera quesi el disco falla, todavía se encuentra accesibleuna copia de los datos. La función de "duplicado de disco" se refiere a duplicación de una partición de disco en otro disco y, si es posible, a un disco conectado a otro controlador de manera que los datos permanecen seguros sí falla uno de los dos. El "franjeado de disco" se refiere a la combinación de un conjunto de particiones de disco de igual tamaño que residen en discosseparados, en un Único volumen (o letradeunidad).Losdatosalmacenadosenelvolumen expanden los discos, formando una "franja" virtual a través de ellos; una técnica de almacenamiento que mejora las prestaciones de E/S permitiendo que se efectúen múltiples operaciones concurrentes de E/S sobre el mismo volumen. La versión mejorada del "franjeado de disco" llamada franjeado de disco con paridad, proporciona tolerancia frente a fallos de disco manteniendo la información de paridad a través delasfranjas dedisco,demaneraquesiunaparticiónfalla, los datosdeesaparticiónpuedenser recuperados realizando una operación de OR-exclusivo a través del resto de las particiones de la franja. Idénticamente, todas estas características son únicamente una parte de las herramientas de gestión de volúmenes mejorado deWindowsNT,que permite configurar el espacio del disco de forma lógica y física. Además de soportar tolerancia a fallos de disco, la gestión de volúmenes permite que porciones discontiguas de unoo más discos, sean combinadas en un disco lógico. Latoleranciaafallosdedisco de WindowsNT,combinadaconlascaracterísticasdesuministro ininterrumpido de alimentación (UPS) descrito en el Capítulo 8 , proporcionará un modo de bajo coste para la protecciónyrecuperación dedatosporpartede los administradoresdesistemas.Ciertas aplicacionesespecialescomolasbancarias,requieren un nivelextradetoleranciaafallos.Estas aplicaciones se basan en una redundancia hardware completa de cara a proporcionar una operación ininterrumpida del sistema. Aunque la operación continua se utiliza solamente para software final de aplicación, Windows NT da muchos de los soportes necesarios. El sistema de E/S, por ejemplo, puede borrar o volver a crear objetos dispositivo de forma dinámica para acomodar cambios en la configuración delprocesode E/S. Entrelascaracterísticasadicionalesqueseríannecesariasseencuentra la 105 posibilidad de reasignar dinámicamente letras de dispositivo a diferentes recursos físicos sin necesidad de arrancar el ordenador a continuación. Unode los proyectos más importantes con el que todavía se enfrenta el equipo de Windows NT, es hacer del sistema operativo un sistema completamente internacional. Este objetivo será el centro de atención principal del equipo tras la liberación de la primera versión de Windows NT. Un objetivo para versionesposteriores será proporcionar unaúnicaversiónejecutableparatodos los mercadosdel mundo. Aunque el ejecutor de Windows NT y el API Win32 están completamente internacionalizados, hay porciones del shell de Win32 y de las utilidades del sistema que todavía no soportan Unicode, se necesitanciertascaracterísticasdeinternacionalización, y el componenteGDIdel Win32 necesita mejoras para haceral sistema completamente utilizable en Japón y en otros mercados asiáticos. Algunas de las necesidades internacionales incluyen un API de métodos de entrada, una nueva arquitectura de fonts (frentes de caracteres) con caminos de búsqueda para permitir fonts combinados desde el punto de vista lógico, la integración de caracteres definidos por el usuario en la arquitectura delos fonts, y mejoras para permitir entradas con multiescritura. Para las versiones japonesa, china y coreana del sistema, se tiene que realizar trabajo adicional. Se necesitan fonts que soporten estos lenguajes,y hace falta un editor de método de entrada para traducir pulsaciones múltiples en caracteres individuales. Además, está planificado cierto trabajo en común con los sociosOEMparaasegurarqueWindowsNTseejecutarábienenordenadorespersonales propietarios o especializados. Por ejemplo, NEC ha portado con éxito el Windows NT a su ordenador personalbasado en 9800. Puestoqueesteordenador no compatible AT seutilizaampliamente en Japón, es un importante objetivo para Windows NT. Finalmente, para poder ejecutar aplicaciones internacionales ya existentes, los subsistemas de entorno Windows de 16 bits y MS-DOS tienen que acomodarel esquema de codificaciónde doble byte empleado tradicionalmente para representar caracteres japoneses y de otros lenguajes asiáticos. El entorno MSDOS también ha de hacerse compatible con la versión japonesa de MS-DOS, que ha evolucionado de maneradistintaque el empleadoenEuropa y enEstadosUnidos.Unequipode20ingenieros americanos y japoneses dirigidos por David McBride, espera lanzar la primera versión internacional de Windows NT y Windows NT-J (la versión japonesa del sistema) seis meses después de lanzar la versión americana. El temade la seguridadestátratadoa lo largo de estelibro, dada la naturalezadistribuida de la seguridad de Windows NT. Sin embargo, es un tema intrincado cuyas complejidades son tratadaslos en grandescomponentesdeWindowsNT(seguridaddeobjetos,seguridaddistribuida,etc).Sepodría escribir un libro entero acerca de los detalles de seguridad. Lasdireccionesdeltrabajofuturoacerca de la seguridadson muyinteresantes. El modelo de autentificación descrito brevemente en el Capitulo 5 no sólo se presta a soportar nuevos interfaces de usuario,comocajerosbancarios,escáneresderetina o huelladactilar,sino que tambiénpermite implementar diferentes arquitecturas de seguridad en lo "alto" de Windows NT. Por ejemplo, el popular modelodeseguridadKerberos,queemite"tickets"deseguridadalasentidadesquequieren comunicarse para intercambiar datos, está bajo desarrollo como paquete de autentificaci6n y como API de Windows NT. Las aplicaciones que emplean el modelo Kerberos simplemente llamarían al API de Kerberos, que estaría encaminado a través del sistema de seguridad de WindowsNT y a un paquetede autentificación especial y cargable. Similarmente, podrían añadirse al sistema los modelos de seguridad específicos de la industria, comolos empleados por los bancos. La extensión de Windows NT para soportar el nivel de seguridad B del gobierno delos Estados Unidos. NT y su monitor Moverse del nivel C al nivelB implicaría actualizar la arquitectura de objetos de Windows de referencia de seguridad para poder reconocerlos niveles de seguridad (el nombramiento de usuarios particulares y de sus procesos como "Secreto", "Alto secreto", etc> y a aportar compartimentos (grupos de usuarios aislados de otros grupos de usuarios). Los controles de acceso obligatorio se emplearían para restringir alos procesos el uso de recursos pertenecientes a procesos de nivel más alto o el uso de procesos de compartimentos diferentes.En este libro se omitela descripción del servidor de archivos de Windows NT (NTFS),los detalles de diseño de los dispositivos del ejecutorde Windows NT, y los drivers de red. Igualmente, el administrador de cache, un componente Único de Windows NT, se le deja en gran parte a la imaginación del lector. Estos temas merecerán librosmás adelante.. Cada subsistema tiene su propia estructura y filosofía, y aunque el subsistema Win32 es el interfaz de usuario preeminente de Windows NT, los demás subsistemas evolucionarán hacia entornos con características completas. No se 106 ha descrito el interfaz de usuario de Windows NT, principalmente porque es visible, y por lo tanto más accesible a los usuarios del sistema que la mayoría de los detalles invisibles" de diseño que dominan este libro. Sin embargo, las utilidades de Windows NT evolucionarán por las líneas del Administradorde Disco; es decir, tendrán más aspecto "Windows" y menos reminiscencias del aspecto de i las aplicaciones MS-DOS. Comosistemaoperativoportable,WindowsNTemigraráhacianuevasAplataformashardware.Por ejemplo, los ingenieros de Digital Equipment Corporation están portando el sistema a su procesador Alfa de 64 bits (inicialmente Windows NT se ejecutará con direcciones de 32 bits en el Alfa APX, como hace en los procesadores MIPS e Intel). Finalmente hay que señalar que se ha oído mucho sobre el software de Windows orientado a objetos, que será el protagonista en la era de ia "información", según la visión de Bill Gates para las próximas décadas. Llamado internamente Cairo, este software se espera que exista como un conjunto de DLL paraWin32,enWindowsNTyMS-DOS.Estableceunentornodetrabajoorientadoaobjetosque permite a los usuarios crear, ver, organizare imprimir recursos sin importar el tipo de recurso, su formato interno, o su localización en la red. LaautorapretendíaacabarestelibroconuncapitulodefinitivoacercadelfuturodeWindowsNTe inclusopredecirelfuturo dela"mesadetrabajo".Sinembargo,laindustriaavanzamuyrápidoy Microsoft responde rápidamente alos cambios del mercado. Los pronósticos son, sin embargo, una labor arriesgada. Es suficientedecirqueWindowsNTproporcionauna"carreterabienpavimentada"enel futuro de los ordenadores, cualquiera que sean las curvas de pueda tener la carretera. 107 108 WINDOWS NT COMO SERVIDOR DE ARCHIVOS UnadelasgrandesventajasquetieneWindows NT y su familia eslaquedesdeunprincipiofue pensado enun ambiente abierto o cliente-servidor, por lo cualtodosudiseñosebasoenpoderdar soporte a múltiples ambientes o tipos de archivos de otras plataformas que no fuera exclusivamente de Microsoft, comolo es en el caso de archivos de tipo Unix, Mac OS/2, y En nuestro caso particular el que Windows NT se comporte como un servidor de archivos significa en que un usuario pueda acceder vía red aun archivo remotamente, ya sea conla finalidad de poder leerlo, escribir o hasta copiarlo. En esta sección solo nos podría interesar como NT puede ser un servidor de tipoFTP, o bienlaseguridadquesepuedellegaraimplementarpara que exista una verdadera seguridad enuna red de tipoNT . Si tratásemos de acceder a un archivo en Windows NT desde una computadora Linux tendremos que implementar el protocolo NFS , ya que a través de samba se ofrece también un tipo de FTP que en realidad no es aconsejable usar , ya que establece un conexión de tipo directa, es decir una conexión permanente,atrayendorecursosde la red que permanecenociososynosepuedenocupar congestionando nuestra red y los recursos de la computadora (memoria, CPU etc). Por la vía NFS es necesario poder conseguir el software que pueda fungir como el servidor de NFS. , el sistema Por lo demás solo es necesario instalar este software y poder montar en nuestra mauina linux remoto de archivos, de tipo NTFS solamente ya que si lo pensamos hacer con un sistema de archivos tipo FAT el sistema no noslo permitirá debido alas limitantes que FAT nos ofrece a este respecto. En nuestrocasoparticularnuestroobjetivo nofueelpoderconfigurarNTFSennuestrosistemasin embargo se mencionala siguiente documentación y ligas las cuales pueden ser de interés. FIGURAS Y SITES DE NFS La forma en que se puede acceder a un archivo o conjunto de estos a través de la red en Windows es muy sencillo ya que tan solo basta el poder compartir e, subdirectorio o hasta el mismo archivo que se requiera compartir. Así como también las propiedades de seguridad para cada usuario o los grupos de estos ya sean locales o globales. 1o9 WIND0WS NT A PLICACIONES COMO SERVIDOR DE Windows NTSERVER como servidor de aplicaciones es muy dependiente del hardware, es decir , se requiere de muchísimos recursos tales como memoria, espacio en disco duro y velocidad del procesador, a comparación de Linux que en realidad no requiere de muchos recursos. Sin embargo si hablamos de aplicaciones nativasde Windows NT tales como el Back Office u otros, que están programados bajo 32 bits en PO, entonces será necesario meditar en el uso de Windows NT ya que existen algunas libreríasque lógicamente por ser nativas de Windows se nocargaran en Linux. No obstante su sistema de archivos NTFS es muy confiable y se puede recuperar información aunque no en su totalidad cuando un medio o disco duro se ha dañado, gracias a su sistema de respaldo entre sus inodos, en cambio linux es un poco mas difícil y menos natural la recuperación de archivos. NT no hay manera de matar a sus Sin embargosi un hiloo de objeto se llegase a trabar en predecesores o antecesores por lo que la clfisica ventanita delDr Watson se pone en acción y nos cierra la aplicacióno varias aplicaciones, por ejemplosi el error ocurreen un pagina de Internet y hay otras paginas abiertas sin nadaen común se cerraran todoslos Internet Explorer. Esto no sucede en Linux ya que gracias al proceso de herencia de procesos linux mata losahijos o padres deun proceso en particular y noen general. 3. i X) WINDOWS NT COMO SERVIDORDE WEB-EMAIL Gracias a Microsoft existe el Internet Information Server sin embargo es poco configurable, mas halla de los botones, es estable sin embrago demanda de 2 tarjetas de red para manejar dominios, así como de una exagerada cantidaden disco duro y procesamiento. ¿Cuántos sitios Web puedo ejecutar de manera eficiente enun servidor?" Después de hablar conlos clientes de ISP, descubrimos quela respuesta sería de unos 250 sitios Web para unÚnico servidor IIS 4.0; esto supone un problema paralos clientes de ISP que necesitan alojar miles de sitios enÚnico un servidor. El equipo de IIS resolvió este problema paraIIS 5.0 y mejoró considerablementeel rendimiento de IIS en cuanto a alojamientode sitios. Ahoraes posible ejecutar miles de sitios en un servidor. Con IIS 5.0, la respuesta a la pregunta de IIS 4.0 produce una nueva pregunta: "'Qué carga se espera que admita este servidor?" El número de sitios que puede alojar un servidor IIS 5.0 es directamente proporcional a la carga esperada. La carga esperada es igual al número esperado de solicitudes en un servidor individual por segundo y ve se afectada porel tipo de contenido, donde tipo de contenido se refiere a la proporción de páginas dinámicas frente a páginas estáticas. Enlos últimos años, el contenido Web publicado sigue siendo cada vez más dinámico, lo que plantea nuevas consideraciones acerca del rendimiento. Centrándonos en esta tendencia, creamos una prueba para analizar el rendimiento de las páginas dinámicas y estáticas que se ejecutan en un servidor IIS 5.0 dentro de un ISP, donde el contenido dinámico seha creado a partir de secuencias de comandos ASP y Perl. Número de usuarios 100 (Ilimitado) 110 Incluido L Incluido Incluido Incluido Incluido de Red Base de Datos Relaciona1 Solid Data Base SQL (ODBC, JDBC) SQL Server 6.5 US$800.00 Código fuente del Kernel Servidor DNS I 1 Herramientas de Desarrollo i sí Cornpiladores C and C++, Ped 5,0, JDK sí Pentium 2001MMX. 32 Mb, DD 2,O Gb Hardware Recomendable Necesario JS$1,299.00 sí Soporte TBcnico Gratuito (AppleTalk), NetBEUl Netr 3. x ) WINDOWS NT COMO SERVIDOR DE IMPRESORAS Es elmasamigablespooler y administrador de impresión masauncuandosehaceuso de un Administrador de impresióncomoJetadmin. U otrossetienelascapacidad de administraciónpor IP, Nombre Net Bios etc. Linux no tiene estas facilidades tan a la mano y su Configuracion es tenebrosa 111 I N TR ODU CCI ONA HA T" UNIX "LINUX RED Unix es uno de los más populares sistemas operativos en todo el mundo debido al gran soporte que tiene y su distribución, a través de diversas compañías de computación tales como son HP, IBM, SUN , SantaCruzetc . Estesistemaoperativofuedesarrolladocomounsistemaoperativomultitarea originalmente para minicomputadoras y mainframes, pero en realidad en la década de los 70's se dio un gran paso al poder instalarlo en cualquier tipo de plataforma hasta que se logro su estandarizaci6n . Cual es la verdaderarazónpor la cualUNlX espopular ? MuchosHackersopinanqueporserun sistema operativo verdadero "multitarea preemtiva, multiproceso real, una administración de archivos y memoria muy eficiente" UNlX es el sistema operativo por excelencia, aunado con ello , el que linux es un sistema no propietario "Sin necesidad de licencias corporativas o de un hardware muy sofisticado" linux a tenido una aceptación muy grande. Además de lo anterior linux es gratuito o freeware ya que desde Internet se puede obtener el sistema operativo en su totalidad sin necesidad de pagar nada, no conforme con ello la "filosofía" del creador Linus Torvalds orvalds@kruuna.helsinki.fi, quería que linux pudiera cambiarse al antojo del usuarioelcódigofuente,con la finalidaddequesi es necesario el uso deunnuevo controlador o driver para una cierta tarjeta, este driver se pueda programar sin tener que esperar al release correspondiente,o al update del sistema operativo . Por lo anterior Linux fue desarrollado directamente desde Internet a través de intercambio de correos electrónicos, chats . Es decir todo mundo puede participar en los desarrollos constantes de linuxya sea mejorando su Interface, sistema de archivos etc véase la USENET newsgroup comp.os.minix desde el cual Linus Torvalds se baso para el desarrollo de linux . AI igual que UNlX linux en su gran mayoría esta desarrolladoen lenguaje C con objetos y otras técnicas de programación . No obstante que también se pueden hacer desarrollos en lenguajes como Perl, Rexx, Fortran etc.., entre otros . Solo basta con volver a recompilar el kernel del mismo Linux para que el cambio sea interno como por ejemplo enuso el de drivers o manejos o el manejador de archivos etc. Otras de las bondades de LINUX es su bajo costo ya que a comparación de otros sistemas operativos, no es necesario contar conun Hardware del alto costo; a continuación se muestra una tabla en la cual se puede apreciar las diferencias técnicas, de requerimientos y de mas información. Introducción 112 El propósito de este artículo es el de proveer a los responsables de empresas la información necesaria para tomardecisionescorrectas(inteligentes) en la compradelhardwareysoftware de servidores.Esta informaciónestábasada enlaexperienciadeexperimentadosprofesionalescertificadosMIS.La intención es la de comparar y contrastar las implicaciones de escoger un sistema operativo u otro en términos no técnicos, o al menos con la mínima jerga técnica posible. Debida a la urgente necesidad de información como la presentada aquí, esta página es lanzada prematuramente y debe ser considerada como un trabajo en progreso. Cualquier persona que desee contribuir a este proyecto es bienvenida y puede dirigirse a e-mail. Por favor, limite sus mensajes a comentarios o críticas constructivas. Sistemas Operativos Costes y aspectos de las licencias Muchosdirectivosestarán deacuerdoqueelmerocostedeunsistemaoperativoestrivialen comparación con los costes globales. Aunque Windows NT Server4.0 puede ser más caro que algunos UNlXcomerciales(NTServerparacincousuarios - $809; 10-usuarios $1129); WindowsNTServer, edición Enterprise 4.0 para 25 usuarios - $3,999; Edición Enterprise 4.0 para 50 usuarios - $4,799; NT Server 4.0 Kit de documentación $69.95; Fuente: Microsoft), esto puede ser tomado como cantidades triviales en ferias de productos. Si una solución comercial económica está siendo buscada, BSD (Berkley Software Design) ofrece un sistema operativo UNlX con más funcionalidades que Windows NT sólo por $995. Si queremos equiparar la funcionalidad ofrecida porBSD, tenemos que añadir al paquete NT varios productos de Microsoft y de terceros fabricantes, lo que deja el precio final de la solución NT al rededor de los $4,000, de acuerdo conBSDI.MaggieBiggs,unaanalistaseniorenInfoWorldespecializadaentecnologíasdebasesde datos y diseño de aplicaciones, desarrollo y desarrollo vía intranets y otras redes, estima un precio de $4,636 para una solución Windows NT4.0 comparable en su artículo en el cual compara NT4.0 al Linux comercial Red Hat (por sólo $49.95). Aquí uno puede apreciar que un buen marketing puede a menudo distraer alos clientes de considerar sus verdaderas necesidades. Para el cliente más consciente de los costes, Linux o FreeBSD deberían ser las elecciones obvias. No cuestan nada, y además son estables y ofrecen tantas funcionalidades, si no todas, como los sistemas UNlX comerciales.Unlector me informóquemencionarLinuxpodríarepercutiren la credibilidaddeeste artículo. Siento discrepar. La existencia de una alianza como la mencionada en el artículo Andreessen Sees Mozilla-Linux Upset of Windows muestra claramente que Linux está reforzando su presencia en entornos comerciales. (Para iniciados en este terreno, Mozilla es el nombre del programa Netscape/CommunicatoryMarcAndreessen es el CEOdeNetscape.).Históricamente,grandes corporaciones han ignorado el software libre debido ala Asunción infundada que cualquier cosa libre no puede ser productiva. La tendencia recienteen algunas compañías es utilizar estos sistemas operativos bajos en costes.Hewlett-Packard usó LinuxenvezdesupropioHP-UX UNlX cuandoestaba desarrollando su nueva arquitectura para procesadores PA-RISC. Schlumberger anunciará una solución para telefonía que incorpora Linux. Es interesante señalar que SunWorld On-Line da a Linux una prensa muy positiva en uno de sus artículos, Linux lines up for the enterprise.Debidoaqueestossistemasoperativossonlibrespara su uso,inclusoenentornos comerciales, numerosos lSPs funcionan con Linuxo FreeBSD. De los dos, Linux es mucho más popular debido a que correrá en prácticamente cualquier hardware imaginable: Sun, Intel, DEC Alpha, PowerPC, PowerMac,etc.Actualmente,Linuxesprobablemente el sistemaoperativoenelmercadoconmayor crecimiento. Para más información ver Linux Resources ó Red Hat Software. Funcionalidad ¿Que funcionalidades podemos esperar de unservidorWindows NT? ¿Y deunservidorUNIX?NT puede comunicarsecondiferentestiposdecomputadoras.UNlXtambién.NTpuedeasegurarinformación 113 sensible y mantener usuarios no autorizados fuera de la red. UNlX también. En esencia, ambos sistemas operativos cumplen los mínimos requisitos de los sistemas operativos para funcionar en un entorno de red. Brevemente, UNlX puede hacer cualquier cosa que NT pueda hacer y más. NT esconsideradoamenudounsistemaoperativo"multi-usuario",peroestoesalgoimpreciso.Un servidor NT puede validarun usuario autorizado, pero una vezel usuario ha accedido ala red NT, todo lo que puede haceres acceder a archivos e impresoras.El usuario NT no puede ejecutar aplicación alguna en el servidor NT (a fin de obtener la ventaja de la potencia de procesamiento del hardware superior del servidor).UnusuarioNT sólo puedeejecutaraplicacionesespecialesquehansidoescritasendos partes, ¡.e. aplicaciones cliente/servidor. Cuando un usuario entra en un servidor UNIX, el / ella puede y portanto ejecutarcualquieraplicación(siemprequeelusuarioestéautorizadoparahacerlo), descargando tareas de procesamiento de su estación de trabajo. Esto incluye asimismo las aplicaciones gráficas dado que el software para servidores X es una característica estándar en todos los sistemas operativos UNIX. Para muchos negocios,el correo electrónico se ha convertido en una herramienta indispensable para la comunicación, y muchas compañías ejecutan sus propios sistemas de correo internos / externos. Con Windows NT, tendrá que adquirir un paquete de software aparte para instalar un servidorde correo. Los sistemas operativos UNlX vienen con un programa llamado Sendmail. Existen otros paquetes servidores de correo (o MTA, Mail Transport Agent (Agentes para el Transporte de Correo)) disponibles para UNIX, pero este es el más extendido, y es libre. Algunos administradores de UNlX piensan que exim o qmail son mejores opciones debido que no son tan difíciles de configurar como el sendmail. Ambos exim y qmail,comosendmail,sonlibresparasuusoinclusoenentornoscomerciales.Algunascompañías basadasen NT utilizanMicrosoftExchangeServercomo MTA. Estaesunasolucióncaraconun resultado limitado en entornos empresariales. Más adelante, en estemismo artículo, la sección dedicada a los Servidores de Correo (MTAs) ofrece una guía para comparary contrastar estos dos servidores de correo. DadoqueMicrosoft ve NTcomounaalternativaviablealrestodesistemasoperativosdereddel mercado, UNlX y Novell incluidos, uno puede creer que NT viene con todas las herramientas necesarias paracumplirlastareas más básicasrequeridas:servicios de archivoseimpresoras.Cualquier administrador de sistemas sabe por experiencia que haydos aspectos importantes a considerar cuando se está configurando un servidor de archivos o añadiendo un nuevo usuario de red: seguridad, esto es, palabras de paso y permisos de archivos; y cuotas para limitar el uso del disco de cualquier usuario o grupo nuevo o existente. Aunque NT provee de seguridad básica mediante palabra de paso, sólo permite seguridad a nivel de archivo si se escoge como el sistema de archivos el denominado NTFS. Algunos departamentosdeinformáticasonreaciosaincorporarestesistemadearchivos(almenos en las máquinas de los usuarios), porque creen quela recuperación de problemas de disco es difícil conel uso de NTFS. Es una creencia común que los dispositivos formateados con NTFS no puedenser leídos por el DOS, un sistema operativo importante en la recuperación de problemas. Rune Knapstad me comunicó la existencia de una utilidad DOS llamada NTFSDOS que puede montar particiones NTFS. Es interesante destacar que es un producto de terceros y node Microsoft. Más importante que este hecho es que iNT no provee de mecanismo alguno para limitarel uso del disco por partede los usuarios! UNIX yNovell,porotraparte,disponendesoftwarepararealizaresteaparentementeelementalcontrol. Microsoft ha anunciado, sin embargo, que su todavía no lanzado NT Server 5.0 dispondrá de "nuevas capacidades de almacenamiento tales como cuotas de disco(ver su anunciode lanzamiento, Windows NT 5.0 Beta Delivered to Over 200,000 Developers).Resumiendo,unavezustedentraen una red NT, todo lo que puede hacer es leer archivos e imprimir. En un entorno UNIX, una vez usted entra en un servidorUNIX, puede estar en esta máquinay hacer cualquier cosaen ella como si estuviera sentado frente al teclado de ésta. Con NT, no espere ser capaz de instalar un servidor de correo con el software disponible. Necesitará adquirir por separadoel software servidor de correo caro como Microsoft Exchange Server. Si su servidor NT debe funcionar como servidor de archivos - ¿Qué otra cosa puede ...I' 114 hacerconésterealmente? - noesperesercapazdeprevenirque los usuarioscuelguenelservidor llenando el/los disco(s) con sus datos. Cuandovamosaunascapacidadesderedmássofisticadas,parecequeMicrosoftNTServer4.0 Enterprise Edition no puede compararse a los más maduros sistemas operativos UNIX. Aunque no es esencial para el rendimiento de la red, el procesamiento a 64 bits está aquí hoy con estos sistemas operativos UNlX (en oposición a los 32 bits del NT). D.H. Brown Associates Inc. muestran los resultados de sus análisis como sigue(la siguiente cita junto conla tabla y los tres gráficos mostrados con extractos de la página de Digital Equipment Corporation, AIX 4.3 Leaps To 64-Bits In Dead Heat With Digital UNIX 4.0): AIX 4.3 toma la cabeza en servicios de red Internet / lntranet ofreciendo el más amplio conjunto de extensiones TCP/IP y añadiendo valor con el servidor Notes. Digital UNlX vienen segundo lugar con potentes sistemas de seguridad en redes, acompañado no sólo de herramientas para navegar por el web, sino con herramientas de creación de las mismas, con Navigator Gold, y un sólido conjunto de extensionesTCPIIP.Sinembargo,DigitalUNlXadolecedecapacidadesdeNFSavanzadascomo CacheFS y AutoFS. IRlX 6.4se sitúa en tercer lugar, incorporando CacheFS y AutoFS y características para seguridad en red tan potentes de Digital. Pero IRlX no tiene las utilidades para tiempo en red (NTP) y posibilidades de TCP/IP tales como IPv6 e IPSec. A continuación viene Sun, con un buen soporte para NFS y un segundo lugar en conjunto de extensiones TCP/IP. Sin embargo, Sun confía en su propio servidor Web, en vez de Netscape, Microsoft o Apache, y no tiene herramientas para la creación de páginasWebasícomodeimportantesservicioscomo el serviciodedirectoriosde Novel1NDS.HP proporciona un potente soporte para Internet en su HP-UX, apoyado por su buen que hacer en funciones de protocolos para Internet y seguridad en red, mientras que flaquea en el soporte de características avanzadas del NFS. HP-UX, junto con AIX, han establecido una primacía en el soporte de NDS. Mientras que el soporte que Microsoft NT 4.0 ofrece para Internet/ lntranet con una valoración global de "Bueno", NT se queda por detrás de los mejores UNlX comerciales debido a su pobre soporte parael servicio de directorios, seguridad de redes, NFS, y sus pocas extensiones TCP/IP. Microsoft ha estado largo tiempo añadiendo valores a su servidor Web y perfilando su Máquina Virtual Java. Fiabilidad Hoy en día, la fiabilidad es a menudo más importante que la velocidad. Aunque el rendimiento es, en términos generales, una función de la plataforma hardware (ver la próxima sección), es la fiabilidad la quemás influye alahoradeelegirunsistemaoperativo.Aunqueunsistemaoperativoofrezca numerosas posibilidades, sea muy escalable, y ofrezca gran sencillez de uso, ¿cómo de buenas son estasventajascuandounservidorprocesandotransaccionesfinancierasentiempo real sufre de frecuentes caídas causando en pérdidas de tiempo inaceptables?. La analogía de un rápido y económico automóvil con cantidad de extras y apariencia deportiva que se avería provocando repetidas visitas al servicio técnico autorizado es actualmente muy representativa del Windows NT. Uno a menudo escucha la mención de Windows NT Server como un sistema operativo "estable", pero esto no es del todo cierto. Si lo fuese, no deberíamos leer artículos como Corporate IT needs an engine that never quits (Peter Coffee, PC Week 3-30-98). Por otra parte, Windows NT supone una gran mejora sobre Windows 3.1 o Windows 95, pero todavía le queda un largo camino que recorrer hasta alcanzarel nivel de estabilidad ofrecido incluso por los sistemas operativos UNlX libres. Cualquier profesional que haya trabajado en un entorno Windows NT tiene conocimiento de la infame "Pantalla Azul de la Muerte", una situación en la cual el entorno normal de trabajo desaparece y es sustituido por una pantalla llena de cifrashexadecimalesconunfondoazul. El Único métodopararecuperarsedeestasituaciónes apagando la máquina y arrancando de nuevo. lo siguiente puede crear Las causas de la "pantalla azul" son muy diversas. En mi propia experiencia, este estado: Cuando los protocolos IPX/SPX y TCP/IP son utilizados juntos y los técnicos instalan una máquina con una dirección IP estática en una sub-red diferente; Cuando algunas aplicaciones de 16 bits de Visual Basic no son ejecutadas en un espacio de direcciones de memoria separado. NT no las ejecuta en un espacio de direcciones aparte por defecto. ÉSta es una configuración manual que debe ser fijada para cada una de las aplicaciones de 16 bits de la máquina; Ciertos módulos de memoria o cache pueden 115 inducir esto, aunque este mismo hardware funcione correctamente bajo otros sistemas operativos,como Windows 95. Esta lista no estácompleta.Dehecho,TimNewsham,undesarrolladorenplataformas Windows y UNIX encontró esta corta lista muy confusa: En la sección BSOD menciona algunos puntos que pueden causar este problema. Pienso que esta (pequeña) lista es muy confusa para el lector. Hay muchas más causas para que unNT falle, por lo que enumerando una lista pequeña puede causar una idea incorrecta. Más peligroso todavía es el hecho de que sus casos implican a una persona que está en la consola haciendo algo MALO para provocar un error. Muchas de las veces que falla un sistema NT ocurren inadvertidamente en la operación del día-a-día del sistema (esto es, dejando al sistema largo tiempo mientras ejecuta miles de aplicaciones puede causar fallos extraños con poca información de su causa). Adicionalmente usuarios maliciosos pueden causar fallos debido a la mala implementación de los módulos software como el programa de entrada (1oggin)en el sistema (LSA)o la pila TCPIIP. La "Pantalla Azul de la Muerte" puede ser común en algunos entornos de computación y a menudo es difícil de afrontar demasiado críptica. Además de esto, NT es particularmente sensible al ataque de virus en el hardware Intel. Microsoft continua escribiendo su sistema operativo de tal forma que lea el Sector Principal de Arranque(MBR) de los discos duros. Esto significa que, un Servidor NT puede teóricamente ser abatido por un virus escrito hace 10 años para ordenadores con MS-DOS. Cualquiera que planee encontrado virus de arranque (MBR virus) enentornoscorporativoscorriendoWindowsNT 4.0 (isin clientes Windows 95!), y sus efectos son devastadores. Una situación de la vida real relacionada con la fiabilidad de NT fue descrita por el responsable del departamento de Sistemas de Información de la Universidad de Nebraska, Quinn P. Coldiron, que escribió: La vida después de portar Cats (un sistema para el rellenado de formulariosycontroldeinventario)a NT fueunapesadilla. El sistemaestaba fallando dos o tres veces al día sin una razón que pudiera encontrar. Me puse en contacto telefónico con Microsoft y Cats constantemente, pero ninguno podía dar con el problema. Microsoft me hizo instalarlos ServicePacksdesde el unohasta el tres y algunosparches,queayudaron,perotodavíafallaba al menos doso tres veces ala semana con la infame"PantallaAzuldelaMuerte".Despuésdevariassemanasyalrededorde$1500.00de soporte telefónicode Microsoft, el representante me dijo que debía encontrarun software mejor que "The Cat's Pajamas". ÉSta no fue la solución que yo buscaba, debido a que éste es el paquete que la mayoría de nuestras sucursales en la nación estaban utilizando, por lo que estuve obligado a volver a instalar nuestro servidorNovel1 hasta que pudiera encontrar algo mejor... Catorce meses después, estamos utilizando Linux como servidor. El equivalente UNlX a la "Pantalla Azul de la Muerte" podría ser el denominado "kernel panic". Obviamente existe, porquehe ido y le-ido sobre el mismo, pero nunca me he enfrentado a éste enmi carrera profesional. Aunque estoy seguro quelos servidores UNlX fallan en ocasiones, son sucesos extremadamente raros. Si un servidor UNlX cae, la mayoría de las veces es debido a unfallo en el hardware de algún tipo. Cualquier software que provoque problemas en un entorno UNlX generalmente se da a conocer en un período de tiempo, a menudo en la forma de una bajada gradual del rendimiento del sistema, dando al administrador un amplio margen de tiempo para encontrar la fuente del problema, corregirlo, y paradarrancar el proceso (raramente la máquina) que causó el problema. En general, se ha de parar a un servidor UNlX sólo en las siguientes situaciones: Debido a un fallo del hardware, por ejemplo, un fallo de un disco duro; La necesidad de una actualización del hardware; Una larga caída del suministro eléctrico y los sistemas alternativos se han agotado; El núcleo (kernel) ha de ser actualizado. Si nada de lo anterior ocurre, un sistema UNlX en marcha puede durar años. Noticias de tiempos en marchadehasta 3 añosnosonextraños en la comunidadLinux.Administracióndel Sistema El argumento de que Windows NT es más sencillo de manejar debido a su entorno gráfico es infundado. La ventaja,si existe, de un entorno gráfico sobre la línea de comandos, esto es, teclear todos los comandos desdeel teclado, es cuestionable. La primera idea es que WindowsNT tiene la ventaja sobre UNlX de su interfaz gráfico (GUI).Estoesincorrecto.LossistemasUNlXtienenentornosgráficosbuenos(verejemplo gráfico). "NTha disfrutadodeunintuitivoentornográficopara el manejodesistemassencillos, largamente beneficiado de la excepcional familiaridad del "look-and-feel" del Windows adoptado por el interfaz NT. Pero, cuando los usuarios empiezan a desarrollar gran cantidad de servidores, y servidores 116 pacio geográficamente dispersos, algunosde los defectos de la arquitectura NT para el manejo del sistema se vuelvenmásvisibles,derivadoprimeramentedesudiseñoparaunsistemamono-usuario.Eldiseño multi-usuario de Unix soporta acceso remoto en múltiples niveles, incluyendo la posibilidad de acceder enunasesióndetexto,víatelnet,paraeditar los archivosdeconfiguración,ejecutarherramientas gráficas utilizando las capacidades de red del sistema XWindow, y ahora sobre las versiones Java de dichasherramientas.NTactualmente no disfrutadeningunadeestasposibilidades.Además,la administración remota con NT típicamente incluye instalar un experto local el cual Microsoft espera que o confiar en los productos será muy sencillo debido a la similitud con las otras versiones de Windows para la administracióndeMicrosoft o deterceros.Ningunaopción,además,alcanza la eficienciade manejo de sistemas Unix distribuidos." -- Extraídode:Análisisafondodecincosistemasoperativos UNlX comerciales y Windows NT Server 4.0 (Enterprise Edition)por D.H. Brown Associates, Inc. Rendimiento La potencia de procesamiento es, a grandes rasgos, función del hardware en vez del sistema operativo. Dado que muchos sistemas operativos UNlX comerciales sólo pueden ejecutarse en grandes estaciones de trabajo o servidores, sería ridículo comparar un: IBM SP2 o un Sun Enterprise 10000 a cualquier productoCompaq o Dell.UNlXhasidohistóricamenteunsistemaoperativoparagrandessistemas. Afirmar que UNlX supera a NT basándonos en los resultados de diferentes plataformas hardware podría ser injusto paraMicrosoft.Porotraparte,Microsofthareducido,envezdeincrementar, el numerode plataformas hardware que soporta. NT para MIPS ha sido abandonado debido a la falta declientesy soporteparaPowerPCes sólo marginal.NT,ahorareducidoalasarquitecturasx86yAlphaseguirá siendo "servidor un de los pobres" como ytal llamado es en el mundo de los IT. ; (. ' ' , ..'.: I- : , f. *.. ; 4) I de Paraser justos, unodebecompararelrendimientodeunservidorNT al queLinux o FreeBSD,debidoa que los tres sistemasoperativospuedenejecutarseenelmismohardware.Desafortunadamente,un análisisrealmenteobjetivodelrendimientodeberíabasarseenpruebasderendimiento(benchmarks),y estos,a mi entender,noexistenparacompararLinux o FreeBSDaNT. El consensogeneralentre profesionales IT es, sin embargo,queLinuxyFreeBSDsuperanampliamenteaNT.Considerandoque estosnúcleosdeUNlXsonpersonalizadosycompiladosparacontener sólo el softwarerequeridopor el administrados,Linux y FreeBSDpuedenfuncionarmáseficientementequeNT.Además,cualquier sistemaoperativoquerequieramenosrecursosrendirámejorqueunsistemahinchadocomoNT.UNlX no requiere un interfaz gráfico para funcionar. NT sí. Cualquiera sabe que los gráficos requieren gran cantidad memoria. y en Lomismosecumplepara los archivosdesonido,queparecensermuyimportantespara los sistemas operativosdeMicrosoft.BenchmarksejecutadosensistemasUNlXsimilaresutilizando el mismo hardware son más explicativos. Net Express, un vendedor vía Internet de hardware x86, cuyos sistemas son"diseñadosparacientíficos,ingenieros y laindustriade la telecomunicación,"muestraque los resultados pueden ser conseguidos con el sistema operativo correcto: Byte UNlX Benchmark 3.2 para comparar Sistemas Operativos: Además presentamos estos resultados de Byte UNlX Benchmark 3.2 para compararla relativa velocidad de tres populares implementaciones de UNIX.LostestsfueronejecutadosenmáquinasPentium133MHzcon32MB'sdeRAM,elchipset Triton4 430HX y una controladora SCSl BusLogic: Sistemas Resultados Linux en un Pentium 133MHz 12.2 BSD en un Pentium 133MHz 9.8 Solaris 2.5 en un Pentium 133MHz 6.2 Solaris en un SunSparc-ll Ultra 167MHz System 13.7 Solaris 2.5 en un Orion Pentium Pro 200MHz 117 , ;i! j . -. ., ;: % P,. e; f f f& ; O) * m r o ;< 4 (2 i:' $3 Lo 13.5 En los resultados podemosver que Linux es un sistema operativo muy eficiente. Las marcas para Linux 2.5 enunaSparcUltraa 167 Mhz. o un en unPentium133soncasitanrápidascomounSolaris PentiumPro de 200 Mhz!!! Quizá un ejemplo de la ganancia de rendimiento que uno puede espera encontrar cuando escoge un sistema operativo Unix junto con el servidor Web libre Apache puede ser encontrado en el artículo de Sean Fulton que apareció en INTERNETWEEK el 5 de Mayo de 1997, Towrs of Power -- We test five muscular Web servers aimed at high-end intranet applications. Para NT, los resultados del test fueron casi devastadores: "Telnet System Solutions produjo la mayor sorpresa durante los tests, con un sistema BSDi y un solo procesador, alcanzó y en algunos casos superó a un sistema con doble CPU corriendo Windows NT." "El factordiferenciadorenestecasofueelsistemaoperativoBSDi3.0 junto con el servidorHTTP Apache. Todas las máquinas con doble CPU funcionaron con Windows NT4.0 con "Microsoft Internet Information Server2.O." Admitiendo que el siguiente ejemplo posiblemente no es el test más científico de diferencia de rendimiento entre Linux y NT, pero la información de Richard Betel's da una idea de que puede uno esperar en situaciones de la vida real: He estado ejecutando el cliente para el"distributed.net RC5 cracking" durante dos meses aproximadamente ... Está instalado encada servidor que tiene una cantidad de tiempo inactivo considerable. Esto incluye dos máquinas idénticas: Ambas son Dual-Pentium I I a 300 Mhz,128Mb.RAM.Una está ejecutandoNT,ytiene un "exchangeServer"libre(estamos planeando ofrecer servicio con este, pero de momento esta totalmente inactivo), la otra está ejecutando Linux (lo hemosinstaladoparaquemuestresuscapacidades.EsunservidorSambayestamos recopilando toda clase de cosas en ésta). La máquina Linux intenta claves1.8 a veces la velocidad de la máquina NT. Algunas Falsas Ideas NT es un sistema operativo "de juguete" Para un sistema operativo que ha evolucionado de un sistema operativo de juguete, ofrece algunas funcionalidades profesionales. Aunque no rinda muy bien-- el rendimiento decrece conm& de 4 CPUs en un servidor-- ha recorrido un largo camino. Aunque no lo recomendaría como sistema operativo principal en un entorno empresarial, debe ofrecer un rendimiento satisfactorio para pequeños negocios con menos de 250 usuarios que no ejecuten procesos críticos. MigrandotodoaWindows NT unacompañíapuedeeliminar los problemasdeunentornodered heterogéneo. La primera idea aquí es que un entorno de red heterogéneo es un problema. Yo trabajé una vez en una compañía donde NT y Novell coexistían sin demasiados problemas. De echo,la principal razón de esta coexistencia fue que Novell superaba a NT en el área de compartir archivos e impresoras. Con UNIX, uno puede compartir archivos e impresoras de forma compatible con Microsoft sin que los usuarios nunca conozcan que estos servicios emanan de un servidor UNIX. Para ellos, es un servidor NT.Estacapacidad la incorpora el UNlXdeSun,Solaris.Linuxpuedeutilizarunsoftwarellamado Samba, que viene con muchas distribuciones, para conseguir esto. Y, de nuevo, es gratis. UNlX es ese sistema operativo caduco, críptico y basado en comandos. ifalso! CDE (Common Desktop Environment)es un interfaz de usuario (Vd. utiliza un ratón para señalar y pulsar, o pinchar y arrastrar en un entorno coloreado; esta es la base del éxito de Microsoft.). CDE viene con muchos sistemas operativos UNlX comerciales: Sun's Solaris, IBM's AIX Hewlett Packard's HP-UX, DEC's Digital UNIX, por nombrar algunos. Por alrededor de $90 puede adquirir CDE para Linux si está insatisfecho de los cuatro entornos gráficos que vienen con Linux:OpenLook, el GUI que Solaris utiliza; FVWM, un GUI libre que tiene muchas similitudes conel del Windows 3.2; o FVWM-95, otro GUI libre que imita al del Windows'95 (viendo una simple ventana, uno no puede distinguir entre FVWM-95 y Windows 95). TWM es el predecesor de los varios gestores de ventanas del estilo FVWM que también incorpora Linux. Si nunca ha tenido la oportunidad de sentarse frente a un ordenador corriendo UNIX, he 118 aquí algunas CAPTURAS de estos gestores de ventanas: CDE, TED (TriTeal's CDE for Linux), KDE, F W M I.24, FVWM 2.x, FVWM-95, olvwm (OpenLook Virtual Window Manager). Estos son sólo algunos to Window de los interfaces disponibles para los usuarios de UNIX. La guía de Matt Chapman's Guide ManagersforTheXWindowSystemesunaexcelentefuentedeinformaciónsobreestetema. Encontrará muchas más capturas de pantallas en sus páginas web que las que yo he sido capaz de enumerar aquí. Piense que la mayoría de estos gestores de ventanas son altamente configurables; no debe sorprenderse de ver imágenes extraídas del mismo gestor de ventanas que aparecen completamentedistintas.ComoMattmencionaensupágina,"Afrontémoslo, la genteesdiferente,y aquellosqueutilizanordenadores los utilizandediferentesformasparadiferentestareas.Luego, ¿porqué pensar que debemos usar (¿sufrir?) el mismo interfaz?" Irónicamente, es el interfaz gráfico de Microsoft el que adolece de características de personalización. Contra la afirmación dequeUNlXestácaduco(desfasado),estodavíaelsistemaoperativode la ciencia, ingeniería, desarrollo y educación de alto nivel. Muchos ingenieros escogerían UNlX sobre NT sin dudarlo.Conocenperfectamentelasposibilidadesdeserpersonalizadoysuscapacidadesde configuración parala optimización de tareas de computación especializadas. Todo el mundo está migrando a NT, deberemos reemplazar gradualmente nuestros servidores UNlX con servidores NT. Es el camino al futuro. Si habla con los responsables de los sistemas de información (MIS) de grandes empresas que tuvieron UNlXyNovellhace dosaños,yquereemplazaron sus servidoresNovellporservidoresconNT, encontrará que ninguno de ellos puede pasar sin sus servidores UNIX. Parece ser que el procesamiento "pesado" se realiza mejor con servidores UNIX. Hasta ahora en mi carrera, cada servidor Oracle que he visto estaba corriendo en un servidor UNIX. Un profesional, por otra parte, me envió un e-mail diciendo, "Mantengo varias instalaciones de ORACLE en NT. Hay características de rendimiento y funcionalidad que he encontrado que nunca he visto con UNlX (Pyramid)." Opiniones de otros profesionales de sistemas de información (MIS) Tim Newsham escribe en respuesta a este artículo: "DesarrollosoftwareenNTyUNIX.AborrezcoNT.Esunabestiahorrible, tiene unrendimientomuy pobre y también demasiado inestable. Algunas partes del NT son tan imperfectas que la mayor parte deltiempo empleadoenportarsoftwareaNTincluyetrabajarcon los erroresdeMicrosoft.Me preocupa que mucha gente está migrando de Unix a NT. Sólo puedo imaginar que en algún momento surgiráunmovimientoanti-NT cuando los puestosderesponsabilidadse den cuenta decuantoha dañado NT a su organización. Joseph Day, consultor en Chicago, contesta a Jessie Berst: "Hago una gran cantidad de desarrollo de software en NT y 95. No puedo llegar a comprender porque la gente alaba a estas plataformas comosi fueran grandes... El soporte que se obtiene en la comunidad Linux a través de "las news" es muy superior a cualquier cosa que usted haya podido ver con los productos Microsoft... NT tiene mucho que tiene Linux. -- Fragmentos de una carta de Joseph Day titulada, How did Microsoft pay you to writet his article?, Source: Jesse Berst's Anchor Desk. February 16, 1998, ZDNet. Torsten Holvak, administrador de sistemas en Laramie, WY, contesta a los 60s, le encantaría hacer creer a la Jessie Berst: "Jesse: Estoy seguro que Microsoft, como IBM en gente que escoger algo diferente a sus productos puede ser un movimiento limitador en su evolución. ¡Pero no es así! He despedido a un empleado por instalar aplicaciones críticas de correo y servidor de Web en un NT en vez de en una máquina UNIX. Utilizamos FreeBSD para todo y no existe nada más estable. No sólo los servidores UNlX son más rápidos, más potentes, y más estables que NT, sino que el soporte es mejor también. Intenta obtener una respuesta de Microsoft sin pagar grandes facturas y/o estando a la espera. Y considérese afortunado si resuelve su problema. Encuentro que es duro de creer que esta historia apareció en su página. Es embarazoso. Estoy seguro de que no estabas interesado en propagandas de tonterías de Microsoft. -- Extracto de una carta de TorstenHolvaktitulada,I'd fire someoneforusingNT,Fuente:JesseBerst'sAnchorDesk.16de Febrero, 1998 ZDNet. 119 QuinnP.Coldiron,responsabledelDepartamentodeSistemasdeInformación de la Universidadde Periodismo de Nebraska, escribe sobre su experiencia con Novell, Windows NT, y Linux: "Después de completar las tareas matutinas, normalmente ejecutamos una copia completa de "Cats" (sistema de el cierrequeusualmente rellenadode formularios y controldeinventario)antesdecontinuarcon tardaba unas dos horas con el servidor NetWare. La máquina Linux fue capaz de hacer la copia entera en45minutos,superandoenalgoaunahoradeltiempodecierre.Estoaumentó la velocidad y disminuyó el hardware debido a que el servidor Linux sólo disponía de 32 MB de RAM y discos duros IDEmientrasqueelservidorNetWaretenía64MBde RAM ydiscosdurosSCSI.Elaumentode velocidad se notó asimismo en el trabajo diario. Recibí noticias diarias de que el sistema parecía correr más rápido y ser más fiable." "Recientemente hemos actualizado la CPU a un Pentium 200Mhz y la memoriaa 64MB para podermanejar los nuevosplanesdehaceresteservidorsustitutode los servidores de archivos e impresoras Windows NT, que todavía fallan unas dos veces al mes sin razón aparente, después de $1,500 en soporte técnico de Microsoft. Este simple ordenador corriendoRed Hat Linux reemplazaráal servidor Novell NetWare 3.1 1 yal Windows NT 4.0, mientras que disminuirán los requisitos de hardware. Con los recientes avances del equipo del Samba soportando la estructura de dominios de NT y el lanzamiento en Diciembre de 1997 de Red Hat 5.0, espero tener un eficiente y -- Extraídode: económicoservidorparanuestrosclientesWindows95,WindowsNTyMachintosh." Replacing Windows NT Server with Linux El 29 de Septiembre de 1997, Nick Johnson escribió en Byte Forum:"Desde la perspectivade un administrador, me esmuydifíciltomarenserioaunsistema operativo cuando necesita 128 MB. de RAM, dos procesadores a 200 MHz. y ocho "gigas" de espacio en disco duro sólo para ejecutar un servidor web en una pequeña intranet, especialmente cuando el sistema operativo falla y rearranca por un simple paquete estándarTCP. NT es imposible de considerar cuando fiabilidad y velocidad son requeridos. Usted puede realizar la misma tarea que he mencionado con un 386con16Mb.deRAMconFreeBSD,sinpagar los elevadospreciosdeMicrosoft.MikeHucka, administrador UNlX y programador en Michigan, escribe:"¿Lo que perturba mi pensamiento es porqué la genteestáinvirtiendomuchoensolucionesNTcuandoexistendemasiadasevidenciasquelas soluciones UNlX son mucho más maduras, estables, menos caras y funcionan mucho mejor? ¿Porqué? ¿Qué le pasa a la gente? "Simplemente la gente no conoce las posibilidades de UNIX?" "¿Piensa la gente que los sistemas UNlX son demasiado difíciles de utilizar? Puedo ser subjetivo pero cuando veo un entorno gráfico como el CDE en una Sun, o KDE, pienso que está muy cerca de lo que puedeencontrarse en unPC o unMac. Y existe unaTREMENDA cantidad de documentación disponible para UNlX-- considere todoslos libros publicados por O'Reilly & Associates, o los manuales en línea disponibles en el sitio de Sun http://docs.sun.com, o cualquiera de los cientos de sitios con información tratando cualquier aspecto imaginable de UNIX. "Y no sólo eso, usted puede obtener versiones libres de UNlX que son comparables en estabilidad y escalabilidad a Solaris, y que funcionarán muy bien en hardware PC si lo desea. "Y sobre todo, puede obtenerse el código fuente." "¿Porqué, en el nombre de dios, la gente insiste en intentar usar NT?" Servidores Web El líquido de la vida, o la sangre de Internet es la We.ÉSta es la cara que el público ve. Si tu sitioeslento,llenodeproblemastécnicos, o inaccesible,estotendráseguramenteefectos adversos. Desde que muchas organizaciones están orientadas hacia UNIX, normalmente funcionan con servidores como Apache o Netscape-Enterprise. Apache fue concebido con UNlX en mente. Es libre y actualmente guía Internet. Aproximadamentela mitad de los servidores Web en Internet son Apache (ver the Netcraft Web Server Survey). Microsoft'sIIS Web Server no llega a un cuartode todos los servidores Web conectados a Internet. Apache actualmente está siendo utilizado por: Javasoft, The FBI, Financial Times, The Movies Database, W3 Consortium, The Royal Family, Oxford University Libraries Automation Service, M.I.T., Harvard University, and the Universityof Texas at Austin. Netcraft también menciona esta compañía de ''Virtual hosting" (hospedaje virtual) Rapidsite ocupa actualmente el quinto puesto en su categoría. Su sistema de hospedaje, funcionando con una versión personalizada de Apache, soporta 44,280 nombres de dominios con39,905 direcciones ip diferentes. Un logro, y probablemente el sistema de hospedaje más grande del mundo." Leerá que en la sección de rendimiento de este artículo UnixApache marriage put the NT-IIS one to shame. Ni sólo Apache es más rápido, es gratis. Para I servidor 120 más robusto que una organización pueda necesitar, Netscape-Enterprise es una gran elección. Aunque no es gratuito como Apache, afrontará las más altas necesidades. Netscape-Enterprise es utilizado por compañíascomo:BMW,Dilbert,SiliconGraphics,Shell,SunMicrosystems,Sybase, Ferrari andThe Vatican.Microsoft's IIS esunadelaspocascosasqueacompañanactualmenteaWindowsNT.No posee ninguna cualidad especial o única que no se encuentre en otros programas servidores Web. No destaca ni en velocidad, popularidad ni en el número de conexiones concurrentes que puede soportar. Actualmenteestásiendoutilizadopor:Compaq,Nasdaq,TheNationalFootballLeague,Exxon,and Tesco. Dado el hecho que Microsoft debela mayoría de su éxito al hardware de bajo coste tipo PC, esto es, máquinas basadas en Intel usted podría pensar que su gran aliado debería utilizar IIS. Bien, ipues se equivoca de nuevo! www.intel.com utiliza Netscape FastTrack Server. Para los usuariosdeWindows95yNT,unode los lugaresmáspopularesdondeobtenersoftware gratuito y shareware es un lugar denominado www.windows95.com. Debido la a inmensa popularidad del lugar requiere un sistema operativo robusto y un servidor Web orientado a un buen rendimiento. Como todo el software ofrecido en este lugar es exclusivamente para Windows 95o NT, y la tendencia general tiendeaserpro-Microsoft,unopuedepensarqueservidores NT corriendo IIS deberíaser la opción lógica para sus soluciones en Internet. Bien, he aquí un fragmento de una de sus propias páginas Web.: Qué hardware y software está ejecutándose en Windows95.com? Utilizamos ordenadores Pentium Pro ejecutando el sistema operativo UNlX BSDl con el servidor Web Apache. Nuestros servidores están conectados a Internet vía múltiples conexiones T3. Nota: Este fragmento es de Febrero de 1998. Recientemente cambiaron su nombre de Windows95.com a WinFiles.com aunque todavía disponen del uso del nombre de dominio windows95.com. Este cambio se hizo en Marzo de 1998. Otra mirada a Apache versus Microsoft's IIS "Ed Frankenberg, responsable de productos de PSlWeb -- la división de servicios de hospedaje de PSlNet Inc. -- no apuesta por la solución Microsoft. Dice que PSIWeb, uno de los líderes en hospedaje a empresas con más de 2,000 clientes,utilizaelservidorWebgratuitoUNlXApacheporqueesmásrápidoqueNT."Fuente:John Evan Frook, "Windows NT Bidsto Oust UNlX at lSPs (9/4),"InteractiveAge, 1996. Servidores de Correo (MTAs) Opiniones de profesionales (MIS): Billy Bob Thornton escribe: Exchange también tiene la "ventaja" de requerir que pague a Microsoft por cada conexión al servidor (cargo por-uso). Puede poner juntos un sistema utilizando, por ejemplo una Sun Ultra 1(7K ballpark) y el servidor de correo Solaris Internet Mail Server (viene incluido con Solaris 2.6) y servir POP e IMAP a un grupo de miles de personas. Alguien me dijo que puede hacerse lo mismo por dos veces este coste con servidores NT y Exchange. Brad Van Orden, consultor de Sistemas y Redes, escribe: ... Como he señalado anteriormente, incluso ignorando los costes, Exchange le costará mucho más de mantener. Debe tener alguien manteniendola aplicación. Si está utilizando correo Unix, desde el momento en que su sendmail.cf sea correcto,la única cosa que normalmente tendrá que hacer para administrarlo será añadir o borrar alias. ÉSta es la gran diferencia en costes "sobrela marcha". Tom Moore de Dayton, Ohio escribe: La tendencia parece ser tener alos novatos como administradores. Leí un articulo sobre servidores web que mencionaba que aunque Apache era el servidor predominante en Internet hoy, "probablemente no era adecuado" para las empresas en parte porque no tiene un interfaz gráfico para la administración y portantonecesitabaunadministradorexperimentadoparaconfigurarlo. El problemaparecíaserque tener un interfaz gráfico significaba que cualquiera podría simplemente señalar y pinchar y tenerlo todo a punto correctamente. 121 La misma "lógica"podríaseraplicadaasendmailvsMSExchange.Sendmailtieneunarchivode configuraciónenmodotexto,necesitaunadministradorexperimentado.Exchangetieneuninterfaz gráfico por lo que no lo necesita. Habiendo trabajado con ambos, no me lo creo. Ambos se configuran fácilmente en su configuración por defecto. Ambos requieren experiencia como administrador para hacer cosas algo complicadas. Cuando tiene cosas complicadas como filtros anti-SPAM, no puede hacerse con Exchange. Conclusión Irónicamente, parece por las observaciones de los experimentados administradores de sistemas que UNlXdeberíaser el sistemaoperativoescogidoinclusoparaunainstalaciónpequeña o engrandes corporaciones con una demanda de gran potencia, servidores multi-procesador que requieran un sistema operativo escalable. Una escritora del Washington Post, Elizabeth Corcoran, nos muestraun ejemplo de la vida real: CincinnatiBELLInformationSystems,porejemplo,hautilizadoestacionesSunyservidorespara procesarchequesdurante años. RecientementeadquirióvariosservidoresSunúltimomodelopara manejar la demanda de un millónde facturas al día. La elección, dijo James Holtman, vice-presidente de CBIS, fué entre servidores Sun o estaciones IBM. La tecnología de Microsoft "todavía no está apunto. Tiene mucho que crecer para alcanzar a estos sistemas," dijo. (The Washington Post, Domingo, 8 de Febrero,1998;PaginaH01)Dadoqueunacompañíapequeña o medianatienequeejecutarpocos procesos críticos, es deseable contratar administradores adicionales para su Microsoft Exchange y InternetInformationServer(s),ytenerunsustanciosopresupuestopara el esquemadelicencias Microsoft "por servidor" y "por puesto", entonces NT sería el sistema operativo a elegir. Aberde Group ha publicadounexcelentecaso deestudiodemigraraWindowsNT.NTestambiénunaexcelente elección para directores que necesitan demostrar que han utilizado su presupuesto fiscal anual para pagos de hardware/software. Quizá por esto es por lo que no se necesita tener la aprobación previa de compra en las agencias federales; "NT seha convertido en el sistema operativo standard "no-oficial" del gobierno federal. Los empleados federales cuya responsabilidad incluye la adquisición de hardwarelsoftware requieren unaaprobaciónpreviaporescritoantesdeadquirirunsistemaoperativo UNlX o hardwarequeno funcione con Windows NT. Para hardware basado en Intel o WindowsNT,nohacefaltaaprobación previa." (como informaun vendedor de soluciones Sun que desea permanecer el enanonimato). Para pequeñas tiendas o usuarios en su conjunto, o incluso medias y grandes empresas que están comenzando a escapar a la anticuada idea que rendimiento es alcanzado por la fácilmente superar el rendimiento y funcionalidad de una solución NT, con hardware Intel de bajo coste, y por un precio de $0.00, un precio que Bill Gates encontrará dificil de alcanzar. ¿Porqué invertir en un sistema operativo que requiere entrenamiento re-entrenamiento y muy caro con cada nueva versión NT? Los administradores UNlXlLinux sonmuchosygeneralmentemáscapacitadostécnicamentequesus homdlogos NT (muchos administradores UNlX tienen conocimientos para codificar/programar, raramente encontradas en la nueva generación de "administradores NT"). ¿Porqué malgastar cientos de dólares para MS Exchange Server que, en algunas compañías, parece quesólo es capaz de manejar el correo de algunos cientos de empleados cuando puede utilizar el servidor de correo "Sendmail" que acompaña a Linux, un programa testado y probado capaz de soportar demandas de miles de empleados? Con las característicasgeneralesyrendimientoactuales de los dossistemasoperativos,parecequeUNlX vence.Ofreceunavariedaddevendedores(sinposibilidaddemonopolio),escalabilidad,usomás eficiente de los recursos del sistema, administración remota, computación remota, multi-usuario, gran variedad de recursos software (profesionales), independiente de vendedores, estándar (POSIX), control del uso del disco por parte de los usuarios (no como el NT), y no puede ser abatido por virus escritos hace 10 años para sistemas DOS.Pero la cosa más importante de todo a recordar de este artículo cuando se intenta escoger entre WindowsNT y unodel los múltiples sistemas UNlX existentes es está: Un sistema operativo UNlX le dará opciones: cualquier tipo de hardware, CLI o GUI, comercial o GNU y variedad de vendedores para elegir; WindowsNT le dará restricciones:solo Intel 122 o Alpha; sin CLI, un solo GUI (intente arrancar NT en modo solo-CLI) y solo un GUI (no hay posibilidad del amplio abanico de gestores de ventanas que pueden encontrarse en solo X); MTAs comerciales, solo Microsoft(¿haoídoalgunacompañíaofreciendosistemasoperativos"clones de NTServer"?),etc. AunqueMicrosoftno eselÚnicovendedor"orientadoarestricciones"promoviendo sus propias soluciones cerradas y propietarias, uno puede esperar que organizaciones que promocionan sistemas abiertos y soluciones deben permanecer. Netscape es un vendedor que promueve diversidad y puntos contra"lasrestricciones"Microsoft"anti-escoger",ofreciendovariosproductos:[Nuestra]estrategia consiste en un fuerte contraste frente a vendedores como Microsoft, cuyo modelo de negocio depende de clientes actualizándose a la más reciente versión de cada sistema operativo. Considere lo siguiente: el primer cliente de correo de Netscape funcionaba con Windows3.1, Machintosh y Unix; el de Microsoft en ninguno de estos. El primer servidor de Internet de Netscape funciona en Windows NT 3.51 y Unix, el de Microsoft en ninguno. Netscape ofrece acceso nativo a lnformix, Oracle, Sysbase, DB/2, y ODBC; Microsoft ofrece acceso nativosólo a sus bases de datos, ejecutando sólo Windows NT. Netscape ONE ofrecedesarrollodeaplicacionesmulti-plataforma;laplataformadeMicrosoftestálimitadaasus -- Netscape, The Networked Enterprise: The Netscape Advantage versiones recientes de Windows. Parece ser que la cuestión de qué sistema operativo escoger debería ser académica en este punto basada en la informaciónquehemostradoaquí,todavíacadadíaalgúnaltamente-capacitadoadministrador de jefe que la compañíaestámigrandoaNT. El sistemas / redesestásiendoinformadoporsu administrador se siente alterado y confuso, el / ella ya conoce la información de este artículo. Es la dirección de su empresa la que debería leer este artículo. Si usted es un director, intente utilizar esta informaciónapropiadamenteparamejorarelentornoinforrnáticodesudepartamento.Hableconsu personal técnico y pregúnteles qué funciona. Realicelasdecisionescorrectas.Noseconfundadebidoa los vendedoresqueutilizanabsurdas palabras que ni siquiera saben explicar, sencillamente explíqueles las necesidades informáticas de su compañía. Busque compañías que han implementado servidores NT y UNlX para el tipo de solución que está considerando. Intente entrevistarse con su personal técnico para ser objetivo, informes de primera manodelaposibilidad,dificultaddeimplementación,ycostesinicialesdepuestaenmarchay mantenimiento asociados conla solución propuesta por usted. Linux yNT Server 4.0 a grandes rasgos Como NT es a menudo escogido sobre la base del coste de la solución en hardware, Linux será el sistema UNlX para la comparación, por su buen quehacer en hardware Intel. Nota: Solo los puntos / características que actualmente acompañan a cada sistema operativo están listados aquí. Per1 5.0, por ejemplo,estádisponibleparatodaslasplataformas,peroMicrosoftno lo incluyeensussistemas operativos.Porotraparte,muchasdistribucionesdeLinuxvienenconalrededordecuatro GUls (gestores de ventanas) a escoger, como se vio en una sección anterior, esto es sólo un pequeño número UNlX para estas tareas de los disponibles para Linux,o cualquier otro sistema operativo ¿Qué están haciendo las Grandes Compañías? Amazon.com Amazon.comBooks, la libreríaon-linemásgrandedelmundo,confía ensistemasDIGITALUNlXa Server00 para mantener sus negocios en Internet abiertos las 24 horas. La tecnología DIGITAL VLM64 mantiene la información disponible para los clientes. "Las amplias capacidades de servidor Web de la serie Alphaserver, junto con su facilidad de renovación, ofrece la solución perfecta para nuestra rápida 123 curva de crecimiento." The Dallas Cowboys Sistemas operativos: IRlX (Silicon Graphics UNIX) y UNlX System V Release 4.0 MTA:NetscapeMessagingServer3.01Web:Netscape-Enterprise3.0DowCorning"Somos un operador global y siempre hemos utilizado estaciones de trabajo. Escoger Sun fue más arriesgado que otras opciones, pero realmente nos impresionaron con su tecnología y su confianza. Ahora que hemos trabajado con Sun, si lo tuviéramosquehacerotravez,noconsideraríamosotradecisión.Sunestá -- MarkSmith,Directorde"InformationTechnologySystems",Dow realizando un fabulosotrabajo." CorningYahoo! . . UnosdíasdespuésañadimosunamáquinaconFreeBSDanuestroclusterde servidores Web. No sólo superó al resto de nuestras máquinas sino que fue más estable. Unas pocas semanas con este experimentos y estábamos convencidos. Aunque el precio era realmente atractivo, fue la estabilidad, rendimiento y el acceso al código fuente lo que nos convenció. Desde entonces hemos utilizadoFreeBSDexclusivamenteparaproducciónycomoentornodedesarrollo." -- DavidFilo,Cofundador de Yahoo! (FreeBSD News, Número l ) Esta lista de compañías que utilizan Linux en su día a día busca informar al público sobrela realidad de Linux como alternativa viable los a sistemas operativos UNlX comerciales. Compañías como Cisco Systems Inc., Sony World Wide Networks, Mercedes-Benz, and Yellow Cab Service Corporation son mencionadas. Una descripci6n de las capacidades en las que Linux está siendo utilizado acompaña a cada compañía listada. Enlaces de Interés I'. OnSite - Caso de Estudio: Dolores de Cabeza por la Migración por The Aberdeen Group, 1997. Windows NT noes rival para UNIX, dice IDC por Rob Guth, Computer world, 7-24-97. Premio al Producto del Año 1997: Sistemas Operativos Operativos deRed. por Eric Hammond, InfoWorld Laboratorio Técnico. - Sistemas Premio al Producto del Año 1997: Premio al Mejor Soporte Técnico. por Ed Foster, InfoWorld Laboratorio Técnico. Linux Revisiones y Artículos por Christopher Blizzard. Esta página lista 65 artículoso revisiones sobre Linux. Linux Crece: Linux Red Hat's Linux golpea a NT en su propio terreno, por Maggie Briggs. La autora es una analista senior en el Laboratorio Técnico de InfoWorld. Está especializada en tecnología de bases de datos y diseño de aplicaciones, y desarrollo vía intranet y otras redes. Linux ficha por la empresa: ¿Hay un lugar en tu tienda para este económico Unix? por Rick Cook, en: SunWorld - Enero1998. Haciendo cuentas para resolver el debate NT vs. Unix Doing the mathto resolve the NT vs. Unix debate por Wayne Spivak, Network World, 18 de Agosto de 1997 Las ventajas de utilizar BSDl BSD/OS sobre Windows NT Server ¡Server - Verio Web Hosting Inc. - Viruta1 Servers Linux: Not Just For Geeks And College Kids Anymore, por Jason Perlow, ZDNet, 11 de Febrero de 1998. Aprendiendo acerca de Linux: Potente, robusto, y gratis, Linux es un firme candidato, especialmente si planea instalar un dominio de Internet por Neil Randall, ZDNet- PC Magazine Online, Julio 1997, Vol 16, No. 13. Cambiando Windows NT porLinuxporQuinn P. Coldiron,responsabledelDepartamentodeSistemas de informacióndel Universidad de Nebraska Press. Un Análisis profundo de cinco sistemas operativos UNlX y Windows NT 4.0(EnterpriseEdition)por D.H.BrownAssociates,Inc.Comparando BSDl yNT:Construyendo servidores de Internet e lntranet con BSDl y Windows NT The Standish Group - SUN también crece: Solaris Vs. NT Bitwizard B.V. "UNIX vs. NT" El Informe H: 'Que sistema operativo para su 'Intranet'? ¿Porqué escribió este artículo? y ¿Cuál es mi interés personal? Como persona que trabaja en esta 124 industria, ha llamado mi atención la creciente implementación de soluciones sólo NT en situaciones para las cuales no está bien concebido. Actualmente, la frase "solución NT" es una mala elección de palabras si ello implica que ello funciona para satisfacción del cliente. He escrito este artículo como un servicio Los Monopoliosnosirven al públicopara la empresa,corporación,ypequeñosnegociosdelmundo. cliente. Microsoft está lentamente convirtiéndose en un monopolio, no un estándar, comoellos desearían que usted creyese. Java es un estándar. No hay nada abierto en las APlsde Microsoft. Ellos son, y seránpropietarios.LasaplicacionesJavafuncionanencualquierplataforma,lasaplicacionesde Microsoft no. Misingresosprovienendesoportarsoftwarecomercialquefuncionaentodaslas plataformas. Si todos los sistemasoperativosUNlXdesaparecieranmañana,noestaríaafectadoen modo alguno. Como puede ver, no tengo intereses creados en ningún sistema operativo en concreto. No herecibido,recibo,yprobablementenuncarecibiréningúnsoporteeconómicodeningunafuente destinado a promover este artículo. ARQUITECTURA GENERAL DE LINUX RED HAT Además de compartir muchas de las características de UNlX tales como son cumplir con los estándares IEEE PPOSlX 1, System V y características de BSD , todas las versiones incluyen una opción de instalar el código fuente del kernel, administrador de archivos, memoria y otros para que el propio usuario pueda cambiarlos , así como también los diferentes ambientes de Shell que se incluyen desde el KSH de HP hasta el BSH de IBM además de otros, así como la oportunidad de poder crear un shell propietario . En su sistema de gráficos puede soportar consolas virtuales desde una terminal "tonta" hasta una emulación de los productos de Microsoft tales como Windows 3.1 y más adelante winSX, además se puede a la vezpersonalizar el ambientedelescritorio,paraconelloevitar el modotexto.Linuxsoportavarios sistemas de archivos para almacenar datoslos de tipo Minix-1 y Xenix , MS-DOS o leer archivos de dos desde un disquete . Además de lo anterior se cumple la norma I S 0 9660 del, sistema de archivos de los formatos estándares de CD-ROMs. Linux provee además de opciones de sistema operativo de red muy avanzadas, como ya sabemos UNlX por si mismo soporta TCP/IP pero además de lo anterior, linux es capaz de soportar los protocolos SLIP, PLIP, PPP, el sistema NFS. Linux fue escrito en modo protegido para máquinas 386 y superiores aprovechando con ellola memoria extendida además de poder manejar Swap (esto es obligatorio que se configure cuando se esta instalando el S.O. y el rango esta entre 60 MB a256MB),y las instruccionesdeensambladordeunprocesador386 o superior . El kernelsoporta paginación de programas ejecutables , esto es solamente para porciones de memoria en el disco que sonleídasdediscoamemoria . Asícomotambiéncadaunodelosprogramasejecutablesysus procesosestánseparadosenáreasprotegidasevitándolechoquedeaplicaciones o los candados mortales o abrazosmortales.También la facilidaddepoderregenerarelKernel,recompilarlosin necesidad de hacerlo por medios muy sofisticados. AI inicio del sistema cuando la computadora es encendida, no se ha ejecutado ninguna operación del CPU , ya que en el proceso de encendido primero se cargan en memoria y detectan todas las unidades de almacenamiento para después de ello cargar las imágenes correspondientes de los programas que se deban de ejecutar. los programasqueresidenen Muchossistemasdelmicroprocesadorcomienzanautomáticamente dispositivos permanentes del storage tales como memorias readonly programables (EPROMs). Una vez que se cargue el programa del ollhe de la imagen, la CPU debe éI dirigió la ejecución baja del comienzo en el oll local del on de la memoria del hrs el programa cargado. Este proceso del hilo en un programa en el execution se utiliza para comenzar cualquier programa a ejecutarse en una CPU. En este capítulo, 125 examinamos cómo se ata con correa el núcleo de UNIX, o cualquier otro programa similar. Entonces estudiamos la operación del sistema durante la fase de la inicialización, que lleva el sistema de un skn't frío la puntaen la cual los programasdelutilizador-modopuedenserejecutados. Unasecciónfinal examina los asuntos que se relacionan con el procedimiento de lanzamiento. Estos asuntos incluyen el configuración de la imagen de la carga del núcleo, cerrando abajo de un sistema corriente, y poner a punto fallos del sistema. La descripción 13J ' el núcleo de UNlX es solamente un programa, no obstante grande. Como cualquier programadeUNIX, suimagenbinariaresideenuninputen el hie system hastaquesecargay funcionamientofijado. 4.3BSD presumeque la imagenejecutabledelnúcleoresideenunarchivo nombrado vm-unix en el file system que se señala como el filecs\stcm de la raíz. Cuando UNlX se ata con correa en una máquina, un programa especial, nombrado ul, es ahora cargado y es el ejecutarse comenzado.Latareadelprogramadelululatoescargareinicializarlaimagenejecutabledeun programa y comenzarla a ejecutarse. El cargador del programa inicial puede venir del mismo dispositivo de almacenaje que archivo del Ihe éI las cargas iniciales, o puede ser cargado de un dispositivo de almacenaje utilizado por el procesador de la consola de la máquina específicamente para atar propósitos con correa. 394 el lanzamiento de sistema de Char picr 13 que elpm ram del ululato lee el im3c hmary de un programa bajo éI ató con correa en memoria principal y después firma con iniciales ¡/.es la CPU parapodercomenzar el programacargado.Losprogramascargaronporululatosonfuncionamiento fijadoconvirtual-lasinterrupcionesde la dotaciónfísicadelaiid de laconversióndedirección invalidadas. El programacargadoes1'ore.nablingresponsableestosrecursosycualquierhardwaic. adicional tal como dispositivos de entrada-salida, de que se prepone utilizar. Cuando el núcleo de UNlX es cargado por el programa del ululato, el núcleo pasa a través de varias etapas de la dotación física y del software lógica initiali.action en la preparación para la operación de sistema normal. La primera etapa es responsable de i/.ing inicial el estado del (' pi I, incluyendo asociar de la pila runtime y de la virtual-memoria. La memoria que asocia, incluyendo virlual- la conversión de dirección, se permite temprano en el favorable de lanzamiento * el procedure a minimi/e la cantidad de that de lenguaje de ensamblaje special-purpose del código debe ser escrito. Una vez que se permita el asociardelavirtual-memoria,elsistemahace la inicialmáquina-dependientei/alionsyentonces initiali/.actionsindependientedelamáquina.Lasoperacionesmáquina-dependientesincluyen los vectores de paginacióndelavirtual-memoria de la creacióny los dispositivosdeentrada-salidade configuración: las acciones independientes de la máquina incluyen montar el file system de la raíz y el iling inicial las estructuras de datos innumerables del sistema. Este orden es necesario porque muchos del initialitations independiente de la máquina dependen de los dispositivos de entrada-salida que son initialitedcorrectamente.Following la disposicióndelasporcionesindependientesde la máquinadel los programas núcleo, el sistema está en estatus operacional. Se creanlos procesos del sistema y hecho runnable.yuser-level setraenadentro de los filesystemsejecutarse. A estepunto,elsistemaes aplicaciones normales del funcionamiento bajo listo, es una operación máquina-dependiente. En la 13,2 El atar con correa atando un programa con correa mayoría de las máquinas, esta operación es cither utilizado al lado de un procesador secundario llamado el procesadorde la consola, o porunmonitorde la consola. El programadelconsola-monitores residente en el almacenaje permanente y se invoca automáticamente cuando (se reajusta el ' pi I. Los off standalonedel book ¡rap programa.La recursos de laconsolaesperanqueayudabajaqueel mayoríade los procesadoresyde los momloisdelaconsolatambiénejecutanoperacionesdel diagnostie cuando una máquina esloss reajustado (la dotación física del llie del sombreroes functionnig los d')esdelmonitor de la consoladeloidelprocesadorde la propulsaly.MientoululatoProuram consola a menudo no entenderel formato del file system 4.3BSD. En lugar, el formato propietario delfile system de un vendedor, o un cierto file systemmásaceitosoformal,esinterpretadopor el software lógica que utiliza atar operaciones con correa.Por esta razón, el núcleo de UNlX se ha atado con correa históricamenteconelprograma del ululato.Esteprogramaesunprogramadeusogeneraldel 126 \standalone que se puede utilizar para cargar y para ejecutar otros programas del standalone. Esté parado-idonc el programa es un programa que es capaz del funcionamiento sin la ayuda del núcleo de UNIX. Los programas independientes se conectan generalmente al sltitulame 110 lihíufy, una biblioteca que utilice un interfaz de la entrada-salida de UNIX-like enunavariedaddedispositivosdedotación física. La biblioteca independiente de la entrada-salida proporciona a estos recursos a través de una colección (de Boots irapping 395 o de la sección 13,2 ' (hicri.h ansii una biblioteca (ayuda del lhat de las rutinas del) tl() (azulejos de los file systems de UNlX que residen en los dispositivos. Una vez quesehaya cargadoysehayacomenzadoelprogramadelcargadordelprogramainicial,debecargarellile conteniendo la imagenejecutabledelprogramaqueseataráconcorrea y despuéscomenzar el funcionamientodelprogramacargado.Paracargarel hie apropiado,elcargadordelprogramainicial debe saber el path name del archivo que se cargarán y del dispositivo de dotación físicaen los cuales el hie reside. Esta información se comunica para anudar en una de dos maneras. En el VAX, dos registros de dotación física son initiali/.ed para contener los valores que especifican cómo cargador del programa inicial si ' funcione y que debe ser utilizado el dispositivo cuando se cargan las imágenes del programa. Otras máquinas comunican la información que ata con correa al programa del cargador del programa de la misma manera inicial por initialli la pila run-time y entonces poniendo parámetros del Ihe en la pila el núcleo de UNlX pasa argumentoslos a programs. Los registros usados en elVAX se llaman el registro del hool howto y el registro del ululato-dispositivo. El registro del Boot. howto es interpretado por el cargador del programa inicial cuandoel último ' comienzo del Ihe que ejecuta dependiendo del valor del registro, cargador del programa inicial cargará el the, el vm-unixde un dispositivoespecificadoen el registrodelbootdevice, o incitaráen la terminalde la consola del Ihe parael me de un archivo para cargar y de un dispositivo delos cuales obtener el archivo especificado. El valor puesto en el registro del boothowlo se define de los indicadores mostrados en el vector 13,l. El valor puesto en el registro del boot device para identificar el ' el dispositivo de dotación física para utilizar para atar con correaes dependiente en la configuración de la biblioteca independiente de la entrada-salida a la cual se conecta el cargador del programa inicial. Puesto quela composición de estabibliotecaesdependiente en los dispositivosdedotaciónfísicadisponibles en unamáquina,el contenido del Ihe del registro del boot device puede variar entre diversos tipos de máquinas, por nuestra discusión, es suficiente saber que el contenido del registro especifica una partición del dispositivo y del file system del valor por defecto de la cual leer programas. Anude siempre los programas de cargas en la posición de memoriaO. Puesto que el cargador del programa inicial se carga inicialmente en memoria en la localización O, debe copiar su propia imagen a otro lugar en programa del archivo del Ihe del I() del piisscd en la librería de los I'higs Tablé13.1 y a la llamada del sistema del rrhoof. I, OF el prog main que ata con correa encima de sí mismo la memoria baja evita de cargar la imagen (véase fig. 13,l). Esta realocación implica que el programa del cargador del programa inicial se debe crear con su direccionamiento que comienza fijado a la posición de memoria en la cual será copiado; si no, las referencias a las estructuras de datos en el programa del cargador del programa inicial tendrán acceso a las posiciones de memoria incorrectas después de que se copie el cargador del programa inicial (recuerde que el cargador del programa inicial funciona con virtual- la conversión de dirección invalidada).LosmediadelaconsoladeVAX la mayoríade los ordenadoresdeVAXincluyenun procesador dela consola y una cierta forma de almacenaje secundario que sea accesible del procesador de la consola. El subsistema de la consola de VAX-1 1/7"0 incluye un mecanismo impulsor del disco blando, mientras que VAX-11/750 y los subsistemas de la consola VAX-1 1/730 incluyen un pequeño cartucho- el bobinador. La secuencia exacta de las medidas tomadas durante atar un VAX con correa varía de la máquina a la máquina. En la operación normal, el procesador de la consola de VAX busca para un archivo llamado 1 ) l BOO. (' VII) en sus media de la consola. el archivo de las enfermedades contiene los comandos que el procesador de la consola debe interpretar para atar la CPU con correa. Los comandos en los compartimientos típicamente la restauración los subsistemas de la CPU y de la 127 entrada-salida,initiali/.ecolocavaloresconocidosbajos,yentoncescargaunhilodeldispositivode almacenaje de la consola y lo comienza a ejecutarse. El utilizador puede solicitar acciones alternativas en las máquinas de algún VAX fijando los interruptores del panel delantero, o por comandos especiales el pulsar en la terminal de la consola. Cuandoeldispositivodealmacenajedelaconsolaseutilizaenelprocesoqueataconcorrea, el programa del cargador del programa inicial debe residir en este dispositivo de almacenaje.4.3BSD utiliza dos programas utilitarios que manipulenel formato del file system usado por el procesador de la consola -- arfT y ficopv. Estos programas se utilizan para poner programas tales como cargador del programa inicial en media de almacenaje de la consola de VAX. 13,3 Núcleo Initialization cuando el núcleo de UNlX es comenzado por el programa del cargador del programa inicial, hace un lnitialitation en la IO de la preparación los programas de aplicación del 01 de la ejecución. El núcleo de proceso lnitialitation 397 de la sección 13,3 deinitiali/.actionsedivideáspero en tresetapas.Laprimeraetapaseescribe enteramente en lenguaje ensamblador y hace el trabajo necesario para el código del no-ensamblajelenguajeparafuncionar.Lasegundaetapahaceoperacionesmáquina-dependientesincluyendo la configuración y la inicialización de los dispositivos de entrada-salida en la máquina. La tercera etapa hace las operaciones independientes de la máquina, terminando su trabajo comenzando encima de los procesosdelsistema-residentequecomponen la fundaciónparaelambientenormaldeltiempode pasada de UNIX. El lanzamiento de Assembly-Language las primeras medidas tomadas por el sistema durante lnitialitation es realizado por código de lenguaje de ensamblaje. Este trabajo es muy máquina-dependiente; incluye *Settingencimade la pilarun-time*Identifying el tipoofCTUenelcual el sistemaestáejecutando Calculating lacantidaddememoriafísica en la máquina*Enabling la dotaciónfísicavirtual-addiess *Inilialiting de la traducción la dotación física *Graftingde la memoria-gerencia el contexto dela dotación física para el del proceso O que invoca el punto de entrada C-c-based inicial del sistema que nuestra discusión de estos pasos de progresión se concentrará en el trabajo requerido para utilizar el VAX; las accionessimilaressonnecesariasparacualquiermáquinaen la cual 4.3BSD seejecute.Cuandoel programadelcargadordelprogramainicialcomienza el funcionamientodelnúcleodeUNIX,instala solamente dos componentes del estado de la máquina: 1. La prioridad de la interrupción se fija en su nivel m& alto para bloquear todas las interrupciones de la dotación física. 2. El hardware layer invalidó de modo que todas las referencias de la memoria estén a las posiciones de memoria físicas. El núcleo de UNlX no presume nada sobre el estado de la máquina en la cual se está ejecutando. El núcleo se carga en memoria física en la localización O. En la operación normal, se permite la dotación físicade la tratar-traducción de VAX ylaimagendelnúcleoseasociaen la memoriavirtualque comienza en la localización hexadecimal AOOOOOOO. En la preparación para permitir la conversión de dirección, la memoria física usada por el núcleo se asocia en las localizaciones virtuales idénticas. El este asociar del doble es necesario porque VAX el no entrará en modo asociado hasta que se permite la conversión de dirección y se ejecuta una instrucción de ramificación. El asociar doble de la memoria física se asoció al núcleo se asegura de que una instrucciónde ramificación a una instrucción que tiene éxito (especificada como un direccionamiento virtual) irá ala localización física correcta.398 la tarea del capítulo 13 System.Startup S A segunda del código de lanzamiento es a la identidad el tipo de VAX en el cual el sistemaseestéejecutando.Aunquetodosloscomputersde VAX utilizanunconjuntode instrucción común, la configuración de la entrada-salida varía entre las máquinas. Además, las puestas enpráctica del alguno-microprocesadordelarchitecture de VAX utilizandirectamentesolamente un subconjunto del conjunto de instrucción completo de VAX. Para estas máquinas, el núcleo debe emular los instmetions que falta de la dotación física en software lógica. El núcleo identificael tipo de VAX en el cual se esté ejecutando interrogandoal contenido del registro del identification del sistema (SID). **time-out** contenido este colocar incluir uno bien conocido constante que Único identificar tipo VAX. 4.3BSD utilizar sistema tipo *To distinguir entre diferente tipo consola 128 almacenaje media y consola procesador interfaz *To decidir que dotación dispositivo y entrada- interfaz poder ser configured en uno máquina *To dirigir excepcional máquina condición{ máquina controlar) *To calcularentiemporealretrasarponerwith'>/"bucle*Todecidircómo fijar paraarribainterrumpir programa 4.3BSD poder ser configured tal que uno solo núcleo carga imagen poder utilizar un número diferente VAXes. Inicialización después de que el código de lenguaje de ensamblaje haya terminado su trabajo, de Machine-Dependent llama la primera rutina del núcleo escrita en C, la rutina del mnin(). Un parámetro se pasa a esta rutina -- número del Ihe de la primera paginación disponible de la memoria. El sistema calcula este valor, considerando (la mentira site dela imagen de la carga del núcleo del Ihe y de cualquier paginación afectó un aparato holguras bajas de la ejecutar-cal y a otras estructuras de datos. La rutina delmain{)llamainmediatamentela rutina delstnftup{)parahacerinitialitationsmáquinadependiente.SfartupOseprovee el mismonuiin{delvalor)recibidodelcódigodelenguajede ensamblaje.**time-out**tasksIhemáquinadependientestartupcódigoincluir inicialinitationIhe efectuar en el buffer *Allocation memoria para sistema dato estructura inicialización núcleo memoria allocator*Autoconfigurationyinicializaciónentrada-dispositivoalguno otro dotación-específicoparte máquina ser inicializar después de que llamada stUftup{) vuelta, este operación ser describir tarde, en nuestro discusión independiente dela máquina de lanzamiento código. El mensaje BlifTer del núcleo lnilialitation 399 de la sección 13,3 el buffer del mcssn es 4 un kilobyte en un buffer circular situado en la memoria superior de la comprobación del ot. Los mensajes de diagnóstico visualizados en la consola con la rutina de (o una de sus variantes) son kepi en este bulTer como ayuda en problemas que siguen. Antes de 4.3BSD, el almacenador intermediario de mensaje era accesible solamenteatravésdeldispositivoespecial / dev/kmem.Además, los utilitariostalescomoeldmest programanque lee el almacenadorintermediariodemensajeycopianelcontenidodelalmacenador intermediario bajo un hie administrativo del registro no podían sincronizar sus actividades correctamente con la generación de nuevos mensajes de diagnóstico. Por estas razones, 4.3BSD agregó, especial / dev/lO del dispositivo. Este dispositivo proporciona a un interfaz inalterable al almacenador intermediario de mensaje que utiliza la llamada del sistema del \ctcct. Además, la mayoría del diagnóstico del sistema ahora se genera en un formato que sea interpretado por el programa del svslogd. Estos cambios se asegurandequeeldiagnósticodelsistemaestésalvadoconfiablementeenhiesdelregistro.La inicialización del almacenador intermediario de mensaje es directa. Primero, la memoria de los cates del alloc del sistema para el almacenador intermediario deduciendo el site del almacenador intermediario de mensaje del Hie site de la memoria física calculaba por el código del lenguaje ensamblador. Entonces, una correspondencia privada de la paginación, ntfs, es initialited para referirse a las paginaciones físicas apenas afectadas un aparato. Sistema dato estructura asignación de memoria para sistema dato estructura es fácil a este punto ende lanzamiento procedimiento, ' shúlup rutina es provisto identidad de primer disponible paginación de físico memoria que sigue, residente *.v/@//* del núcleo. Además, el núcleo se sabe para residir en la memoria virtual que comienza en el Así, bajo afecte un aparato el espacio para las estructuras de datos contiguas, el sistema asigna simplemente el direccionamiento virtual del bloque disponible siguiente de la memoria física a cada estructura de datos, segmento de boot(-y entonces incrementos el o1 del valor ' por el site de la estructura de datos. La memoria afectada un aparatolas a estructuras de datos de esta manera no es necesariamente initialited a cero; las rutinas del initialization llamaron de main{) se aseguran de que el contenido de cada estructura de datos está instalado correctamente. La técnica apenas descrita se utiliza alamemoriadelallocateparacadaestructuradedatoscontiguadelsistema.Lamayoríadeestas estructuras de datos son sited cuando el sistema es configured, con las tallas basadas en el número máximo de los utilizadores esperados (véase también la sección 13,5). La memoria inmediata y la base del almacenador intermediario asocian, sin embargo, están sited según la cantidad de memoria física disponible en la máquina. La talla de la almacenador-memoria inmediata se calcula como 10 por ciento de los primeros 2 M B M E de la memoria física y 5 por ciento de la memoria restante, " el sistema se aseguran de que haya un mínimo de 16 almacenadores intermediarios, aunque este límite más bajo debe nunca ser un problema a menos que el sistema se configure con el bloque muy grande sites file del la memoriainmediatadel system. la adicióndel fn a los almacenadoresintermediariosdedicadosa 129 almacenador intermediario, el sistema debe también afectar un aparato las cabeceras del almacenador intermediario para intercambio de operaciones: las cabeceras de la entrada-salida buffer del hie del ot del número en el onc-halt'ofthc son intercambio enfermo afectado un aparato del uso del tor y los operations al pagar. El sistema debe calcular el site dela correspondencia dela base altera allocator(mL ' las estructuras de la memoria inmediata del buffer y de datos estáticos, becau-e que el valor está utilizado para asociar toda la memoriafísicaafectada un aparatonodeotramanera al sistema.Unavezque la memoriacorrespondenciay el allocatorde la sistema-memoriahayansidoinitialited(descritoen la sección tollowing),losmecanismosnormalesde la memoria-asignacióndelsistemadebenserutilizados. El allocator de la memoria el paso de progresión pasado en el procedimiento de lanzamiento máquinadependiente antes del autoconfigurationes el allocator de la memoria de sistema del Ihe initiali/.action 01. Los I/O del núcleo afectaron un aparato ya toda la memoria física que requiere para llevar a cabo las estructuras de datos del sistema: cualquier memoria restante se hace uso general del lor disponible. El allocator dela memoria es initialited por una llamada a la rutina del mcminit{) con la primera y a la memoria disponible pasada delo1 de las paginaciones. La estructura de la correspondencia de la base es initialitated a la referencia en esta memoria y el valor del MBR se hace uso para estas, y (las variables del ncfc usadas por el sistema de memoria-gerencia (véase la sección 5,12)se fijan encima de basado en la memoria disponible. Autoconfigurationes el procedimiento realizado porel sistema al no reconocer loquepermitealosdispositivosdedotaciónfísicapresentesenunsistema.Labraprocesofue introducido enlasecciónK.5,donde los requisitos éI loslugares en driversdedispositivofueron descritos. En esta sección, nos concentraremos en los funcionamientos centrales del proceso de la auto configuración. En detalle,estudiaremoslasestructuras de datosqueseutilizanparadescribirla topología de la dotación física de un sistema y la manera en las cuales los dispositivos son alcanzados por el sistema. Paraentenderelprocesodelautoconliguration,debemosprimeroganarunaciertafamiliaridadcon structure del Ihede un ordenador deVAX. Los dispositivosde entrada-salida queel lor un VAX reside en losmegabusesde la entrada-salidacombinauninputloutputdeunaCPUde VAX con un busdel sistema. Los dispositivos de entrada-salidasepuedenconectardirectamentecon el megabusdel sistema informático o, más comúnmente, los megabuses existentes bajos dela entrada-salida que están conectados con los megabuses del sistema con acklpto del bus de la dotación física (véase fig. 13,2). Cada conexión física baja el megabus del sistema de un VAX, incluyendo los adaptadores del megabus, sehaceconunnexo.Unnexohacecualquierarbitrajedelsistema-megabusquelosdispositivos necesiten para tener acceso al megabus del sistema. Cada nexo también proporciona a una batería de Kbyte de registros en el megabus del sistema a través de el cual la CPU puede tener acceso y controla el dispositivo asociado. Los registros asociados a un nexo están situados en la porción de la entradasalida del Ihe de la región del sistema. Nexuses es el núcleo 1nitilli.h de la sección 13,3 Cuadro 13,2configuración básica del ordenador deVAX uno mismo-self-describing: un registro en cada madeja del registro del nexo contiene un valor que únicamente identiFies el tipo de dispositivo asoció a ése nexo. Autoconfiguration trabaja muy sistemáticamente sondando los nexuses posibles en un VAX que busca las conexiones activas bajas el megabus del sistema. Para cada nexo que esté en uso, se interpreta el bajo asociada dispositivo del 01 del tipo el nexo y dependiendo de este tipo, las acciones necesarias se llevan initialite y el configure el dispositivo. Para los reguladores de la memoria asociados a un nexo, el sistema debe initialiteel regulador y permitir señalarde los errores de la memoria. Para los adaptadores del megabus, las rutinas del configuration deben sondear para los dispositivos de entradasalida que pudieron estar presentes en los megabuses asociados de la entrada-salida. Para configurar un dispositivo de entrada-salida, el sistema del tlie requiere que seael dispositivo specified en la entrada fijó dedispositivos comopotencialmentepresenteenelsistema(véase la sección 13,5).yqueéI 130 posibles es organizado en cualquiera de las dos librerías uno para los dispositivos que pudieron residir en un MASSIUJS y uno para los dispositivos que pudieron estar presentes en un UNIBUS. Cuando un adaptador de la entrada-salida se encuentra en el tiempo del autoconliguration, el sistema busca los vectores de initialitation para los dispositivos que se pudieron configurar en ese adaptador. **time-out** paracadacorrespondercondispositivo,unosondearoperaciónserhacer o pordevicedriverde dispositivo (para UNIBUS dispositivo) o por auto configuración código (para MASSBUS dispositivo) y, si punta de prueba ser acertado, dispositivo ser registrar en sistema dato estructura . Apartedeltrabajoimplicado ensondearpara los dispositivos, el procesode la configuracióndebe también identificar donde los dispositivos de entrada-salida interrumpirán, y entonces debe instalar las rutinasapropiadasdelserviciodelainterrupción demodoquelasinterrupcionesfuturasde los dispositivos sean manejadas por los drivers de dispositivo que utilizan. la ' configuración dinámica del archivo de los dispositivos de entrada-salida y de los programas pilotos de interrupción permite que un solo núcleoseaconfiguradoparaunnúmerodediversasconfiguracionesdedotaciónfísica:esta flexibilidad es importante en mantenimiento del sistema minimizado.402 el sistema bajo la milicia de los programas pilotos clínicos. del configuración del lanzamiento de sistema capitulo3 todo el tcp posible vectors el tope a la punta baja del adaptador dela entrada-salida a una rutina special-purpose. I su rutina registra simplemente el vector de la interrupción y el nivelde la prioridad de la interrupción en los cuales una interrupción ocurre en registros bien conocidos, y después vuelve. Las rutinas la depunta de prueba del dispositivo-programa piloto se escriben tales que ellas definen un largo uso de estos registros, pero las carga de la novela realmente un valor en los registros. En la consonancia del cargador del programa inicial, las rutinas de la punta de prueba del tlie de los comodines del sistema del azulejo tales que no salvarán a los registros en entrada, ' 11ns permiten los valores puestos en el valor de los registros que una rutina dela punta de prueba se llama baja sea alterada por una llamada del programa piloto especial de la interrupción del propósito. Para sondear lor un dispositivo y una configuración bajo su vectores de interrupción. la lata simplemente inicialice del sistema los valores conocidos de los registros, llaman el driver de dispositivo punta de prueba baja el dispositivo y para generar una interrupción, y después controlan los valoresen los registrosbajosconsideran si eselejemplodellasinterrupciones.del dispositivo del Ihe, lor rutinario de la punta de prueba del Iheel driver de dispositivo ascendente Machine-IndependentInitialitationconlasestructurasdedatosestáticasdelsistemaafectadas un aparato y los dispositivos de entrada-salida configurados e inicializados, el system es listo terminar el procedimiento de initialitation y comenzar para arriba los primeros procesos de bajo nivel. La acción del historial de la rutina del nuit{) en el hierro es baja instalada el proceso O del lor del contexto; El lhat de proceso de Hie pondrá eventual la política en ejecución de intercambio del sistema de la virtual-memoria. El primer entiv en el vectorde proceso es el proceso afectado un aparatoO del lor, y el proceso de llie es runnable marcado y está instalado puesel proceso actualmente quese ejecuta (véase el capítulo4). La estructura del utilizador, ejecuta -tinie la pila, y el bloque de control de procesos para las latas que el proceso era initialited en el código de lanzamiento de lenguaje de ensamblaje, tan solamente trabajo de menor importancia se requiere para terminar el initialitation. La paginación pasada de la pila run-timees inalterable marcado a actuar como f:()iu se asegura de que el proceso no amplíe su holgura más allá del hxed el espacio afectado un aparato a éI sin causar un desvío del sistema. Varios apuntador adentro (la estructura del utilizadorde la mentira es initialited, y los parámetros de valor por defecto del sistema en el utilizador estructuran se establecen que se heredan a través de una llamada del sistema de la fork. El últimosincluyen los límitesdelrecursodelilie,lamáscarade la archivo-creación,yelarsenaldel identificado del grupo. Cuando los los hilos del proceso O las rutinas hechas a mano, varias se llaman a inicializando cadauna los datos del sistema: la rutina del inicio del sistema instala parámetros del ilie utilizados por el sistema que pagina del ilie. Estos parámetros son dependientes en la cantidad de memoria física disponible y (éI numera de los 131 dispositivosdeentrada-salidaidénticosseráutilizadopara la paginacióneintercambiar.Miento los límitesdelrecurso enlapiladeunprocesoysegmentosdedatos,tanbien como el residenteseleccionado. está instalado en la estructura del utilizador del proceso O. Estos límites entonces auto inicializa-fácilmente serán heredados cerca afligen procesos más aceitosos, puesto que son descendientes del proceso O. 404 el sistema de control de los recursos del contingente del disco del lanzamiento de sistemadelcapítulo 13 *El esKill / cd:incluye los procesosresidentesde los contingentes del I/O de la memoria inmediata así como las estructuras del ita del uper-uside la memoria inmediata. El reloj en tiempo real de *Este se enciende con llamada del sistema. Esta rutina prepara la dotación física del necesario que provee interrupciones regulares al sistema. La tarifa de reloj. el IL programable, es seleccionado para arriba según la variable / / r que es denegado el sistema está en ese entonces configurado.Por el default, 4.3hSD se ejecuta con un lo()-hertz / un reloj 01 de la frecuencia menos de 50 en tiempo real. Este valor puede ser alterado, pero seleccionando un hertz / degradan la cala los dispositivosdeentrada-salidasevotanque,susalgunosmultiplexores terminales de la respuesta de sistema de la dotación física, bajando el reloj y su frecuencia pueden permitir el bajo rendimiento del sistema.\ frecuencia de las altas tarifas delflujo de datos del :VIV)*sc'TII pueden también causar los errores en ciertos cálculos, su ejemplo de round out con un 6()-hertz / una tarifa de reloj, cálculos del número entero involing el reloj de la frecuencia que se sesgarán. El sistema evita normalmente labra problema manteniendo valores del time out en términos que el reloj del 01 se lame.Unaconsideraciónfinalenelegirunrelojfrecuenciaesquelafrecuenciadefine el intervalo observable mínimo del tiempo en el sistema. I el suyo es importante para los cálculos estadísticos, tales como programa que perfila y las estadísticas, donde el reloj del clinico se lame son bajas cargado un valor del proceso o del programa-contador en la cal que se mantiene una interrupción delreloj en tiempo real. En general, la frecuencia de reloj se debe seleccionar para ser como alto como posible sin loo mucho de arriba del sistema que es incurrida en. Después del initialitation del reloj,el sistema de memoria-gerencia de la redes initialited con una llamada al mhinit{) (véase el capítulo 10). **time-out** carácter lista dato estructura usado por terminal entradarecurso ser fijar para arriba por a desecho y subsecuente llamar ser entonces hacer initialite *La su red y interfaz ' \ mentircomunicacióndominioyredcomunicaciónprotocolo proceso-gerenciadato estructura *El textodelvector*Thehashedinodememoriayinodevector*Theintercambiar-espacio gerencia dato estructura 4 mentira del sistema oculto nombre memoria Belore sistema poder alcanzar single-user operación, éI deber aún montar raíz filesystem, y crear proceso yo (proceso que ejecutar vtdinit) y proceso 2 (proceso que copia paginación memoria secundario almacenaje en utilizar virtualmemoria sistema). La identidad del filesystemde la raíz es definida por el valor del Ihe de la variable del rooldcv.Estevalorsedefineinicialmenteeneltiempode la configuración,aunque los utilizadores pueden cambiarlo en el tiempo del cargador del programa inicial atando el sistema con correa de un dispositivo con excepción configurado (véasela discusión anterior de la auto configuración). El inode de la raíz delfile system montadode la raíz es initialite necesario Directoriodetrabajoactual de la sección13,4User-Levellnitialitation405yproceso O dellordel directorio de raíz. Además,la fecha pasada de la modificación enel file system de la raíz del superhi ock of the se utiliza en initialite.in el día del 01 de la cal del sistema. El time stat del lrom el superhiock es bajo comparado cualquier tor actual del valorla hora disponible enla dotación física, yla hora actual se obliga para ser en el plazo de 6 meses del tiempo en el filesystem (a menos que el tiempo del filesystem es totalmente increíble). Este cheque de estado coherente se asegura de que el sistema sea atado con -- talescomo el timedaemon, correaconunahorarazonablementeexacta.Losrecursosuser-level medidoeltiempo -- utilizan el tiemposynchroni/ationyrecalibraciónenunambiente de la red. Finalmente, el sistema es bajo listo ejecuta programas del utilizador-modo. El proceso I se crea con una llamada al ticwpr()c(), entonces el contenidode un programa de lenguaje de ensamblaje pequeño que se compile en el núcleo se copie en el espacio de direccionamiento del utilizador del proceso y se fija el proceso el ejecutarse. El contenido de este programa está básicamente como sigue Es decir, el programa comienza para arribael programa / etchit, exiling el il que la llamada a falla. Esto 132 hace / ctclinit crítico a la operación: II no ejecuta el correctivo.il no está allí,o si las partes delfile system necesario para alcanzarlose dañan, el sistema del ¡he no se puede anudar de esefile system. Este error es más serio que un incorrecto / un vmunix, porque la carga inicial permite el nombrar del 01 un diverso archivo objeto para el núcleo, pero no hay un camino directo bajo especifica programa diferente del init de i. Cuando bastante espaciode disco está disponible, la salvaguardia generalmente es mantenidabajo los 110 disponibledel file systemdeldiferentestalescasospatológicos. El segundoprocesoquese comenzará es , del identificador segundo con 2 más identificador de proceso. Este proceso se ejecuta enteramente en modo del núcleo invocando la rutina del pc/mt, el procedimiento que nunca vuelve o regresa valor. Como el proceso O, el CPU en sus inicios marca su estructura de proceso para asegurar eso que la estructura no será quitadade memoria. El CPU.kútn()n también amplía su segmento de datos paraproporcionarse al sitio deasociarlaspaginacionesdelamemoriaqueescribirá el almacenaje secundario bajo (véasela sección 5,12). La acción pasada o mnin{) es llamada baja la rutina del scluck{) dentro del procesoO. Como el CPU de identificador de este proceso se ejecuta enteramente en modo del núcleo y la llamada al schcd{) nunca vuelve.Larutinadelschcd{)pone la política en ejecución de intercambiodelsistemadelavirtualmemoria: se describe en la sección 5,13.13,4La inicialización de User-Level con el comienzo de la ejecucióndelproceso I, la mayoríadel o1 elsistema esdefuncionamientoyfuncional.Hayvarias medidasadicionalestomadasentreestapuntay el tiempocpudel486definidodelcapítulo la System.Startup un proceso a inicios en el stein Ilic. Todas las acciones tliese forman arcos (solitario por el program user-level que utilizan los LlNlX estándares sistema-llaman el interfaz que los lista descritos en capítulos anteriores. abreviadamente examen: éI camina que ocurre en) un sistema típico 4.3HSI: esté enterado, sin embargo, que éstos la lata de los pasos de progresión varían drast-time\ entre popas sys de LlNlX El programa / ctclinit se invoca como paso de progresión del último del tlie enel procedimiento de carga inicial. Miento los parámetros especificados cuando era UNIX bootsrapped se pasa al initen un terminal machme-dependiente. Enel VAX. (los retrasos pasados bajo el programa del cargador del programa inicial se pasan al init en el mismo registro de dotación física que el en las cuales fueron pasados bajo el núcleo.Initutiliza los valoresdeestosTagsparadeterminarse si debetraerelsistemahastaa la operación sola o multiuser. En single-user operación, init bifurca proceso que invoca, estándar / binlsh delshell de UNIX.Laentradadeinformación,lasalida, y los descriptoresestándaresdelerrordel proceso se dirigen al, / dev/handle de la terminal de la consola de sistema. Este shell entonces funciona normalmente, pero con privilegios del superuser, hasta que termina. En la operaciónmultiuser,elinit primer spawdgenera un shellparainterpretar los comandosen el azulejo / etclrc. Estos comandos hacen cheques de estado coherentedel file system, procesos del upsystem del comienzo, y dados de la base de datosdeinitialite,talescomoarchivo / etdmtab ese los comandos la lista de filesystems montados. Si la escritura / etc/rc termina con éxito, el init entonces bifurca una copia de sí mismo para cada dispositivo terminal que esté marcado para el uso en el archivo / ctc/ttvs del the. Estas copias del / ctdcttv, para manejar la muestra estándar en init invocan otros programas del sistema, por ejemplo procedimiento. El proceso I actúa siempre como el proceso que coordina principal para la operación de sistema. Es responsable de spawnlgenerar nuevos procesos como se terminan las sesiones de terminal, y de manejar la parada normalde un sistema corriente/ etc/rc Cheques de la escritura del comando / etc/rc primero la integridad de los filesystems. Esto cheque es necesarioasegurarsedequecualquierdañosquepudieranhaberocurridodeunfallodelsistema anterior está reparada. La ayuda del filesystem dentro del núcleo es solamente referidos filesystems existentes de la lectura y de la escritura de la voluntad). Cualquier inconsistencia en un filesystem es reparada por programas user-level. El program / vlc/fsck es tlie que la herramienta importante issed en controlar estado coherente del filesystem y en la reparación de filesystems dañados. Normalmente. lsfk se invoca de la escritura del Ihe / ctc/rc para examinar y del filesystem del ea.h de la reparación antes de que se monte. El botín filesystem. del lié II montado por el núcleo se invoque antes deque / etdrc, requiere las reparaciones,4.3BSI.)ilselfdelreboot de la necesidadparaasegurarestadocoherente entre los datos en la memoria inmediata del almacenador intermediario ylos datos en el filesystem. Esta operación del reboot se hace automáticamente, según lo descrito más adelante. Following los cheques 133 del filesystem, los filesystems se monta y se permite cualquier dispositivo que deba ser utilizado para intercambiar y paginar. Los contingentes del disco después se controlan y se permiten, el comienzo y del sistemalosprocesosdefondoqueponenvariosserviciosdesistemaenejecución.Estosincluye / etdupdate, el programa de los procesos Asuntos 407 de la sección 1 3 3 System.Startupque los silencios el discoescriben de la memoria inmediata de huffer cada 30 segundos: / L*(c/crlt el programa que ejecuta comandos en los intervalos periódicos del tiempo: / etclaccn. el favorable gramo que permite el sistema accolinting: y / ctc/svsl(" el proceso de registración del error del sistema. Algunos de estos procesos se comienzan de la escritura/ etc/rc.localdelcomando.En / etc/rc.localde los comandos seadaptasegún la necesidaddecada ordenadorprincipal,mientras que en / ctc/rc de los comandosescomúnatodos los ordenadores principal. El ejemplodel IOR, los procesosqueproporcionanaservicios de red es labiotípicamente encendido del programa / etc/tty del archivo de comando / etc/rc.local / etc/getty es lor spawdgenerado por / etc/init cada línea de terminalde la dotación física en un sistema. Este programa es responsable de la apertura y de initiali/.ing la línea de terminal. Abriéndose, la terminal hace el sistema asignar un grupo de proceso (si los favorables cess tenían ya un grupo de proceso, aplicaciones k t t y / ero de la llamada del sistema del primero éI). El programa getty fija los parámetros iniciales del Ihe para una línea de terminal y estableceel tipo de terminal asociado a la línea. Para las líneas asociadas a un módem, getty puede ser ordenado para validar conexiones en una variedad de velocidades, (el icttv selecciona esta velocidad cambiando la velocidad de la línea de terminal del Ihe en la respuesta baja un carácter de rotura o un error que enmarca, generada típicamente como resultado del utilizador golpeado ting un clave de rotura. Los claves de rotura sucesivos se pueden golpear por un utilizador para completar un ciclo con un número de velocidades de línea hasta que se encuentra el Ihe el apropiado, (las acciones del icttv son conducidos por " una base de datos de la terminal-configuración que esté situada enel archivo / etdgettvtah. Gettv finalmente lee un nombre de la conexión, e invoca el programa / hm/login bajo termina una secuencia de la conexión. / binhoginelprogramade la conexiónesresponsable de firmar a un utilizador sobre el sistema:es generalmente por invocado / etc/gettv con el nombre del utilizador que desea abrir una sesión bajo el sistema. Mensajes de conexión a la comunicaciónel utilizador para una palabra de paso (después de dar vuelta de producir eco terminal si es posible). Si la palabra de paso provista por el utilizador cifra al mismo valor que eso salvada en el archivo principal / ctc/passwd de la palabra de paso, la conexión escribe un expedientedelamuestraencendidoenvariosarchivos de estadísticas,initialites los identificadores del utilizador y del grupo a ésos especificados en los archivos y / etc/group de la palabra de paso, y los cambios bajos el directorio de la conexión del utilizador. Finalmente, la conexión utiliza c.shellparasobreponerseconelshelldelutilizador.Elprogramade la conexióntambiénseinvoca cuando un utilizador incorpora el sistema con un conexión de la red, gettv y el init se desvía para tales conexiones. Antes de que esta complicación fuera agregada (en 4.2BSD), el sistema podría recognite un shell de la conexi6n notando que el procesode padre del shell era init. Estoera útil para las estadísticas y para limitar el número de conexiones simultáneas. El indicador SLOC fue agregado a la estructura del proa para que la conexión fije para marcar un shell de la conexión. La conexión4.3BSD no fija ni utiliza este indicador, pero el indicador del Ihe ha sido a otra parte usado IEl /, 19841. 13,5 Los asuntos del lanzamiento de sistema en estasección,consideramos los asuntosque se relacionanconel procedimiento del lanzamiento de sistema. Estotraecomoresultado que la entrada de undirectoriopuedasertanlargo como serequiera.El espacio asignado aun directorio puede ser completado a partir del conteo para el total del tamaño de entradas; es decir, en resumen las entradasde un directorio tienen una longitud variable y son dinámicas los valores delos tamaños de las entradas. y para que no existan espacios muertos se toman Cuando un archivo o entrada es borrada desde un directorio, el sistema colecciona este espacio dentro de otraentradapreviaen el mismodirectorioparaconellopoderincrementar el cunaparaser incrementado de acuerdo al tamaño de la entrada borrada .Si la entrada de un directorio en su primer campo del chunk esta libre entonces el apuntador a la entrada del inodo se toma como O para que esta no pueda ser tomada en cuenta por el sistema. En las nuevas versiones de UNlX el tamaño de un 134 directorio es de 14 caracteres y consiste en entradas de un arreglo de 16 bits, los primeros 2 bits son el númerodeinode, los restantes14bitssonelnombredelarchivo.Losprogramaspuedenbuscar directorios paraleerlosposteriormentecomoarchivosnormales.Otrode los beneficioseselanexar rutinas de acceso de directorio que puede emular sistemas de archivos tipo MS2 en UNIX. LIGAS Todos los archivostieneasociadosuninodequecontieneinformacióndescribiendo los permisosde acceso, esto incluye desde el dueño del archivo, la fecha y hora de la última modificación y un arreglo de indices que apuntan alos bloques de datos del archivo. Cada directorio tiene un solo inode pero puede tener múltiples entradas de directorio, esto debido a que el sistema de archivos puede hacer referencia a un solo archivo con múltiples nombres . Cada entrada al directorio creaunaligaestáticadeunnombredearchivo al inodequedescribesucontenido.El concepto de liga de inode es fundamental ya que un inode no puede estar dentro de un directorio, pero existe en forma separada y siempre ese inode hará referencia a una liga del directorio. Cuando todas las ligas de un inode son borradas, el inode se pierde. Si una liga aun archivo es borrada y el nombre del archivoescambiadaconunnuevocontenido,secontinúaconotraligahaciaelapuntadordelviejo inode. La fig..7-3 muestra dos tipos diferentes de entradas de directorio de la Pág. 189. Elsistemapuedesoportarligassimbólicas o softlink,unaligasimbólicaesimplementadacuando el archivocontieneelnombredelaruta.Cuandoelsistemalocalizaunaligasimbólicaestapuedeser interpretada mientras por una ruta con su nombre; y el nombre puede ser la ejecución de otra tarea. Si una liga simbólica contiene una dirección absoluta de ruta esta es usada en otros casos, es decir, el contenido de esta liga simbólica es evaluado en forma relativa de acuerdo a una estructura jerárquica de la localización de ligas de un archivo, un ejemplo de una liga simbólica se muestra en la fig. 7-4 de la Pág. 190. Una liga simbólica tiene grandes ventajas sobre una ligadura, específicamente una liga simbólica puede hacerreferenciaaun directorio aunarchivoaunsistemadearchivos.Unaligaduranopermite referenciaaundirectorioperoprevieneciclosenlaestructurajerárquicadelsistemadearchivos; la implernentación de ligaduras previene la referencia a archivos de diferente un sistema de archivos. Algunas ligas simbólicas pueden causar ciclos infinitos en un sistema de archivos, el kernel checa para un número largo “ 8 el que una liga se traslape en el nombre de una ruta. Si el limite es rechazado el kernel produce un error. CUOTAS Los recursos pueden ser compartidos tradicionalmente, esto se hizo en el diseño original de UNlX en algunas implementaciones un usuario común y corriente puede determinar el espacio disponible en el sistema de archivos, en ciertos ambientes esto no es aceptable. Consecuentemente el UNlX original restringe a través de un mecanismo de cuotas el acceso a los recursos del sistema de archivos que un usuario pueda obtener. El mecanismo de cuotas obtiene los límites del número de archivos y de sectores del disco que cada usuario pueda utilizar. Estas cuotas puedenser obtenidas por separado para cada usuario en el sistema de archivos. Los recursos pueden ser obtenidos a través de limitantes restringidas. Cuando un proceso excede estas limitantes un aviso de prevención es enviado al usuario en su terminal, si al sistema no se le hace caso este puede terminar la decisión de terminar este proceso si se ha excedido en el limite de restricción. La idea es que el usuario solo pueda obtener un limite de espacio para cada sección; pero también esto se los puede cambiar de acuerdo a la actividad de trabajo que se tenga. Las cuotas para cada uno de usuarios del sistema y su uso se guardan en un archivo de log. 135 El sistema de archivos tiene una implementación para evitar que el usuario no tenga una abstracción hacia lo quesignificaelmanejodeunarchivo,paraesteelarchivo esun arreglodebytesquees colocado dentro de un medio físico como puede ser un disco magnetic0 ordenado de acuerdo con un tamaño determinado de sectores. El usuario puede escribir un solo byte del disco que puede leerse y escribirse solamente en múltiples sectores,es aquí donde el sistema empieza a acomodar en un arreglo de sectores esos bytes y a reemplazar o reacomodar estos sectores en el disco. Esta operación es aleatoria y es escrita en el sector del disco conocida como bloque de entrada y salida. Primero el sistema obtiene la petición del usuario de haceruna operación de lectura o escritura, esto es aceptado como un cambio interno lógico de bloque. Los bloques lógicos son descritos de acuerdo al tamaño del bloque, el sistema calcula los bloques lógicos necesarios para ser divididos en un arreglo de byte dentro del sistema de archivos. La fig. 7-5 muestra el flujo de información que es requerido para acceder al sistema de archivos de un disco de la pág. 192. Las operaciones para reordenar el arreglode byte y localizarlos dentro del arreglo se pueden resumir en 5 pasos principales: 1- Localización deun buffer. 2- Determinación de la localización correspondiente al bloque físicoelen disco. y 3- Petición del controlador del disco para leer el contenido del bloque físico dentro del sistema buffer esperar la transferencia de información completa. 4- Elcopiardentro de memoriaamemoriadesdeeliniciode apropiada porción del sistema de buffer. la entrada y salidadelbuffera la 5- La escritura del bloqueen el disco. Si la petición del usuario no se completa el proceso es repetido a partir del siguiente bloque lógico del archivo, esto es transparente para otro proceso algunas veces el inode es bloqueado durante la petición de otro recursoy este es retornado hasta que se termina la operación de lecturay escritura del bloque. LOCALIZACION Y SEÑALAMIENTO DE BLOQUESEN EL DISCO El sistema de archivos contiene identificadores de localización pasara nuevos bloque y archivos, una simple técnica para poder localizar archivos dentro de un sistema es que estos sean continuos uno después del otro, pero al ser removidos se tiene que reutilizar este espacio en el disco, a la vez el sistemadearchivospuedemovera los otrosarchivosaeseespacionoutilizado;losarchivos solo pueden ser creados para ser utilizados en un cierto tiempo también. Para poder contener un proceso de localización adecuado UNlX y otros sistemas utilizan el concepto de índice por inode como se muestra en la fig. 7-6 de la pág. 194. los bloques del archivo. El En esta se puede observar que el inodo tiene un arreglo de apuntadores a sistema puede convertir a un número de bloques lógicos a un sector físico con su correspondiente índice en el arreglo usando el número lógico del bloque. La entrada enelarreglodeunnullindicaqueun y menos leído. AI bloque no puede ser localizado por lo tanto un archivo ahí no puede ser colocado escribir nuevas entradas en un nuevo bloque estas son colocadasen el arreglo, siendo este actualizado con el nuevo número de bloque y los datos que son escritos al disco. Enadición el mapeológicohaciaunbloqueeneldisco, la informacióncontenidaenelinodoque contiene otra información del archivoy de su contenido es: 136 0 El modo de acceso y el tipo de acceso para el archivo. 0 Eldueñodelarchivo. 0 El identificador del grupo de acceso. 0 Elnúmerodereferenciasalarchivo. 0 El tiempo más reciente de la última lectura y escritura al archivo. 0 El tiempo que el inodo tardo para ser sustituido por el sistema o actualizado. 0 Eltamañodelarchivoenbyte. 0 El número de bloque físicos usados por el archivo (incluyendo indirectos). los bloques usados por apuntadores ESTRUCTURA DEL SISTEMA DE ARCHIVOS y 7-9 de la pág. 204 y 191, este está más detallado. Este se muestra en la fig. 7-1 MANEJO DEL BUFFER La semántica del sistema de archivos de UNlX implica el localizar las entradas y salidas en el disco, las tareas que son asignadas para el manejo del buffer son de dos tipos: La primera es la de controlar el acceso de la memoria hacia el buffer y los datos que se transfieren del buffer hacia el disco. La segunda y más importante es tomar en el acto el cache más reciente usado por el bloque del disco, como se muestra en la fig. 7-13 del formato de un buffer, este esta compuesto por dospartes: la primerapartees la cabeceradelbufferquepuedecontenerinformaciónusadapara localizar al buffer y describir su contenido, la segunda parte es el contenido actual delbuffer. 137 MANEJO DE PROCESOS EN (LINUX Red Hat) Introducción , tales Un proceso es un programa en ejecución . Un proceso debe de obtener recursos del sistema como sonmemoriayusarademásal CPU. UNlXsoportalaejecuciónyplaneacióndemúltiples procesos al mismo tiempo de controlarlos y conjuntar los procesos que están listos para poder ejecutarse y ser leídos . Un proceso en UNlX opera bajo el modo usuario o el modo kernel . En modo usuario un proceso no se ejecuta en código máquina y que no tiene todoslos privilegios de recursos del sistema es decir se tiene por decirlo así un modo de protección. Cuando un procesos requiere de un servicio desde el sistema operativo hacia adentro de este hace una llamada, en este caso el sistema operativo toma la decisión de cambiar los privilegios y actuar enmodo kernel. Los recursos de un procesosonsimilares y sepuedendividir en dospartes. Los recursosqueson requeridos para la ejecución del proceso en modo usuario son definidos por la que incluye el CPU en sus registrosdepropósitogeneral , el contadordelprograma,elregistrodelestatus-procesador,y los registros de la pila relacionados . Como también los contenidos de memoria en sus segmentos de la programación usadas tales como son las partes de texto, datos los segmentos y de pila. Los recursosquesonocupadospor el modokernelincluyeademásde los requerimientosde registros que son usados por el CPU tales como : contador de programa, el apuntador haciala pila tambiénrequieredelusodelKernely su intervenciónparapoderobtenerunaoptimizaciónde recursosdelsistema. En esteestadoelkernelincluyeparámetroscomosonllamadasalsistema concurrentes.,elestadoactualdelaidentificaciónde los procesosusadosporelusuario. información de la planeación de los procesos, y otros más. . Unix divide el estado del kernel en dos estructuras de datos diferentes como son : la estructura procy la estructura user. Laprimeracontieneinformacióndelestadoactualdelamemoriaprincipaldelsistema estructura la de usuario contiene información necesaria para los procesos que actualmente usando . Estas estructuras son controladasy creadas de manera dinámica. los pero los , la , laotra se estén Mulfiproceso Unix soporta ten forma transparente la ilusión de que múltiples programas son corrido y usados por múltiples programas y procesos . Esto es aceptado en el contexto de intercambio esto es por se debe de obtener un intercambio de recursos del sistema entre un procesos y otro . Un mecanismo proveído para estos es el poder planificar la ejecución de procesos, estos es para poder decidir cual es el siguiente proceso que se ejecuta. Las facilidades que son aseguradas para poder proveer de un acceso constante de los recursos que son compartidas en un conjunto de procesos. Laconmutacióndecontextoesunaoperaciónhardware-dependientequepuestaenprácticaes 138 influenciada por los recursos subyacentes del hardware físicamente. Algunas configuraciones proporcionana las instruccionesdemáquinaquesonsalvadasyrestauradasenelcontextodel hardware-ejecucióndelproceso,peroelestadodelsoftwarelógicoutilizadopor el kernelsedebe cambiartambién.Laconmutacióndecontextosehaceconfrecuencia,asíque el aumentodela velocidad de un interruptor del contexto perceptiblemente disminuye el tiempo con forme pasa el tiempo en el kernel y proporciona más tiempo para ejecutar aplicaciones de usuario. Puesto que la mayoría del trabajodeuninterruptordelcontextosegeneralizaenelahorroyrestablecimientodelcontextode funcionamiento de un proceso, la reducción dela cantidad de la información requerida para ese contexto es una manera eficaz de producir interruptores más rápidos del contexto. MuchossistemasdeUNlXseevitandecopiar los estadosdelcontextode los procesosresidentes usando el hardwarefísicodelaadministraciónde la memoria (si estádisponible)paraasociarla estructura usuario del nuevo proceso corriente en el manejador que el programar el tipo de la estructura de procesos. Planeación de Procesos Esto es una tarea implicada que es dependiente en los tipos de programas ejecutables y en metas programar de la política. Los programas son charaterized según la cantidad de cómputo y la cantidad de entrada-salidadelqueestahaciendouso.Tentativamenteelprogramarlas políticas típicamentede balancear la utilización del recurso contra el tiempo toma para que un programa termine. La prioridad de un proceso periódicamente se recalcula basada en parámetros tales como la cantidad de tiempo de la CPU que ha estado utilizando, los recursos de la memoria , la cantidad que se lleva o requiere para la ejecución, etcétera. UNlX utiliza una política de planeación prioridad-basada que se predisponga para favorecer programas los programas interactivos,talescomoeditoresdetextos,trabajosconcluidosporlotesyelque interactivos tienden para exhibir las ocupaciones de los periodos cortos de cómputo seguidas por los períodos de inactividad o la entrada-salida. La política de planeación asigna a cada proceso una alta prioridad de la ejecución y permite inicialmente que el proceso se ejecute de a cuerdo a un parámetro de tiempo determinado para que estos se ejecuten para la duración de su rebanada de tiempo en CPU y hagan la tarea de bajar su prioridad bajar Usualmente un proceso cambia suprioridad a un más alta en CPU debido a una llamada de una operación de entrada salida. Los procesos que son inactivos tienen su prioridadlevantada. Así, los trabajosqueutilizangrandesmontonesdecalculodeCPUsehunden los trabajos interactivos que son sobre rápidamente a una prioridad baja, mientras que sigue habiendo todo inactivos en una alta prioridad de modo que, cuando están listos para ejecutarlos se instalan con derecho preferente, esto son los trabajos duraderos de la bajo-prioridad. Un trabajo interactivo tal como un editor de textos que busca una cadena, puede convertirse en un cálculo persistente. y conseguirá una prioridad más baja, esto es hasta que se escoja una vez más se volverá a una alta prioridad y de nuevo seran inactivada otra vez. El sistema también necesita una política de planeación de procesos para poder ocuparse de los problemas que se presentan de no tener bastante memoria principal para llevaracabo los contextosdelaejecucióndetodos los procesosquedeseenejecutarse.Lameta principaldeesta política deplaneaciónesreduciralmínimoeltrahsing -- unfenómenoqueocurre cuando la memoria original corta más tiempo del necesario un proceso que está pasado en el sistema, esto se maneja por incidentes de paginación y la planeación de procesos hace ejecutar código de la aplicación en modo usuario para evitar problemas de este tipo. 139 AI iniciar el sistemapuededetectaryeliminareldesperdiciodememoria.Estadetecciónpuede observarse en el montón de la memoria libre y en las peticiones de velocidad de memoria. Cuando el sistema hace una petición de un pie de pagina libre o una petición de memoria de alta velocidad de memoria,esto es consideradoparaevitareltrahsing.Elsistemaeliminaeltrahsingalrastrear los procesos muy largos y evitar el compartimiento dela memoria de esos procesos muy largos. Lamemoria compartida puede ser liberadaal sacar el proceso y en procesos distribuidos remanentes. Cada proceso usualmente puede ser eliminado de esta forma. Este criterio de selección favorece a los trabajos que son cortos e interactivos sobre las tareas por lotes largos, si el desperdiciocontinúa,procesosadicionalessonseleccionadosparasercompartidosy liberarse en memoria posteriormente; con ellos se logra que los procesos sean o estén disponibles y corran efectivamente. Eventualmente los procesos pueden liberar la memoria cuando estos se han completado, esto es debido a que la memoria de salida compartida puede regresar a la memoria principal recursos de ejecución, algunas veces si la memoria no es liberadael proceso de comparticiónde memoria aloja estos después de 20 segundos. Usualmenteel trahsing pude seruna condición para retorno, pero el proceso de entrada de compartición no puede ser muy largoya que existe un limite de tiempo enla memoria residente, esto es que en ese tiempo algunos procesos pueden ser seleccionados paras ser liberados en la salida de compartición. . * . I j La orientación de las políticas de planeación reflejan en forma interactiva el original diseño de UNlX para las tareas, esto se ve en el uso del ambiente del tiempo compartido de memoria. Existen infinidad de documentación escrita acerca de las políticas de planeación de memoria, cada una puede mencionar procesosenlotes o ambientes de sistemasentiemporeal.Usualmenteestaspolíticasrequieren cambios en el sistema para poder ir agregando políticas de planeación. ESTADO DE PROCESOS Estas son estructuras de datos principales que describen el estado de un proceso como se muestra en la Fig. 4-1 pág.72,algunasdeestasestructuraspuedenser los remanentes o lamemoriaprincipal residentecuandoestasotraspuedensermovidasaunalmacenamientosecundarioescuando los recursos del sistema son bajos. La estructura procla yText son dos estructuras de datos que siempre se encuentran en el remanente de la memoria principal. La estructura lusec y los procesos de psginas de tabla son necesario solamente cuando un procesos es residente y corre. 140 text structure r-”l - _............ process control block proc StNCtUre 1 user area . LA ESTRUCUTRA PROC Contiene los procesos de estado que estén residentes sen memoria en todos el tiempo como se muestra en la Fig. de la tabla 4-1 de la pág. 73, que muestra el estado lógico de categorías de información, estas se obtiene como se muestralo siguiente: Planeación: La prioridad del proceso, el modo usuario, son prioridades planeadas, CPU y la cantidad de tiempo de espera del montón de memoria. la utilización de Identificación: El identificador de proceso, el identificador del proceso padre y el identificador real del usuario. Controldememoria:Esunapuntadora la entradadelatabladetextosqueesutilizadapara controlar la compartición del segmento de texto, un apuntador a la tabal de páginas parael proceso, el tamaño del conjunto de páginas residentes en la memoria principal actualmente, y una dirección para la estructura de usuario en la tabal de páginas cuando son compartidos a un almacenamiento secundario. Sincronización: El canaldeespera,estaesunadescripcióndeuneventoparacadoprocesoen espera. Señales:Laseñalrecibidapendiente y la acciónatomarcuandounaseñalesasignadaaun proceso, como es el proceso de un grupo. Conteo de recursos: Es la estructura de reuso que describe provee el sistema, y un apuntador a las cuotas del disco. Controlador de tiempo: El tiempo utilizado fijada. la utilización de muchos recursos que o a que una cantidad de tiempo real expira previamente El valor del estado de un proceso pude mostrarse en la tabla 4-2 de la pág.74. Cuando un proceso es creadoporprimeravezconunallamadadeforzadaestaesmarcadacomoun SIDL. Elestadoes cambiadoaSRUNcuando los recursossonllenosesrelocalizadoelprocesoaparteunaposterior ejecución desde que se ver que un proceso fluctúa entre un estado de SRUN o de SSLEEP y SSTOP se SZOMB hastaque la dicequeunprocesotermina.Lamuertedeunprocesoesmarcadacomo terminación del estado del proceso es comunicada al proceso padre. El sistema orgánica la estructura PROC dentro de un árbol de listas donde se marcan las velocidades de 141 los estados de proceso. Estas listas son asignadas por P-NXT que es un campo dela estructura PROC. Las entradas de la tabla de procesos que se usan por lista de procesos de ZOMBPROC hasta que muestra el estado SZOMB listados hasta quela estructura en SZOM es terminada. se Muchos de los procesos excepto los queseestánejecutandoactualmentesonalmacenadosendos colas, una cola de espera o una cola de ejecución. Los procesos que están en procesos de ejecutables son puestos en la cola de ejecución, cuando un proceso que ha sido bloqueado espera un evento en localizado en la cola de espera, es parado el proceso hasta queotro evento lo pase o lo cambe a la otra cola. La cola de ejecución esta organizada de acuerdo a una prioridad de planeación de procesos. La cola de espera es organizada con el método de HASAH esta estructura es optimizada al encontrar el número de evento del proceso de acuerdo al canal de espera para cada uno los de procesos en espera. Existenmuchasbanderasparaverlaoperacióndelproceso, y estassonutilizadasfinalmentepara marcar dentro del kernel los estados de transición de las operaciones que involucren una elección de muchoscontextos.Otrotipodebanderassonusadasparaguardarinformacióndecomunicación usuario. al o PID, estos son mecanismos Todos los procesos dentro del sistema se les asigna un identificador Único usados por las aplicaciones y por el kernel en referencia a. Los PlDS son usados por las aplicaciones cuando envían señales de otros procesos y cuando reciben el estado de salida de un proceso por la muertedelmismo.DosPIDSsonimportantesespecialmenteparacadproceso: El PIDdelproceso dueño y el PID de proceso padre. Existen muchos campos relacionados para localizar el parentesco entre los procesos, los procesos hijos activos y el tiempo que han estado activos, la liga entre ellos, cual es el proceso más joven y el más viejo. Esto se muestre enla fig,. A 142 Un grupo de procesos es una colección de procesos relacionados entre sí, cada uno tiene su pipeline que puede ser asignado al identificador de procesos del grupo. Los grupos de procesos tienen partes integrales de facilidad de señales como puede ser la muerte de un grupo de procesos que han sido llamados por el sistema o el intercambio de una señal en el grupo de procesos. Las entradas y salidas del sistema en la terminal es un ejemplo de ellas, esto se puede ver cuando se sincroniza el acceso a unaterminalparapermitirquesolamenteungrupodeprocesospuedaaccederaestaterminalen cualquier tiempo esta sincronizaciónfacilita la combinación con otros grupos de procesos además de sus mecanismos de señales previendo elcontrol de las tareas . El tiempo deCPUestadisponiblecuandounprocesoesliberadodeacuerdoaunaprioridadde planeación. Un proceso puede llegar a tener dos prioridades de planeación: una es la de planeación de modo usuario y la otra es la planeación de modo kernel. El rango de prioridades se puede encontrar entre O y 127, esto es un valor bajo es interpretado como una prioridad alta, ver tabla siguiente. Las prioridades en modo usuario están en el rango de 50-127, estas son usadas solamente por procesos que están esperando un evento en elkernel, un proceso del kernel puede tener una prioridad de espera en el rango deO hasta 50 Hasta que se le asigne otra señal. Pero nunca un señal puede cambiar intempestivamente una prioridad a cero, esta regla es necesaria para evitar que las seiiales pueda interferir con la transferencia de datos en disco. Todas las prioridades del kernel pueden ser asignada a procesos de usuario. _. ." El uso de estas prioridades pueden ser especificadas para la llamada de señales de interrupciones del sistema , estas son implementadas y guardadas en el espacio de texto del kernel de UNIX. LA ESTRUCTURA DE USUARIO Estos estados incluyen: 0 Estado de ejecución del modo kernel y del modo de usuario. 143 0 El estado relacionado con las llamadas del sistema. 0 Latabladedescripción. o Elconteó de la información. 0 Elcontrol de los recursos. 0 La relación entre procesos semejantesde ejecución y la pila para el kernel. 2050 bytespara la rutina de El tamañototaldeestaestructurapuedellegaraalcanzarcercade ejecución de la pila, el tamaño del kernel en la pila, en la estructura de usuario solamente es restringida cuando el código de ejecución falla en una llamada de sistema. MEMORIA La memoria utilizada por un proceso puede ser descrita por los campos de las estructuras PROC y USER. Un proceso de modo usuario es descrito en la información de la tabla de paginas que describe los procesos residente actuales en la memoria principal. Antes de que un proceso pueda ejecutarse la taba1 de páginas debe ser cargada memoria apropiadamente. LA ESTRUCTURA DE TEXTO La versión estándar de UNlX 4.3 describe o soporta la compartición de memoria en código natural, es decir,estecódigonopuedesercambiado.Sellegaaexplicar lo anteriorcuando la imagendeun programa de ejecución es cargado ante una llamada de sistema, si el segmento de código es marcado comopuro,elsistemapuedecargaralsegmentodetextosdelaimagenseparadamentedesde la inicialización para no utilizar con ello el segmento de datos. Esto permite la ejecución del proceso de una manera más ágil. EL INTERCAMBIO DE CONTEXTO El kernel intercambia el amontonamiento de procesos en una forma efectiva al compartir el CPU, a este termino se le llama intercambio de contexto. Cuando un proceso ejecuta por un largo tiempo bloques de memoria este requiere de más recursos que tal vez no estén disponibles, en este momento el kernel encuentraunprocesoquepuedeintercambiardecontextoparasalir. A lavezelsistemapuede interrumpirlaejecucióndeprocesosactuales,esto se hacedeformaasíncrona,elintercambiode procesos ocurre en forma asíncrona con respecto los a procesos en ejecución actualmente. Un intercambio voluntario de contexto ocurre cuando un bloque de procesos requiere de recursos no disponibles: un intercambio de contexto involuntario ocurre cuando un proceso se ejecuta por un largo tiempo o cuando el sistema identifica la ejecución de un proceso con prioridad más alta un evento de hardware es resuelto asincrónicamente. EL ESTADO DE PROCESOS Los contextos se pueden intercambiar de acuerdo alos requerimientos del inicioen el modo kernel y en el modo usuario, esto facilita y asegura que todos los proceso en el modo usuario estén localizados con su correspondiente estructura auque algunas veces esto puede cambiarse, las siguientes convenciones se aplica a este tipo: 0 0 Modokernel-Estado de ejecucióndehardware:Estecontextosepuedetomarsuscambios solamente en el modo kernel pero puede ser llamado desde la estructura de usuario. Modousuario-estadodeejecucióndehardware:Cuandoexiste 144 unaejecuciónenmodokernelel estadodemodousuariodeunproceso(existeunacopiadelcontadordelprograma,unadel apuntador de pila y otra de los registros del propósito general) todas estas residen en el kernel en la pila de ejecución que esta localizada en la estructura de usuario, el kernel asegura esta localización enelmodousuarioparacualquierrequerimientodelsistemayparasalvarelambientede los registros en el modo de ejecución del contexto. 0 0 0 LaestructuraPROC:Estaseencuentraresidenteenmemoriasiempreyconunapuntadorala estructura para poder con ello salvaguardar la cabecera la deestructura de usuario. La estructura de texto: Este permite tener un apuntador a la estructura de PROC. Recursosdememoria:Finalmente los recursosde la memoriadeunprocesosondescritos detalladamente por la base de lo largo de los registros. Después de que un proceso es compartido enunmediodealmacenajesecundario los valoresde los recursosdememoriaserecalculany estos recursos regresan a la memoria principal. INTERCAMBIO DE CONTEXTODE BAJO NIVEL La localización del contexto de un proceso dentro de una estructura permite que el kernel intercambie el contexto de una forma muy simple de acuerdo a la estructura actual que se este corriendo. INTERCAMBIO DE CONTEXTO VOLUNTARIO. Esto ocurre cuando un proceso espera la disponibilidad de un recurso o el arribo de un evento, esto suelesucedernormalmenteenoperacionesdesistema.Loscanalesdeesperatípicamenteestán los recursos o los eventos direccionadoshacialaestructuradedatosqueidentificanacadaunode seleccionados para la espera de los procesos, algunas de estas son como se muestran en la tabla dela pág. 81 Estas prioridades pueden ser clasificadas como "mandar a dormir" y "el de despertar" estas prioridades son intercambiadas de acuerdo al intercambio de llamadas que sucedan, esto se puede observar en la cola de estructuras para mandar a dormir procesos de la fig.. slccp queue hash-(ahlc hcadcr .' U 145 INTERCAMBIO DE CONTEXTOS ENTRE PROCESOS los GOTOS queevitanlasllamadasdeprioridadesentre Estoevita la llamadaentreprocesosde procesos, aunque algunas veces pueden ser utilizados en condiciones excepcionales como el aborto de una operación en proceso. Alternativamente los recursos pueden ser parcialmente reordenados, si es necesario solamente cuando se pierdael orden de incremento de estos. Lo anterior puede ser usado solamente sin prioridades en computadoras con un solo procesador ya que en computadoras con múltiples procesadores la sincronización no se puede aplicar en la compartición de memoria Los gotos no locales son utilizados cuando el sistema tiene necesidad de que el sistema tenga una llamadaycuandoelcontexto de ejecuciónnecesiterestaurarsedespués de habercompartidoeste recurso en un medio de almacén secundario respectivamente, una excepción may general es cuando se necesita acceder a un identificador particular para reducir la complejidad de algunas partes del sistema. SlNCRONlZAClON La sincronización entre procesos se resuelve típicamente con la implicación de cuatro banderas dos de ellas principales llamadas de bloqueo y de espera, cuando un proceso requiere de un recurso entonces ve si la bandera de bloques esta apagada, si es así entonces se hace uso del recurso y se enciende la bandera de bloqueo.Si el recursoestaen uso entoncesprende la banderadeesperacon su correspondiente canal asociadode espera, con el recurso, cuando un proceso no muy largo requiere de un recurso entonces se limpia la banderade bloqueo y se invoca a la bandera de despertar un proceso para poder con ello acceder un recurso. Las rutinas que se ejecutan al mismo tiempo que el kernel deben a veces de no poder disponer de los recursos para eso se hace esperala llamada de la bandera de espera de recursos. Cuandolos recursos están siendo accedido porel kernel al mismo tiempo que se comparteno que se tratan de compartir con otro proceso se hace uso de un identificador del kernel para que la bandera de bloqueo no asegure su exclusivo uso para otro proceso que no sea el mismo kernel. Con las rutinas de sincronización se debe de mantener un adecuado control de comunicaciones entre el kernel y las rutinas que en ese momento seestánejecutando.Paraello la mayoríadelascomputadorastienencódigodependientede ensamblador y una tabla de prioridad de interrupciones como se muestra en la tabla 4-5 de la pág. 85 Alternativamente los recursospuedenserreordenadosparcialmente si seincrementaelorden de prioridad de un proceso. 146 Larazónde la prioridadde los procesosesdesalvaguardarelcorrectofuncionamientode interrupciones en la arquitectura de un solo procesador; ya que en múltiples procesadores compartición de recursos tiene otras políticas y el kernel por lo mismo se controlade otra manera. las la PLANEANDO LOS PROCESOS El UNlX estándar utiliza un algoritmo de planeación de procesos basado el colas con múltiples niveles de acceso. Todos los procesosquesonejecutablesconasignadosaunaprioridaddeplaneación determinada de acuerdo a una cola de ejecución. Enla selección de la ejecución de un nuevo proceso el sistema rastrea desde el más bajo hastael más alto nivel de prioridad y selecciona al proceso un nivel de prioridad que sea semejante al que éI necesita. Si existen muchos procesos de la cola de ejecución con el mismo nivel de prioridad y quiere entrar uno nuevo entonces el sistema corre el algoritmo de ROUND ROBIN y esto asegura queel orden de que se corre un proceso será adecuadolaacola de ejecución de proceso. Si unprocesoestabloqueadoentoncesestepuedeserregresadoacualquiernivelde la colade ejecución. Si el proceso utiliza un QUANTUM de tiempo este será llevado o relocalizado al final de la cola hasta que sele asigne un nivel adecuado de prioridad para ser seleccionado como un proceso. La ordenación de un QUANTUM de tiempo esla mejor de las respuestas interactivas ya que esto provee al sistema de un alto nivel de no error, por esto el sistema puede tener overhead en sus procesos y el intercambio de contexto. El QUANTUM de tiempo utilizado en el UNlX estándar tiende a un segundo, estevaloresempíricamenteperosehanencontradoQUANTUMmáslargosde lo queseutilizan normalmente para poder responderal uso de editores y de procesos interactivos. los requerimientosa los Elsistemaajustala prioridad deunsistemadinámicamentedeacuerdoa recursos al montón de recursos usados o consumidos por el proceso incluyendo el tiempo de CPU. Por ellos los procesos pueden ser movidos entre colas de ejecución y cambiar sus niveles de prioridad al final o al inicio de la cola de ejecución. Cuando un proceso y otro están corriendo con el mismo nivel de prioridad o con un alta prioridad el sistema intercambia a los procesos de acuerdo al QUANTUM de espera; si el proceso ya expiro el nivel de prioridad se reasignaal otro proceso. los Si un proceso esta dormido y otro esta esperando la llamada de un sistema entonces este retoma recursos del dormido. Existe un algoritmo de planeación llamada de ordenación de términos,el cual hace un reordenamiento de prioridades entre procesos cuando bloquea a un proceso con un tiempo de espera para la entrada de una entrada salida y para ir sumando o agregando niveles de prioridad bajas del 147 tiempo de CPU. CALCULO DE PRIORIRDADDE PROCESOS La planeación de prioridades de procesos esta directamente determinada por dos valores contenidos en la estructura PROC llamados P-CPU, y P-NICE; el primero contiene una estimación del tiempode CPÚ recientemente utilizado por el procesoy el segundo contiene un rango numérico entre - 20 y 20, este se mueve de acuerdo al tiempo de prioridad del proceso, ver la ecuación 4-1 de la pág.87 y las demás ecuaciones. Los procesos que son ejecutables de acuerdo a una prioridad ajustada se reajustan periódicamente y siempre el CPU ignora en esos momentos a los procesos bloqueados esperando un nuevo evento: esto es, los procesos no pueden ser acumulados en el tiempo de CPU, estos tienen que ser estimados por un filtro. RUTINAS DE PRIORIDAD DE PROCESOS Los cálculos de prioridad de rutinas son ejecutados a través del algoritmo de organización de éerminos, estos se pueden también asociar a dos rutinas ROUNDROBIN y RECOMPENSA DE PLANEACION, está última recompensa las prioridades de rutina una vez por segundo,y realiza cambios en el valor de la rutina de espera de un proceso bloqueado para la llamada posterior de la rutina de mandar dormir procesos posteriormente, la otra rutina se ejecuta 10 veces por segundo y origina que el proceso se replaneé desde una alta prioridad hastala más baja. El CPU hace un cambio cada100 veces por segundo de acuerdo alreloj del proceso, cada uno deesos tiempos de proceso son acumulados de acuerdo al pulso del reloj delCPU. La cola de procesos ejecutablesy el intercambio de contextos La planeación de prioridadeses calculado de acuerdoaun orden de procesos ejecutables,la prioridad de planeación esta entre un rango de 0-127 con otro rango más de 0-49 reservado para procesos que se de modo usuario, ejecuten en el modo kernely otro rango más de 50-127 para procesos que se ejecuten el número de colas usadas alo largo de la colección de procesos ejecutableses calculado de acuerdoal costo de mantener las colas, si solamente se utiliza una sola cola ordenada, entonces simplemente se 32 colas de estastienenque pueden utilizar un solo costo de orden. El sistema normalmente utiliza seleccionar las colas de ejecución de procesos para poder dividir la prioridad de los procesos, la cola de los procesosqueestén ejecucióncontieneprocesosejecutablesen la memoriaprincipal,excepto corriendo actualmente, la Fig. 4-6 de la pág. 89 muestra la organización de cada una de las colas con una doble liga a lalista de estructuras de procesos. 148 UNlX no puede ejecutar procesos preemtivos en un tiempo real, ya que la respuesta a cada uno de estos eventos es dependiente del tiempo de actividad del sistema. En adición los procesos que no pueden obtener una ruta para determinar una página que son residentes en memoria no pueden asegurarse del correcto funcionamiento de su secuencia de instrucciones incurriendo en una o más páginas con fallas. Alguno de los sistemas UNlX garantizan el obtener bonos de duración de la actividad de un sistema, esto lo realizaUNlXenuntiemponoreal,paraelloseutilizanprocesosentiemporealquehacenuna planeación de procesos para direccionar estos problemas en otros caminos. CREACION DE PROCESOS En UNlX un proceso es creado con la llamada del sistemaFORK o de bifurcación, el proceso creado por una bifurcación es llamado proceso hijo del termino del original proceso padre, desde el punto de vista de un usuario el proceso hijo es exactamente igual al proceso padre excepto por dos valores el pit de cad uno de los procesos, una llamada de bifurcación retorna el pit con unO de el proceso padre, con esto se pueden distinguir al proceso padre y el proceso hijo, con elloel programa puede identificar al proceso padre del proceso hijo en una llamada de bifurcación, una bifurcación involucra tres pasos principales. 1- La localización e inicialización dela estructura proc para el nuevo proceso hijo. 2- La duplicación del contexto del padre (incluyendo la estructura iusek y las direcciones virtuales de los recursos para el procesohijo). 3- La planeación del proceso hijo para correrse. El sistema mantiene una liga a la lista de la tabla de procesos libres, esto puede ser no usado a veces cuando se puede examinar lalista de los procesos. Mientras la creacióndeunnuevoprocesoutilizalainicializacióndelsistemapara los hijos en la estructura proc desde un proceso padre. Un valor que no puede ser hecho a un lado para propagar el valor del pit a lo largo de todoslos procesos. 149 El proceso hijo inherentemente tiene limitantes en todoslos privilegios de acuerdo a su padre. En adición la apertura de un archivo y de otra información contenida son obtenidas de un área llamada U-DOT como se presentaen la siguiente información: 0 La señal de estado: El UID determinala señal, el grupo de procesos y las señales en acción. o El segmento del programa da la información del tamaño de cada segmento en la tabla de páginas y organiza el segmento de texto para comenzar a usarlo, un apuntador es asociado en la tabla de textos en su entrada. 0 El detalle de las cuotas del disco El duplicar un proceso tiene como ventajas el manejo más facilita que se involucra para hacer unas llamadas y señales más rápidas hacia el kernel de acuerdo a la llamada del procedimiento Proc-duc. Finalmente el nuevo procesohijo hace un reconocimiento de las planeación de procesos para poder ser localizado en la cola de procesos de ejecución y regresar el valor desde el procedimiento proc-duc que es pasado asu vez al llamado de bifurcación del sistema. TERMINACION DE PROCESOS o aatrvésdeunallamadadelsistemadesalida, o Un proceso puedeterminarvoluntariamente involuntariamenteante el resultadodeunaseñal. En el primercaso la terminacióndelprocesoes causada por un código de estatus donde el padre regresa el código de determinación de proceso, este a su vez se puede dividir entre dos tipos de valores: espera y espera3. El espera 3 es una variante del valor espera que permita que una aplicación sea parada y posteriormente cancelada. Dentro del kernel un proceso termina cuando es llamada la rutina exit, en esto se incluyen tres pasos para la cancelación del procesoen el kernel y estos sonlos siguientes: 0 Cancelacióndecualquier periodo pendiente. 0 Relación entre los recursos y la memoria virtual. o Cierre y apertura de descriptores. 0 Identificación de los procesos hijos al ser parados. Cuando el modo kernel se encuentra en estado de reinicio el proceso es entonces removido desde la los lista de procesosactivosenotraspalabras, la rutina de exitentoncestienequellevaracabo siguientes procesos: o Salvado del estatus determinación en la estructura proc. o Hacer una copiadel paquete de procesos acumulados de los recursos usados . o Notificar la muerte del proceso hijo al proceso padre. Finalmentedespués deque el procesopadrehasidonotificado, 150 el CPUreplaneadirectamentesus procesos para ser cambiados. Nóteseque los recursosusadosporunproceso hijo sonacumuladossolamentecuando existe una llamada de espera. Cuando se intenta analizar el tiempo de ejecución de un programa el usuario final puede obtenerla a partir de la terminación de un proceso. SEÑALES UNlX define un conjunto de señales para condiciones de software y hardware comolas condiciones que se pueden dar durantela ejecución normal de un programa; estas señales son mostradas en la lista de la tabla 4-6 de la pág.95.Lasseñalespuedenserasignadascomoasíncronas o puedenresultarde acciones por default. Como cada proceso tiene una terminación estas pueden ser conducidaso conducir a la salida del sistema, las señales son diseñadas a través de software para obtener su equivalente de las interrupciones de hardware o trampas, cada señal puede ser asociada a una acción que define un identificador de acuerdo a lo que vaya a hacer un proceso. Cada señal tiene una acción por default que puede ser cualquiera delos que se enlistan a continuación: 0 Ignorando la señal. 0 Terminacióndelproceso. 0 Terminacióndelprocesodespuésdegenerarlasecciónprincipaldeunarchivoquecontieneel proceso de ejecución en el estado del tiempo de la señal que fue tomada. Paro de un proceso "Una aplicación o programa puede usar una llamada al sistema específica y una acción para una señal incluyendo". 0 Tomarlaacciónpor default. o Ignorar la señal. 0 Cachar la señal con un identificador. El identificador de una señal en modo usuario es una rutina de sistema que puede involucrar a su vez cuando el proceso recibe otras llamadas a su vez. La señales son clasificadas hacia el proceso cuando el sistema detecta un evento enel hardware como una instrucción ilegal,o un evento de software parala detención de una requisición de la terminal. Una señal puede ser identificada por otro proceso cuando existen llamadas de muerte o eliminación del sistema. El envío hacia procesos de señales etiquetadas solamente se reciben con los procesos que tienen identificadores del usuario únicos, una excepción a esto es el super usuario. Una simple excepción de esta regla es la señal continúa que puede enviar señales a procesos descendientes. Las razón para a esta excepción es que todos los usuarios pueden reinicializar o parar un programa desde el teclado. Las interrupciones de hardware son determinadas por una mascara de señales de acuerdo a un proceso; elestadodeejecucióndecadaprocesocontieneunconjuntodeseñalesactivasdesde la máscara determinadasporelproceso. Si unaseñalesetiquetadaporunprocesoentoncesse le asignauna máscara, la señal es grabada dentro del conjunto de señales pendientes del proceso pero esta un actúas hasta que la señala no sea desenmascarada. Las señales de finalización son relacionadas fácilmente por llamadas del sistema de regreso, este es el equivalente de la carga de la operación del contexto del procesador a nivel usuario. Un apuntador a las operaciones de ensamblador dependientes en el bloque de contexto son las que describen la ejecución en el nivel de usuario del estado de un proceso que es pasado al kernel. Este estado es usado para restaurar el ambiente y resumir la ejecución después de un retorno normal del identificador de la señal al usuario. 151 GRUPOS DE PROCESOS Ungrupodeprocesosestaidentificadopornúmeros de 16 bit's,estoidentificaunacolecciónde procesoscadaunocon un pipeline que es utilizadoporelshell, el grupodeprocesostiene identificadores para terminacióny la obtención de prioridades de las llamadas del sistema que manejala identificacióndeunacoleccióndeprocesos y paraelidentificadordeunaterminalseutiliza el mecanismo de identificación de multiplexación para el accesos hacia una terminal. lnherentemente un proceso es asignado a un grupo de procesos de acuerdo al proceso padre. El sistema nunca podrá hacer cambios en el grupo de procesos y solamente el usuario puede hacerlo a través del shell, esto lo hace conla llamada del sistema SETPGRP para inicializar a un grupo de procesos MANEJO DE MEMORIA EN UNIX. Un componente central de cualquier sistema operativo es el administrador de memoria en el sistema. Como su nombre lo indica eselresponsabledefacilitar el control de los recursosdememoria disponibles enlacomputadora.Estosrecursossontípicamentecatalogados y clasificadosenforma jerárquica de acuerdo ala proximidad que inversamente proporcionalmente se tiene con la proximidad al CPU, como se muestra en la figura5.1 de la página 109. El sistema primario d e memoria es llamado parte principal del sistema ; el siguiente nivel de almacenamiento es llamado almacenamiento secundario o almacén de respaldo. El sistema principal de memoria es construido usualmenteen sus partes para dar un acceso aleatorio a la memoria, puesto que el almacenamiento secundario es movido de su posición de acuerdo a la cabeza del disco. En algunos ambientes de estaciones de trabajo comúnmente se tienen dos nivel es jerárquicos y un tercer nivel jerárquico se agrega en los servidores de archivos conectados a reales de una red de área local con las estaciones de trabajo. En un ambiente de multiprogramaciónes critico que el sistema operativo tenga disponibles recursos para compartir su memoriapara los recursos y también los procesosque lo requieran.Laoperaciónde cualquier política en el control de la memoria esta directamente relacionada con la memoria requerida para un proceso en ejecución esto es si un proceso reside directamente enlamemoriaprincipalde acuerdo a un ordende ejecución, entoncesel controlador dememoria del sistema debe orientarse hacia la localización de unidades de memoria larga . Por otra parte si un proceso puede ejecutarse cuando esta solamente en un lugar parcial de la memoria principal como residente, entonces el controlador de memoria y sus políticas querrán actuar de forma diferente .El controlador de memoria facilita usualmente los intentos de optimizarel número de procesos ejecutables que son residentes en la memoria. 152 Aunqueladisponibilidadde los almacenamientossecundariospermitequemuchosmásprocesos puedanserresidentesen la memoriaprincipalademásestoimplicaalgoritmosadicionalesmás complicados. Típicamente el espacio se controla con políticas diferentes y algoritmos que son usados para la memoria principal, y una política debe ser revisada para decidir cuando se mueve un proceso entre la memoria principal y un medio de almacenamiento secundario. Memoria y Procesos. Cada proceso opera dentro de una máquina virtual esto es definido por la arquitectura que se ejecute de acuerdo al hardware en el cual existe . Nosotros nos interesaremos solamente enlas máquinas la noción de un espacio virtual de direcciones. Un espacio virtual de direcciones es un rango de memoria en dónde se localiza las referencias de un proceso independientemente de la representación física que se tenga el hardware las referencias que se tengan a los espacios de direcciones virtuales son traducidas por el hardware como direcciones físicas de memoria. Esta operación es llamada traducción de direcciones que permite un programa cargarse dentro de la memoria fuera de éSta de acuerdo a los requerimientos y la dependencia de las posiciones de sus direcciones enel programa que fue cambiado. La traducción de direcciones son muy importantes además para la eficiencia y la compartición d e un CPU, por esto la independencia de las posiciones permite usualmente el cambio d e contexto rápido. Muchas computadoras proveen de direcciones de memoria continuas virtualmente para procesos que requieren de sus espacios de memoria . Algunas máquinas sin embargo escogen que un proceso tome unadirecciónvirtualvisibledentroderegionesllamadossegmentos(INTEL) . Cadasegmento usualmentedebedecontenerfísicamenteespacioscontiguosdememoriaydebenempezaren direcciones fijas de memoria esto nos obliga en lo concerniente a nosotros tomar en cuenta sistemas que algunas veces no tengan segmentos visiblemente de memoria y direcciones virtuales de memoria. Esto seveen el usodelsegmentodepalabrasesto no es lo mismoque el usocuandonosotros describimos segmentos de datos de los procesos de Unix en la parte de sus segmentos, como cada texto y segmento de datos se podrá disponer de ellos posteriormente . Cuando múltiples procesos coexisten dentro de la memoria principal, la memoria física asocia a cada uno de los procesos de direcciones virtuales que deben ser protegidas para asegurar que cualquier otro proceso no pueda alterarel contenido del proceso residente en memoria actualmente esta protección es implementada en el hardware y usualmente asegurada a la par con la implementación de la traducción de las direcciones consecuentemente estas dos operaciones son definidas e implementadas junto con el hardware en las unidades de administración de memoria. Cuandoefectivamenteunrangodelasoperacionesdememoriasonlocalizadasporunproceso independientementedeltamañode la memoriaocupadanosotrosdecimosquelamáquinasoporta los requerimientosdeunprocesoenteroocupendireccionesde memoriavirtualcuandoademás memoria virtual no es necesario que este proceso se coloque la enmemoria principal para ejecutarse. La memoria virtual puede ser implementada de dos formas algunas de estas están basadas en software tales como los solapamientos. La mayoría están en escenarios de memoria virtual estos sin embargo también pueden estar basados en hardware. En este esquema las direcciones de memoria virtual están dividida en tamaños fijos de unidades de memoria, llamadas paginas cómo se muestra en la figura 5.2 de la página i. Las referencias a la memoria virtual son resueltas a través de la traducción de direcciones de espacios virtuales en unidades de paginas en memoria principal y con compensaciones de páginas. Las protecciones en hardware son aplicadas por el administrador de memoria en unidades de páginas por páginas. 153 . , Algunos sistemas proveen de dos hileras de memoria virtual en lagunas de estas páginas se les agrupa en segmentos Paginación. La traducción delos controladores es el principal requerimiento del apareamiento dela memoria virtual y los espacios de procesos de memoria física en los espacios de direcciones del CPU . La satisfacción del segundo requerimiento es de que cada páginas de memoria virtual sea marcada como residente o noresidentedentrodelamemoriaprincipal. Si la referenciaa un procesoen una localización de memoria virtual es encontrado como no residente el hardware envía una señal llamada fallo de página. Losservicios de fallo depágina o la paginaciónpermitenque los procesossepuedanejecutar cualquier lugar dentro dela memoria principalya sea parcialmente o virtualmente. en Existen tres tipos de políticas principales en los fallos de página 1 Cuando el sistema carga una página dentro de la memoria a ésta política se le llama de ir por 2 Cuando el sistema coloca una página en la memoria a esto sele llama políticade colocación 3 Cuando el sistema selecciona páginas que han sido borradas en la memoria principal , cuando estas páginas no están disponibles se cambian de lugar y se hace un requerimiento para la política llamada de reemplazamiento . En circunstancias normales todas las páginas dela memoria principal son igual de válidasy las políticas de colocación no tienen efecto en el ambiente del sistema de paginación éstos sistemas de paginación y políticas dereemplazamientobajo la tienenconductasquesondependientesdepolíticasfijas 154 demanda pura de la paginación del sistema una política fija dedemandaesusadasolamenteenlas páginas que son traídas o buscadas como perdidas y son reemplazadas solamente cuando la memoria principal esta llena consecuentemente el ambiente de una demanda pura de paginación en el sistema depende solamente de las políticas de reemplazamiento . En la práctica los sistemas de paginación no pueden implementar un algoritmo de demandas de paginación pura . Automáticamente las políticas de paginaciónavecestraenconsigoalgoritmos que reemplazana lo anterioryconellolapolíticade reemplazamiento es implementado enla memoria principal. Algoritmos de reemplazo de paginación . Las políticas de reemplazo es uno de los más críticos aspectos de cualquier sistema Estos se encuentran en un ancho rango de algoritmos desde los que se pueden elegir por el diseno de estrategias de reemplazo para la paginación del sistema. Unprocesodepaginacióntiene un comportamientoparaobtenerunaentradaque es descrita en términos de las referencias de paginas sobre el tiempo de ejecución de el proceso. Esta secuencia de paginas son llamadas una cadena de referencias , y representan el comportamiento de los procesos en unintervalodetiempodiscretodurantelavidadelproceso. . Lacorrespondenciade los ejemplos mencionados que constituyen una referencia de la cadenadereferenciasobre los valoresrealesde tiempo que en todo caso reflejan la asociación de las referencias losen resultados de fallos de página. Una medida útil del comportamiento deun proceso es la velocidad por default, esta es un número de fallos de página encontrado o registrados durante la corrida del proceso en su cadena de referencia , normalmente es del largo de la cadena de referencia. Los algoritmos de reemplazo típicamente son evaluados en términos de esta efectividad en la referencia de cadena que pueden ser coleccionados a partir de una corrida de real de un programa . Un análisis formalpuedeserusado , noobstanteestatambiénofrecemuchasdificultadessinmuchasmenos restricciones que son aplicadas en la ejecución del programa en un cierto ambiente. Las más comunes medidassonusadasparamedirlaefectividadde los reemplazosdelaspaginasenelalgoritmode velocidad por default. Obtención del modelode trabajo La obtención de un modelo de trabajo hace referencia a que un proceso S e exhibe de acuerdo a muy pequeños cambios en sus referencias locales . Esto es para un periodo de tiempo un proceso opera bajo un conjunto de subrutinas o ciclos , causando que toda las direcciones de memoria hagan referencia a u subconjunto de direcciones físicas de memoria , llamadas conjunto de trabajo. . Los procesos cambian periódicamenteesteconjuntodetrabajo , abandonandociertasáreasdememoriaycomenzandoel accesoanuevas.Después de unperiododetransición los procesosdefinenunnuevoconjunto de páginas como un nuevo conjunto de trabajo. En general si el sistema puede proveer de procesos con algunas páginas sobre las paginas retenidas en un conjunto de trabajo, el proceso puede experimentar una velocidad por default de un fallo de página a alta velocidad. Swapping (Intercambio de memoria) 155 Swapping es el término que se usa para describir la política de control de la memoria en el cual en un medio de almacenamiento primario se pueda mover un proceso entero que se encuentre en la memoria principal . Los sistemas de control de memoria basados en swap son menos complicado que los que demandan paginación. Desde entonces la planeación de los sistemas ha sido movida hacia la técnica deswap,aunqueestossistemassonmenosefectivosque los depaginación por demanda,desde entonces el grado de multiprogramación es muy bajo para los requerimientos delos procesos completos que se están ejecutando.. El Swapping es algunas veces combinado con la técnica de paginación por demanda, por donde la paginación es usada para satisfacer a varios datos de procesos en ejecución de una instrucción, esto debe proveer un mecanismo para salvar los estados de las instrucciones de las máquinas para poder continuar o reiniciar los procesos después. El CPU puede implementar el reinicio parasalvar los suficientesestadoscuandounainstruccióncomienza el estadoquepuedeser reinicilizado cuandose ha descubierto una falla. o modificado o cambiadoelaspecto Alternativamentelasinstruccionespudieronhaberseatrasado solamente después de cualquier falla de haberse descubierto., solo que algunas instrucciones necesitan no ver un pasado o un historial para poder reiniciar . En algunas computadoras, el respaldo de la S instrucciones requierela ayuda del sistema operativo. Muchas maquinas han sido diseñadas para poder soportar la paginación por demanda incluyendo ala memoria virtual con hardware y el soporte para una colección de programas que hacen referencia ala de ser memoria del programa. Cuando el sistema selecciona un pagina para ser reemplazada esta debe salvado el contenido de esta pagina en cualquiera desus facetas esto debido ser llevado ala memoria,. El hardware usualmente mantiene pagina por pagina mostrando una bandera en todo caso que la pagina ha sido cambiada. Muchas máquinas además incluyen banderas de respaldo en cualquier algoritmo de reemplazo usado en una paginación. Cambios en la versión 4.3 BSD Los cambios hechos a esta versión son las orientaciones que han sufrido el sistema de memoria virtual para poder adaptarse a las cambios en la tecnología del hardware. 0 Las imágenes, el texto y las tablas de paginas de todos los programas son retenidas en un cache después de la instrucción de exit . muchos como el antiguo mecanismo de sticky-bit fueron usados para forzarel alto usos de los programas que retenían espacio en swap. 0 Los algoritmos de reemplazo fueron modificados para poder independizar el tamaño de la memoria principal; estos cambios proveen de un mejor ambiente de paginación en el sistema con memorias principales muy largas. 0 Las estaciones de trabajo utilizanel sistema de archivos remotos a través de un servidor de archivos , combinados con la memoria principal larga, hacen que el merito para poder hacer una suma de expansión de memoria. 156 Traducción del sistema de direcciones Cada región e el espacio de direcciones mapeadas son separados por una tabla de paginas . El sistema es mapeado en la tabla de paginas , los espacios contiguos en la memoria principal , dos registros de hardware obtienen la dirección y el largo de la taba1 de paginación algunos de estos cuando se corre el sistema de booto de inicio . El sistema que es basado en registros (SBR) contiene las direcciones físicas de la tabla de paginas , y el sistema con registros largos (SLR) contiene le número de entradas en la tabla de paginas . En la versión 4.3 la tabla de paginas esta localizada en forma estática y el tamaño del sistema es mapeado cuando se compilael kernel . Algunas regiones han sido seleccionadas para poder contenerel remanente de las direcciones en bits de las páginas que son interpretadas como el número de pagina dentro de la región y por el byte de offset dentro de la pagina es decir el byte de desplazamiento. Después de que cada página se le asigna un tamaño de 512 bytes, se obtiene la dirección más pequeña de desplazamiento dentro de esta pagina. Los restantes 21 bits se utilizan específicamente para indexar a la región. La traducción de direcciones virtuales se hacen a través del kernel como se muestra en la fin 5.5 de la panina 121 Algunas direcciones son identificadas como un aparte del sistema colocándose entre los bits 30 y 31 de direcciones, el índice de las páginas serán extraídas desde los bits en el contenedor 29. El índice es checado al mismo tiempo que el largo de los registros y es validad y agregado al sistema basándoseapartirdelregistroencontradoPTE.Comoelcontroladordelamemoriatraducelas direcciones partir del registro PTE , se checan las paginas residentes y estas piden que el acceso se autorizado , y poder extraer el número de pagina físicamente. Finalmente el numero de pagina física es combinada con el byte de offset o de desplazamiento dentro de la dirección de memoria físicamente generada. 157 o o Traducción de las direcciones de usuario Aunque los sistemas estén basadosen tablas de paginas , el usuario pude mapearseen la tabla a partir de las regiones PO y P1 estas son localizadas en velocidades virtuales que se encuentran en la memoria física. Por ello 4 bytes de entrada son necesarios para mapear 512 bytes de un espacio de direcciones, el mapeo necesario para una región de 1 gigabyte serán requerido 8 Mbyte de entradas en la tabla de paginas . AI mapear la región creada sin embargoel hardware localiza estas paginasen las tablas del kernel en la memoriavirtual, y despuésnotodaslaspaginasde la tablasonnecesariasparapoderresidir simultáneamente (Aunque si bien puede no tener ventajas de esta capacidad) . Como un resultado de lasdireccionesvirtualeselprocesodetranslaciónpara los usuariosestabasadoen 2 pasosde traducción usándose dos niveles de la tabla de paginas. Algunos sistemas requieren de la tabla de paginas a partir de la PO esta es descrita a través de dos registros de hardware. El PO se basa en el registro (POBR)queesuna dirección virtual de inicio de pagina en la tabla para la región de PO en el proceso actual. El largó del registro P esta contenido en el registro POLR que contiene el número de entradas de P en la tabla . Estos registros son un conjunto de desde el PCVB en cada cambio de contexto , como estos son generalmente diferentes para cada uno de estos procesos. La regiónP I es descrita de forma similar a través de registro basado enP! Existe un P1 BR y el largo del registro se encuentra a su vez en el registro P I LR. . El inicio de los registros es el comienzo para el mapeo de una región de 1 gigabyte. Sin embargo el POLR especifica el número de PTEs presentesen el mapeo de PO, el largo de P I especifica el número de entradas que son localizadas fuerade la región . Esteesquemaesoptimizadoporelsegmentodesarrollado,desdeentoncesla expansión requiere solamente de el cambio en la longitud del registro. 158 El procedimiento para las direcciones para la traducción de la memoria virtual hacen referencia a las direcciones PO o P1en formasimilar que el procedimientode la traducción delasdireccionesdel sistema , expto por la localización en la tabla de paginas. El alto orden de bits en la región seleccionada de la dirección , entonces es tomada como una dirección del sistema, el índice de pagina es extraído desdeelbit9hastaelcontenidodel29 enladirección.Esteíndiceescomparadocon la longitud apropiada del registro.. Si el índice es menor que el valor del largo del registro para PO (El agrandar a un tamaño igual que el largo del registro P1 ) el valor de la página es validado. El índice es combinado con la base del registro paradar una dirección virtual del sistema parael PTE como se muestra en fiqura 5.6 de la Daqina 123 la traducción en los indices dentro de la tabla es localizada en la entrada que se pidió en la pagina. El sistema de direcciones es traducido como se describió anteriormente para calcular las direcciones físicas desde el ir a traer el PTE de usuario. Finalmente el PTE es checado para validar y proteger a la página , y obtener el numero de página físicamente. El desplazamiento de la pagina o su offset es añadido ala dirección de la pagina que se produce finalmente. a f Nota que la localización del PO y el P1 del usuario se encuentra en la dirección virtual de la tabla del kernel, que son intentadas traducir en 2 pasos que son necesarios para obtener la dirección del usuario físicamente, una traducciónseutilizaporelsistemaparapoderusarel PO o elP1de la tabla. El mecanismo de traducción puede ser estimadoen 2 niveles de la tabla para la dirección del usuario . Por esto la tabla de paginas de usuario son localizadas en las paginas y sonmapeadaspor la tabla de paginas , el índice de paginas va del bit 9 al contenido del bit 29 para la dirección virtual del usuario, puedeseconsideradoqueseobtiene endospartesdesde el bit16alcontenidodelbit29 es seleccionado una pagina de PTEs y desde el bit 9 al 15 es seleccionado otra pagina de PTEs. Esto en u kernel es mapeadoun tamaño de 512 byte en el contenido dela memoria de 128 PTEs, los que se estén en turno del mapeo de 64 Kbyte de memoria de usuario. El sistema de traducción de direcciones usa 159 solamente un pagina de la tabla traducción. , sin embargo algunos sistemas pueden hacerlo en un solo nivel de Fallo de paginas Mientras se realiza la traducción de las direcciones virtuales, el controlador de la memoria del hardware puede descubrir un PTE que no esta validad en el conjunto de bits validos. Cuando uno de estos PTEs es localizado la instrucción actual no puede ser completada hasta que se necesite ser traído un PTE desde la memoria que sea valido . El controlador de memoria en el hardware inicializa una señal defallo de pagina en el modo de sistema. La instrucción que quedo pendiente es resguardada desde que se inicia,hastaquepuedeserotravesrestaurada. LA restauraciónrequierequesepuedalocalizar cualquier modificación en el aspecto o ambiente modificado del registro. Estos puede no ser aceptado hastaquenoseaambientadoUnaspocasinstruccionespuedensermovidasencadena , pudiendo obtener el conjunto de estados , aunque algunas instrucciones pueden ser resumidas y restauradas a gran velocidad . Cuando una falla ocurre el sistema operativo obtiene de nuevo el control y analiza la falla. En un caso normal m la pagina es traída desde el disco o una nueva pagina es colocada en el proceso. Des pues de actualizar el PTE , el sistema regresa a parar de la señal. El regreso al modo usuario se autorizado el reintento de ejecución de la instrucción original. Elhardwaredelcontroladordememoriapuededescubrirotrascondicionesqueprevienenqueuna dirección se traducida de forma completa . Un índice de pagina puede estar fuera del rango especificado para una longitud apropiada del registro , o un acceso puede no ser autorizado para ala protección del campo PTE . Si el hardware detecta cualquiera de estas condiciones , esto causa una señal a partir del kernelinstantaneamenteen la direccióntraducida.Muchosdeestasseñalescausanque el kernel describa un señal (SIGSEGV o SIGBUS) el proceso obtiene una nueva velocidad para poder continuar su ejecución . Esto tiene en una excepción cuando el apuntador a la pila esta por abajo del segmento actual de la pila pero este ‘puede estar fijoen la región de P I , el kernel automáticamentese extiende la pila y regresa el programa de usuario. Traducción de Buffers El uso de los niveles de paginas enla tabla y la localización de la memoria principal implican que mucho de estas tres referencias a la memoria sean requeridas para ir al contenido de una dirección virtual . Comoesteprocesopuedeserprohibidoenunarequerimientoencadareferenciadememoria, el hardware atrapa un PTE, llamado translation lookside buffer que es mantenido. Cuando una dirección es traducida , la traduccióndelbuffer eschecadapara la igualacióndelasentradas., esto puedeser esquivado en los acceso de memoria. Siel requerimiento de traducción no esta listo en el cache , este es de sus entradas. traído y colocado en el cache, posiblemente desplazado en el orden La presencia de una traducción de cache requiere de la operación de purga o depuración del sistema en cualquiera delos estados de traducción cuando un PTE es modificado enla memoria. El manejo de la memoria de la memoria principal:La esencia del mapeo Enlaversión 4.3 de BSD la memoriaprincipal es lógicamentedivida en 2 partes . El kernelesta permanentemente residente en memoria y usa el agarre del segmento de texto y además de datos. En adición , ciertamente las estructuras dedatosdelKernel,paracadaprocesoestaenunatabal,esto además deben ser remanentes y localizados al mismo tiempo que el kernel es inicializado. El remanente de la memoria principal es localizado en el proceso de acuerdo a su demanda como se muestra en la finura 5.7 de la Daaina 124 Una pequeña área de memoria esta enel tope del la memoria es usada para 160 sujetar pocosmensajesquesonimpresoenlaconsola haber depurado unafalla del sistema . : Estosarreglossonautorizadosdespuésde El corazón del mapeo es una estructura central usada en el manejo de la memoria . Esta consiste en un arreglo de estructuras , una entrada para cada cluster delas paginas en la memoria principal , estos son excluidos y localizado en el segmento de datos y de texto del kernel. El corazón del mapeo es localizado al inicio al mismo tiempo que se inicia la estructura de bootstrap del procedimiento de inicio de I sistema . El corazón del mapeo es mapeado en una sección contigua de la memoria principal desde elfirtsfree que se encuentre hasta el final del segmento de datos del kernel como se muestra en la FIG 5.7 DE LA PAGINA 124 .Esta región contigua es la parte de la memoria principal disponible para los procesos de usuario. Elcorazondelmapeoesmantenidocomounarreglocontinuodeunaestructuras,unapaginapor cluster. Aunque los elementos son pequeños (16 bytesen 4.3 BSD) si estos son muchos el total del tamañoquepuedanllegaratener.Estossondeseablesparacadapaginaporclusterdeltamaño reducido al número de elementos y altamañodelarreglo.Ladefinicióndeelcorazóndelmapeodel corazón del sistema se puede ver en la Fiw. 5.8 de la Pág. 125 161 " c .- t y p e : % , . /* ! Por esto se obtiene una relación 1 1 1 correspondiente entre el corazón del mapeo por arreglo y los clusters por pagina de la memoria principal disponible para la localización . Esto es simplemente localizar una pagina por cluster para obtener el corazón del mapeo en su estructura y viceversa. Esto es común para el manejo dela memoria principal en las rutinas de 4,3 BSD en el manejo de las referencias y porciones de la memoria principal. El corazón de las estructuras son usadas para definir diferentes funciones. 0 El registrodeinformación de lasestructurasacerca dela paginaactualenelcluster . Esta información puede ser usada para mapear físicamentelas direcciones de la memoria virtual con las direcciones de la memoria física. 0 Los elementos del corazón del mapeo para ligarlos elementos libres con la lista de la memoria libre 0 El poder localizary sincronizar cada cluster basado en traer la estructura del corazón del mapeo. 0 Localizar las paginas libresy los contenidos de estas con el corazón del mapeo La Siguiente sección marcara pocos aspectos de cada unade estas funciones 162 La traducción virtual ala traducción física L a primera función de la escencia o el corazón del mapeo es almacenar la información acercar del uso actual de las paginas correspondientes. Esta información es almacenada y compactada para utilizar el mínimo de espacio . El tipo de pagina en su entrada en el corazón del mapeo es única en el sistema de texto,datos o en la pila .Lasentradasdelcorazóndelmapeoparaelsistemanonecesitandemás información, como estos son inmunes a las operaciones hechas por el corazón del mapeo del sistema. Otras prudentes consideraciones en las entradas es el poder utilizar un índice dentro de loa sección de texto de la tabla o dentro de la tabla de procesos(para datos y pilas de las paginas ejecutables con los segmentos que se puedan escribir en segmento de textos) al identificar la pagina actual del usuario con la pagina actual del cluster. . La entrada del corazón de las entradas además deben de contener el índice de la pagina que describe la posición de la pagina en el segmento virtual que contiene a esta pagina . Estosdositemssonsuficientesparalocalizar los PTEsporprocesousandounaasociacióncon la estructura del corazón del mapeo. Esta información dentro del corazón del mapeo permite la traducción de las direcciones virtuales a las físicas , muchas de estas tablas soportan las traducciones hacia otras direcciones. Lista de la memoria libre El segundo uso del corazón del mapeo es la creación de una lista de memoria libre . Todas los cluster no puedenserlocalizadosdesde la memoriaprincipalestosdebendecontenerunadoble liga quees formada a partirde dos campos dela estructura principal de mapeo. Las lista de la memoria libre es guardad en el mas reciente de sus usos (LRU) en orden, y actúa como un cache para uso potencial de los datos. Esto es el cluster es usado y puede ser reclamado dentro de todos sus contenidos desde la ultima lista libre hasta que pueda ser reescrito nuevamente . Por esto es el usado del cache , esta lista libre de memoria es mantenida través de una lista doblemente ligada. Una bandera en cada estructura del corazón del mapeo c-free indica que el cluster contiene una lista de memoria libre . Sincronización Los servicios a punto del corazón del mapeo incluyen el uso dela sincronización para las funciones dela . Fueradeestos memoriavirtuallibre,estasoperacionessonindividualesdelaspaginasporcluster encuentran 2 banderas c-clock y c-want que son almacenadas dentro de. Las paginas de memoria son aseguradasdurante el serviciodeunfallodepaginamientrasqueunprocesodeentradasalidaes inicializado : esto son además asegurados durante el rw de las operaciones de entrada salida al leer o escribirunadireccióndirectamentehaciaelprocesodeusuarioysuspaginas. El algoritmode reemplazo ya ha sido descrito y debe ser escrito de acuerdo al demonio de aseguramiento para cada pagina durantela operación de esquivarla confusión con las paginas con fallos y el controlador pagein(). Una adicional bandera ewes usada durante el relleno delas operaciones de sincronización en las paginas enelprocesodecomparticióndepaginas.Estabanderaesllamadain-transit flag estaesobtenido dentro del proceso en que se leen e inicializan una pagina en un cluster yel tiempo en que el cluster es leído para su uso. Si múltiples usuarios de un cluster no residente intenta el usar este cluster al is0 a su o ser el primero en iniciar este tiempo , la bandera previene que cualquier proceso pueda comenzar 163 proceso. El cache de las paginas de texto Como se ha mencionado anteriormente , las paginas que están libres pueden agarrar y usar el total de los datos. UN caso particular es que las paginas solamente contengan el segmento de texto , esto es requerido para propósito especial en el mantenimiento de la información . Esta información es usada paraidentificar los archivosobtenidodesdelaspaginasoriginales.Lainformaciónesgrabadaen el corazón del mapeo en uso dela estructura como un dispositivo, o un número de bloque . La información del dispositivo especifica a cada archivo que esta montado , esto se usa con asociación del índice del sistema de archivos montado de acuerdo a su tabla , o un pseudo montaje de dispositivos en su índice reservado par el dispositivo de swap . El número de bloques en el sistema de archivos se obtiene de los datos que han sido obtenidos. Limitantes de la esencia del mapeo El denso empaquetamiento del corazón del mapeo en su estructura forzan muchas campos que son es la mayor limitados en sutamaño . Comounresultado dela estructuradelcorazóndelmapeo limitación en el tamaño de los otros objetos que supuestamente son soportados por el sistema . La esencia del mapeoen sus limitante son La cantidad de memoria principal que pueden campos ser soportados en su contenido de la ligas de los El numero de dispositivos que son montados en el sistema de archivos son usado en el índice usado para identificarel origen deun cluster asociado conla pagina El tamaño del sistema de archivos incluyen el entrelace entre el espacio de swap (el contenido del sistema de archivos en los campos de acuerdo al numero de blocks) El numero de procesos y la compartición de las imágenes de texto (el contenido de los campos usados enel índice en el proceso y comparticiónen la tabla de textos) Los rutinas de localizaciónde la memoria 2 rutinas llamadas memall y vmemall. La memoria principal es localizada y su contenido a través de Estas rutinas difieren solamente en un aspecto la primea regresa el valor de la falla que se pueda haber encontrado al disponer de una porción de memoria disponible, mientras que la otra espera el regreso de las posiciones de memoria libre , esto siempre ocurre después de que el primer proceso pueda ser localizados . Como una nueva localización de memoria puedeser mapeada siempre en alguna dirección de memoria virtual antes de ser usada por esta rutina operación en el relleno de las direcciones virtuales dentro de un rango. . La rutina de memeall es llamado por un apuntadoral PTE mapeado al principio del rango, un contador de pagina y un tipode procesos parael uso de I inicio del corazón del mapeo en sus entradas. Para cada pagina por cluster en el rango de memall se encuentra un a entrada de memoria que ha sido removida en la primera entrada del desde la lkiksta de memoria libre . Si un usuario previamente a hecho uso de 164 esta pagina se fija la referencia a esta pagina , a su correspondiente PTEs son localizados y limpiados . El numero de paginas que son grabadas en cada PTE dentro del cluster y el corazón del mapeo en sus entradas es inicializado con la información que es suplida por el llamador. DOS interfacessonproveídasparaliberar la memoria . La rutinamemfreereclamatodalamemoria asignadaalasdireccionesvirtualesdentrodesurango,presumiblementetodaslaspaginasson residentes . Una interfaz la alternativa es proveida por vmemfree , que reclama solamente la memoria que es asociada con las paginas residentes en el rango de la memoria virtual ignorando las paginas no residentes. La memoria principal en su porción es inicializada en el inicio del sistema esto incluye todas las paginas que nos son estáticas en el kernel . Las paginas por usuario y por proceso y las tablas de paginas son localizadas a partir de esta posición . Ciertas partes del kernel para cada red además de la localización de la memoria desde esta posición. Sin embargo por esto las redes a veces de la localización de la memoria en un cierto nivel de interrupción , estos es importante que la memoria este disponible para poder esquivar paquetes extraviados. Por esta razón y otrasrazoneselkernelintentamanteneruna mínima cantidad de memoria libre (esta cantidad es configurable de acuerdo a unos ciertos parámetros). Lacantidadactualdememorialibre es guardadaen unavariableglobalfreememquepuedeser . Estavariable es checadaporlasrutinasquesonnecesariasynosonnecesariasparacadablock además para los procesos de sincronización que pueden estar dormidos en la dirección de freemem esperando otra a memoria mas , estos pueden ser agregados cuando se pueda hacer un almacenamiento en forma agradable. Manejo delespacio de swap Las primeras versiones de unix reservaban solamente una sola área en el disco de área de swap . Los procesos son swapedos desde esta área si un proceso esta activo no puede encontrase en la memoria principal . En general la actividad de swap es muy baja en los sistemas cuando son configurados para evitar el swap , por esto el ambiente del sistema es no aceptable cuando se activa un proceso para ser swapeado. La adición de la memoria virtual es movida para nuevas demandas enel dispositivo del swap . Losprogramaslargosdemandandelargosespaciosde swap ycontienepaginasgeneradaspor muchastransferenciashaciaelespaciode swap . Parobtenerunaltodesempeñoen la paginación desde el disco 4.3BSD sus áreas de swap en múltiples discos. Un solo dispositivo lógico es interlazado también en el espacio particular disponible del swap en las particiones libres del disco. Los dispositivos son entrelazados en dmmax-bloc en los limites que se pueden obtener de forma máxima en el tamaño localizado pero nunca en otro espacio de dispositivo. Dmmax es evaluado dependientemente dela limite delamemoriavirtualconfiguradaporelsistemadentro de los rangosdesde 0.5 a 2.0 Mbyte. Los dispositivos de swap son usado para configurar en el kernel al mismo tiempo que, el tamaño de cada computosecalculadurante la autoconfiguración . El.Áreadeswapnonecesitasiempredelmismo tamaño , el entrelazado es computado utilizando el máximo tamaño de los dispositivos disponibles . El orden delos bloques de swap en los dispositivos entrelazados es mostrado en la Fiu. 5.9 de la Páq. 128 cada casilla representalos bloques dmmas , con un numero de bloques virtuales incrementándose como se muestra enla figura,. 165 Como el dispositivoobtieneelmenor de los dispositivos dispOoniblers inmediatamente , el primer dispositivo de swap es disponible al iniciado del tiempo , el virtual dispositivo de swap es mapeado y puede ser movido en un recursos disponible del mapa de swap nuevamente . Los otros dispositivos de swap son habilitados por el swapon que es un llamada al sistema durante el inicio del sistema., en otras los dispositivos deswap que son hechos disponibles al mismo tiempo. secciones del entrelazado de El espacio de swap para cada segmento de un proceso es localizado cuándo el segmento tiene un ciertodesarrollo . Elrecursosdelocalizaciónnosiempreregresa el bloque de swapquetengauna extensión por esto es necesario el entrelazado. Estos individuales trucos son usado para un segmento de mapa en un simple dispositivo . El uso del entrelazado obtiene una concatenación de la velocidad de los dispositivos de swap que tienden a ser distribuidos en la localización del espacio nivelado en los dispositivos del swap que son extendidos al transferir la cantidad de espacios de disco usados en el swap y la paginación Recursos deun proceso Cda proceso es descrito por una estructura llamada de proc , esta es localizada desde un arreglo para cada entrada del kernel en el segmento dedatos , y por la estructura de usuario esta es localizada dinámicamente . En esta sección nosotros examinaremos la utilización de la memoria en los procesos de UNlX BSD 4.3 ,. Nosotros iniciaremos por examinar como los procesos se describen enla tabla de los procesos de la memoria virtual . Esta presentación esseguidaporunadiscusióndevariostiposde PTEs que pueden existir durante el tiempo de vida de un proceso . Finalmente nosotros asociaremosla comparticióndedelosrecursosconeláreadesegmentosdedatos y el espaciolocalizado en un almacenamiento secundario para cda proceso considerado . Espacios de direcciones virtuales en los procesos La región PO es usada para sujetar el segmento de textos de un proceso , seguid por el segmento de datos . La pila del kernel y la estructura de usuario son almacenados en el principio de la región P1 con la pila de usuario al crecer la demanda por debajo de Io requerido. El conjunto de tablas de paginas para las regiones P y P I para cda proceso son salvadasy restauradas durante el intercambiode procesos de contexto.. El movimiento de la pila del kernel y la estructura de la región P I que contiene los objetos que sonmovidosadireccionesfijadas , y algunasdeestasdireccionesdebendeserremapeadas rápidamente como una parte de las direcciones de usuario en espacio del intercambio de contexto. El tope de la paginas de la región P I que sujetan la estructura de usuarioy el kernel en la corrida de tiempo son hechas de tipo lectura solamente paralos procesos de usuario. Unade las ventajas de tener paginas solo para lectura al usuario es que las señales enviadas pueden ser almacenadas en estructuras de usuario que son de lectura disponibles solamente. 166 Tabla de paginas Cda proceso debe de tener un conjunto de tablas de paginas que describen la asociación que existe de traducciónimplica que los procesosagarrendostipos de entre los procesos . Losdosniveles recursos : Las tablas de paginas de usuario al ,mapearse en regiones P I y PO y la porción del sistema de paginas mapeadasen la tabla de paginas de usuario. En el 4.3 BSD el sistema de tablas de paginas es estático estos hace con la localización de un numero muypequeño de tablas de paginascomo se muestra en la Fia. 5.10 de la Páa. 130 . las entradas estáticas enelmapasonllenadasaliniciodelsistema y otrossonllenadoscuandosonrequeridas solamente . la primera sección Sysmap mapea la región fijade la parte del código del kernel, en datos y tablas localizadas al inicio del sistema. ... La segunda área de la tabal de paginas del sistema es dividida en 2 secciones que son usadas por diferentes áreas del kernelel mapeo hacia las estructuras de procesos que son actualmente ejecutados. La tercera área contiene el mapeo para localizaciones dinámicas de la memoria del kernel y acceso temporales hacia secciones principalesde paginas de memoria . La cuarta secciónes el mapeo hacialas direcciones de entrada-salida y la velocidad necesaria para poder acceder a estas algunos dispositivos tiene controladores de autoconfiguración que pueden acceder a dispositivos de periféricos y registros directamente . las piezas anteriores de el sistema de tablas de paginas son mapeadas por la tabla de usuario o por el Usrptmap es usado porel proceso de paginación de tablas dentro de las direcciones del kernel en sus direcciones de espacio. Por esto existe un gran dificultad en la localizar adicionalmenteen espacios contiguos físicamente de memoria al expandir la tabal de paginasel Usrptmap a un tamaño fijo. El tamaño estándar es de 32 paginas, pudiendo ser mapeados4096 paginas en la tabla de usuario, las paginadas mapeadas en turno pueden ser 524,288 paginas a memoria Un estándar en la configuración es la que soporta las tablas de paginas para procesos residentes en la memoria virtual con u tamaño total por arriba delos 256 Megabytes. UnprocesonecesitadecontiguosPTEsdelsistema al mapearsesobre el dueñodelastablas.La localización d las entradas de Usrptmap son manejadas con recursos del mapeo llamados del mapa del kernel. Los recursos del mapa de son reordenados en un arfregoo con netrdas base, size , este par describe los segmentos de recursos libres ver Fiq. 5.1 1 Páa 130 . Un segmento se obtiene al localizar desde un recursos la estructura con rmfree el mapeo del kernel es inicializado al inicio del sistema que contiene todas las entradas de Usptmap.Un índice dentro del kernel map puede localizar estos espacios cuandosonusadoalprincipiocomo el índicedentro de unarreglodePTEsyelíndicedentrodel correspondiente arreglo de direcciones virtuales correspondientes a estas paginas . El PO y el P I en la entrada de paginas son movidas en áreas adyacentes usándose un conjunto de netrads del kernel amp. 167 1 . 1 . . .- , . ~~~~ ~ ~ Figure 5.11 A kernel rcsourcc map. Reservandounaaredeusuarioparalatabaldepaginasquesonproveídasporunprocesocon direccionesvirtualesen el rangodentro de estastablasdepaginas . Sinembargolaspaginaslas paginas de memoria física pueden ser fijas y deben de ser asignadas a las direcciones de memoria virtual dentro del rango. Estas paginas son localizadas con la rutina vmemall o memall , al ionicomde estos que fueron descritos. Nota que todos los procesos de las tablas de paginas de usuario son localizado durantes este proceso, algunosdeestosmalosde los correspondientessistemas de PTEsnopuedenserremanentese inválidos . 4.3 BSDno puedensoportar la paginacióndelastablasdepaginas , estossonsiempre localizados en la memoria para todos los procesos de las tablas de paginas . Esta política es lo que queda desde varias versiones previas de el sistema pero esto no afecta ala velocidad ya que el tamaño máximo de crecimiento de un proceso puede estar sobre el tiempo de crecimiento. La fia 5.12 de la Pás. 131 muestra los arreglos de las paginas por procesos la pagina de tablas por proceso que es mostrador que se ocupan 4 paginas de memoria que pueden ser mapeadas por el kernel a través de 4 PTEs . La primera secci6n del proceso en tabla de e paginas es PO con un POBR apuntando al inicio . El valor de POBR es almacenado en un PCB para el uso del hardware, y este debe de ser almacenado en un PCB . El P1 de la tabal de paginas son movidos después de las entradas de PO a final para evitar un desvió,. En adición el autojuntador dela tabla es mantenido ; la estructura proc contiene un campo al apuntador de del primer PTE desde la estructura de usuario (cerca del final el mapeo de P1 ) . Un boquete entre las 2 secciones autoriza para una pequeña cantidad de expansión en el sitio. : -0 Physical memory . . . . . ... .. ... ... .,. ................ . ... ... ... ... ... ... ...... .. .. . . . . . . . . ... ... A B -C D Tipos de entradasen la tabla de paginas 168 ......... . Cuando un proceso es creado el espacio direcciones están vacías , algunos PTEs son o están validados de acuerdo al bit off. Como el proceso se ejecuta, las referencias de memoria al segmento de textos casi queexistaunafalladepagina como resultado eneliniciodelaspaginasqueestraídodesde la asociación que se tiene conlos , objetos . Estos fallos de paginas son terminados cuandose llena estas demandas de paginas y son asociados PTEs en el estado inicia llamados demanda de relleno de PTEs . Cuandounapagina esvalidaentoncesseasumequepudeestarresidenteenmemoria . validando siempre los PTEs se desincronizan a no cero un número de paginas , las direcciones de memoria física son el número de paginas que pueden ser mapeadas en direcciones. El demonio de paginación El remplazo de paginaes aceptado con la rutina pageout. Cuando Pageout reclama las paginas que han . Esta rutina pude de sido modificadas es el responsable también de escribir hacia el espacio de swap ser disponible desde el uso normal de el kernel en el procesos de sincronización y los mecanismos de dormir . Si estos corren después de que es iniciadoel proceso , el demonio de paginación con el dueño de la estructura proc , la estructura de usuario y la pila del kernel . Se inicia el demonio de paginación esta es creado por la llamada de fork durante el inicio del sistema o siempre y cuando el modo del kernel sea remante yse llama después por la rutina fork . El demonio de paginación es simplemente una , quenuncahasidodevuelta.Paraconveniencia , eldemoniode entradaalallamadapageout paginación tiene una larga entrada de espacios dentro de la paginación de mapeos estas paginas son escritas en el espacio de swap . Aunque esto no se quiera también se afecta las entradas de entradasalida , el proceso de pageout necesita de operaciones hacia disco que son asíncronas y que pueden continuar al rastrearse paralelamentecon las escrituras hacia disco. Parámetros de paginación los controladoresde los fallosde Laslocalización de memoriarequieredeprocesosquecontienen paginas que constantemente provocan unvuelcodelsistemaencompetenciacon los mantenimiento mínimos de la listas de las paginas libres. Como el sistema opera necesitade un monitor en la memoria principal al intentar procurar la corrida del demonio de paginación después de querer utilizar una cierta cantidad de memoria libre cerca de un espacio mínimo conun mínimo de espacio para comenzar. El demonio de paginación dormita hasta quela memoria principal lo necesita . El trabajo del demonio de paginación es el controlar el numero de parámetros que son calculados en la rutina de schedpaging . En general la meta de esta política es la de mantener libre la memoria para poder esquivar un mínimo de problemas . La política es implementada por el algoritmo de CLOCK estas paginas son reclamadas por el demonio de paginacióncomounafunciónque la memorianecesitaparaelsistema.Como una memoria mas es necesita por el sistema , muchas paginas son rastreadas y al mismo tiempo mostradas susreferenciasalaspaginasmáscercanas . Estoprovocaqueelnúmerodepaginaslibresse incremente. Cuatro veces por segundo el sistema checa cuando se requiere de mas memoria . Si la velocidad de la paginación es determinada por el demonio de paginación que siempre esta esperando una llamada del sistema. La velocidad de la paginación es obtenida de acuerdo al numero de paginas por cluster que . ElSchepagingdetermina la necesidaddemás hayansidorastreadas encadacuartodesegundo . Elprimer memoriaparacompara el numero de clusterslibresysusotrosparámetrosnecesarios parámetro lostfree , especifica el comienzo en kybites del tope del demonio de paginación. Cuando hay 169 memoriadisponible quenoesteporencimadelcomienzo,estaspaginas no fueronrastreadas o paginadas por el demonio de paginación . La rutina de lostfree es normalmente de 512 kbyte y esto es multiplicado por 4 en la memoria de usuario. Los otros interesantes limites especifican la petición de cantidades de memoria libre que pudo haberse mantenido libre , desfrfee y el libre de memoria por considerar tolerar bvte para un Swapping comenzando por minfree . Desfree usualmente esta obtenida en un rango de 200 kbyte y mas además de I parámetro minfree que usualmente ocupa 64 kbyte y es mas de 60 partes de memoria. La velocidad que pude llegar a obtenerse son rastreadas de acuerdo a los reemplazos variables de 200 paginas o a veces más del 200 % de memoria por segundo cuando están completamente fuera de memoria las 100 paginas por segundo cuando la memoria esta libre e igual al valor de lostfree . Los valores pedidos para los parámetros de paginación son comunicados al demonio de paginación de acuerdo al contenido de lasvariablesglobales . Del mismo modo el demonio de paginación guarda progresivamente , en términos de paginas rastreadas sobre cda a intervalo de tiempo que esta corriendo, de acuerdoal contenido dela variable global. La operación de Pageout Cuando no se puede conocer las información a examinar el demonio de pageout , es implementada como rutina a través de la politica de reemplazamiento de pagina . Pageout comienza por obtener los apuntadoresquesonimplementadosden la política dereemplazamiento,parapoderapuntarados controladores de reloj quesonpropiosparaunaciertadistanciaapropiada. Los apuntadoresson realmenteindicesdentrodelcorazóndelmapeo de memoria , estossontratados como unarreglo circular . el rastreocontiene los principalespaginasquesonestáticasporelkernel. El procesode pageout entonces es alcanzado para mandarse a dormir mientras que se encuentra otro espacio de memoria libre por abajo. Esto es esperado a la vez en cuatro veces por segundo mientras que se obtiene corre mientras el mínimo de memoria por lotsfree. Cda vez que el tiempo se ha tomado por pageout este se limpia el reloj el corazón del mapeo mientras es diseñado el número de pares de clusters que deben de ser examinados enel diseño de la cantidad de memoria libre que 'puede ser rechazada. Cda iteración que llegue a borrar dentro de los dos exámenes de las 'paginas por cluster en cda frente del cluster habrá un controlador entonces que habilitarsua vez otro controlador por cluster Los cluster al principio son examinados para determinar cual el es,estado en que se encuentran para ser candidatos a ser reemplazados . Si un cluster no esta libre el pageout , invalida sus PTEs para estos clusters, si el cluster es compartido en el segmento de textos, se propaga el cambio de los PTEs hacia otro procesos que es compartido en la pagina.. Cuando un pageourt examina la entrada en el control anterior , este checa cuando el cluster ha sido usado por otro controlador anteriormente. Si esto ha sido usado se valida un bit que indica que anteriormente ha sido inicializado este cluster . Si este no ha sido usado se le considera de nuevo libre hasta que existe un proceso que libre totalmente este cluster a través del pageout. Otra de las opciones es que el cluster sea liberado . Si cualquier de estas paginas han sido modificadas o no han sido anteriormente escritas a través de swap, esta puede ser liberada antes de que esta se considere libre . Si las paginas que se tengan como libres inmediatamente. El procedimiento para poder escribir procesos enlas paginas de acuerdo al dispositivode swap, es que un pagina es obtenida o push sin ninguna comp0licación . La prelocalización del espacio de swap paras este proceso es descrito dentro de la estructura de usuario. Sin embargo el swap es hecho a través del contexto del proceso de pageout , con esto se hace referencia al dueño de esta estructura. Después de queunatabladepaginasprivadaspushmanesusadoelmapeohacia la estructuradeusuariose apodera de las paginas dentro de las direcciones del kernel dentro de sus espacio. 170 Como el largodelprocedimientodepageout esnecesarioparapodersalvarlapaginaactual , las paginas adyacentes de el proceso son residentes y sucios por el cluster contiguo son reescritos estos en un almacenamiento secundario. Si estos son libres antes de que el siguiente sea modificado , entonces estos no requieren deoperacionesseparadasdepageoutr . No mas quelaspaginasdedmminson normalmente 32 comenzando por el valor de dmmin-page, son clustereadas juntas ()dmmin es udadoi para asegurar el uso de todas estas paginas en cada block que hubiese sido contiguo en el espacio de swap). El mecanismo usado por pageout escribe hacia las paginas de swap hacia diferentes áreas desde las entradas mas importantes de entrada-salida en2 importantes caminos. La primera pagina no valida o sucia son mapeadas dentro de las direcciones de memoria virtual de acuerdo al demonio de paginación y la velocidad es considerada desde el inicio de las direcciones virtuales usadas porel espacio de procesos. 0 Las operaciones de escritura son diseñadas asincrónicamente. AI inicio de las operaciones estas son admitidas por la rutina deswap y reconocidas si estas no son . El buffer ensuencabezadousa la validasparasacarlasconunabanderaespecialqueespasada descripciónde la operacionesdeentradasalidaquesoninicializadasdeformacorrectapor el procedimiento . Los PTEs para las paginas invalidas son copiadas por el demonio de paginación hacia la tabla de paginas ; las direcciones de la pagina que son consideradas como libres son grabadas en el buffer de swap en el campo b-pfcentAdemásporestoelpageotno,puedemandarseadormirlas salidas sean aceptadas , supuestamente como no normales reobteniendo el control, después de una operación de entrada salida completa. Antes del swap se marca el buffer con una llamada anterior y con la obtenciónde unabanderaqueesobtenidaporunallamadahaciaatrás . Cuando el arrojo o la evacuación de las paginas es completa swapdone es llamada , este coloca al buffer en la lista de las paginas completasy se llaman a su vez alas rutinas awakens pageout. 171 UNIX (LINUX) COMO SERVIDOR DE ARCHIVOS La implementaciónde un servidor UNlX para archivos nativos es muy sencilla y confiable, ya que gracias a sus administradores de archivos, de memoria y de procesos los archivos solo son controlados en su seguridad enred de manera más abstracta y menos transparente para el usuario. La capacitación que requiere un usuario de UNlX es más compleja que en Windows NT debido a la administración de seguridad que se maneja; los sistemas de archivos pueden ser locales o remotos en UNIX, si son remotos se pueden implementar conel protocolo NFS del sistema de archivo,ya sea desde un sistema operativo Windows NT o UNIX. Si nosotrostrataremos de compartirarchivosdesdeunamáquina UNlX haciaunamáquinaNT deberemos de hacerlosatravésde dos técnicas:pormediode NFS o pormediode Samba; si lo hacemos a travésde NFS se tendrá que haceruso del montaje de sistema de archivos NFS como cliente en Windows NT y como servidor en UNIX, como se muestra en las siguientes figuras: En nuestro caso el sistema de archivos fue montado a través de siguientes pasos: Samba, por lo cual se siguieron los 1. Instalar el sistema de Sambaen UNIX. los archivosquesemuestran:Véase 2. Configurarcomosemuestraenlassiguientesfiguras el siguiente apartado 3. Crear un acceso directo o una conexiónderedenWindowsNThacia correspondiente a UNIX. la unidaddered los permisos alos archivos de los usuarios que 4. Configurar como se muestra en las siguientes figuras tengan acceso y derecho a estos recursos. 5. Configurar los demonios de Samba Lo anterior se explicaconmásdetalleenlasecciónInstalación,ConfiguraciónyAdministraciónde Samba en UNlX y Windows NT. Lacomparaciónqueexisteentrelaconfiabilidadyaccesibilidad siguiente cuadro: deNFSySambaseresumeen PROTOCOLO Configuración Soporte multiplataformas NFS Difícil SI (Unix/NT/Novell) I SAMBA 1 Fácil I NO el I Confiabilidad Alta I Regular Concluyendo que un servidor de archivo de UNlX nativo o de archivos de Windows NTo de MS-DOS es confiable y con muy pocos costos de administración, configuración y recursos del sistema. Haciéndose un resumen en la siguiente tablade los archivos y recursos usados paraeste fin. 172 I UNIX COMO SERVIDOR DE APLICACIONES Las aplicaciones de tipo UNlX o de forma nativamente se pueden manejar localmente o remotamente con NFS y de manera transparente para sistemas UNIX, la única limitante que se puede presentar, es encontrar la versión adecuada de la aplicación para el kernel y versión del sistema operativo, así como las librerías, controladores y otros archivos que sean necesarios para poder correr estas aplicaciones. En nuestro caso Linux RED HAD tiene una amplia distribución ya sea para prueba, de uso comercial o de distribución gratuita a través de Internet en comparación con Mandrake , Slakcware y otros tipos de UNIX. Solamente es cuestión de pasar horas navegando buscando y las aplicaciones sus y componentes que se requieran para poder instalarse. Acontinuaciónseenlistan los sitiosdeInternet en los cualessepuedenbajardiferentestipos aplicaciones, actualizaciones y drivers para LinuxRED HAD. de En el caso de querer utilizar a UNlX como un servidor de archivos de NT o Windows es necesario el poder instalar y configurar adecuadamente a Samba, los pasos que se requieren para poder llevar a cabo lo anterior sonlos siguientes: 1. Instalar y configurar Samba. HAD. El instalar Samba se hace automáticamente con la instalación de UNlX RED II. Laconfiguración de Sambasehaceatravés figura. de los siguientesarchivoscomo se muestraenla 173 Se deberán agregar usuarios de Windows NT con el mismo loginy password en ambos sistemas, con la instrucción adduser de Linux y con las siguientes modificaciones a los usuarios , esmeralda, domingo, aldebaran, ezequiel, paulina, josefina, Administrador iii. El archivo SMB.CONF sedebehacerdelasiguienteforma,parapodercorrerennuestrocaso Word, Excel, Power Point y Paint Shop Pro. # This is the main Samba configuration file. You should read the # smb.conf(5) manual pagein order to understand the options listed # here. Samba has a huge number of configurable options (perhaps too # many!) most of which are not shown in this example # # Any line which starts with a; (semi-colon) or a# (hash) # is a comment and is ignored. In this example we will use a# # for commentry and a ; for parts of the config file that you # may wishto enable # # NOTE: Wheneveryou modify thisfile you should run the command "testparm" # to check that you have not many any basic syntactic errors. # . . . . . . . . . . . . . . . . . . . . . . . . Global Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [global] #workgroup = NT-Domain-Nameor Workgroup-Name workgroup = Atlantis 174 # server string is the equivalent of the NT Description field server string = Samba Server # This option is important for security.It allows you to restrict # connections to machines which areon your local network. The # following example restricts access to two C class networks and # the "loopback" interface. For more examples of the syntax see #the smb.conf man page ; hosts allow = 192.168.1. 192.168.2. 127. #CAMBIO # if you want to automatically load your printer list rather # than setting them up individually then you'll need this ; printcap name = /etc/printcap ; load printers = yes # It should not be necessary to spell out the print system type unless # yours is non-standard. Currently supported print systems include: # bsd, sysv, plp, Iprng, aix, hpux, qnx ; printing = bsd # Uncomment this if you want a guest account, you must add to this /etc/passwd # otherwise the user "nobody" is used guest account = nobody lock directory= /var/lock/samba share modes = yes #this tells Samba to use a separate log file for each machine # that connects log file = /var/log/samba/log.%m # Put a capping on the size of log thefiles (in Kb). max log size= 50 # Security mode. Most people will want user level security. See # security-1evel.M for details. ; security = user # Use password server option only with security = server ; password server = CNT-Server-Name> # Password Level allows matching of -n- characters of the passwordfor # all combinations of upper and lower case. password level= 8 username level= 8 # You may wish to use password encryption. Please read # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation. # Do not enable this option unless you have read those documents encrypt passwords= yes smb passwdfile = /etc/smbpasswd # Unix users can map to different SMB User names username map= /etc/smbusers # Using the followingline enables youto customize your configuration 175 # on a per machine basis. The%m gets replaced with the netbios name # of the machine that is connecting ; include = /etc/smb.conf.%m # Most people will find that this option gives better performance. # See speed.txt and the manual pages for details socket options= TCP-NODELAY #""""" /// OJO EL " " " " " " " " " " CAMBIO ES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [homes] comment = Directorios principales path = /home browseable = yes read only= yes . . . . . . . . . . . . . . . . . . . . . . . . . AGREGAMOS AL ADMINISTRADOR . . . . . . . . . . . . . . . . . . . . . . . . [Adminis] comment = Configuracion del Administrador de NT Server path = /home/Administrador valid users= Administrador browseable = yes public = yes writable = yes write list = @Administrador read list = @Administrador run list = @Administrador readonly = no [word] comment = Subdirectorio de word path = /home/office/word valid users = word browseable = yes public = yes writable = yes readonly = no [excel] comment = Subdirectorio de excel path = /home/office/excel valid users = excel browseable = yes public = yes writable = yes readonly = no [power] comment = subdirectorio pp7 path = /home/office/power valid users = power browseable = yes public = yes writable = yes readonly = no ¡v. Los siguientesarchivossedebeneditarparaquesolamenteciertosusuariostenganaccesoa Word, Excel y Power Point. En el caso de Paint Shop Pro cualquier usuario que este dado de alta en 176 UNIX y en Windows NT puede ejecutarlo. Tambiénen el archivo/etc/groupsedeberánhacer las siguientesmodificacionessobretodoen los usuarios de cierto grupo según sean sus derechos por ejemplo: si josefina va a usar solamente word y excelse le deberáasignargruposadicionalescomosemuestraen la figura,también si esmeralda quiere hacer uso de word, excel, PowerPoint y word se deberá también asignar estas entradas de grupos adicionales al archivo como se muestra. da,josefina,lrhs,root,~dministrador,lina,ezequiel,aldebaran,morelia,domingo lda,word,excel,power write list = @Administrador read list = @Administrador run list = @Administrador readonly = no [word] comment = Subdirectorio de word path = /home/office/word valid users= word browseable = yes public = yes writable = yes readonly = no [excel] comment = Subdirectorio de excel path = /home/office/excel valid users= excel browseable = yes public = yes writable = yes readonly = no [power] comment = subdirectorio pp7 path = /home/office/power valid users = power browseable = yes public = yes writable = yes readonly = no 2. En Windows NT se deberá hacer lo siguiente: I. Se deberán agregar los siguientes usuarios en Windows NT Server con caracterísitcas que se muestran a continuación en las siguientes figuras: los atributos y La anteriores la pantalla generalde Administradores de usuario, para poder agregar a usuarios Esta esla pantalla de agregarun usuario con determinadas características Samba.org If2 @ Invitado IUSR-TITAN Cuenta Dara acceso m m o invitado al equip Cuenta de invitado a InterrAccesoanónirno alnternet Server Usuario de wctn 98 para Internet IUlS his roberto hernandez Adrnon llnux Admlns del dominio Dupltcadores Invitados Invitados de dominio Operadores de copla Opers. de cuentas Administradores designados del dominio Pueden duplicar archivos en un dominio Pueden acceder como invitados al equipo o dominio Todos los invitados del dominio Pueden eludlr la protección de archivos para realizar copias de segur1 Pueden administrarcuentas de usuarios ygruposde dominio - . . . . . . . . f$ lrhs f$ root . . ii. . ' Enelcaso de Windows98 y aveces NT Serverse ( siguientes entradas en el registro como se muestralaen sil )erá correr el siguiente archivo, con las iente figura: O bien ejecutar un archivo llamado Win95-PlainPassword.reg In el siguiente contenido desdeel menú de arranque conla opción ejecutar el archivo x:Win95_PlainPa! vord.reg con el siguiente contenido REGEDIT4 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services tD\VNETSUP] "EnablePlainTextPassword"=dword:00000001 Lo anterior es debido a que Windows 98 y Samba tiene difere ?S tipos de encriptación por ello cuando ere hacer uso de este programa, se le pedirá una contraseña y esta debe ser encriptada y desencrip la por Windows para aceptar las claves planas o desencriptacion o plana que tiene Samba si no es así rechazara la conexión. un usuario con cierto nivel de seguridad como los de Word iii. ecto y una conexión a red de acuerdo al En caso desernecesariosedeberáhacerunacceso perfil del usuario que se quiera para poder correr Word, E: ?Io Power Point como se muestra enla figura siguiente: 179 180 La figura anterior muestra la petición de el password para poder hacer uso de Word en Samba Las siguientes figuras muestran el path y las características de seguridad en este caso de Word para poder accedercomo acceso directo a Word en Samba. 3. Cada vez que se hagan cambios en los archivos de configuración mencionados anteriormente, se deberáreiniciarWindows NT o Windows 98 y tambiénsedeberáparar y correreldemoniode Samba como se muestra a continuación: 181 Nótese que la ruta para poder parar /etc/rc.d/init.d o reiniciar el demonio de Samba smb se encuentra en el path Y que como no es un directorio que deba encontrarse en la variable de shell, PATH por seguridad se deberá de ejecutar comoun comando externo del ambiente de Shell de Linux comoes ./smb stop 4. Para cada uno de los cambios que se hagan en los sistemas es necesario que este uno firmado en cualquiera delos sistemas operativos comosuper usuario. Para poder investigar más acerca de Samba véase las siguientes ligas y documentaciónde Samba; es necesario hacer notar que no todas las aplicaciones nativas de Windows podrán correr remotamente en un servidor de aplicaciones tipo Samba; ya que es preferible el poder obtener la versión adeucada de red e instalarla en UNlX remotamente desde Windows NT; este es el caso de Word por ejemplo, ya que como sabemos éI ofrece la capacidaddeautoguardarundocumentoenciertointervalodetiempo automáticamente; y debido a que las librerías de nuestra versión no son las adecuadas no se puede hacer esto de forma automática. Cabe hacer mención que las versiones más actuales de Office “2000 tampocoofrecíanestascapacidades,perosipodíanofrecerunmayornivel deseguridadparacada usuario. (véasela documentación de Office 2000) En conclusión el usar un servidor de aplicacionesen UNlX a través de Sambaes más económico, fiable y rápido (en tiempo de ejecución y no de conexión) que en Windows NT. Tal como se muestra en el siguiente monitoreode recursos. 182 UNIXCOMO SERVIDOR DE WEB Y E-MAIL En nuestro caso el implementar a UNlX como servidor de Internet es sencillo si ya se tiene instalada la versión de apache que se requiera, solamente en el caso de quererlo hacer en una lntranet o de salir a Internet se complican las cosas. Aunque la administración y configuración es más o menos sencilla si se sigue la documentación ylos ejemplos que se enlistan a continuación: 1. Se deberán configurar a UNlX como un servidor de dominio de acuerdo como se muestra enlas siguientes figuras conlos archivos correspondientes: 2. Se deberá hacer los cambios si se requieren los siguientes archivos como se muestran: 3. En el casodequeserequierannuevaspáginasdeInternet, CGI, Programasde Java; estosse deberán colocar en el subdirectorio como se muestra en la figura y hacer los cambios en el archivo de configuración como se muestra en la siguiente figura: ## ## httpd. conf-- Apache HTTP server configuration file ## # This is the main server configuration file. SeeURL http://w.apache.org/ # for instructions. # Do NOT simply read the instructions in here without understanding # what they do, ifyou are unsure consultthe online docs. You have been # warned. # ServerType iseither inetd, or standalone. ServerType standalone # If you are running from inetd, go to "ServerAdmin". # Port: The portthe standalone listens to. For ports < 1023, you will # need httpdto be run as root initially. 183 Port 80 # HostnameLookups: Log the names of clientsor just their IP numbers # e.g. www.apache.org (on) or 204.62.129.132 ( o q # The default is off because it’d be overall better forthe net if people # had to knowingly turn this feature on. HostnameLookups off # If youwish httpd to run as adifferent user or group, you must run # httpd as root initially and it willswitch. # User/Group: Thename (or #number) of the user/group to run httpd as. # On SCO (ODT 3) use User nouser and Group nogroup # On HPUX you may notbe able to use shared memory as nobody, and the # suggested workaround is to create a user www and use that user. # NOTE that some kernels refuse to setgid(Group) or semctl(1PC-SET) # when the value of (unsigned)Groupis above 60000; # don’t use Group nobody on these systems! User nobody Group nobody # ServerAdmin: Your address, where problems with the server should be # e-mailed. ServerAdmin root@localhost # ServerRoot: The directory the server’s config, error, and log files # are kept in. # NOTE! If you intendto place this on a NFS(or otherwise network) # mounted file system then please read the LockFile documentation, #you will save yourself a lot of trouble. ServerRoot/etc/httpd 4. Todos los anteriores cambios deberán ser hechos como superusuario, además de parar y reiniciar el demonio correspondiente como se muestra a continuación: En conclusión UNlX como servidor de Internet es barato, confiable; pero requiere de un alto costo de configuración y mantenimiento. UNlX como servidor de E-Mail, es sumamente complejo y complicado el poder implernentarlo, en el caso propio la instalaciónyconfiguración de los archivos ya que estabahecha,sinembrago; se hicieron algunas modificaciones comose ilustra en las figuras siguientes: Los siguientes archivos y sitios pueden ser de utilidad para poder configurar un servidor de E-mail en UNIX, pero en conclusión este tipo de servidores es el quemás abunda en Internet y en las lntranets del Mundo,yaqueesmuyconfiableysusoporteeselmásantiguodetodos los servidoresdeE-mail existentes en el programaSMTP. Aunque aparentemente los servicios de mail de cualquier servidor parecen ser lo mismo, Unix o Linux ofrecen mas ventajas al poder configurar de maneracasi automatica la seguridad dentro de su sistema, ya que en este se puede configurar de manera autonoma a traves de los servicios de administración las “quotas” de usuario es decir, si diésemos de alta la cuenta de un usuario nuevo en Linux es posible 184 asignarle un espacioen disco duro para que pueda almacenar sus mails, atachment u otros archivos, as¡ como tambien se puede, configurar de manera mas personal la mascara de derechos de cada uno delos usuarios. Linux es popular para correr programas CGI en el lenguaje Perl. Windows por otro lado le permite utilizar varias herramientas de Microsoft para crear sitios interactivos. Por ejemplo, si usted usa Accesso SQL serverparacrearbasesdedatos,sicuentaconunservidorWindowsustedpuedecrear aplicaciones web. Existen diferentes aplicaciones que pueden lograr un optimo desempeiio como servidor de mail, pero sin duda todos se apoyan en la versatilidad que tiene Unix para poder ser administrado. 185 UNIX COMO SERVIDOR DE IMPRESION El uso de la impresión de UNlX ha estado desde que se creo el sistema operativo como tal, sin embargo; no ha evolucionado hasta la forma en como lo hizo en Windows NT, por lo que la impresión de archivos en forma nativa se deberá hacer como se muestra enla siguiente figura: Si se quiere utilizar una máquina conectada una a impresora de tipo UNlX e imprimir desde Windows NT los solamente se podrá hacer de forma transparente a través de Samba, para ello se requiere de seguir mismos pasos que enla sección UNlX como servidor de aplicacionesy además los que se muestran en la figura siguiente: Enconclusión UNlX ofrecemuchasdesventajasenmantenimiento Windows NT. 186 y operaciónencomparacióncon IIF Desactiva la comprobación de los archivos disponibles en los diskettes de inicio. 6IC IPasa por alto los controles de espacio disponibles enlos diskettes de inicio. . .. . 1 1 " . .I. ." " Para hacer la instalación sin los diskettes de inicio. Mediante /Sindicaremos larutade los archivosdeinstalación si noesdesdeelCD-ROMenel directorio 1386. Permite la instalaciónautomática.Mediante /S indicaremoslarutade archivos de instalación si no es desde el CD-ROM en el directorio1386 los Para todos los casos de instalación NT 4.0 necesita un volumen de discolocal compatible con NT, con al menos119 espacio de Mbcomprimido libre, no y formateado con FAT o NTFS. Podemos encontrarnos con distintas circunstancias al hacer la instalación: 0 Si tenemos un sistema operativo instalado con acceso a un lector de CD, desde el directorio 1386 187 del CD ejecutamos WINNT/B para que comience la instalación y no se generen los tres discos de inicio. 0 0 Para realizar una instalación a través de red necesitamos tener instalado el cliente para red de MS-DOS(vieneincluidoenelCDdeNTserver o descargarsedesde el web de microsoft), Windows 3.1 1 o Windows 95, nos conectamos aunCD compartido en redo a un disco duroque contenga los archivos de instalación y ejecutamos WINNT/B desde el directorio 1386. Si no tenemos nada instalado en el disco duro, introduciremos el CD-ROM en su lector, el disco 1 en la disquetera y después encenderemos el sistema. 0 Si estamosinstalandoNT 4.0 en unequipoquepuedaarrancardesde el lector de CDROM podemoscambiar enlabios la secuenciadearranquedemaneraqueempiecepor el CD, aunque el discoduroestésinformatearyconsecuentemente sin ningúntipodesistema operativo instalado, el programa de instalación se iniciasólo y te permite hacer la instalación sin tener nada en el disco duro y sin tenerquegenerar los diskettes de instalación. {Anotación enviada porJosé Eunenio Miralles López) 0 Unaveziniciada esquema. la instalacióntodaslasopcionesanterioressiguenprácticamente el mismo Reconocimiento del Lo primero que hace es reconocer el hardware indispensable para empezar a trabajar y comprobar que no exista una versión de NT, en este caso se detendrá la instalación y tendremos que realizarla desde esesistema NT ya instalado(usandoWINNT32) o eliminar la particióndondeestuvieraubicado.A continuacióncomenzará la cargade los archivosnecesariospara la instalacióny nos pediráque introduzcamos el disco 2 o en el caso de estar haciendo una instalación sin discos pasará a un menú donde nos pregunta: 0 Si queremos ayuda sobre la instalación ( F l ) 0 SiqueremosinstalarNT (ENTRAR) 0 Si queremos reparar (R), este apartado lo veremos en un próximo documento. 0 Si queremos salir de la instalación (F3) Nosotros el pulsaremos "ENTRAR" Configuración almacenamiento de de unidades Pasara a la fase de detección de los controladores ESDIIIDE, SCSl y unidades de CDROM conectadas, preguntándonos si queremos detectar controladoras SCSl (ENTRAR) o no detectarlas (I); éste sería el caso si no tuviéramos ningún dispositivo SCSI.¡Cuidado!, en este caso no se detectaríael CDROM IDE, Y NT a quedispositivo un lo como trata SCSI. Nosotros pulsaremos "ENTRAR" Nos pedirá el disco 3, apareceunapantallacon el resultadode la detección. Sino hubierasido detectado alguno de nuestros discos duros o lectores de cdrom, tendríamos que instalar el driver del fabricante presionando ( S ). Si los hubiera detectado todos pulsaremos "ENTRAR"). Aparece en pantalla la licencia del producto la cual leeremos atentamente dandoal avance pagina hasta que nos permita dar a ( F8 ) para continuar, siempre que estemos de acuerdo conlas condiciones de la licencia. Seguidamentenosdará un listadodecomponentesinstalados en el sistema, los cualespodremos cambiar en caso necesario, creo que sería mejor dejar las cosas como están y luego cambiar lo que desde queramos Ya instalado. el cual nos pregunta: Ahora pasaremosal gestor de particionesde disco y de ubicación de la instalación ¿Dónde queremos instalar NT? .Para ello nos moveremos con el cursor hasta la partición donde 188 queremos instalarlo y luego presionaremos (ENTRAR). pero 0 Si tenemos espacio sin asignar nos moveremos con el cursor a ese espacio no particionado y pulsando la tecla ( C ) crearemos una nueva partición, iojo!, yo lo haría desde el administrador dediscounavezinstalado el sistemaoperativo. Lo más importante estenerunespaciode aproximadamente 300 Mb para la instalaciónde NT 4.0. 0 Si queremos borrar una partición moveremos el cursor a la partición existente y pulsaremos( E ) . En nuestro caso tenemos una partición FAT con el tamaño necesario para la instalación del NT, por lo quemoveremoselcursorhastasituarloencima dedichaparticiónypulsaremos ( ENTRAR ). Pasará a preguntarnos si queremos convertir la partición a NTFS o dejarlo como está, con el cursor nos moveremosalaopción quedeseemos.Lainstalaciónes más rápidasobreFAT,yasí lo haremos nosotros,recordandoquecuandoterminemoslainstalacióntendremosqueejecutarCONVERTC: /FS:NTFS para convertir a NTFS, siempre que queramos convertir el sistema de archivo a este tipo. NOTA: NTFS nos permite configurar permisos de seguridad sobre archivos y directorios; FAT es más rápido de seguridad. También nos preguntaráel directorio donde queremos ubicarel bloque de programas delNT, por defecto "\WINNT" y pasará a examinarlos discos para comprobar su integridad, para ello pulsaremos (ENTRAR); si consideramos que los discos perfecto están en estado pulsaremos (ESC). Llegadoaestepunto el sistemasepondráacopiar los archivosnecesariosparalainstalacióndel sistema NT,cuandoacabeesteprocesoretiraremos el disco de ladisqueteraydelCD-ROMy ( ENTRAR 1. presionaremos Con esto concluye la primera parte de la instalación, que sería igual para el NT server y workstation. La segunda fase, basada en el entorno gráfico de NT, es distinta para cada versión: Una vez pasada basada la primera Dartede la instalación, se reinicia el ordenador y comienza la instalación Comienzan las ventanitas Nos saldrá una pantalla donde nos indica los pasos que va a seguir la instalación, donde pulsaremos (SIGUIENTE), y pasaremos a otra donde nos indica el tipo de instalación que vamos a realizar: 0 Típica: Recomendada para la mayoría de los equipos 0 Portátil: Se instalará con opciones útiles para equipos portátiles Compacta: Paraahorrarespacio opcionales 0 Personalizada: Parausuarios instalación disponibles endisco,noseinstalaráningunode los componentes más avanzados.Puedepersonalizartodaslasopcionesde usaremos Nosotros la personalizada Y pulsaremos (SIGUIENTE). En el pasosiguientepondremos el nombreylaorganizacióna la que va apertenecer la licencia (SIGUIENTE), e introduciremos la clave delCD de NT, la cual viene enla carátula del CD, (SIGUIENTE), pasaremos a poner el nombre que va ha tener el equipo para su reconocimiento en red, i NO PUEDE ESTARDUPLICADO!, (SIGUIENTE), y nospreguntarálacontraseñadeladministrador¡Nossenos puedeolvidar!, en casodeolvidotendremosquereinstalarelsistemaoperativo, (SIGUIENTE). No pregunta si queremos un disco de rescate. El disco de rescate es importante por si existe un bloqueo o un fallo en el arranque de NT, este disco se tendrá que acuatiza cada cierto tiempo, y siempre antes de hacer un cambio en el equipo, sobre todo si es un cambio de hardware. En este caso la utilidad para generarlo es "RDISK queseráampliadamasadelante, (SIGUIENTE), lapantallaquesigue es la seleccióndecomponentes en actuaremoseligiendo o descartando los componentesquecreamos lo quequeremosinstalara le daremosa (SIGUIENTE). adecuados,unavezdeterminadoquees 189 en Configurando el acceso a red Si el equipo está conectado a una red a través de RDSl (ISDN)o un adaptador de red pulsaremos como activo Si a su vez va ha tener control de acceso telefónico a redes también marcaremos el cuadro a tal efecto Si nuestro equipo no va ha tener nada de lo anterior pulsaremos el botón redondo que nos indica tal opción en red una (No aequipo conectar este este momento) (SIGUIENTE) Nuestro equipo esta conectado a una LAN a través de un adaptador de red. Pulsaremos la búsqueda automática de adaptadores de red, en el caso que no lo detectase tendremos que utiliza un disco del fabricante o un adaptador existente en la lista de adaptadores de NT. Una vez instalado el adaptador de red, pasaremos a la instalación de los protocolos con los que van a trabajar nuestro sistema, los cuales pueden ser TCP/IP, IPS/SPX, NetBEUI, pudiéndose seleccionar otros desde una lista o instalarlos desde un disco del fabricante. Nosotros instalaremos TCP/IP, si tuviéramos que instalar un cliente para NETWARE tendríamos que instalar IPXISPX, si y lo queremos compatibilizar con unaantiguasredes de Microsoft o queremosunainstalaciónsencillahasta 8 equipoutilizaremos NetBEUl solamente. Nosotros instalaremos TCP/IP ya que será imprescindible para el acceso a Internet a través de acceso (SIGUIENTE). telefónico Pantalla de los servicios de red Sale un listado con los servicios mínimos de red que no se pueden tocar desde la instalación, en el caso que queramos quitar algunos tendremos que esperar a que se acabe la instalación, podremos ampliarlo dependiendo de los que queramos, en el caso de una red Netware tendremos que instalarel servicio de Cliente para Netware. Ya hemos acabado la instalación de red Pulsaremos (SIGUIENTE), si tenemos alguna duda (ATRÁS). Comenzado la instalacióndetodo lo que le hemosindicadoen los pasos previos.Pasandoa la introducción de lospara datos el TCPIIP. protocolo Si nuestro equipo adquiere la dirección IP desde un servidor DHCP automáticamente le daremos que (SI), en el dirección tener una fija de caso IP le daremos que (NO). Ahoraseguiremos con la introducción de los datos del TCPAP de nuestroequipo, si tenemosuna dirección fija de red la pondremos una vez activada la casilla a para tal efecto, con la mascara de red adecuada, si no tenemosningúnROUTER o GATEWAYpara la solución de encaminamiento lo dejaremos en blanco, en caso de que existiera pondríamos la dirección de este. Esta es la Instalación mínima mas adelante la analizaremos con mas detenimiento. Si utilizados WINS para la resolución de nombres le indicaremos el servidor de WINS en caso contrario le diremos que (SI) queremos continuar. Nos indica los niveles de enlace entre los servicios, los protocolos y los adaptares de comunicaciones tanto de red como de RAS los cuales podemos habilitaro deshabilitar a nuestro gusto.(SIGUIENTE). NT esta listo para iniciar la red (SIGUIENT€,J si lo tenemos claro, (ATRÁS) si nos hemos equivocado en algo. Ahora llega el momento de decirle si vamos a formar parte de un dominio NT o en un grupo de trabajo en el caso de trabajar en un dominio necesitamos la asistencia del administrador para que de alta la máquina. Nosotros en un principio no trabajamos en un dominio sino en un grupo de trabajo. Pondremos el Nombre, (SIGUIENTE), ya hemos terminado la instalación de la red. Pasaremos a poner la fecha y la hora (CERRAR), y las características de la tarjeta gráfica, aunque recomiendo dejar la que nos haya dado por defecto y continuar la instalación, posteriormente podremos cambiar el tipo. Si ha detectado una tarjeta tendremos que pulsar (PRUEBA), antes de (ACEPTAR). Copiará el resto de los archivos, guardará la configuración y nos pedirá que insertemos un disco que etiquetaremos como "Disco de reDaración" (ACEPTAR), borrará los archivos temporales y nos pedirá que reiniciemos. Instalaci6n de Windows NT server En este apartado veremos parte de la instalación de NT server basada en modo gráfico, que es distinta de NT workstation. Una vez pasada la primera Dartede la instalación, se reinicia el ordenador y comienza la instalación Lo primeroquehaceesmostrar una pantallaindicando el procesode basadaenentornográfico. instalación 190 En el paso siguiente pondremos el nombre y la organización a la que va a pertenecer la licencia , e introduciremos la clave del cdrom que viene en la funda. Pasaremos a poner el nombre que va a tener el en equipo la red, ¡atención!, no puede estar duplicado. Llegamos al menúdondetenemosqueindicarquefunciónrealizaránuestroequipo,antesquizás te convenga tener clarolo que es un dominio: 0 0 0 Controlador principal de dominio (PDC): seráelquegestione equipos, y los inicios de sesión, sólo existe uno por dominio. las cuentasdeusuariosyde Controlador de reserva del dominio (BDC): tiene una copia de la base de datos de usuarios y puede sustituir al PDC en caso de fallo, pueden existir varios en un mismo dominio. Servidor Independiente: servidoresnointegradosenundominio funciones de PDCo BDC o quenorealizaneneste Supondremos aquí que estamos instalando un PDC, lo seleccionaremos y nos preguntará la contraseña el sistema deladministrador, que no podemos olvidar, encuyocasotendríamosquereinstalar operativo. Ahoranospregunta si queremosgenerarundiscoderescate,estediscoesimportante si existe un bloqueo o un fallo en el arranque de NT, se tendrá que actualizar cada cierto tiempo y también antes y despuésdehaceruncambioimportanteen el equipo,sobretodosiesuncambiodehardware. Preparamosun diskette vacíoy lo creamosahora.Lapantallaquesigueesladeselecciónde componentes accesorios al sistema, elegiremos los componentes que creamos adecuados o dejamos la configuración defecto por si familiarizados estamos muy ellos. no con la Comenzando red. de la Si el equipo está conectado a una red, yaseaatravésdeRDSl(ISDN) o con un adaptador de red, tendremosqueactivarelcuadrocorrespondiente,sinecesitamosaccesotelefónicoaredestambién el marcaremos efecto. En caso contrario pulsaremosel botón redondo que nos indicatal opción (No conectar este equipo a una red Nuestro equipo esta conectado una a LAN través a de un adaptador de red. (SIGUIENTE) En esta pantalla nos pregunta si queremos instalar el IIS (Internet Información Server) cuya instalación veremos en un próximo documento,solo anticipar que es para poner nuestro equipo como un servidor de quitamosLe Internet. la selección Y pulsaremos (SIGUIENTE). Pulsaremos la búsqueda automática de adaptadores de red, en el caso que no lo detectase tendremos que utiliza un disco del fabricante o un adaptador existente en la lista de adaptadores de NT. Una vez instalado el adaptador de RED, pasaremos a la instalación de los protocolos con los que van a trabajar nuestro sistema, los cuales pueden ser TCPAP, IPS/SPX, NetBEUI, pudiéndose seleccionar otros desde una lista o instalarlos desde un disco del fabricante. Nosotros instalaremos TCP/IP, si tuviéramos que instalar un cliente para NETWARE tendríamos que instalar IPWSPX, y si lo queremos compatibilizar con una antiguas redes de Microsoft o queremos una instalación sencilla de hasta 8 equipos utilizaremos NetBEUl solamente. Nosotros instalaremos TCPAP ya que será imprescindible para el acceso a Internet a través de acceso telefónico (SIGUIENTE). Pantalla RED. enlos servicios Sale un listado con los servicios mínimos de RED que no se pueden tocar desde la instalación, en el casoquequeramosquitaralgunostendremosqueesperaraqueseacabelainstalación,podremos ampliarlo dependiendo de los que queramos, en el caso de una red NETWARE tendremos que instalar el servicio Ya hemos acabado la instalación de RED Pulsaremos (SIGUIENTE),si tenemos alguna duda (ATRÁS). Comenzado la instalacióndetodo lo quelehemosindicadoen los pasosprevios.Pasandoala de introducción TCP/IP. protocolo el lospara datos Si nuestro equipo adquiere la dirección IP desde un servidor DHCP automáticamente le daremos que dirección tener una (SI), de IP caso el en fija le daremos que (NO). Ahoraseguiremoscon la introducciónde los datosdelTCP/IPdenuestroequipo, si tenemosuna 191 n dirección fija de red la pondremos una vez activada la casilla a para tal efecto, con la mascara de red adecuada, si no tenemos ningún router o gateway para la solución de encaminamientolo dejaremos en blanco, en caso de que existiera pondríamos la dirección de este. Esta es la Instalación mínima mas adelante la analizaremos con mas detenimiento. Si utilizamos WINS para la resolución de nombres le indicaremos el servidor de WINS encasocontrariolediremosque (SI) queremoscontinuar. Nos indica los niveles de enlace entre los servicios, los protocolos y los adaptares de comunicaciones tanto de red como de RAS los cuales podemos habilitaro deshabilitar a nuestro gusto.(SIGUIENTE). NT esta listo para iniciar la red (SIGUIENTE) si lo tenemos claro, (ATRÁS) si no hemos equivocado en algo. Ahora llega el momento de decir el nombre queva a tener nuestro dominio NT. Pondremos el Nombre, (SIGUIENTE) Ya terminado hemos la instalación de red. Pasaremos a poner la fecha y la hora (CERRAR), y las características de la tarjeta gráfica, aunque recomiendo dejar la que nos haya dado por defecto y continuar la instalación, posteriormente podremos cambiar el tipo. Si ha detectado una tarjeta tendremos que pulsar (PRUEBA), antes de (ACEPTAR). Copiará el resto de los archivos, guardara la configuración y nos pedirá que insertemos un disco que etiquetaremos como "rescate" (ACEPTAR), borrará los archivos temporales nos y pedirh que reiniciemos. Este documento sigue abierto para cualquier ampliación o corrección que quieras mandar. Elecci6n de unprotocolo de red Una de las ventajas más importantes que ha tenido siempre NT es la elasticidad que tiene a la hora de integrarse con otros equipos en red, de hecho convive sin problemas con redes basadas en sistemas Novell, AppleTalk, UNIX, SNA y cualquier cosa que sele eche, sirviendo incluso de pasarelaentre estos mundos tan distintos. Este comportamiento tan vershtil se debe a la gran cantidad de protocolos que incorpora que pueden y convivir simulthneamente en sistema un con Windows NT. Para cualquier administrador de sistemases obvio que si necesita conexión con Novell habrá de instalar el protocolo IPWSPX, para convivir con UNIX echará mano de TCP/IP y si los Macintosh abundan tendrá que usar Lo que a veces no queda tan claro es el protocolo a utilizar en una red basada únicamente en sistemas operativos de Microsoft (MSDOS, Windows 3.x, Windows 95 y el propio Windows NT), es aquí donde el ponerpretende documento presente "de Protocolos IPWSPX Y NetBEUI. AI instalar Windows NT los protocolos que se instalan por defecto son IPWSPX y NetBEUI. Aunque la elección de IPWSPX me parece acertada no entiendo porque senos endosa NetBEUl cuando la propia Microsoft nos dice que no le parece un protocolo adecuado para una red que se precie de serlo. Con el vamos NetBEUI. Es el protocolo utilizado por las antiguas redes basadas en Microsoft LAN Manager. Es muy rápido en pequeñas redes que no lleguen a la decena de equipos y que no muevan archivos de gran tamaño, a partir de ahí es mejor otra opción y lo desinstales de tus clientes y tus servidores, esto último siempre que que equipo no ningún tengas utiliceManager. LAN IPWSPX. Este protocolo, implementado por Novell, ha demostrado sobradamente su valíaen redes de área local, es rápido, fácil de configurar y requiere pocas atenciones. Es el protocolo que Microsoft recomienda para redes área de local basadas DOS, enWindows 3.x, Windows 95 Windows y NT. El principal inconveniente que presenta para redes medianas y grandes es que no se puede enrutar o sea que no puede pasar de una subred a otrasi entre ambas hay un encaminador (router), porlo que no puedeusarseenredesWAN. Otro inconvenientequepresentaenredescon un ciertonúmerode equipos es que puede llegar a saturar la red con los broadcast que lanzan los equipos para anunciarse en la TCPIIP. Este protocolo juega aquí con ventaja pues se trata de mi favorito y adernhs se hace imprescindible si estás conectado a Interneto quieres crear una intranet. La capacidad de TCP/IP para mover información en una red, por grande que sea, sin perder datos, su sistema de nombres y direcciones, y su facilidad 192 "Si" parasaltardeunaredaotra lo conviertenenelcandidatoidealparacualquierreddeordenadores dispuesta a no quedarse dentro de las paredes de un edificio. No obstante pueden achacársele algunos inconvenientes como la dificultad de configuración para el usuario y la necesidad de un mantenimiento constante administrador Por del parte de la red. El primerinconvenientesedebealanecesidadquetieneelusuario de conoceralgunosdatos imprescindiblesantesdeque el sistemaempieceafuncionarenred:direcciónIP, máscara dered, dirección del servidor de nombres y dirección del encaminador, afortunadamente este problema puede resolverse utilizando elservicio de configuración dinámica de equipos (DHCP),que viene incluido en Windows NT Server, este servicio asignalos datos mencionados arriba a cada equipo en el momento en que este se conecta en red de manera transparente para el usuario. El trabajo de mantenimiento por parte del administrador tampoco es insignificante: asignación de direcciones IP a los nuevos equipos, mantenimiento de la tabla de nombres en el servidor de nombres si este existe o, peor aún, en cada equipo si no existe y vigilar que no haya direcciones duplicadas por citar sólo algunos. De nuevo NT Server nos hecha una mano si combinamos la potencia de DHCP con el servicio de nombres para Windows (WINS) reciente el y servicio de nombres dominio de (DNS). Otroinconvenientequeaúnnohemosmencionadoeslafaltadeseguridad de TCP/IPfrentea los "mirones" que tengan acceso físico a la red, ya que las tramas TCP/IP no van codificadas y con un software adecuado podría capturarse parte dela información que estamos enviando. Para este problema comienzan a surgir soluciones como el protocolo punto a punto apantallado (PPTP), que encripta las tramas TCP/IP que enviamos, estableciendo de esta forma un canal seguro incluso a través de Internet. NetBIOS, No podemos nunca hablar de NetBlOS como una alternativa a los protocolos mencionados arriba, pues los anteriores(máscercadel setratadeunprotocoloque seencuentraunescalónmásarribaque usuario). NetBlOS es un intermediario entre dichos protocolos y nuestras aplicaciones, que nos permite conectarnos al restode los equiposdenuestraredusandonombressencillosyfácilesderecordar (SERVIDOR,COMPRAS,ANDROMEDA)sinimportarqueprotocoloderedestemosusandopara comunicarnos con ellos. De esta manera para el usuario la red se convierte en algo transparente por la que puede navegar usando el icono "Entorno de red". Además no tenemos que preocuparnos nunca de éI pues instalará se solito sobre los protocolos que configuremos nuestro en equipo. Conclusiones finales La recomendación es que mantengas tu red funcionando con el menor número de protocolos posibles, siendo muy conveniente quehaya homogeneidad entre los equipos que vayan a compartir recursos entre si,yaquelas máquinasquenotenganalmenos un protocolocomúnnopodránverseentre si ni compartir recursos. Si por motivos de tamaño no vas a usar NetBEUI, la elección queda entre IPX/SPX y TCP/IP, usa el primero enuna red localsinaccesoaInternety el segundoenunarednolocal(WAN,MAN) o si necesitas Interneto intranet. Si, como es habitual, en tu red hay máquinas que no salen a Internet y otras que si lo hacen puedes instalar en todas IPX/SPX y en las que acceden a Internet añades TCP/IP, de esta manera las máquinas que no acceden a Internet están más seguras y todas se ven entre si. Instalación del servicio de acceso remoto Vamos a estudiar aquíla configuración del servicioy del cliente que nos permitirán acceder a nuestra red a través La instalación se realiza desde el icono"Red" en el panel de control, accediendo ala solapa "Servicios". de Pulsando el botón "Agregar" nos saldrá la lista de servicios disponibles, elegimos "Servicio de acceso "Aceptar". Y pulsamos remoto" Siaúnnohemosinstaladoningúnmodemnosapareceráelsiguientecuadrodediálogo, si va está instalado Dasamos Pulsamos el 193 modem. Si queremos que intente detectar automáticamente el modem pulsamos "Siguiente", si el módem está dentro de la lista que detecta NT y sabemos el puerto COM donde está ubicado, marcamos el cuadro detectar "No el módem..." Y "Siguiente". pulsaremos Si hemoselegido la detecciónautomáticaNTexaminará los puertosparaaveriguar si existe algún módem, en el caso de no encontrar ninguno, nos lo indica y pasaremos a la introducción manual de datos pulsando Nos saldrá el menú anterior con todoslos módem que tiene NT, lo seleccionaremos o en el caso de que no exista le tendremos que decir que vamos a "Utilizar disco", si el disco que acompafia a nuestro modem no traecontroladoresparaNT(cosabastantecomún) lo mejorseráseleccionarunode los módem estándar o alguno que aparezca en la lista que sepamos que sea compatible con el nuestro. Si nuestro módem esta en la lista, lo seleccionamos, pulsamos y "Siguiente". Y"Siguiente". pulsamos seleccionamos el puerto Este cuadro nos pide algunos datos sobre nuestra linea telefónica. Si no dependemos de una centralita dejamosenblanco la casilladelnúmeroparalineaexterior.Unavezcumplimentadopulsaremos "Siguiente",nosapareceunapantalladeconfirmación, si todo es correctopulsamos"Finalizar". Nota: si al introducir los datos advertimos que hemos cometido algún error siempre podemos volver hacia atrás. Una vez hecho esto si todo ha ido correctamente NT ya debe reconocer nuestro dispositivo de modem, seguiremos configurando ahora remoto. acceso el de Servicio No muestra los dispositivos que pueden funcionar,en este caso solo nos muestra el módem que hemos instalado. Si tenemos otro elegimos "Instalar módem" y se repetirá el proceso anterior, si no tenemos instalarmás que Seleccionamospulsamos "Configurar". el utilizar y vamos amódem que En este cuadro de dialogo no pregunta en definitiva si vamos a instalar el módem como dispositivo de salida (acceso telefónico a redes) o como dispositivo de entrada (RAS) o de entrada y salida lo cual englobaría las dos cosas, una vez lo tengamos claro picamos en "Aceptar". Volveremos al cuadro de "Red". instalación pulsamos ahora deremoto, acceso Aquí se configuran los protocolos que vamos a utilizar, distingue entre la parte cliente (hacer llamadas) y servidorala parte Los protocolos que vamos a usar para el cliente son en este caso TCP/IP para Internet y NetBEUl o IPWSPXparaotrasredesalascualesnosqueramosconectar,incluyendoaunareddeNT. Para recibir llamadasse seleccionara los protocolos que vamos a usar y configuraremos cada uno ellos. En el TCP/IP, delcaso lo seleccionaremos pulsaremos "Configurar". y Lo primero es decirle si cuando llaman, al que llama, se le muestra solo este equipo o todos lo equipo que la red. Si utilizamos servidor DHCP lo indicaremos y si no tendremos que decirle un rango de direcciones IP suministrar para Se puede permitir aun equipo pedir una dirección IP fijasi no esta ocupada, para ello marcaremos enel que cuadrado opción. esta indica se nos Una vez configurado los protocolos entrada tenemos que decir comose va a autentificar en el caso del simple autentificación, cualquier permitir texto TC incluso P/IP o cifradas especial de Microsoft con En el caso de otros protocolos podremos exigir autenticación cifrada datos cifrados. Pulsamos "Aceptar". Y le diremos que queremos reiniciar el equipo para que todos los cambios se realicen. Introducción al concepto de dominio 194 La administración de una red local bajo Windows NT se basa en los dominios y relaciones de confianza, auténticas pesadillas para el administrador novato. Intentemos aclarar estos conceptos. Dominios, relaciones Y otros Un dominio es un conjuntodeordenadores(servidores + estacionesdetrabajo)quecomparten características comunes en cuanto a accesos. Un usuario registrado en un dominio con un nombre de usuario y una palabra de paso, automáticamente es capaz de acceder a todos los servidores de dicho dominio utilizando el mismo nombre y la paso. palabra misma de Dentro de los servidoresdeundominioexistendosjerarquías:elservidor PDC (PrimaryDomain Controller) y los servidores BDC (Backup Domain Controller). Por cada dominio ha de haber un PDC y sólo uno,yposiblementevariosBDC.Cuando el administradordeldominiodadealtaunnuevo usuario, lo hace sobre el PDC. Los datos sobre los usuarios se guardan en una base de datos llamada SAM, que la tiene cualquier servidor. El PDC se encarga de copiar esa base de datos de usuarios a todos los BDCs de su dominio de manera periódica. Notemos la liberación de trabajo que esto supone para un administrador de red. Con sólo dar de alta un usuario en el PDC, ese usuario automáticamente puede acceder a cualquier servidor del dominio y además usando el mismo nombre de usuario y la misma palabra de paso.Esteproceso de copiaperiódicade la SAM se denominareplicación. los protocolosadecuadosparasoportardiversostipos de Windows NT Servervienepreparadocon clientes: MS-DOS, Windows Trabajo para Grupo, en OS/2, Windows 95 ... Ahora que tenemos la idea intuitiva de lo que es un dominio, pasemos a ver cómo se relacionan los dominios una mediante red de el concepto de Trust o Relación de Confianza. Se dice que un dominio A confía en otro B, o que hay establecida una relación de confianza desde A hacia B, cuando cualquier usuario autorizado en el dominio B puede entrar sin más en el dominio A. Un grupo local es un grupo de usuarios, de manera que cualquier usuario del grupo puede entrar y acceder a los recursos del servidor PDC del dominioal que pertenece el grupo.Un grupo local se define como Un grupo global es igual que el anterior excepto en que puede ser visto también por todos los dominios que confían enel dominio al que pertenece el grupo. La diferencia entre local y global es, pues, el ámbito de visibilidad. Si A confía en B, y definimos en B un grupo global, entoncesese grupo también se puede utilizar en ente. os con red Un ejemplo Como hemos dicho al principio, el dominio sirve para administrar de una manera lógica los recursos, servidores una Y de estaciones Por ejemplo,supongamosunafacultaden la quehay departamentos. Encadadepartamentohay servidores,estacionesyrecursos(discosduroseimpresoras).Podemoscrearundominiopor los departamento. Encadadepartamento,elegiremosunservidorcomoPDCdondesedandealta usuarios Nos damoscuentadeque en undepartamentoAnosinteresatenertrestiposdegrupos: los Administradores, los Profesores y los Becarios, cadaunocondiferentespermisosencuantoa accesibilidad. Creamos en principio tres grupos locales al dominio. A la hora de dar de alta un nuevo usuario en el departamento, basta meterlo en el grupo correspondiente para que tengalos permisos por defectode ese grupo.Siqueremosquetengaalgúnpermisoespecial,tambiénse lo podemosdar. Supongamosque el administradordadealtaaunprofesor,BaltasarGonzález,en el grupolocal Profesores El PDC copia la SAM en los restantes BDCs del departamento A, de manera que el profesor Baltasar pueda hacer logon en cualquier servidor de su departamento usando su nombre de usuario balgon y el mismo password. Supongamos que nos interesa que el departamento A pueda utilizar los recursos del departamento B. Entonces lo siguiente: Creamos un grupo global en el PDC de A. En ese grupo global meteremos todos los usuarios de A que van a acceder a B. Ahora establecemos un trust desde B hacia A, de manera que B confía en A, y por tanto ve el grupo global definido en A. Por último, en el dominio B damos al grupo global los permisos necesarios para que acceda a los recursos de B, o mejor lo incluimos en el grupo local más adecuado. Lo anterior es sólo una manera de gestionar la organización de la facultad, pero hay más posibilidades. 195 A. Podemos tener un dominio Único definir y un grupo local por departamento, por ejemplo. El Dominio Master Una organización distinta sería la del dominio master. Supongamos que tenemos un dominio donde almacenamostodas las cuentasde los usuariosde la red(dominiomaster).En éI definimosvarios grupos globales, por ejemplo uno por departamento. Creamos ahora tantos dominios como departamentos hay, y hacemos que todos esos dominios confíen en el master. Ahora, en el dominio del departamento X creamos un grupo local donde meteremos todos los globales del master cuyos usuarios nos interese que accedan a los recursos de las máquinas de X. Por tanto, en el dominio X bastará dar permisos de accesoal grupo local definido, y automáticamente heredarán esos permisos los usuarios de los globales metidos en ese local. Un mismo grupo global puede estar metido en varios locales de varios dominios.Repetiremosestaoperaciónparacadadepartamento.Estodalugaraunaadministración centralizada. Otro modelo esel de múltiples masters. Un dominioen general puede albergar hasta15000 cuentas de usuario.Cuandonecesitamosmás,podemosdefinirvariosmasters.Entre los mastersdefiniremos relaciones de confianzaen ambos sentidos (por ejemplo,si tenemos dos masters M I y M2, haremos que M I confíe en M2 y M2 confíe en MI). Si ahora hacemos que todoslos restantes dominios confíen enM I y en M2, habremos conseguido lo mismo que en el modelo de master Único pero ampliando el número de cuentas hasta de usuario 30000. Los grupos de trabajo Para terminar me gustaría seiíalar la diferencia de los dominios con los grupos de trabajo de Windows para trabajo en grupo. Un grupo de trabajo es un conjunto de ordenadores en el que cada uno puede funcionar tanto como cliente como servidor, o ambos a la vez. El administrador tiene la responsabilidad de mantener la base de datos de usuarios en cada ordenador del grupo. Además, un usuario de un ordenador podría fácilmente trastear con éI y echar abajolos servicios. Gestión de usuarios. Las cuentas de usuario y de grupo permiten quelos usuarios participenen un dominioy tengan acceso a los recursos &te de en función de los derechos y permisos que tengan asignados. Cuentas de usuarios Y grupos Es muy importante planificar cuidadosamente la administración de las cuentas de usuario y grupos, no obstante disponemos de sencillas potentes y herramientas para llevarlo a la práctica. Aquí tienes algunos consejos importantes para realizar con éxito dicha planificación: El mantenimiento de los permisos y derechos de un grupo es más sencillo que el de varias cuentas de usuario, generalmente usaremoslos grupos para administrarel acceso a los recursos (puestos, archivos, impresoras, etc.): Es obvio que sobre el directorio personal de un usuario aplicaremos permisos específicos para dichousuario,perosinecesitamosquevariosusuariosdedistintos o deunmismogrupo accedan al mismo recurso es recomendable crear un nuevo grupo para tal fin, ya que un usuario puede pertenecer a varios grupos. Muchas veces creamos grupos utilizando el mismo esquema de nuestra empresa u organización, sin embargo también es aconsejable pensar en los grupos de usuarios en función de los recursos que van a necesitar. Cambiaremos los permisos proporcionados a un conjunto de usuarios utilizando grupo perono modificaremos cada cuenta. la cuenta de Intentaremos aprovechar los grupos predefinidos de Windows NT, a los que se han asignado útiles conjuntosde derechos y capacidades. 196 NT En un dominio de Windows NT Server se pueden mantener dos tipos de grupos: grupos locales y grupos globales, para comprender la utilidad de cada uno hemos hecho un pequeño extracto de los manuales de ayuda. Grupos globales Un grupo global contiene una serie de cuentas de usuario de un dominio que están agrupadas bajo un nombre de cuenta de grupo. Un grupo global sólo puede contener cuentas de usuario del dominio donde se creó el grupo global. Una vez que se crea un grupo global, se le puede asignar permisos y derechos en su propio dominio sobre estaciones de trabajo o servidores miembro, o sobre dominios que confían. Sin embargo, lo mejor es asignar derechos y permisos a grupos locales, y usar el grupo global como para método Los grupos globales se pueden agregar a grupos locales del mismo dominio, en dominios que confían en dicho dominio, o en servidores miembro o equipos que ejecuten Windows NT Workstation en el mismo dominio o en uno que confía. Los grupos globales sólo contienen cuentas de usuario de dominio. No puede crear un grupo global en un equipo que ejecute Windows NT Workstation o en un equipo que Windowsejecute La palabra "globales" en "grupos globales" indica que el grupo está disponible para recibir derechos y permisos (globales). dominios en múltiples Un grupo global sólo puede contener cuentas de usuario; no puede contener grupos locales ni otros grupos globales. ontener s puede Grupos locales. Ungrupolocalcontienecuentasdeusuarioycuentasdegrupoglobalesdeuno o másdominios, agrupados bajo un nombre de cuenta de grupo. Los usuarios ylos grupos globales de fuera del dominio local sólo se pueden agregar al grupo local si pertenecen a un dominio que confía. Los grupos locales hacen posible la rápida asignación de derechos y permisos sobre los recursos de un dominio (es decir, el dominio local) usuarios a grupos y de dicho dominio y otros dominios que confíen en él. LosgruposlocalestambiénexistenenservidoresmiembroyequiposqueejecutanWindowsNT Workstation, pueden contener cuentas y degrupos globales. usuario y Lapalabra"locales" de"gruposlocales"indicaqueelgrupoestádisponiblepararecibirderechosy Único permisos dominioen un no Un local grupo Estrategias para utilizar grupos locales Y globales. Un grupo local es una entidad de seguridad única a la que se puede conceder acceso a muchos objetos de una única ubicación (un dominio, una estación de trabajoo un servidor miembro) en vez de tener que editar los objetos deesos permisos todos sobre forma independiente. Con los grupos globales puede agrupar las cuentas de usuario a las que podría conceder permisos para minios últiplesen objetos usar trabajo. Y estaciones de los grupos globales como Por ejemplo, en una configuración de múltiples dominios, puede pensar en medio para agregar usuarios alos grupos locales de dominios que confían. Para extender los derechos y permisos de los usuarios a recursos de otros dominios, agregue sus cuentas a un grupo global de su dominio después y agregue el grupo global a un grupo local de un dominio que confía. Incluso en un dominio Único, si recuerda que puede agregar dominios adicionales en el futuro, puede usargruposglobalesagregadosagruposlocalesparaconcedertodos los derechosypermisos. Posteriormente, si se crea otro dominio,los derechos y permisos asignados a sus grupos locales pueden extenderse a los usuarios del dominio nuevo creando una relación de confianza y agregando grupos globales del dominio nuevo a sus grupos locales. De la misma manera, si el dominio nuevo confía en su dominio, sus grupos globales se pueden agregar a los grupos locales del dominio nuevo. Los grupos globales de dominio también se pueden usar para propósitos administrativos en equipos con Windows NT Workstation o en servidores miembro con Windows NT Server. Por ejemplo, el grupo local Administradores de dominio se agrega de forma predeterminada al grupo local incorporado Administradores en todas las estaciones de trabajo o servidores miembro que se unen a un dominio existente. La pertenencia al grupo local Administradores de una estación de trabajo o servidor miembro 197 permite queel administrador de red administreel equipo de forma remota creando grupos de programas, instalando software y solucionandolos problemas del equipo. El administrador de discos En este apartado veremos las atractivas posibilidades de/ administrador de disco, una herramienta fdcil usar de potencia insospechada. yuna con altamente intuitiva pero Posibilidades que ofrece El administrador de disco esla herramienta gráfica que emplea NT parala gestión de discos duros, con dicha herramienta podemos: 0 Gestionar particiones de disco y unidades lógicas. 0 Dar formato a volúmenes y asignarles nombres. 0 Leer la información del estado de los discos. o Leer la información del estado de los volúmenes, la etiqueta y la letra del volumen, el sistema de archivos y su tamaño. 0 Crear y modificar las asignaciones de letras. 0 Ampliar un volumen o un conjunto de volúmenes. 0 Crear y eliminar conjuntos de volúmenes. 0 Crear o eliminar conjuntos de bandas cono sin parida 0 Regenerar un miembro no encontrado de un conjunto de bandas. 0 Establecer o romper conjuntos de espejos 0 Antes de entrar en materia debes tener claro algunos conceDtos sobre discos duros, Un vistazo Antes de comenzar un par de advertencias: el administrador de discos nos permite trabajar sobre la partición de sistema (normalmenteC: ), ya que contiene los archivos necesarios para queNT se ejecute, el resto de las particiones son totalmente moldeables pero tendrás que tener cuidado con lo que haces contengan datos, que aquellasen perderlos. Yapodríasque En este gráfico puedes ver al administrador de discos trabajando sobre un sistema con tres discos físicos (0,l y 2) y un lector de cdrom,aquí puedes apreciar: o Una partición primaria y activa de 515 MB que contiene la unidad lógica C: en el disco duro O. 0 Un conjunto de espejos para integridad de datos (unidadD:) en el disco duro 1. 0 o 0 Una unidad lógica repartida en dos particiones de dos discos distintos, el volúmenes J:). fijate en que aun está sin formatear. O y el 1,(conjunto de Un disco duro con cinco particiones: tres de unidades lógicas E:, F:, G: y un espejo de la unidad D: del disco 1. Espacio disponible sin particionar en el disco 2. Con esta configuración hemos conseguido: 198 rápi e 0 Realizarunespejo(oseaunacopiaexacta)deunvolumen(D:)quecontiene los datosmás importantes almacenados en este servidor, si mañana me falla uno de los discos duros puedo romper el espejo en el que ha quedado funcionando y seguir trabajando como si nada, incluso podré hacer un nuevo espejo con un tercer disco duro que siga en funcionamiento. 0 Hemos aprovechado el espacio sobrante en dos discos duros para crear un solo volumen (J:) de mayor capacidad. 0 También existe unazona sin asignarde 47 MB quepodemosutilizarcontotallibertadpara ampliar cualquiera delos volúmenes que se nos quede pequeño. Y todo esto se ha realizado usando solamente el administrador de discos y una cierta planificación a la hora de adquirir los discos duros para el equipo (mejor dos o tres más pequeños que uno sólo más grande).Tambiénesmuyimportantesabercomoparticionarcorrectamenteundiscoduroantes o durante de la instalación Vamos a repasar ahora el entorno de trabajo de esta herramienta si has trabajado anteriormente con ella puedespasardirectamentealapartepráctica,encasocontrariosigueleyendoyluegoiremosala praxis. NT. vista epartido que El entorno de trabajo Para empezar dale un vistazo a estas dos imágenes. Nos dicen casi lo mismo pero en distinto formato, sonde los tipos dos El modo de vista "Volúmenes" resalta más las unidades lógicas y es más completa en cuanto a datos numéricos como la capacidad, el espacio disponible yel porcentaje de espacio disponible en relación ala capacidad total, datos muy interesantes para ver que volúmenes se están quedando pequeños y como tienes almacenamiento. de el espacio La vista "Configuración de disco" muestra como están organizadas las particionesy volúmenes dentro de los discos físicos, es la más adecuada para el trabajo fuerte con el administrador de discos, o sea, extender volúmenes, crear o eliminar particiones, establecer espejos, etc. Es la que usaremos a lo largo de estas En esta última imagen puedes ver de una manera muy intuitiva como está repartido el espacio en el discoduro.Cadacuadraditorepresentaunvolumen, los códigosdecoloresindicancomoestá configurado cada volumen, también aparecen aquí la etiqueta, el tipo de formato y el espacio total. El significado de cada color viene dado porla leyenda de la penúltima barra que puedes configurar desde el menú Opciones. Si picascon el ratónsobrealgunode los cuadritosquerepresentan los volúmenes lo habrás seleccionado para poder trabajar conéI, deja pulsada la tecla de mayúsculasy picas en nuevos cuadritos si quieresseleccionarvariosa la vez,delmismomodopuedesseleccionar las zonasrayadasque representan volumen. ningún el asignado a disponible no espacio Pulsando el botón secundario del ratón sobre cualquier cuadrito accedes a un pequeño menú con las tareas Las acciones que vayas realizando no serán efectivas hasta que registres los cambios que has hecho; ésto, que a veces despista o resulta tedioso, es una buena medida de seguridad frente a la pérdida de datos.Pararealizardeterminadasacciones(porejemploformatearunvolumendespuésdecrearlo) tendrásqueirconfirmando los cambiossobre la marchausando el comando ParticiÓnlRegistrar cambios ahora. Si sales del programa sin haber registrado los cambios un diálogo te dará la posibilidad de hacerloo de salir sin registrar nada. Nociones sobre discos duros MBR, particiones, volúmenes, formatos, son conceptos que tendremos que tener claro si pretendemos gestionar adecuadamente nuestros discos duros bajo Windows N T. 199 ados de onar La parte dura Un disco duro es básicamente un conjunto de platos recubiertos con un material sensible a alteraciones magnéticas que giran a gran velocidad (cuya misión es la de almacenar los datos) y unos cabezales móvilesdegranprecisión (los encargadosdeleeryescribiren los platosmagnéticos).Los dos más estándares Y SCSI. La Una vez que la ROM ha detectado el disco duro principal lee el primer registro que se encuentra en éste, dicho registro es el Master Boot Record (MBR, literalmente registro maestro de arranque), que contiene un programa ejecutable y una tabla donde están definidas las particiones del disco. El ejecutable del MBR llama a su vez a otro programa contenidoen el primer sector de la partición primaria activa quees memoria.enoperativo el sistema encargado el cargar de ventaja Particiones Y extendidas Antes de comenzar a trabajar con un disco duro creamos enel una serie de particiones (de una a cuatro con NT) que contendrán los datos. Existen dos tipos de particiones:la partición primaria y la partición extendida. La partición primaria es la única desde la que puede arrancar el sistema operativo, aquí es donde el MBR buscará el programa que controla el arranque (boot manager), que en NT se configura con el archivo BOOT.IN1. En NT podemos definir por cada disco hasta cuatro particiones primarias pero sólo una puede estar activa.Graciasaestopodríanconvivirennuestroequipocuatrosistemasoperativosdistintos La partición extendida no puede usarse como partición de arranque de un sistema operativo, pero tiene la volúmenes. varios en Sin embargo el usuario nunca trabaja directamente sobre las particiones de un disco duro, ni notará ninguna diferencia por trabajaren una primaria o en una extendida, para trabajar conlos datos se define el concepto de volumen, cada volumen lleva asignada una letra de unidad que la identifica para poder trabajar con Aunque se hayan definido las particiones en las que se va a estructurar el disco, todavía éstas no son accesibles al sistema operativo. Para ello tenemos que formatear cada una de las particiones con un formato reconocible por el sistema operativo que vayamos a instalar. Una vez formateadas podemos definir de el concepto volumen. Volúmenes Los volúmenes o unidadeslógicas sonporciones deuno o variosdiscosdurosque el sistema operativo trata como si fueran una sola unidad física, comosi dijéramos un disco duro virtual. De manera podemos que ellas, datos escribir leer formatearlas, eny buscar errores, etc. Un volumen puede abarcar: o Unaparticiónprimariacompleta, la particiónprimaria sólo puedealbergar un volumen,de hecho el administrador de discos de NT identifica este tipo de volumen como "partición primaria". 0 Un fragmento de unaparticiónextendida, en una partición extendida podemos incluir tantos volúmenes cómo queramos ;-) , este tipo de volumen recibe el nombre de "unidad lógica" en el administrador de disco de NT. 0 Una o varias particionesprimarias ylo una o variasparticionesextendidasendiscos duros diferentes, el administrador de disco marcará este tipo de volumen como "conjunto de volúmenes". Eladministradordediscos de NT nospermite jugar contodasestasvariablesanuestroantojo. Porqué El hacer particiones en un disco duro puede representar interesantes ventajas: o duro Flexibilidad: si tenemosennuestrosistemasólo un discocon unasolaparticiónprimariano podremos acceder a las interesantes opciones que nos permite el administrador de discos, ya 200 queestaparticiónalbergaráelsistemaynopuedesermodificada.Sitenemosuno discos con unas cuantas particiones podremos crear nuevos volúmenes, ampliar las unidades existentes, crear discos espejo, etc. o varios el espacio en 0 Organización: esadecuadotenerseparadoslosgrandesbloques de datos en distintas particiones de manera que nuestro árbol de directorio sea menos complicado y más intuitivo. 0 Seguridad: paraimplementarnivelesdeseguridadRAIDtendremosquedisponerdediversas particiones y discos en nuestro sistema 0 Rendimiento: endiscosdurosdegrantamañoformateadosconFATganaremosespaciosi hacemos un adecuado número de particiones. Porotroladonorecomiendoanadietenerunasolaunidad de discoduro enunservidor,esmás aconsejable tener dos o tres dispositivos, si sólo tenemos un disco de gran capacidad os animo a crear varias particiones. Tener más de un dispositivo puede ayudarnos en el momento en que uno de ellos decida fallar, perderemos menos información y siempre podremos mover esta a otro disco antes de un desastre total, en sistemas críticos tendremos que implementar el nivel adecuado de RAID. Por lo que respecta a las visitas indeseadasel tener varias unidades (físicas o lógicas) dificultará el movimiento del posible intruso, pues una vez que acceda a una unidad podrá moverse por esta con relativa facilidad, sin complicado. más algo embargo es otra unidad a una el desalto Unavezcreadaslasparticionesyasignados los volúmenesquedaaúnunimportantetrabajoque tocaremos en un próximo artículo: decidir el sistema o los sistemas de archivos a utilizar y formatear cada volumen. Para ir abriendo boca diremos que NT sólo puede formatear bajo FAT y NTFS, aunque también entiende HPFS (OS/2) y CDFS(el de los cdroms), desgraciadamente la versión4.0 de NT no es capaz aún de leer FAT32, el sistema de archivos usado por Windows 95 en su versión OSR2. Decálogo de seguridad Siguiendoestosdiezconsejospodremosconseguirungradobastanterazonabledeseguridadbajo Windows N T. Debido a su diseño WindowsNT es un sistema que apuesta por la seguridad y que ha llegado a obtener el certificado de seguridad C2, sin embargo ningún administrador debe perder de vista que una vez acabadalainstalación aun quedaunbuentrechoporrecorrerparallegaraungradorespetablede seguridad, aquí tienes un pequeño croquis que te ayudará ano perderte. No obstante para conseguir un mayor grado de seguridad debes recurrir a manuales especializados en el tema; para llegar al nivel de C2 existe una utilidad en el Kit de recursos deWindowsNT 4.0 quenospermitechequearafondo nuestro sistema. Divide Y vencerás. No recomiendo a nadie tener una sola unidad de disco duro en un servidor, es más aconsejable tener dos o tres dispositivos, si sólo tenemos un disco de gran capacidad debemos crear varias particiones. Tenermásdeundispositivopuedeayudarnos enelmomentoenqueunodeellosdecidafallar, perderemos menos información y siempre podremos mover esta a otro disco antes de un desastre total, en sistemas críticos tendremos que implementar el nivel adecuado de RAID. Por lo que respecta a las visitas indeseadas el tener varias unidades (físicaso lógicas) dificultará el movimiento del posible intruso, pues una vez que acceda a una unidad podrá moverse por esta con relativa facilidad, sin embargo el salto de una unidad a otra es algo más complicado. En principio recomiendo tres particiones/unidades distintas: 0 Unidad de sistema: seránuestraunidaddearranque (C:), contendrá el directorio raíz de Windows,lasaplicaciones de sistemayarchivoscríticosparaeladministrador(registrode actividades, información de usuarios, utilidades de diagnóstico...).Es muy importante restringir al enla máximo los permisosenestaunidad,puedesleerunaconfiguraciónidónea(revisar) sección compartiry permitir. 20 1 I 0 Unidad de usuarios: incluiríalascarpetaspersonales, los datoscomunesy los archivospara instalaraplicaciones,aunque los contenidossondenaturalezadispartienenunaimportante característicacomún: los usuarioshabitualesdenuestrosistemanecesitanaccederaellas constantemente. Se darán los permisos necesarios a nuestros usuarios y se denegaránal resto de los mortales. 0 Unidad de uso público: contendría todos los archivos accesibles desde el exterior: ftp publico, paginas html de nuestro servidor web, etc. Todoel mundo tendrá acceso aquí pero es importante que los permisos seande sólo lectura. NTFS. Si queremos seguridad no podemos dudarlo, NTFS es nuestro sistema de archivos. Aunque lo más lógico es elegirlo durante la instalación, no debemos olvidar que la conversión de FAT a NTFS puede convert usando momento cualquierenrealizarse el comando convert unidad: NTFS implementa seguridad a nivel de archivo, cada archivo o directorio posee su lista de control de acceso (ACL) y "sabe" en todo momento quien tiene derechos sobre éI, permitiéndonos hilar muy fino con los permisos. Por el contrario el sistema FAT carece totalmente de gestión de seguridad, una vez queunintrusoentreennuestrosistematodos los archivosestaríanasualcance,ademásnuestros propios usuarios podrían acceder o borrar con total impunidad cualquier archivo del sistema. Usuarios Existen tres cuentasde usuario que no podemos perder de vista: indeseados 0 Administrador,root,supervisor y otras sencillasvariaciones: la cuentafavoritade los piratas informáticos, garantiza acceso totalal sistema, no se bloqueaal pasarle un diccionario de claves y existe forzosamente enel sistema. Por razones obvias te aconsejo bloquear esta cuenta y crear unoo dos usuarios con derechos de administrador y un nombre que pase desapercibido. 0 Invitado: esta cuenta también se crea por defecto durante la instalación y suele asignársele una sencilla clave para uso y disfrute de filibusteros y curiosos, el Único consuelo es que suele tener pocos privilegios, aúnasí lo mejor es bloquearla y crear otra del mismo estilo sólo si realmente la necesitamos. 0 Todos: el nombre de estegrupoquieredecir todos, o sea,TODOS,CUALQUIERA,EL PRIMERO QUE LLEGUE. Es muy peligroso y para colmo al instalarse NT resulta que "todos" tienen permiso sobre todo, vamos un desastre absoluto. Elimina este grupo cuanto antes y si necesitas algo parecido crea un nuevo grupo con otro nombre. Los usuariosconderechosdeadministradordebentener dos cuentas distintas, una de uso administrativo y otra para tareas generales. Usa la cuenta con privilegios de administrador sólo cuando tengas que realizar en tu servidor trabajos que requieran dichos privilegios. Para tu trabajo cotidiano debes usar siempre una cuenta de usuario normal, de esta manera podrás minimizar el impacto causado accidentales, errores por infecciones de virus osistema. ataques al Las cuentas claras. Tras el rimbombantenombrede"política de cuentas"seesconde un conceptoque esdevital importancia para la seguridad del sistema, podemos resumir este concepto haciéndonos la siguiente pregunta: 'qué voy permitir a mis ausuarios hacer con sus cuentas sus yclaves?. NTnos permite unamplioabanicodeposibilidadespara no perderdevistalascuentasennuestro sistemaaquítienesalgunasdelasopciones más interesantesquepuedesconfigurardesdeel administrador de usuarios, concretamente en el menú directivas cuentas: - 0 Duracióndecontraseña: es recomendableacostumbrara los usuariosacambiardeclave periódicamente por si alguna cuenta es pirateada, suele recomendarse una vez al mes pero esto dependerá del grado de seguridad requerido o la frecuenciade intrusiones. 202 ceso rol Longitud de contraseña: paraevitarlacapturadeclavesnoesrecomendableusarpalabras cotidianas ni siglas o cifras relacionadas con el usuario, el sistema, la fecha actual, el lugar de trabajo, etc. Si usamos combinaciones alfanuméricas de corta longitud quedamos expuestos a un ataque de fuerza bruta que consiste en generar combinaciones hasta que coincidan con la nuestra,recomiendoparaempezarunaclavede 9 caracteresquecontenga cifras, letrasy signos de puntuación. Si necesitamos máxima seguridades interesante saber que una clave de 14 caracteres con cifras, letras, signos y caracteres extendidos puede darle a un Pentium Pro 200 trabajo para unos veinte años. Bloqueo de cuentas: nos permite bloquear una cuenta después de cierto número de intentos incorrectos, con esto evitamos que puedan reventarnos una clave usando un diccionario o un generador de claves. Tenemos la opción de que la cuenta se restablezca pasado un tiempo o dejarla bloqueada hasta que intervenga el administrador. Otras opciones para evitar el uso indebido de cuentas aparecen en las propiedades de la cuenta de cada usuario, son las siguientes: limitar el horario de uso de la cuenta, permitir al usuario iniciar sesión sólo cuentas. las caducidad ponerle de afecha ciertas desde máquinas y de Compartir Y permitir. Y+,; Durante la instalación de NT se asignan por defecto permisos de control total a todos lo usuarios sobre L”* ., todos los archivos,estapeligrosasituacióndebesermodificadaporeladministradorantesdeque .-\“,.” alguiencause un desastre enelsistema,aquítienes el procedimientocorrectoparaconfigurar los ,. permisos sistema. de unidad la en 11,. ATENCION: estos cambios sólo debe realizarse inmediatamente después de haber instalado el sistema, si ya tenemosaplicacionesinstaladaspodríandejardefuncionarcorrectamente,encualquiercaso es ,., necesaria cierta experiencia en el afrontar para tema drástico este cambio. i3: 77 .._ .a Configura la unidad completa, incluyendo subdirectorios y archivos, los consiguientes permisos: :m 7;’ ” Administrador 1 (Sistema lcontrol total 203 El resto de archivos y directorios debe ser configurado por el administrador a tenor de las necesidades de las aplicaciones y los usuarios, algunas aplicaciones necesitarán quelos usuarios tengan permisode escritura en el de directorio la aplicación Algunasvecesseocasionan líos grandísimoscon los permisos de los recursoscompartidosy los permisos de archivo, a veces podemos colocar permisos contradictorios de manera que mis usuarios no acceden a lo que necesitan y tienen control total sobre lo que no deben. Si eres un recien llegado ten cuidado, debes tener claro que cuando estos permisos entren en contradicción siempre se impondrá el más restrictivoy si quieresunbuenconsejoasigna los permisos sobre los recursoscompartidosa gruposgeneralesdelsistemaparaluegoafinarmáscon los permisosdearchivosydirectorios. ntrol los de panel del Cuidado con el protocolo. NT se caracteriza por ofrecer una amplia variedad de protocolos y servicios de red que hacen de éI un sistemaversátilyconcapacidad de integraciónendiversosentornosdered,estaprofusiónpuede volverse contra nosotros. Planifica y decide que protocolos necesitas en tu red y elimina desde el icono red no vayas usar. a Nota: los sistemas operativos de Microsoft utilizan para comunicarse entresi el protocolo NetBIOS, este protocolo a su vez debe ir sobre otro de inferior nivel que puede ser uno de los siguientes: NetBEUI, IPX/SPX, TCP/IP; es por ello que hablaremos de NetBlOS sobre TCP/IP o NetBlOS sobre NetBEUI. Otrasaplicacionesyserviciosaccedena la redutilizandodirectamenteIPX/SPX o TCPAP perosin utilizar NetBIOS. Aquí tienes algunas situaciones frecuentes: 0 PequeñaredLANsinaccesoaInternetysinintra o extranet: si tenemos clientes basados en DOS o algún equipo usando LAN Manager necesitamos forzosamente NetBlOS sobre NetBEUI, si además tenemos algún servidor Novell también necesitamos IPXISPX aunque no necesitamos activar el enlace de NetBlOS sobre IPX/SPX. Si los clientes son todos NT, 95 o Windows 3.x lo más recomendable es NetBlOS sobre lPX/SPX de y paso tendríamos acceso a Novell. 0 RedesLANconInternet,intranet o extranet:necesitamosclaramenteTCP/IP, si queremos seguridadpodemosusarNetBlOSsobreIPXISPXy no activar el enlaceNetBIOS-TCP/IP, si tenemos clientes DOS o LAN Manager vamos a necesitar NetBEUl en cuyo caso podríamos quitar IPX/SPX. Otra opción es usar NetBlOS sobre TCP/IP y filtrar en nuestro router los puertos 135 a 139o usar un cortafuegos. o RedesWAN:sehacenecesarioNetBlOSsobreTCP/IP,debemoseliminar el restode protocolossinosonestrictamentenecesarios.Siqueremosseguridaddebemosimplementar cortafuegos en nuestra red. los Cada servicio una puerta. Con los servicios de red nos enfrentamos a la misma cuestión que con los protocolos, tenemos muchos disponibles pero sólo hemos de implementarlos si realmente los necesitamos, sabemos como funcionan y conocemos las repercusiones que puedan tener sobre la seguridad de nuestro servidor. Si queremos probar algún servicio que no dominemos debemos instalarlo en un entorno aislado y someterlo a todos los ataques que conozcamos y algún otro que se nos ocurra, cómo por ejemplo ver que carga de trabajo soportar puede los servicios No entraremos de momentoen detalles pero no quiero dejar de advertir que en este sentido con los que tenemos que tomar más precauciones son todos los basados sobre TCPIIP: FTP, SMTP, POP, HTTP, Procura además que tus servicios no den al visitante información sobre el sistema operativo, el servicio que estamos usando o cualquier característica de nuestro sistema que no sea estrictamente necesaria intruso. sabiamente ser un pueda explotada por usuario y el para Auditoría de sucesos. Si en cualquier otro contexto hablamosde seguridad, el primer concepto que nos viene ala cabeza es el de vigilante. Por muchas medidasde seguridad mecánicas y electrónicas que se implanten la presencia 204 humana respuesta garantía siempre una de (ejem) ante es lo imprevisto. Este es el papel que juega en NTel concepto de auditoría. En ciertos lugares estratégicos colocamos un vigilantequenosvahaciendouninformedetodos las incidenciasqueseproduzcan,mástarde revisamos estas listas y tomamos las decisiones oportunas, la valiosísima herramienta que nos ayudará a estar al tanto de todo lo que ocurre en nuestro sistema minuto a minuto es el visor de sucesos. Recomiendo a todos los administradores de red colocar un acceso directo a esta utilidad en el menú de inicio, de manera queal llegar cada mañanalo primero sea echar un vistazo a todolo que ha ocurrido en nuestra ausencia. Debemos activar las auditorías de todos aquellos recursos susceptibles de ser manipulados indebidamente o degenerarerrorescríticos,normalmentepodremoshacerlodesdecadarecurso, editandosuspropiedadesyeligiendolasolapilladeauditoría.Aquítienes los queconsideromás importantes: 0 Accesos al sistema (correctos o erróneos) 0 Accesoserróneosaarchivos. Cambiosenelplandeseguridad 0 Problemasdeimpresión. 0 Entradas a través de RAS (correctas o erróneas). En general cualquier servicio es susceptible de ser auditado (mail, ftp, web y todos los mencionados arriba) sin embargo siempre habremos de buscar un equilibrio entre la cantidad de sucesos auditados y los sistema, recursos esto del yadiscreción administrador. del queda a Manténgase alerta Si sigues los consejos anteriores vas a poder dormir plácidamente durante un tiempo, sin embargo cada díasedescubrennuevosagujerosdeseguridadinclusoen los sistemasmásfiables,esimportante mantenersealdíasobreestetipodenoticias,plantearnos los riesgosqueimplica la instalaciónde nuevos servicios en nuestra red y revisar que todas las puertas estén cerradas tan a menudo como nos sea posible. Reparación de un sistema dañado. Previsión Y análisis. Cuando nuestro sistema nos da algún error en el arranque, no se puede inicializar NT o se ha dañado alguna parte del registro, tenemos que actuar con calma y serenidad, aún no está todo perdido, sobre alizado. eparación de todo disco si un tenemos Paraprevenir la pérdidade los datos y elsistema,siempretenemosquetenerunjuegodedisco compuesto por los tres de instalación y otro que generamos con la utilidad RDISK del sistema operativo, siempre que vayamos a hacer un cambio importante en el sistema, sobre todosi es de hardware hay que generar el disco de rescate antes de hacerloy si todo va bien habrá que volverlo ha generar después de la instalación. En el caso de un cambio del sistema de seguridad o un cambio en el registro, habrá que generar el disco. Siempre tendremos la costumbre de tener por lo menos dos o tres discos de reparación iremos los cuales Nota importante: Si utiliza el disco de reparaciones de emergencia de Windows NT para reparar su sistema Windows NT en algún momento después de instalarel Service Pack, deberá reinstalar el Service Pack después de terminar la reparación. Esto se debe a que el disco de reparaciones de emergencia operarestaurando los archivosoriginalesde la instalacióndeWindowsNT 4.0. Unavezquela reparación ha terminado, simplemente siga las instrucciones de instalación (sección 2.0) para instalar otravezelServicePack.Paramásinformaciónsobre la utilizacióndeldiscodereparacionesde http://support.microsoft.com/suppotV ybusqueel emergencia,consulteMicrosoftKnowledgeBaseen artículo (2146887. Nota: Para utilizar el programa del disco de reparaciones de emergencia necesita una el versiónactualizadadeSETUPDDSYS,queseencuentraen el ServicePack 3. Paraello,copie 205 archivo SETUPDD.SYSdesde el ServicePackaldisco de inicionúmero 2. Paramásinformación consulteMicrosoftKnowledgeBaseen http://support.microsoft.com/supportl busque y el artículo QI 58423. Lo primero es hacer un análisis de lo último que hemos hecho que haya podido provocar el error, si nos ha salido una pantalla azul repleta de números de arriba a abajo (pantalla azul de la muerte) donde el sistema nos da un volcado de la memoria y los archivo implicados en el cuelgue, algo malo ha pasado (caídas de tensióneléctrica,fallos del hardware,controladoresdedispositivosincompatibles, etc.). Ultima configuración correcta. La actuación es la siguiente primero intentaremos arrancar con la última configuración buena reconocida, para ello cuando nos pregunte en la pantalla que presionemos espacio para ver el menú de perfiles de los perfilesdehardwarey hardware, lo haremos,ynossaldráunapantallaconunlistadode configuración, para arrancar conla ultima configuración buena conocida presionaremos ( L ), nos dará la opción ( D ) para arrancar con la predeterminada, nosotros le daremos (ENTRAR), en el caso de que de esta forma arrancara y que el sistema funcione adecuadamente, ya no hay que hacer nada más. Si el funcionar pasaremos a sin sigue sistema la actuación. siguiente Arranque con los discos de inicio. Para ello introduciremosel disco unode instalación, luego nos pediráel disco dos y nos saldrála pantalla de bienvenida donde pulsaremos ( R ) es que la reparación. opción de Nos saldrá otra pantalla donde nos pregunta qué reparar. La selección se hará con los cursores y la barra espaciadora, por defecto está seleccionado todo, lo debemos de dejarasí si nosabemosque seleccionar. ARCHIVOS LOS REGISTROS. DE [XI INSPECCIONAR ENTORNO INICIO. DE [XI EL DE ARCHIVOS LOS SISTEMA DE NT. [XI COMPROBAR INICIO. SECTOR DE [XI EL Una vez marcadas las opciones que deseemos pulsaremos continuar la reparación y nos pedirá que introduzcamos el disco tres, pasando con el a la detección de los controladores de disco y de CD. Una vez detectados o introducido los driver del fabricante continuaremos ynos preguntará si disponemos de un Opciones de reparación. Una vez introducidose pondrá a examinarlos disco del sistema, pudiendo tardar varios minutos en hacer este reconocimiento.Apareceunaplantilladondedebemosdecidirquepartedelregistroqueremos restaurar, moviéndonos con los cursores y seleccionándolos. Es muy importante saber la antigüedad del disco de reparación ya que si le decimos que recupere la SEGURIDAD y no está actualizada podemos estropearparte de nuestrotrabajocomoadministradordelsistema,poresarazóntodovienesin seleccionar Por defecto. sistema). del (Configuración 1 SISTEMA Software). [ de 1 (Información SOFTWARE predeterminado). t usuario 1 del PREDETERMIDADO (Perfil usuario [ 1 NTUSER.DAT (Perfil denuevo). [ ] SEGURIDAD(Directivas de seguridad)y SAM (Basededatosde los usuariosdecuentas). (Realizar CONTINUAR También en el caso de habernos equivocado a la hora de configurar la seguridad del sistema haciendo podemos prueba recuperarla alguna desde elreparación. proceso de Solo debemos reparar los archivos de registro que sepamos que están dañados o desaparecidos, porque podemos quitar algunas actualizaciones de archivos realizadas por programas que las necesitan para funcionar, Un ejemplo: si el sistema se nos estropeo instalandoel driver de una tarjeta que hemos puesto nueva en el ordenador, solo tendría que repararse el SISTEMA, dejando sin señalar todo lo demás. Una vez aclarado todo lo que deseamos restaurar nos moveremos con el cursor hasta continuar y le daremos (ENTRAR). El proceso de reparación se pondrá en marcha. Si se encuentran archivos dañados intentará restaurarlos desdeel CD-ROM pero antes siempre pregunta: 206 sistema. 0 Si queremos ignorarlo presionar ( ESC ). o Si queremos repararlo presionar ( ENTRAR ). Para reparar el archivo y todos lo demás no originalespulsamos ( T ) , aunque esta opción suele ser poco recomendable, como hemos dicho antes sólo debemos restaurar aquellos archivos que nos estén dando problemas del desaparecido hayan O que los discos (disquetera y CD), Una vez reparado todos los archivo erróneos nos pedirá que retiremos reiniciemos el sistema y crucemos los dedos. Introducción a la arquitectura del sistema Comprender cómo funcionaWindowsNTes fundamenta/ para programar y recomendable para administrarlo. Vamos a hacer un recorrido por /as profundidades de este sistema operativo. equipado versión 1. Introducción WindowsNTpresentaunaarquitecturadeltipocliente-servidor. Los programasdeaplicaciónson contemplados por el sistema operativo como si fueran clientes a los que hay que servir, y para lo cual viene Uno de los objetivos fundamentales de diseño fue el tener un núcleo tan pequeño como fuera posible, en elqueestuvieranintegradosmódulosquedieranrespuestaaaquellasllamadasalsistemaque necesariamentesetuvieranqueejecutarenmodoprivilegiado(tambiénllamadomodokernel,modo núcleo y modo supervisor).El resto de las llamadas se expulsarían del núcleo hacia otras entidades que se ejecutarían en modo no privilegiado (modo usuario), y de esta manera el núcleo resultaría una base compacta, robusta y estable. Por eso se dice que Windows NT es un sistema operativo basado en microkernel. Por tanto en un primer acercamiento a la arquitectura distinguimos un núcleo que se ejecuta en modo privilegiado,ysedenomina Executive, yunosmódulosqueseejecutanenmodonoprivilegiado, llamados subsistemas protegidos. Los programasdeusuario(tambiénllamadosprogramasdeaplicación)interaccionanconcualquier sistema operativo(s.o.en adelante) a travésde un juego de llamadas al sistema propio de dicho sistema. En el mundo Windows en general, las llamadas al sistema se denominan API (Application Programming Interfaces, interfaces para la programación de aplicaciones). En Windows NT y en Windows 95 se usa una AP I AP llamada I Win32. 2. Los subsistemas protegidos. Son una serie de procesos servidores que se ejecutan en modo no privilegiado, al igual quelos procesos usuario, de pero que tienen algunas características propias que los hacen distintos. Se arrancar inician alel S.O.existen y tipos: dos integrales entorno. de y Un subsistema integral es aquel servidor que ejecuta una función crítica del S.O. (como por ejemplo el que gestiona la seguridad). Un subsistema de entorno da soporte a aplicaciones procedentes de S.O. distintos, adaptándolas para su ejecución bajo Windows NT. Existen tres de este tipo: 0 Win32, que es el principal, proporciona y construidas para Windows NT. la interfaz para aplicaciones específicamente 0 POSIX,quesoportaaplicacionesUNIX. 0 o s / 2 , que da el entorno a aplicaciones procedentes del S.O.del mismo nombre. El subsistema Es el m& importante, ya que atiende no sólo a las aplicaciones nativas de Windows NT, sino que para aquellos programas no Win32, reconoce su tipo y los lanza hacia el subsistema correspondiente. En el caso de que la aplicación sea MS-DOSo Windows de 16 bits (Windows3.1 1 e inferiores),lo que hace es crear un nuevo subsistema protegido. Así,la aplicación DOS o Win16 se ejecutaría en el contextode un proceso llamado VDM (Virtual DOS Machine, máquina virtual DOS), que no es más que un simulador de unordenadorfuncionandobajoMS-DOS.Lasllamadas al APIWin16seríancorrespondidasconlas homónimas en API Win32. Microsoft llama a esto WOW (Windows On Win32). El subsistema soporta 207 una buena parte del API Win32. Así, se encarga de todo lo relacionado con la interfaz gráfica con el usuario(GUI),controlandolasentradasdelusuarioysalidasde la aplicación. Porejemplo,unbuen número de funciones de las bibliotecas USER32 y GD132 son atendidas por Win32, ayudándose del Executive cuando es necesario. El funcionamiento como servidor de Win32 lo veremos un poco más madas .os de apartadoel en adelante, El subsistema La norma POSIX (Portable Operating System Interface for UNIX) fue elaborada por IEEE para conseguir la portabilidad de las aplicaciones entre distintos entornos UNIX. La norma se ha implementado no sólo en muchas versiones de UNIX, sino también en otros S.O. como Windows NT, VMS, etc. Se trata de un conjuntode 23normas,identificadascomoIEEE1003.0aIEEE1003.22, o tambiénPOSIX.0a POSIX.22, de las cuales el subsistema POSIX soporta la POSIX.l, que define un conjunto de llamadas al sistema en lenguajeC. El subsistema sirve las llamadas interaccionando conel Executive. Se encarga también de definir aspectos específicos delS.O. UNIX, como pueden ser las relaciones jerárquicas entre procesospadresehijos(lascualesnoexisten enelsubsistemaWin32,porejemplo,yquepor aparecen implementadas consiguiente nodirectamente en el Executive). El subsistema os/2. Igualque el subsistemaPOSIXproporcionaunentornoparaaplicaciones UNIX, estesubsistemada soporte a las aplicaciones del S.O. OS/2. Proporciona la interfaz gráfica y las llamadas al sistema; las vidas son llamadas ayuda Executive. del proceso El subsistema El proceso de inicio (Logon Process) recibe las peticiones de conexión por parte de los usuarios. En realidad son dos procesos, cada uno encargándose de un tipo distinto de conexión: el proceso de inicio local, quegestiona la conexióndeusuarioslocalesdirectamenteaunamáquinaWindows NT; y el proceso de inicio remoto, el cual gestiona la conexión de usuarios remotos a procesos servidores de NT. de El subsistema Estesubsistemainteraccionacon el procesodeinicioy el llamado monitordereferenciasde seguridad (del que trataremos en el Executive), de esta forma se construye el modelo de seguridad en Windows NT. El subsistema de seguridad interacciona con el proceso de inicio, atendiendo las peticiones deacceso al sistema.Constade dossubcomponentes: la autoridad de seguridadlocal y el administrador de cuentas. El primero es el corazón del subsistema de seguridad,en general gestiona la política de seguridad local, así, se encarga de generar los permisos de acceso, de comprobar que el usuario que solicita conexión tiene acceso al sistema, de verificar todos los accesos sobre los objetos (para lo cual se ayuda del monitor de referencias a seguridad) y de controlar la política de auditorías, llevando la cuenta de los generados auditoría por mensajes de referencias. el demonitor los usuarios (login, El administrador de cuentas mantiene una base de datos con las cuentas de todos claves,identificaciones,etc.).Proporciona los serviciosdevalidacióndeusuariosrequeridosporel subcomponente anterior. 3. obietos El Executiv Nodebemosconfundir el Executivecon el núcleodeWindowsNT,aunquemuchasvecesseusan (incorrectamente) como sinónimos. El Executive consta de una serie de componentes software, que se ejecutan en modoprivilegiado,unode los cuales es el núcleo.Dichoscomponentessontotalmente independientes entre sí, y se comunican a través de interfaces bien definidas. Recordemos que en el diseño se procuró dejar el núcleo tan pequeño como fuera posibley, como veremos, la funcionalidad del núcleo es mínima. El de administrador Se encarga de crear, destruir y gestionar todoslos objetos del Executive. Tenemos infinidad de objetos: procesos, subprocesos, archivos, segmentos de memoria compartida, semáforos, mutex, sucesos, etc. Los subsistemasde entorno (Win32, OS/2 y POSIX) también tienen sus propios objetos. Por ejemplo, un objetoventana es creado(conayudadeladministrador de objetos)ygestionadopor el subsistema Win32. La razónde no incluir la gestión de ese objeto en el Executive es que una ventana sólo es innata o OS/2.Portanto, el Executivenose de las aplicacionesWindows,ynodelasaplicacionesUNIX de cada S.O. concreto, sino de los objetos encarga de administrarlos objetos relacionados con el entorno 208 comunes los a tres. El Se encarga (en colaboración con el administrador de objetos) de crear, destruir y gestionar los procesos y subprocesos. Una de sus funciones es la de repartir el tiempo de CPU entre los distintos subprocesos. Suministra sólo las relacionesmásbásicasentreprocesosysubprocesos,dejando el restode las interrelacionesentreellosacadasubsistemaprotegidoconcreto.Porejemplo,en el entornoPOSlX existe una relación filial entre los procesos que no existe en Win32, de manera que se constituye una jerarquía de procesos. Como esto sólo es específico de ese subsistema, el administrador de objetos no trabajo y ese entromete en se subsistema. manos del lo endeja virtual El memoria administrador de (Virtual Manager). Memorv Windows NT y UNlX implementan un direccionamiento lineal de 32 bits y memoria virtual paginada bajo demanda. El VMM se encarga de todolo relacionado con la política de gestión dela memoria. Determina los conjuntos de trabajo de cada proceso, mantiene un conjunto de páginas libres, elige páginas víctima, sube baja y páginas entre memoria la RAM archivo ely de intercambio en disco, etc. La procedimiento facilidad a llamada de local Facilitv). (LPC Este módulo se encarga derecibiryenviar las llamadas a procedimiento local entre las aplicaciones cliente Y servidores. los subsistemas entraddsalida El de administrador ( I/O Manager). Consta de varios subcomponentes: el administrador del sistema de archivos, el servidor de red, el redirector de red, los drivers de dispositivo del sistema el y administrador de cachés. Buena parte de su trabajo es la gestión dela comunicación entre los distintos drivers de dispositivo, para lo cual implementa una interfaz bien definida que permite el tratamiento de todos los drivers de una manera homogénea, sin preocuparse del funcionamiento específico de cada uno. Trabaja en conjunción conotroscomponentesdelExecutive,sobretodoconelVMM.Leproporcionala E/S síncronay asíncrona, la E/S a archivos asignados en memoria y las caches de los archivos. El administrador de caches no se limita a gestionar unos cuantos buffers de tamaño fijo para cada archivo abierto, sino que es capaz de estudiar las estadísticas sobre la carga del sistema y variar dinámicamente esos tamaños de acuerdo con trabajo. suparecido en la realiza algo VMMEl carga. deEl monitor Este componente da soporte en modo privilegiado al subsistema de seguridad, con el que interacciona. Su misión es actuar de alguna manera como supervisor de accesos, ya que comprueba si un proceso determinado tiene permisosparaaccederaunobjetodeterminado,ymonitorizasusaccionessobre dicho objeto. De esta manera es capaz de generar los mensajes de auditorías. Soporta las validaciones a que acceso de local. seguridad el de subsistema inistrador hardware El núcleo Situado en el corazón de Windows NT, setrata de un micro-kernel que se encarga de las funciones más básicas de todo el sistema operativo: ejecución de subprocesos, sincronización multiprocesador, manejo de El de abstracción nivel de Es unacapadesoftwareincluidaenelExecutivequesirvedeinterfazentre los distintosdriversde dispositivo y el resto del sistema operativo. Con el HAL, los dispositivos se presentan al S.O. como un conjunto homogéneo con el cual interacciona a través de un conjunto de funciones bien definidas. Estas funciones son llamadas tanto desde el S.O. como desde los propios drivers. Permite a los drivers de dispositivo adaptarse a distintas arquitecturas de E/S sin tener que ser modificados en gran medida. los detalleshardwarequeconlleva el multiprocesamientosimétricode los niveles Ademásoculta superiores del S.O. 4. Llamadas a procedimientos locales Y remotos. WindowsNT, al tenerunaarquitecturacliente-servidor,irnplementaelmecanismodellamadaa procedimiento remoto (RPC) como medio de comunicación entre procesos clientes y servidores, situados ambos en máquinas distintas de la misma red. Para clientes y servidores dentro de la misma máquina, la RPCtoma la formadellamadaaprocedimiento local (LPC).Vamosaestudiarendetalleambos mecanismos constituyen pues aspecto fundamental un diseño del NT. de RPC).Procedimiento Procedure Call (Remote Remoto a Llamada 209 (Kernel). Se puede decir que el sueño de los diseñadores de Windows NT es que algún día se convierta en un sistemadistribuidopuro,esdecir,quecualquieradesuscomponentespuedaresidirenmáquinas distintas,siendo el kernel encadamáquina el coordinadorgeneraldemensajes entre los distintos componentes. En la última versión de Windows NT esto no es aún posible. No obstante, el mecanismo de RPC permite a un proceso cliente acceder a una función situadaen el espacio virtual de direcciones de otro proceso servidor situado en otra máquina de una manera totalmente transparente. Vamos a conjunto. explicar en el proceso Supongamos que tenemos un proceso cliente ejecutándose bajo una máquina A, y un proceso servidor bajo una máquina B. El cliente llama auna función f de una biblioteca determinada.El código de f en su biblioteca es una versión especial del código real; el código real reside en el espacio de direcciones del servidor. Esa versión especial dela función f que posee el cliente se denominaproxy. El código proxy lo Único que hace es recoger los parámetros de la llamada a f, construye con ellos un mensaje, y pasa dicho mensaje al Executive. El Executive analiza el mensaje, determina que va destinado a la máquina 6, y se lo envía a través del interfaz de transporte. El Executive de la máquina B recibe el mensaje, determina a que servidorva dirigido, y llama a un código especial de dicho servidor, denominadostub, al cual le pasa el mensaje. El stub desempaqueta el mensaje y llama a la función f con los parámetros adecuados, ya en el contexto del proceso servidor. Cuandof retorna, devuelve el control al código stub, queempaquetatodos los parámetrosdesalida (si los hay), forma asíunmensajeyse lo pasa al Executive. Ahora se repite el proceso inverso; el Executive de B envía el mensaje al Executive de A, y este reenvía el mensajeal proxy. El proxy desempaqueta el mensaje y devuelve al cliente los parámetros de retorno def. Por tanto, parael cliente todo el mecanismo ha sido transparente. Ha hecho una llamada a f, y ha obtenido unos resultados; ni siquiera tiene que saber si el código real de f está en su biblioteca o en una máquina situada tres plantas más abajo, esta es elegancia la de las RPC. edure (Local procedimiento local a Llamada Las LPC sepuedenconsiderarunaversióndescafeinada de lasRPC.Seusancuandounproceso necesita los servicios de algún subsistema protegido, típicamente Win32. Vamos a intentar descubrir su funcionamiento. El proceso cliente tiene un espacio virtual de 4 Gb. Los 2 Gb inferiores son para su uso (excepto 128 Kb). Los 2 Gb superiores son para uso del sistema. Vamos a suponer que el cliente realiza una llamada a la función Createwindow. Dicha función crea un objeto ventana y devuelve un descriptor al mismo. No es gestionada directamente por el Executive, sino por el subsistema Win32 (con algo de colaboración por parte del Executive, por supuesto; por ejemplo, para crearel objeto). El subsistema Win32va guardando en su propio espacio de direcciones una lista con todos los objetos ventana que le van pidiendo los procesos. Por consiguiente, los procesosnotienenaccesoalamemoriadondeestán los objetos; simplemente obtienen un descriptor para trabajar con ellos. Cuando el cliente llamaCreatewindow, a se salta al código de esa funciónquereside en la biblioteca USER32.DLLasignadaen el espaciode direcciones del cliente. Por supuesto, ese no es el código real, sino el proxy. El proxy empaqueta los parámetros de la llamada, los coloca en una zona de memoria compartida entre el clientey Win32, pone al cliente a dormir y ejecuta una LPC. La facilidad de llamada a procedimiento local del Executive captura esa llamada, y en el subsistema Win32 se creaun subproceso que va a atender a la petición del cliente. Ese subproceso es entonces despertado, y comienza a ejecutarel correspondiente código de stub. Los códigos de stub de los subsistemas se encuentran en los 2 Gb superiores (los reservados) del espacio virtual del proceso cliente. Aunque no he encontrado más documentación al respecto, es muy probable que dichos 2 Gb sean los mismos que se ven desde el espacio virtual de Win32. Sea comosea, el caso es que el stub correspondiente desempaquetalos parámetros del área de memoria compartida y selos pasa a la función Createwindow situada en el espacio de Win32. Ese sí es el código real de la función. Cuando la función retorna, el stub continúa, coloca el descriptor a la ventana en la memoria compartida, y devuelve el control de la LPC al Executive. El subproceso del Win32 es puesto a dormir. El Executive despierta al subproceso cliente, que estaba ejecutando código proxy. El resto de ese códigolo que hace es simplemente tomarel descriptor y devolverlo como resultado de la función Createwindow. NT Comandos NET NT 5.0 210 DIFERENCIAS ENTRE MANEJO DE PROCESOS ENTRE WINDOWS NT Y UNIX Aunque el inventor del administrador de procesos sea el mismo, existen diferencias sustanciales en el diseño de UNlX y NT. Una de las más importantes es que mientras NT debe de hacer uso de un mayor uso de recursos debido a que no tansolo hace uso de un solo tipo de procesos nativos como sonlo de tipo Posix que son nativosde UNIX, sino que también deben cargarse de ejecutar procesos y programas de Windows (bajo 32 bits y 16 bits), aplicaciones de MS-DOS (de 8 16 bits), aplicaciones tipo OS/2, aplicaciones MASHINTOS y aplicaciones de tipo Posix, la a vez de que en el sistema operativo como tal su metodología se basa en hilos y objetos y UNIX. El sistema operativo UNlX al inicio de su creación utilizo la metodología de programaciónC y ensamblador en algunos aspectos, mientras que WINDOWS NT fue creado desde sus inicios en programación orientada a objetos y su código en ensamblador es muy reducido. Lo anterior es muy importante ya que aunque UNlX sea aparentemente más estable para poder correr de vista muy diferente que WINDOWS NT. programas concurrentes ala vez lo hace desde un punto lo manuales técnicos y de publicidad de Tan solo por mencionar un aspecto, aunque poco claro por Microsoft (vease ....) tan sólo el GUI para ser cargado en memoria requiere de 32 megas en memoria y 16 megas adicionales según la aplicación por cada ventana que se abra, pero gracias a su excelente administrador de memoria virtual logra obtener un SWAPP que es excelente. (vease las comparativas del monitorde procesos entre WINDOWSNT y UNlX RED HAT). UNlX hace uso deunaexcelenteseparacióndeprocesosservidoresyprocesosusuariospudiendo establecer con ello una seguridad muy alta para poder manejar procesos de tipo servidor y usuario. En UNlX los procesos servidores son aquellos que tienen acceso directolos a recursos del servidor. en los procesos de Esto es muy importante ya que debido alo anterior las instrucciones que se manejan UNlX en su formadekernelaccedendirectamenteainstruccionesenensambladorparahaceruso directode los dispositivos de hardwarea los quedebaacceder. Ya que UNlX manejatambién el multiproceso. Los procesos son separados en dos tipos: procesos de tipo usuario y procesos de tipo servidor. En WINDOWS NT también se hace algo similar, pero en este caso se hace uso de un tercer elemento que es también muy importante llamado HILL, el cual es una estructura de datos que se crea en adición para poder diferenciar entre los tipos de procesos que se estén ejecutando. Mientras que UNlX utilizael modelo antiguode jerarquización delos procesos esto seve cuando se crea un proceso padre y un proceso hijo, por ejemplo cuando un usuario hace una petición deun programa se crea un proceso padre que asu vez es hijo del kernel que es el padrede todos los procesos; este nuevo procesotienecaracterísticascomo los sonunidentificadorpropioyotrasestructuras deusuarioasí como un ambiente de memoria que le es propio a ese proceso, por ello cuando el usuario hace una peticiónaesteprocesocreadoparaobtenermásrecursos o paraejecutarotratarea, secrearáun proceso hijo quetendrálasmismascaracterísticasyambientedelprocesopadre.Enesteaspecto WINDOWS NT marca una diferencia y ventaja muy marcada que al principio, pero que a la larga si se continúan creando procesos con esta metodología la administración de esta jerarquía de procesos es confusa: esto es, debido a que en un proceso de tipo NT no se heredan todas las características del proceso padre al proceso hijo, así como también no se guardan todas las variables del ambiente de los procesos gracias a I a metodología orientada a objetos; sin embargo,si vemos el árbol de procesos NT con el de UNlX el de NT va a tener más número de ramificaciones y de hijas; debido a que se hace una diferenciación mayor enlos hilos de ejecución de los procesos padre e hijo. 21 1 Los procesos padre en UNlX comose menciono anteriormente sondel tipo servidores o usuario, esto es debido a la jerarquización que se usa y a las prioridades que se manejan, esto es muy importante para evitar los abrazos mortales quesepuedandaren los procesos al tratar de hacer uso de un mismo recurso al mismo tiempo, así como también existen otras estructuras de datos que pueden hacer uso de una administración en el procesador o en la memoria con características como tiempos de espera para cada proceso, prioridad enlos procesos, recompensade planeación de procesos, bloqueode procesos,; pero no puede ejecutar procesos preemtivos, debido a que la respuesta a cada unode estos eventos es dependiente del tiempo de actividad del sistema o quantum de tiempo. Otra de las ventajasen UNlX además de la administración de tipo linealen los procesos ya que si no se mata al proceso padre de uno de estos procesos, no se podrá eliminar por completo esta tarea del sistema.UNlXllevaunprocesocasidirectoparapodermanejar los registros de la memoriay los dispositivos y gracias asu kernel una mayor velocidad antela petición de interrupciones a Hardware.Ya que como se verá en la sección de la memoria el kernel encapsula una importante cantidad de memoria de interrupciones deotros procesos. para sí mismo y a través de ello puede responder a las peticiones Es debido a esto que el tiempo en que se ejecuta un programa en UNlX es menor al de NT; debido a que en NT por cada proceso padre se creaun hilo de ejecución que puede ser diferenteal hilo de ejecución del proceso hijo y este a su vez debe de estar checando a cada momento a que entorno pertenece ya sea WINDOWS, MS-DOS, UNIX, etc. Además de que la seguridad en UNlX es manejada a trabes de una administración menos centralizada (por cada sección de usuario se creará un Único proceso padre con susvariablesdeentornoyambientequesonigualesy de forma más linealque en NT).Si comparamos como se muestran en las figuras siguientes la estructura de datos que se realiza en la creación de procesos de NT contrade la UNlX el número de elementos es mayor. La administración de procesos en WINDOWS NT se basa principalmenteen la estructura de base delos hilos ya que como se verá más adelante la administración de los hilos de ejecución es vital (para mayor referencia veaseel tema Manejo de procesos en NT). Otro de los aspectos importanteses que WINDOWS NT en cada sección de usuario debe de administrar muchas veces el poder guardar todo un ambiente en cada cambio de contexto dela multitarea. UNlX no hace estos cambios, es responsabilidad de cada uno de los usuarios el poder guardar y no permitir que se degeneren sus ambientes de operación, tal comolo puede hacer en un ambiente gráfico. de Comoseveráen la siguienteilustración los recursosquellegaautilizarWordenunservidor aplicaciones tipo UNlX y en un servidor de aplicación de tipo NT, es menor, también es notable que la estabilidad del sistema operativo UNlX es mayor que la estabilidad de un servidor WINDOWS NT en aplicaciones de tipo . Esto se observo al tratar de crear un gif animado conel mismo número de frames y el tamaño de los mismos usándose en los dos sistemas operativos; el tiempo de espera para poder salvar, editar y crear la animación fué mayor en WINDOWS NT (sin mencionar que en WINDOWS 98 dejo de funciaoar definitivamente con la misma aplicación y carga de trabajo). En la siguiente tabla se resume la actividad antes mencionadaasí como las cantidadesen tiempo y en megabits usados en este proceso. 212 Lo anterior se puede explicar gracias ala administración de procesos que existe entre uno otro y sistema , mientras que WINDOWS NT debe hacer uso de una mayor cantidad de estructura de datos, tales como son: hilos deejecución,identificadoresdeámbito,controladoresdeseguridad,identificadoresde recursos y otros más a UNlX le es inclusive “toda esta burocracia” y lo hace de forma más sencilla y lineal. ) Cada hilo de ejecución debe manejar diferentes (vease las comparativas de UNlX y WINDOWS NT tipos de eventos y estarse sincronizando entre uno y otro hilo aunque sean diferentes para poder hacer usodelkernel , aunqueestaasociaciónteóricamenteestá prevista alpoderencapsularacada subsistema protegido. Por ello la gran ventaja de WINDOWS NT al poder manejar múltiples ambientes en multitarea; a veces es su talón de Aquiles, ya que ante el exceso de subsistemas WINDOWS 32 este puede caer. Sinembargo,laadministraciónporpartedelsuperusuarioenUNlXyenWindowsNTesabismal. Debido al ambiente gráfico que existe en NT. No obstante se puederastrear a través de instrucciones de UNlX la jerarquía de un proceso a lo largo de toda su descendencia y ascendencia. Por el número de identificador de proceso; sin embargo, si uno de estos procesos queda colgado será muy difícil el poder eliminar al proceso y a todos sus descendientes o ascendientes para que ya no puedan seguir haciendo uso del sistema. Windows NT solamente puede identificar en su monitor de procesos a los procesos padre, pudiendo con ello eliminar a toda su descendencia en forma más práctica. Cuando se probaron emular los dos ambientes en forma cruzada (esto es ejecutar aplicaciones nativas de Windows un UNlX y viceversa) se notó que UNlX está muy por debajo; por no decir en el suelo, que Windows NT; el emulador que se utilizo para probar las aplicaciones de Windows NT en UNlX se llama WINEynopudocorrertodas las aplicaciones,asícomotambiéndeberíaespecificarse el tipode aplicación, la cantidad de memoria,la ruta y otros parametros. Mientras que Windows NT corre en forma automática y casi transparente a través de los X SERVER y sus componentes cualquier tipo de programa UNlX ya sea gráfico o de tipo texto, ofreciendo con ello el poder usar una PC de escritorio como una estación de trabajo de tipo UNIX. Lo anteriorseexplicaaque existe comercialmentemayorrespaldoyapoyoparaaplicacionesde Windows NT que en el mundo UNIX. En otros aspectos no se pudo comprobar la corrida de aplicaciones y sus procesos de otros sistemas operativos en ambas plataformas debido la falta a de estos. A continuación se muestrael árbol de procesos de la aplicación Word corrida en ambas plataformas. Como conclusión si queremos utilizar a Windows NT como un servidor de aplicaciones debemos de tomar en cuenta la cantidad de recursos en procesos que se requieren al tener que usarse cada vez que se corre una nueva aplicación aunque debemos admitir que el administrador de procesos es más robusto ydesarrolladoenWindowsNTqueenUNIX.Sinembargo,debidoalacantidaddeambientesque maneja su confiabilidad disminuye considerablemente. 213 DIFERENCIAS ENTRE EL MANEJO DE MEMORIA DE WINDOWS NT Y UNIX El manejo de la memoria es un aspecto muy importante para la confiabilidad de los sistemas operativo, esto es lo que marca segundos o milésimas de segundo es entre el poder hacer un cambio de contexto en la multitarea de los sistemas operativos, aspecto que es de vidao muerte ya que de esto depende el poder asegurar queuna aplicación pueda seguir corriendo de manera natural. La diferencia radical que existe entre la administración de memoria y en UNlX y en Windows NT es la forma en como se traducen las direcciones de memoria virtual a memoria física ya que en Windows NT este proceso se lleva cabo en el modelo segmentado de la memoria haciéndose de una manera lineal la forma en la cual se hace referencia a unaregión de la memoria ya sea virtual o fisica, sin embargo; la traducción de la memoria en UNlX se hace en el modelo de memoria virtual y no segmenteda sino a través de direccionamiento basado en palabras. No obstante lo anterior los dos utilizan la técnica de paginación para poder soportar las operaciones de Swap al correr diferentes aplicaciones. Las técnicas son iguales entreuno y otro sistema pero el tamañode página y su traducciónes diferente; mientras que en Windows NT el tamaño de pagina es de 64 kilo bites aunque este puede variar yel de UNlX esde alrededor de 138 kilo bites. Windows NT debe de poder diferenciar entre ambientes heterogéneos para poder manejar y administrar la paginación, el mapeo y traducción de las páginas se hace a través de los identificadores de objeto de cadaproceso,porello esmuyimportanteque el administradordeprocesosy el de memoria se comuniquen constantemente a través delos hilos de ejecución, aquí entra otra variable que no se toma en cuenta en UNlX tanto como en NT, tal como lo es un hand1 para poder identificar a cada objeto y lo ejecución yo proceso que se este ejecutando y que requiera memoria . A partede los implementosdeseguridadnormalesde los otrossistemasoperativosWindowsNT implementaunaproteccióndememoriabasadaenobjetosytambiénunmonitor de referencia que comprueba si un proceso tiene acceso permitido a un objeto. El mapeo y traducción de las direcciones virtuales de memoria en UNlX son más complicados que en Windows NT debido a que los procesos son monitoreados a través de un quantum de tiempo, lo que divide a los recursos utilizados como recursos que están muertos, dormidos, en ejecución, o en espera de alguna petición; en Windows NT lo anterior es importante, pero no estan complicado gracias a los hadle que se utilizan para la administración dela memoria. Otra diferencia también es en el uso de la segmentación de páginas, ya que en UNlX los registros del segmento de datosy de textos es más accesible queen Windows NT. UNlX tiene una seria desventaja al tratar de ligar almacenamientos secundarios de archivos; esto es obvio debido a que el suap realiza el 90% de sus operacionesen un almacenamiento secundario. En Windows NT es más transparente y fácilel montar almacenamiento secundarios que en UNIX, debido a su sistema de archivos; por lo que la liga entre un almacenamiento secundario que sea remoto es más seguro que enUNlX (vease “sistema de archivosde Windows NT contra sistema de archivos de UNIX”). En UNlX aunque queda residente el montaje de un sistema de archivos remoto siempre los demonios son los demonios o procesos residentes en memoria que hacen referencia al montaje de almacenamientos secundarios deben de estar siempre inspeccionándose que estén arriba o cargados para poder hacer el swap no teniéndose un buffer de almacenamiento intermedio tan eficaz como el de Windows NT encasodequeocurraunadesconexión o fallaen el almacenamientosecundario.La 214 traducción virtual de la memoria a la traducción física es más fácil en un sistema de tipo UNlX que en Windows NT ya que debido a que en Windows NT la memoria esta segmentada se debe realizar una operación extra que es la de calcular el desplazamiento de memoria virtual a memoria física y en UNlX no se realiza esta operación más que el de traspasar y calcular el tamaño de páginas a cada uno delos clusters en el sistema de archivos. Una ventaja muy grande en el sistema de archivos y de memoria de 32 bits es muy importante ya que se puede direccionar virtualmente la memoria a 64 gyga bytes los cuales en UNlX son reservados para el kernel y el sistema operativo de 0.5 a 2 mega bytes para el kernel y puede crecer hasta 256 mega bytes y lo demás es utilizado para otras aplicaciones, protegiendoal kernel de otras operaciones válidas, evitando con ello que quede colgado el sistema. Sin embargo; Windows NT deja de los 64 gyga bytes deja 2 giga bytes para el sistema operativo y los otras 2 gyga bytes para uso de otras aplicaciones ya sea de Windowso de otros sistemas operativos. y su uso pareciera más indiscriminado que en En conclusión el manejo de memoria en Windows NT UNIX, no obstanteel uso de la memoria en Windows NT es más optimizado y jerarquizado que en UNIX; debido a que los dos sistemas operativos fueron creados en diferentes plataformas( ClSC Y RISC) en la paginación y su traducción se hacen de forma muy diferente aunque la técnica en la paginación es la misma. 215 DIFERENCIASENTRESISTEMA NTFS Y HPFS DE ARCHIVOS High-Performance File System (HPFS) HPFS es el mismo sistema de archivos usado en OS/2, NT no le provee mejoras. Típicamentees usado durante la migración de OS/2 hacia NT. Convenciones de Nombres en HPFS . Soporta nombres largos de hasta 254 caracteres con multiples extensiones. . Los nombres preservan las mayúsculas y minúsculas, pero no hace diferenciación. . Los nombres pueden contener cualquier caracter (incluyendo espacios) excepto: ?"/ \ < >* I Consideraciones del Sistemade Archivos HPFS . Los nombres largos no son visibles en las aplicaciones Windows 16ni DOS ejecutándose enNT, porque no se tiene soporte a nombres cortos. Las particiones HPFS son normalmente usados para migrarOS/2 de hacia NT. . HPFS no soporta adecuadamente discos muy grandes. Hay una degradación del rendimiento a partir de los 400 MG. . HPFS consume aproximadamente 2MG parael sistema de archivos. . Una partición HPFS no puede ser protegida con la seguridad NT. La siguiente tabla describe algunas caracteristicas básicasHPFS: de Longitud del Nombre del Archivo y del Directorio 254 Tamaño del archivo 4GB (232 bytes) Tamaño de la partición 4TB teóricamente (241 bytes), 7.8 GB actual (debido a la geometria de los discos) Atributos Solo lectura, ARchivo, Sistema, Oculto y *extendidos Sistema de directorios Arbol Binario Accesible a través de OS/2 y Windows NT *permite atributos adicionales representados como textos y pueden ser usados de manera arbitraria por las aplicaciones, por ejemplo iconos para el archivo o el nombre de la aplicación asociada. New Technology File System (NTFS) NTFS esel sistema de archivos más usados en NT por varias razones, principalmente la seguridad. Sin embargo, puede haber casos en donde es necesario usar otros sistemas de archivos como por compatibilidad con otros sistemas en una NT Workstation con arranque dual. Otra ventajade NTFS es el soporte a particiones de hasta 16 hexabytes, muy superior a otros sistemas de archivos. Sin embargoel tamaño mínimpode una partición es de 5MB. Cybercursos.net Página 54 Propósitos de Diseño de NTFS . Proveer una mejor confiabilidad (suficiente para servidores de archivos y sistemas de misión crítica). . NTFS es un sistema de archivos recuperables porque mantiene un registro de las transacciones efectuadas en el sistema de archivos. Esta información puede ser usada para areintentar o deshacer una operación fallida debido a algún error, pérdidas de corriente, etc. . Además NTFS soporta Hot Fixing. Hot fixing es una técnica parala resolución de problemas.Por ejemplo, si un error ocurre por algún sector dañado, el sitema de archivos mueve la información aun sector diferente 216 y marca el sector como defectuoso, sin que la aplicación se de cuenta. . Soporta el modelo de seguridad deNT, permite configurar permisos y registro de auditoría sobre archivos y directorios. . Soporta los requerimientos de POSIX: distingue nombres con mayúsculas y minúsculas, registra la ÚHima hard links (dos nombres de archivos en diferentes directorios, hora de acceso al sistema y soporta apuntan a la misma información). Convenciones de Nombres en NTFS . Los nombres de archivos pueden ser de hasta 255 carácteres de longitud, incluyedo varias extensiones. . Se preservan las mayúsculas y minúsculas aunque NTFS no hace distinción. . Los nombres pueden contener cualquier caracter (incluyendo espacios)excepto: ?"/ \ < > * I : Consideraciones del Sistema de Archivos NTFS . La recuperación está diseñadaen NTFS para quelos usuarios no necesiten ejecutar utilerías para la recuperación de partición NTFS. . NTFS provee seguridaden archivos y directorios, pero no encripción de archivos. . No hay formade recuperar un archivo borrado. . NTFS consume más recursos que FAT o HTPS. . El tamaño mínimo recomendado de las particiones es de 50MG. . No es posible formatear discos flexibles con NTFS por el consumo de recursos. . La fragmentacion es enormemente reducida en particiones NTFS.NTFS siempre trata de localizar un bloque contiguo de espacio en disco lo suficientemente grande para almacenar el archivo completo. Una vez almacenado en disco. Para defragmentar el archivo, se recomienda copiarlo a otro disco y de al ahí disco original.AI copiarse al archivo original, NTFS iantentará localizar un bloque contiguo de espacio en disco. La siguiente tabla describe algunas características básicas de NTFS. Longitud del Nombre del Archivo y del Directorio 255 Tamaño del archivo16 EB (264 bytes) Tamaño de la partición 16 EB teóricamente (264 bytes), Atributos Solo lectura, Archivo, Sistema, Oculto y *extendidos Sistema de Directorios Arbol Binario Accesible a travésde Windows NT 217 DIFERENCIAS ENTRE WINDOWS NT Y UNIX COMO SERVIDORES DE MAIL Y WEB Realmente aunque aparentementebla instalación de un servidor mail o de web en NT es mas sencilla y rapida que en Unix a la larga, es mas efciente, "facil de administrar" y versátil un servidor Unix que NT esto es debido a que por sus habilidades administrativas, como son las utlizacion de quotas en Unix, los scripts shell de usuarios y otras aplicaciones. Por ejemplo el Apache que es el servidor WEB de linux viene Por ejemplo al dar de alta un usuario en un ambiente Unix es mas sencillo el configurar grupos, quotas, shell, home directory y otras cosas. Mientras que NT se tiene que bajar un programa adicional para manejar quotas de disco, otro mas para configurar scripts etc. Simplemente con un shell script podemos lanzar programas, añadir seguridad, configurar quotas etc, por Tan solo vea el siguiente script de ende El servidor Web y de Email es mas poderoso en Unix que en NT. NT comparado conun shell scriptde Unix ¿Porqué invertir en un sistema operativo que requiere entrenamiento y re-entrenamiento muy caro con cada nueva versión NT? Los administradores UNIX/Linux son muchosy generalmente m& capacitados técnicamente quesushomólogos NT (muchosadministradoresUNIXtienenconocimientospara codificar/programar, raramente encontradas en la nueva generación de "administradores NT"). 'Porqué malgastar cientos de dólares paraMS Exchange Server que, en algunas compañías, parece que sólo es capaz de manejar el correo de algunos cientos de empleados cuando puede utilizar el servidor de correo "Sendmail" que acompaña a Linux, un programa testado y probado capaz desoportardemandasde miles de empleados? Microsoft's IIS es una de las pocas cosas que acompañan actualmente a Windows NT. No posee ninguna cualidad especial o única que no se encuentre en otros programas servidores Web. No destaca ni en velocidad, popularidad ni en el número de conexiones concurrentes que puede soportar. Actualmente está siendo utilizado por: Compaq, Nasdaq, The National Football League, Exxon, y Tesco. Dadoel hecho que Microsoft debela mayoría de su éxito al hardware de bajo coste tipo PC, esto es, máquinas basadas en Intel usted podría pensar que su gran aliado debería utilizar IIS. Bien, ipues se equivoca de nuevo! www.intel.com utiliza Netscape FastTrack Server. 218 CONCLUSIONES Por lo anterior podemos resumir todolo antes mencionado en: COMPARACIóN DE WINDOWS NT Y UNIX Funcionalidad El sistema operativo UNlX puede hacer todo lo que hace Windows NT y más: multi usuario, pero esto puede provocar -A veces se considera a Windows NT como un sistema operativo confusión. Un Servidor NTvalida a un usuario autorizado, y una vez que el usuario está conectado ala red NT, lo Único que puede hacer es acceder archivos e impresoras. Un usuario de sólo NT puede correr aplicaciones especiales tipo cliente/servidor. -El sistema UNlX esmulti usuarios y los usuarios en UNlX pueden correr cualquier aplicación en el servidor. -El correo electrónico se ha convertido en una herramienta indispensable de comunicación. -En Windows NT setiene que adquirir un paquete de software adicional para configurar un servidor de correo electrónico. Muchas compañías usanMicrosoft Exchange Server(licencia para 25 usuarios $ 3,495 USD, 50 usuarios $ 4,859 USD). Sendmail (gratis). -El sistema operativo Unix viene con el programa Seguridad (password y permisos de archivos) y cuotas: -Windows NT utiliza NTFS para seguridad de archivos (a veces no lo usan) y aún carece de cuotas, para limitar el uso de disco a usuarios o grupos de usuarios. -Unix contempla seguridad y cuotas. Facilidad de configuración y capacidad de configurar al servidor sin deshabilitar el sistema. -Cualquier cambio ala configuración de NT requiere apagar el sistema y reinicializarlo (cambio de IP, gateway, modem, etc.). -En UNlX se pueden activar o desactivar drivers o dispositivos sin necesidad de reiniciar el sistema. Fiabilidad -Actualmente quizás la fiabilidad es preferible a la rapidez. Aunque el rendimiento depende enormemente de la plataforma hardware, el sistema operativo influye más en la fiabilidad. -Se dice que NT es un sistema operativo estable, pero esta afirmaciónno es muy precisa. Es cierto que NT es una gran mejora comparado con Windows 3.1 o Windows 95, pero dista mucho de alcanzar la estabilidad que ofrecen aúnlos sistemas operativos UNlXfreeware. -Pantalla Azul de la Muede. La pantalla que muestra unos números hexadecimales sobre un fondo azul. la única salida es reinicializar el sistema apagándolo. -El equivalente UNlX a la "Pantalla Azul de la Muerte" podría ser el denominado "kernel panic". Obviamente existe,. Aunquelos servidores UNlX fallan en ocasiones, son sucesos extremadamente raros. Si un servidor UNlX cae, la mayoría de las veces es debido a un fallo en el hardware de algún tipo. Cualquier software que provoque problemas en un entorno UNlX generalmente se da a conocer en un período de tiempo, a menudo en la forma de una bajada gradual del rendimiento del sistema, dando al administrador un amplio margen de tiempo para encontrar la fuente del problema, corregirlo, y 219 paradarrancar el proceso (raramente la máquina) que causó el problema. En general,se ha de parar a un servidor UNlXsólo en las siguientes situaciones: 0 Debido a un fallo del hardware, por ejemplo, un fallo de un disco duro; 0 La necesidad deunaactualizacióndelhardware; Una larga caída del suministro eléctrico ylos sistemas alternativos se han agotado; 0 El núcleo (kernel) ha de ser actualizado. -NT es propenso alos virus para plataformas INTEL. Los sistemas operativos de Microsoft siguen leyendo del MBR delos discos duros. NT puede ser afectado por virus diseñados hace 10 años para MS-DOS. -El equivalente ala Pantalla Azul de la Muerteen UNlX es elpdnico de kernel. Las caídas de sistema en UNlX son eventos raros, casi siempre se deben a fallos de hardware. En general un servidor UNlX se apaga debido dichos fallos, actualizaciones de hardware, apagones extensos, actualizaciones delkernel. Administración del Sistema -La afirmación de que NT es más fácilde administrar debido a su GUI (Graphical User Interface) le faltan argumentos. La ventaja de cualquier GUI sobre CLI (Command Line Interface) es de cuestionable. -NT viene con un GUI. No se puede trabajar a nivel de CLI. -UNIX puede trabajaren CLI. Tambien existe una variedad de GUI para cada sistema (OpenLook, X1 1, etc.) Rendimiento -La potencia de procesamiento depende principalmente del hardware. Decir que UNlX tiene mejor rendimiento que NT sería inapropiado, si comparamos sistemas de distinta arquitectura. En una misma plataforma,no existen formas para comparar Linux o FreeBSD contra NT.---Sin embargo hay consenso en que Linux o FreeBSD tienen mejor rendimiento que NT. Considerando quelos kernels de UNlX se confeccionan a las necesidades, y a veces sólo contienen lo necesario para el sistema, Linux o FreeBSD puden funcionarmás eficientemente que NT. Cualquier sistema operativo que requierade menos recursos vencerá a un sistema operativo inflado como sería NT. -UNIX no requiere de una interface gráfica como lo requiere NT. Es bien sabido que las gráficas requieren de mayor espacio de disco y memoria. Lo mismo sucede para archivos de sonidos, que parecen ser muy importantes para el sistema operativo deMicrosoft. Un ejemplo de rendimiento de un servidor UNlX acopladoelcon servidor WWW contra NT, son los siguientes registros de rendimiento: -NT: 1,878 operacioneslsegundo. Hewlett-Packard NetServer LXrPro 61200 de 4-CPU corriendo Microsoft IIS. -UNIX: 7,214 operacioneslsegundo. Silicon Graphics Origin2000 8-CPU corriendo Netscape Web Server. Linux vs. Windows NT Sewer 4.0 -Debido a quela plataforma que NT utiliza más es INTEL, escogemos al sistema Linux para realizar una comparación. 220 ." Sistema Operativo Gratis o $49.95 US (CD- Número de sistemas de archivo posibles 22 1 1O-Usuarios $1 129 US Enterprise Ed. 25-Usuarios Conclusión El sistema operativo UNlX seríala elección para sitios con presupuesto limitado o en corporaciones enormes que demanden servidores de varios procesadores y que requieran de sistemas operativos escalables. Una compañía pequeñao mediana, que tenga que correr procesos en tareas no críticas, que esté dispuesto a contratar administradores adicionales para operar el servicio de correo Exchangeo el Servidor de Información de Internet de Microsoft, que tenga presupuesto substancial para licencias de Microsoft "por servidor"o "por usuario", entonces NT seríala elección. El sistema Linux o FreeBSD pueden fácilmente rebasar el rendimiento y funcionalidad de una solución NT, realizarlo sobre una plataforma INTEL relativamente económica y cuyo costo sería $0.00, un precio que Bill Gates difícilmente puede mejorar. El sistema UNlX gana en definitiva. Ofrece una variedad de proveedores (no hay monopolio) Es escalable Hace uso delos recursos más eficientemente Permite la administración remota del sistema Ofrece la capacidad de realizar cómputo remotamente Posee capacidad de multiusuarios Existe una gran variedad de software Los estandares son independientes delos proveedores (POSIX) los usuarios Tiene control sobre el espacio de disco de No le afectan los virus de hace1O años diseñados para MS-DOS. En síntesis: Windows NT sólo brinda restricciones. Sólo corre en plataformas INTELo Alpha, no tiene CLI, unsólo GUI, sólo hay agentes de transferencia de correo comerciales, etc. Windows NT esestático, es decir no es posible construir un kernel apropiado. Microsoft se está convirtiendo en un monopolio, no en un standard. UNlX ofrece opciones. Corre en cualquier tipo de plataforma, trabaja con oCLI GUI, opciones de software comercial yfreeware, diversos proveedores a escoger. UNlX es dinámico, se puede configurar unkernel apropiado a nuestras necesidades. Windows NT vs. otros U N E I Entre los aspectos que se pueden utilizar para evaluar el rendimiento delos UNlX comerciales y el Windows NT, se consideran: Soporte 64-bits. Soporte de protocolos TCP/IP de red Internetllntranet. Fiabilidad y escalabilidad. Administración del sistema. lnteroperabilidad con PC's. ¿Que Sistema Operativousan algunas compañías? UNlX Amazon.com Digital UNlX Alpha Server2000. Boeing. HP-UX, IRIX, Solaris y algo de NT. Dallas Cowbovs. IRlX y UNlX System V Rel. 4.0. Dow Corning. Solaris. los Hotmail (Pertenece a Microsoft). Solaris, FreeBSD. Intentaron emigrar a NT, pero para ofrecer servicios a más de10,000,000 de usuarios, fué demasiado para NT. Servicio Postal de Estados Unidos. Cuentan con 900 sistemas Linux alo largo del E.U. para determinar automáticamente el destino dela correspondencia. Cada sistema consiste de5 Pentium Pro dual 200MHz o un sistema dual sencillo. Yahoo!. FreeBSD. GLOSARIO Backoffice.- Suite de aplicaciones creado por Microsoft BIOS.- (Basic Input OutPut) residente en memoria desolo lectura (Read Only Memory-ROM) podría decirse que es la unidad fundamental de entraday salida de una computadora entre sus misiones estánla de realizar un test de todo el equipo en cada proceso de arranque donde se examinan los elementos conectados y en que estado se encuentran como Disco duro, flopys etc., otra de sus misiones es la de hacer una interfaz entre el software de los niveles superiores y el hardware a través de una serie de rutinas, cada una de ellas con una función especifica. BUS.- Cable de 62 líneas, mediante el cual pueden cargarse en la memoria datos de la CPU y desde allí transportarse a la CPU . Por así decirlo es la autopista de los datos dentro de la PC . Este se controla y maneja desde la CPU. CISC Cliente Servidor Sistema de computadoras o aplicaciones en las cuales se tieneun programa o computadora que presta servicios (archivos, recursos, funciones, datos etc.) a otro programa o a una computadora que requierede un cierto servicios o recurso de otra . En un programa cliente servidor una aplicación solicita información o servicios de otro programa llamado Servidor siendo este último el que da esos servicios . En una red de computadoras hacemos mención de un ambiente en la cual, una computadora hace una petición por ejemplo de compartir una archivo, subdirectorio, impresora o hasta una aplicación completa. FAT.-(File Allocation Table ) Tabla de localización y/oasignación de archivos ,es el sistema 223 de archivos m á s sencillo ,ejemplo téngase un archivo detipo FAT consta en que sectores del disco duro (o del disquete) se encuentra cada parte de un archivo. Para ello FAT , divide el disco duro enbloques . El número de bloques es limitado y todos los bloques de un disco duro deben tener siempre el mismo tamaño . En discos duros grandes con solo una partición FAT se ofrece mucho espacio. Además los bloquesFAT grandes provocan errores de disco duro con facilidad, ya que utilizan una tabla de asignación de archivos encual la se indica el número en el cual inicia y termina un archivo así como una listade listas que contiene la secuencia de continuación de un archivo provocando que cuando unarchvo no es guardado correctamente se pierda su ubicación fisica (cadenas perdidas) o bien que en unsolo bloque de HDo de disco sea utilizadopor doso m á s archivos (vínculoscruzados), también en esta tabla se indicael número de sectoreslibres y defectuosos como segundo elemento el directorio donde aparecen informaciones referentes a los archivos existentes con sus nombres, direccionesy una serie de datos complementarios. A la vez los sistemas de archivos FAT hasta ahora imponían al usuario la limitante de 8+3 caracteres parael nombre de archivos y directorios. LAN-MANAGER .- Producto de Microsoft que permitía conectarvanas a computadoras en una plataforma Windows 3.1 o 3.1 1 o hasta en MS-DOS con redes propietariasde Microsoft sistemasUNIX ,OS/2 etc. HANDLE.- Índice de una tabla de objeto especifica de un proceso . Se utiliza para hacer referencia a un objeto abierto e incorpora un conjuntode derechos de acceso garantizadosal proceso que tiene el handle . También contienen una designación de herencia que determinasi el handle es heredado por los procesoshiio . Los programas utilizan los handles parareferirse a losobjetos cuando llaman aservicios de objeto . Hardware.- Parte fisica de una computadora, esdecir es la parte electrónica, o la cual lleva a cabo las operaciones electrónicas entre los diferentesprocesos que se llevan acabo,el hardware incluye desde la fhentede poder dela computadora hasta un módem,no dejandode incluir teclado yotros dispositivos de entraday salida de la computadora. HILOS.- Entidadejecutable que pertenece a un proceso (y solo a uno).Comprende un contador de programa, una pila de modo usuario, una pila de modo kernel y un conjunto de valores de registro. Todos los hilos de un proceso tiene igual acceso al espacio de direcciones de un proceso, los a handles de objeto, y a otrosrecursos. LOS hilos se implementan como objetos. 1PWSPX.- Intercambio de paqueteso mensajes entre rededintercambio de paquetes secuenciados (Internet work Packet Exchange/SequencedPacket Exchange). Protocolo de red estándar en entornos Novel1 Netware (acceso a recursos Netware mediante servicios especiales Netware en Windows NT). Memoria Extendida.Monousuario .- Sistema residenteen una sola máquinao computadora que solamente puedeatender a un usuario. Monotarea.- Sistema operativo residente en una sola computadora que solamente puede realizar una tarea a la ovez rutina y no podráatender otra petición de un usuario hasta que termine esta ultima tarea. m, MULT1TAREA.- Ejecución porparte de unprocesador de m á s de un realizando selección de contacto de uno a otro, y proporcionando la ilusión de que todos los h d se ejecutan simultáneamente. MULTITAREA Preemptiva o real .- Forma de multitarea en la cual el sistema operativo interrumpe periódicamente la ejecuciónde un hilo y ejecuta otros hilos que están esperando . Evita que un hilo monopolice procesador el y permite que seejecuten otros hilos. NFS.NetBIOSlNetBEU1.- Sistema de entrada básico dered (Network Basic Input/Output System). Interfaz de software "protocolo", para comunicaciones de red. Se emplea en las sencillas redes punto apunto, en las que las comunicaciones entre computadoras se realiza con menos 20 de comandos . Fue desarrollado parael ambiente de las redes MS-DOS por Microsoft, porlo que se le denomina protocolo el más simple para redesde computadoras personales .NETBEUI es la interfaz de usuario extendida Netbios (NetbiosExtendet User Interface) . Protocolo de red desarrollado por IBM para redes pequeñas . NETBEUI no tiene capacidad deencaminamiento POSIX .- La interfaz del sistema portátil para UNIX (POSIX, Portable Operating System Interfacefor UNIX ) es un 224 conjunto de normasde desarrollo por el IEEE y el ANSI para promover normas de interfazgenéricas en el entorno UNIX. En 1984 inicia el trabajo original ,el objetivo de POSIX fue la creación de un entorno de sistemas operativos y de unas aplicaciones portadles que se pudiesen transferir en diferentes plataformas . También se intentaba crear una estructura de información mediante la cual las aplicaciones compatibles con POSIX pudiesen intercambiar entre ellas aunque estuviesen en distintas plataformas . Posix defme unainterfaz común, pero permite la realización de plataformas especificas. Con Posix los desarrolladores pueden crear aplicaciones que se mueven fácilmentea otras plataformas y que trabajan con diversas estructuras de archivos. PROCESO.- División lógica dela labor de un sistema operativo . En WindowsNT comprende unespacio de direcciones virtuales, unprograma ejecutable, uno o más hilos de ejecución, algunas partes de las cuotas de recurso del usuario y los recursos del sistema que el S.O. ha reservado para los hilos del proceso . Esta implementado también como objeto. PROCESO HIJO.- Proceso creado por otro proceso denominado proceso padre . El proceso hijo hereda algunos o todos los recursos del proceso padre. PROCESO PADRE.- Proceso que ha creado otro proceso, denominado proceso hijo . El proceso hijo hereda alguno o todos los recursos del proceso padre. PROTOCOLO DE RED.-Conjunto de reglas y convenciones paraque 2 ó mas computadoras puedan comunicarse a través de una red decomputadoras y no son m á s que un conjunto deprogramas que interactúan entre sí para poder llevar a cabo una transferencia dedatos en forma óptimacon el mínimo de errores posibles y perdidas. REDES DE AREA LOCAL.-(LAN) Denominación para redes locales que actualmente se realizan mediante topologías T h n Ethernet o Twisted Pair esto se hace conectando dos computadoras o m á s siempre y cuando estas se encuentren próximas , en algunos casos local significa dentro de la misma habitación no edificio , en otros se refiere a computadoras ubicadas a varios metros de distancia. RISC SERVIDORES MULTIUSUAFUO o NO DEDICADOS.SISTEMA OPERATIVO .- Conjunto de programas para una computadora que proporciona un entorno en el cual pueden ejecutarse otra serie de programas desde otra computadora, permitiendo beneficiarse del uso del CPU, dispositivos de E/S tales como dnves, monitor y teclados , es decir se crea un ambiente virtual el cual es factible que un usuario común y comente pueda hacer uso de las mayoría deoperaciones de la computadora, ocultando los detalles de programación. TCP/IP.- Son las siglas de del Protocolo de Control de transporte (Transport Control Protocol), e IP Protocolo de Internet (Internet Protocol) . Cuando se combinan ambos tenemos TCPAP,esto es debido a que Internet se basa en una colección de protocolos cooperativos y complementarios . El conjunto de protocolos de TCP/IP incluye los protocolos de control de transporte e Internet. Token Ring .VFAT.-Sistema dearchivos virtual FAT de Windows95 y 97 la cual permite la escritura de nombres dearchivos con m á s de 8+3 caracteres el nombre de archivos ,sin embrago este no ha podido mejorar la seguridad y la estabilidad del sistema dearchvos ,además se produce una fragmentación muyrápida debido a que la información se escribe en los bloques FAT de todo el disco. 225 EXPERIENCIAS PERSONALESY ALREDEDOR DEL MUNDO La alternativa a Microsoft Sábado, 13 de noviembre de1999 PROGRAMAS LIBRES La alternativa a Microsoft Internet propiciael uso de programas de ((código abierto)), de libre difusión JUAN GONZALO MADRID.- Puede que el juicio más sonado en Internet -el que enfrenta a Microsoft y al Departamento de Justicia norteamericano- acabe diluyéndose ante la imposibilidad de cambiar las reglas dejuego que impone la ley del más fuerte. Pero,al menos, la instrucción deljuez Thomas Penfield Jackson está sirviendo para que los medios de información general se ocupen de lo que podría ser la revolución social del sigloXXI: el modelo de código abierto (open source) o de programas libres (free software). Imagen tomada enla Redacción de EL MUNDO de un escritorio con aplicaciones de código abierto (1 50 k). En un reflejo dela importancia que está adquiriendo este fenómeno, ha sido el propiojuez el que se ha ocupadode ello en su escrito de hechos probados, aludiendo al entorno de programas de libre distribución en general y a GNUlLinuxen particular. Actualización constante Así, en el apartado de ((Sistemas operativos marginales)), el documento explica que ((Linux es un sistema operativo de código abierto creado y actualizado constantemente por una red mundial de programadores que contribuyen a su desarrollo de forma desinteresada))y, cabe añadir, gracias a la existencia de Internet. Jackson empleael carácter no comercial y ((embrional)) de este entorno informático para refutar la tesis de queno existen barreras de entradaen el mercado de sistemas operativos, esgrimida por Microsoft en su defensa. Es más, el juez afirma que el modelo de código abierto ({puede aumentar, en la práctica, el número 226 de aplicaciones que funcionan en sistemas operativos para ordenadores personales distintos delos de Microsoft)). No obstante, concluye el escrito, ello no puede disolver la barrera que impide que dichos sistemas puedan competir con Windows. Una afirmación conla que no estarán de acuerdolos partidarios de este entorno, cuyadifusión ha sido posible gracias ala licencia pública GNU, también conocida como GPL, que permite la libre difusión y modificación de un programa informático. La culpa de todoello la tiene Internet, cuyos pioneros(los creadores del protocolo TCP/IP) decidieron hace 30 años quela mejor formade depurar y mejorar una tecnología era exponiendo sus entrañas e introducir las mejoras aportadas por todala comunidad de usuarios. Esta filosofía esla que ha permitido que en Internet se pueda conseguir, de forma gratuita, desde un potente servidor web (Apache) hasta herramientas de desarrollo y lenguajes de automatización (gcc, PHP, Perl, Python) o paquetes de aplicaciones de gestión (Linux-Kontor), sin olvidarlos entornos gráficos (Gnome, KDE). El ingeniero norteamericano Quinn Coldiron relató en 1997 su odisea cuando decidió instalar Windows NT en una empresay reemplazarlo después con aplicaciones de tipo GNU/Linux. Entonces,la combinación de sistema operativo, servidor de correo y base de datos, entre otros productos de 8.000 Microsoft, costaba más de tres millones de pesetas. Con aplicaciones de código abierto, apenas pesetas, el coste del CD-Rom). Experiencias de este tipo pueden contrastarse con la llamada Guía Práctica de Linux para los puntos débiles del entorno (desde las Ejecutivos, obra de Ganesh Prasad. En ella se revisan tanto dificultades para su instalación hasta la escasez de aplicaciones) como sus puntos fuertes, cuya valoración, en último término, depende de la curiosidad del usuario por conocer si hay alternativa alos programas de Microsoft. OPINION Un sueño... ¿real? Por JESUS M. GONZALEZ-BARAHONA 13 de noviembre de 1999 Linux en la sociedad cubana. Linux es un sistema que puede tener un impacto particular en el proceso deinformatizaciónde la sociedadcubana ya quenoestáatadoaningunacompañía comercial. Linux constituye una alternativa económica por su carácter libre y una buena plataforma de desarrollo por su carácter abierto. Adicionalmente es una plataforma de lanzamiento mucho más justa queotrossistemasoperativoscomerciales,puesofreceunaopcióndeparticipaciónmucho más democrática que depende del talento, la creatividad y el trabajo de quienes lo usen. AI trabajar conunaconcepcióndesistemaabiertoofreceunaoportunidad infinita deadicióndevalor agregado.Además filosóficamente, unsistemaconstruidoydesarrolladosobrelabasedela cooperación y la solidaridad entre sus usuarios en todo el mundo, de la ayuda entre las personas que gratuitamente laboran por hacerlo mejor cada día, constituye un paradigma de proyecto común. En los nuestropaís,donde el trabajoencolectivo,lasolidaridady la colaboraciónentretodos interesados en hacerlo avanzar hacia nuevas metas son vitales para el desarrollo de la sociedad, 227 Linux mas que un injerto tecnológico se inserta como una componente totalmente orgánica. El Proyecto Linux Cuba se propone promover a nivel nacional el uso de Linux así como la creación de un conjunto de recursos que facilitenel trabajo y crecimiento de la comunidad de usuarios Linux en nuestro país. Entre estos recursos figuran un sitiowww ( www.linux.cu ), un sitio ftp ( ftp.linux.cu ),con mirrors de las más importantes distribuciones y recursos acerca de Linux en español de la Internet que podrán ser accedidos libre y fácilmente desde dentro de Cuba. Un servidor irc y un servidor de listas de discusión ( linux-l ). Como parte del proyecto se prevé la impartición de conferencias, cursos , talleres y exposiciones acerca del sistema, así como facilitar el acercamiento entre los diferentes grupos o desarrolladoresindividualesdispersosporelpaís.Además se proponecoordinar reuniones de carácter nacional en las que pueda lograrse un intercambio mas vivo entre los participantesdelproyecto.Unpaísquehainvertidotanto en la formacióndesusrecursos humanos,quehapracticadolasolidaridadyquehasoñadocon una sociedad justa ymoderna tiene en el Linux una herramienta tremenda. Desde Infomed, Red Telemática de Salud en Cuba, hacemos un llamado a todos cuantos estén interesados en formar parte de este esfuerzo para de estaformacontribuiraldesarrollodenuestrasociedad.OtrosGrupos deLinuxeros Bibliografía Windows NT Interno 3era Edición Uníx 4.2 BSD Enciclopedia de redes www.redhat.com www.todolinux.com www.microsoft.com www.microsft.com/latam/technet.html http://www.unm.edu/-dave/security/appc.html http://www.radium.ncsc.mil/tpep/libra~/rainbow/5200.28-STD.html 228