Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cuando oprimo enter, en el teclado hay algo que se llama señal teclado.
En el instante en que undo la tecla, manda una señal electrica a la placa madre del
pc, esta es intervenida por la CPU. (Centro de procesamiento de toda la
computadora, aca se ejecuta el codigo programación, se hacen operaciones
matematicas).
Tarjeta madre= Es una placa electronica por donde van todas las señales de los
dispositivos que funcionan con electricidad.
Cuando el CPU recibe la señal electrica de la tecla enter, la manda a una capa mas
arriba, donde corre el sistema operativo.
El SO atraves del CPU entiende el enter del teclado. Todos los SO tienen capaz de
software para entender las señales electricas de los dispositivos externos, a esto
se le conoce como DRIVERS.
API = Application program interface, es una cosa que usan los programadores para
comunicarse entre si, sin hablar entre ellos, por ejemplo, el dinero.
Con Ajax pueden enviar cualquiera cosa que queramos a un servidor en internet sin
necesidad de recargar la pagina.
Voy a tomar los datos que escribi como usuario, los voy a encapsular y los mandare
al SV.
Encapsular los datos se puede hacer en varios formatos, existen muchos formatos de
archivos.
Cuando se transfieren datos por internet hay muchos formatos, como HTML, el mas
fomoso es JSON.
Lo que hace AJAX y JS es encapsular los datos del usuario en un JSON y lo envian
por Ajax a un servidor.
LA CAPA DE INTERNET:
Hay una serie de servidores globales que es un proceso de comun donde todo el
mundo colabora. Es una base de datos llena de nombres de dominio.
Google es especial, porque depende del pais, buscara una IP al servidor mas cercano
a tu ubicación
Antes de llegar al codigo del programa, en este caso GMAIL, que esta hecho en Java
se debe pasar por unas capas.
- El SO: el so que corre un servidor es linux. Linux tiene drivers que le
permiten conectarse a la electricidad del cable de red. La electricidad del cable
de red a traves de una serie de routers, switch que transmiten la informacion de la
IP, son los que le dicen al SV mire esta electricidad, haga la que pueda hacer.
ETHERNET: Envia esta señal a LINUX, Linux la convierte en datos, estos datos
estan encapsulados en TCP/IP, luego este protocolo crea los datos hacia HTTP,HTTP
es recibido por un servidor de HTTP de LINUX, por ejemplo apache o ngnix. Los
servidores a nivel de software son aplicaciones que corren en el SO.
Para enviar un email a internet se usa un servidor de correo, el sv de correo viene
en la petición.
SMTP = Envio
POP3 = Recepción
Constantemente hay una conexion entre el dispositivo y este sv. Mediante UDP
En vez de tener una onda, convirtamos la onda en tonos que suben y tonos que bajan.
Altos: 1
Bajos: 0
Todos los computadores iban a usar una unidad de memoria para guardar elementos,
una letra.
64 32 16 8 4 2 1
Por ejemplo
0101010 = 42
128 64 32 16 8 4 2 1
Nosotros usamos la base decimal, pero esta se le conoce como base binaria.
Binario: 0-1
Decimal: 0-9
Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F
10011011=155
a=byte
b=byte
c=byte
La tabla ASCII es una tabla de bytes donde cada byte corresponde a un caracter
============================
LOS BYTES EQUIVALEN A 8 BITS
============================
Los primeros bytes pueden ser especiales, pueden significar como arrancar el
computador
Una imagen es una grilla de pixeles, es una matriz donde cada punto es un pixel y
cada punto es un byte, donde cada número es un color.
UTF-16 =
Los volteos son las fuerza que mueve la electricidad por un cable, del negativo al
positivo de una bateria.
Por dentro son electroimanes que se repelen en un anillo metalico rotando sobre su
eje.
Asi funciona un auto electrico o robot gracias a motores pequeños llamados Servos.
La electricidad se vuelve sonido al hacer vibrar una onda electrica conectada a una
membrana.
Arquitectura desktop
Solo difieren en que en el laptop todos esta pegado y hay menos espacio.
- Intel
- AMD
CPU
La BIOS es una marca de estos pequeños chips que arrancan el computador. Cada marca
tiene chips diferentes.
Una vez la BIOS arranca, trata de detectar donde estan todas las cosas conectadas
al PC, por ejemplo el PC.
Hay una conexion entre la CPU y el disco duro, pero hay un intermediario de los
datos del disco duro y la CPU.
RAM = Random Access Memory, memoria de ultra alta velocidad, una memoria volatil.
Solo funciona cuando hay electricidad. Es lo que tenemos mientras estabamos
trabajando.
La memoria RAM es pequeña, su promedio es de 16GB, pero tenemos discos duros de 2TB
(2000 GB).
Los discos duros son mas lentos, esto se debe a que el disco duro funciona como un
disco de vinilo, se debe esperar a que la cabecera de lectura llega al lugar donde
esta tu archivo. A veces tu archivo esta dividido en varias partes, por eso la
cabeza de lectura debe saltar de una lado al otro para leer todo el archivo
completo.
Discos de estado solid (SSD): Se llaman asi porque no tienen partes moviles. Estos
tienen un chip especial, su tecnologia viene de las memorias USB. Este chip se le
conoce como Flash. En ese chip se guardaban los datos en posiciones especiales, que
incluso cuando se perdia la electricidad quedaban ahí.
El problema de estos chips es que a veces se degraban los datos debido a borrar y
cambiar. Hacia que ciertos sectores quedaran inutiles y el disco se iba achicando.
La memoria RAM es una serie de circuitos y transistores que estan dividos entre
placas paralelas que va conectada a nuestra PC.
La memoria RAM envia la carga del SO al CPU y la CPU usa el sistema operativo para
arrancar el PC.
Luego la CPU empieza a activar los perifericos que son todas las cosas externas con
las que interactuamos con el computador.
- Pantalla
- Teclado
- Mouse
- Puertos
El teclado, mouse y puertos usan drivers, las cuales son piezas de software que
entienden como convertir señales electricas del hardware en bits y bytes que el cpu
le mandan al SO para funcionar.
La pantalla requiere un chip unico, que nosotros llamamos GPU, es la que se encarga
de comunicarse entre la CPU y la pantalla.
Ahora diseñan las GPU para hacer matematicas tridimensional y algebra lineal mas
rapido que una CPU.
Aunque todo esto lo puede hacer la CPU, porque es una unidad central de proceso
generica.
// SYSTEM ON A CHIP \\
Es una CPU que tambien contiene memoria RAM, la BIOS y un pequeño disco duro que
contiene información basica.
Tiene un puerto mas pequeño a la derecha que controla los puertos USB y el puerto
Ethernet.
Por detras del chip hay un chip mas adicional, diseñado para controlar toda la
conexion electrica interna de nuestro pequeño PC.
Un Bus de datos son los pines que vemos a un costado. Cada uno envia un Byte al
mismo tiempo, una señal electrica y con el conectamos nuestro computador.
Los system on a chip no traen disco duros, en este caso se usan tarjetas SD.
Los telefonos necesitan chips de radios, que detecten señales de wifi, bluetooth,
señales 3g y 4g.
No todos los sistemas embebidos tienen pantalla. Por ejemplo los sensores antirobo
en los centros comerciales, son system on a chip que no necesitan pantallas.
Tambien tenemos los relojes fitness que no tienen pantalla y son solo una banda que
se lleva en la muñeca.
Los DD tienen una memoria persistente, o sea, que asi se vaya la electricidad
seguira ahí.
Se guardan de manera secuencial, significa que hay que acceder al principio del
archivo y luego de a poco para poder abrirlo y que hay una estructura de datos
interna.
Los archivos estan guardados de una manera estructurada, tiene una forma de
guardado llamada sistema de archivos, son convenciones internas decididas por el SO
que nosotros usamos para poder acceder a los archivos por dentro.
Para saber en que parte del disco duro esta nuevo archivo, para ello tenemos en los
primeros sectores del disco algo conocido como la cabecera o el indice de los
archivos.
En la cabecera estan las direcciones de todos los archivos. La cabecera nos indica
en que sector arranca y termina nuestro archivo.
Esos indices a traves de los drivers le indican al SO como darle una orden al
procesador para que la cabeza de lectura del DD se mueva a la posicion en la que se
encuentra el archivo.
Cuando un archivo se pierde o se borra, no es que yo borre los bytes, lo que pasa
es que yo fui al indice y borre la dirección de dicho archivo, luego cuando un
nuevo archivo llegue, su dirección reemplazara a la borrada.
La CPU internamente tiene la memoria cache, es una especie de memoria ram pero
mucho mas veloz, aquí se guardan ciertos programas que estan corriendo en este
momento para que vayan mucho mas rapido.
La CPU va al DD y captura saludo.txt y lo coloca hacia la CPU como orden del SO,
pero para poder abrirlo, toma los bytes de la palabra y se los lleva a un lugar, el
cual es la memoria RAM.
Por ejemplo, tenemos una RAM de 16 GB, si la abrimos vamos a encontrar un area
donde tenemos archivos.
En la memoria RAM y la CPU, siempre saben donde esta, hay un indice compartido,
llamado direcciones de moria, nosotros los programadores las conocemos como nombres
de variable.
Por ejemplo,
Una parte del SO tambien vive en la cache del CPU para su acceso inmediato.
Las conexiones entre la ram y la cpu se hacen por medio de un Bus de datos.
Con los discos duros, el bus de datos tiene nombres especiales, historicamente
llamado ATA, el cual ahora es SATA.
- PCI Express: El socket, la conexion entre la GPU y CPU, son cables de ultra alto
rendimiento
La GPU tiene x Ghz, tambien tiene Cores y su promia Ram de video (VRAM).
Una CPU agarra una pantalla y la vuelve una matriz gigantesca de multiples pequeños
puntitos, donde cada punto es un pixel en pantall y luego esa pantalla la divida en
segmentos y luego esos segmentos se la asigna a uno de los nucleos.
Mientras mas nos alejamos del kernel, mas restringidos estamos, eso quiere decir
que los drivers del anillo 2, deben pedirle permiso al SO para acceder a los
drivers del anillo 1.
Por ultimo tenemos la capa donde cargan las apps, el cual es el anillo 3. Son las
que menos deben tener permiso, no deben acceder a las cosas de nuestro computador.
El secure enclave corre en el anillo mas cercano, solo tiene acceso el SO, es la
forma en la que el iphone encripta la huella del dedo o las distintas passwords.
La nube son los computadores de otras personas donde viven los sitios web que
visitamos.
Ejemplo:
Tenemos un pc y una laptop.
Switch: Un switch es un aparato especial que tiene varios puertos, lo que hace es
compartir la red con todos los conectados a esos equipos.
Los switches modernos trabajan con tablas de ARP para asi hacer que el envio de
datos en una red local (LAN) sea mas eficiente.
El switch solamente envia replicas de la informacion en todos los puertos cuando no
conoce al destinatario.
Los switch usan un algoritmo para detectar a quien se le debe enviar un mensaje.
En las redes, muchas veces los datos son compartidos, porque se rebotan muchas
veces.
En ocasiones puedo reemplazar un switch con un router, excepto cuando tengo muchos
cables de red.
- Nombre de la red
- Password
- Lista de ips
Todos los computadores tienen una MAC ADDRESS, es un identificador unico que viene
quemado dentro del hardware. Esto se hace por interfaz de red.
Una red de area local es una red a la que me conecto donde estan nuestros
dispositivos.
Ejemplo: 192.168.0.20
Si contamos con mas de 255 dispositivos, no podemos usar una red local.
Para ver cuantas IPS me caben en el esquema de red 192.168 lo que hacemos es una
ecuacion matematica.
192.168.0.20 =
256 (el 0 cuenta) x 255 (este numero no puede ser 0)
= 65.280
Se han creado convenciones para que ciertas IPS esten reservadas. una de las IPS
reservadas es la IP 255, este numero no se usan porque es utilizado para Broadcast.
El SO distribuye los puertos a traves de los anillos. Hay ciertos puertos cerrados
por defecto, por ejemplo, los puertos del 1 al 1024.
Son puertos reservados para el sistema operativo para que los use el administrador.
PUERTOS RESERVADOS:
HTTP: Puerto 80
BitTorrent: 6881-6889
HTTPS: PUERTO 443
SSH: Puerto 22
Los puertos del 49151 al 65535 son llamados dinámicos o privados y son aquellos que
se asignan dinámicamente a alguna aplicación del cliente, cuando inicia una
conexión.
Ejemplos: Son usados por los servicios P2P (peer to peer)
4 bytes = 32 bits.
192.168.10.50
192 = 11000000
168 = 10101000
10 = 00001010
50 = 00110010
¿POR QUÉ? Porque internet es muy grande. Las ips que usamos en nuestro PC, las
usamos en internet.
IP de Twitter = 104.244.42.65
A traves del router voy a tener una IP publica que podre usar en internet.
Se especifica acá los rangos de IPS que no estaran en el internet publico, solo en
el privado.
Una mascara de red es un permiso de como yo puedo asignar redes a traves del limite
255.255.0.0
255.255.255.0
En la mayoria de los casos no hay que preocuparse por esto.
Los primeros 2 bytes son los mismos dos bytes de los cuales arrancamos, son los que
estan permitidos por la mascara de red.
Luego tenemos nuestra subred, en este caso el 10, luego tenemos el numero que
cambia, el 1, es el numero inicial al que todos nuestros dispositivos se conectan
Cuando el PC tiene un gateway ip correcto, puede hacer NAT, DHCP, obtener una IP y
conectarse a internet a traves del modem ISP
Estos ISP los que nos mandan un cable de ADSL, un cable de fibra a nuestras casas y
estos se conectan a internet.
Hay lugares que reciben las conexiones a internet y se les conocen como IXP. Acá
llegan los cables que se conectan a la red. Cables de fibra optica.
Las conexiones satelitales se dan por ejemplo cuando estas en un barco a mitad del
oceano.
El Cable que conecta a toda latinoamerica se llama arcos, es un cable anillo
ubicado en el caribe.
Un ISP se conecta a estos cables a traves de los IXP, por este medio nuestro
proveedor nos da acceso a internet.
Los DNS’s simplemente traducen una ip muy dificil de recordar a un nombre que sea
sencillo de recordar
Son servidores que tienen una BD al a cual saben a que IP corresponde un nombre.
Hay que hacerle una petición a un DNS antes de entrar a un sitio Web. Es lo primero
que hace el ISP.
Hay muchos DNS en el mundo, tienen copias exactamente igual de los diferentes
sistemas de dominio. Ya que deben ser rapidos, hay copias exactas en distintas
partes del mundo.
En otras ocasiones los servidores de emails pueden usar una IP diferente, para
hacer esto, los DNS tienen una sub base de datos llamado los MX Records, donde se
guarda la ip del sv de correo.
Los proveedores de internet les pagan a los IXP para poder conectarse. Las
conexiones son muy costosas.
Conexiones con redes locales.
Lo que hacen los ISP es QoS o Internet Shaping /Throttling. Regulan la velocidad
según el servicio al quieres acceder.
Para hacer que la conexión sea más corta sirven los CDN (content delivery network),
cuando los datos no tienen que ser procesados (archivos estáticos) los replican por
todo el planeta.
Cuando queremos conectarnos a puntos muy lejanos por ejemplo el otro lado del mundo
para nuestro proveedor de internet es muy costoso por lo tanto prioriza las
conexiones usando un QoS (Quality of Service)
Cuando la conexión esta cerca nuestro proveedor de internet hace una red MAN
(Metropolitan Area Network) y el costo de eso es casi nulo.
Hay un forma de burlar el QoS y simular una la conexión más cercana y esto es a
través del CDN (Content Delivery Network) que funcionan solamente para mostrar
contenido estático como imagenes, videos etc.
Aunque nos vengas 10mbs, lo que nos venden son mega bits.
8 bits son 1 byte
Con una conexion de 10 mbs puedo transferirir 1.25mega bytes por segundo.
ping google.com
MB/S la cantidad de datos que caben por segundos en el tubo de nuestra conexión.
// MODELO CLIENTE/SERVIDOR \\
NodeJS es una tecnologia que permite correr javascript del lado del servidor por
medio de un servidor de eventos.
METODOS EN LA WEB:
Muchas veces en el servidor corren muchos dominios, por eso se le debe pasar el
host.
Estos datos los empaqueta y los manda a la IP del servidor a un puerto del
servidor, en este caso, puerto 80.
Las cookies se pegan al requests, todos los requests que haga al servidor traen la
cookie ya instalada.
Las cookies pesan bytes. Por eso nunca hay que abusar de las cookies. Deben ser
limitadas a pequeñas variables
FreeBSD = Es el nucleo en el que se baso Next, y adquiere apple para crear Mac OS
Windows = Cerrado
Linux = Open Source, Libre
FreeBSD = Open Source, Libre
Libre !== Open Source, no por ser open source puede ser libre.
Libre quiere decir que cualquiera tiene derecho reescribir, distribuir y modificar.
Sofware open source = Codigo abierto, que puede ser descargado y dsitribuir, pero
no puede hacerse modificaciones.
Windows tiene un kernel de microsoft, cada uno de los windows tiene su propio
kernel
Next cuando es adquirido por apple, crea un sistema llamado Darwin y nace el Kernel
XNU, el cual es el nucleo de Mac OSX
En linux y DSB tiene un capa que convierte la consola y todo su texto a interfaz
grafica llamada X11
En el mundo de linux existe un sistema visual llamado KDE y otro llamado GNOME
parecido a MAC, pero estos estan derivados de X11
ANDROID
El sistema operativo movil mas usado del mundo es otra distro de linux.
Windows y Mac, vienen de una empresa llamada XeroX. Creo la computacion movil como
la conocemos, las ventanas, en el mouse.
En 1981 Xerox creo el xerox start, todo viene acá, el SO que creo las ventanas
R: leer,
W: escribir,
X: Ejecutar, Lo que hace ejecutable un archivo es el permiso de ejecución
Un guion es un permiso que no se aplica
3 grupos:
Admin: RWX
TEAM: RW-
PUBLIC: R--
chmod 666, los 666 son codigos binarios que activan o desactivan los permisos.
666 = RWX
111
7
RW-
110
6
Manifiesto de permisos:
En iOS usa un sistema de contenedores internos para las apps, basado en una teroia
llamado Sandbox, que aisla a las apps. Todos los archivos creados en otras apps no
pueden ser accedidos desde otras apps
Los sistemas embebidos son dispositivos que se encuentran en una gran variedad de
lugares, estos son los sistemas de procesamiento que se utilizan en dispositivos
diferentes a nuestros computadores, por ejemplo el microcontrolador que tiene
programadas las secuencias de tu lavadora, el sistema embebido que tiene tu
vehículo y que se encarga de coordinar tareas de seguridad básicas, entre otras
cosas, el microcontrolador que tiene programadas las funciones de tu horno de
microondas, el sistema de control de una estufa de inducción, la computadora
embebida en un cajero automático, el sistema de navegación, estabilización y
seguridad de un avión y muchos dispositivos más.
Un raspberry PI tienen una CPU ARM con 4 nucleos. No se programan como un arduino.
Son un PC completo.
Tienen puertos, USB, HDMI y un puerto electrico multifuncional donde se le puede
agregar otra serie de dispositivos.
Tiene una GPU, lo cual no es comun, se llama Broadcom videocore. Hace render de
cualquier cosa grafica.
Las simcards son un chip con SO, nacieron apartir de las SMART CARD.
Smart card, por dentro tienen una CPU, RAM y ROM, pueden correr multiples SO.
Java Card: El SO que usan los proveedores de internet, corren aplicaciones de Java.
Son SO Real Time o que prenden y ejecutan y luego se apagan de nuevo, super rapido.
¿Cómo funciona la compresión de un archivo sin perder ningún valor de ese archivo?
Los árboles binarios nos permiten comprimir sin perder información. En este caso,
vamos a comprimir “amo leer panama papers”.
Con esto debemos volver a construir nuestro mensaje siguiendo el árbol, esto
quedaría
1 00001 0000001 01 00000001 001 001 000001 01 0001 1 0000000001 1 00001 1 01 0001 1
0001 001 000001 000000001
Podemos hacer que la letra que mas se repita ocupe solo un bit
M=00001
1 00001 0000001 01 00000001 001 001 000001 01 0001 1 0000000001 1 00001 1 01 0001 1
0001 001 000001 000000001
Historicamente las extensiones tenian 3 extensiones, porque windows tenia muy pocos
bits designados para el nombre de archivo y la extensión.
Solamente tenias 8 bytes para el nombre de archvios y 3 bytes para las extensiones.
Este va dentro del archivo y lee los primeros bytes del archivo, que se conoce como
cabecera.
UN SO lee los primeros bytes hasta que encuentra un patron que reconoce.
BMP = un mapa de bits, un mapa donde cada uno de los cuadritos es un bit. para
saber cuanto pesa una imagen de 600x800, pesaria 480kb
Agrupa colores repetidos y cada vez lo hace mas chiquito. Esto se le conoce como el
problema de los limites, por eso a veces se degrada.
Esto hace que pueda pesar mucho mas liviano. 36.000 bytes, 36kb
Entre mas compleja sea la foto, mas pesada va a ser, pero la mayoria de las fotos
son facilmente comprimibles.
Artefacto JPG. que tanto puedo comprimir algo mientras pueda obtener su valor real.
Si un video tiene 100 frames a 24 fps, trendria mas o menos 4 segundos, si cada
frame pesara 1.9mb, esos 100 frames, serian 190 mb por 4 segundos a 24 fps.
Contenedor = Son los tipos de archivo donde se guarda el video, los videos son
muchas cosas, animacion, sonido, subtitulos, diferentes tracks, audio, subtitulos.
Contenedores:
.avi
.mp4
.flv
.mpg
mp4, flv, webm soportan multipart, romper el video en muchos fragmentos y en cada
fragmento, repetir la cabecera.
VP9
ogg
Por dentro esta compuesto por multiples empresas, Apple, Microsoft, Universal,
Sony, etc...
HTTP, aunque no es bueno para transmitir videos, porque se puede llegar a perder la
conexion.
permite recibir por pedazos independientes cada uno de los videos con cada
contenedor y cabeceras.
webartc: conexion per to per con un servidor central. pero es pesado para el CPU.
Puedo crear un algoritmo que internamente que diga, desde el min 1:00 hasta el
minuto 1:05, coloque en ese rectangulo, el color negro y estoy usando poco bytes.
Cada cierta cantidad de frames hay un frame que vuelve a redefinir el area.
drop keyframe
// REDES NEURONALES \\
En las maquina los inputs (sentidos de los humanos) son datos que le pasamos por
memoria RAM a un algoritmo.
Una red neural que es entrenada con datos sobre horas de estudio x calificación
puede decirme cuanto sera la nota de mi examen.
La red neural:
horas de sueño
Horas de estudio
Genera un resultado
Se toman los datos, horas de sueño, hora de estudio, se multiplica por el peso de
cada dato, segun la importancia, si hora de sueño es mas importante que hora de
estudio, luego lo pasas por una funcion de activación.
Funcion sigmoide:
// SQL Y NO SQL \\
Relacional = Las de toda la vida, un restaurante tiene menus, un menu tiene items.
Tenemos documentos o variables, una coleccion datos que se parecen entre si, pero
que no son necesariamente iguales.
Por ejemplo, todos pueden tener nombres, algunos pueden no tener edad.