En un principio, antes incluso de UNIX, fue la multitarea.
Previamente publicado en GUMBits número 1
Cuando me comprometí a escribir esta columna hice una pequeña encuesta entre mis amigos maqueros. Les pregunté: ¿De qué os gustaría que tratara un artículo sobre el UNIX del MacOS X? Casi todos respondieron lo mismo: el terminal y los comandos básicos. Así que fui a ponerme a ello cuando me di cuenta de que en todas las revistas comerciales, fanzines, foros y páginas web que en este mundo tratan de los ordenadores de la manzanita ya se habían escrito miles de palabras sobre este tema. Así que, amigos, los que estéis esperando otro tutorial ultraintroductorio... lo siento. Al menos, en este número no trataremos decd, ls, ps
nicat
. Ello no quita que en siguientes entregas nos planteemos esclarecer algunas de esas misteriosas órdenes.
Entonces, ¿por dónde empezar? ¿La historia? ¿La filosofía de UNIX? O, ¿por temas más profundos, más técnicos?. Digamos, la estructura de ficheros o cómo configurar el sistema. O, quizás sería interesante plantear un debate «político»: ¿es mejor LinuX que Darwin?. ¿Si se dispone de un sistema operativo gratuito y contrastado, por qué usar uno nuevo y de pago?. En fin, puntos de vista no faltan para plantear. Y así espero que lo hagamos,... más tarde. Pero, por ser el primer día, ¿qué tal si, para variar, empezáramos por el principio? Es decir, ¿que es UNIX?
La respuesta técnica es que UNIX es un sistema operativo multitarea y multiusuario implementado en multitud de máquinas (no únicamente computadoras). El concepto de sistema operativo lo tenemos más o menos claro: son los programas que usa el ordenador para ponerse en funcionamiento y que abarcan una serie de rutinas que efectuan operaciones básicas y a las que otros programas (las aplicaciones, en lenguaje mac) pueden acceder para acelerar su funcionamiento, por facilidad de programación y para aumentar la coherencia interna del funcionamiento del ordenador. En cambio, las ideas de multitarea y de multiusuario requieren una explicación más detallada.
Para entender bien lo que es un sistema multitarea tendremos que remontarnos a los tiempos en que los ordenadores (o, mas bien, los sistemas operativos) eran monotareas. Es decir, cada vez que alguien quería realizar un cálculo en un ordenador, se escribía el programa en papel, se pasaba a tarjetas perforadas y se ejecutaba en la CPU, proporcionando los resultados que se solían devolver en papel continuo. En esa época los ordenadores eran escasos y estaban muy solicitados, con lo cual el flujo de paquetes de tarjetas perforadas era permanente. Sin embargo, una gran parte del tiempo la máquina se encontraba desocupada, esperando una nueva carga de tarjetas o que la impresora terminara de escribir los resultados. Además, los usuarios entregaban sus programas y no veían las respuestas hasta horas o días después, cuando el programa las había generado la mayor parte de las veces en minutos o segundos. La solución nos parece ahora simple, pero no llegó hasta después de años de trabajo: el sistema operativo debe repartir su tiempo entre tareas diferentes, pudiendo ser ejecutados varios programas simultáneamente.
Esta es la definición de la auténtica multitarea. Hasta hace algunos años, solamente los grandes ordenadores eran capaces de mantenerla. De hecho, una de los defectos que se le achacaba al Sistema 9 de Apple es que la multitarea que soportaba no era del tipo que hemos comentado, sino de la llamada cooperativa. En ésta, no es el sistema operativo el que reparte el tiempo entre las distintas aplicaciones, sino que son éstas las que hacen llamadas al sistema cuando consideran que pueden ceder un poco de su tiempo al no encontrarse en actividad crítica. Si la aplicación no se encontraba cortésmente programada o entraba en un bucle, sus problemas intrínsecos podían provocar el bloqueo del funcionamiento del ordenador. En cambio, en MacOS X y en otros sistemas con multitarea real, si una aplicación se cuelga el sistema pasará el control a otra cuando termine el tiempo que tenga asignado (en general, milisegundos o menos).
Pasar de la multitarea al multiusuario fue un paso más sencillo y casi inevitable. Si una máquina era capaz de soportar varias tareas a la vez, una de las cuales era atender al operador del sistema, ¿por qué no permitir que varios usuarios se conectasen simultáneamente, desde diferentes terminales? La primera persona que propuso un sistema de lo que entonces se llamó tiempo compartido fue Christopher Strachey, en 1959 y la primera implementación se efectuó en el Centro de Cálculo del Instituto de Tecnología de Massachussetts en Noviembre de 1961, usando un ordenador IBM 709. Si tenemos en cuenta que el sistema UNIX se desarrolló a finales de los años sesenta, comprenderemos el título de esta columna. Y, por ahora, basta. Dejaremos para otro día otras cuestiones. Excepto una: ésta pretende ser una columna abierta, así que podéis enviar comentarios, sugerencias, críticas feroces y amenazas a mi correo y cheques y jamonesa la redacción de GUMbits, que ellos me los harán llegardirectamente a mi casa.
URL de trackback de esta historia http://zifra.blogalia.com//trackbacks/26234
1 |
|
||
Muy bueno zifra, vete reproduciendo los artículos, a ver si aprendemos algo.
|
2 |
|
||
Vaya, gracias |
< | Enero 2025 | |||||
Lu | Ma | Mi | Ju | Vi | Sa | Do |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | ||