Antecedentes de UNIX
-
Upload
andres-giraldo -
Category
Documents
-
view
468 -
download
0
Transcript of Antecedentes de UNIX
5/10/2018 Antecedentes de UNIX - slidepdf.com
http://slidepdf.com/reader/full/antecedentes-de-unix 1/9
El entorno de programaci ó n UNIX
de Brian W. Kernighan y Rob Pike.
Extracto del Prefacio
El sistema operativo UNIX se inició en una DEC PDP 7 desechada, en los Laboratorios Bell durante1969. Ken Thompson, con ideas y el apoyo de Rudd Canaday, Doug McIlroy, Joe Ossanna y Dennis
Ritchie, escribió un sistema de tiempo compartido y de uso general lo bastante adecuado y cómodo
como para atraer a usuarios entusiastas y con suficiente crdibilidad para justificar la adquisición de una
máquina más grande: una PDP 11 20. Uno de los primeros usuarios fue Ritchie, quien ayudo a trasladar
el sistema a la PDP 11 en 1970. Ritchie tambi én diseñó y escribió un compilador para el lenguaje de
programación C. En 1973, Ritchie y Thompson reescribieron el núcleo (Kernel) de UNIX en C,
rompiendo así con la tradición de que el software de sistemas está escrito en lenguaje ensamblador. Con
esa reescritura, el sistema adquirió esencialmente la forma en que lo conocemos hoy.
Hacia 1974 fue presentado en las universidades « con fines educacionales » y al cabo de pocos años
estaba ya disponible para uso comercial. En ese tiempo, los sistemas UNIX prosperaron en losLaboratorios Bell y de allí se difundieron a laboratorios, a proyecto de desarrollo de software, a centros
de procesamientos de palabras y a sistemas de apoyo de operaciones en las compañí as de teléfonos de
los Estados Unidos. Desde entonces, se han utilizado en todo el mundo y se han instalado en miles de
sistemas, desde micro hasta macrocomputadoras.
A que se debe tal éxito del sistema operativo UNIX? Podemos distinguir varias razones. Primero, está
escrito en C y es portátil. Segundo, el código fuente está disponible y escrito en un lenguaje de alto
nivel, lo cuál lo hace f ácil de adaptar a exigencias particulares. Por último, y esto es lo más importante,
es un buen sistema operativo, especialmente para los programadores. Su ambiente de programación es
de extraordinaria riqueza y productividad.
Aun cuando el sistema operativo UNIX presenta varios programas y métodos innovadores, su eficaciano se debe a un programa o idea en particular, sino a su enfoque de programación, una filosof í a de
cómo utilizar la computadora. Aunque esa filosof í a no puede describirse en una sola frase, se basa en la
convicción de que la potencia de un sistema depende más de las relaciones entre los programas que de
los programas propiamente dichos. Muchos programas de UNIX hacen aisladamente tareas triviales,
pero al combinarse con otros se convierten en herramientas generales y útiles.
La Historia de Linux
Versión 2.2.0 por Ragib HasanDepartamento de Ciencias de la ComputaciónUniversidad de Illinois en Urbana Champaign
Traducción: Hugo Jiménez Pérez
5/10/2018 Antecedentes de UNIX - slidepdf.com
http://slidepdf.com/reader/full/antecedentes-de-unix 2/9
El Inicio.
Era 1991, y la despiadada agonía de la guerra fría estaba llegando gradualmente a su fín.Había un aire de paz y tranquilidad que prevalecía en el horizonte. En el campo de la
computación un gran futuro parecía que iba a caer, tal como el hardware poderoso empujabalos límites de las computadoras más allá de lo que cualquiera esperaba.
Pero todavía faltaba algo.
Y no era otro cosa que otro sistema operativo, donde un gran vacío pareció haber aparecido.
Por un lado, DOS tenía todavía el reinado supremo en ese vasto imperio de lascomputadoras personales. Comprado por Bill Gates de un hacker de Seattle por $50,000, el
desnudo sistema operativo había anidado en cada rincón del mundo en virtud de unaestrategia comercial adecuada. Los usuarios de PCs no tenían otra opción. Las Macs de
Apple eran mejores, pero con precios astronómicos que nadie podía pagar, permanecieron
como un horizonte fuera del alcance de millones.
El otro campo dedicado a la computación era el mundo de UNIX (UnixWorld). Pero UNIX ensí era mucho más caro. En la búsqueda de gran dinero, los vendedores de UNIX tazaron sus
sistemas lo suficientemente altos como para asegurar que los usuarios de los pequeños PCsse mantuvieran al margen. El código fuente de UNIX, una vez llevado a las universidades por
cortesía de los Laboratorios Bell, eran guardados cautelosamente y no publicados.Adicionalmente a la frustración de los usuarios de PCs de todo el mundo, los grandes
jugadores en el mercado de software fallaron en proporcionar una solución eficiente a esteproblema.
Una posible solució
n se percibí
a en forma de MINIX. Este sistema fue escrito completamentepor Andrew S. Tanenbaum, un profesor alemán nacido en los Estados Unidos que queríaenseñar a sus alumnos l trabajo interno de un sistema operativo real. Este fue diseñado paraejecutarse en los micro procesadores Intel 8086 que habían inundado el mercado.
Como un sistema operativo, MINIX no era espectacular, pero tenía la ventaja de tener elcódigo fuente disponible. Cualquiera que tuviera el libro 'Operating Systems: Design and
Implementation' de Tanenbaum podía tener las 12,000 líneas de código, escritas en C y enlenguaje ensamblador. Por primera vez, un aspirante a programador o un hacker pod ía leer el
código fuente del sistema operativo, que por ese tiempo, los vendedores de software habíanguardado escrupulosamente. Un brillante autor, Tanenbaum, cautivo a las mentes más
brillantes de las ciencias de la computació
n con la elaborada e inmaculadamente vívidadiscusión del arte de crear un sistema operativo funcional. Estudiantes de las Ciencias de la
Computación de todo el mundo estudiaron esmeradamente el libro, leyendo a través delcódigo pra entender el sistema que se ejecutaba en sus computadoras.
Y uno de ellos era Linus Torvalds.
5/10/2018 Antecedentes de UNIX - slidepdf.com
http://slidepdf.com/reader/full/antecedentes-de-unix 3/9
Un nuevo bebe en el horizonte
En 1991, Linus Benedict Torvalds era un estudiante de segundo año de Ciencias de laComputación en la Universidad de Helsinki y un hacker autodidacta. El joven finlandés de 21años, pelirojo y de hablar suave adoraba pensar en la potencia de las computadoras y los
límites a los cuales el sistema las puede llevar. Pero todo lo que faltaba era un sistema
operativo que podiera alcanzar las demandas de los profesionales. MINIX era bueno, perotodavía era un sistema operativo para estudiantes, diseñado como una herramienta de
enseñanza en lugar de una potente herramienta industrial.
Durante ese tiempo, los programadores de todo el mundo estaban inspirados por el proyectoGNU de Richard Stallman, un movimiento de software que proporcionaba software libre y decalidad. Aclamado como un héroe en el reino del cómputo, Stallman inició su exitosa carrera
en el famoso Laboratorio de Inteligencia Artificial del MIT, y durante mediados a finales de lossetentas creó el editor EMACS. A principios de los ochentas, las compañías de software
comercial se llevaron a muchos de los más brillantes programadores de los laboratorios deInteligencia Artificial, y negociaron severos y no reveladores acuerdos para proteger sus
secretos. Pero Stallman tenía una visión diferente. Su idea era que a diferencia de otrosproductos, el software debería ser libre de las restricciones que iban en contra de los
derechos de autor o de la modificación con el fin de hacer mejores y más eficientesprogramas de computadora. Con su famoso manifiesto de 1983 que declaró los principios del
proyecto GNU, inició un movimiento para crear y distribuir software que transmitiera sufilosofía (Incidentalmente, el nombre de GNU es un acrónimo recursivo que enuncia 'GNU is
Not UNIX'). Pero para realizar este sueño de crear finalmente un sistema operativo libre elnecesitaba crear primero las herramientas. Así que iniciando en 1984, Stallman empezó aescribir el compilador GCC (GNU C Compiler), una asombrosa hazaña para un soloprogramador. Con su legendaria hechicería (wizardry: que proviene de un juego de
mazmorras y calabozos popular en los 80s) técnica el solo clasificó grupos enteros deprogramadores de los vendedores de software comercial en crear GCC, considerado como
uno de los más eficientes y robustos compiladores jamás creado.
En 1991, El proyecto GNU había creado muchísimas herramientas. El esperado compilador
de C de GNU estaba disponible por entonces, pero todavía no tenía un sistema operativo.Aun MINIX tenía licencia. (Más tarde, en abril del 2000, Tanenbaum liberó MINIX bajo la
licencia BSD.) El trabajo se dirigió hacia el kernel de GNU, llamado HURD, pero no seesperaba que fuera terminado sino pasado varios años.
Eso era mucho retraso para Linus.
El 25 de agosto de 1991 un histórico mensaje fue enviado al grupo de noticias de MINIX por
Linus.
From: [email protected] (Linus Benedict Torvalds) Newsgroups: comp.os.minix
Subject: What would you like to see most in minix? Summary: small poll for my new
operating system Message ID: <[email protected]> Date: 25
Aug 91 20:57:08 GMT Organization: University of Helsinki
5/10/2018 Antecedentes de UNIX - slidepdf.com
http://slidepdf.com/reader/full/antecedentes-de-unix 4/9
Hello everybody out there using minix I'm doing a (free) operating system (just a hobby,
won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since
april, and is starting to get ready.I'd like any feedback on things people like/dislike in minix,
as my OS resembles it somewhat (same physical layout of the file system(due to practical
reasons) among other things). I've currently ported bash(1.08) and gcc(1.40),and things seem
to work.This implies that I'll get something practical within a few months, andI'd like to
know what features most people would want. Any suggestions are welcome, but I won't
promise I'll implement them : ) Linus ([email protected]) PS. Yes it's free of anyminix code, and it has a multi threaded fs. It is NOT protable (uses 386 task switching etc),
and it probably never will support anything other than AT harddisks, as that's all I have : (.
Como es aparente del mensaje, el mismo Linus no creía que su creación fuera a ser losuficientemente grande como para cambiar el cómputo para siempre. La versión 0.01 deLinux fue liberada a mediados de septiembre del mismo año y fue distribuida en internet. El
entusiasmo se acumuló alrededor de este nuevo 'chico del pueblo', y el código fuedescargado, probado, corregido y reenviado a Linus. La versión 0.02 llegó el 5 de octubre
junto con la famosa declaración de Linus:
From: [email protected] (Linus Benedict Torvalds) Newsgroups: comp.os.minix
Subject: Free minix like kernel sources for 386 AT Message ID:
<[email protected]> Date: 5 Oct 91 05:41:06 GMT Organization:
University of Helsinki Do you pine for the nice days of minix 1.1, when men were men and
wrote their own device drivers? Are you without a nice project and just dying to cut your
teeth on a OS you can try to modify for your needs? Are you finding it frustrating when
everything works on minix? No more all nighters to get a nifty program working? Then this
post might be just for you : ) As I mentioned a month(?)ago, I'm working on a free version
of a minix lookalike for AT 386 computers. It has finally reached the stage where it's even
usable (though may not be depending on what you want), and I am willing to put out the
sources for wider distribution. It is just version 0.02 (+1 (very small) patch already), but I've
successfully run bash/gcc/gnu make/gnu sed/compress etc under it. Sources for this pet
project of mine can be found at nic.funet.fi (128.214.6.100) in the directory /pub/OS/Linux.
The directory also contains some README file and a couple of binaries to work underlinux (bash, update and gcc, what more can you ask for : ). Full kernel source is provided, as
no minix code has been used. Library sources are only partially free, so that cannot be
distributed currently. The system is able to compile "as is" and has been known to work.
Heh. Sources to the binaries (bash and gcc) can be found at the same place in /pub/gnu.
La versión 0.03 de Linux arribó en pocas semanas. Para diciembre ya se tenía la versión
0.10. Linux todavía era un poco más que un esqueleto. Tenía soporte únicamente para discosduros de AT, no tenía login (cargaba directamente al BASH). La versión 0.11 era mucho
mejor, con soporte para teclados multilenguajes, controladores de diskettes, soporte paraVGA, EGA, Hercules, etc. Los números de versión fueron directamente de 0.12 a 0.95 y 0.96
y así sucesivamente. Pronto el código se distribuyó al mundo entero mediante los sitios de ftp
en Finlandia y otras partes.
Confrontaci ó n y Desarrollo
Pronto, Linus tuvo una onfrontación con nadie más que Andrew Tanenbaum, el gran profesor
que escribiera MINIX. En un mensaje a Linus, Tanenbaum comentó:
"I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error.
5/10/2018 Antecedentes de UNIX - slidepdf.com
http://slidepdf.com/reader/full/antecedentes-de-unix 5/9
Be thankful you are not my student. You would not get a high grade for such a design : )"
(Andrew Tanenbaum to Linus Torvalds)
Linus admitió posteriormente que esto era lo peor de su desarrollo de Linux. Tanenbaum eraverdaderamente el famoso profesor, y nada que el dijera era cuestionable. Pero estaba
equivocado con respecto a Linux, para Linus era un chico terco que no admitía derrotas.
Tanenbaum también recalcó que: 'Linux era obsoleto'.
Ahora tocaba el turno a la nueva generación de Linux. Respaldado por la fuerte comunidadde Linux, Linus respondió a Tanenbaum lo que parecía ser más conveniente:
Your job is being a professor and researcher: That's one hell of a good excuse for some of
the brain damages of minix. (Linus Torvalds to Andrew Tanenbaum)
Y el trabajo continuó. Pronto más de un ciento de personas se unió al campamento de Linux.Después eran miles, y después eran cientos de miles. Esto ya no era un juguete para los
hackers. Respaldado por una plétora de programas provenientes del proyecto GNU, Linuxestaba listo para el espectáculo. Se le dio la licencia de GNU General Public License, yentonces se aseguró que el código fuente sería libre para todo mundo para copiar, estudiar y
modificar. Los estudiantes y los programadores de computadoras lo obtuvieron.Pronto, los vendedores comerciales también se integraron. Linux en sí era y es libre. Lo quehicieron los vendedores fue compilar diversos paquetes de software y lo reunieron en formatodistribuible, en una forma más adecuada parecida a los otros sistemas operativos con los quela gente estaba familiarizada. RedHat, Caldera y otras compañías obtuvieron buenas
respuestas en el mundo entero. Mientras que éstas eran aventuras comerciales,programadores de computadoras dedicados crearon su propia distribución respaldada por
voluntarios, el afamado Debian. Con las nuevas interfaces gráficas de usuario (GUI, comoTWM, X Window System, KDE, GNOME) las distribuciones e Linux se volvieron muy
populares.
Mientras tanto, algunas cosas asombrosas sucedieron con Linux. Además de las PC, Linuxfue llevado a muchas diferentes plataformas. Linux fue modificado para ejecutarse en lasPalm Pilot de 3 Com. La tecnolog ía de clusters permitió que un gran número de
computadoras se combinaran en una sola entidad de cómputo, una computadora en paralelo.En abril de 1996, investigadores del Laboratorio Nacional de Los Alamos utilizó Linux para
ejecutar 68 PCs como una sola computadora de proceso en paralelo para simular ondas dechoque atómicas. Pero a diferencia de otras supercomputadoras que costaban una fortuna,
esta en su lugar era muy barata. La supercomputadora 'casera' costó sólo $150,000,incluyendo el trabajo (la conexión de las 68 PCs mediante cables), casi una décima parte de
una computadora comercial de las mismas características. Alcanz una velocidad pico de 19
billones de cálculos por segundo, convirtiéndola en la 315ava supercomputadora máspoderosa del mundo. Y además era robusta también. Tres meses más tarde no se habíareiniciado una sola vez.
Lo mejor de Linux hoy en día es la cantidad de seguidores que liderea. Cada vez que una
pieza de hardware aparece, el kernel de Linux es modificado para aprovechar al máximodicha pieza. Por ejemplo, algunas semanas después de la presentación del microprocesadorIntel Xenon ® , el kernel de Linux fue modificado y estaba listo para usarlo. También ha sido
adaptado para usarse en procesadores Alpha, Mac, PowerPC y aun en palmtops, una proeza
5/10/2018 Antecedentes de UNIX - slidepdf.com
http://slidepdf.com/reader/full/antecedentes-de-unix 6/9
que difícilmente puede ser igualada por cualquier otro sistema operativo. Y continua su viajeen el nuevo milenio, con el mismo entusiasmo que se inició un buen día de 1991.
Mientras tanto Linus sigue siendo un hombre sencillo. A diferencia de Bill Gates, él no esmillonario. Terminó sus estudios y se mudó a los Estados Unidos e inició un trabajo en
Transmeta Corporation. Después de liderar una investigación secreta y de desarrollar elproyecto, Transmeta lanzó el procesador Crusoe ® . Linus fue un miembro activo del equipo
de investigación. Recientemente desposó a Tove, y es el orgulloso padre de una chica,Patricia Miranda Torvalds. Pero el sigue siendo el programador más famoso y favorito del
mundo a la fecha. Idolatrado por la comunidad computacional del mundo entero, Linus es pormucho el más grande programador en este planeta.
Inicio de sesi ó n y algunos comandos b á sicos
login:
Variables de ambiente
$ ls$ cd
$ cat
$ more
$ less
$ zless
$ w
$ touch
$ mkdir
$ od
$ ddDónde obtener información. Las páginas del manual, Info, apropos.
Redireccionamiento de Entrada Salida
La verdadera filosof í a de UNIX
> < >> << |
Algunos filtros para verificar$ grep
$ sort
$ uniq
$ cut
$ awk
Sistemas operativos milti usuario, servidores y estaciones de trabajo.
Procesos, los comandos
ps
5/10/2018 Antecedentes de UNIX - slidepdf.com
http://slidepdf.com/reader/full/antecedentes-de-unix 7/9
kill
jobs
fg
bg
pstree
lsof
nohup
at
nice
Generalidades de la configuraci ó n y administraci ó n de redes.
TCP/IP
Redes, sistema DNS, parámetros de red, Máscaras de red, subredes y todo esoArchivos/etc/init.d/network
/etc/network/interfaces
/etc/resolv.conf
/etc/hosts
ifconfig
ifup
ifdown
route
nmap
Tips b á sicos de seguridad en redes y en servidores.
Particiones y montaje. Primera regla de seguridad.
/dev/hda1 on /boot type ext3 (ro,noexec,nosuid,nodev,noatime)
/dev/hda3 on /backup type fuseblk
(rw,noexec,nosuid,nodev,allow_other,blksize=4096)
/dev/hda4 on /win type fuseblk
(rw,noexec,nosuid,nodev,allow_other,blksize=4096)
/dev/hda5 on / type ext3 (rw,errors=remount ro)/dev/hda6 on /root type ext3 (rw)
/dev/hda7 on /usr type ext3 (ro,nodev,noatime)
/dev/hda9 on /var type ext3 (rw,nosuid,nodev)
/dev/hda11 on /home type ext3 (rw,noexec,nosuid,nodev)
/dev/hda10 on /tmp type ext3 (rw,noexec,nosuid,nodev,noatime)
cerrar puertos y colocar iptables e ippl.
5/10/2018 Antecedentes de UNIX - slidepdf.com
http://slidepdf.com/reader/full/antecedentes-de-unix 8/9
Cuidar el sistema de archivos
Nombres rarostouch ./ foo
rm foo
Permisos de archivos
SUID 4xxx
SGID 2xxx
adBit 1xxx para directorios
Nunca se debe ejecutar un programa para 'saber que hace', de hecho, un buen administrador debe
verificar todos y cada unos de los programas y archivos que componen una pieza de software. Por eso
es importante que el administrador también sea un buen programador. Esta es una de las grandes
diferencias entre Windows y UNIX. También se debe observar que en UNIX, uno puede compilar todos
y cada uno de los paquetes que existen en GNU.
El siguiente es un guión de comandos que puede robarse una sesión de SHELL con permisos SUID
#!/bin/bash
# Guión de comandos de BASH para robarse un BASH con SUID de root
#
BIN=”/home/yo/bin”
mkdir p $BIN
cd $BIN
cp /bin/bash ./bash
# Ahora viene el daño
chown root bash
chmod 4755 bash
Para encontrar todos los archivos SUID y SGID
# find / \( perm 004000 o perm 002000 \) type f print
Ahora hagamos un guión para desplegarse a las personas que les hemos
cancelado la cuenta de usuario (pero no se ha eliminado). Este guión se colocará en el directorio
/usr/bin o /bin con permisos de ejecución y después se modificará la lí nea del archivo de passwords
para que se ejecute en lugar del intérprete de comandos.
#!/bin/bash#
#
/bin/cat << 'XX'
Bienvenidos al tutorial de UNIX Linux de SCMA 08 de
la UAM, Cuajimalpa. Si desean tener contacto con el
profesor, por favor asistan al tutorial de
lunes a miercoles de 3:30 a 5:00 p.m.
De cualquier forma, les agradecemos su atencion
5/10/2018 Antecedentes de UNIX - slidepdf.com
http://slidepdf.com/reader/full/antecedentes-de-unix 9/9
Coordinacion de SCMA 08
XX
exit 0
Ahora se requiere que le den permisos de ejecución$ chmod +x no_login
$ mv no_login /bin
y por ultimo modificar la lí nea del usuario en el archivo de contrase~nas con el comando$ vipw
que contenga el registro del usuario y modificarlojuan:x:1001:1001:,,,:/home/juan:/bin/bash
porjuan:x:1001:1001:,,,:/home/juan:/bin/no_login
Software libre...