<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Разработка модулей для Linux ядра на языке Haskell</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/58824.html</link>
    <description>В статье (http://tommd.wordpress.com/2009/09/13/kernel-modules-in-haskell/) представлен пример создания и сборки рабочего модуля для Linux ядра, написанного на функциональном языке программирования Haskell (http://ru.wikipedia.org/wiki/Haskell) с интегрированным сборщиком мусора. Для сборки задействован компилятор GHC (http://www.haskell.org/ghc/) и наработки проекта House (http://web.cecs.pdx.edu/~kennyg/house/), ориентированные на использование  Haskell для низкоуровневого программирования.&lt;br&gt;&lt;br&gt;URL: http://tommd.wordpress.com/2009/09/13/kernel-modules-in-haskell/&lt;br&gt;Новость: http://www.opennet.ru/opennews/art.shtml?num=23394&lt;br&gt;</description>

<item>
    <title>Разработка модулей для Linux ядра на языке Haskell (Knuckles)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/58824.html#39</link>
    <pubDate>Mon, 21 Sep 2009 09:54:42 GMT</pubDate>
    <description>&amp;gt;Грубо говоря - режим этакого &quot;супер-ассемблера&quot;, когда компилер можно детально проинструктировать что &lt;br&gt;&amp;gt;и куда необходимо распихать, не геморроясь с выписыванием этого (или как &lt;br&gt;&amp;gt;минимум большинства из этого) на ассемблере (тем более что портировать будет &lt;br&gt;&amp;gt;сильно проще). В сях то оно с полпинка - язык для &lt;br&gt;&amp;gt;системных дел... &lt;br&gt;&lt;br&gt;Это верно, но тут речь больше идет о языке, чем о компиляторе  или кодогенераторе.&lt;br&gt;</description>
</item>

<item>
    <title>Разработка модулей для Linux ядра на языке Haskell (User294)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/58824.html#38</link>
    <pubDate>Sat, 19 Sep 2009 13:50:18 GMT</pubDate>
    <description>&amp;gt;ОК. Прошу в студию примеры того, что не умеет паскаль такого, что &lt;br&gt;&amp;gt;умеет Си? :) &lt;br&gt;&lt;br&gt;А можно на паскале сформировать raw binary с предсказуемой структурой и поведением? А чтоб еще и под не самую простую архитектуру, типа гарвадрца (например, Atmel AVR, у которого флеш для кода и статичных данных, а оператива - только для временных данных и не может выполнять код вообще). Чтоб машинный код, статичные данные и динамичные данные можно было пхнуть в конкретные адреса (возможно, обитающие в разных адресных пространствах) и бинарь сразу мог бы выполняться процом из его флехи, не делая левых обращений куда попало, не ожидая никакого рантайма вообще, не нуждаясь в сложном предварительном загрузчике педалящем формат типа ELF&apos;а и прочая. В свое такое с борланд паскалем это было напряжно. То есть, асм вставки воткнуть - можно, но вот получить гольный бинарь способный работать в нестандартном окружении - уже опаньки. А как с этим сейчас? &lt;br&gt;&lt;br&gt;Грубо говоря - режим этакого &quot;супер-ассемблера&quot;, когда компилер можно детально </description>
</item>

<item>
    <title>Разработка модулей для Linux ядра на языке Haskell (User294)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/58824.html#37</link>
    <pubDate>Sat, 19 Sep 2009 13:36:08 GMT</pubDate>
    <description>&amp;gt; Какие проблемы? Паскаль знаете? Вперед! &lt;br&gt;&lt;br&gt;Блин, ждем пример модуля ядра на брейнфаке. Уж ты извини, павлинукс, но gcc с асм вставками получается как-то сильно менее черезпопно и кроссплатформенно чем паскаль с оными, имхо :).Более того - в gcc как-то проще и понятнее генерация кода и упихивание всего этого в случаях когда на выходе надо получить что-то предсказуемое до битика (e.g. бинарь с предсказуемым размещением частей для зашивки в однокристалку, etc).&lt;br&gt;</description>
</item>

<item>
    <title>Разработка модулей для Linux ядра на языке Haskell (dq0s4y71)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/58824.html#36</link>
    <pubDate>Tue, 15 Sep 2009 08:02:28 GMT</pubDate>
    <description>&amp;gt;Не путаете с Си++?&lt;br&gt;&lt;br&gt;Нет. В Си++ не надо знать количество элементов чтобы инициализировать константный массив. :)&lt;br&gt;&lt;br&gt;&amp;gt;Этот продвинутый язык заставляет вас заниматься херней, чтоб вы наконец поняли....&lt;br&gt;&lt;br&gt;В топку. Язык, который пытается меня поучать, пусть используют прыщавые школьники. А мне работать надо.&lt;br&gt;&lt;br&gt;&amp;gt;...что делаете что-то не так, и что пора вынести данные из исходников во внешний файл, загружаемый в рантайме.&lt;br&gt;&lt;br&gt;То есть вместо того, чтобы просто работать с обычным массивом, я должен еще подумать как его загрузить из файла? А если моя программа крутится на голой железяке в которой нет ни файловой системы, ни даже операционки?&lt;br&gt;&lt;br&gt;&amp;gt;В Си нет строк. А в паскале они есть, да еще и с подсчетом ссылок и автоматическим управлением памятью под ними. Вот такие вещи как раз сложно унести в ядро, насколько я понимаю.&lt;br&gt;&lt;br&gt;Почему сложно? Другое дело, что такие вещи в ядре и не нужны. Ядро - слишком ответственная вещь чтобы доверять управление памятью компилятору. В ядре это все контролируется и оптимизируется вручную</description>
</item>

<item>
    <title>Разработка модулей для Linux ядра на языке Haskell (pavlinux)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/58824.html#35</link>
    <pubDate>Mon, 14 Sep 2009 20:37:29 GMT</pubDate>
    <description>&amp;gt;&amp;gt;type string = packed array &#091;1..20&#093; of char; &lt;br&gt;&amp;gt;&amp;gt;Так что, везде строка это массив символов. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Это было давно и неправда. Серьезно :) &lt;br&gt;&lt;br&gt;А серьезно это в SNOBOLE? :) &lt;br&gt;</description>
</item>

<item>
    <title>Разработка модулей для Linux ядра на языке Haskell (Knuckles)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/58824.html#34</link>
    <pubDate>Mon, 14 Sep 2009 20:33:25 GMT</pubDate>
    <description>&amp;gt;type string = packed array &#091;1..20&#093; of char; &lt;br&gt;&amp;gt;Так что, везде строка это массив символов. &lt;br&gt;&lt;br&gt;Это было давно и неправда. Серьезно :)&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Разработка модулей для Linux ядра на языке Haskell (pavlinux)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/58824.html#33</link>
    <pubDate>Mon, 14 Sep 2009 19:40:17 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;В Си нет строк. А в паскале они есть, да еще и &lt;br&gt;&lt;br&gt;Опа... это типа вот так вот... :)&lt;br&gt;&lt;br&gt;type string = packed array &#091;1..20&#093; of char;&lt;br&gt;&lt;br&gt;  var a: string;&lt;br&gt;     a := &apos;i&apos;m dump Passal string&apos;;&lt;br&gt;&lt;br&gt;&lt;br&gt;----------&lt;br&gt;Просто и ясно: &lt;br&gt;&lt;br&gt;char *str = &quot;i&apos;m nice c string&quot;&lt;br&gt;&lt;br&gt;&lt;br&gt;Так что, везде строка это массив символов. &lt;br&gt;</description>
</item>

<item>
    <title>Разработка модулей для Linux ядра на языке Haskell (Karbofos)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/58824.html#32</link>
    <pubDate>Mon, 14 Sep 2009 19:13:50 GMT</pubDate>
    <description>int Count&#091;&#093;=&#123;10, 20, 30&#125;;&lt;br&gt;&lt;br&gt;так можно на си. и это не расширение gcc.&lt;br&gt;си может обрабатывать символьные массивы неограниченной длины. не вижу здесь где-то каких-то преимуществ. потому что видеть в таких простых очевидных вещах только положительное, это уже фанатизм. потому как всегда есть компромис, никогда нет только положительных вещей. это попахивает маркетингом, когда предоставляют факты в розовом цвете. это как фейки о скорости обработки явы в сравнении с си или плюсами (якобы ява справляется шустрее). а скажешь: Фибоначи или Гаус и все. приплыли. &lt;br&gt;&lt;br&gt;язык си на момент начала написания ядра был более распространненным, и он более подходит для байтовых операций, операций с битами. конечно, порой нужна и обработка строк, но это как-бы на второстепенном плане. и можно без каких-либо больших трудностей работать с обычными символами и с уникоде. но все-таки там нет некоторых удобных функций для работы с битами, что приходится делать или в цикле, либо в ущерб мультиплатформенности делать на асме. пример - опр</description>
</item>

<item>
    <title>Разработка модулей для Linux ядра на языке Haskell (Knuckles)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/58824.html#31</link>
    <pubDate>Mon, 14 Sep 2009 18:25:59 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;const &lt;br&gt;&amp;gt;  LocoCodeTable: array &#091;0..166&#093; of TLocoRec = ( &lt;br&gt;&amp;gt;    (Name: &apos;2М62&apos;; Code: 539;), &lt;br&gt;&amp;gt;    (Name: &apos;2М62У&apos;; Code: 579;), &lt;br&gt;&amp;gt;    (Name: &apos;2ТЭ10&apos;; Code: 526;), &lt;br&gt;&amp;gt;    (Name: &apos;2ТЭ10В&apos;; Code: 533;), &lt;br&gt;&amp;gt;    (Name: &apos;2ТЭ10Л&apos;; Code: 527;), &lt;br&gt;&amp;gt;    (Name: &apos;2ТЭ10С&apos;; Code: 580;), &lt;br&gt;&amp;gt;    ... &lt;br&gt;&amp;gt;    ... &lt;br&gt;&lt;br&gt;Не путаете с Си++? Это я к тому, что Линукс пишут на Си, хоть и используют расширения gcc.&lt;br&gt;&lt;br&gt;&amp;gt;зачем, скажите, этот &quot;продвинутый&quot; язык заставляет меня заниматься такой херней?!&lt;br&gt;&lt;br&gt;Этот продвинутый язык заставляет вас заниматься херней, чтоб вы наконец поняли, что делаете что-то не так, и что пора вынести данные из исходников во внешний файл, загружаемый в рантайме.&lt;br&gt;&lt;br&gt;&amp;gt;Странное утверждение. Богатую сишную стандартную библиотеку (со строками, с динамической памятью, бог знает еще с чем) на уровень ядра перенести смогли, а паскалевскую почему-то не могут... :&#092; &lt;br&gt;&lt;br&gt;В Си нет строк. А в паскале они есть, да еще и с подсчетом ссылок и автоматическим управлением памятью под ними. Вот такие вещи как</description>
</item>

</channel>
</rss>
