UNIVERSIDAD
DEL VALLE DE MEXICOCAMPUS
CHAPULTEPEC
PRINCIPIOS DE PROGRAMACIÓN
El
Kernel y el Shell
Las funciones centrales de un SO son controladas por el núcleo (kernel) mientras que la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la parte más importante del DOS es un programa con el nombre "COMMAND.COM" Este programa ti ene dos partes. El kernel, que se mantiene en memoria en todo momento, contiene el código máquina de bajo nivel para manejar la administración de hardware para otros programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el interprete de comandos. Las funciones de bajo nivel del SO y las funciones de interpretación de comandos están separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede cuando carga s Microsoft Windows, el cual toma el lugar del shell, reemplazando la interfaz de línea de comandos con una interfaz gráfica del usuario. Existen muchos shells diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versión 5.0 incluyó un Shell llamado DOS SHELL.
http://www.salonhogar.com/ciencias/tecnologia/computadoras/elkernelyelshell.htm
El término multitarea se refiere a la capacidad del
SO para correr mas de un programa al mismo tiempo. Existen dos esquemas que los
programas de sistemas operativos utilizan para desarrollar SO multitarea, el
primero requiere de la cooperación entre el SO y los programas de aplicación.
Los programas son escritos de tal manera que periódicamente inspeccionan con el SO para ver si cualquier otro programa necesita a la CPU, si este es el caso, entonces dejan el control del CPU al siguiente programa, a este método se le llama multitarea cooperativa y es el método utilizado por el SO de las computadoras de Machintosh y DOS corriendo Windows de Microsoft.
El segundo método es el llamada multitarea con
asignación de prioridades. Con este esquema el SO mantiene una lista de
procesos (programas) que están corriendo. Cuando se inicia cada proceso en la
lista el SO le asigna una prioridad. En cualquier momento el SO puede
intervenir y modificar la prioridad de un proceso organizando en forma efectiva
la lista de prioridad, el SO también mantiene el control de la cantidad de
tiempo que utiliza con cualquier proceso antes de ir al siguiente.
Con multitarea de asignación de prioridades el SO
puede sustituir en cualquier momento el proceso que esta corriendo y reasignar
el tiempo a una tarea de mas prioridad. Unix OS-2 y Windows NT emplean este
tipo de multitarea.
Un SO multiusuario permite a mas de un solo usuario
accesar una computadora. Claro que, para llevarse esto a cabo, el SO también
debe ser capaz de efectuar multitareas.
Unix es el Sistema Operativo Multiusuario más
utilizado. Debido a que Unix fue originalmente diseñado para correr en una
minicomputadora, era multiusuario y multitarea desde su concepción.
Actualmente se producen versiones de Unix para PC
tales como The Santa Cruz Corporation Microport, Esix, IBM,y Sunsoft. Apple
también produce una versión de Unix para la Machintosh llamada: A/UX.Unix
Unix proporciona tres maneras de permitir a
múltiples personas utilizar la misma PC al mismo tiempo.
Mediante Módems.
Mediante conexión de terminales a través de puertos
seriales
Mediante Redes.
Las computadoras que tienen mas de un CPU son llamadas multiproceso. Un
sistema operativo multiproceso coordina las operaciones de la computadoras
multiprocesadoras.
Ya que cada CPU en una computadora de multiproceso
puede estar ejecutando una instrucción, el otro procesador queda liberado para
procesar otras instrucciones simultáneamente.
Al usar una computadora con capacidades de
multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las
computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja.
Los primeros Sistemas Operativos Multiproceso
realizaban lo que se conoce como:
Multiproceso asimétrico: Una CPU principal retiene
el control global de la computadora, así como el de los otros procesadores.
Esto fue un primer paso hacia el multiproceso pero
no fue la dirección ideal a seguir ya que la CPU principal podía conv ertirse
en un cuello de botella.
Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una CPU controladora única. La barrera a vencer al implementar el multiproceso simétrico es que los SO tienen que ser rediseñados o diseñados desde el principio para trabajar en u n ambiente multiproceso.
Las
extensiones de Unix, que soportan multiproceso asimétrico ya están disponibles
y las extensiones simétricas se están haciendo disponibles. Windows NT de
Microsoft soporta multiproceso simétrico.
COMPILADOR:
Es un programa que traduce un lenguaje de alto nivel al lenguaje máquina. Un programa compilado indica que ha sido traducido y está listo para ser ejecutado. La ejecución de los programas compilados es más rápida que la de los interpretados, ya que el interprete debe traducir mientras está en la fase de ejecución (saca todos los errores).
INTERPRETE:
Traductor de lenguajes de programación de alto nivel, los interpretes ejecutan un programa línea por línea. El programa siempre permanece en su forma original(programa fuente) y el interprete proporciona la traducción al momento de ejecutar cada una de la s instrucciones .
http://www.geocities.com/siliconvalley/screen/2367/COMPU_S.htm
Siempre ha existido el mito de que a Microsoft se le
justifica haber copiado la Interfaz gráfica de la Macintosh, porque Apple se
copió de la interfaz creada por Xerox PARC (Palo Alto Research Center)
Apple no se copió la interfaz de las Macs de Xerox,
Apple Computers habia contratado algunas personas del equipo de Xerox quienes
creían en el concepto de la interfaz gráfica. Este concepto es muy amplio,
hacer que el uso de una computadora sea más fácil, gracias a íconos, menues,
ventanas, etc.
El trabajo de Apple en GUI's (Graphical User
Interface) comienza con la visita de Steve Jobs en el centro de investigaciones
de Palo Alto. Apple anteriormente tenía trazadas las metas de ofrecer una
computadora de uso masivo, más fácil de usar, y posiblemente de utilizar los
mismos conceptos (iconos, menues,etc.). Debemos recordar que los iconos no eran
nuevos, los hemos utilizado durante años, en avisos internacionales en las
calles, carreteras, etc. Los menues no eran nuevos tampoco, ya existían los
menues basados en texto para aquel entonces.
Jef Raskin había trabajado en Xerox y convenció a
Steve Jobs a que visitara Xerox, Jobs volvió convertido en un abanderado de las
GUI para la facilidad de uso.
Job negoció un trato con Xerox, le entregaría a
Xerox una gran cantidad de acciones de Apple si podía volver con algunos
programadores, para inspirarlos un poco más en los conceptos de GUI. Esto fué
como un tour de un día, Xerox estuvo de acuerdo, y a esto, algunos llaman robo.
PARC era un centro de investigaciones, en el cual no
se desarrollaban verdaderos productos, allí se desarrollaban ideas,. Xerox no
veia a Apple como competencia, por eso le permitieron entrar y les cobraron
porque sabían que sus investigaciones tenían valor.
Apple estaba creando un producto es por esto que
luego contrata unos cuantos programadores de Xerox para empezar a trabajar en
los proyectos Lisa y Mac
Las diferencias en entre Xerox y Apple fueron
grandes, en Xerox habían ventanas traslapadas pero no se podía operar
directamente sobre ellas, para moverlas se seleccionaba una opción de un menú
que se tenía para cada ventana y luego se introducía el nuevo tamaño o posición
utilizando coordenadas numéricas. Habían íconos pero no estaban asociados con
archivos, eran mas que todo "botones" de acción. Xerox utilizaba los
iconos como verbos (hacer esto), Apple los utilizaba como pronombres, objetos,
los mismos representaban datos que uno manipulaba. En Xerox no existía mucha
manipulación directa y el uso de muchas ventana era más que todo para tener
múltiples terminales de caracteres como DOS. Compare esto con Macintosh y verá
que Apple fue mucho más lejos a partir de lo encontrado.
La Mac era una computadora personal con 128k de
memoria RAM y utilizaba un procesador Motorola 6800, las máquinas de Xerox eran
de todo menos una computadora personal, no eran productos, eran herramientas de
investigación, además que las arquitecturas eran totalmente distintas.
Nota: No habia una sola línea de código igual en
ambas interfaces, y el diseño de ambas interfaces y sistemas fue radicalmente
distinto.
Todo comienza porque Microsoft fue una de las
primeras compañías en desarrollar software para Apple. Steve Jobs sabía que
necesitaba software para que la Mac fuese comercialmente viable, y Jobs se dió
cuenta que Microsoft se estaba abriendo camino en el mercado de las aplicaciones.
Muy pocos recuerdan que Microsoft en un principio
creaba lenguajes, hasta que "robaron" el sistema operativo DOS, y no
fue hasta que salió la Mac que Microsoft empieza a crear aplicaciones.
Jobs le enseña a Microsoft los primeros prototipos
de la Mac. A Bill Gates le gustan las ideas y accede a escribir aplicaciones
para la Mac.
Gates luego amenaza con no soltar sus aplicaciones
justo antes de soltar al mercado la Mac, a menos que Steve Jobs estuviese de
acuerdo con las siguientes condiciones:
Apple tenía que darles licencia a algunos de las aplicaciones de Microsoft para que estas utilizaran la interfaz de Macintosh en PC. (La suite de aplicaciones luego creció a Windows 1.0 y Office. Recuerden que Windows comenzó como una suite de aplicaciones y no como un Shell de Sistema Operativo.(Como Apple habia licenciado estos conceptos a Microsoft, esto debilitó su demanda en contra de Microsoft, en lo contrario al mito popular que dice que Apple perdió la demanda porque Microsoft no le robó la interfaz, la razón real de haber perdido la demanda, fue el hecho de haber licenciado estas tecnologías y se le concede a Microsoft el beneficio de la duda.)
Apple tenía que dejar de hacer su proyecto MacBasic,
el cual estaba ya listo y mucho mejor que Microsoft Basic. MacBasic ya tenia
muchos de los conceptos que Microsoft robó para crear Visual Basic. (Al parecer
en el futuro, esta practica se trato de repetir para matar a QuickTime)
Luego Microsoft decidió que la interfaz gráfica no
era lo suficientemente buena y empezó a desarrollar una suite de aplicaciones
que utilizaría los conceptos de Mac para ventas, Morse y manipulación directa
para lograr sus fines. Esto se convirtio en Windwos 1.0 y luego evolucionó en
el Windows que hoy conocemos (y algunos odian)
El hecho de que Microsoft haya "pedido
prestada" la interfaz de MacOS no es como lo ocurrido con Xerox y Apple
(un intercambio de ambas perspecciones), este caso es mucho más intimo que es,
Microsoft se llevó el mejor programador de Mac, y lo tuvieron haciendo casi
todas las decisiones de diseño del primer Windows. Bill Gates le dijo que
hiciera que la PC se viera y trabajara "TAL COMO UNA MAC", esto es
una cita de Bill Gates!!!!, ya ven porque se dice que Apple expandió, Microsoft
robó.
La Similaridad no fue solo en diseño, existen
herramientas/APIs que son casi idénticas (en interfaz). Microsoft copió
estrcturas de datos y muchas rutinas, nombres y muchos conceptos de otras cosas
también. Si no fuese por el hecho de que ellos hackearon su software para
correr encima de DOS también se hubiesen copiado todo el código de arranque y
del kernel. Si U. Observa muchas de las viejas rutinas del viejo Windows verá
que los nombres y estructuras son idénticos a los de la Mac. Pero Microsoft fue
lo suficientemente inteligente como para cambiar un nombre de cada 10,
re-ordenar las cosas, para evitar la demanda y decir que no eran idénticos.
Microsoft tuvo que hacer unos cambios en diseño para que corriera en PC, pero
en realidad el trabajo de diseño por parte de Microsoft fue nulo. La Mac era un
documento de diseño viviente.
http://www.wedoit4you.com/reviews4you/show_review.php?Rev_pk_id=33
16.1. Introducción.
Hasta ahora hemos visto varias formas de comunicar
aplicaciones en Windows (el portapapeles, SendKeys y DDE), todas ellas nos
permiten alguna funcionalidad extra entre aplicaciones, pero se quedan bastante
cortas frente a lo que puede hacer OLE (Object Linking and Embedding: Vinculación
e incrustación de objetos).
OLE es un estándar desarrollado por Microsoft para
la comunicación entre aplicaciones, incrustación de objetos de algún tipo
dentro de una aplicación, reutilización de código y uso de servicios que ofrece
una aplicación desde otra distinta (a esto se le llama automatización OLE).
Ejemplos de lo que podemos hacer con OLE son:
ü
Introducir un documento de Word o de Excel desde nuestro programa
usando el mismo entorno de Word o de Excel (en un formulario de VB).
ü
Llamada a Word o Excel (o muchos otros programas) desde nuestra
aplicación con una serie de datos.
ü
Uso de alguna característica en particular de Word, por ejemplo el
corrector ortográfico.
ü
Insertar un gráfico de Excel en un documento de Word.
ü
Crear una aplicación que ofrezca servicios OLE a cualquier otra
aplicación que desee usarlos.
OLE no es algo particular de Visual Basic, sino de
Windows, por lo tanto se puede hacer entre dos aplicaciones que no estén hechas
en VB (Delphi , Visual C++, etc.), así como por supuesto Visual Basic. Lo que
nos va a permitir VB es usar las capacidades OLE de Windows, e incluso crear
aplicaciones OLE que ofrezcan servicios a otras: una calculadora realizada en
VB podría ser dotada de características OLE, para que se pudieran hacer operaciones
matemáticas desde otro programa que no posea estas características.
Es decir,
básicamente OLE permite dos cosas:
Compartir
información entre aplicaciones distintas, que por tanto tendrán sus
documentos en formatos distintos. Incrustaremos o vincularemos objetos de un
tipo en objetos de otro (desde Word por ejemplo se puede hacer desde el menú
Insertar, Objeto, con lo que nos aparece una pantalla para seleccionar el tipo
de objeto). Esto es bastante útil, ya que con los antiguos programas en MS-DOS compartir
datos entre un programa de contabilidad y una hoja de cálculo o una base de
datos era muy complejo, ya que tenían que tener formatos compatibles, o bien
hacer un programa que convirtiera datos de un formato a otro.
Usar
características de otras aplicaciones para que no debamos programarlas en
la nuestra otra vez (automatización OLE).
Es importante tener en cuenta que con OLE lo que
hacemos es usar capacidades de otras aplicaciones, por lo tanto si nuestra
aplicación quiere usar el diccionario de Word, sólo funcionará en los
ordenadores donde esté instalado Word, además para poder usar OLE la aplicación
debe estar preparada para ello, es decir podemos usar OLE con Word porque Word
está hecho pensado para ofrecer servicios OLE.
Además OLE es mucho más robusto que DDE a la hora de
producirse errores: si usamos una característica de Word, OLE se ocupa de abrir
Word si no lo está, realizar las operaciones que sean y al final cerrar Word si
no se está usando para nada más. Como contrapartida OLE tiene como principales
inconvenientes que gasta bastantes recursos del sistema, ya que para realizar
una sola operación con Word, se debe cargar completo, no se puede cargar sólo
una parte (la que nos haga falta) y que las aplicaciones que ofrecen servicios OLE
pueden tener errores que no dependen de nuestro programa.
http://www.geocities.com/udea2000/Ceubas16.htm
En este artículo se presentan, a grandes rasgos, las
aplicaciones que ofrece el paquete ofimático StarOffice 4.0. Y se analiza en
más detalle la aplicación de creación de presentaciones (algo muy parecido al
PowerPoint de MS). En posteriores artículos se tratará el resto de las
aplicaciones: procesador de textos, hoja de cálculo, navegador web, etc.
Introducción
Aun a riesgo de caer en frases muy típicas, se puede
describir al programa StarOffice 4.0 como:
"Una solución integral a los problemas
informáticos de cualquier departamento"
Concretando: el paquete StarOffice contiene las
siguientes aplicaciones (intentaré no dejarme ninguna): procesador de textos,
hoja de cálculo, base de datos, editor de presentaciones, lector de correo,
cliente ftp, lector de noticias, navegador web, editor HTML y editor gráfico.
http://www.linuxfocus.org/Castellano/May1998/article40.html
|
ENTRADA |
SALIDA |
ALMACENAMIENTO |
COMUNICACIÓN |
|
teclado |
Impresora(todas) |
Disco duro |
modem |
|
mouse |
Bocinas |
Disquette 31/2 |
Blue tooth |
|
joystick |
Monitor |
Cd (todos) |
Fax |
|
monitor |
cañón |
Memoria USB |
Infrarrojo |
|
Scanner |
Microfilm |
Memostick |
“Tarjeta de red” |
|
Camara(digitalfoto) |
nanofilm |
Tarjetas de memoria |
|
|
Micrófono |
graficador |
Cintas magnéticas |
|
|
Lápiz óptico |
|
Tarjetas perforadas |
|
|
Webcam(video) |
|
bioalmacenamiento |
|
|
Lector código |
|
|
|
|
Perforador de cinta |
|
|
|
|
Lector de tarjetas |
|
|
|
|
Lector de chips |
|
|
|
|
|
|
|
|
CLASIFICACIÓN DEL SOFTWARE
USO GENERAL
Con
licencias vendidas, solo el uso necesario.
SUITES
generales
APLICACIONES
SUITES
con aplicaciones. ASPEL- administración
y contaduría.
SUITE
de COREL diseño Easycreator
MAC
tiene software de edición de multimedia integrado
HP
también lo tiene.
MERCADO VERTICAL
Por
una o dos empresas software exclusivo menos que software a la medida pero más
que software de aplicación
SOFTWARE A
Hecho
para una organización
SOFTWARE LIBRE ( freeware)
No
tiene costo. Kazaa, Linux, MS OFFICE,
Ventajas: beneficios sociales y tecnológicos/ libre
distribución/ gracias a Internet, forma comunidades / deseo de crear software
nuevo, más robusto.
Desventajas:
no tiene garantía que provenga del autor / conocer el funcionamiento del
sistema operativo( hecho por y para programadores). Relativamente
es menos seguro que el de marca.
Shareware.
Permite compartir el software
pero bajo permiso del autor y en ocasiones te lo dan a prueba para compra
posterior. No tiene acceso al código fuente, no puede ser modificado.
PRINCIPIOS
DE PROGRMACIÓN
lConceptos
básicos de informática
M.Ing.
Norma Ochoa
lDefinición de informática
lComputo como herramienta
lImportancia de los sistemas de información
lIndice de crecimiento de la información
lClasificación de computadoras
lDispositivos periféricos
lClasificación de software
lSistemas Operativos
lSoftware de aplicación
lSoftware de proramación
lMedios de almacenamiento
lMicrosoft office
lTecnología Ole
lTecnología Active X
lMS Office y otras alternativas
lImportancia del Procesador de palabras, hoja de calculo, software de
presentaciones, bases de datos, información compartida
lCaracterísticas
de una Suite de trabajo.
Informática
lDe 2
palabras información y automatica
lDel
francés Informatique
lOtro
término computación
lRealizar
operaciones
lAritméticas y lógicas
Utilidad
del cómputo
lPRACTICA
DE LOS ALUMNOS
l¿uso
de la informatica?
lTrabajo
lEstudio
lVida
social
lRelaciones interpersonales
¿Para
qué los sistemas de información?
lTomar
decisiones
l3
niveles
lEstratégico
lTáctico
loperacional
lCantidad
y calidad de la información
lMucha
cantidad y poca calidad operacional
lMucha
calidad y poca cantidad estratégico
lTipo
de decisiones
lDeterministicas
lProbabilisticas
lincertidumbre
lComo esta formado un sistema de información
Elementos
lEquipo
computacional
lRecurso
humano
lDatos
o información fuente
lProgramas
lTelecomunicaciones
lProcedimientos (políticas)
El
proceso
lEntrada
lProceso
lSalida
lalmacenamiento
CLASIFICACIÓN
lSupercomputadoras
lMainframes
lMinicomputadora
lMicrocomputadora
lLaptop
y notebook
lDe propósito especial
crecimiento
DISPOSITIVOS
PERIFERICOS
lDe entrada
lDe salida
lDe almacenamiento
lDe
comunicación
Clasificación
del Software
lDe
uso general
lDe
aplicaciones
lDe
mercado vertical
lDe
aplicación a la medida
lLibre
Lenguajes
y Programación
lLenguaje
máquina o binario
lEnsamblador
o nemotécnico
lA problemas, procedimientos y objetos, consulta y aplicación directa.
llenguaje
natural.
lCompilador,
interprete
lALGORITMO, DECISIONES
MEDIOS
DE ALMACENAMIENTO
lNuevos,
novedosos y cuales pueden existir en el futuro.
lPRACTICA DE CLASE.
lCual
medio que tu inventes será bueno en el futuro y porque?