OS
Clase 18 de 31 • Curso de Fundamentos de Node.js
Contenido del curso
Clase 18 de 31 • Curso de Fundamentos de Node.js
Contenido del curso
Nicolas Esteban Prieto Sarmiento
Rodolfo Ugalde Ochoa
Julio Flores
Enmanuel Castillo
ANTHONY JEAMPIER RANGEL RODRIGUEZ
Sebastian Amaya
Alejandro Giraldo Londoño
Daniel Said Rodríguez Ortiz
Jorge Fidel Zubieta Choque
Jesus David Urquijo Corredor
Gagandeep Dass
Juan Esteban Deossa Pertuz
Miguel Angel Reyes Moreno
Eduardo Rodriguez
Roberto Pérez Favela
Ginnio Sarabia
Roberto Pérez Favela
Jonathan Buitrago Roncancio
Jorge Fidel Zubieta Choque
Uriel Mojica Mejía
Ginnio Sarabia
Juan Jose Vega
Miguel Angel Reyes Moreno
Jesus David Urquijo Corredor
Rodrigo Andrés Moreno Pertúz
Roberto Shirásago Domínguez
Miguel Angel Muñoz Pozos
Francisco Garcia [C6]
Esteban Martini
Abigail Perez
Cristian Mauricio Cavanzo Arias
Jossie Steeven Quintero Giron
Wilson Fernando Antury Torres
Omar Dario Melendrez
Abigail Perez
Siempre es util esta info.
Gracias por el aporte.!
Excelente clase!!! OMG, its so incredible all these things. Les dejo para quienes deseen mis apuntes del video con algunos comentarios a lo programador, o sea, casi lo mismo xd:
const os = require('os') // Architecture console.log('Architecture:') console.log(os.arch()) console.log('') // Platform console.log('Platform:') console.log(os.platform()) console.log('') // cpus console.log('cpus') console.log(os.cpus().length) console.log('') // Errores y señales del sistema console.log('Erros and signals of the system') console.log(os.constants) console.log('') // Function to convert from bytes to kbytes, mbytes and gbytes const SIZE = 1024 kb = bytes => { return bytes / SIZE } mb = bytes => { return kb(bytes) / SIZE } gb = bytes => { return mb(bytes) / SIZE } // Total Ram Memory console.log('Total Ram Memory:') console.log(`${os.totalmem()} bytes`) console.log(`${kb(os.totalmem)} kb`) console.log(`${mb(os.totalmem)} mb`) console.log(`${gb(os.totalmem)} gb`) console.log('') // Free memory we have in bytes units console.log('Free memory we have in kbytes units') console.log(`free Ram memory: ${os.freemem()} bytes`) console.log(`free Ram memory: ${kb(os.freemem())} kb`) console.log(`free Ram memory: ${mb(os.freemem())} mb`) console.log(`free Ram memory: ${gb(os.freemem())} mb`) console.log('') // Directory for the user root console.log('Directory for the user root') console.log(os.homedir()) console.log('') // Directory for temporal files console.log('Directory for temporal files') console.log(os.tmpdir()) console.log('') // Hostname of a server console.log('Hostname of any server') console.log(os.hostname()) console.log('') // Actived Network interfaces right now console.log('Network Interfaces right now') console.log(os.networkInterfaces()) console.log('')
gracias por el aporte
si quitas las llaves de tus arrow functions, no necesitas el RETURN, ya que tienes SOLO UNA linea de codigo, se vera mas limpio.
RESUMEN:
El modulo de Node para OS me permite acceder a elementos de muy bajo nivel, y es útil en diferentes contextos.
const os = require('os'); console.log(os.hostname());// Voy a saber el hostname de la máquina console.log(os.networkInterfaces());// Puedo acceder a mi interfaz de red activas en mi máquina, puedo saber IPVX console.log(os.tmpdir())//-->Me muestra los directorios temporales, temproales una imagen que voy a procesar console.log(os.homedir()) // Me permite saber cual es el directorio raíz console.log(os.arch()); //----> Me devuelve la arquitecura de mi OS console.log(os.platform());//---> Me dice en qué plataforma estoy console.log(os.cpus());//--->podemos acceder a la información de las cpus de mi pc. console.log(os.constants);//---> Me muestran todos los errores de sistema. //Acceder a espacios de memoria es muy útil para saber si tengo a memoria suficiente para realizar esta operación. console.log(os.freemem());// ---> Me dice en bytes la memoria libre que tenemos // console.log(kb(os.freemem())); // console.log(mb(os.freemem())); // console.log(gb(os.freemem())); console.log(gb(os.totalmem())); // ---> Me muestra la memoria disponible del pc. const SIZE = 1024; function kb(bytes) { return bytes / SIZE } function mb(bytes) { return kb(bytes) / SIZE } function gb(bytes) { return mb(bytes) / SIZE }
GRACIASSSSS :) me hiciste el trabajo mas facil
gracias!
Para ver más bonito lo de los cpus:
console.table(os.cpus());
gracias!!!
El modulo de OS, Operative System, nos permite ejecutar acciones de más bajo nivel en nuestro sistema, permitiéndonos conocer una gran variedad de detalles del mismo. Como la memoria disponible que tiene, el total de la memoria, la interfaz de red, etc. Esto nos será de gran ayuda a la hora de ejecutar o crear proyectos que necesiten información de una maquina para ejecutar una operación.
Les recomiendo usar
console.table(os.cpus()) console.table(os.networkInterfaces())
Siempre que su console.log les regrese arrays, es mejor utilizar console.table
Es verdad, la costumbre del console.log. Lo pinta muy padre console.table
console.table es muy útil en casos como este sin duda
El profe es un crack.
100%
Una pequeña corrección, la propiedad length utilizada en el método cpus indica el numero de hilos(threads) que tiene nuestro procesador, no los núcleos, por eso se itera el código un numero de veces dependiendo del numero de hilos que tengamos.
Lo dijo pero de otra forma! basicamente! mira le video nuevamente!
Que clase tan interesante, me hizo sentir un hacker 😅
Todos necesitamos más ram xd
Solo es cuestión de descargarla :p claro
Yo hice el siguiente código para ordenarlo un poco mejor a mi gusto:
var SIZE = 1024 var RAM = { kb(bytes) { return bytes / SIZE }, mb(bytes) { return this.kb(bytes) / SIZE }, gb(bytes) { return this.mb(bytes) / SIZE; }, } console.log(RAM.mb(os.freemem()) + "mb"); console.log(RAM.kb(os.freemem()) + "kb"); console.log(RAM.gb(os.freemem()) + "gb");```
Me gustó como formateaste el codigo, tiene algun nombre escribir el codigo asi? como para seguir investigando....
Que Bonito esto de Node.js
En verdad muy util. todo el tema de sistema operativo.
const os = require('os'); //muestra la arquitectura del equipo //x64 console.log(os.arch()); //plataforma sistema operativo //win32 console.log(os.platform()); //informaciòn de las cpu del equipo, cuantos core tiene, la velocidad etc console.log(os.cpus()); console.log(`${os.cpus().length} cores`); //errores y señales del sistema //señales de prioridad console.log(os.constants); //memoria libre en bytes //console.log(os.freemem()); const SIZE = 1024; const kb = (bytes) => bytes / SIZE const mb = (bytes) => kb(bytes) / SIZE const gb = (bytes) => mb(bytes) / SIZE // console.log(kb(os.freemem())); // console.log(mb(os.freemem())); console.log(`Memoria libre ${gb(os.freemem())} GB`); console.log(`Total Memoria ${gb(os.totalmem())} GB`); //muestra el directorio del usuario console.log(`El directorio del usuaioro: ${os.homedir()}`); //directorio de temporales console.log(`El directorio de archivos temporales: ${os.tmpdir()}`); //nombre del host o nombre de la maquina console.log(os.hostname()); //interface de red console.log(os.networkInterfaces());
en vez de avanzar con el curso me puse a hacer un mini cli para conocer la info del sistema, ajajjaa... falta encapsular la mayoria de la info, asi que les dejo para que juegen:
const os = require("os"); const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("close", function () { console.log("\nBYE BYE !!!"); process.exit(0); }); const printOptions = () => { console.log("**********************************************"); console.log(" tyny system info. "); console.log("**********************************************"); console.log("choice an option:"); rl.question( ` 1. Architecture Info. x. exit `, handleResponse ); }; const askMore = () => { rl.question("More info...? (S/n)", function (res) { res !== "n" ? printOptions() : process.exit(0); }); }; const handleResponse = (opt) => { switch (opt) { case "1": gralInfo(); askMore(); break; case "x": rl.close(); default: console.log("opcion no valida"); printOptions(); break; } }; const gralInfo = () => { // Architecture console.log("**********************************************"); console.log(" GRAL INFO "); console.log("**********************************************"); console.log("Architecture:", os.arch()); // Platform console.log("Platform:", os.platform()); }; const allInfo = () => { // cpus console.log("cpus"); console.log(os.cpus().length); console.log(""); // Errores y se?ales del sistema console.log("Erros and signals of the system"); console.log(os.constants); console.log(""); // Function to convert from bytes to kbytes, mbytes and gbytes const SIZE = 1024; kb = (bytes) => { return bytes / SIZE; }; mb = (bytes) => { return kb(bytes) / SIZE; }; gb = (bytes) => { return mb(bytes) / SIZE; }; // Total Ram Memory console.log("Total Ram Memory:"); console.log(`${os.totalmem()} bytes`); console.log(`${kb(os.totalmem())} kb`); console.log(`${mb(os.totalmem())} mb`); console.log(`${gb(os.totalmem())} gb`); console.log(""); // Free memory we have in bytes units console.log("Free memory we have in kbytes units"); console.log(`free Ram memory: ${os.freemem()} bytes`); console.log(`free Ram memory: ${kb(os.freemem())} kb`); console.log(`free Ram memory: ${mb(os.freemem())} mb`); console.log(`free Ram memory: ${gb(os.freemem())} mb`); console.log(""); // Directory for the user root console.log("Directory for the user root"); console.log(os.homedir()); console.log(""); // Directory for temporal files console.log("Directory for temporal files"); console.log(os.tmpdir()); console.log(""); // Hostname of a server console.log("Hostname of any server"); console.log(os.hostname()); console.log(""); // Actived Network interfaces right now console.log("Network Interfaces right now"); console.log(os.networkInterfaces()); console.log(""); }; function initialize() { printOptions(); } initialize();
++módulo os:++permite acceder a todo lo que normalmente solo se puede acceder desde lenguaje de muy bajo nivel, como por ejemplo acceder a la memoria ram, N° de cores, N° de nucleos, tipo de sistema de archivos, etc.
si yo utilizo os en produccion, este tomara las especificaciones del servidor o del computador en la que estemos accediendo?
Del servidor! OS es una API de NodeJS. NodeJS lo tienes instalado en tu servidor, por lo tanto usa la info de tu sistema. Si buscas info del cliente, tienes que usar código de JS desde el Front-end.
El módulo 'OS' nos permite tener acceso a información de bajo nivel sobre la máquina.
-const os = require('os'); //requerimos el modulo de node de os
-console.log(os.arch()); //indica el tipo de arquitectura del equipo
-console.log(os.platform()) //indica cual es el tipo de sistema operativo utilizado -console.log(os.cpus().length) //nos indica con cuantos nucleos cuenta el equipo
-console.log(os.constants) //indica toda la informacion de las señales del sistema.
-console.log(os.freemem()) //Indica memoria en bytes libre
-console.log(os.totalmem()) // indica toda la memoria de la pc
-console.log(os.homedir()); //indica directorio de la pc
-console.log(os.tmpdir()); //indica directorio de archivos temporales
-console.log(os.hostname()); //indica el hostname de la pc
-console.log(os.networkInterfaces()); //indica todas las interfaces de redes a las cuales se encuentra conectadada la pc
os.hostname(): obtiene el nombre de la maquina