Научная конференция

Everything you can't fit into other forums
  • Alexus wrote:г) -Нет столь удобных вещей как Структуры\Классы и прочие радости ООП
    Разве на fasm-е нет структур ? ООП действительно нет :(
  • viewtopic.php?f=7&t=897 - Колибри на производстве.
    гадости ООП
    :)
  • По ходу дела я разумеется буду рассказывать о самой колибри и мне интересно были ли какие-нибудь прецеденты её реального и полезного использования, хотя бы конкретно для своих нужд.
    У меня колибри управляет сверхбыстрой цифровой камерой (500 кадров в секунду, каждый кадр с разрешением 1280х1024 пикселей, 10бит на пиксель) и проводит первичную обработку/анализ/запись видеоинформации в реальном времени.

    Теперь по пунктам -

    п.1:
    как я понял, перечисляются только x86 мини-ОСи с графическим интерфейсом?
    тогда обязательно добавь Haiku и DexOS.

    п.2:
    на "управление производством" система не годится. Хлопотно это.
    И стрёмно.
    Зато для управления отдельным техпроцессом, измерительным комплексом или научным экспериментом - то что надо.
    И ещё - под минимальной ОСью очень здорово работают всякие ресурсоёмкие цифродробилки типа сеточных уравнений матфизики, Рунге-Кутты, Фурье, вэйвлеты и т.п. Ненавязчивый системный сервис не отвлекает процессор (и FPU!) от крутых вычислений. А если и отвлекает - то почти весь системный код уже лежит в кэше, системные вызовы как правило завершаются очень быстро.
    Кстати, вот для таких задач твой ре-транслятор очень бы здорово пригодился. Библиотеки численных методов доступны на С и легко оптимизируются в коды FPU/3DNow!, причём libc практически не используется, разве что для вывода результатов, а <math.h> на почти 100% ассемблере с оптимизацией под 3DNow! можно скачать на сайте АМД.

    п.3:
    - открытый код!;
    - простота и удобство системных вызовов,
    - графический API не сравним по простоте ни с WinAPI, ни тем более с X11

    п.4:
    в) что значит "неудобен после современных языков"? неконкретно как-то звучит и субъективно. Лучше так: "портирование программ, написанных на ЯВУ для других систем, сопряжено со значительными трудностями"
    г) - убери вообще. а то люди смеяться будут.

    п.5:
    а) "полнофункциональный" звучит несколько... претенциозно. "...с необходимой для эффективной работы функциональностью" было бы в самый раз.
    Евангелие от Иоанна: стих 1

    Code: Select all

    ; В начале было Слово:
    B32:        mov     ax, os_stack       ; Selector for os
    [/size]
  • 2) Преобразование в AT&T ассемблерный листинг (g++ -S file.cpp -> file.s)
    3) kcc преобразует листинг AT&T в программу на ассемблере пригодную для колибри в Intel синтаксисе (kcc file.s -> file.asm)
    gcc умеет генерировать и интелловский сиснтаксис. Да и на gas можно писать без лишних конвертаций. Конечно потребуется ld для сборки, но большие проекты редко пишутся в один файл, слишком неудобно.
  • Serge
    Я сейчас занимаюсь версией 0.03 , в ней реализована (уже) передача параметров в программу через argc, *argv[] , и конкретно сейчас я занимаюсь возможностью написания и подключения динамических библиотек, а статические файлы и так можно подключать через #include , но линковкой да нельзя пока, возможно и никогда этого не будет, но я работаю над kcc, и посмотрим чего достигну.

    kogemyaka
    Спасибо за ссылку, я её видел, на лоре помоему), а насчёт ООП, мне он нравиться, тк можно логику программы хорошо организовать, но на вкус и цвет))

    art_zh
    Спасибо, за примеры, очень благодарен.
    п.1, максимальная длительность доклада 15-20 минут и то если удасться увлечь аудиторию, официально 8 минут (в прошлом году я сумел почти на пол часа растянул, занял 1ое место внутри вуза и 2ое на всеросийке)
    п.2, очень хочется производство приплести, это должный эффект на аудиторию произведёт, может с натяжкой можно сказать?
    п.3, да это всё я упомяну, апи мне тоже очень нравиться, главное чтобы все графические апи не испортились если будут вынесены из ядра, я если честно против вынесения графики за пределы ядра.
    п.4, я подумаю над этим
    п.5, моя цель именно создать полноценный заменитель компилятора с++ для колибри, и хотя это очень далёкая от осуществления мечта, врать и понижать уровень своих амбиций я не вижу смысла =)
  • 4. Причины отказа от ASM , рассмотрение его + и -
    а) +На нём можно писать сверхкомпактные и сверхбыстрые программы
    б) +API ядра изначально ориентированно на fasm
    в) -Не удобен после современных языков
    г) -Нет столь удобных вещей как Структуры\Классы и прочие радости ООП
    д)-Привычка программировать на С\С++\Perl
    a) - чушь в заданном контексте; разумеется, сверхбыстрые программы можно писать на ассемблере, но их можно писать и на Си. Более того, с учётом уровня современных компиляторов код, написанный среднестатистическим программистом на асме, имеет все шансы проиграть по скорости коду, написанному среднестатистическим программистом на сях (ручная оптимизация, конечно, в принципе рулит, но это ж 1) знать много чего надо - в написании компиляторов таки участвуют знающие люди, 2) это должна быть именно оптимизация, которая вполне может поставить крест на читабельности - есть типовые оптимизации, которые вполне может произвести компилятор по нормальным сишным исходникам, но которые заметно усложняют ассемблерный код). Вот сравнение размера - таки да.
    б) - частично чушь, регистры можно заполнять одинаково свободно из любого ассемблера, fasm тут ни при чём.
    в г) про структуры уже высказались.
    "Технологии разработки программного обеспечения в Linux на С++ под ОС KolibriOS", если конкретнее, то на примере моего kcc
    А правда, что если тема сформулирована таким широким образом, то там будет ну хотя бы одна фраза в стиле "есть и другие, несколько менее извращённые средства использовать компилятор C и/или C++, работающий из другой ОС, в том числе и функциональная libc, но мне хотелось (тут пункты 5б и 5в), так что я буду рассказывать про kcc"? Я понимаю, что раз уж доклад про kcc, то о других подходах можно и не рассказывать, но хоть одна фраза? Как-то не хочется, помимо мифа "КолибриОС - система, написанная целиком на ассемблере" (да, это миф, причём уже довольно долгое время), создавать ещё один миф "на плюсах для Колибри писать можно, но для этого, помимо плюсов, нужен ещё и Perl, причём весь процесс занимает пару лишних шагов".
  • diamond
    Разумеется я упомяну и все остальные подходы, тк не упомянуть их было бы нечестно, грубо и несправедливо по отношению к тем кто их разрабатывал и колибри. У меня важной частью ещё является слово "Linux", ведь я первоначально пытался из линя программировать по твоему мануалу =), с fasm получилось, а с gcc нет, вот я и стал искать иные пути)). А под Win, есть и С-- , и эмулятор колибри и тп, но я в винде раз в неделю самое частое сижу, чаще реже.
  • Alexus wrote:п.2, очень хочется производство приплести, это должный эффект на аудиторию произведёт, может с натяжкой можно сказать?
    Нет!!
    Это будет рисовка ради дешёвых понтов. На тех, кто будет оценивать Ваш доклад, это только произведёт обратный эффект.
    Серьёзный спец очень хорошо понимает, что ни один менеджер не пойдет на внедрение несертифицированной ОС для управления производством.
    Более того, они также знают, что и программисту такое "внедрение" на фиг не надо. А что если послезавтра какому-нибудь идиоту с похмела оторвёт руку на конвейере? На кого все стрелки переведут?

    Совсем другое дело - подчеркнуть пригодность КОС для управления отдельным техпроцессом или экспериментальной установкой. Здесь нет риска залететь на мегабаксы, зато максимум стимулов для внедрения наиболее быстрой и эффективной техники. И если кто-то выбирает КОС для такой задачи - значит она того стоит.
    Alexus wrote: п.5, моя цель именно создать полноценный заменитель компилятора с++ для колибри, и хотя это очень далёкая от осуществления мечта, врать и понижать уровень своих амбиций я не вижу смысла =)
    Зачем же врать-то?
    Просто надо ставить перед собой реальные цели...
  • Alexus wrote:У меня важной частью ещё является слово "Linux", ведь я первоначально пытался из линя программировать по твоему мануалу =), с fasm получилось, а с gcc нет, вот я и стал искать иные пути))
    Ну так надо разбираться, что происходит, а не переизобретать велосипед. Вроде в некоторый момент я проверял под чем-то юниксоподобным, и у меня даже всё компилировалось.
    Ушёл к умным, знающим и культурным людям.
  • Чем разбираться в 8ми колёсном самокате, который при этом ещё и не катится , я лучше сделаю для себя более удобный и простой инструмент), а уж пригодиться ли он кому-то кроме меня не знаю, но на всякий случай буду это учитывать. Не зря ведь существует несколько путей к 1ой цели, я уважаю проделанную работу, но мне она не подходит, хотя бы по той причине, что по заявленной схеме она не работает. И метод её работы не достаточно очевиден и прост чтобы пытаться исправить её в несколько шагов. Для меня это значит, что оно того не стоит.
  • Alexus
    Забей на всех - делай как считаешь нужным!
    Наш уважаемый (это не стеб!) Даймонд в свое время сказал:
  • Alexus wrote:Чем разбираться в 8ми колёсном самокате, который при этом ещё и не катится , я лучше сделаю для себя более удобный и простой инструмент
    Просто как-то странно пытаться сделать ещё один велосипед, если не получилось снять с тормоза первый (причём с тем же рулём aka gcc).
    В этом вообще слабость OpenSource - вместо того, чтобы разобраться и/или нажаловаться на недостатки существующего продукта, можно взять и создать новый. В результате, естественно, получаются уже два (а поскольку таких умных много, то иногда даже заметно больше двух) продукта с большими недостатками.
    Ушёл к умным, знающим и культурным людям.
  • В этом есть определённые плюсы) и open source тут не причём, это в исходниках человека :lol: , иначе представьте себе мир, в котором существуют только комы с процессорами intel, видеокартами nvidia, хардами допустим сигейт, и модернизированным досом (тк зачем создавать винду или что либо другое если первоначально был создан дос и надо дорабатывать его).

    Или если копнуть глубже)) в альтернативную историю по этой модели (забавная тема кстати) :
    То в данный момент я бы вылезал на BBS сообщество обсуждающего принципы построения программ на бейсике, со своего любимого потомка altair 8800, через привычный модем и никогда не слышал о мышке =)))

    Абсурдный мир) но зато какая приятная классика...
  • а мне нравится, Дос всегда был моей любимой системой =)
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Who is online

    Users browsing this forum: No registered users and 24 guests