Может есть хороший форум на русском?

Everything you can't fit into other forums
  • Я не понял часть вопросов и рассуждений, а касательно С с ассемблер подобным отношением к памяти у нас есть С--. Использование С и других похожих языков в место ассемблера в разработке ЯДРА не соответствует проекту. Ведь на Ассемблер завязано множество ключевых особенностей проекта как минимальные расходы максимум эффективности которые на других языках получить ещё сложнее.
  • Vaicheslav97 wrote:Ведь на Ассемблер завязано множество ключевых особенностей проекта как минимальные расходы максимум эффективности которые на других языках получить ещё сложнее.
    Неиспользование нормального аллокатора во многих (как правило асмовых) приложениях- максимум эффективности)) ну я про 68.12 в качестве malloc. На каждый чих минимум 4кб дает.
    The best way to predict the future is to create it.
  • rgimad wrote:
    Vaicheslav97 wrote:Ведь на Ассемблер завязано множество ключевых особенностей проекта как минимальные расходы максимум эффективности которые на других языках получить ещё сложнее.
    Неиспользование нормального аллокатора во многих (как правило асмовых) приложениях- максимум эффективности)) ну я про 68.12 в качестве malloc. На каждый чих минимум 4кб дает.
    это ещё не самая большая проблема, некоторые программы даже не используют этот аллокатор, а работают через 64 сисфункцию или вообще память не выделяют динамически, а статически задают область памяти на мегабайт например
  • Vaicheslav97 wrote:Я не понял часть вопросов и рассуждений.
    . Это очень хорошо. Я их и сам не понял. Прошу прощения, что влез на ресурс профессионалов со своими дилетантскими проблемами.
    Last edited by user123 on Tue Feb 21, 2023 7:04 am, edited 1 time in total.
  • могу ответить только по нумеруемым и то не уверен что полностью
    1)Разделение на кольца у нас есть но ограничения по портам ввода вывода слабые
    2)Ограничения портов ввода вывода у нас такие чтобы в случае если надо приложение могло само могло быть как драйвер в случае если оно работает ну с очень специфичным железом
    3)Обработка прерываний есть, когда программы выходит за рамки разрешенной памяти ОС её принудительно закрывает, общие области памяти есть, разделения есть но код не разделяется на модифицируемый или нет.
    4)Наша ОС много задачная и поддерживает это распределяя нагрузку между приложениями даже если одно повиснет то это не повесит остальные приложения
    5)Я не знаю где находится видеобуфер но поддерживаем стандарты (S)VGA
    6)Переключение контекста у нас есть и реализована в рамках многозадачности
    7)Файл подкачки отсутствует, по причине что он приводит к общему замедлению системы даже без нагрузки и даёт призрачный шанс пользоваться приложениями на которые не хватает памяти, у нас пока в обозримом будущем нет приложений которым могло бы понадобится 128Мб и выше кроме разве что виртуального диска когда Оперативка выделяется как раздел жесткого диска
    8)Не знаю точно но вроде есть.
    9)Пока что оконный менеджер вшит в ядро но вроде идут попытки его отделить
  • rgimad wrote:
    Vaicheslav97 wrote:Ведь на Ассемблер завязано множество ключевых особенностей проекта как минимальные расходы максимум эффективности которые на других языках получить ещё сложнее.
    Неиспользование нормального аллокатора во многих (как правило асмовых) приложениях- максимум эффективности)) ну я про 68.12 в качестве malloc. На каждый чих минимум 4кб дает.
    1) приличные асмовые приложения должны это знать и учитывать.
    во избежание неэффективности.

    2) в Линуксе kalloc() тоже нарезает драйверам дин.память целыми страницами.
    даже если нужно меньше.

    3) ядро вообще не обязано заниматься динамической кучей приложений.
    в ЯВУ это забота компиляторов.
    Евангелие от Иоанна: стих 1

    Code: Select all

    ; В начале было Слово:
    B32:        mov     ax, os_stack       ; Selector for os
    [/size]
  • Проще сказать, что на системном уровне память всегда выделяется страницами по 4 кб, и все ОС её так выдают. Более мелкая нарезка происходит на пользовательском уровне; а в библиотеке или в самом приложении — это уже не принципиально. Может даже лучше чтоб программист понимал, что при не правильном обращении к памяти в пределах 4 кб системной ошибки не будет.
  • * * *
    Attachments
    UserLoh.png
    UserLoh.png (27.96 KiB)
    Viewed 14140 times
    Last edited by user123 on Tue Feb 21, 2023 7:03 am, edited 7 times in total.
  • Но крутые как считали лошарой, так и будут считать, поэтому умолкаю.
    Last edited by user123 on Tue Feb 21, 2023 7:02 am, edited 6 times in total.
  • 5)Я не знаю где находится видеобуфер но поддерживаем стандарты (S)VGA
    В документации ( http://wiki.kolibrios.org/wiki/SysFn61/ru ) написано:
    Программе доступны данные графического экрана (область памяти, которая собственно и отображает содержимое экрана) напрямую без вызовов системных функций через селектор gs:

    Code: Select all

    mov eax, [gs:0] 
    В файле исходников ядра core/mtrr.inc написано (строка 898):

    Code: Select all

    ; LFB is mapped to virtual address LFB_BASE,
    В файле const.inc определено (строка 279):

    Code: Select all

    LFB_BASE            = 0xFE000000
    Насколько понимаю , физический адрес получается от BIOS (с некоторой настройкой)
    , возможно его изменяет специализированный драйвер видео карты (таковые имеются ...)
    а затем отображается на виртуальный LFB_BASE = 0xFE000000 , который доступен для записи в том числе и
    в ring3 - пользовательском режиме (лично мне такая беспечность непонятна : нормальный пользователь при "невменяемом" экране решить проблему может только кнопкой RESET)

    Номера строк, естественно, примерные, ибо файл может быть изменён в процессе разработки

    P.S.
    Вы собираетесь разрабатывать что-то новое для 8086, 80386 real mode. 80386 protected mode .
    А вас в стране наверное налажено производство аналогов этих процессоров по цене чуть большей avr для Arduino ...
    А вот с процессорами amd64 напряжёнка ... Тогда всё встаёт на свои места ...

    В моей стране : avr - нет проблем. arm - тоже нет проблем, amd64 - тем более нет проблем, mips вроде как можно найти под вывеской avr32, но на чипсете с возможностями Arduino (а хотелось бы - с чипсетом Raspberri Pi). Насчёт ia32 без amd64, как раз наблюдая
    за Kolibri OS , понял, что вроде как в Китае можно заказать (но по цене, за которую я могу подержанный системный блок amd64 приобрести).
    Боюсь, что следующий логичный шаг после введения UEFI будет новая линейка процессоров, у которых ничего, кроме amd64 long mode , просто нет - на таких компьютерах Kolibri OS уже не запустишь в принципе (даже если оставят amd64 compatability mode)
  • . * * *
    .
    . Глупые мечты. Всё серьёзное давно в руках крутых.
    .
    .
    . . Выполнительная (processor's)
    . . плата для микросборок "i440BX"
    .
    . Особенности серединного (central) выполнителя (processor):
    .
    * Тактовая: 800 МГц.
    * Кол-во транзисторов: 12 млн.
    * Наибольшее тепловыделение: 17 Вт.
    .
    * 32 киБ (кибибайта) тайника (cache) У1 (L1) под команды.
    * 32 киБ тайника У1 под данные.
    * 200 МГц 128 бит УСП (DDR) шина тайника У2 (около 6 ГиБ/с (Гибибайта/с) ).
    . Поддержка до 64 МеБ (Мебибайта) тайника У2.
    * 100 МГц 64 бит шина (около 750 МеБ/с) для выхода на материнскую плату.
    .
    * Полный конвейер "IA-16/32" "A-pipeline".
    * Неполный конвейер "IA-16/32" "B-pipeline". Не умеет умножать, делить и
    . выполнять двоично-десятичные операции. Такие команды не загружаются на этот
    . конвейер.
    * Неполный конвейер "FPU". Умеет только загружать-выгружать-перетасовывать
    . СОЗУ, складывать, вычитать-сравнивать, умножать числа и устанавливать
    . знамёна (flags). Остальная арифметика на этапе выполнения команды передаётся
    неконвейерному узлу и вызывает останов конвейера на время выполнения.
    * Полный конвейер "MMX".
    * Неполный конвейер "MMX". Умеет только складывать-вычитать-сдвигать байты,
    . слова, двойные слова, умножать "PMULWL", "PMULWH".
    * 2 полных конвейера "FPX" (Floating Point eXtension). Основная команда - "MAC"
    . для быстрых табличных (matrix) вычислений.
    * 2 полных конвейера "IMX" (Integer Media eXtension). Основная команда - "MAC"
    . для быстрых табличных вычислений.
    .
    * "Intel P55C"-подобная архитектура - нет переименования СОЗУ (registers),
    . переупорядочивания "RISC"-подобных микрокоманд. Количество ошибок и
    . уязвимостей не исчисляется сотнями.
    * Глубина конвейеров увеличена для возможности нарастить тактовую частоту.
    * Если загружаемая команда требует один из параметров в ОЗУ, он загружается во
    . временное внутреннее СОЗУ (не тайник) на ранних этапах конвейризации. На
    . поздних этапах при необходимости, например "INC [EBX]", временное СОЗУ
    . выгружается в ОЗУ. Так как одновременно на конвейере может быть несколько
    . команд, требующих обращения к ОЗУ, временное СОЗУ имеет несколько ячеек по
    . 32 бит для целочисленных конвейеров "A", "B", по 80 бит для дробночисленного
    . "FPU", по 64 бита для "MMX", по 128 бит для "FPX" и ещё по 128 бит для "IMX".
    * Для совместимости с "i440BX" введены СОЗУ управления тайниками. Обычному ПО
    . они нафиг не сдалить, но "Windows 95" и "Quake" работает значительно быстрее
    . при задании "Write Back" на ОЗУ для программ и "UnCached Write Combining" на
    . отображаемое кино (video) ОЗУ.
    .
    * Преобразование и освещение: 6 млн. треугольников/с (FPU),
    . 51 млн. треугольников/с (FPX).
    * Разжатие "H.264" 1920x1080: 11 кадр/с (MMX),
    . 32 кадр/с (IMX).
    * Сжатие 1:5 "MJPEG" 1920x1080: 15 кадр/с (MMX),
    . 34 кадр/с (IMX).
    .
    . Особенности платы:
    .
    * 64 МеБ тайника У2 на выполнительной плате на обычных микросборках
    . "DDR-SDRAM". Если на материнской плате стоит меньше ОЗУ (RAM), то тайник У2
    . полностью не используется.
    * В наборе с процессорной платой имеется "CD" с исправленным исполнением
    . (version) "BIOS" для популярных плат на "i440BX", устраняющим зависание при
    . подключении жёсткого круга (disk) свыше 32 ГиБ, так как в любимой паутине
    . можно узнать, что такое барахло никто уже не хранит, или можете купить его
    . у мошенника или вирусописателя, а ваш "browser" и ОС требуют "update" для
    . входа на серьёзные ресурсы типа "ixbt". И полюбоваться на туеву хучу
    . "pictures" о красивой жизни крутых людей.
    Attachments
    80586.png
    80586.png (291.01 KiB)
    Viewed 317 times
    Last edited by user123 on Wed Aug 21, 2024 10:28 am, edited 3 times in total.
  • user123 wrote: Sun Jul 31, 2022 11:51 am На "ATmega328/ATtiny4313" пишу ради денег в громоздкой "AVR Studio" под "Windows XP/7/10". "С++" туда же. Компилятор попытаюсь начать на своём оборудовании и под него.
    Не думали рассмотреть разработку ПО для МК (разных и AVR) на Форт (Forth) языке?
    Для AVR, к примеру,
    1. amForth
    2. Форт-ассемблер для AVR
    3. AVRForth
    4. FlashForth
    ...
    P.S. Для других/разных МК/ тоже достаточно сделано инструментария для разработки ПО в рамках Форт системы. :)

    Форт также легко расширить до понимания других языков
    uBasic for 4th
    CC64 is a small-C compiler, written in Forth (here's why), targeting the 6502 CPU.
    ...
    Разместить FORTH в 512 байтах
  • Ин дзис пост были рекордсы о плаг-энд-плэй. Но кому интересны проблемы Plug and Play ин тзис тайм? В наше время есть более модерные технологии от крутейших корпораций.
    Last edited by user123 on Tue Feb 21, 2023 12:32 pm, edited 18 times in total.
  • user123 wrote: Tue Aug 02, 2022 12:21 pm . Изучаю, разбираюсь, материал про язык-4 незнакомый, даже не знаю полезно ли... оценить пока не могу.
    Начать можно с прочтения таких книг.
    С.Н.БАРАНОВ Н.Р. НОЗДРУНОВ ЯЗЫК ФОРТ И ЕГО РЕАЛИЗАЦИИ
    Л.Броуди "Начальный курс программирования на языке Форт"
    ЛЕО БРОУДИ СПОСОБ МЫШЛЕНИЯ - ФОРТ ЯЗЫК И ФИЛОСОФИЯ ДЛЯ РЕШЕНИЯ ЗАДАЧ
    ...
    FORTH (Computer+program+language)

    Сейчас популярен в реализации база стандарта Forth-94.


    P.S. http://fforum.winglion.ru/ рускоязычная площадка пользователей Форт языка.

    На Github много проектов отображается при вводе слова Forth в поисковом запросе.
  • Who is online

    Users browsing this forum: No registered users and 5 guests