{"id":104906,"date":"2022-08-21T15:36:41","date_gmt":"2022-08-21T13:36:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-standartnoj-si-biblioteki-cosmopolitan-2-0-razvivaemoj-dlya-perenosimyh-ispolnyaemyh-fajlov"},"modified":"2022-08-21T15:36:41","modified_gmt":"2022-08-21T13:36:41","slug":"vypusk-standartnoj-si-biblioteki-cosmopolitan-2-0-razvivaemoj-dlya-perenosimyh-ispolnyaemyh-fajlov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-standartnoj-si-biblioteki-cosmopolitan-2-0-razvivaemoj-dlya-perenosimyh-ispolnyaemyh-fajlov","title":{"rendered":"Lan\u00e7amento da biblioteca padr\u00e3o C Cosmopolitan 2.0, desenvolvida para execut\u00e1veis port\u00e1veis","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Foi publicada a vers\u00e3o do projeto Cosmopolitan 2.0, que desenvolve a biblioteca padr\u00e3o C e um formato universal de arquivos execut\u00e1veis que pode ser utilizado para distribuir programas para diferentes sistemas operacionais sem o uso de interpretadores e m\u00e1quinas virtuais. O resultado obtido pela compila\u00e7\u00e3o no GCC e Clang \u00e9 combinado em um arquivo execut\u00e1vel universal est\u00e1ticamente vinculado, que \u00e9 adequado para execu\u00e7\u00e3o em qualquer distribui\u00e7\u00e3o Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD e at\u00e9 chamado a partir da BIOS. O c\u00f3digo do projeto \u00e9 distribu\u00eddo sob a licen\u00e7a ISC (vers\u00e3o simplificada do MIT\/BSD).         <\/p>\n<p>O cont\u00eainer para a forma\u00e7\u00e3o de arquivos execut\u00e1veis universais \u00e9 baseado na combina\u00e7\u00e3o de segmentos e cabe\u00e7alhos espec\u00edficos para diferentes sistemas operacionais (PE, ELF, MACHO, OPENBSD) em um \u00fanico arquivo, combinando v\u00e1rios formatos diferentes usados no Unix, Windows e macOS. Para garantir a execu\u00e7\u00e3o de um \u00fanico arquivo execut\u00e1vel em sistemas Windows e Unix, \u00e9 aplicado um truque relacionado \u00e0 codifica\u00e7\u00e3o de arquivos Windows PE na forma de um shell script, aproveitando o fato de que o Thompson Shell n\u00e3o utiliza o marcador de script &#171;#!&#187;. Para criar programas que incluem v\u00e1rios arquivos (agrupando todos os recursos em um arquivo), \u00e9 suportada a forma\u00e7\u00e3o de arquivos execut\u00e1veis na forma de um arquivo ZIP especialmente formatado. O esquema do formato proposto (exemplo do aplicativo hello.com):        <\/p>\n<p>     MZqFpD=&#8217;     BIOS BOOT SECTOR&#8217;     exec 7 $(command -v $0)     printf &#8216;&#092;177ELF&#8230;LINKER-ENCODED-FREEBSD-HEADER&#8217; &gt;&#038;7     exec &#171;$0&#187; &#171;$@&#187;     exec qemu-x86_64 &#171;$0&#187; &#171;$@&#187;     exit 1     REAL MODE&#8230;     ELF SEGMENTS&#8230;     OPENBSD NOTE&#8230;     MACHO HEADERS&#8230;     CODE AND DATA&#8230;     ZIP DIRECTORY&#8230;      <\/p>\n<p>No in\u00edcio do arquivo, \u00e9 indicada a marca &#171;MZqFpD&#187;, que \u00e9 interpretada como o cabe\u00e7alho do formato Windows PE. Esta sequ\u00eancia tamb\u00e9m \u00e9 decodificada na instru\u00e7\u00e3o &#171;pop %r10 ; jno 0x4a ; jo 0x4a&#187;, enquanto a string &#171;&#092;177ELF&#187; \u00e9 convertida na instru\u00e7\u00e3o &#171;jg 0x47&#187;, que s\u00e3o utilizadas para o desvio para o ponto de entrada. Em sistemas Unix, \u00e9 executado um c\u00f3digo shell, onde \u00e9 utilizada a comando exec para transfer\u00eancia do c\u00f3digo execut\u00e1vel atrav\u00e9s de um canal an\u00f4nimo. A limita\u00e7\u00e3o do m\u00e9todo proposto \u00e9 que a execu\u00e7\u00e3o em sistemas operacionais semelhantes ao Unix s\u00f3 \u00e9 poss\u00edvel com o uso de shells que compatibilizam com o modo Thompson Shell.       <\/p>\n<p>A chamada qemu-x86_64 \u00e9 prevista para implementar portabilidade adicional e permite executar c\u00f3digo compilado para a arquitetura x86_64 em plataformas diferentes de x86, como em placas Raspberry Pi e dispositivos Apple equipados com processadores ARM. O projeto tamb\u00e9m pode ser usado para criar aplicativos autossuficientes que funcionam sem um sistema operacional (bare metal). Nesses aplicativos, um carregador \u00e9 anexado ao arquivo execut\u00e1vel, e o programa atua como um sistema operacional carreg\u00e1vel.         <\/p>\n<p>Na biblioteca padr\u00e3o C proposta pelo projeto libc, foram sugeridas 2024 fun\u00e7\u00f5es (na primeira vers\u00e3o havia cerca de 1400 fun\u00e7\u00f5es). Em termos de desempenho, a Cosmopolitan opera t\u00e3o rapidamente quanto a glibc e superando significativamente a Musl e Newlib, enquanto a Cosmopolitan tem um tamanho de c\u00f3digo uma ordem de magnitude menor que a glibc e corresponde aproximadamente \u00e0 Musl e Newlib. Para otimizar fun\u00e7\u00f5es frequentemente chamadas, como memcpy e strlen, \u00e9 utilizada uma t\u00e9cnica &#171;trickle-down performance&#187;, onde para a chamada da fun\u00e7\u00e3o \u00e9 aplicado um macro-wrapper, no qual o compilador \u00e9 informado sobre os registros de CPU envolvidos no processo de execu\u00e7\u00e3o do c\u00f3digo, o que permite economizar recursos ao preservar o estado da CPU, mantendo apenas os registros que foram alterados.    <\/p>\n<p>Entre as mudan\u00e7as na nova vers\u00e3o:  <\/p>\n<ul>\n<li class=\"l\"> A estrutura de acesso aos recursos internos dentro do arquivo zip foi modificada (agora, ao abrir arquivos, s\u00e3o utilizados caminhos normais \/zip\/... em vez de acessar pelo prefixo zip:..). Da mesma forma, para acessar discos no Windows, agora \u00e9 poss\u00edvel utilizar caminhos no formato \u00ab\/c\/...\u00bb em vez de \u00abC:\/...\u00bb.\n<li class=\"l\"> Foi proposto um novo carregador APE (Actually Portable Executable), que define o formato dos arquivos execut\u00e1veis universais. O novo carregador utiliza mmap para alocar o programa na mem\u00f3ria e n\u00e3o altera mais o conte\u00fado em tempo real. Se necess\u00e1rio, o arquivo execut\u00e1vel universal pode ser convertido em arquivos execut\u00e1veis normais vinculados a plataformas espec\u00edficas.\n<li class=\"l\"> Na plataforma Linux, foi implementada a possibilidade de usar o m\u00f3dulo do kernel binfmt_misc para executar programas APE. Observa-se que o uso do binfmt_misc \u00e9 o m\u00e9todo mais r\u00e1pido para iniciar.\n<li class=\"l\"> Para Linux, foi proposta a implementa\u00e7\u00e3o das funcionalidades das chamadas de sistema pledge() e unveil(), desenvolvidas pelo projeto OpenBSD. Uma API \u00e9 fornecida para o uso dessas chamadas em programas nas linguagens C, C++, Python e Redbean, al\u00e9m de uma ferramenta pledge.com para isolar processos arbitr\u00e1rios.\n<li class=\"l\"> Para a constru\u00e7\u00e3o, foi utilizada a ferramenta Landlock Make \u2014 uma vers\u00e3o do GNU Make com verifica\u00e7\u00e3o de depend\u00eancias mais rigorosa e a utiliza\u00e7\u00e3o da chamada de sistema Landlock para isolar o programa do restante do sistema e aumentar a efici\u00eancia do cache. A op\u00e7\u00e3o de constru\u00e7\u00e3o com o GNU Make padr\u00e3o tamb\u00e9m foi mantida.\n<li class=\"l\"> Fun\u00e7\u00f5es para multithreading foram implementadas \u2014 _spawn() e _join(), que servem como interfaces universais para as APIs espec\u00edficas de diferentes sistemas operacionais. Tamb\u00e9m est\u00e1 em andamento o trabalho para implementar suporte a POSIX Threads.\n<li class=\"l\"> Foi disponibilizada a utiliza\u00e7\u00e3o da palavra-chave _Thread_local para usar armazenamentos separados para cada thread (TLS, Thread-Local Storage). Por padr\u00e3o, o runtime C inicializa o TLS para o thread principal, o que levou ao aumento do tamanho m\u00ednimo dos arquivos execut\u00e1veis de 12 para 16 KB.\n<li class=\"l\"> Os arquivos execut\u00e1veis agora suportam os par\u00e2metros \u00ab--ftrace\u00bb e \u00ab--strace\u00bb para imprimir no stderr informa\u00e7\u00f5es sobre todas as chamadas de fun\u00e7\u00e3o e chamadas de sistema.\n<li class=\"l\"> Adicionado suporte \u00e0 chamada de sistema closefrom(), suportada no Linux 5.9+, FreeBSD 8+ e OpenBSD.\n<li class=\"l\"> Na plataforma Linux, a performance das chamadas clock_gettime e gettimeofday foi aumentada em at\u00e9 10 vezes atrav\u00e9s do uso do mecanismo vDSO (objeto compartilhado din\u00e2mico virtual), que permite mover o manipulador da chamada de sistema para o espa\u00e7o do usu\u00e1rio e evitar mudan\u00e7as de contexto.\n<li class=\"l\"> Fun\u00e7\u00f5es matem\u00e1ticas para trabalhar com n\u00fameros complexos foram transferidas da biblioteca Musl. A execu\u00e7\u00e3o de muitas fun\u00e7\u00f5es matem\u00e1ticas foi acelerada.\n<li class=\"l\"> Foi proposta a fun\u00e7\u00e3o nointernet(), que desativa as capacidades de rede.\n<li class=\"l\"> Novas fun\u00e7\u00f5es foram adicionadas para anexo eficiente de strings: appendd, appendf, appendr, appends, appendw, appendz, kappendf, kvappendf e vappendf.\n<li class=\"l\"> Uma vers\u00e3o segura da fam\u00edlia de fun\u00e7\u00f5es kprintf() foi adicionada, destinada ao uso com privil\u00e9gios elevados.\n<li class=\"l\"> A performance das implementa\u00e7\u00f5es foi significativamente aumentada <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/ssl-sertifikat\/\"   title=\"SSL\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2309\">SSL<\/a>, SHA, curve25519 e RSA.      <\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57663\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Cosmopolitan 2.0, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0421\u0438-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0438 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u044b\u0439 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432 GCC \u0438 Clang \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0433\u043e\u0434\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432 \u043b\u044e\u0431\u043e\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 Linux, macOS, Windows, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-104906","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Cosmopolitan 2.0, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0421\u0438-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0438 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c.\" \/>\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\/pt\/blog\/news\/vypusk-standartnoj-si-biblioteki-cosmopolitan-2-0-razvivaemoj-dlya-perenosimyh-ispolnyaemyh-fajlov\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0421\u0438-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Cosmopolitan 2.0, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Cosmopolitan 2.0, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0421\u0438-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0438 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-standartnoj-si-biblioteki-cosmopolitan-2-0-razvivaemoj-dlya-perenosimyh-ispolnyaemyh-fajlov\" \/>\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=\"2022-08-21T13:36:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-08-21T13:36:41+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\udd47Lan\u00e7amento da biblioteca padr\u00e3o em C Cosmopolitan 2.0, desenvolvida para arquivos execut\u00e1veis port\u00e1teis | ProHoster","description":"Foi lan\u00e7ado o release do projeto Cosmopolitan 2.0, que desenvolve a biblioteca padr\u00e3o em C e um formato universal de arquivos execut\u00e1veis, que pode ser usado para distribuir programas em diferentes sistemas operacionais.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-standartnoj-si-biblioteki-cosmopolitan-2-0-razvivaemoj-dlya-perenosimyh-ispolnyaemyh-fajlov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0421\u0438-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Cosmopolitan 2.0, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Cosmopolitan 2.0, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0421\u0438-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0438 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-standartnoj-si-biblioteki-cosmopolitan-2-0-razvivaemoj-dlya-perenosimyh-ispolnyaemyh-fajlov","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":"2022-08-21T13:36:41+00:00","article:modified_time":"2022-08-21T13:36:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"104906","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":"default","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2022-08-21 13:37:50","updated":"2026-02-09 17:29:04","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/104906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=104906"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/104906\/revisions"}],"predecessor-version":[{"id":159554,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/104906\/revisions\/159554"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=104906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=104906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=104906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}