Академический Документы
Профессиональный Документы
Культура Документы
Una duda
puedo estudiar los temas en cuanto tenga tiempo disponible.?
Que versin de java debemos descasrgar para el curso, ya que en el vnculo nos muestra varias.
1.1. HISTORIA
En el ao 2003, cuatro expertos en tecnologa, Andy Rubin, Rich Miner, Nick Sears y
Chris White, se unieron para crear la empresa Android Inc., esta empresa fue ubicada en
Palo Alto California. Los cuatro trabajaron para crear un sistema operativo para dispositivos
mviles que pudiera ser consiente tanto de la ubicacin de un usuario y permitiera ser
configurado en base a las preferencias de este.
En Agosto de 2005, Google compro Android Inc., aunque el precio de la compra nunca ha
sido revelado, se estima que ronda los 50 millones de dlares. Andy Rubin, uno de los
creadores de Android, trabaj de 2005 a 2013 como vicepresidente de ingeniera de Google. El
13 de Marzo de 2013, Rubin anuncia en su blog personal que se retira de Google para
dedicarse a otros proyectos externos, ocupando su lugar Sundar Pichai.
El 5 de Noviembre de 2007 Google dio a conocer la Open Handset Alliance (OHA), una
agrupacin de fabricantes de tecnologa que trabajan en conjunto para crear estndares
abiertos para dispositivos mviles. Las empresas de la coleccin incluan proveedores de
servicios inalmbricos de telecomunicaciones, fabricantes de telfonos mviles y fabricantes
de chipsets. Con este anuncio, Google dejaba en claro que sera diferente a otros sistemas
operativos mviles, ya que no se limitara simplemente a un dispositivo o fabricantes. En
octubre de 2008, fue lanzado al mercado el primer dispositivo inteligente con Android, el HTC
Dream.
Los inicios de Android fueron un poco lentos, ya que primero fue lanzado el sistema
operativo (Octubre de 2008) y posteriormente el primer dispositivo mvil, el HTC Dream,
tambin conocido como T-Mobile G1 (2008). Esto no ha sido problema para que el sistema
operativo tenga ganados muchos adeptos y ha demostrado una velocidad de madurez
importante debido a los diferentes fabricantes de hardware, que han adaptado interesantes
piezas para acompaar las diferentes funcionalidades del sistema operativo.
Herramientas de software.
Sistema operativo. Una computadora que corra con Windows, Linux o Mac OS. En Windows
y en Linux no importa la arquitectura (32 bits o 64 bits).
Java. Se recomienda la ltima versin de Java disponible, puede descargarse desde la
siguiente pgina.
http://www.oracle.com/technetwork/es/java/javase/downloads/index.html
Kit de desarrollo. La ltima versin del SDK de Android, puede descargarse de la siguiente
pgina.
https://developer.android.com/intl/es/sdk/index.html
IDE. Android ha puesto a disposicin de los desarrolladores su propio IDE, Android Studio.
Este entorno de desarrollo ya incluye la ltima versin del SDK y puede ser descargado de la
siguiente pgina.
https://developer.android.com/intl/es/sdk/index.html
Conocimientos tcnicos.
Herramientas Hardware.
Equipo Android. Uno de los puntos importantes que se recomienda, es tener es un telfono
que corra con Android. Esto es porque de esta manera se tendr una autntica forma de
probar cmo es que corren las aplicaciones en un ambiente real, adems de que existen
algunos ejemplos prcticos que por sus caractersticas es altamente recomendable ejecutarlos
en un dispositivo fsico.
1.2. Qu es Android?
Dejando un poco de lado los tecnicismos, Android es otra de las opciones de interfaces y
caractersticas que podemos encontrar en telfonos mviles; as como podemos identificar
aspectos particulares de un Nokia cuyo sistema operativo es Windows Phone, o un iPhone con
iOS o incluso los Blackberry, tambin existen cosas muy especficas en los telfonos que
funcionan con Android.
Android utiliza una variacin del lenguaje de programacin Java (Java ME). Si has
desarrollado en Java, seguramente conocers lo que es trabajar con una mquina virtual que
sirve para interpretar todo ese cdigo que genera nuestro programa (bytecode) y pueda
ejecutarse. Pues bien, Android, tiene una adaptacin de esta mquina virtual y se llama ART.
Distinta de la virtual machine por default de Java, ART es una excelente versin que optimiza
Kernel de Linux. Primer capa de la arquitectura, el ncleo del sistema operativo Android est
basado en la versin 2.6 del kernel de Linux, similar al que puede incluir cualquier distribucin
de Linux, como Ubuntu, solo que adaptado a las caractersticas del hardware en el que se
ejecutar Android, es decir, adaptado a dispositivos mviles.
El ncleo acta como una capa de abstraccin entre el hardware y el resto de las capas de
la arquitectura. El desarrollador no accede directamente a esta capa, sino que debe utilizar las
bibliotecas disponibles en capas superiores. De esta forma tambin se evita tener que conocer
las caractersticas precisas de cada dispositivo. Por ejemplo, si se requiere hacer uso de la
cmara, el sistema operativo se encarga de utilizar la que incluya el equipo, sea cual sea. Para
cada elemento de hardware del dispositivo existe un controlador (driver) dentro del kernel que
permite utilizarlo desde el software.
Otra de las tareas del kernel es la de gestionar los diferentes recursos del dispositivo (energa,
memoria, etc.), y del sistema operativo (procesos, red, entre otros).
Libraries (Bibliotecas). La siguiente capa que se sita justo sobre el kernel la componen las
bibliotecas nativas de Android. Estn escritas en C o C++ y compiladas para la arquitectura
hardware especfica de cada dispositivo. Normalmente estn hechas por el fabricante, quien
tambin se encarga de instalarlas en el dispositivo antes de ponerlo a la venta. El objetivo de
las bibliotecas es proporcionar funcionalidad a las aplicaciones para tareas que se repiten con
frecuencia, evitando tener que codificarlas cada vez y garantizando que las tareas se llevan a
cabo de forma ms eficientes.
Entre
las
bibliotecas
grfico), Bibliotecas
incluidas
habitualmente
multimedia (formatos
de
de
imagen
y
de
Cabe aclarar que la mquina virtual de Android es una variacin de la mquina virtual de
Java, por lo que no es compatible con el bytecode Java. Java se usa nicamente como
lenguaje de programacin, y los ejecutables que se generan con el SDK de Android tienen la
extensin .dex que es especfico para la mquina virtual de Android, y por ello no podemos
correr aplicaciones Java en Android ni viceversa.
Application Framework (Marco de aplicaciones). La siguiente capa est formada por todas
las clases y servicios que utilizan directamente las aplicaciones para realizar sus funciones. La
mayora de los componentes de esta capa son bibliotecas Java que acceden a los recursos de
las capas anteriores a travs de la mquina virtual. Algunos de los componentes ms
importantes se listan en la siguiente tabla.
Nombre de
servicios
la
clase
o Descripcin
Activity Manager
Windows Manager
Content Provider
Views
Notification Manager
Package Manager
Location Manager
Sensor Manager
Cmara
Multimedia
Telephony Manager
En esta capa encontramos tambin la aplicacin principal del sistema: Inicio (Home) o lanzador
(launcher), porque es la que permite ejecutar otras aplicaciones mediante una lista y
A
Android
https://www.android.com/
API
Stands for "Application Program Interface," though it is sometimes referred to as an "Application Programming Interface
commands, functions, and protocols which programmers can use when building software for a specific operating system
programmers to use predefined functions to interact with the operating system, instead of writing them from scratch.
All computer operating systems, such as Windows, Unix, and the Mac OS, provide an application program interface for p
are also used by video game consoles and other hardware devices that can run software programs. While the API make
job easier, it also benefits the end user, since it ensures all programs using the same API will have a similar user interfac
Aplicacin
(Application). Programa informtico que permite a un usuario utilizar una computadora con un fin especfico. Las ap
del software de una computadora, y suelen ejecutarse sobre el sistema operativo.
Una aplicacin de software suele tener un nico objetivo: navegar en la web, revisar correo, explorar el disco duro, ed
juego es un tipo de aplicacin), etc. Una aplicacin que posee mltiples programas se considera un paquete.
Son ejemplos de aplicaciones Internet Explorer, Outlook, Word, Excel, WinAmp, etc.
Caractersticas de las aplicaciones
En general, una aplicacin es un programa compilado (aunque a veces interpretado), escrito en cualquier lenguaje de p
Las aplicaciones pueden tener distintas licencias de distribucin como ser freeware, shareware, trialware, etc.
Las aplicaciones tienen algn tipo de interfaz, que puede ser una interfaz de texto o una interfaz grfica (o ambas
destacar que la distincin entre aplicaciones y sistemas operativos muchas veces no es clara. De hecho, en algunos
no existe una clara distincin para el usuario entre el sistema y sus aplicaciones.
App
Que es una App?
Creo que a da de hoy deben quedar pocas personas que no haya oido hablar de ellas o que no sepa que es unaAp
que el espectacular boom que han sufrido las aplicaciones para mviles han provocado una gran confusin en torno a
ocasiones lleva a una mala utilizacin o abuso de la palabra incluso por personas conocedoras de las nuevas te
queremos dejaros enlaces que vemos interesantes como los relativos a los costes de crear apps.
Una App es una aplicacin de software que se instala en dispositivos mviles o tablets para ayudar al usuario en una la
de carcter profesional o de ocio y entretenimiento, a diferencia de una webapp que no es instalable.
El objetivo de una app es facilitarnos la consecucin de una tarea determinada o asistirnos en operaciones y gestiones
Existen infinidad de tipos de aplicaciones: Apps de noticias (elmundo.es), juegos (CSR Racing), herramienta
como Whatsapp, redes sociales como Google+, apps para salir de fiesta (Liveclubs), promociones comerciales (McDon
para vender tus cosas usadas desde el mvil (YuMe)etc, que nos pueden ayudar en el trabajo o intentar hacernos el
De dnde viene el trmino de App?
El trmino App es la abreviatura de Application y como tal, siempre se ha utilizado para denominar a stas en sus difere
Siendo una palabra de uso comn en el mundo del software, el trmino App comenz a utilizarse especialmente
aplicaciones para mviles en 2008, tras la consecucin de tres hitos importantes en la historia de las aplicaciones, el
Store de Apple , la publicacin del primer SDK para Android y la posterior pero casi inmediata inaguracin del Android M
Fruto de la rpida popularizacin del trmino y de la actual moda de las aplicaciones para mviles, es habitual e
familiarizadas con el mundo informtico abusar del trmino y utilizarlo indiscriminadamente para cualquier apli
generando una confusin innecesaria.
Esta semana podamos leer en un popular blog de nuevas tecnologas como un redactor escriba sobre los ingresos e
mencionaba a DropBox como una app que se haba escapado del monopolio del AppStore con xito. Con ello trataba
apps podan triunfar sin pasar por lor markets.
Para aclarar trminos, Dropbox sera una aplicacin de software y en todo caso un servicio, que es como ellos mismo
este caso se aplica a la aplicacin descargable, que aunque el autor desconociese, si podemos encontrar en el
manera Dropbox es una aplicacin informtica, y el descargable de esta compaa en los market es la App.
Cul es el coste que tiene una app?
Depende, es totalmente en funcin de sus carctersticas.
Orgenes y boom de App.
Investigando sobre los orgenes de App, y utilizando la asombrosa herramienta de estadsticas de bsqueda de
reveladores datos.
Basndonos en una estadstica sobre las bsquedas relacionadas con el trmino App y asignndole un ndice 1
actuales, observamos que el trmino apenas tena un 10% del ratio de bsqueda actual hasta avanzado 2008.
Este dato no hace ms que reafirmar la relacin del trmino App con las aplicaciones para dispositivos mviles y
programas informticos que instalamos en nuestros ordenadores, conocidos como programas o software de gestin.
Entrando en mayor detalle podemos observar tres claras tendencias:
1.
2.
2003 a 2008: No existen cambios en las bsquedas y en consecuencia en el inters de la poblacin mundial en
Q3/2008 a Q3/2010: Las consultas y el inters mundial est en alza y el incremento sigue una linea de tenden
esta tendencia se identifica con tres hechos muy prximos en el tiempo:
Publicacin del primer API para desarrolladores de iOS 4 y en consecuencia apertura del mercado global de
propuestas de empresas y desarrolladores de aplicaciones y juegos para iPhone. (Junio de 2010)
Con estos datos a Julio de 2012, el impacto de los otros market no ha sido suficiente como para producir un camb
previsible que Windows Phone aumente rpidamente el nmero de descargas y su cuota de mercado, pero este crec
de las dos plataforma predominantes por lo que no es de esperar otro cambio de tendencia ms al alza. Para el
un mercado global de 36.000 millones de descargas en todas las plataformas.
Archivo (Informtica)
archivo.
(Del lat. archvum, y este del gr. , residencia de los magistrados).
1. m. Conjunto ordenado de documentos que una persona, una sociedad, una institucin, etc., producen en el ejercicio
actividades.
2. m. Lugar donde se custodian uno o varios archivos.
3. m. Accin y efecto de archivar ( guardar documentos o informacin en un archivo). Entreg la documentacin
archivo.
4. m. Accin y efecto de archivar ( dar por terminado un asunto). El juez orden el archivo del caso.
5. m. Inform. Espacio que se reserva en el dispositivo de memoria de un computador para almacenar porciones de inf
la misma estructura y que pueden manejarse mediante una instruccin nica.
6. m. Inform. Conjunto de la informacin almacenada de esa manera.
7. m. Col. oficina.
8. m. p. us. Persona en quien se confa un secreto o recnditas intimidades y sabe guardarlas.
9. m. p. us. Persona que posee en grado sumo una perfeccin o conjunto de perfecciones. Archivo de la cortesa, de la
Arquitectura de hardware
La arquitectura de hardware primero se concentra en las interfaces elctricas internas entre los componentes o subsis
luego la interfaz entre el sistema y su entorno.
Biblioteca o Librera
Se emplea el trmino librera para referirse a una biblioteca, por la similitud con el original ingls library. Ambos trminos
librera, son correctos segn las definiciones de la RAE, aunque en trminos formales, la acepcin correcta es bibliotec
traduccin correcta de library.
Independientemente de lo anterior comentado, una biblioteca es un Kit de herramientas software pequeo y autnomo
funcionalidad muy especfica al usuario. Normalmente se usa junto con otras libreras y herramientas para hacer una ap
ya que por lo general las bibliotecas no son ejecutables, pero s pueden ser usadas por ejecutables que las necesiten p
funcionar.
Imaginemos que estamos haciendo programas de ordenador, nos damos cuenta que algunas partes del cdigo se utiliz
ellos. Por ejemplo, podemos tener varios programas que utilizan nmeros complejos y las funciones de suma, resta, etc
Tambin es posible, por ejemplo, que nos guste hacer juegos, y nos damos cuenta que estamos repitiendo una y otra v
mover una imagen por la pantalla. Sera estupendo poder meter esas funciones en un directorio separado de los progra
tenerlas ya compiladas, de forma que podamos usarlas siempre que queramos.
Nos ahorraremos el tiempo de compilar cada vez ese cdigo que ya est compilado. Adems, ya sabemos que m
programa, probamos y corregimos, hay que compilar entre muchas y "ms muchas" veces.
El cdigo ya compilado estar probado y ser fiable. No las primeras veces, pero s cuando ya lo hayamos usado
La forma de hacer esto es hacer libreras. Ya que hemos quedado que una librera son una o ms funciones que tenem
Libreras estticas Es una librera que "se copia" en nuestro programa cuando lo compilamos. Una vez que tene
de nuestro programa, la librera no sirve para nada (es un decir, sirve para otros futuros proyectos). Podramos borrarla
seguira funcionando, ya que tiene copia de todo lo que necesita. Slo se copia aquella parte de la librera que se neces
la librera tiene dos funciones y nuestro programa slo llama a una, slo se copia esa funcin.
Libreras dinmica NO se copia en nuestro programa al compilarlo. Cuando tengamos nuestro ejecutable y lo e
cada vez que el cdigo necesite algo de la librera, ir a buscarlo a sta. Si borramos la librera, nuestro programa dar
la encuentra. Windows est construido sobre una gran cantidad deDLL's, y es que Windows guarda sus libreras de enl
archivos que tienen extensin DLL.
Toda librera ofrecer un Interfaz de programacin de aplicaciones (API) que es el conjunto de mtodos que ofrece cier
ser utilizado por otro software como una capa de abstraccin.
Palabra(s) clave:
Bytecode
Bytecode is object-oriented programming (OOP) code compiled to run on a virtual machine (VM) instead of a central pr
The VM transforms program code into readable machine language for the CPU because platforms utilize differen
techniques. A VM converts bytecode for platform interoperability, but bytecode is not platform-specific. Bytecode is
programming language format and has the .class extension executed by Java Virtual Machine (JVM). This term is als
code (p-code).
Certain programming languages like C and C++ require different platform compilers, such as those in Windows, Mac or
on hardware and CPU communication methods and require recompiling. Bytecode does not require recompiling or cha
VM enables programming for cross-platform code portability. The VM provider handles platform-specific language task
are two well-known programming languages utilizing bytecode for easy interoperability.
In the real world, you'll often find many individual objects all of the same kind. There may be thousands of other bicycles
the same make and model. Each bicycle was built from the same set of blueprints and therefore contains the same com
oriented terms, we say that your bicycle is an instance of the class of objects known as bicycles. A class is the blueprint
individual objects are created.
The following Bicycle class is one possible implementation of a bicycle:
class Bicycle {
int cadence = 0;
int speed = 0;
int gear = 1;
void changeCadence(int newValue) {
cadence = newValue;
}
void changeGear(int newValue) {
gear = newValue;
}
void speedUp(int increment) {
speed = speed + increment;
}
The syntax of the Java programming language will look new to you, but the design of this class is based on the previous
bicycle objects. The fields cadence, speed, and gear represent the object's state, and the methods (changeCadence, ch
etc.) define its interaction with the outside world.
You may have noticed that the Bicycle class does not contain a main method. That's because it's not a complete applica
blueprint for bicycles that might be used in an application. The responsibility of creating and using new Bicycle objects b
other class in your application.
Here's a BicycleDemo class that creates two separate Bicycle objects and invokes their methods:
class BicycleDemo {
public static void main(String[] args) {
// Create two different
// Bicycle objects
Bicycle bike1 = new Bicycle();
Cdigo fuente
(Source code, code base). Texto escrito en un lenguaje de programacin especfico y que puede ser ledo por un
traducirse a lenguaje mquina para que pueda ser ejecutado por la computadora o a bytecode para que pueda s
intrprete. Este proceso se denomina compilacin. Acceder al cdigo fuente de un programa significa acced
desarrollados por sus creadores. Es la nica manera de modificar eficaz y eficientemente un programa.
Liberar un cdigo fuente significa compartir ese texto con cualquier persona que lo desee, esto implica que cualquie
copiarlo o modificarlo. Las aplicaciones que liberan sus cdigos suelen ser gratuitas bajo licencia GNU. La liberacin
programa implica ciertos riesgos en cuando a la seguridad del mismo, pues su funcionamiento exacto queda expuesto
suele liberarse para las aplicaciones comerciales y no puede obtenerse el cdigo fuente original a travs de los program
D
Dalvik
The Android platform's virtual machine.
The Dalvik VM is an interpreter-only virtual machine that executes files in the Dalvik Executable (.dex) format, a format
efficient storage and memory-mappable execution. The virtual machine is register-based, and it can run classes
language compiler that have been transformed into its native format using the included "dx" tool. The VM runs on to
operating systems, which it relies on for underlying functionality (such as threading and low level memory manageme
class library is intended to provide a familiar development base for those used to programming with Java Standard Ed
specifically to the needs of a small mobile device.
Dispositivo
Aparato, artificio, mecanismo, artefacto, rgano, elemento de un sistema.
En las computadoras los distintos dispositivos conectados a ellas deben ser reconocidos por el sistema operativo y par
controladores (drivers).
Para ver una lista de los dispositivos ms comunes que se conectan a una computadora vea: computadora personal.
E
Ejecutar (Informtica)
(Del lat. exsectus, part. pas. de exsqui, consumar, cumplir).
1. tr. Poner por obra algo.
2. tr. ajusticiar ( dar muerte al reo).
3. tr. Desempear con arte y facilidad algo.
4. tr. Tocar una pieza musical.
5. tr. Der. Reclamar una deuda por va o procedimiento ejecutivo.
6. tr. Inform. Realizar las operaciones especificadas por un programa de un ordenador.
7. tr. p. us. Ir a los alcances de alguien a quien se persigue.
Estndar
(Del ingl. standard).
1. adj. Que sirve como tipo, modelo, norma, patrn o referencia.
2. m. Tipo, modelo, patrn, nivel. Estndar de vida.
Folder (carpeta)
A digital folder has the same purpose as a physical folder to store documents. Computer folders can also store other ty
applications, archives, scripts, and libraries. Folders can even store other folders, which may contain additional files and
Folders are designed for organizing files. For example, you might store your digital photos in a "Pictures" folder, your au
folder, and your word processing documents in a "Documents" folder. In Windows, software programs are installe
"Program Files" folder, while in OS X they are stored in the "Applications" folder.
Folders are also called directories because of the way they organize data within the file system of a storage de
subfolders, or subdirectories of the root directory. For example, in Windows, C:\ is the root directory of the startup disk. T
application is installed in the C:\Program Files\Internet Explorer directory, which is also the directory path of the Internet
While folders may contain several gigabytes of data, folders themselves do not take up any disk space. This is becaus
pointers that define the location of files within the file system. You can view how much data is stored in a folder by
selecting Properties in Windows or Get Info in OS X. To create a new folder, right-click on the desktop or an open windo
Folder (Windows) or New Folder (OS X).
Framework (Software)
A framework, or software framework, is a platform for developing software applications. It provides a foundation
developers can build programs for a specific platform. For example, a framework may include predefined classes and f
used to process input, manage hardware devices, and interact with system software. This streamlines the develop
programmers don't need to reinvent the wheel each time they develop a new application.
A framework is similar to an application programming interface (API), though technically a framework includes an
suggests, a framework serves as a foundation for programming, while an API provides access to the elements supporte
A framework may also include code libraries, a compiler, and other programs used in the software development process
Several different types of software frameworks exist. Popular examples include ActiveX and .NET for Windows developm
OS X, Cocoa Touch for iOS, and the Android Application Framework for Android. Software development kits (SDKs) are
these frameworks and include programming tools designed specifically for the corresponding framework. For exam
development software includes a Mac OS X SDK designed for writing and compiling applications for the Cocoa framewo
In many cases, a software framework is supported natively by an operating system. For example, a program wri
Application Framework will run on an Android device without requiring other additional files to be installed. Howeve
require a specific framework in order to run. For example, a Windows program may require Microsoft .NET Framewo
installed on all Windows machines (especially PCs running older versions of Windows). In this case, the Microsoft
installer package must be installed in order for the program to run.
NOTE: While frameworks generally refer to broad software development platforms, the term can also be used to
framework within a larger programming environment. For example, multiple Java frameworks, such as Spring, ZK, and
Framework (JCF) can be used to create Java programs. Additionally, Apple has created several specific frameworks th
by OS X programs. These frameworks are saved with a .FRAMEWORK file extension and are installed in the /System
directory.
Examples
of
OS
frameworks
include
AddressBook.framework,
CoreAudio.framework,
CoreT
QuickTime.framework.
Stands for "Graphical User Interface" and is pronounced "gooey." It is a user interface that includes graphical element
icons and buttons. The term was created in the 1970s to distinguish graphical interfaces from text-based ones, suc
interfaces. However, today nearly all digital interfaces are GUIs.
The first commercially available GUI, called "PARC," was developed by Xerox. It was used by the Xerox 8010 Inform
was released in 1981. After Steve Jobs saw the interface during a tour at Xerox, he had his team at Apple develop an o
a similar design. Apple's GUI-based OS was included with the Macintosh, which was released in 1984. Microsoft rele
based OS, Windows 1.0, in 1985.
For several decades, GUIs were controlled exclusively by a mouse and a keyboard. While these types of input devic
desktop computers, they do not work as well for mobile devices, such as smartphones and tablets. Therefore, mobile op
designed to use a touchscreen interface. Many mobile devices can now be controlled by spoken commands as well.
Because there are now many types of digital devices available, GUIs must be designed for the appropriate type of in
desktop operating system, such as OS X, includes a menu bar and windows with small icons that can be easily navigat
mobile OS, like iOS, includes larger icons and supports touch commands like swiping and pinching to zoom in or zo
interfaces are often designed to be controlled with knobs and buttons, and TV interfaces are built to work with a remote
of the type of input, each of these interfaces are considered GUIs since they include graphical elements.
NOTE: Specialized GUIs that operate using speech recognition and motion detection are called natural user interfaces,
Hardware
Computer hardware refers to the physical parts of a computer and related devices. Internal hardware devices include
drives, and RAM. External hardware devices include monitors, keyboards, mice, printers, and scanners.
The internal hardware parts of a computer are often referred to as components, while external hardware device
peripherals. Together, they all fall under the category of computer hardware. Software, on the other hand, consists o
applications that run on computers. Because software runs on computer hardware, software programs often have syste
list the minimum hardware required for the software to run.
Different kinds of objects often have a certain amount in common with each other. Mountain bikes, road bikes, an
example, all share the characteristics of bicycles (current speed, current pedal cadence, current gear). Yet each als
features that make them different: tandem bicycles have two seats and two sets of handlebars; road bikes have dro
mountain bikes have an additional chain ring, giving them a lower gear ratio.
Object-oriented programming allows classes to inherit commonly used state and behavior from other classes. In this e
becomes the superclass of MountainBike, RoadBike, and TandemBike. In the Java programming language, each clas
one direct superclass, and each superclass has the potential for an unlimited number of subclasses:
A diagram of classes in a hierarchy.
A hierarchy of bicycle classes.
The syntax for creating a subclass is simple. At the beginning of your class declaration, use the extends keyword, follo
the class to inherit from:
class MountainBike extends Bicycle {
// new fields and methods defining
// a mountain bike would go here
}
This gives MountainBike all the same fields and methods as Bicycle, yet allows its code to focus exclusively on the f
unique. This makes code for your subclasses easy to read. However, you must take care to properly document the sta
each superclass defines, since that code will not appear in the source file of each subclass.
As you've already learned, objects define their interaction with the outside world through the methods that they expos
object's interface with the outside world; the buttons on the front of your television set, for example, are the interface b
electrical wiring on the other side of its plastic casing. You press the "power" button to turn the television on and off.
In its most common form, an interface is a group of related methods with empty bodies. A bicycle's behavior, if spec
might appear as follows:
interface Bicycle {
// wheel revolutions per minute
void changeCadence(int newValue);
void changeGear(int newValue);
void speedUp(int increment);
void applyBrakes(int decrement);
}
To implement this interface, the name of your class would change (to a particular brand of bicycle, for example, such as
Implementing an interface allows a class to become more formal about the behavior it promises to provide. Interfa
between the class and the outside world, and this contract is enforced at build time by the compiler. If your class clai
interface, all methods defined by that interface must appear in its source code before the class will successfully compile.
IDE stands for both "Integrated Device Electronics" and "Integrated Development Environment." The first is a hardw
second is related to software programming.
1. Integrated Device Electronics
IDE was the most widely-used type of hard drive from the mid 1990s to the late 2000s. The "integrated" aspect of the n
the controller is integrated into the drive itself. IDE and ATA are often used synonymously since they both refer to the
drive. However, ATA describes the interface while IDE describes the actual hard drive.
The first IDE standard (ATA-1) was released in 1994 and supported data transfer rates of 8.3 Mbps in DMA mode. En
was standardized in 1996 and supported data transfer rates up to 16.7 Mbps twice the rate of the original standard. T
standards were labeled using ATA versions (up to ATA-7), maxing out at 133 Mbps. The IDE interface was eventually s
an even faster interface.
2. Integrated Development Environment
A software IDE is an application that developers use to create computer programs. In this case, "integrated" refers
development tools are combined into a single program. For example, a typical IDE includes a source code editor, deb
Most IDEs also provide a project interface that allows programmers to keep track of all files related to a project. M
control as well.
Some IDEs provide a runtime environment (RTE) for testing software programs. When a program is run within the RTE
track each event that takes place within the application being tested. This can be useful for finding and fixing bugs and lo
memory leaks. Because IDEs provide a centralized user interface for writing code and testing programs, a programme
change, recompile the program, and run the program again. Programming is still hard work, but IDE software h
development process.
As you've already learned, objects define their interaction with the outside world through the methods that they expos
object's interface with the outside world; the buttons on the front of your television set, for example, are the interface b
electrical wiring on the other side of its plastic casing. You press the "power" button to turn the television on and off.
In its most common form, an interface is a group of related methods with empty bodies. A bicycle's behavior, if spec
might appear as follows:
interface Bicycle {
// wheel revolutions per minute
void changeCadence(int newValue);
void changeGear(int newValue);
void speedUp(int increment);
void applyBrakes(int decrement);
}
To implement this interface, the name of your class would change (to a particular brand of bicycle, for example, such as
you'd use the implements keyword in the class declaration:
class ACMEBicycle implements Bicycle {
int cadence = 0;
int speed = 0;
int gear = 1;
// The compiler will now require that methods
}
}
Implementing an interface allows a class to become more formal about the behavior it promises to provide. Interfa
between the class and the outside world, and this contract is enforced at build time by the compiler. If your class clai
interface, all methods defined by that interface must appear in its source code before the class will successfully compile.
Java
Conozca ms sobre la tecnologa Java
Java es la base para prcticamente todos los tipos de aplicaciones de red, adems del estndar global para de
aplicaciones mviles y embebidas, juegos, contenido basado en web y software de empresa. Con ms de 9 millones d
todo el mundo, Java le permite desarrollar, implementar y utilizar de forma eficaz interesantes aplicaciones y servicios.
Desde porttiles hasta centros de datos, desde consolas para juegos hasta sper computadoras, desde telfonos m
Java est en todas partes.
Java ha sido probado, ajustado, ampliado y probado por toda una comunidad de desarrolladores, arquitectos de aplica
de Java. Java est diseado para permitir el desarrollo de aplicaciones porttiles de elevado rendimiento para el m
plataformas informticas posible. Al poner a disposicin de todo el mundo aplicaciones en entornos heterogneos, la
proporcionar ms servicios y mejorar la productividad, las comunicaciones y colaboracin del usuario final y reducir dr
de propiedad tanto para aplicaciones de usuario como de empresa. Java se ha convertido en un valor impagable para
ya que les permite:
Crear programas que se puedan ejecutar en un explorador y acceder a servicios Web disponibles
Desarrollar aplicaciones de servidor para foros en lnea, almacenes, encuestas, procesamiento de formularios H
Combinar aplicaciones o servicios que utilizan el lenguaje Java para crear aplicaciones o servicios con un gran
personalizacin
Escribir aplicaciones potentes y eficaces para telfonos mviles, procesadores remotos, microcontroladores, m
sensores, gateways, productos de consumo y prcticamente cualquier otro dispositivo electrnico
Registrarse en JavaOne Muchas universidades ofrecen cursos de programacin sobre la plataforma Java. Oracle A
completa cartera de software, plan de estudios, tecnologa alojada, formacin de profesorado, soporte y recursos d
instituciones educativas de primaria y secundaria, escuelas taller y centros de enseanza superior para uso del profe
una oferta Java con capacidad para cientos de miles de alumnos. Adems, los desarrolladores tambin pueden mejora
de programacin Java consultando el sitio web de desarrolladores de Java de Oracle, suscribindose a los boletines so
y Java Magazine, utilizando el tutorial de Java y el centro para nuevos usuarios de programacin Java, adem
certificaciones y cursos web, virtuales o dirigidos por instructores especializados.
Oracle Technology Network es la comunidad ms grande del mundo de desarrolladores de aplicacin, administr
administradores de bases de datos, desarrolladores/administradores de sistemas y arquitectos que utilizan las tecno
sector en combinacin con productos de Oracle.
Desde pequeos, vamos aprendiendo lenguajes de programacin. Herramientas educativas visuales como, por ejempl
BlueJ ensean a los jvenes a programar con el lenguaje de programacin Java y otros lenguajes de programacin
pensados para facilitar su uso.
Qu es JavaFX?
JavaFX est basado en Java. La plataforma JavaFX permite a los desarrolladores de la aplicacin crear e imp
aplicaciones de Internet enriquecidas (RIA) que se comportan de la misma forma en distintas plataformas. JavaFX a
Java permitiendo a los desarrolladores utilizar cualquier biblioteca de Java en aplicaciones JavaFX. Los desarrollado
sus capacidades en Java y utilizar la tecnologa de presentacin que JavaFX proporciona para crear experiencias v
atractivas.
JAVA ME
JAVA PLATFORM, MICRO EDITION (JAVA ME)
Java Platform, Micro Edition (Java ME) provides a robust, flexible environment for applications running on embedded and mobile dev
Things: micro-controllers, sensors, gateways, mobile phones, personal digital assistants (PDAs), TV set-top boxes, printers and more
flexible user interfaces, robust security, built-in network protocols, and support for networked and offline applications that can be down
Applications based on Java ME are portable across many devices, yet leverage each device's native capabilities.
Palabra(s) clave:
Java ME SDK
The Oracle Java, Micro Edition (Java ME) Software Development Kit (SDK) provides device emulati
development environment and a set of utilities for rapid development of Java ME applications. It inte
Connected Limited Device Configuration (CLDC) and the Connected Device Configuration (CDC) te
one simple development environment. The Java ME SDK is a successor to the Sun Java Wireless T
Java Toolkit for CDC and offers improved device emulation, a standalone lightweight development e
powerful tools to speed application development.
Palabra(s) clave:
Kernel
The kernel is a program that constitutes the central core of a computer operating system. It has complete control over e
in the system.
A kernel can be contrasted with a shell (such as bash, csh or ksh in Unix-like operating systems), which is the outermos
system and a program that interacts with user commands. The kernel itself does not interact directly with the user, but
the shell and other programs as well as with the hardware devices on the system, including the processor (also called th
unit or CPU), memory and disk drives.
The kernel is the first part of the operating system to load into memory during booting (i.e., system startup), and it r
entire duration of the computer session because its services are required continuously. Thus it is important for it to be
while still providing all the essential services needed by the other parts of the operating system and by the various applic
Because of its critical nature, the kernel code is usually loaded into a protected area of memory, which prevents it from
other, less frequently used parts of the operating system or by application programs. The kernel performs its tasks
processes and handling interrupts, in kernel space, whereas everything a user normally does, such as writing text in a t
programs in a GUI (graphical user interface), is done in user space. This separation is made in order to prevent user d
from interfering with each other and thereby diminishing performance or causing the system to become unstable (and po
When a computer crashes, it actually means the kernel has crashed. If only a single program has crashed but the
remains in operation, then the kernel itself has not crashed. A crash is the situation in which a program, either a user ap
the operating system, stops performing its expected function(s) and responding to other parts of the system. The prog
the user to freeze. If such program is a critical to the operation of the kernel, the entire computer could stall or shut down
The kernel provides basic services for all other parts of the operating system, typically including memory ma
management, file management and I/O (input/output) management (i.e., accessing the peripheral devices). These servic
other parts of the operating system or by application programs through a specified set of program interfaces referred to a
Process management, possibly the most obvious aspect of a kernel to the user, is the part of the kernel that ensure
obtains its turn to run on the processor and that the individual processes do not interfere with each other by writing to th
A process, also referred to as a task, can be defined as an executing (i.e., running) instance of a program.
The contents of a kernel vary considerably according to the operating system, but they typically include (1) a schedule
how the various processes share the kernel's processing time (including in what order), (2) a supervisor, which grants
to each process when it is scheduled, (3) an interrupt handler, which handles all requests from the various hardware d
drives and the keyboard) that compete for the kernel's services and (4) a memory manager, which allocates the syste
(i.e., locations in memory) among all users of the kernel's services.
The kernel should not be confused with the BIOS (Basic Input/Output System). The BIOS is an independent program st
motherboard (the main circuit board of a computer) that is used during the booting process for such tasks as initializin
loading the kernel into memory. Whereas the BIOS always remains in the computer and is specific to its particular hard
be easily replaced or upgraded by changing or upgrading the operating system or, in the case of Linux, by adding
modifying an existing kernel.
Most kernels have been developed for a specific operating system, and there is usually only one version available
system. For example, the Microsoft Windows 2000 kernel is the only kernel for Microsoft Windows 2000 and the Mi
kernel is the only kernel for Microsoft Windows 98. Linux is far more flexible in that there are numerous versions of th
each of these can be modified in innumerable ways by an informed user.
A few kernels have been designed with the goal of being suitable for use with any operating system. The best known
kernel, which was developed at Carnegie-Mellon University and is used in the Macintosh OS X operating system.
It is not necessary for a computer to have a kernel in order for it to be usable, the reason being that it is not necess
operating system. That is, it is possible to load and run programs directly on bare metal machines (i.e., computers w
system installed), although this is usually not very practical.
In fact, the first generations of computers used bare metal operation. However, it was eventually realized that conven
could be increased by retaining small utility programs, such as program loaders and debuggers, in memory between
programs gradually evolved into operating system kernels.
The term kernel is frequently used in books and discussions about Linux, whereas it is used less often when dis
operating systems, such as the Microsoft Windows systems. The reasons are that the kernel is highly configurable in th
users are encouraged to learn about and modify it and to download and install updated versions. With the Microsoft
systems, in contrast, there is relatively little point in discussing kernels because they cannot be modified or replaced.
Categories of Kernels
Kernels can be classified into four broad categories: monolithic kernels, microkernels, hybrid kernels and exokernel
advocates and detractors.
Monolithic kernels, which have traditionally been used by Unix-like operating systems, contain all the operating system
the device drivers (small programs that allow the operating system to interact with hardware devices, such as disk driv
printers). Modern monolithic kernels, such as those of Linux and FreeBSD, both of which fall into the category of
systems, feature the ability to load modules at runtime, thereby allowing easy extension of the kernel's capabilities as re
to minimize the amount of code running in kernel space.
A microkernel usually provides only minimal services, such as defining memory address spaces, interprocess comm
process management. All other functions, such as hardware management, are implemented as processes running i
kernel. Examples of microkernel operating systems are AIX, BeOS, Hurd, Mach, Mac OS X, MINIX and QNX.
Hybrid kernels are similar to microkernels, except that they include additional code in kernel space so that such code
than it would were it in user space. These kernels represent a compromise that was implemented by some deve
demonstrated that pure microkernels can provide high performance. Hybrid kernels should not be confused with monol
load modules after booting (such as Linux).
Most modern operating systems use hybrid kernels, including Microsoft Windows NT, 2000 and XP. DragonFly BSD
variant) of FreeBSD, is the first non-Mach based BSD operating system to employ a hybrid kernel architecture.
Exokernels are a still experimental approach to operating system design. They differ from the other types of kernels in t
is limited to the protection and multiplexing of the raw hardware, and they provide no hardware abstractions on top of wh
be constructed. This separation of hardware protection from hardware management enables application developers
make the most efficient use of the available hardware for each specific program.
Exokernels in themselves they are extremely small. However, they are accompanied by library operating systems, whic
developers with the conventional functionalities of a complete operating system. A major advantage of exokernel-based
can incorporate multiple library operating systems, each exporting a different API (application programming interface), s
and one for Microsoft Windows, thus making it possible to simultaneously run both Linux and Windows applications.
The Monolithic Versus Micro Controversy
In the early 1990s, many computer scientists considered monolithic kernels to be obsolete, and they predicted that
revolutionize operating system design. In fact, the development of Linux as a monolithic kernel rather than a microke
flame war (i.e., a war of words on the Internet) between Andrew Tanenbaum, the developer of the MINIX operating
Torvalds, who originally developed Linux based largely on MINIX.
Proponents of microkernels point out that monolithic kernels have the disadvantage that an error in the kernel can cau
to crash. However, with a microkernel, if a kernel process crashes, it is still possible to prevent a crash of the system a
restarting the service that caused the error. Although this sounds sensible, it is questionable how important it is in realit
systems with monolithic kernels such as Linux have become extremely stable and can run for years without crashing.
Another disadvantage cited for monolithic kernels is that they are not portable; that is, they must be rewritten for each n
processor type) that the operating system is to be used on. However, in practice, this has not appeared to be a major
has not prevented Linux from being ported to numerous processors.
Monolithic kernels also appear to have the disadvantage that their source code can become extremely large. Source c
software as it is originally written (i.e., typed into a computer) by a human in plain text (i.e., human readable alphanum
before it is converted by a compiler into object code that a computer's processor can directly read and execute.
For example, the source code for the Linux kernel version 2.4.0 is approximately 100MB and contains nearly 3.38 millio
version 2.6.0 is 212MB and contains 5.93 million lines. This adds to the complexity of maintaining the kernel, and it also
new generations of computer science students to study and comprehend the kernel. However, the advocates of monolith
in spite of their size such kernels are easier to design correctly, and thus they can be improved more quickly than ca
systems.
Moreover, the size of the compiled kernel is only a tiny fraction of that of the source code, for example roughly 1.1MB
version 2.4 on a typical Red Hat Linux 9 desktop installation. Contributing to the small size of the compiled Linux k
dynamically load modules at runtime, so that the basic kernel contains only those components that are necessary fo
itself and to load modules.
The monolithic Linux kernel can be made extremely small not only because of its ability to dynamically load modules bu
ease of customization. In fact, there are some versions that are small enough to fit together with a large number
programs on a single floppy disk and still provide a fully functional operating system (one of the most popular of whi
ability to miniaturize its kernel has also led to a rapid growth in the use of Linux in embedded systems (i.e., computer cir
products).
Although microkernels are very small by themselves, in combination with all their required auxiliary code they are, in fa
monolithic kernels. Advocates of monolithic kernels also point out that the two-tiered structure of microkernel systems,
operating system does not interact directly with the hardware, creates a not-insignificant cost in terms of system efficienc
L
Lenguaje de programacin
Lenguaje de Programacin
Lenguaje artificial que puede ser usado para controlar el comportamiento de una mquina, especialmente una com
componen de un conjunto de reglas sintcticas y semnticas que permiten expresar instrucciones que luego sern
distinguirse de lenguaje informtico, que es una definicin ms amplia, puesto estos incluyen otros lenguajes como
que dan formato a un texto y no es programacin en s misma.
El programador es el encargado de utilizar un lenguaje de programacin para crear un conjunto de instrucciones que, a
programa o subprograma informtico. Los lenguajes de programacin pueden clasificarse segn el paradig
procedimentales, orientados a objetos, funcionales, lgicos, hbridos, etc. Son ejemplos de lenguajes de programaci
ActionScript, ada, python, pascal, c, basic, JAVA, JavaScript, etc.
Librera (Software)
(library). En informtica, una biblioteca es una coleccin o conjunto de subprogramas usados para desarrollar softw
bibliotecas no son ejecutables, pero s pueden ser usadas por ejecutables que las necesitan para poder funciona
mayora de los sistemas operativos proveen bibliotecas que implementan la mayora de los servicios del sistema.
Dichas libreras contienen comodidades que las aplicaciones modernas esperan que un sistema operativo provea. En
tambin suele referirse como "librera", una mala traduccin de library (que es en realidad biblioteca).
Tipos de bibliotecas Bsicamente existen dos tipos de bibliotecas:
* Biblioteca esttica (de enlace esttico).
* Biblioteca compartida (de enlace dinmico).
Linux
Linux is a high performance, yet completely free, Unix-like operating system that is suitable for use on a wide range of
products. Most distributions (i.e., versions) consist of a kernel (i.e., the core of the operating system) together with hun
and application programs in a coordinated package.
A narrower, and somewhat less common, meaning of the term Linux is just the kernel itself. However, when referrin
usually the expression the Linux kernel is used.
Linux was started as a hobby in 1991 by Linus Torvalds while a student at the University of Helsinki (in Finland) becau
with the MS-DOS operating system that came with his new personal computer. He greatly preferred the much more
UNIX that he had been using on the university's computers, but he was not able to afford the high licensing fees for an
versions then available. Today, Torvalds remains the spiritual leader of the Linux movement, and he still coordinates the
Linux kernel.
Rapid Growth
The use of Linux by individuals, corporations, government agencies and academic institutions around the world has be
and many computer experts think that it will eventually become the most widely used operating system for man
applications.
This rapid growth is a result of several factors including (1) the major advantages that Linux has over other operating
over the other Unix-like operating systems and the Microsoft Windows family of operating systems), (2) the rapid pr
made on further improving the performance and increasing the functions of Linux, (3) the expanding array of hig
programs, (4) the growing awareness by individuals, businesses and other organizations throughout the world of the
and (5) an increase in the number of people who are familiar with installing, administering and using Linux.
Well in excess of a hundred (and possibly more than two hundred) Linux distributions have been developed by
companies, non-commercial organizations and individuals. Some of the most popular are Red Hat, SuSE, Mandrake,
Linspire and Ubuntu. In addition to these mainstream distributions, numerous specialized distributions are also availa
optimized for specific types of computers or applications (e.g., for use on notebook computers or routers), those for s
countries (e.g., Polish or Chinese) and ultra-miniature distributions (some of which can even fit on just a single f
muLinux).
UNIX Clone
UNIX was originally developed by Ken Thompson in 1969 at Bell Labs, the highly innovative research arm of AT&
telecommunications monopoly). Much subsequent work was carried out at the University of California at Berkeley (UCB)
Linux is a clone of UNIX; that is, it was developed to mimic the form and function of UNIX but its source code wa
independently (i.e., none of it was copied from UNIX source code). Source code is the version of an operating system o
is originally written (i.e., typed into a computer) by a human in a programming language (e.g., the C language in th
kernel).
Linux incorporates all of the features that have made Unix-like systems the longest-lived and what many consider to b
systems still in widespread use. That is, it is a multiuser (i.e., allows multiple simultaneous users), multitasking, highly fle
configuration), inherently secure (including high resistance to viruses, spyware and other malware) and extraor
resistance to crashing and needing rebooting) operating system. A multitasking operating system is one in which m
processes (also referred to as tasks) can execute (i.e., run) on a single computer seemingly simultaneously and without
other.
As is the case with most of the Unix-like operating systems, Linux is a highly mature (and very sophisticated) work of
been skillfully crafted by the collective efforts of thousands of the best minds in computer science. There is no planned (
obsolescence.
Yet Linux is much more than just a clone of another highly successful operating system. It also represents a philosophy
incorporates the simple but elegant Unix philosophy but which also has also taken it a big step further and made it a
system.
Moreover, Linux is a product of the Internet era. In contrast to proprietary (i.e., commercial) operating systems, which h
mostly by paid programmers employed at corporations, Linux has been developed virtually since its inception by an
network of unpaid (but highly skilled and motivated) volunteers who communicate via the Internet.
Advantages as Compared With Proprietary Unix-like Systems
Linux has several important advantages over the proprietary Unix-like operating systems (e.g., AIX, HP-UX and Solaris)
software. This means that it is free both in a monetary sense and with regard to use. That is, everyone is permitted to d
the Internet (or obtain it from other sources, including from friends) at no cost And everyone is also permitted to us
purpose, including studying, modifying, extending, installing on as many computers as desired, making copies as man
and redistributing. This is possible because Torvalds wisely released it under a free software license, the GNU Ge
(GPL).
Yet another advantage of Linux as compared with proprietary Unix-like operating systems is that it can generally run on
of hardware, including both system types and processor types. For example, it can run on cell phones, game
computers, desktop computers, workstations, mainframes, supercomputers -- and even some wristwatches.
Linux is no longer the only Unix-like operating system that available under a free software license. There are several
the BSD (Berkeley Software Distribution) systems, which descended from work done on UNIX at UCB. Each of th
include FreeBSD, NetBSD, NetBSD and Darwin (which is used by Mac OS X), has its own advantages and disadvan
number of users of Linux is much greater than that of the BSDs, mainly because it is easier to use, particularly for
proficient.
Advantages as Compared With Microsoft Windows
Linux also has some very big advantages as compared with the Microsoft Windows family of operating systems2. The
businesses and other organizations can save vast sums of money because there are no licensing fees nor is their an
(and often disruptive) upgrades (so-called forced upgrades).
Linux can also cut administration and maintenance costs as compared with the Microsoft Windows operating sy
considerably more stable (it rarely crashes or needs rebooting) and is highly resistant to viruses and other malicious atta
In addition, Linux has the advantage that it can operate on older hardware that is unsuitable for newer versions of Micr
is because it is much more compactly written. Whereas upgrading to newer versions of Microsoft Windows generally re
for new hardware, it is often possible to upgrade to newer versions of Linux without buying any new equipment.
The availability of the source code for Linux can also offer substantial benefits to users as compared with the closed
code for the Microsoft Windows operating systems. For example, corporations, government agencies and other organ
the code for security holes, including secret backdoors that allow others (e.g., government agencies) to access or chan
source code also allows users to customize Linux to a far greater extent than can be done with closed source operating
Thousands of application programs are available for Linux. Many of them offer performance and functions at least equ
for Microsoft Windows and other operating systems. Moreover, most of them are also free software, and many are in
CDROMs that contain Linux and can be installed automatically during Linux installation.
Virtual machines (VMs) are also widely used to run multiple instances of the same operating system, each running
different set of applications. The separate VM instances prevent applications from interfering with each other. If one app
affect the programs in the other VMs. This approach differs from a dual-boot or multiboot environment, in which the use
one OS at startup (see dual-boot). All virtual machines in the same computer run simultaneously.
VMs Are Like Machines Within the Machine
Each virtual machine functions as if it owned the entire computer. The operating systems in each VM partition are cal
systems," and they communicate with the hardware via the virtual machine monitor (VMM) control program. The V
hardware for each VM (for details, see virtual machine monitor).
Although a hot topic in the IT world, virtual machine technology dates back to the 1960s (see VM). The terms "v
"virtualization" are used synonymously; however, virtualization also refers to other techniques (see virtualization)
application virtualization and OS virtualization.
This shows three applications running in a regular computer versus a virtualized computer. In the VM example, the gues
may be the same or different.
Guest operating systems can run in a virtual machine with or without modification. If changes are made to the OS to re
is said to be "paravirtualized." For example, Linux and various Unix versions have been paravirtualized to run in the X
However, if the CPU hardware supports virtualization, Xen can run guest operating systems unmodified. In 2004 and 2
added virtualization to their CPUs, which traps the calls to the x86 hardware, making it easier to develop VMMs th
paravirtualized guest operating systems (see hardware virtualization).
Advantages of Virtualization
#1 - Consolidation
Multiple operating systems can run in the same server, eliminating the need to dedicate a single machine to one appli
applications can run simultaneously with their respective operating systems in multicore servers with many threads
space and power consumption in the datajustify. New versions of an OS and new applications can be deployed with
hardware.
#2 - Stability and Security
Conflicts can arise between supposedly stable applications, and troubleshooting can be daunting. As a resu
administrators often host each type of application in a separate server even if the server is grossly underutilized. Mult
running bread and butter applications are kept safely separated from each other. In addition, since each VM is isola
security breach in one does not affect the others. The fault tolerance and security brought about by the isolation of each
major benefit of virtualization.
#3 - Development Flexibility
A virtualized computer can host numerous versions of an operating system, allowing developers to test their progr
environments on the same machine. In addition, with each application running in its own virtual partition, crashing in one
not bring down the system.
#4 - Migration and Cloning
Virtual machines, each with their own OS and applications, function like self-contained packages that are said to be
hardware." It is relatively easy to move a VM from one server to another to balance the workload, to migrate to faster ha
recover from hardware failure. VMs can be quickly cloned and deployed.
#5 - Desktop Virtualization
An increasing trend is to store a user's desktop (OS and applications) in a separate virtual machine in the server a
dedicated terminal as a "thin client" to the server. Each user is isolated from all other users due to the virtual machine
maintenance of the applications is shifted from each user's desktop to the datajustify (see thin client). See virtu
virtualization, application virtualization and OS virtualization.
Middleware
Middleware is one of those tricky words that more or less describes what it does. It is software that connects different pa
or a series of applications. It can be though of as a sort of glue that holds a network and its connected computers toget
be a single application, or it can be an entire server.
People can also think of middleware as an adapter device that would run from a new printer to an older computer. The a
two devices, enabling communication and, therefore, functionality between them. Common packages inc
Computing Environment (DCE) and the Common Object Request Broker Architecture (CORBA).
Every type of middleware has the same general purpose: to allow multiple computers to do multiple things across a net
computer to do many things or one complicated thing across a network. For example, some is used to link a databa
server, allowing users to access the database via a Web browser. Certain complicated computer systems require this
order to run their demanding applications. A perfect example of a large form of middleware is an application server, whi
dedicated to a single application or a single type of application.