2.1 Instalacion y Configuracion del Sistema Operativo
Instalación de Windows Xp
Ejecución del programa de instalación de Windows XP.El Asistente para la instalación de Windows XP recopila información, como la configuración regional, nombres y contraseñas. A continuación, el asistente copia los archivos correspondientes al disco duro, comprueba el hardware y configura la instalación. Cuando la instalación se haya completado, podrá iniciar sesión en Windows XP Professional. Tenga en cuenta que el equipo se reiniciará varias veces durante el proceso.La forma de iniciar el Asistente para la instalación de Windows XP depende de si va a realizar una actualización o va a instalar una copia nueva de Windows. Elija un método de instalación, vaya a la sección correspondiente de estas notas de la versión y, después, siga el procedimiento de instalación que ha elegido.Si va a instalar una copia nueva (instalación limpia)Si el disco duro del equipo está en blanco o el sistema operativo actual no es compatible, debe iniciar el equipo con el disco compacto de Windows XP Professional. Algunas unidades de CD-ROM pueden iniciar la instalación desde el disco compacto y ejecutar automáticamente el Asistente para la instalación de Windows XP.>>> Para instalar una copia nueva mediante el disco compacto:1. Inicie el equipo con el sistema operativo actual e inserte el disco compacto de Windows XP Professional en la unidad de CD-ROM.2. Si Windows detecta el disco compacto automáticamente, haga clic en Instalar Windows. Se iniciará el Asistente para la instalación de Windows XP. Si Windows no detecta automáticamente el disco compacto, haga clic en Inicio y, después, en Ejecutar. Escriba la siguiente ruta de acceso al archivo de instalación; si es necesario, reemplace "d" por la letra de su unidad de CD-ROM: d:\setup.exe3. Presione ENTRAR.4. Cuando se le pida que elija un tipo de instalación, seleccione Instalación nueva y, después, haga clic en Siguiente.5. Siga las instrucciones que aparecen en la pantalla.>>> Para instalar una copia nueva mediante una conexión de red:1. Con el sistema operativo actual, establezca la conexión con la carpeta de red compartida que contiene los archivos del programa de instalación. También puede utilizar un disco MS-DOS(r) o de instalación de red para conectarse al servidor de red si el disco contiene software de cliente de red. El administrador de la red le podrá proporcionar esta ruta de acceso.2. Si el equipo ejecuta actualmente Windows 98, Windows Millennium Edition o una versión anterior de Windows NT, en el símbolo del sistema, escriba la ruta de acceso al archivo setup.exe.3. Presione ENTRAR.4. Siga las instrucciones que aparecen en la pantalla.Si va a actualizarEl proceso de actualización es sencillo. El Asistente para la instalación de Windows XP detecta e instala los controladores adecuados, o crea un informe acerca de los dispositivos que no se pudieron actualizar para que sepa con seguridad que su hardware y software son compatibles con Windows XP Professional.>>> Para actualizar desde el disco compacto:1. Inicie el equipo con el sistema operativo actual e inserte el disco compacto de Windows XP Professional en la unidad de CD-ROM.2. Si Windows detecta automáticamente el disco compacto, aparecerá el cuadro de diálogo del disco compacto de Windows XP Professional. Para iniciar la actualización, haga clic en Instalar Windows. Si Windows no detecta automáticamente el disco compacto, haga clic en Inicio y, después, en Ejecutar. A continuación, escriba la ruta de acceso al archivo de instalación; si es necesario, reemplace "d" por la letra de su unidad de CD-ROM: d:\setup.exe3. Presione ENTRAR.4. Cuando se le pida que elija un tipo de instalación, seleccione Actualizar y, después, haga clic en Siguiente.5. Siga las instrucciones que aparecen en la pantalla.>>> Para actualizar desde una conexión de red:1. Con el sistema operativo existente, establezca una conexión con la carpeta de red compartida que contiene los archivos del programa de instalación. Si dispone de un disco MS-DOS o de instalación de red que contenga software de cliente de red, puede utilizar ese disco para conectar con la carpeta compartida. El administrador de la red le podrá proporcionar esta ruta de acceso.2. En el símbolo del sistema, escriba la ruta de acceso al archivo setup.exe.3. Presione ENTRAR.4. Haga clic en el botón Actualizar, y después, en Siguiente.5. Siga las instrucciones que aparecen en la pantalla.Recopilar información del usuario y del equipoEl Asistente para la instalación de Windows XP le ayuda a recopilar información acerca de usted y su equipo. Aunque gran parte de este proceso de instalación es automático, es posible que necesite proporcionar cierta información o seleccionar algunos valores de configuración en las siguientes páginas, en función de la configuración actual del equipo:* Contrato de licencia. Si está de acuerdo con los términos y desea continuar con el proceso de instalación, seleccione Acepto este contrato.* Seleccionar opciones especiales. Puede personalizar la instalación de Windows XP, el idioma y la configuración de accesibilidad para instalaciones nuevas. Puede configurar Windows XP para que utilice varias configuraciones regionales e idiomas.* Seleccionar un sistema de archivos. Windows XP Professional puede convertir automáticamente las particiones del disco duro a NTFS, que es el sistema de archivos recomendado para Windows XP Professional; también se puede optar por mantener el sistema de archivos que se utiliza actualmente. Si va a actualizar, el asistente utilizará el sistema de archivos actual.* Configuración regional. Puede cambiar la configuración regional del usuario y el sistema para los distintos idiomas y regiones.* Personalice su software. Puede escribir el nombre completo de la persona y, opcionalmente, de la organización a quien se concede la licencia de esta copia de Windows XP Professional.* Nombre de equipo y Contraseña de administrador. Escriba un nombre de equipo único que sea diferente de otros nombres de equipo, grupo de trabajo o dominio de la red. El asistente propone un nombre de equipo, pero usted puede cambiarlo.Durante la instalación, el asistente crea automáticamente una cuenta de administrador. Cuando utilice esa cuenta, tendrá todos los derechos sobre la configuración del equipo y podrá crear cuentas de usuario. Es decir, al iniciar sesión como administrador después de instalar Windows XP Professional recibirá los privilegios administrativos necesarios para iniciar sesión y administrar el equipo. Escriba una contraseña para la cuenta de administrador. Por motivos de seguridad siempre se debe asignar una contraseña a la cuenta de administrador. Asegúrese de recordar y proteger la contraseña.* Configuración de fecha y hora. Compruebe la fecha y hora de su región, seleccione la zona horaria adecuada y, después, seleccione si desea que Windows XP Professional cambie automáticamente el horario de verano.* Configuración de red. A menos que sea un usuario avanzado, seleccione la opción de configuración Típica para la configuración de red. Seleccione la opción de configuración Personalizada para configurar manualmente los clientes, servicios y protocolos de red.* Grupo de trabajo o dominio del equipo. Durante el proceso de instalación, debe unirse a un grupo de trabajo o a un dominio.Para obtener más información, consulte la sección "Proporcionar información de red", posteriormente en este documento.* Asistente para identificación de red. Si su PC está conectado a una red, este asistente le pedirá que identifique a los usuarios que utilizarán el equipo. Si especifica que usted será el único usuario, recibirá derechos de administrador.Proporcionar información de redDurante el proceso de instalación o una vez concluido éste, debe unirse a un grupo de trabajo o a un dominio. Si no va a trabajar en una red, opte por unirse a un grupo de trabajo.Unirse a un grupo de trabajoUn grupo de trabajo se compone de uno o varios equipos con el mismo nombre de grupo de trabajo (por ejemplo, una red "de igual a igual"). Cualquier usuario puede unirse a un grupo de trabajo si especifica el nombre del grupo de trabajo, ya que no es necesario tener permisos especiales para unirse a un grupo de trabajo. Debe proporcionar el nombre de un grupo de trabajo nuevo o existente, o puede utilizar el nombre que sugiere el Asistente para la instalación de Windows XP.
Historia y Diferencia entre Sistemas operativos
2.2 Núcleo del S.O. (kernel)
Definición:
Según la teoría clásica de sistemas operativos entendemos que un S.O. es como un intermediario entre los programas de usuario y el hardware, es decir el software encargado de proporcionar el entorno necesario dónde será posible ejecutar otros programas. Cada aplicación de usuario se ejecuta sobre la máquina utilizando los que llamamos un proceso (que podría entenderse como un programa en ejecución). Pero es necesario ser consciente de que existe mucho bajo del concepto de proceso. No es necesario decir que nuestra máquina, realmente (como norma general) no posee más que un microprocesador, y este no es capaz de ejecutar más de una instrucción por ciclo. Sin embargo todo el que ha trabajado con cualquier sistema operativo medianamente serio a sido capaz de simultanear entre varias aplicaciones y tenerlas ejecutando en paralelo. ¿ Cómo es esto posible ? o mejor dicho ¿ Quién es el responsable de que esto ocurra ?Imaginemos por un momento una carrera de tortugas con varios carriles por dónde circularán para intentar obtener la victoria. Ahora, sin embargo, sólo existe un carril por dónde, evidentemente, sólo puede circular una tortuga en un momento determinado. En esta extraña competición se nos encarga la ardua tarea de gestionar ese único carril para que las tortugas puedan correr en él y efectuar una competición digna. Podríamos hacer lo siguiente: tomamos una tortuga al azar y la colocamos en la línea de partida, esta comenzará a moverse; tras un período fijado de tiempo anotamos su posición, la sacamos y tomando de nuevo otra aleatoriamente para colocarla en la línea de partida. Si utilizamos el mismo intervalo de tiempo y procuramos que todas las tortugas puedan acceder a la pista por igual (colocándolas haciendo cola por ejemplo) podríamos simular una carrera con un sólo carril.Esta pequeña metáfora refleja una de las funciones del núcleo de un sistema operativo, el planificador de procesos. Pretendemos mostrar al sistema operativo como el software encargado de proporcionar el soporte necesario para habilitar la ejecución de aplicaciones y compartición de recursos como la memoria o la CPU (el único carril de nuestro circuito).Podemos definir un kernel entonces como el software que constituye el núcleo del sistema operativo, dónde se realizan las funcionalidades básicas como la gestión de procesos, la gestión de memoria y de entrada salida. Pero entonces, ¿un kernel es en sí un sistema operativo? No realmente, depende de la definición de sistema operativo. Hay quién afirma que el shell también forma parte de él. Desde nuestro punto de vista la pregunta anterior no es cierta, dado que existen otros conceptos que iremos comprendiendo a lo largo del artículo y que constituyen, en sí mismos piezas fundamentales del sistemas operativo.El kernel ó núcleo en linux se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de la computadora puedan trabajar juntos.Las funciones más importantes del mismo, aunque no las únicas, son:* Administración de la memoria para todos los programas y procesos en ejecución.* Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan.* Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.Tipos de kernel En función del tamaño y de las funcionalidades que posea el kernel podemos clasificarlo. Realmente, y pese a seguidores incondicionales en un modelo u otro, existe una tendencia básica a reducir el tamaño del núcleo proporcionando menos funcionalidades, que son desplazadas a módulos que se cargan en tiempo de ejecución.En función a esta idea tenemos tres tipos fundamentales de kernel:Kernel monolítico.Todas las funcionalidades posibles están integradas en el sistema. Se trata de un programa de tamaño considerable que deberemos recompilar al completo cada vez que queramos añadir una nueva posibilidad. Esta es la estructura original de Linux. Por tratarse de una técnica clásica y desfasada el creador de Linux fue muy criticado.Kernel modular.Se trata de la tendencia actual de desarrollo. En el kernel se centran la funcionalidades esenciales como la administración de memoria, la planificación de procesos, etc. Sin embargo no tiene sentido que el núcleo de un sistema operativo englobe toda la parafernalia para comunicarse con todas las posibles de tarjetas de vídeo o de sonido. En otros sistemas operativos esto se soluciona con unos ficheros proporcionados por el fabricante llamados drivers. En Linux se creó un interfaz adecuado para posibilitar el desarrollo de módulos que cumplieran esas funcionalidades. Esos módulos pueden ser compilados por separado y añadidos al kernel en tiempo de ejecución.Estructura de microkernelEsta técnica pretende reducir a su mínima expresión el kernel, dejando a los niveles superiores el resto de las funcionalidades. Existen algunos kernels que lo utilizan, si bien el que centra nuestra atención es Hurd. Se trata del último kernel GNU llamado a sustituir a Linux como núcleo del sistema operativo. Aunque esta estrategia de diseño es tan antigua como la modular, no ha sido tenida en cuenta hasta ahora debido a las limitaciones de rendimiento que tenía.
2.3 Modos de ejecución
Modo usuario y modo núcleo
El núcleo reside permanentemente en memoria principal así como el proceso actualmente en ejecución también denominado proceso actual (o partes del mismo, por lo menos). Cuando se compila un programa, el compilador genera un conjunto de direcciones de memoria asociadas al programa que representan las direcciones de las variables y de las estructuras de datos, o las direcciones de instrucciones como por ejemplo funciones. El compilador genera las direcciones para una máquina virtual considerando que ningún otro programa sería ejecutado simultáneamente en la máquina física.Cuando un programa se ejecuta en la máquina, el núcleo le asigna espacio en memoria principal, pero las direcciones virtuales generadas por el compilador no necesitan ser idénticas a las direcciones físicas que ocupan en la máquina. El núcleo se coordina con el hardware de la máquina para traducir las direcciones virtuales a direcciones físicas. Esta traducción depende de las capacidades del hardware de la máquina, y en consecuencia las partes del sistema UNIX que se ocupan de la misma son dependientes de la máquina.Con el objetivo de poder implementar una protección eficiente del espacio de direcciones de memoria asociado al núcleo y de los espacios de direcciones asociados a cada proceso, la ejecución de los procesos en un sistema UNIX está dividida en dos modos de ejecución: un modo de mayor privilegio denominado modo núcleo o supervisor y otro modo de menor privilegio denominado modo usuario.Un proceso ejecutándose en modo usuario sólo puede acceder a unas partes de su propio espacio de direcciones (código, datos y pila). Sin embargo, no puede acceder a otras partes de su propio espacio de direcciones, como aquellas reservadas para estructuras de datos asociadas al proceso usadas por el núcleo. Tampoco puede acceder al espacio de direcciones de otros procesos o del mismo núcleo. De esta forma se evita una posible corrupción de los mismos.Por otra parte, un proceso ejecutándose en modo núcleo puede acceder a su propio espacio de direcciones al completo y al espacio de direcciones del núcleo, pero no puede acceder al espacio de direcciones de otros procesos. Debe quedar claro que cuando se dice que un proceso se está ejecutando en modo núcleo, en realidad el que se está ejecutando es el núcleo pero en el nombre del proceso. Por ejemplo, cuando un proceso en modo usuario realiza una llamada al sistema está pidiendo al núcleo que realice en su nombre determinadas operaciones con el hardware de la máquina.Entre los principales casos que producen que un proceso ejecutándose en modo usuario pase a ejecutarse en modo núcleo se encuentran: las llamadas al sistema, las interrupciones (hardware o software) y las excepciones.Tipos de procesos.
Los procesos en el sistema UNIX pueden ser de tres tipos: procesos de usuario, procesos demonio y procesos del núcleo o del sistema.
Los procesos de usuario son aquellos procesos asociados a un determinado usuario. Se ejecutan en modo usuario excepto cuando realizan llamadas al sistema para acceder a los recursos del sistema, que pasan a ser ejecutados en modo núcleo.
Los procesos demonio no están asociados a ningún usuario. Al igual que los proceso de usuario, son ejecutados en modo usuario excepto cuando realizan llamadas al sistema que pasan a ser ejecutados en modo núcleo. Los procesos demonio realizan tareas periódicas relacionadas con la administración del sistema, como por ejemplo: la administración y control de redes, la ejecución de actividades dependientes del tiempo, la administración de trabajos en las impresoras en línea, etc.
Los procesos del núcleo no están asociados a ningún usuario. Se ejecutan exclusivamente en modo núcleo. Son similares a los procesos demonio en el sentido de que realizan tareas de administración del sistema, como por ejemplo, el intercambio de procesos (proceso intercambiador) o de páginas (proceso ladrón de páginas) a memoria secundaria. Su principal ventaja respecto a los procesos demonio es que poseen un mayor control sobre sus prioridades de planificación puesto que su código es parte del núcleo. Por ello pueden acceder directamente a los algoritmos y estructuras de datos del núcleo sin hacer uso de las llamadas al sistema, en consecuencia son extremadamente potentes. Sin embargo no son tan flexibles como los procesos demonio, ya que para modificarlos se debe de recompilar el núcleo.
Interrupciones y Excepciones
El sistema UNIX permite al reloj del sistema, a los periféricos de E/S o a los terminales interrumpir a la CPU mientras se está ejecutando un proceso. Estos dispositivos usan el mecanismo de interrupciones para notificar al núcleo que se ha completado una operación de E/S o que se ha producido un cambio en su estado. Así, las interrupciones hardware son eventos asíncronos que ocurren entre la ejecución de dos instrucciones de un proceso y pueden estar asociadas a eventos totalmente ajenos a la ejecución del proceso actualmente en ejecución.Las interrupciones software o traps, se producen al ejecutar ciertas instrucciones especiales y son tratadas de forma síncrona. Son utilizadas, por ejemplo, en las llamadas al sistema, en los cambios de contexto, en tareas de baja prioridad de planificación asociadas con el reloj del sistema, etc.Las excepciones hacen referencia a la aparición de eventos síncronos inesperados, típicamente errores, causados por la ejecución de un proceso, como por ejemplo, el acceso a una dirección de memoria ilegal, el rebose de la pila de usuario, el intento de ejecución de instrucciones privilegiadas, la realización de una división por cero, etc. Las excepciones se producen durante el transcurso de la ejecución de una instrucción.Tanto las interrupciones (hardware o software) como las excepciones son tratadas en modo núcleo por determinadas rutinas del núcleo, no por procesos del núcleo.Puesto que existen diferentes eventos que pueden causar una interrupción, puede suceder que llegue una petición de interrupción mientras otra interrupción está siendo atendida. Por lo tanto es necesaria asignar a cada tipo de interrupción un determinado nivel de prioridad de interrupción (npi) o nivel de ejecución del procesador. De tal forma que las interrupciones de mayor npi tenga preferencia sobre las de menor npi. Por ejemplo, una interrupción del reloj de la máquina debe tener preferencia sobre una interrupción de un dispositivo de red, puesto que ésta última requerirá un mayor tiempo de uso de la CPU, varios tics de reloj, para ser atendida.El npi se almacena en un campo del registro de estado del procesador. Las computadoras típicamente poseen un conjunto de instrucciones privilegiadas para comparar y configurar el npi a un determinado valor. Además el núcleo también dispone de rutinas, típicamente implementadas como macros por motivos de eficiencia, para explícitamente comprobar o configurar el npi.Cuando el núcleo se encuentra realizando ciertas actividades críticas para el correcto funcionamiento del sistema no debe atender ciertos tipos de interrupciones para evitar la corrupción de determinadas estructuras de datos. Para ello, fija el npi a un determinado valor. Así las interrupciones del mismo nivel o de niveles inferiores quedan enmascaras o bloqueadas, por lo que sólo se atenderán las interrupciones de los niveles superiores.El número de niveles de prioridad de interrupción permitidos depende de cada distribución de UNIX. Usualmente, el menor npi es 0.
2.4 Llamadas al Sistema
En Computación, llamada al sistema o System Call, en inglés, es el mecanismo usado por un programa aplicativo para solicitar un servicio al Sistema Operativo.Las llamadas al sistema comúnmente usan una instrucción especial de la CPU que causa que el procesador transfiera el control a un código privilegiado, previamente especificado por el mismo código. Esto permite al código privilegiado especificar donde el va a ser conectado así como el estado del procesador.Cuando una llamada al sistema es invocada, la ejecución del programa que invoca es interrumpida y sus datos son guardados, normalmente en su PCB, para poder continuar ejecutándose luego. El procesador entonces comienza a ejecutar las instrucciones de código de alto nivel de privilegio, para realizar la tarea requerida. Cuando esta finaliza, se retorna al proceso original, y continúa su ejecución. El retorno al proceso demandante no obligatoriamente es inmediato, depende del tiempo de ejecución de la llamada al sistema y del algoritmo de planificación de CPU.La implementación de las llamadas al sistema requiere un control de transferencia que involucra características específicas de la arquitectura del procesador. Una forma típica de implementar es usar una interrupción por software. Linux usa esta implementación en la arquitectura x86.Las llamadas al sistema proveen una interfaz entre los procesos y el Sistema de Operación. Por lo general estas llamadas se encuentran disponibles como instrucciones en lenguaje ensamblable. En algunos sistemas podemos realizar llamadas al sistema desde programas en lenguajes de alto nivel, en cuyo caso se asemejan a llamadas a funciones o procedimientos.
Las llamadas al sistemaYa se ha comentado que el sistema operativo es una interfaz que oculta las peculiaridades del hardware. Para ello ofrece una serie de servicios que constituyen una máquina virtual más fácil de usar que el hardware básico. Estos servicios se solicitan mediante llamadas al sistema.La forma en que se realiza una llamada al sistema consiste en colocar una serie de parámetros en un lugar específico (como los registros del procesador), para después ejecutar una instrucción del lenguaje máquina del procesador denominada trap (en castellano, trampa). La ejecución de esta instrucción máquina hace que el hardware guarde el contador de programa y la palabra de estado del procesador (PSW, Processor Status Word) en un lugar seguro de la memoria, cargándose un nuevo contador de programa y una nueva PSW. Este nuevo contador de programa contiene una dirección de memoria donde reside una parte (un programa) del sistema operativo, el cual se encarga de llevar a cabo el servicio solicitado. Cuando el sistema operativo finaliza el servicio, coloca un código de estado en un registro para indicar si hubo éxito o fracaso, y ejecuta una instrucción return from trap, esta instrucción provoca que el hardware restituya el contador de programa y la PSW del programa que realizó la llamada al sistema, prosiguiéndose así su ejecución.Normalmente los lenguajes de alto nivel tienen una (o varias) rutinas de biblioteca por cada llamada al sistema. Dentro de estos procedimientos se aísla el código (normalmente en ensamblador) correspondiente a la carga de registros con parámetros, a la instrucción trap, y a obtener el código de estado a partir de un registro. La finalidad de estos procedimientos de biblioteca es ocultar los detalles de la llamada al sistema, ofreciendo una interfaz de llamada al procedimiento. Como una llamada al sistema depende del hardware (por ejemplo, del tipo de registros del procesador), la utilización de rutinas de biblioteca hace el código portable.El número y tipo de llamadas al sistema varía de un sistema operativo a otro. Existen, por lo general, llamadas al sistema para ejecutar ficheros que contienen programas, pedir más memoria dinámica para un programa, realizar labores de E/S (como la lectura de un carácter de un terminal), crear un directorio, etc. Ejemplos de rutinas de biblioteca que realizan llamadas al sistema en un entorno del sistema operativo C-UNIX son: read, write, malloc, exec, etc.
2.5 ANSI C
A finales de la década de 1970, C empezó a sustituir a BASIC como lenguaje de programación de microcomputadores predominante. Durante la década de 1980 se empezó a usar en los IBM PC, lo que incrementó su popularidad significativamente. Al mismo tiempo, Bjarne Stroustrup empezó a trabajar con algunos compañeros de Bell Labs para añadir funcionalidades de programación orientada a objetos a C. El lenguaje que crearon, llamado C++, es hoy en día el lenguaje de programación de aplicaciones más común en el sistema operativo Microsoft Windows; mientras que C sigue siendo más popular en el entorno Unix. Otro lenguaje que se desarrolló en esa época, Objective C, también añadió características de programación orientada a objetos a C. Aunque hoy en día no es tan popular como C++, se usa para desarrollar aplicaciones Cocoa para Mac OS X.En 1983, el Instituto Nacional Estadounidense de Estándares organizó un comité, X3j11, para establecer una especificación estándar de C. Tras un proceso largo y arduo, se completó el estándar en 1989 y se ratificó como el "Lenguaje de Programación C" ANSI X3.159-1989. Esta versión del lenguaje se conoce a menudo como ANSI C, o a veces como C89 (para distinguirla de C99).En 1990, el estándar ANSI (con algunas modificaciones menores) fue adoptado por la Organización Internacional para la Estandarización (ISO) en el estándar ISO/IEC 9899:1990. Esta versión se conoce a veces como C90. No obstante, "C89" y "C90" se refieren en esencia al mismo lenguaje.Uno de los objetivos del proceso de estandarización del ANSI C fue producir una extensión al C de Kernighan y Ritchie, incorporando muchas funcionalidades no oficiales. Sin embargo, el comité de estandarización incluyó también muchas funcionalidades nuevas, como prototipos de función, y un preprocesador mejorado. También se cambió la sintaxis de la declaración de parámetros para hacerla semejante a la empleada habitualmente en C++:main(argc, argv) int argc; char **argv; { ... }pasó a serint main(int argc, char *argv[]){ ...}
ANSI C está soportado hoy en día por casi la totalidad de los compiladores. La mayoría del código C que se escribe actualmente está basado en ANSI C. Cualquier programa escrito sólo en C estándar sin código que dependa de un hardware determinado funciona correctamente en cualquier plataforma que disponga de una implementación de C compatible. Sin embargo, muchos programas han sido escritos de forma que sólo pueden compilarse en una cierta plataforma, o con un compilador concreto, esto puede ser debido a diversos motivos:* La utilización de bibliotecas no estándar, como interfaces gráficos de usuario.* El uso de compiladores que no cumplen las especificaciones del estándar.* El uso de tipos de datos suponiendo que tendrán el mismo tamaño u orden de los bits en todas las plataformas.La macro __STDC__ puede usarse para dividir el código en secciones ANSI y K&R para el compilador.
#if __STDC__extern int getopt(int,char * const *,const char *);#elseextern int getopt();#endif
2.6 IEEE POXIS
POSIX es el acrónimo de Portable Operating System Interface; la X viene de UNIX como seña de identidad de la API. El término fue sugerido por Richard Stallman en respuesta a la demanda de la IEEE, que buscaba un nombre fácil de recordar. Una traducción aproximada del acrónimo podría ser "Interfaz para Sistemas Operativos migrables basados en UNIX".
No hay comentarios:
Publicar un comentario