Você está na página 1de 24

3) REACTOS

3.1) INTRODUCCION ReactOS (React Operating System) es un sistema operativo de cdigo abierto destinado a lograr la compatibilidad binaria con aplicaciones de software y controladores de dispositivos hechos para Microsoft Windows NT versiones 5.x en adelante (Windows XP y sus sucesores). 3.1.1) PROYECTO REACTOS ReactOS es un avanzado sistema operativo gratuito de cdigo abierto que provee una implementacin creada de cero de un sistema operativo compatible con Microsoft Windows XP. ReactOS tiene como meta lograr compatibilidad binaria con aplicaciones y drivers de dispositivos para sistemas NT (XP, 2003) usando una arquitectura similar y proveyendo una interfaz pblica completa y equivalente. ReactOS es el modelo ms completo de un sistema operativo como Windows disponible libremente. Por lo tanto, los programadores podrn aprender mucho estudiando el cdigo de ReactOS o inclusive participando en el desarrollo del mismo. ReactOS tiene y va a continuar incorporando caractersticas de nuevas versiones y cuando sea posible definir tecnologa de punta en sistemas operativos. En resumen, ReactOS trata de correr tus aplicaciones y tus dispositivos, un sistema operativo gratis para todos! Por favor, recuerden tener en mente que ReactOS 0.3.14 todava est en estado alpha, lo que significa que no est completo an y no se recomienda para uso diario.

3.2) ORIGEN DE REACTOS? 3.2.1) DE FREEWIN95 A REACTOS En 1996 un grupo de programadores y desarrolladores de software libre comenzaron un proyecto llamado FreeWin95 el cual consista en implementar un clon de Windows 95. El proyecto estuvo bajo discusin por el diseo del sistema ya habiendo desarrollado la capa compatible con MS-DOS, pero lamentablemente esta fue una situacin que no se complet. Para 1997 el proyecto no haba lanzado ninguna versin, por lo que los miembros de ste, coordinados por Jason Filby, pudieron revivirlo. Se decidi cambiar el ncleo del sistema compatible con MS-DOS y de ahora en adelante basarlo en uno compatible con Windows NT y as el proyecto pudo seguir adelante con el nombre actual de ReactOS, que comenz en febrero de 1998, desarrollando las bases del kernel, algunos drivers bsicos y ha continuado con la incorporacin gradual de las caractersticas que ya se encuentran en Windows. 3.2.2) ETIMOLOGA El nombre ReactOS fue acuado por el fundador del proyecto Jason Filby, un desarrollador de Oracle desde Durban, Sudfrica. El trmino "OS" hace referencia a "sistema operativo" (operating system, en ingls), y el trmino "React" (Reaccin) se refiere a la insatisfaccin del grupo con la posicin de monopolio de Microsoft, as como -la reaccin a- dicha situacin. 3.3) QU ES REACTOS? 1

ReactOS es un sistema operativo Libre y de Cdigo Abierto basado en la arquitectura Windows NT, incluyendo soporte para los drivers y aplicaciones existentes y una alternativa al sistema operativo dominante entre usuarios domsticos y servidores. Quiz sera importante comenzar diciendo aquello que ReactOS NO ES. No es un encapsulador montado sobre Linux, como lo es WINE. No tiene intencin de competir con WINE; de hecho, la parte de modo de usuario de ReactOS est prcticamente toda ella basada en WINE y nuestros equipos han cooperado codo con codo en el pasado. ReactOS tampoc es "otro sistema operativo". No trata de ser una tercera alternativa, como SkyOS o cualquier otro sistema operativo. No se persigue que la gente elimine Linux y use ReactOS en su lugar; ReactOS es una alternativa para los usuarios de Windows que quieran un reemplazo de Windows que funcione tal y como lo hace Windows. A pesar de que el actual uso y disponibuilidad del cdigo fuente de ReactOS est destinado a programadores para expandirlo y mejorarlo, no se necesita ser un slido cientfico para utilizarlo, y en su versin definitiva ser un amigable sistema operativo. Si has usado Windows anteriormente, te encontrars con un entorno familiar en ReactOS. El aprendizaje, si es que lo hay, debera ser mnimo, ya que ReactOS duplica muchos de los elementos del sistema grafico (apariencia) de Windowstales como: applets, paneles de contriol y cajas de dilogo (Windows 2000/XP/2003). ReactOS est principalmente escrito en C, con algunos elementos, como el Explorador de ReactOS, escritos en C++. El proyecto se est portando a las arquitecturas de procesador ARM y AMD64, y en parte implementa la funcionalidad de la API de Windows. Este ltimo cuenta con la asistencia mediante la inclusin de partes de la capa de compatibilidad Wine para sistemas operativos tipo Unix, pero otra funcionalidad se lleva a cabo por los propios desarrolladores. Sin embargo, el progreso se ha visto obstaculizado por la falta de desarrolladores experimentados. La auditora del cdigo es amplia para proteger el proyecto contra los posibles problemas legales, de tal manera que la implementacin de la API de Windows se realiza nicamente por medio de un proceso completo de sala limpia de ingeniera inversa. Esto ha permanecido en vigor despus de afirmaciones hechas en 2006, por un desarrollador de primera y un tercero en incidentes separados, de que el proyecto contena cdigo assembly desensamblado de Windows, o archivos directamente originarios de Microsoft. Tales denuncias no han tenido consecuencias legales adversas al proyecto, y el desarrollo contina hasta hoy. ReactOS se ha conocido por su informacin sobre las indocumentadas APIs de Windows y, en general, como el software de cdigo abierto para el reemplazo de Windows. El objetivo del proyecto, como se cita a s mismo, es permitir a los usuarios de Windows renunciar por completo al uso de software comercial de propiedad sin tener que cambiar a un sistema operativo que no es compatible a nivel binario con Windows, como GNU/Linux. Sin embargo, la falta de patrocinadores corporativos y desarrolladores dedicados han limitado sus esfuerzos para realizar este trabajo. El objetivo en la actualidad es desarrollar ReactOS hacia un punto en el que sea capaz de hacer funcionar la mayora de las aplicaciones y drivers para Windows "out of the box." Esto no quiere decir que ReactOS acabe ah; mientras se aadan ms caractersticas a Windows, nuestros desarrolladores tratarn de incorporarlas a futuras versiones de ReactOS. Una vez queel nivel de compatibilidad sea logrado, incluso se pretende mejorar ReactOS mas alla de sus races de Windows. Estos cambios podran incluir desde la apariencia externa del SO, hasta la implementacin de funciones y ventajas adicionales. Por ejemplo, uno de nuestros objetivos es incorporar compatibilidad POSIX (Portable Operating System Interface de UNIX), al igual que con otros servicios basados en Windows. Tambin podra ser tan simple como soporte nativo mltiples escritorios sin embargo, en lugar de requerir un powertoy (coleccin de aplicaciones informticas 2

provistas por Microsoft para el sistema operativo Windows. No estn integradas en Windows, ya que su fecha de lanzamiento fue posterior al del SO. Tampoco existe un soporte tcnico especfico para la coleccin ya que no estn sometidas a las mismas pruebas que el resto de componentes del SO.). 3.3.1) POR QU REIMPLEMENTAR NT? En primer lugar, el Windows que la gente conoce es realmente tan solo una parte del moderno sistema operativo Windows. Normalmente esto implica el subsistema Win32, una capa sobre el ncleo NT, que proporciona la interfaz para el usuario y las aplicaciones. "NT est ah fuera, conocido como XP y Vista" La mayora de la gente cree que 'NT' es 'WinNT 4', cuando en realidad el trmino NT se refiere a la serie NT, desde la versin 3 pasando por NT5 (2000, XP, 2003) hasta NT6 (Vista). La arquitectura NT fue diseada por un equipo dirigido por David Cutler, desarrollador principal de VMS. Les llev ms de 4 aos combinar lo mejor de UNIX, VMS y OS/2 y crear la arquitectura NT. 3.3.2) Y QU HAY DE UNIX? "Para todo SO hay un igual y un contrario, ReactOS" MacOS X, Linux, BSD y otros derivados de UNIX comparten una herencia comn basada en un diseo de un sistema operativo bsico que data ms de tres dcadas, y que a lo largo del tiempo se ha convertido en un SO complejo. Encarnaciones modernas como Mac OS X colocan una interfaz grfica sobre el ncleo UNIX, para ocultar los detalles del sistema y centrarse en principiantes dejando afuera a muchos usuarios avanzados. Las caractersticas ms avanzadas no pueden ser accedidas desde la interfaz grfica. Prcticamente todas las variantes de UNIX mantienen alguno de los defectos de diseo originales, y normalmente no hay compatibilidad entre versiones. Tericamente, hay unos pocos estndares UNIX como POSIX, pero en la prctica stos son antiguos y slo cubren el SO y el entorno de terminal. Otros, como el Linux Standard Base con frecuencia no son implementados. Como no hay estndares de interfaz de usuario ni APIs estndar, los usuarios han de usar aplicaciones en linea de comandos o pelearse con las interfaces grficas. Muchos derivados de UNIX usan el estndar de-facto X-Window para salida grfica, que probablemente posee uno de los peores diseos en la historia del software. An as, los derivados actuales de UNIX intentan hacer uso de innovaciones recientes, y algunas de ellas ya poseen caractersticas importantes, como listas de control de acceso. Al contrario que UNIX, ReactOS ha sido diseado para resultar familiar con el entorno de Windows. Puede hacerse de todo a travs de la conocida interfaz de Win32 y los usuarios avanzados pueden automatizar tareas con scripts o usar la consola. 3.3.3) COMPATIBLE "Cambia tu SO, no tus programas!" El proyecto ReactOS reimplementa un sistema operativo novedoso y abierto basado en NT. Por suspuesto, con l se provee un subsistema WIN32, compatibilidad con drivers de NT y un puado de aplicaciones y herramientas tiles. ReactOS combina la potencia y fortaleza del ncleo 3

NT - conocido por su extensibilidad, portabilidad, fiabilidad, robustez, rendimiento y compatibilidad con la compatibilidad con Win32. 3.3.4) SEGURO "Todo est en la configuracin" Aunque hay escritos en contra, NT es seguro por diseo. Fue el primer sistema operativo de uso general con una implementacin apropiada de un modelo de seguridad muy flexible basado en listas de control de acceso. Los ltimos sistemas de Redmond basados en NT, especialmente XP, tienen mala reputacin por su configuracin inicial de seguridad dbil; principalmente, para facilitar la transicin desde Win9x de usuarios y aplicaciones antiguas. Tan solo esta decisin invalid muchas de las caractersticas de seguridad de NT. ReactOS incorporar las configuraciones por defecto apropiadas. ReactOS ha sido diseado para ser muy seguro; no comparte defectos de seguridad comunes en otros sistemas operativos. "Virus, Malware? Un problema menor." Ms en detalle, los virus informticos (que son programas normales) no son tan difundidos actualmente. La mayora del software maligno son scripts cuyo objetivo princupal son programas de red comunes, como navegadores o programas de correo y software que tiene integradas capacidades de scripting como Office. Obviamente, los sistemas ms usados y con ms usuarios son ms proclives a ser atacados que sistemas menores como Macintosh y Linux. 3.3.5) LIGERO Brevemente, ReactOS est diseado para ser poderoso y ligero. Puedes pensar que ser ligero como lo fue Win95, una interfaz de usuario consistente y un pequeo conjunto de herramientas tiles. Por contra, ReactOS ofrece mucho ms, una experiencia actualizada, costruido desde cero tomando como base el slido ncleo NT. 3.3.6) ABIERTO "Gratis y a cdigo abierto" ReactOS es Software Libre, el cdigo fuente del sistema est disponible y licenciado bajolicencia GNU GPL. ReactOS no te llama a casa o monitoriza tu uso, ni contiene softwareespa. Otros conocidos competidores son famosos por estas prcticas. Convivir con otros sistemas operativos tiende a ser una relacin de amor-odio, con gente a favor de uno y otros a favor de otros. El proyecto ReactOS cuenta con una gran comunidad la cul es bien apreciada. 3.3.7) FIABLE "Abre tus Windows a la libertad" De hecho, ReactOS ha sido escrito de cero desde 1996, una slida implementacin de NT, y un sistema operativo fiable y robusto para teareas que van desde micro computadores incrustados a computadores personales, estaciones de trabajo y clster de servidores, mainframes 4

y superordenadores. ReactOS incorpora muchas decisiones de diseo de otras familias como UNIX, VMS, OS/2 y desde luego NT, el objetivo es que sea 'la' nueva plataforma que sirva a todas. 3.3.8) RENDIMIENTO ReactOS es ligero y rpido y superar a otros sistemas operativos en varias facetas. 3.3.9) PORTABLE "ReactOS El sucesor de XP que la gente buscaba" El diseo del sistema operativo ReactOS proporciona compatibilidad entre familias de procesadores, como Intel x86 e incluso compatibilidad entre diferentes arquitecturas de procesadores, como CISC y RISC. Hay un nico corazn del SO, el ncleo; el portar ReactOS a otras arquitecturas 'tan slo' incluye el hardware abstraction layer (HAL, capa de abstraccin de hardware), la parte del SO de ms bajo nivel, que habla directamente con la plataforma hardware. 3.3.10) EXTENSIBLE ReactOS es flexible y extensible por diseo. ReactOS es probablemente uno de los sistemas operativos ms verstiles, gracias especialmente a su ncleo NT y su naturaleza 'open source'. ReactOS puede ser extendido con la ayuda de los llamados "subsistemas" para proporcionar soporte a aplicaciones antuguas de otras plataformas. Por ejemplo, un subsistema POSIX dotara de compatibilidad con muchas aplicaciones para UNIX. 3.3.11) BASADO EN OBJETOS ReactOS no es un sistema orientado a objetos en el sentido ms estricto de la palabra, pero utiliza objetos para representar los recursos internos del sistema. Los objetos en software son una combinacin de instrucciones y datos que modelan el comportamiento de las cosas, reales o imaginarias, que existen en el mundo. "La metfora de los ficheros de UNIX es de 1970!" Los sistemas UNIX se basan en que todo, incluyendo dispositivos como impresoras, dispositivos de almacenamiento, teclados, y monitores aparentan ser ficheros regulares tanto para los programadores como para los usuarios. Esto simplifica muchas tareas rutinarias, y es un componente clave en la extensibilidad del sistema. Esta "metfora" tiene varias connotaciones, y se sabe que es un cuello de botella de los sistemas operativos tipo UNIX. ReactOS toma nota de esta metfora y la extiende. Utiliza una metfora de objeto que se introduce en la propia arquitectura del sistema. No slo considera objeetos todo aquello que UNIX considera ficheros, sino que tambin lo hace con procesos, hilos, segmentos de memoria compartida, la base de datos del registro e incluso los permisos de acceso. 3.4) POR QU REACTOS? 5

Mucha gente en los foros se pregunta: por qu debera usar ReacOS? o Por qu alguien iba a necesitar ReactOS? o Por qu no ayudar a desarrollar Wine en lugar de esto? o Por que no usar Linux con wine?. Tenemos respuesta para todas estas preguntas, pero no es ninguna palabra magica. Nombramos aqui algunos problemas clave:

Hay muchos sistemas operativos *nix en la calle, eso esta muy bien. Sin embargo tienen distino proposito (se ajustan perfectamente al mercado de los servidores, pero aun no han conquistado el de los escritorios, y algunos factores juegan en contra de las alternativas a Windows que existen). Actualmente no hay ningun sistema operativo que implemente el diseo de arquitectura del kernel de la familia de Windows NT (GNU/Linux es la mejor comparacin: Linux empez como un clon de Minix y Unix (convirtiendose tarde o temprano en un reemplazo a Unix), y ReactOS empezcomo un clone de Windows NT). Linux+Wine nunca sern un reemplazo total de un sistema Windows. No solamente porque es Linux (despite there are some really user-friendly Linux distros out there), y no solamente porque muchos usarios vern la transici a Linux/BSD dificil, sino tambin debido a las decisiones de diseo e implementacin de las arquitecturas de Linux y Wine, quue impiden un 100% de compatibilidad. A pesar de que Linux soporta muchos tipos de hardware, Windows es an la plataforma dominante para los fabricantes de dispositivos. Existen intentos de vencer esta situacin (como el encapsulador NDIS para controladores de las tarjetas de red de NT, hay rumores acerca de soportar drivers de vdeo de NT, NTFS nativo para soportar el sistema de ficheros de NT), pero ReactOS lo resuelve desde el primer da debido a su diseo ser compatible con los driver y aplicaciones actualmente disponibles. Hay mucha gente a la que no les gusta el comportamiento de *nix o no est de acuerdo con las convenciones usadas. Para ellos, Linux, BSD, yMac OS X no son una opcin, incluso antes de que la compatibilidad entre aplicaciones y hardware entrara en juego. Un sistema operativo debera dar al consumidor lo que desean en lugar de exigir la conformidad del usuario. Incluso con WINE, ests corriendo un sistema operativo que se comporta de forma distinta a Windows, tanto a nivel de usuario como a nivel de sistema. compatibilidad hacia atrs. Esto es algo vital para algunas personas y empresas, pero la filosofa de desarrollo de Linux y el proyecto GNU no lo considera una prioridad. La familia Windows siempre tiene un modo de asegurar una API estable y compatibilidad hacia atrs. Por su diseo, ReactOS tambin seguir esta filosofa con aplicaciones, existentes y futuras, diseadas para la familia de Windows NT. No hay planes para liberar Windows bajo una licencia compatible con GPL (al menos, el equipo de ReactOS no es consciente de ellos).

Finalmente, ReactOS ofrece otra alternativa, para la gente que est harta de las polticas de Microsoft pero no quieren abandonar el familiar entorno, diseo arquitectnico, millones de aplicaciones de software y miles de controladores de hardware. 3.5) DESARROLLO DE REACTOS ReactOS est principalmente escrito en C, con algunos elementos, tales como ReactOS Explorer y la pila del sonido, escritos en C++. El proyecto se basa en MinGW para la compilacin, y se contribuye a su desarrollo a travs de la presentacin de los parches a sus componentes. 6

Los desarrolladores tienen por objeto hacer que el ncleo sea ms compatible con Windows NT 5.2 (Windows Server 2003), y el API de modo de usuario con Windows NT 6.0 (Windows Vista), para aadir soporte para ms aplicaciones y hardware. El soporte para DirectX se lleva a cabo a travs de ReactX, una reimplementacin de la empresa. El renderizado 2D acelerado por hardware se hace de forma nativa, mientras que la funcionalidad de dibujo se redirige a OpenGL como una solucin temporal. El desarrollo est limitado por la falta de gente con experiencia. A partir del 24 de marzo de 2010, la entrada de ReactOS en Ohloh , lleva a un "equipo activo de desarrollo muy grande", que lista 37 desarrolladores que han contribuido por un perodo de ms de 12 meses y un total acumulado de 97 usuarios actuales y pasados que han contribuido con cdigo al proyecto a travs de Subversion desde su creacin. Por el contrario, hay 1000 de los desarrolladores que trabajaron solamente en Windows 7, organizados en 25 equipos, cada equipo con un promedio de 40 desarrolladores. Adems, en su presentacin en Hackmeeting 2009 en Miln, Michele C., desarrollador de ReactOS, seal que la mayora de los desarrolladores aprenden sobre la arquitectura de Windows mientras se trabaja en ReactOS sin tener ningn conocimiento previo. 3.5.1) DEPENDENCIAS ReactOS hace uso del cdigo de otros proyectos donde sea posible, de manera que los desarrolladores puedan evitar la duplicacin de funciones disponibles y centrarse en la compatibilidad binaria con Windows. A) WINE: ReactOS usa porciones del proyecto Wine para que pueda beneficiarse de sus avances en la aplicacin de Win32 API. NTDLL, USER32, KERNEL32, GDI32 y componentes de Advapi no pueden ser utilizados debido a sus diferencias con la arquitercura de ReactOS, pero las otras partes del cdigo pueden ser compartidas entre ambos proyectos. Los componentes que no estn disponibles a partir de Wine se desarrollan por separado.

Diagrama de la arquitectura de ReactOS simplificada, con las dependencias de Wine indicadas con el logo de ste.

Por otra parte, la rama ARWINSS fue creada como un medio alternativo para mejorar el apoyo de USER32 y GDI32 a travs de una implementacin alternativa de la API Win32. Considerando que el subsistema original Win32 de ReactOS fue modelado creca despus de su equivalente en Windows, ARWINSS combina la arquitectura de ese subsistema con la aplicacin correspondiente en Wine. Con este fin, ARWINSS utiliza las bibliotecas de Wine y USER32 y GDI32 con algunos 7

cambios para obtener ms ventaja en la compatibilidad de Wine con el software existente. ARWINSS tambin permite al usuario utilizar un servidor X remoto en lugar de una pantalla local.27 B) OSKIT / FREEBSD: en una breve entrevista con network performance daily, art yerkes, entonces un desarrollador para secret level, mencion que import la parte tcp del puerto de oskit de la pila de red de freebsd, como parte de su esfuerzo para limpiar y mejorar la funcionalidad de red. otras partes de la pila de red de reactos, como las implementaciones de los protocolos por paquetes, como ip, son desarrolladas internamente. C) OTROS: FreeType se utiliza en la presentacin de las fuentes en la interfaz grfica de usuario, mientras que Mesa 3D proporciona renderizado OpenGL. Los conductores Serial ATA son proporcionados por UniATA. Desde la ltima actualizacin para el controlador UniATA, el 10 de septiembre de 2008, UniATA ha sido mantenido por los mismos desarrolladores de ReactOS. El proyecto tambin ha experimentado con el uso de la biblioteca de FullFAT en la reescritura del Sistema de Archivos Instalable FAT. 3.5.2) ARQUITECTURAS SOPORTADAS ReactOS soporta varias arquitecturas:

IA-32. Xbox (Regresin). PowerPC. (Detenido) ARM (Arranque parcial). AMD64 (Arranque parcial).

Windows NT 4.0 fue portado a otras arquitecturas de IA-32 como MIPS, Alpha AXP y PowerPC, y los derivados de NT han sido tratados de manera similar, como Windows XP portado a AMD64, y Windows Server 2003 portado a AMD64 e Itanium. En vista de esto, los desarrolladores de ReactOS lo han portado parcialmente a las arquitecturas AMD64 y ARM. El soporte para la Xbox, una variante de la IA-32, se aadi a travs de una arquitectura especfica de la HAL, aunque sta, junto con el soporte para PowerPC, ya no es mantenido activamente. 3.5.3) USABILIDAD El equipo de desarrollo de ReactOS considera que el software se encuentra en fase alpha; es decir, que no est completo y no se recomienda para su uso diario. El ncleo est incompleto, y slo unas pocas aplicaciones de Windows funcionan sin problemas. Sin embargo, el sistema operativo se considera bastante estable, con tiempos de instalacin y arranque muy cortos. En el futuro, la serie 0.4x tambin ser marcada como alpha. La serie 0.5x ser marcada como beta, lo que significa que ya estar apta para su uso diariamente, pero que se ver sometida a un riguroso control de calidad. 3.5.4) AUDITORA INTERNA El 27 de enero de 2006, el equipo de ReactOS decidi suspender temporalmente el acceso a los archivos del sistema operativo para los no desarrolladores, despus de una reunin para verificar la afirmacin de que el proyecto habra sido contaminado con el cdigo con derechos de 8

autor de Microsoft. Sin embargo, al ser abordados por NewsForge, Microsoft no quiso hacer comentarios sobre el incidente. Siendo el proyecto de desarrollo de ReactOS un software gratuito y de cdigo abierto, la demanda provoc una reaccin negativa de la comunidad del software libre. En particular, Wine prohibi a algunos desarrolladores de ReactOS contribuir a su cdigo, citando preocupaciones sobre el origen de sus contribuciones. La afirmacin fue hecha el 17 de enero de 2006 por el ahora ex-desarrollador Hartmut Birr en la lista de correo de desarrolladores de ReactOS (ros-dev), afirmando que contena un cdigo de ReactOS derivado del desmontaje de Microsoft Windows. El cdigo que Birr disputa implic la funcin BadStack en syscall.S, as como otros casos no especificados. Comparando esta funcin con los binarios desmontados de Windows XP, Birr argument que la funcin BadStack fue simplemente copiar y pegar de Windows XP, ya que eran idnticos. Alex Ionescu, el autor del cdigo, afirm que si bien el binario de Windows XP en cuestin fue desmontado y estudiado en efecto, el cdigo no se limita a copiar-pegar, sino a ser reimplementado. La razn por la cual las funciones son idnticas, segn Lonescu, era porque slo haba una forma posible de implementar la funcin. En un comunicado publicado en su pgina web, ReactOS cita diferentes definiciones legales de lo que constituye la sala limpia de ingeniera inversa como una de las causas del conflicto, ya que algunos pases, incluyendo Estados Unidos, requieren que la reimplementacin del cdigo desensamblado est escrita por alguien que no sea la persona que ha desmontado y examinado el cdigo original, mientras que en otros pases se permitirn que ambas tareas sean realizadas por un mismo individuo. En consecuencia, ReactOS aclar su Declaracin de Poltica de Requisitos de Propiedad Intelectual de la sala limpia de ingeniera inversa conforme a la ley EE.UU. Una auditora de cdigo interno se llev a cabo para asegurar que slo la sala limpia de ingeniera inversa era utilizada, y todos los desarrolladores fueron obligados a firmar un acuerdo comprometindose a cumplir con las polticas del proyecto de ingeniera inversa. Los contribuidores del desarrollo no se vieron afectados por estos eventos, y todo el acceso a las herramientas de desarrollo de software se restableci poco despus. En septiembre de 2007, con la realizacin de auditora a punto, el estado de auditora fue retirado de la pgina web de ReactOS. Aunque la auditora se realiz, los detalles especficos no se hicieron pblicos, ya que slo fue un esfuerzo interno para asegurar que el cdigo era producido legalmente. En un incidente separado, Betov, desarrollador de RosASM, afirm que la mayora de los archivos sospechosos no estaban en la lista de archivos seleccionados para la auditora. Sin embargo, ReactOS afirma que los archivos en disputa se obtuvieron de Sanos. Mientras tanto, desde el cierre inicial, el cdigo fuente de ReactOS ha quedado disponible y abierto para su inspeccin. 3.6) FICHA TECNICA REACTOS

Escritorio de ReactOS

Desarrollador Fundacin ReactOS www.reactos.org Informacin general Modelo de desarrollo FLOSS Lanzamiento inicial 25 de enero de 2004 ltima versin estable 0.3.14
7 de febrero de 2012; hace 8 meses

ltima versin en pruebas Trunk Builds Escrito en C, C++ Tipo de ncleo Hbrido Interfaz grfica por defecto ReactOS Explorer Mtodo de actualizacin Re-instalacin Licencia GNU GPL, LGPL, y Licencia BSD Estado actual Alpha en desarrollo Idiomas Multilinge En espaol 3.6.1) VERSIONES DE REACTOS Muchas herramientas de desarrollo entre API y ABI estn listas para un nivel alto de desarrollo y una interfaz bsica en GUI tambin lo est. ReactOS tambin posee ReactOS Explorer, una interfaz de usuario similar al ya conocido Explorador de Windows. COLOR SIGNIFICADO Rojo Sin soporte Verde Versin actual Azul Versin futura
VERSIN FECHA DE LANZAMIENTO NOVEDADES

10

0.2.0 0.2.2 0.2.5 0.2.8 0.3.0 0.3.1 0.3.2 0.3.3 0.3.4 0.3.5 0.3.6 0.3.7 0.3.8 0.3.9 0.3.10 0.3.11 0.3.12 0.3.13 0.3.14 0.4.0 0.5.0 1.0.0

25-01-2004 27-04-2004 02-01-2005 29-10-2005 27-08-2006 10-03-2007 NUNCA LANZADO 12-09-2007 22-01-2008 30-06-2008 06-08-2008 04-11-2008 04-02-2009 26-04-2009 05-07-2009 16-12-2009 20-10-2010 22-03-2011 07-02-2012 NO PUBLICADO NO PUBLICADO NO PUBLICADO

Primer lanzamiento, con una interfaz grfica de usuario funcional. Solo correccin de errores. Deteccin de VMWare, reescritura de CSRSS. Primera versin que oficialmente soporta creacin de redes. Administrador de programas incluido, inicio de la reescritura del kernel. Nunca lanzado. Mejoras en kernel y win32k. Reescritura del soporte de registros, cliente de escritorio remoto y Plug and play. Solo correccin de errores. Soporte RTL. Mejoras en x86-64; MSVC, nuevos stacks. Se introduce PSEH y soporte multiparticin HDD en LiveCD. Se establece el mnimo de 24MB de RAM, mapeo del hiperespacio ms rpido, soporte inicial de sonido. Soporte inicial SATA, soporte USB para teclado y mouse, clon de Microsoft Paint, inicial MSVC. Reescritura de kdcom; fuentes chinas y coreanas; actualizaciones de compatibilidad, mejora del sistema de sonido. Reescritura de trap handler; reescritura del manejo del temporizador y mensajes; soporte de NMI; soporte ensamblado side-by-side assembly; soporte parcial de manejo de servicios de emergencia. Mejoras en la gestin de memoria para un mejor control de sonido y visualizacin. Soporte para temas de XP, WiFi, ACPI y reescritura del shell32 Alpha. Beta. Listo para el uso diario.

3.6.2) REQUISITOS DEL SISTEMA REACTOS


Procesador compatible con x86, Pentium o superior. 24MB de RAM (se recomienda 128MB). Disco duro IDE de al menos 150MB. Particin de arranque en formato FAT16/FAT32. Adaptador de grficos VGA de 2M. Unidad de CD-ROM. Teclado estndar. Ratn PS / 2 compatible con Microsoft Mouse o ratn compatible de serie.

3.6.3) OBTENER REACTOS El software ReactOS incluye distribuciones binarias y de cdigo fuente de la ltima 11

publicacin de ReactOS. Esto incluye el kernel, los distintos subsistemas y algunas aplicaciones bsicas. Para informacin acerca de la instalacin mira la Gua a la instalacin y el correspondiente artculo en la Wiki. A) PAQUETES PARA EL USUARIO FINAL CD de Instalacin: Con el CD de instalacin puedes instalar ReactOS en tu ordenador. Esta imagen contiene una versin de depuracin de ReactOS que incluye el depurador del kernel (KDBG). Live CD: El Live CD permite que pruebes ReactOS sin instalar nada en tu disco duro. Preinstalado en QEMU: Esta descarga incluye la versin actual de ReactOS preinstalada en una mquina virtual QEMU. Se incluye tambin una versin para Windows de QEMU, para que puedas probar ReactOS fcilmente. Preinstalado en VMware: Este paquete contiene una mquina virtual VMware ReactOS preinstalado. Preinstalado en Virtual Box: Este paquete contiene una mquina virtual Virtual Box con una versin preinstalada de ReactOS. Cartula CD (versin 0.3.1) - PNG Cartula CD (versin 0.3.1) - PDF Cartulas de CD/DVD de ReactOS, disponibles en formato PNG y PDF. B) PAQUETES PARA DESARROLLADORES CDIGO FUENTE: Este paquete contiene el cdigo fuente completo de esta versin de ReactOS.

con

COMPILADOR (recomendado): Entorno de Desarrollo de ReactOS (RosBE) EMULADORES: a veces no es posible correr reactos bajo hardware real. Los emuladores son programas que lo permiten bajo mquinas virtuales en tu sistema operativo. VMware: Web de VMware VirtualBox: Web de VirtualBox QEMU: Web de QEMU VERSIONES EN DESARROLLO: Descarga versiones en desarrollo (Archivos ISO de cada revisin). Para una lista completa de descargas visita la pgina de descargas de Sourceforge. Si tienes problemas para acceder a SourceForge.net, puedes utilizar un mirror para la descarga. 3.7) IMPACTO Varias personas han reconocido a ReactOS y las implicaciones de tener una alternativa viable de cdigo abierto para sustituir Windows: 12

En su columna para la Free Software Magazine, David Sugar seal que ReactOS podra permitir el uso de aplicaciones en funcin de las versiones anteriores de Windows, cuyas APIs han sido desechadas. As mismo, reconoci su potencial para ampliar la base total del despliegue del software libre, y como un recurso para los desarrolladores que desean saber sobre las indocumentadas APIs de Windows en el curso de escritura de aplicaciones porttiles. Viktor Alksnis tambin se ha reunido con el actual coordinador del proyecto Aleksey Bragin quien realiz una presentacin y demostracin del proyecto, que muestra ejecutndose en ReactOS Total Commander y Mozilla Firefox. John C. Dvorak, columnista de PC Magazine, seal que la arquitectura de Windows NT se ha mantenido prcticamente igual hasta ahora, por lo que es un candidato ideal para su clonacin, y cree que ReactOS podra ser "una amenaza mayor que Linux para el dominio de Microsoft". De hecho, Aleskey Bragin ha mencionado en un comentario al semanario alemn Der Spiegel que ReactOS est dirigido a usuarios de Windows que quieren renunciar al uso del software comercial de propiedad sin tener que cambiar a Linux. Sin embargo, ReactOS an presenta problemas. En respuesta a la columna de Dvorak, la periodista Dana Blankenhorn de ZDNet technologi seala que la falta de patrocinadores corporativos y socios ha prestado el proyecto inocuo a Microsoft. Haciendo eco de esto, Thom Holwerda de OSNews clasifica a ReactOS en una familia de sistemas operativos aficionados que se mantienen slo por pequeos grupos de desarrolladores que trabajan en su tiempo libre, y que no cuenta con el apoyo financiero que tienen los principales sistemas operativos, ni con el legado de otros sistemas ms antiguos y utilizados, como RISC OS. 3.7.1) PROYECTOS RELACIONADOS

ReactOS comparte algunas dependencias con Wine. Otros proyectos relacionados son Samba / Samba TNG, que implementan LSASS, SAM, NETLOGON, Colas de impresin de Windows y otros servicios de red. Un proyecto ms distante a nivel arquitectnico es el del Kernel de Linux unificado que pretende ser compatible a nivel binario con aplicaciones y controladores de Microsoft Windows y Linux. Este ncleo importa todas las principales caractersticas del kernel de Windows en su equivalente en Linux para soportar aplicaciones y controladores de Windows. NDISwrapper recre parcialmente el ncleo de Windows NT dentro del kernel de Linux que permite ejecutar modernos controladores de Windows dentro de la caja del ncleo NT. NDISwrapper consiste en un API NTOSKRNL, un controlador bsico de WDM, y una serie de envoltorios de llamanas a Windows, tales como Wireless / NDIS / USB / PnP para Linux API. NDISwrapper no se limita a ejecutar los conductores slo NDIS; otros controladores WDM se pueden utilizar siempre y cuando el controlador no llame a una API de Windows no implementada. Independientemente pero no simultneamente con el proyecto NDISwrapper, Bill Paul, de Wind River Systems ha desarrollado un sistema similar, conocido como Proyecto Evil o El NDISulator, para FreeBSD. Desde entonces, ha sido portado a NetBSD, pero no a OpenBSD, debido a la ltima poltica de anti-blob binario. El NDISulator carece de algunas funciones de ndiswrapper, como el soporte USB. NTFS-3G, controlador de NTFS para Linux, Mac OS X, FreeBSD, NetBSD, OpenSolaris, QNX, Haiku y otros sistemas operativos. El proyecto WS se basa en el cdigo de ReactOS. 3.7.2) COMPATIBILIDAD FUTURA 13

La compatibilidad del proyecto ReactOS se divide actualmente en dos objetivos: compatibilidad a nivel de kernel con Windows 2003 Server SP1, y compatibilidad a nivel de Win32 con Windows Vista (NT 6.0). Esto es as debido a que el kernel no cambia muy seguido, mientras que Win32 cambia ms rpidamente. Anteriormente los objetivos de compatibilidad han sido Windows NT 4.0, Windows 2000 (NT 5.0), y Windows XP (NT 5.1). 3.7.3) SOPORTE PARA APLICACIONES DE OTROS SISTEMAS La arquitectura de ReactOS permite tener subsistemas, as como lo hace la arquitectura de Windows NT. Un subsistema es una implementacin de APIs de otro sistema operativo, permitiendo as ejecutar aplicaciones de otros sistemas operativos en ReactOS (subsistemas para Java, OS/2, DOS y otros).

14

4) CONCLUSION
ReactOS promete ser una completa propuesta para aquellos que desean un sistema operativo libre y de cdigo abierto totalmente compatible con las aplicaciones Windows existentes, manteniendo a nivel de usuario una apariencia muy similar y sin las complicaciones (especialmente a nivel de instalacin y configuracin) presentadas por Linux 4.1) REACTOS FUNDRAISER 2012 El Proyecto ReactOS ha realizado varias "Campaas para Recaudar Fondos" en el pasado, gracias a ellas y a donaciones no-monetarias, se ha conseguido desarrollar y levantar una gran infraestructura industrial que est siendo mejorada continuamente. Las donaciones tambin han ayudado a pagar los viajes a los desarrolladores para promocionar ReactOS en diversas conferencias y eventos. Estas presentaciones han sido cruciales para captar una mayor atencin sobre el proyecto y han ayudado a obtener nuevas donaciones. Este ao queremos hacer algo diferente,algo incluso ms grande. ReactOS est muy cerca de comenzar su Beta Testeo y estamos constantemente mejorando el propio proceso de desarrollo. Sin embargo para muchos de los principales desarrolladores, ReactOS es un hobby en el cual ayudan en su tiempo libre cuando las obligaciones se lo permiten. Todos los desarrolladores son excelentes y sus contribuciones mejoran significativamente la calidad de ReactOS. Por primera vez en nuestra Historia, la Fundacin ReactOS busca ir ms all de las usuales pequeas campaas de donativos orientadas a pagar los gastos de infraestructura. Nos gustara recaudar dinero para contratar formalmente tantos desarrolladores como sea posible, para que trabajen en el proyecto que ellos creen, el proyecto en el que han estado trabajando, transformando el Hobby en un Trabajo para que as puedan dedicar todo su tiempo a ReactOS. Los significativos avances que el proyecto ha vivido gracias al trabajo realizado durante el Google's Summer of Code 2011, ha demostrado que la mejor forma de acelerar el desarrollo de ReactOS es pagando directamente a los desarrolladores para que contribuyan a ReactOS. Por ello, desde el proyecto estamos intentando contactar con nuestros seguidores y con todos aquellos que apuestan por nosotros para hacerlo realidad. Juntos podemos hacer de ReactOS un nuevo competidor y una verdadera alternativa para los usuarios de todo el mundo. ReactOS es un esfuerzo por crear un reemplazo libre para Microsoft Windows compatible con el hardware y el software existente! ReactOS 0.3.14 se encuentra bajo desarrollo (fase alpha) y no est preparado para uso diario. Puedes ayudar a ReactOS corriendo la voz, donando algo de dinero a la Fundacin ReactOS, dedicando algo de tu tiempo o contribuyendo de alguna forma (parches, traducciones, foros, etc.).

15

6) ANEXOS
6.1) CONVERSACION CON DESARROLADORES EN FORO DE REACTOS (Solo se colocaron los comentarios significativos, adems toda la informacin fue suministrada en ingles por lo que ha sido traducida por el grupo) LRIVAS (18-09-2012, 11:35): Lo que me interesa conocer es la manera como Reactos asigna a Procesos o Hilos los recursos memoria, CPU, perifericos, informacion, etc. Mi idea es presentarlo en la universidad para que mis compaeros y profesores lo conozcan (a traves de una exposicion a realizarse en un mes). Por lo que agradeceria cualquier informacion al respecto que puedan brindarme para tal fin B4DC0D3R (21-09-2012, 2:10): Creo que nadie te ha contestado porque la respuesta es muy complicada. El libro "Windows Internals", probablemente en su 4 5 edicin, sera un gran lugar para comenzar. Tambien considero como una buena opcin el libro de Charles Petzold "Programming Windows" el cual te dara una base de fondo, ya que la arquitectura Intel (x86 / x64) y el sistema operativo tienen que trabajar juntos para la gestin de memoria y las interrupciones. Despus de eso, cuando sepas con claridad qu es lo que buscas, puedes descargar el cdigo fuente de ReactOS para ver como nuestro SO realiza estos procedimientos y luego compararlo con Windows. Pero en base a tu pregunta, me tomaria ms de un mes para poder explicarlo. LRIVAS (21-09-2012, 11:54): No tengo tanto tiempo, lo que necesito saber es: Cmo este SO asigna los recursos a los procesos? Si pueden ayudarme al respecto se los agradeceramos mucho, necesitamos presentarlo en la universidad a finales del prximo mes, el resto de la informacin podemos obtenerla por nuestra cuenta. Por favor podran hacer lo posible para ayudarnos? VICMARCAL (21-09-2012, 12:58): En primer lugar, ReactOS es un clon de cdigo abierto de Windows. Esto significa que el gestor de memoria, Cache y todos los procesos relacionados con hilos y recursos estn diseados para ser compatibles con Windows, en caso contrario si manejamos la memoria de una manera totalmente diferente podramos terminar teniendo serias incompatibilidades de aplicaciones y hardware. Las aplicaciones esperan que el SO funcione de la misma manera en que lo hace Windows, por lo que buscamos ofrecer una manera com patible con Windows. As que, bsicamente la respuesta a su pregunta: "Cmo se gestiona ReactOS recursos, hilos y procesos?" seria: "De la misma forma que Windows hace". Por lo menos desde el punto de vista de diseo: HAL, Subsystems, MM, CC, Win32k, etc. Mi duda ahora, sin animo de ofender, es entonces: Saben ustedes como Windows asigna y usa sus recursos? De ser asi, ya tienen su respuesta. Nosotros no usamos mecanismos diferentes, sino unos similares a los usados por Windows server 2003. Ademas, como Windows no es un SO de cdigo abierto no podemos, a fin de preservar la legalidad de nuestro proyecto, ni siquiera mirar su cdigo interno, por lo que procuramos implementar su funcionamiento de la forma mas cercana posible en base a lo que sabemos acerca de su comportamiento. En cuanto a documentacin b4dc0d3r te ha indicado algunos buenos libros al respecto, asimismo la creacin de pruebas adecuadas nos dara todas las pistas necesarias para aprender como trabaja Windows internamente. Aunque tu pregunta, me parece muy amplia, ya que para nosotros podra significar: Podrias mostrarnos como es creado y destruido internamente un hilo en ReactOS? , Cmo asigna ReactOS los bloques de memoria? tambien, Cmo es la paginacin de Memoria en ReactOS? 16

e incluso, Cmo ustedes manejan los apuntadores en ReactOS? y para responder cualquiera de esas cuestiones necesitaramos varias paginas de un libro, consideramos que no bastara con una entrada rpida en un blog. Por ello si pudieran indicarnos de la manera mas precisa posible que informacin es la que realmente les resulta mas importante, podramos una vez delimitada adecuadamente la pregunta presentarle la mejor y mas resumida respuesta posible LRIVAS (22-09-2012, 11:52): Primeramente, gracias por su ayuda, su respuesta nos ha dado una mejor idea acerca del SO ReactOS, por ahora solo necesitamos saber: Como es creado y destruido internamente un hilo en ReactOS? y Cmo asigna ReactOS los recursos de memoria? Creo que eso sera suficiente para completar nuestra exposicion, no necesitamos nada demasiado detallado, solo una idea bsica para luego nosotros encargarnos de su desarrollo posterior, de todos modos voy a consultar al profesor al respecto. ANGELUS (22-09-2012, 12:24): Tambien podran revisar las exposiciones y documentos que hemos realizado para presentar ReactOS en algunos importantes eventos (FOSDEM, Chemnitzer Linux Tage, Imaginatica,...). Esto podra ser muy til para la preparacin de su exposicion. Por favor, revisa esta pagina: http://svn.reactos.org/svn/press-media/trunk/Events/, donde podras encontrar la informacin al respecto, no se si requieras registrarte VICMARCAL (24-09-2012, 1:52): 6.1.1) CREAR-DESTRUIR HILOS EN REACTOS Cuando una aplicacin Windows solicita crear un nuevo hilo, es usada una funcin perteneciente a winapi llada CreateThread(). En la pagina MSDN (http://msdn.microsoft.com/enus/library/windows/desktop/ms682453%28v=vs. 85%29.aspx) all puedes encontrar como las aplicaciones pueden llamar (enviar parmetros a) al API de Windows para crear un nuevo hilo. CreateThread es una funcion codificada en el archivo Kernel32.DLL. Microsoft ya la ha codificado, por lo que el desarrollador de aplicaciones solo debe hacer el llamado y listo. Como puedes imaginar, la funcin CreateThread es propia de Windows y su cdigo no esta disponble para el publico. Que pasa exactamente cuando la aplicacin llama a la funcin CreateThread? Nadie sabe. Nosotros solo podemos tratar de adivinarlo o estudiarlo de manera legal. Cmo podemos lograr esto? Sabemos el objetivo del API, los parametros que utiliza, e incluso algunos errores que se deben devolver como se explica en el documento de MSDN. Tambin hay libros disponibles sobre el sistema NT (como Windows Internal X Edicin). Agregamos algunas de pruebas (rostests y winetests), que consiste, bsicamente, en enviar al API de un conjunto de parametros diferentes y comprobar los valores devueltos .. y listo: Hecho! As que cuando una aplicacin quiere crear un nuevo hilo, llama a la funcion CreateThread(). Realmente a la aplicacin "no le importa" si se ejecuta en la parte superior de ReactOS, emulador Wine o Windows. Slo espera que CreateThread() realize su trabajo correctamente. Entonces, ReactOS bsicamente esta enfocado en implementar una funcin CreateThread() compatible, que acepte la misma cantidad y tipo de parmetros (en el mismo orden).Esta es colocada dentro del Kernel32.dll de ReactOS. En resumen: una versin de Codigo Abierto para ReactOS totalmente compatible de la funcin CreateThread() de cdigo cerrado original de Microsoft. La gran diferencia es que en ReactOS la funcin CreateThread() es totalmente de abierta, pueden ver su cdigo en la siguiente pagina: http://doxygen.reactos.org/d0/d85/dll_2win32_2kernel32_2client_2thread_8c_a178fa87b1da6553 17

2ff01f9faf3298c1d.html (Doxygen es una herramienta realmente buena que puede ayudarte a saber como ha sido codificada nuestra funcin CreateThread, all ustedes pueden llegar tan profundo como quieran. Solo deben seleccionar el nombre de la funcin, el cual es su link, para que les muestre el cdigo que la implementa. Puedes terminar revisando otras funciones relacionadas como: CreateRemoteThread, NtCreateThread NtQueryInformationThread. Para descubrir como han sido implementadas. Mientras mas profundo llegues, ser mas difcil segir. Puedes incluso pasar del modo usuario al de kernel. Buena suerte! 6.1.2) ASIGNACION DE LA MEMORIA EN REACTOS Hay diferentes formas de asignar la memoria. GlobalAlloc, LocalAlloc y HeapAlloc son las funciones que en ultima instancia se encargan de asignar memoria de un mismo bloque. En el siguiente link: http://msdn.microsoft.com/ enus/library/windows/desktop/aa366533%28v=vs.85%29.aspx exsiste un articulo muy interesante respecto a las diferencias entre ellos y otras maneras de asignar la memoria denominado Comparing Memory Allocation Methods (Comparando Metodos de Asignacion de Memoria). Asi mismo, las funciones GlobalAlloc y LocalAlloc son implementadas como contenedores que llaman a la funcin HeapAlloc utilizando un identificador de pila predeterminado del proceso, segn indica el documento correspondiente de MSDN. Esto brinda una importante pista a los desarrolladores de reactOS al saber la relacin existente entre ellos. En trminos mas simples, esto significa que las funciones GlobalAlloc() y LocalAlloc() de Microsoft llaman a HeapAlloc(). Entonces, En ReactOS las funciones GlobalAlloc() and LocalAlloc() llaman a HeapAlloc() para realizar las tareas? Puedes revisar el cdigo de ReactOS correspondiente a estas funciones gracias a Doxygen! El cdigo fuente de la funcin LocalAlloc() de ReactOS puede ser encontrada aqu: http://doxygen.reactos.org/db/dbb/winbase_8h_a48dea1c9b15579f042e4cd2 db91d8926.html#a48dea1c9b15579f042e4cd2db91d8926 donde podran apreciar que esta funcin no llama a HeapAlloc() para llevar a cabo la tarea a travs de ella, sino que usa la funcion RtlAllocateHeap para asignar memoria. Mientras que el cdigo fuente de la funcin GlobalAlloc() de ReactOS se encuentra en: http://doxygen.reactos.org/db/dbb/winbase_8h_a4 a975479e850693f95e122aa6f0db8db.html#a4a975479e850693f95e122aa6f0db8db donde tambin se usa para el manejo de la memoria la funcin RtlAllocateHeap en lugar de HeapAlloc() de Microsoft. Gracias a la informacin de referencia proporcionada por MSDN, tenemos una guia acerca como microsoft manipula internamente la memoria a travs de las funciones GlobalAlloc() y LocalAlloc(). Pero, curiosamente, ReactOS parece no estar utilizando esa gua en su implementacin de dichas funciones!! Recuerda: la gua dice que las funciones GlobalAlloc y LocalAlloc de Microsoft llaman a HeapAlloc() para realizar sus tareas! Quizas en este punto ustedes piensen: Sera que ellos estan tratando de reinventar la rueda? Por qu no seguir el mismo camino que Windows gracias a esa maravillosa pieza adicional de informacin? Bueno ... Veamos ms de cerca a nuestras funciones ReactOS! Que pasa si buscamos HeapAlloc en Doxygen? Pues aparecer lo siguiente: http://doxygen.reactos.org/d7/dff/lzexpand_8c_a6538f4e4ad1604ab998356e736e5be91.html# a6538f4e4ad1604ab998356e736e5be91 http://doxygen.reactos.org/d0/db5/dll_2win32_2kernel32_2wine_2res_8c_a6538f4e4ad1604ab 998356e736e5be91.html#a6538f4e4ad1604ab998356e736e5be91 http://doxygen.reactos.org/d0/db5/dll_2win32_2kernel32_2wine_2res_8c_a6538f4e4ad1604ab 998356e736e5be91.html#a6538f4e4ad1604ab998356e736e5be91 18

Notaran que en todos estos links aparece el mismo codigo: Code: Select all. #define HeapAlloc RtlAllocateHeap Lo cual significa que para nosotros HeapAlloc y RtlAllocateHeap son sinnimos en la mayora de los casos (Lo cual asegura su compatibilidad). En otras palabras: cuando la funciones GlobalAlloc() y LocalAlloc() de ReactOS llaman a RtlAllocateHeap realmente esta llamando a HeapAlloc, tal como se indica en MSDN! Entonces, nosotros no estamos reinventando la rueda y estamos usando esta informacin. RtlAllocateHeap es la base de estas funciones y puede ser en: http://doxygen.reactos.org/d8/d68/lib_2rtl_2heap_8c_ a28159ea98c98066d74d699413ec0416d.html#a28159ea98c98066d74d699413ec0416d. All puedes encontrar las funciones internas usadas para asignar una porcin de memoria en la pila. Si ustedes son lo suficientemente valientes pueden intentar seguir cmo esas funciones a travs de sus enlaces para averiguar como llevan sus tareas. De hacerlo van a terminar en nuestro amado Administrador de memoria, por su puesto, cuanto ms profundo vayan, ms difcil sera. Desconozco el nivel de profundidad con el que se supone deben hacer su exposicin, pero si quieren entender en profundidad los conceptos acerca de Memoria Virtual, Manejo de memoria, pilas y otros relacionados les recomiendo remitirse a algn buen libro de Sistemas Operativos 6.2) FAQ DE REACTOS Contiene informacin sumamente importante acerca de este SO 6.2.1) REACTOS EST BASADO EN MICROSOFT WINDOWS? No! ReactOS consiste slo en la licencia GNU GPL (General Public License) y en el cdigo fuente con licencia compatible con GPL. 6.2.2) REACTOS EST BASADO EN LINUX/UNIX? No! ReactOS no est basado en UNIX/Linux. Est escrito desde cero. 6.2.3) REACTOS ES LEGAL? S. Es completamente legal. Los desarrolladores no han tenido acceso al cdigo fuente de Windows. Han usado documentacin sobre sistemas operativos Windows disponible pblicamente. Han hecho vaios tests para entender como trabaja Windows. De hecho, ReactOS hace lo mismo que Windows, pero no exactamente de la misma forma, ya que no tienen el mismo cdigo fuente. Todo el cdigo en ReactOS est bajo licencia GNU GPL (General Public License). 6.2.4) POR QU NTFS NO EST SOPORTADO EN REACTOS? NTFS es muy difcil de implementar. La nica implementacin casi completa es NTFS-3g (FUSE), que no es un driver de nivel de ncleo. Las razones son: NTFS es un sistema de ficheros muy complejo. No est documentado. Por esta razn es an ms complejo el crear una implementacin. No se asegura una compatibilidad total con Windows en circunstancias inusuales, ni con versiones futuras de Windows. 19

Puedes encontrar discusiones exahustivas acerca de este punto en los foros de ReactOS para ms detalles. NTFS podra ser implementado en futuras versiones de desarrollo de ReactOS. Por favor, s paciente.

6.2.5) NO ME GUSTA LA GUI DE REACTOS! POR QU NO USAN ALGN OTRO SHELL? Cuando ReactOS est ms completo sers libre de usar cualquier otro shell alternativo. Pero, por compatibilidad, necesitamos un shell tipo Explorer. Tu requerimiento no cambiar nada 6.2.6) POR QU UNA APLICACIN MA NO CORRE EN REACTOS? ReactOS est en fase alpha y no se recomienda para uso diario. Muchas aplicaciones no funcionan (correctamente) porque muchas llamadas a la API simplemente no han sido implementadas an. Esta puede ser una de las razones por las cuales ese programa no funciona. 6.2.7) POR QU REACTOS? POR QU CLONAR MICROSOFT WINDOWS? En primer lugar, ReactOS no es un clon de Windows. ReactOS es un sistema operativo compatible con los drives y aplicaciones de Microsoft Windows. Algunas de las razones para su desarrollo son las mismas que para el desarrollo de Linux (clon de cdigo abierto de Unix?) Brevemente, Linux es un gran sistema operativo, pero no es la solucin para todos. Hay mucha gente a la que le gusta Microsoft Windows, pero se sienten frustrados con las polticas de Microsoft en varios asuntos. La familia de Microsoft Windows 9x est basada en DOS, y comparte muchas de sus vulnerabilidades, lo cual es la principal razn why Microsoft Windows has such a bad name. Sin embargo, la familia Windows NT tiene un diseo slido. No todo es perfecto, pero sin acceso al cdigo fuente, no hay forma de arreglarlo, por lo que un sistema operativo compatible debe ser escrito desde los cimientos. 6.2.8) POR QU NO AYUDAN A DESARROLLAR WINE/LINUX EN LUGAR DE ESTO? Esta es una pregunta muy comun, por lo que tambin est incluida en las FAQ de usuarios (y una respuesta tcnica se da en preguntas frecuentes de desarrolladores). ReactOS trabaja conjuntamente con Wine, y ambos proyectos se benefician el uno del otro. Tenemos varios desarrolladores en ambos proyectos que trabajan con problemas de compatibilidad entre los dos proyectos. Nuestra visin es que Linux + Wine nunca puede ser un reemplazo completo a Microsoft Windows. ReactOS tiene, potencialmente, un mayor grado de compatibilidad especialmente con los drivers para Microsoft Windows - que WINE no contempla. 6.2.9) BAJO QU PROCESADORES CORRER REACTOS? Actualmente ReacctOS slo soporta la arquitectura de procesadores x86, si bien se est pensando en hacer una versin para PowerPC. ReactOS correr bajo procesadores Intel Pentium x64, Intel Xeon x64, AMD Athlon x64 y AMD Opteron en el modo 32 bits, pero el modo 64 bits de estos procesadores ahora mismo no est soportada. Mira la base de datos de compatibilidad para una lista de controladores de dispositivos soportados. 6.2.10) CUNDO ESTAR LISTO? 20

Primeramente has de definir qu debera ser ReactOS capaz de hacer antes de considerarlo "listo". Puesto que esta defnicion puede variar enormemente dependiendo de la persona, la pregunta no puede ser contestada completamente. Una cosa s es segura: ReactOS continuar siendo desarrollado, ya qu esiempre habr necesidad de mejora. Para ms informacin, visita la pgina de plan de futuro de ReactOS.

6.2.11) QUIERO PROBAR REACTOS SIN PONER EN RIESGO MI INSTALACIN ACTUAL. PUEDO TESTEARLO DE ALGUNA OTRA MANERA? Claro, puedes probar ReactOS bajo hardware virtual. Puedes testearlo enQemu, para lo cual hay paquetes disponibles en la pgina de descargas. De esta forma podrs correr ReactOS en una ventana sin abandonar tu sistema operativo. Sin embargo, dado que Qemu es un emulador, ReactOS correr mucho ms lento a como lo hara bajo hardware real. Otros emuladores deberan ser capaces de correr ReactOS tambin, y se sabe que ReactOS corre en al menos Bochs, VMWare, VirtualPC y QEMU. si sabes de otras mquinas virtuales que lo soporten, por favor enva un e-mail a la lista de correo de desarrollo. 6.2.12) POR QU NO PERMITIR A MIS EMPLEADOS QUE ALOJEN VUESTRA WEB GRATIS? Gracias por la oferta, pero no. Las cosas pueden cambiar dentro de tu compaia y entonces podramos o bien optar por pagar religiosamente una cantidad X o ir a otro sitio. Con la configuracin actual, tenemos acceso drecto a la mquina, y el ancho de banda no es un problema, si bien el hardware necesta mejoras (si te gustara donar hardware para esta causa, contacta con uno de los coordinadores de ReactOS). 6.2.13) NO PUEDO INICIAR SESIN. PONE QUE YA LA HE INICIADO. Se est trabajando en este problema. Sin embargo, a modo de "parche", usa el enlace Olvidaste tu contrasea? y cmbiala; tu antigua sesin ser eliminada y podrs iniciarla de nuevo con la nueva contrasea. Tras esto, recuerda cambiar la opcion de "multisesion" en tu perfil, lo que te permittira iniciar sesion multiples veces. 6.3) CURRENT COMPONENT STATUS Detalla el estado actual de los componentes de este SO
Name General Website localization Operating localization system See RosCMS (permissions needed) or ask appropriate language maintainer. Depends on language. Ask appropriate language maintainer. See Compatibility Database Current Status

Software compatibility Win32 Subsystem

21

Win32 DLLs

See Testman reports Support for User mode printer drivers: unimplemented. Text/font system: needs complete rewrite. DIB code: mostly implemented, could need optimisation in some places. Mouse pointer: missing alpha support. Region support: interface improvements needed, ROS specific structures to be deprecated. Pens: missing support for geometric pens. Brushes: missing support for driver managed hatch brushes. GDI handle manager: rewritten in r51470. User handle manager: needs to be fixed to work more like Windows. Bitmap code: DIB sections are very broken, needs lots of fixing.. Line Drawing: needs full rewrite. Coordinate transfomation: possibly to be moved to usermode. In a rather good shape, needs further development in terms of adding more features and fixing existing. We switched to the NT-compatible booting method with r43273. Old bootmethod has been removed in r52491. In a process of a soft rewrite, resulting in a functional equivalent of NT's (2003's) memory manager, without made up ROS-specific implementations and assumptions. Nearly perfect. Functionally equivalent to 2003's OB. Tested code, works very good. Experienced only bugfixes during the last two years. Stays as it is for now, adapting to the changing memory manager. There exist three rewrites: No-Cc (a version of the kernel which does no caching at all, very slow); cache-manager-rewrite, started long time ago, but still occasionally maintained in a working condition; arty-cc by Art Yerkes, totally new Cc with a good, separated from Mm architecture, WIP. Needs a rewrite of a file system driver (fastfat), test it against windows 2003. Started in r38693 Completely missing (not to count a very simple stubbed IFS driver). It would make sense to use NTFS 3g from Linux and develop an own driver, also should be developed against Windows 2003. Support in the kernel is missing for a good/known to work driver. Supports all driver operations. However, the functional logic is not always the same as in Windows. Implementation is also still very different from Windows PNP. A complete rewrite of the kernel part is planned in the future. Not planned at all, it's a Win9x thing. Pretty good shape overall, missing Metafile support. Relies heavily on win32k. Completely shared with Wine, relies on GDI. Uses software rendering by default, via Mesa3D ICD driver. API is almost complete, only few wgl* functions are missing. Can load various ICD drivers and works fine on WinXP too. D3D9, D3D8 & DDraw APIs are supported via WineD3D - wrapper translating DirectX functions to OpenGL. Is a class driver for the audio driver subsystem. MIDI support is missing. HW testing needed for port driver implementation (IPortWavePci & IPortWaveRT). Portcls / sysaudio also need testing & bugfixing for WaveIn (audio recording).

Win32k

Core Bootloader Kernel Memory manager (MM) Object manager (OB)

Common Cache (CC) File system support FAT32 NTFS Ext2 Driver support PNP manager VXD 2D/3D Graphics GDI GDI+ OpenGL ReactX Sound Portcls

22

Sysaudio Wdmaud Kmixer

Handles access to the audio port drivers by managing the device interfaces. Needs to map multiple audiostream to a virtual audio pin in kmixer. Portcls / sysaudio also need testing & bugfixing for WaveIn (audio recording). Is a kernel mode component of wdmaud.drv . Implements the Wave / Mixer / MIDI API. Needs MIDI APIs implemented and WaveIn support + Mixer support. Performs mixing / conversions of streams. Currently very poorly implemented. Needs Kernel FPU float saving support before more work can be done.

6.6) COMPARACIN DE SISTEMAS OPERATIVOS A continuacin se presenta informacin general, tcnica y el ambiente grfico de algunos sistemas operativos.
IDENTIFICACION DEL SO Sistema operativo Creador Ao de primera distribucin Windows 7 Microsoft 2009 Windows Vista Microsoft 2007 Windows XP Microsoft 2001 Windows 2000 Microsoft 2000 Mac OS X Apple 2001 Mac OS Apple 1984 Debian GNU/Linux Proyecto Debian 1993 Fedora (Linux) Proyecto Fedora 2003 openSUSE Linux SuSE 1994 Mandriva Linux Mandriva (empresa) 1998 ReactOS Fundacion ReactOS 2004

Sistema operativo ltima versin estable

Costo

Windows Windows 7 Vista 6.0 build 6000 6.1 build 7601 Service Pack Service pack 1 2 U$S 90 U$S 199.99 (Home (Home Basic) Premium) 299.99 179 (Home (Professional) Premium) 229 319.99 (Ultimate) (Business) 349 (Ultimate) No Libre No Libre

Licencia

ASPECTOS GENERALES Windows Debian Windows XP Mac OS X Mac OS 2000 GNU/Linux 5.1 build 2600 5.0 con Mac OS X con Service Service Pack 9.2 6.0 Squeeze v10.7 ("Lion") Pack 3 4 143,526 $2 Gratuito hasta 152.89 MX 7.5.5, 9.2 (Home) 29 o ? cuesta 15,60 Gratuito 217,593 $3 preinstalado para dueos 263.895 de Mac OS X MX(Pro) No Libre No Libre No Libre Parcialmente No Libre Libre: GPL software libre Hogar, diseo, negocios, servidores, programacion y redes

Fedora (Linux) 15

openSUSE Linux 11.4

Mandriva Linux 2010.0 Adelie

ReactOS 0.3.14

Gratuito

Gratuito

Gratuito

Gratuito

Libre: GPL

Libre: GPL

Libre: GPL

GNU GPL, LGPL, y Licencia BSD1

Tipo de usuario

Hogar, negocios y redes

Hogar, negocios y redes

Hogar, negocios y redes

Negocios

Hogar, diseo, negocios

Hogar, ciencia, servidores, redes, negocios

Hogar, ciencia, servidores

Hogar, ciencia, servidores, redes, Hogar, ciencia, Hogar, negocios negocios, servidores y redes empresas, Estaciones de trabajo , escritorio

ASPECTOS TECNICOS Sistema operativo Tipo de ncleo Windows 7 Hbrido Windows Vista Hbrido Windows XP Hbrido Windows 2000 Hbrido Mac OS X Mac OS Debian GNU/Linux Monoltico Intel x86, Intel IA64, AMD64, DEC Alpha, ARM, HP PARISC, MIPS (big endian), MIPS (little endian), PowerPC, IMB S/390, Sparc ext3 Fedora (Linux) Monoltico openSUSE Linux Monoltico Mandriva Linux Monoltico ReactOS Hibrido

Mach Ninguno/ (Microncleo) Microncleo

Arquitecturas Intel x86, Intel Intel x86, Intel Intel x86, Intel de x86 64, Intel x86 64, Intel x86 64, Intel procesador IA64 IA64 IA64 soportadas

Intel x86

Intel x86 64, PowerPC

PowerPC

Intel x86, AMD64, PowerPC

Intel x86, AMD64, PowerPC

Intel x86, AMD64, PowerPC

Intel x86, x64, AMD64

Sistema de

NTFS

NTFS

NTFS

NTFS/FAT HFS+/UFS

HFS/HFS+

ext4

ext4

ext4

FAT32

23

archivos por defecto Soporte de sistemas de archivo de 16 bits Soporte de sistemas de archivo de 32 bits Soporte de sistemas de archivo de 64 bits Herramienta de actualizacin por defecto

32

No

No

No

Si

Si

Si

Si

Si

No

No

No (en proyecto)

Windows Update

Windows Update

Windows Update

Windows Update

Software Update

Software Update

apt

yum

YaST

urpmi y RPMDrake

Re-Instalacion

ASPECTOS GRAFICOS Sistema operativo Entorno grfico Sistema de ventanas por defecto Estilo de Interfaz grfica de usuario Windows 7 Windows Vista Windows XP Windows 2000 Mac OS X Mac OS Debian GNU/Linux Fedora (Linux) openSUSE Linux Mandriva Linux ReactOS

Basado en el Basado en el Basado en el Basado en ncleo ncleo ncleo el ncleo Standard Windows Standard Windows Standard Windows

Basado en el Basado en el Aplicacin: X Aplicacin: X Aplicacin: X Aplicacin: X Basado en el ncleo ncleo Window System Window System Window System Window System nucleo (Quartz) Macintosh Finder GNOME GNOME Metacity con tema ClearLooks KDE KDE y GNOME Tipo Windows

Standard OS X Finder Windows Estilo clsico interfaz

Aero

Aero

Estilo Luna

Aqua

Platinum

Metacity

kwin con tema Air

Metacity con tema La ora

ReactOs Explorer

6.7) woos. El proyecto de origen espaol WOOS se basa en el cdigo de ReactOS, pretendiendo ser una distribucin derivada. Woo es un sistema operativo Web, un entorno de escritorio integrado en un navegador web. Esto significa que el sistema operativo se ejecuta en un navegador web y las aplicaciones, datos, archivos, configuracin, ajustes y privilegios de acceso se ejecutan de forma remota a travs de Internet y el equipo local slo se utiliza para la visualizacin y entrada de datos. Woos integra aplicaciones webs a las que ya se conocen en una PC de escritorio normal, como el software para redactar documentos, escuchar las canciones o escribir correos electrnicos. Con este software o los archivos privados, es posible conectarse desde cualquier lugar, sin importar donde se encuentre el usuario y cules pc que tiene, slo una conexin a Internet es necesaria. Este tipo de sistema ofrece una mayor seguridad contra la prdida de datos causada por virus o fallos. Desde el punto de vista de apariencia WOOS es semejante al entorno de escritorio Windows o Mac.

6.7.1) ABIERTAMENTE GRATUITO. COMPATIBLE.NATURALMENTE. WS es un sitema operativo gratuito capaz de ejecutar aplicaciones y drivers compatibles con Windows. Diseado desde cero no necesita de una formacin especfica para su manejo. Propone correr aplicaciones de Windows (uno de sus asesores es el presidente de Reactos). Es un sistema operativo online open source Toda la potencia de las aplicaciones compatibles con Windows en un entorno abierto y gratuito! 24

Você também pode gostar