Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: zagk en 7 Mayo 2017, 14:09 pm



Título: Dudas generales: sistemas operativos y procesadores
Publicado por: zagk en 7 Mayo 2017, 14:09 pm
Hola, chicos del foro. Buenos días.

Tengo algunas preguntas que verdaderamente quisieran que me respondieran, no he encontrado información acerca de ello, por lo que aquí las publico para ver si pueden responder las que sepan, o aclararme, al menos, un poco la duda. Aquí van (estas no son todas las preguntas, es que por ahora no recuerdo las demás):

1. No sé si es en el proceso de fabricación (que supongo que es allí), qué es lo que hace; qué material o las dimensiones, no sé; qué es lo que hace que una memoria RAM o una unidad USB sea solo de 2 GB o de 4 GB o de 32 GB, ¿qué es aquello que lo limita? Supongo que tiene que haber algo que limite la capacidad, quizás sea usar más un material en el proceso de fabricación u otra cosa, pero ¿qué es?

2. Cuando se escribe un sistema operativo (supongo que esta pregunta va para personas más experimentadas) que es lo primero (en específico) que se empieza escribiendo, ¿acerca de qué?, o sea, porque uno puede decir: "tienes que escribir el bootloader o el kernel", pero esas son ideas muy generales, me imagino que uno sigue más o menos un patrón al momento de escribir un bootloader o un kernel, ¿qué es lo primero o lo esencial que se empieza escribiendo al momento de realizar un sistema operativo?

3. No sé si han oído acerca de la máquina Watson de IBM (pura inteligencia artificial), dicen que los que lo hicieron (el grupo que trabajo en eso de IBM) almacenaron toda la información en la memoria RAM porque tenían que tener un acceso mucho más veloz a la información (y hasta ahora lo mantienen así), ¿eso quiere decir que hacen funcionar a la memoria RAM como un disco duro? ¿Es muy difícil hacer eso llevándolo a la programación (en el caso de que yo quisiera hacerlo y contara con un número amplio de memorias RAM y procesadores) en bajo nivel, que si en el lenguaje C o Ensamblador?

4. Esta pregunta la verdad me ha tenido pensativo hace tiempo, ¿como es que hacían en lo tiempos cuando no habían unidades USB, saben cuando las empresas terminaban de fabricar los procesadores, ya ahí todos sabemos que pueden reconocer entre sí o no, etc, etc, pero, cómo es que hacían para introducirle el código fuente de un sistema operativo (UNIX por ejemplo) sin tener ninguna interfaz para escribirlo, me imagino que antes de crear un editor de texto tuvieron que escribirlo para que el procesador lo creara en una interfaz y así pudiera programar desde ahí, pero como hicieron para crear eso antes? ¿Como le introducían el código fuente al procesador sin ninguna interfaz que te permitiera escribirlo como ahora, sin tener IDE ni nada?


Espero que me puedan aclarar algunas de estas preguntas que tengo, por ahora no recuerdo las demás pero estoy seguro de que las recordaré, muchas gracias y buen día.


Título: Re: Dudas generales: sistemas operativos y procesadores
Publicado por: engel lex en 7 Mayo 2017, 18:30 pm
1- literalmente el espacio físico, las memorias y discos de estado solido internamente son transistores y conexiones, puedes arreglar allí tantas como te quepan, recuerda que 2GB serian 2.000.000.000 de transistores más toda la circuitería de conexión y acceso... también está el asunto del consumo eléctrico, tiene que seguir en el rango que se aporta para ese dispositivo

2- el bootloader XD si no hace boot (no inicia luego que termina la BIOS) no lo puedes probar... luego de eso probablemente escribirías el como accede y se organiza en RAM

3- la ram y los disco duros (especialmente ahorita con los ssd) son basicamente lo mismo, solo que separamos la tecnologìa en 2 para tener una de alta velocidad y otra de almacenamiento permanente, pero no es practico usar ram como disco duro, ya que si se apaga la pc por cualquier razón perderías toda la data... si quieres un disco duro de super alta velocidad están los nvme, que lo que hicieron fue ubicarse justo entre la ram y el hdd, un ejemplo es Samsung SSD 960, la velocidad de acceso es más de la mitad de la de la ram, pero es un disco permanente... ¿Es muy difícil hacer eso llevándolo a la programación? si haces esta pregunta, si XD asumo que no sabes de programación... si tu creas un programa, todo está en ram... a menos que escribas en un archivo...

4- usaban botones de salvar impresos en 3d...

(https://upload.wikimedia.org/wikipedia/commons/3/37/Floppydisk_90mm%283.5inch%29.jpg)

o por lo menos eso fue lo ulitmo en usarse XD antes de eso hubo otros tipos más grandes y antes de esos más grandes, habian cintas tipo reel

(http://www.cs.kent.edu/~rothstei/10051/HistoryPt4_files/TapeDrive.jpg)


Título: Re: Dudas generales: sistemas operativos y procesadores
Publicado por: PalitroqueZ en 7 Mayo 2017, 18:48 pm
Citar
¿qué es lo primero o lo esencial que se empieza escribiendo al momento de realizar un sistema operativo?

lo primero sería escribir los procesos que se encarguen de reconocer y de controlar el hardware del ordenador,



Título: Re: Dudas generales: sistemas operativos y procesadores
Publicado por: crazykenny en 7 Mayo 2017, 19:07 pm


Bueno, sobre tu tercera pregunta, debería comentar que la memoria RAM básicamente se utiliza para almacenar los programas que esta ejecutando el ordenador, ademas de otra información que este necesite (como podrian ser los ingresos y gastos almacenados de X empresa en un programa de contabilidad), mientras que en un disco duro se almacenan todo tipo de datos/programas que, bueno, no necesariamente estan en uso.

Por otra parte, aunque un disco duro actual acostumbra a tener mucha mas capacidad que cualquier modulo de memoria RAM, estos tambien son algo mas lentos que cualquier memoria RAM a la hora de acceder a la informacion (especialmente si hablamos de discos duros mecanicos).

Entonces, lo que han hecho los de IBM con Watson no fue tratar la memoria RAM como un disco duro, sino lo que hicieron fue cargar toda la informacion de los discos duros en la memoria RAM para que accediera mas rápidamente a la informacion y, de esta forma, que respondiera de una forma mas rápida (o optima).

Aun asi, y, sobre lo que comentas de hacer en esta pregunta (aunque sea hasta cierto punto), no se si sera facil o dificil, pero creo que seria poco practico ya que, cuando se apaga el ordenador, se pierde todo lo que se ha almacenado en la memoria RAM.

En cuanto a la cuarta pregunta, lo que se utilizaba para cargar/copiar codigo en una maquina se utilizaban otros medios de almacenamiento, como pueden ser los disquetes, cartuchos y/o cintas (entre otras cosas), y, bueno, si miramos algo mas antiguo, ya estaríamos hablando de tarjetas perforadas.

Dicho sea de paso, y, sobre otra opcion de como se podia crear un programa para X maquina, en ordenadores mas antiguos tipo Amstrad (que es el primero que tuve en casa), venían con un un interprete BASIC en un cartucho, y, si nos enfocamos mas al tema de videoconsolas, se necesita unas herramientas de programacion especificas (o estaciones de trabajo) para hacer juegos para cada consola.

Por ultimo, ya se que he escrito una respuesta algo extensa para dos preguntas, pero quisiera aprovechar para añadir unos links sobre lo que he comentado de la cuarta respuesta (por el tema disquetes, tarjetas perforadas, etc.), si no es molestia, claro esta, ademas de un enlace sobre uno de los primeros ordenadores del año 1943 (mas o menos) y el amstrad (1980-1990 aprox.):

ENIAC (1943):

https://es.wikipedia.org/wiki/ENIAC (https://es.wikipedia.org/wiki/ENIAC)

AMSTRAD (1980-1990 parox.):

https://es.wikipedia.org/wiki/Amstrad (https://es.wikipedia.org/wiki/Amstrad)

Tarjeta perforada (1960-1970):


https://es.wikipedia.org/wiki/Tarjeta_perforada (https://es.wikipedia.org/wiki/Tarjeta_perforada)


Cartucho:

https://es.wikipedia.org/wiki/Cartucho_(inform%C3%A1tica) (https://es.wikipedia.org/wiki/Cartucho_(inform%C3%A1tica))


Disquete:

https://es.wikipedia.org/wiki/Disquete (https://es.wikipedia.org/wiki/Disquete)


Título: Re: Dudas generales: sistemas operativos y procesadores
Publicado por: zagk en 7 Mayo 2017, 20:57 pm
Hmm gracias por la respuesta de como hacían para introducir lo códigos fuentes anteriormente, tenía esa duda.

Pero aún no aclaro la parte de que si se puede usar la memoria RAM como disco duro, es decir, almacenar aplicaciones, ya sea que estén en uso o no, allí permanentemente aunque eso implique no apagar el equipo o los equipos, coloco como ejemplo a Watson de IBM, según datos se afirma que posee cerca de 16 terabytes de RAM, porque dicen que tiene acceso mucho más veloz. Y bueno según lo que me dijiste creo entender que ¿si es posible almacenar información en la memoria RAM (suponiendo que tenemos gigabytes de sobra) como si fuese un disco duro?

Gracias por las demás respuestas, me aclararon las dudas.


Título: Re: Dudas generales: sistemas operativos y procesadores
Publicado por: engel lex en 7 Mayo 2017, 21:03 pm
Citar
Pero aún no aclaro la parte de que si se puede usar la memoria RAM como disco duro, es decir, almacenar aplicaciones, ya sea que estén en uso o no, allí permanentemente aunque eso implique no apagar el equipo o los equipos

primero que nada "permanentemente" significa "incluso cuando se apague" o "que no se borre a menos que el usuario quiera o se dañe el disco"

segundo, cuando una aplicación corre, la misma se introduce en la ram, a menos que esté hecha para no hacerlo


que quieres emter en ram?

en ese caso por que no simplemente te compras un disco de los que te indiqué y listo, tiene más del 50% de la velocidad de la ram (y cerca de 100 veces la velocidad de un hdd)


Título: Re: Dudas generales: sistemas operativos y procesadores
Publicado por: zagk en 7 Mayo 2017, 21:07 pm
Vale amigo, muchas gracias, has aclarado mi duda, por supuesto ahora averiguaré acerca de ese tipo de discos, claro me refería al almacenamiento y procesamiento de aplicaciones permanentemente sin necesidad de algún disco duro (suponiendo que la máquina actúa como un servidor: que nunca se apague). Gracias y buen día.


Título: Re: Dudas generales: sistemas operativos y procesadores
Publicado por: engel lex en 7 Mayo 2017, 21:21 pm
Vale amigo, muchas gracias, has aclarado mi duda, por supuesto ahora averiguaré acerca de ese tipo de discos, claro me refería al almacenamiento y procesamiento de aplicaciones permanentemente sin necesidad de algún disco duro (suponiendo que la máquina actúa como un servidor: que nunca se apague). Gracias y buen día.

incluso los servidores se apagan... ya sea porque algo falle, por una falla electrica o por alguna razón necesaria...


Título: Re: Dudas generales: sistemas operativos y procesadores
Publicado por: Slava_TZD en 7 Mayo 2017, 22:01 pm
Vale amigo, muchas gracias, has aclarado mi duda, por supuesto ahora averiguaré acerca de ese tipo de discos, claro me refería al almacenamiento y procesamiento de aplicaciones permanentemente sin necesidad de algún disco duro (suponiendo que la máquina actúa como un servidor: que nunca se apague). Gracias y buen día.

Esto es bastante comun en nodos de virtualización, sistemas embebidos...etc En Linux puedes lograr algo como lo que deseas montando root en un tmpfs.

Citar
en ese caso por que no simplemente te compras un disco de los que te indiqué y listo, tiene más del 50% de la velocidad de la ram
Citar
un ejemplo es Samsung SSD 960, la velocidad de acceso es más de la mitad de la de la ram

Ningún disco SSD, ni SSDD, ni SSSDDSDS te va a dar mas del 50% de la velocidad de la RAM. Lo cierto es que ese tipo de discos tienen el mismo bandwidth, pero da igual, ni aun teniendo el doble o triple serian mejores que las peores ram que te encuentres. Los discos tradicionales tienen tiempos de respuesta sobre los 15ms, mas o menos la mitad si hablamos de SAS para servidores, el SSD que citas tiene 0,27ms, un SSD bestia de los que a corto plazo nunca tendrás en tu PC tiene 0,02ms y 0,05ms...compara eso a los 50ns de la RAM. La diferencia es abismal, unos 1999950ns en el mejor de los casos.

Saludos


Título: Re: Dudas generales: sistemas operativos y procesadores
Publicado por: engel lex en 7 Mayo 2017, 22:12 pm
Citar
Ningún disco SSD, ni SSDD, ni SSSDDSDS te va a dar mas del 50% de la velocidad de la ram y mucho menos va a reducir el tiempo de acceso a la mitad.

joder! tienes razón XD se me fueron los numeros! la velocidad estaba comparando contra DDR2 XD

la velocidad de transferencia de DDR2 es en 667 (la que yo tengo XD) 5GBps, el disco ese tiene 2,1GBps XD
si es 15ns en la ram contra 2us en el disco XD

gracias por acotar XD estaba tirando los numeros


Título: Re: Dudas generales: sistemas operativos y procesadores
Publicado por: Serapis en 8 Mayo 2017, 03:25 am
1. No sé si es en el proceso de fabricación (que supongo que es allí), qué es lo que hace; qué material o las dimensiones, no sé; qué es lo que hace que una memoria RAM o una unidad USB sea solo de 2 GB o de 4 GB o de 32 GB, ¿qué es aquello que lo limita? Supongo que tiene que haber algo que limite la capacidad, quizás sea usar más un material en el proceso de fabricación u otra cosa, pero ¿qué es?
El límite práctico. Lo que es práctico, es algo relacionado:
- Factores humanos: decisiones empresariales, costos de fabricación y precios de venta y unidades vendidas, actualidad de esa tecnología de la competencia.
- Factores técnicos: consumo energético, calor que genera, escala de fabricación (miniaturización del sistema), tamaño actual de los buses de los procesadores donde se montará dicha memoria.

2. Cuando se escribe un sistema operativo (supongo que esta pregunta va para personas más experimentadas) que es lo primero (en específico) que se empieza escribiendo, ¿acerca de qué?, o sea, porque uno puede decir: "tienes que escribir el bootloader o el kernel", pero esas son ideas muy generales, me imagino que uno sigue más o menos un patrón al momento de escribir un bootloader o un kernel, ¿qué es lo primero o lo esencial que se empieza escribiendo al momento de realizar un sistema operativo?
Lo primero que se escribe es lo que te dé la gana. Un S.O. es un programa y como cualquier programa puedes empezar a escribirlo por donde quieras. Habitualmente, se tiene un diseño previo y realmente varios equipos/personas acometen diferentes partes al mismo tiempo.
Ahora quizás lo que quisieras preguntar, es qué parte del S.O. es la primera que empieza a operar, cuando el BIOS le transfiere el control...

3. No sé si han oído acerca de la máquina Watson de IBM (pura inteligencia artificial), dicen que los que lo hicieron (el grupo que trabajo en eso de IBM) almacenaron toda la información en la memoria RAM porque tenían que tener un acceso mucho más veloz a la información (y hasta ahora lo mantienen así), ¿eso quiere decir que hacen funcionar a la memoria RAM como un disco duro? ¿Es muy difícil hacer eso llevándolo a la programación (en el caso de que yo quisiera hacerlo y contara con un número amplio de memorias RAM y procesadores) en bajo nivel, que si en el lenguaje C o Ensamblador?.
La diferencia entre la memoria RAM y una unidad de almacenamiento:
- La más importante es que la RAM funciona a una alta velocidad (son circuitos electrónicos, también igual que el procesador y se compone de las mismas unidades básicas... "puertas" AND, OR, NOT, XOR, estas a su vez son diseños específicos hechos (hoy día) con transistores, antes se hacían con diodos (y más antiguamente con válvulas, que son equivalentes). Un diodo, es una especie de 'grifo' (entra un cable y sale un cable) que deja pasar la corriente en un sentido pero no en otro, juntando dos diodos, se forman los transistores (tienen tres cables llamados Base, emisor y colector), la forma en que se unan dan lugar a diferente tipos de transistores los basicos:  NPN, PNP.... No sólo los hay para hacer las puertas, también los hay para rectificarla corriente...
- La unidad de almacenamiento, su mayor cualidad respecto de la RAM, es que cuando el suministro eléctrico se corta, retiene los datos, en la RAM se borran... La RAM, se parece a la pizarra de una escuela, cuando finaliza la materia se borra la pizarra, para que el siguiente profesor imparta su materia y escriba en la pizarra (su tema). La forma de almacenamiento ha pasado por varias fases desde las tarjeta s perforadas (cartones que tenían agujeritos o no en filas y columnas, agujeros, no agujeros representaban el sistema binario). Se pasó luego a las cintas magnéticas (las viejas cintas de casette, las menos viejas VHS, etc... seguían usando la misma tecnología. Básicamente son cintas de plástico muy fino, impreganadas de material ferroso... controladas por el cabezal de escritura, que orientaba mediante una corriente eléctrica los átomos de metal...). Los discos duros, son también herederos de esa tecnología (es decir también son magnéticos y recurren a un cabezal de escritura). Los CDs, DVDs, etc... en cambio utilizan un sistema algo distinto, usan huecos (como un socavón en la calle) físicos en el material, realizados por un láser... un cabezal de lectura, luego lee si hay socavón o no, para saber el valor del bit. Estos medios de almacenamiento se llaman ópticos, ya que el son sistemas ópticos los encargados de la lectura y escritura.
Hoy día, con los sistemas de almacenamiento electrónicos, usan sistemas basads en "memorias flash", que son una evolución de las memorias EEPROM, que son una memoria ROM regrabable... Las ROM, como tales son meorias de UNA única escritura, surgieron las ROM de múltiples lecturas (PROM= Programable ROM), EEPROM: PROM electricamente 'erasable' (borrable), que a su vez  es antecedida por la EPROM =PROM Erasable... Para borrarlas, se recurría a una luz ultravioleta, incidiendo sobre una ventanita de cuarzo que estaba en el chip...
ROM: PROM -> EPROM -> EEPROM. Aclarar que la ROM, sigue siendo ROM, la evolución de la ROM, para reprogramarse, ha dado alfinal con la tecnología de las memorias que ahora pueden almacenar datos de forma permanente (se supone permanente a un período de varios años, sin recibir corriente externa, incluso de hasta 20 y más años (datos teorícos de los fabricantes, posiblemente nadie lo haya probado)).



4. Esta pregunta la verdad me ha tenido pensativo hace tiempo, ¿como es que hacían en lo tiempos cuando no habían unidades USB, saben cuando las empresas terminaban de fabricar los procesadores, ya ahí todos sabemos que pueden reconocer entre sí o no, etc, etc, pero, cómo es que hacían para introducirle el código fuente de un sistema operativo (UNIX por ejemplo) sin tener ninguna interfaz para escribirlo, me imagino que antes de crear un editor de texto tuvieron que escribirlo para que el procesador lo creara en una interfaz y así pudiera programar desde ahí, pero como hicieron para crear eso antes? ¿Como le introducían el código fuente al procesador sin ninguna interfaz que te permitiera escribirlo como ahora, sin tener IDE ni nada?
Al comeinzo todo era eléctrico, y como te decía se usaban tajetas perforadas, pero antes de eso, los datos e metían a mano en la memoria de un modo similar a como usamos hoy día el teclado (pero metiendo datos binarios), las tarjetas perforadas eran una mejora, porque suponía más velocidad de acceso (no había que esperar a escribirlo todo para pulsar el botón de 'Run', para hacertte una idea de esto imaginate un montaje eléctrico de iluminación, montas varias bombillas y solo entonces presionas el interruptor, hora imagina que las bombillas representaran '1' y '0', basta tener dos circuitos uno para encender una bombilla y otro para apagarlo).
De hecho las puertas OR, AND, NOT, XOR, NAND (not AND), NOR (not OR) y NEXOR (not XOR), se pueden reproducir con bombillas, unos cables y unos interruptores, incluso con grifos, tuberías y llaves de paso).
Cuando se diseña un nuevo sistema, ya porta una ROM, esa es la clave... la ROM es un programa (o varios, aunque en general son pequeñas rutinas específicas para cosas específicas y muy determinadas y recurrentes, del tipo: Si recibe corriente la patilla S1, generar una interupción hardware para transferir el control al dispositvo conectado al puerto 1 (la patila S1, podría representar que se ha conectado un dispositvo externo, y que ha enviado corriente eléctrica por es apatilla, que entonce sla ROM, debe interpretar que debe cederle el control... sn pequeñas tareas, que debes imaginarte, como un pequeño restaurante que dispone de varias mesas, que sucede cuando llegaunos clientes y se sientan en sus sillas, viene el camarero y les toma pedido, y envía el pedido al cocinero y al que está tras la barra (o la sirve él mismo), ...imaginate la cascada de sucesos en forma de pequeñas tareas y condicionantes).

Una vez que se enciende un equipo, el primer 'chisme' en operar es la ROM, cuando recibe energía tiene una rutina de chequeo y autocontrol (igual que el procesador), luego una rutina de chequeo del hardware conectado (memoria y su tamaño, etc..). aunque hablamos de un procesador d eforma genérica, al comienzo erna varios procesadores... uno tenía tareas encomendadas de comunicación, otro de sincronización, otro de control de la memoria, etc...
En las ROM de un PC, se supone que esperan una memoria RAM, un dispositivo de entrada de datos (como teclado, ratón, lápiz óptico),un dispositivo de salida de datos, como un monitor, o un micrófono, o simplemente luces leds y no necesariamente un dispositivo de almacenamiento masivo, aunque hoy día no concebimos un equipo sin ello... de hecho los primeros ordenadores (domesticos), recurrían a las simples cintas de casette como memoria externa, y era eterno esperar a que cargaran un simple programa de unos kb. (los profesionales también recurrían a ciontas magnéticas, pero mucho más veloces y muchísimo más grandes, similares a las cintas de las películas de celuloide de los cines).

En realidad no has buscado bien, hay infinidad de información recogido sobre todos estos temas, otra cosa es que no sepas buscarlo... Si de verdad te interesa todo esto en profundidad, lo mejor que puedes hacer es cojerte un libro viejo de informática, en los nuevos se prescinde de todo , en dos páginas ya han hablado de pasada (o directamente omitido) y ya te hablan de lo último, como si todo el mundo supiera con perfecta claridad como ha sido el devenir de la informática...