<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Выпуск MirageOS 3.5, платформы для запуска приложений поверх...</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID3/116774.html</link>
    <description>Состоялся (https://mirage.io/blog/announcing-mirage-35-release) релиз операционной системы MirageOS 3.5 (https://mirage.io), позволяющая формировать операционные системы одного приложения, в которых приложение поставляется как самодостаточный &quot;unikernel&quot;, способный выполняться без применения операционных систем, отдельного ядра ОС и каких-либо прослоек. Для разработки приложений применяется язык OCaml. Код проекта распространяется (https://github.com/mirage/mirage) под свободной лицензией ISC.&lt;br&gt;&lt;br&gt;&lt;br&gt;Вся низкоуровневая функциональность, свойственная операционной системе, реализована в форме библиотеки, прикрепляемой к приложению. Приложение может быть разработано в любой ОС, после чего компилируется в специализированное ядро (концепция unikernel (http://queue.acm.org/detail.cfm?id=2566628)), которое может запускаться напрямую поверх гипервизоров  Xen, KVM, BHyve и VMM (OpenBSD), поверх мобильных платформ, в форме процесса в POSIX-совместимом окружении или в облачных окружениях Amazon Elastic Compute Cloud и Goo</description>

<item>
    <title>Выпуск MirageOS 3.5, платформы для запуска приложений поверх... (Аноним)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID3/116774.html#49</link>
    <pubDate>Tue, 12 Mar 2019 03:51:16 GMT</pubDate>
    <description>&amp;gt;&amp;gt; размером 512 байт &lt;br&gt;&amp;gt; Неа, см: &lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 2 passes, 56 bytes &lt;br&gt;&lt;br&gt;Сами по себе эти 56 байт разве запустятся? Всё одно, требуется некий аналог &quot;executable format&quot;.&lt;br&gt;&lt;br&gt;&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; use16 &lt;br&gt;&amp;gt; mov dx, msg &lt;br&gt;&amp;gt; mov ah, 09h &lt;br&gt;&amp;gt; int 21h &lt;br&gt;&amp;gt; int 20h &lt;br&gt;&amp;gt; msg db &apos;Hello World!&apos;,0Ah,&apos;$&apos; &lt;br&gt;&amp;gt;  &#037; fasm hello.asm &lt;br&gt;&amp;gt; flat assembler  version 1.73.09  (16384 kilobytes memory) &lt;br&gt;&amp;gt; 2 passes, &#091;b&#093; 23 bytes. &#091;/b&#093;  &lt;br&gt;&lt;br&gt;Интересно, сколько выйдет подобное на каком-нибудь Sinclair BASIC, где PRINT занимает 1 байт, плюс 2 байта на номер строки, наверное, ещё что-то.&lt;br&gt;&lt;br&gt;&amp;gt; Изначально речь шла о (грубом и ориентировочном) размере в довольно узких рамках &lt;br&gt;&amp;gt; ;) &lt;br&gt;&amp;gt; см.&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; компилируется в 113 килобайт, в отличие от мегабайтов Хаскеля &lt;br&gt;&lt;br&gt;Ну так то да, килобайты ныне &quot;мало&quot;. :)&lt;br&gt;&lt;br&gt;&amp;gt; На самом деле тут еще желательно знать, что там линкуется статистически, а &lt;br&gt;&amp;gt; что динамически, т.к. тот же HelloWorld на Си при &quot;gcc -static &lt;br&gt;&amp;gt; -s&quot; запросто может выдать бинарник на 500КБ c гаком, а для &lt;br&gt;&amp;gt; плюсов и на все полтора, но те кто обсуждают, ско</description>
</item>

<item>
    <title>Выпуск MirageOS 3.5, платформы для запуска приложений поверх... (Аноним84701)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID3/116774.html#48</link>
    <pubDate>Mon, 11 Mar 2019 14:07:38 GMT</pubDate>
    <description>&amp;gt; размером 512 байт &lt;br&gt;&lt;br&gt;Неа, см:&lt;br&gt;&amp;gt;&amp;gt; 2 passes, 56 bytes&lt;br&gt;&lt;br&gt;Специально считерил, &quot;срезав&quot; (см. последние три строчки - &quot;;&quot; в интел-синтаксисе комментарий) конец и дав подходящую команду для записи с помощью dd.&lt;br&gt;В принципе, можно и сам код еще (существенно) сделать меньше, но тогда оно может резко стать &quot;qemu-only&quot;.&lt;br&gt;Но даже при размере в 512 байт оно выигрывает по размеру общих зависимостей (ни ld-elf, ни ядра не нужно) :P&lt;br&gt;&lt;br&gt;Кстати, могу еще предложить:&lt;br&gt;&#091;code&#093;&lt;br&gt; cat hello.asm &lt;br&gt;org 100h&lt;br&gt;use16&lt;br&gt;&lt;br&gt;mov dx, msg&lt;br&gt;mov ah, 09h&lt;br&gt;int 21h&lt;br&gt;&lt;br&gt;int 20h&lt;br&gt;msg db &apos;Hello World!&apos;,0Ah,&apos;$&apos;&lt;br&gt;&lt;br&gt; &#037; fasm hello.asm                                                                  &lt;br&gt;flat assembler  version 1.73.09  (16384 kilobytes memory)&lt;br&gt;2 passes, &#091;b&#093; 23 bytes. &#091;/b&#093;&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (на некотором железе не запустится), &lt;br&gt;&lt;br&gt;Оно ж уже и не модно, давно. Тем более и на &quot;том&quot; железе была куча проблем и проблемок (а так же костылей, костыликов и подпорочек -- достаточно откопать LILO или глянуть (возможно, в старый вариант) GRUB).&lt;br&gt;Хотя з</description>
</item>

<item>
    <title>Выпуск MirageOS 3.5, платформы для запуска приложений поверх... (Аноним)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID3/116774.html#47</link>
    <pubDate>Mon, 11 Mar 2019 13:05:23 GMT</pubDate>
    <description>Это же MBR размером 512 байт (на некотором железе не запустится), а было &quot;Smallest x86 ELF Hello World&quot; (50 байт + файловый заголовок).&lt;br&gt;</description>
</item>

<item>
    <title>Выпуск MirageOS 3.5, платформы для запуска приложений поверх... (Аноним84701)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID3/116774.html#46</link>
    <pubDate>Sun, 10 Mar 2019 19:05:14 GMT</pubDate>
    <description>&amp;gt; 142 многовато, вот 128 &lt;br&gt;&lt;br&gt;ЖЫрнота, особенно по зависимостям!&lt;br&gt;&#091;code&#093;&lt;br&gt;&#037; cat real_hello_world.asm&lt;br&gt;BASE equ 07c00h&lt;br&gt;VIDEO_MEM equ 0b800h&lt;br&gt;COLOR equ 02h * 100h&lt;br&gt;&lt;br&gt;org BASE&lt;br&gt;use16&lt;br&gt;&lt;br&gt;jmp 0:start&lt;br&gt;start:&lt;br&gt;&lt;br&gt;cli   &lt;br&gt;cld&lt;br&gt;xor ax,ax&lt;br&gt;mov ds,ax&lt;br&gt;sti &lt;br&gt;&lt;br&gt;;*******************************&lt;br&gt;;set video out=80x25, 16 colors, page 0&lt;br&gt;;*******************************&lt;br&gt;mov ax,3&lt;br&gt;int 10h&lt;br&gt;&lt;br&gt;mov ax, 500h ;0 page&lt;br&gt;int 10h&lt;br&gt;&lt;br&gt;mov ax, VIDEO_MEM&lt;br&gt;mov es, ax&lt;br&gt;&lt;br&gt;xor di, di&lt;br&gt;mov si, msg&lt;br&gt;mov ax, COLOR&lt;br&gt;mov cx, msg.len&lt;br&gt;&lt;br&gt;print:&lt;br&gt;  lodsb&lt;br&gt;  stosw&lt;br&gt;  loop print&lt;br&gt;&lt;br&gt;cli&lt;br&gt;hlt&lt;br&gt;&lt;br&gt;msg db &quot;Hello World!&quot;&lt;br&gt;msg.len = $ - msg&lt;br&gt;;db BASE+510-$ dup(0)&lt;br&gt;;signature:&lt;br&gt;;dw 0aa55h&lt;br&gt;&lt;br&gt;&#037; fasm real_hello_world.asm&lt;br&gt;flat assembler  version 1.73.09  (16384 kilobytes memory)&lt;br&gt;2 passes, 56 bytes&lt;br&gt;&lt;br&gt;&#037; dd if=/dev/zero count=454 conv=notrunc seek=56 bs=1 of=real_hello_world.bin&lt;br&gt;&#037; echo -n &quot;&#092;0x55&#092;xaa&quot; &amp;gt;&amp;gt; real_hello_world.bin&lt;br&gt;&#091;/CODE&#093; &lt;br&gt;У меня длиннее (или что именно меряли последние два замера?) :) ?&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Выпуск MirageOS 3.5, платформы для запуска приложений поверх... (Vkni)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID3/116774.html#45</link>
    <pubDate>Sun, 10 Mar 2019 16:26:58 GMT</pubDate>
    <description>&amp;gt; но рассчитывать на эту особенность опасно, т.к. в будущем может измениться&quot;.&lt;br&gt;&lt;br&gt;Ну я бы не стал рассчитывать на такие тонкости, с учётом тех серьёзных изменений в stdlib, которые произошли между 3 и 4. С другой стороны, то руководство вообще для дремучей версии 2.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Выпуск MirageOS 3.5, платформы для запуска приложений поверх... (Аноним)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID3/116774.html#44</link>
    <pubDate>Sun, 10 Mar 2019 13:23:08 GMT</pubDate>
    <description>Если там перепутали порядок вычисления аргументов в существующих имплементациях, это одно. Другое дело, что кроме того там написано &quot;порядок не определён; так получилось, что аргументы вычисляются так-то, но рассчитывать на эту особенность опасно, т.к. в будущем может измениться&quot;.&lt;br&gt;</description>
</item>

<item>
    <title>Выпуск MirageOS 3.5, платформы для запуска приложений поверх... (Vkni)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID3/116774.html#43</link>
    <pubDate>Sun, 10 Mar 2019 11:47:38 GMT</pubDate>
    <description>Ну там лажа написана - надо поменять. Простейшая проверка показывает, что right to left:&lt;br&gt;&lt;br&gt;# let f x y = (x, y);;&lt;br&gt;val f : &apos;a -&amp;gt; &apos;b -&amp;gt; &apos;a * &apos;b = &amp;lt;fun&amp;gt;&lt;br&gt;# f (print_string &quot;Left&quot;) (print_string &quot;Right&quot;);;&lt;br&gt;RightLeft- : unit * unit = ((), ())&lt;br&gt;&lt;br&gt;Понятно, что чем больше у компилятора возможностей, тем больше может быть степень оптимизации. Но сейчас всё согласовано - right to left.&lt;br&gt;</description>
</item>

<item>
    <title>Выпуск MirageOS 3.5, платформы для запуска приложений поверх... (Аноним)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID3/116774.html#42</link>
    <pubDate>Sun, 10 Mar 2019 11:23:33 GMT</pubDate>
    <description>142 многовато, вот 128&lt;br&gt;&#091;CODE&#093;&lt;br&gt;$ cat hello.asm &lt;br&gt;&lt;br&gt;; fasm demonstration of writing simple ELF executable&lt;br&gt;&lt;br&gt;format ELF executable 3&lt;br&gt;entry start&lt;br&gt;&lt;br&gt;segment readable executable&lt;br&gt;&lt;br&gt;start:&lt;br&gt;&lt;br&gt;        mov     eax,4&lt;br&gt;        mov     ebx,1&lt;br&gt;        mov     ecx,msg&lt;br&gt;        mov     edx,msg_size&lt;br&gt;        int     0x80&lt;br&gt;&lt;br&gt;        mov     eax,1&lt;br&gt;        xor     ebx,ebx&lt;br&gt;        int     0x80&lt;br&gt;&lt;br&gt;;segment readable writeable&lt;br&gt;&lt;br&gt;msg db &apos;Hello world!&apos;,0xA&lt;br&gt;msg_size = $-msg&lt;br&gt;&lt;br&gt;&lt;br&gt;$ fasm hello.asm &lt;br&gt;flat assembler  version 1.73.06  (16384 kilobytes memory)&lt;br&gt;2 passes, 128 bytes.&lt;br&gt;&lt;br&gt;&lt;br&gt;$ ./hello&lt;br&gt;Hello world!&lt;br&gt;&#091;/CODE&#093;&lt;br&gt;</description>
</item>

<item>
    <title>Выпуск MirageOS 3.5, платформы для запуска приложений поверх... (Аноним)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID3/116774.html#41</link>
    <pubDate>Sun, 10 Mar 2019 11:12:00 GMT</pubDate>
    <description>Благодарю. Однако, там же сказано (со ссылкой на Драгонбук), что преимущество может дать неопределённый порядок вычисления аргументов, принятый в C.&lt;br&gt;&lt;br&gt;In Objective CAML, the order of evaluation of arguments is not specified. As it happens, today all implementations of Objective CAML evaluate arguments from left to right. All the same, making use of this implementation feature could turn out to be dangerous if future versions of the language modify the implementation.&lt;br&gt;http://caml.inria.fr/pub/docs/oreilly-book/html/book-ora029.html&lt;br&gt;</description>
</item>

</channel>
</rss>
