Texto escrito en un lenguaje de programación específico y que puede ser leído por un programador. Debe traducirse a lenguaje máquina para que pueda ser ejecutado por la computadora o a bytecode para que pueda ser ejecutado por un intérprete. Este proceso se denomina compilación.
Acceder al código fuente de un programa significa acceder a los algoritmos desarrollados por sus creadores. Es la única manera de modificar eficaz y eficientemente un programa.
Liberar un código fuente significa compartir ese texto con cualquier persona que lo desee, esto implica que cualquiera puede analizarlo, copiarlo o modificarlo. Las aplicaciones que liberan sus códigos suelen ser gratuitas bajo licencia GNU. La liberación de un código de un programa implica ciertos riesgos en cuando a la seguridad del mismo, pues su funcionamiento exacto queda expuesto. El código fuente no suele liberarse para las aplicaciones comerciales y no puede obtenerse el código fuente original a través de los programas ya compilados.
sábado, 22 de noviembre de 2014
Kernel
En informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es un software que constituye una parte fundamental del sistema operativo, y se define como la parte que se ejecuta en modo privilegiado (conocido también como modo núcleo).Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.
En algunos sistemas operativos, no existe un núcleo como tal (algo común en sistemas empotrados), debido a que en ciertas arquitecturas no hay distintos modos de ejecución.
Lenguaje de Programacion
es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo.
Lenguajes de programación imperativos y funcionales
Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:
- lenguajes imperativos;
- lenguajes funcionales.
Lenguaje de programación imperativo
Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio.
No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones.
Lenguaje de programación funcional
Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad.
Interpretación y compilación
Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías:
- lenguajes interpretados
- lenguajes compilados
Lenguaje interpretado
Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los programas según sea necesario.
Lenguaje compilado
Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable.
Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una traducción, la ejecución se vuelve más rápida.
Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios.
Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios.
Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier persona pueda conocer los secretos de fabricación de un programa y, de ese modo, copiar su código o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las copias ilegales (transacciones bancarias, pagos en línea, comunicaciones seguras...).
Lenguajes intermediarios
Algunos lenguajes pertenecen a ambas categorías dado que el programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilación intermediaria, en un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al archivo fuente ) y no ejecutable (requeriría un interprete). Los applets Java, pequeños programas que a menudo se cargan en páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un navegador web (son archivos con la extensión .class).
Algunos ejemplos de lenguajes ampliamente usados
| Lenguaje | Principal área de aplicación | Compilado/interpretado |
|---|---|---|
| ADA | Tiempo real | Lenguaje compilado |
| BASIC | Programación para fines educativos | Lenguaje interpretado |
| C | Programación de sistema | Lenguaje compilado |
| C++ | Programación de sistema orientado a objeto | Lenguaje compilado |
| Cobol | Administración | Lenguaje compilado |
| Fortran | Cálculo | Lenguaje compilado |
| Java | Programación orientada a Internet | Lenguaje intermediario |
| MATLAB | Cálculos matemáticos | Lenguaje interpretado |
| Cálculos matemáticos | Cálculos matemáticos | Lenguaje interpretado |
| LISP | Inteligencia artificial | Lenguaje intermediario |
| Pascal | Educación | Lenguaje compilado |
| PHP | Desarrollo de sitios web dinámicos | Lenguaje interpretado |
| Inteligencia artificial | Inteligencia artificial | Lenguaje interpretado |
| Perl | Procesamiento de cadenas de caracteres | Lenguaje interpretado |
Sistemas Operaticos mas utilizados
Linux
Es un sistema operativo, compatible Unix, es uno de los terminos empleados para referirse a la combinación del núcleo o Kernel / libre con el sistema GNU.
Su desarrollo es uno de los ejemplos más prominentes de software libre;todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los terminos de la GPL (Licencia Publica General de GNU), y otar serie de licencias libres.
Su objetivo consiste en ofrecer ediciones que cumplan con las necesidades de un determinado grupo de ususarios.
Unix
El sistema operativo Unix se inicio como un proyecto de investigación y se ha comvertido en un importante producto ampliamente utilizado en el mundo de los negocios, en el acádemico y en el gubernamental.
Se trata de un sistema operativo potente, flexible y versatil, que puede ser instalado en cualquier tipo de plataforma, incluyendo los oredenadores personales monousuarios.
Unix es un sistema multiusuario, multitarea y además proporciona un buen entorno para el trabajo en red.
El sistema Unix es mucho más fácil de portar a nuevas máquinas que otros sitemas operativos. Esta portabilidad es consecuencia directa de estar escrito completamente en el lenguaje de alto nivel, el lenguaje C. La portabilidad de un alto rango de arquitecturas hace posible mover las aplicaciones de un sistema a otro.
OS / 2
Es un sistema operativo ideal para la automatización de oficinas, proporcionar manejadores gráficos independientes de los dispositivos, lograr que las aplicaciones tuvieran acceso directo a perifericos con gran ancho de banda, ofrece capacidad multitarea.
Se desarrollo inicialmente de manera conjunta entre Microsoft e IBM, pero posteriormente IBM se ocupo en solitario de OS /2.
Modelo de desarrollo.- Software no libre
Núcleo.- OS / 2
Tipo de núcleo.- Hibrido
Licencia.- Software no libre.
Sistemas Operativos
- ¿Que es un sistema Operativo (SO)?
- Es el software básico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario.
- Las funciones básicas del Sistema Operativo son administrar los recursos de la máquina, coordinar el hardware y organizar archivos y directorios en dispositivos de almacenamiento.
- Los Sistemas Operativos más utilizados son Dos, Windows, Linux y Mac. Algunos SO ya vienen con un navegador integrado, como Windows que trae el navegador Internet Explorer.
Clasificación de los Sistemas Operativos
- Los sistemas operativos pueden ser clasificados de la siguiente forma:
- Multiusuario: Permite que dos o más usuarios utilicen sus programas al mismo tiempo. Algunos sistemas operativos permiten a centenares o millares de usuarios al mismo tiempo.
- Multiprocesador: soporta el abrir un mismo programa en más de una CPU.
- Multitarea: Permite que varios programas se ejecuten al mismo tiempo.
- Multitramo: Permite que diversas partes de un solo programa funcionen al mismo tiempo.
- Tiempo Real: Responde a las entradas inmediatamente. Los sistemas operativos como DOS y UNIX, no funcionan en tiempo real.
El sistema binario
Llamado también sistema diádico en ciencias de la computación, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1). Es uno de los que se utiliza en las computadoras, debido a que trabajan internamente con dos niveles de voltaje, por lo cual su sistema de numeración natural es el sistema binario (encendido 1, apagado 0).
Decimal a binario
Se divide el número del sistema decimal entre 2, cuyo resultado entero se vuelve a dividir entre 2, y así sucesivamente hasta que el dividendo sea menor que el divisor, 2. Es decir, cuando el número a dividir sea 1 finaliza la división.
A continuación se ordenan los restos empezando desde el último al primero, simplemente se colocan en orden inverso a como aparecen en la división, se les da la vuelta. Éste será el número binario que buscamos.
A continuación se ordenan los restos empezando desde el último al primero, simplemente se colocan en orden inverso a como aparecen en la división, se les da la vuelta. Éste será el número binario que buscamos.
- Ejemplo
- Transformar el número decimal 131 en binario. El método es muy simple:
131 dividido entre 2 da 65 y el residuo es igual a 1
65 dividido entre 2 da 32 y el residuo es igual a 1
32 dividido entre 2 da 16 y el residuo es igual a 0
16 dividido entre 2 da 8 y el residuo es igual a 0
8 dividido entre 2 da 4 y el residuo es igual a 0
4 dividido entre 2 da 2 y el residuo es igual a 0
2 dividido entre 2 da 1 y el residuo es igual a 0
1 dividido entre 2 da 0 y el residuo es igual a 1
-> Ordenamos los residuos, del último al primero: 10
000011
suma y resta binaria
Suma.
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
Pero la suma de 1+1, que sabemos que es 2 en el sistema decimal, debe escribirse en binario con dos cifras (10) y, por tanto 1+1 es 0 y se arrastra una unidad, que se suma a la posición siguiente a la izquierda
Ejemplos:
1101 110101 1011101 100111
+1101 + 10110 + 1110011 + 1011
______ _______ ________ _______
11010 1001011 11010000 110010
Resta.
0 – 0 = 0
1 – 0 = 1
1 – 1 = 0
La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad prestada de la posición siguiente: 10 - 1, es decir, 210 – 110 = 1. Esa unidad prestada debe devolverse, sumándola, a la posición siguiente.
Ejemplos:
10101 11001 1011000 1011101
- 1110 - 10011 - 110001 - 110010
______ ______ _______ ________
00111 00110 0100111 0101011
Suscribirse a:
Entradas (Atom)



.jpg)

