{"id":30717,"date":"2019-10-31T21:37:05","date_gmt":"2019-10-31T18:37:05","guid":{"rendered":"https:\/\/prohoster.info\/blog\/operating-systems-three-easy-pieces-part-1-intro-perevod\/"},"modified":"2019-10-31T21:37:05","modified_gmt":"2019-10-31T18:37:05","slug":"operating-systems-three-easy-pieces-part-1-intro-perevod","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","title":{"rendered":"Sistemas Operativos: Tres Piezas F\u00e1ciles. Parte 1: Introducci\u00f3n (traducci\u00f3n)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1>Introducci\u00f3n a los sistemas operativos<\/h1>\n<p>\u00a1Hola, Habr! Quiero presentarles una serie de art\u00edculos traducidos de una literatura que considero interesante: OSTEP. Este material profundiza en el funcionamiento de los sistemas operativos similares a Unix, es decir, el manejo de procesos, diferentes planificadores, memoria y otros componentes similares que conforman un sistema operativo moderno. Pueden ver el original de todos los materiales aqu\u00ed: <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/\">aqu\u00ed<\/a><\/noindex>. Por favor, tengan en cuenta que la traducci\u00f3n se realiz\u00f3 de manera no profesional (bastante libre), pero espero haber mantenido el sentido general.<\/p>\n<p>Los trabajos de laboratorio sobre este tema se pueden encontrar aqu\u00ed:<br \/>\n \u2014 original: <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/Homework\/homework.html\">pages.cs.wisc.edu\/~remzi\/OSTEP\/Homework\/homework.html<\/a><\/noindex><br \/>\n \u2014 original: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/remzi-arpacidusseau\/ostep-code\">github.com\/remzi-arpacidusseau\/ostep-code<\/a><\/noindex><br \/>\n \u2014 mi adaptaci\u00f3n personal: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bykvaadm\/OS\/tree\/master\/ostep\">github.com\/bykvaadm\/OS\/tree\/master\/ostep<\/a><\/noindex><\/p>\n<p>Y tambi\u00e9n pueden visitar mi canal en <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/bykvaadm\">Telegram<\/a><\/noindex> =)<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Funcionamiento del programa<\/h3>\n<p>\n\u00bfQu\u00e9 sucede cuando se ejecuta un programa? Un programa en ejecuci\u00f3n realiza una tarea simple: ejecuta instrucciones. Cada segundo, millones e incluso posiblemente miles de millones de instrucciones son extra\u00eddas por el procesador de la memoria RAM, el cual las decodifica (por ejemplo, reconociendo a qu\u00e9 tipo pertenecen estas instrucciones) y las ejecuta. Esto puede incluir la suma de dos n\u00fameros, acceso a memoria, comprobaci\u00f3n de condiciones, salto a funciones, entre otros. Al finalizar la ejecuci\u00f3n de una instrucci\u00f3n, el procesador pasa a la siguiente. As\u00ed, instrucci\u00f3n por instrucci\u00f3n, se ejecutan hasta que el programa finaliza.<br \/>\nEste ejemplo, por supuesto, se ha presentado de forma simplificada; en realidad, para acelerar el trabajo del procesador, el hardware moderno permite ejecutar instrucciones fuera de orden, calcular resultados potenciales, ejecutar instrucciones simult\u00e1neamente y otros trucos similares.<\/p>\n<h3>Modelo de c\u00e1lculo de von Neumann<\/h3>\n<p>\nLa forma simplificada de trabajo que hemos descrito se asemeja al modelo de c\u00e1lculo de von Neumann. <i>Von Neumann fue uno de los pioneros de los sistemas inform\u00e1ticos, y tambi\u00e9n uno de los autores de la teor\u00eda de juegos.<\/i>Durante la ejecuci\u00f3n de un programa, ocurren muchas otras cosas, funcionan muchos otros procesos y l\u00f3gicas externas, cuya principal objetivo es simplificar la ejecuci\u00f3n, trabajo y mantenimiento del sistema.<br \/>\nExiste un conjunto de software responsable de facilitar la ejecuci\u00f3n de programas (o incluso permitir ejecutar m\u00faltiples programas simult\u00e1neamente), permitiendo que los programas compartan la misma memoria y se interaccionen con diversos dispositivos. Este conjunto de software se conoce esencialmente como sistema operativo, y su tarea incluye asegurar que el sistema funcione correctamente y de manera eficiente, as\u00ed como proporcionar facilidad en la gesti\u00f3n de este sistema. <\/p>\n<h2>Sistema operativo<\/h2>\n<p>\n<b>El sistema operativo, abreviado como SO, es un conjunto de programas interrelacionados, destinado a gestionar los recursos del ordenador y organizar la interacci\u00f3n del usuario con el mismo.<\/b>. <br \/>\nEl SO logra su eficiencia principalmente a trav\u00e9s de la t\u00e9cnica m\u00e1s crucial: la t\u00e9cnica de <b>virtualizaci\u00f3n<\/b>. El SO interact\u00faa con los recursos f\u00edsicos (como el procesador, la memoria, el disco y similares) y los transforma en una forma m\u00e1s general, con mayores posibilidades y m\u00e1s sencilla de usar. Por lo tanto, para una comprensi\u00f3n general, se puede comparar de manera muy aproximada el sistema operativo con una m\u00e1quina virtual.<br \/>\nPara permitir que los usuarios den comandos al sistema operativo y, de este modo, utilicen las capacidades de la m\u00e1quina virtual (como: ejecutar programas, asignar memoria, acceder a archivos, etc.), el sistema operativo proporciona una interfaz llamada <b>API<\/b> (application programming interface) a la que se pueden realizar llamadas (call). Un sistema operativo t\u00edpico permite realizar cientos de llamadas del sistema.<br \/>\nY finalmente, dado que la virtualizaci\u00f3n permite que m\u00faltiples programas funcionen (compartiendo as\u00ed el CPU), y accedan simult\u00e1neamente a sus instrucciones y datos (compartiendo memoria), as\u00ed como acceder a discos (compartiendo dispositivos de entrada\/salida), el sistema operativo tambi\u00e9n se conoce como gestor de recursos. Cada procesador, disco y memoria es un recurso del sistema y, por lo tanto, una de las funciones del sistema operativo es gestionar estos recursos de manera eficiente, justa o, por el contrario, dependiendo de la tarea para la que este sistema operativo fue dise\u00f1ado.<\/p>\n<h3>Virtualizaci\u00f3n de CPU<\/h3>\n<p>\nConsideremos el siguiente programa:<br \/>\n(https:\/\/www.youtube.com\/watch?v=zDwT5fUcki4&amp;feature=youtu.be)<\/p>\n<p> <img decoding=\"async\" alt=\"Sistemas Operativos: Tres Piezas F\u00e1ciles. Parte 1: Introducci\u00f3n (traducci\u00f3n)\" src=\"\/wp-content\/uploads\/2019\/04\/1f353e582b857fc71231472ec4f55319.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNo realiza acciones especiales; b\u00e1sicamente, lo que hace es llamar a la funci\u00f3n <b>spin<\/b>(), cuya tarea es verificar c\u00edclicamente el tiempo y devolverlo, despu\u00e9s de que ha pasado un segundo. De esta manera, repite indefinidamente la cadena que el usuario ha pasado como argumento.<br \/>\nEjecutemos este programa y le pasemos como argumento el s\u00edmbolo \u201cA\u201d. El resultado no es especialmente interesante: el sistema simplemente ejecuta el programa que peri\u00f3dicamente muestra en pantalla el s\u00edmbolo \u201cA\u201d.<br \/>\nAhora intentemos una variante en la que se lanzan varias instancias del mismo programa, pero que muestran diferentes letras para que sea m\u00e1s claro. En este caso, el resultado ser\u00e1 algo diferente. A pesar de que tenemos un solo procesador, el programa se ejecuta simult\u00e1neamente. \u00bfC\u00f3mo es posible? La respuesta es que el sistema operativo, con la ayuda de las capacidades del hardware, crea una ilusi\u00f3n. La ilusi\u00f3n de que hay varios procesadores virtuales en el sistema, convirtiendo un procesador f\u00edsico en una cantidad te\u00f3ricamente infinita y, por lo tanto, permitiendo que los programas parezcan ejecutarse simult\u00e1neamente. Esta ilusi\u00f3n se llama <i>Virtualizaci\u00f3n de CPU<\/i>.<br \/>\n Este tipo de escenario plantea muchas preguntas, por ejemplo, si varios programas desean ejecutarse simult\u00e1neamente, \u00bfcu\u00e1l de ellos se ejecutar\u00e1 realmente? Esta cuesti\u00f3n es resuelta por las \u201cpol\u00edticas\u201d del sistema operativo. Las pol\u00edticas se utilizan en muchos lugares del sistema operativo y responden a preguntas como esta, adem\u00e1s de ser mecanismos b\u00e1sicos que implementa el sistema operativo. De ah\u00ed la funci\u00f3n del sistema operativo como gestor de recursos.<\/p>\n<h3>Virtualizaci\u00f3n de la memoria<\/h3>\n<p>\n Ahora examinemos la memoria. <b>El modelo f\u00edsico de la memoria en los sistemas modernos se presenta como un arreglo de bytes.<\/b>Para leer desde la memoria, se debe indicar <b>la direcci\u00f3n de la celda<\/b>, para poder acceder a ella. Para escribir o actualizar datos, tambi\u00e9n es necesario indicar los datos y la direcci\u00f3n de la celda donde se escribir\u00e1n.<br \/>\n Los accesos a la memoria ocurren constantemente durante la ejecuci\u00f3n del programa. El programa mantiene en la memoria toda su estructura de datos y accede a ella al ejecutar diversas instrucciones. Las instrucciones tambi\u00e9n se almacenan en la memoria, por lo que los accesos a esta se producen tambi\u00e9n ante cada solicitud de la siguiente instrucci\u00f3n.<\/p>\n<h4>Llamada a malloc()<\/h4>\n<p>Consideremos el siguiente programa que asigna un \u00e1rea de memoria utilizando la llamada <b>malloc()<\/b> (https:\/\/youtu.be\/jnlKRnoT1m0):<\/p>\n<p><img decoding=\"async\" alt=\"Sistemas Operativos: Tres Piezas F\u00e1ciles. Parte 1: Introducci\u00f3n (traducci\u00f3n)\" src=\"\/wp-content\/uploads\/2019\/04\/00b285e1999c2b010c84e712a3ac3087.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEl programa realiza varias tareas. En primer lugar, asigna cierta cantidad de memoria (l\u00ednea 7), luego imprime la direcci\u00f3n de la celda de memoria asignada (l\u00ednea 9), y escribe cero en la primera ranura de memoria asignada. A continuaci\u00f3n, el programa entra en un bucle donde incrementa el valor almacenado en la memoria en la direcci\u00f3n de la variable \u201cp\u201d. Tambi\u00e9n imprime su propio identificador de proceso. <b>El identificador de proceso es \u00fanico para cada proceso en ejecuci\u00f3n.<\/b>Si ejecutamos varias copias, nos encontraremos con un resultado interesante: en el primer caso, si no hacemos nada y simplemente ejecutamos varias copias, las direcciones ser\u00e1n diferentes. Pero eso no se ajusta a nuestra teor\u00eda. Correcto, ya que en las distribuciones modernas est\u00e1 habilitada por defecto la funci\u00f3n de aleatorizaci\u00f3n de memoria. Si la desactivamos, obtendremos el resultado esperado: las direcciones de memoria de dos programas que se ejecutan simult\u00e1neamente coinciden. <\/p>\n<p><img decoding=\"async\" alt=\"Sistemas Operativos: Tres Piezas F\u00e1ciles. Parte 1: Introducci\u00f3n (traducci\u00f3n)\" src=\"\/wp-content\/uploads\/2019\/04\/882fe00a72deadac12f146bc8d15b024.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>En consecuencia, resulta que dos programas independientes operan en sus propios espacios de direcciones privados, que a su vez son mapeados por el sistema operativo en la memoria f\u00edsica.<\/b>Por lo tanto, el uso de direcciones de memoria dentro de un programa no afectar\u00e1 a los dem\u00e1s, y cada programa siente que tiene su propio trozo de memoria f\u00edsica, completamente a su disposici\u00f3n. La realidad, sin embargo, es que la memoria f\u00edsica es un recurso compartido, cuya gesti\u00f3n es responsabilidad del sistema operativo.<\/p>\n<h3>Consistencia<\/h3>\n<p>\nOtro tema importante en el \u00e1mbito de los sistemas operativos es <b>consistencia<\/b>. Este t\u00e9rmino se utiliza cuando se habla de problemas en el sistema que pueden surgir al trabajar con muchas cosas simult\u00e1neamente dentro de un mismo programa. Los problemas de consistencia tambi\u00e9n surgen en el propio sistema operativo. En los ejemplos anteriores sobre la virtualizaci\u00f3n de memoria y procesador, comprendimos que el sistema operativo gestiona muchas cosas al mismo tiempo: inicia el primer proceso, luego el segundo, y as\u00ed sucesivamente. Resulta que este comportamiento puede dar lugar a ciertos problemas. Por ejemplo, los programas multihilo modernos enfrentan estas dificultades.<\/p>\n<p>Consideremos el siguiente programa:<\/p>\n<p> <img decoding=\"async\" alt=\"Sistemas Operativos: Tres Piezas F\u00e1ciles. Parte 1: Introducci\u00f3n (traducci\u00f3n)\" src=\"\/wp-content\/uploads\/2019\/04\/091af38bd53fb94e65afa6c57b08f012.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEl programa en la funci\u00f3n principal crea dos hilos utilizando la llamada <b>Pthread_create()<\/b>. En este ejemplo, se puede pensar en un hilo como en una funci\u00f3n que se ejecuta en un espacio de memoria junto a otras funciones, y el n\u00famero de funciones ejecut\u00e1ndose simult\u00e1neamente es claramente m\u00e1s de una. En este ejemplo, cada hilo inicia y ejecuta la funci\u00f3n <b>worker(), que a su vez simplemente incrementa una variable.<\/b>,.<\/p>\n<p>Ejecutamos este programa con el argumento 1000. Como ya habr\u00e1n adivinado, el resultado deber\u00eda ser 2000, ya que cada hilo increment\u00f3 la variable 1000 veces. Sin embargo, no es tan simple. Intentemos ejecutar el programa con un n\u00famero de repeticiones una orden de magnitud mayor.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemas Operativos: Tres Piezas F\u00e1ciles. Parte 1: Introducci\u00f3n (traducci\u00f3n)\" src=\"\/wp-content\/uploads\/2019\/04\/a6a3e63f9ab94793ffde67342c5a19da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAl ingresar un n\u00famero, por ejemplo, 100000, esperamos ver como salida el n\u00famero 200000. Sin embargo, al ejecutar el n\u00famero 100000 varias veces, no solo no obtendremos la respuesta correcta, sino que tambi\u00e9n obtendremos diferentes respuestas incorrectas. La clave est\u00e1 en que para aumentar el n\u00famero se requieren tres operaciones: extraer el n\u00famero de la memoria, incrementarlo y luego escribir el n\u00famero de nuevo. Debido a que todas estas instrucciones no se realizan de manera at\u00f3mica (todas al mismo tiempo), pueden ocurrir estas extra\u00f1as situaciones. Este problema se llama en programaci\u00f3n <b>condici\u00f3n de carrera.<\/b>Cuando fuerzas desconocidas en un momento desconocido pueden influir en la ejecuci\u00f3n de alguna de tus operaciones.<br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446340\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP. \u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u0440\u0430\u0431\u043e\u0442\u0430 unix-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430\u043c\u0438, \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0438 \u043f\u0440\u043e\u0447\u0438\u043d\u0438\u043c\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u041e\u0421. \u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0432\u0441\u0435\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043e\u0442 \u0442\u0443\u0442. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":22702,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30717","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Operating Systems: Three Easy Pieces. Part 1: Intro (\u043f\u0435\u0440\u0435\u0432\u043e\u0434) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:37:05+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:37:05+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Sistemas Operativos: Tres Piezas Sencillas. Parte 1: Introducci\u00f3n (traducci\u00f3n) | ProHoster","description":"Introducci\u00f3n a los sistemas operativos. \u00a1Hola, Habr! Quiero presentarles una serie de art\u00edculos-traducciones de literatura que considero interesante: OSTEP.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Operating Systems: Three Easy Pieces. Part 1: Intro (\u043f\u0435\u0440\u0435\u0432\u043e\u0434) | ProHoster","og:description":"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:37:05+00:00","article:modified_time":"2019-10-31T18:37:05+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30717","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 02:38:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:30:51","updated":"2026-01-21 02:38:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/30717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=30717"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/30717\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/22702"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=30717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=30717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=30717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}