User Tag List

Страница 30 из 47 ПерваяПервая ... 262728293031323334 ... ПоследняяПоследняя
Показано с 291 по 300 из 466

Тема: Алан Кокс представил Unix-подобную ОС Fuzix, ядро которой потребляет около 40 Кб ОЗУ

  1. #291

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Отлаживал урезанный вариант ls, нашёл неслабую ошибку в библиотеке. Файл readdir.c должен оканчиваться так:
    Код:
    	strncpy(buf->d_name, (char *) direntry.d_name, len - 2);
    	buf->d_name[len - 2] = 0;
    	return buf;
    Раньше обнулялся байт по смещению len-1, в результате портилась цепочка свободной памяти.

    Прикладываю также свои варианты ssh и ls. Шелл на пару Кб больше, чем у SfS, зато функциональность не пострадала. В ls закомментировал сортировку и вывод времени.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	ls_work.jpg 
Просмотров:	313 
Размер:	45.4 Кб 
ID:	50157  
    Вложения Вложения

  2. #292

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Отлаживал урезанный вариант ls, нашёл неслабую ошибку в библиотеке. Файл readdir.c должен оканчиваться так:
    Ого, классная бага! Запушил Алану http://github.com/EtchedPixels/FUZIX/pull/22
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  3. #293

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если честно, я бы вместо len-2 поставил константу MAXNAMLEN - и быстрее, и надёжнее. Мало ли что вернёт система Сейчас она всегда возвращает 32.

  4. #294

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Глядя на то, как медленно и печально грузится ls, мне пришла в голову мысль, что основную часть библиотеки libc нужно бы разместить в ПЗУ. Варианта, естесственно, три:
    1. вместо BASIC48
    2. вместо TRDOS
    3. вместо RESET SERVICE
    В первом варианте теряем возможность запускать игрушки, во втором - запускать дисковые игрушки, третий вроде подходит, но нужно будет обращаться через 3Dxx, к тому-же будут открыты порты BDI.

    Что думает по этому поводу уважаемый Eltaron?

  5. #295

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Что думает по этому поводу уважаемый Eltaron?
    Я ничего не знаю про RESET SERVICE, но идея разделяемой либы, конечно, хорошая. С точки зрения маппинга будут проблемы - нужно сохранять/восстанавливать не только страницу ОЗУ, но и ПЗУ. Но это решаемо.

    У меня была другая идея - выделить под либу одну из страниц ОЗУ. Но тут не только с маппингом пришлось бы попрыгать, но и с вызовом библиотечных функций. Новый RST городить, или ещё какую-нибудь точку входа ниже #C000.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  6. #296

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Я ничего не знаю про RESET SERVICE
    Это когда ставят 256Кб 64Кб ПЗУ, в которой и BASIC48, и BASIC128, и TRDOS в одной м/с. Насколько я понял, там остаётся ещё одна свободная страница, которая включается после сброса, если BDI настроен на автоматическое включение TRDOS после сброса.

    Цитата Сообщение от Eltaron Посмотреть сообщение
    С точки зрения маппинга будут проблемы - нужно сохранять/восстанавливать не только страницу ОЗУ, но и ПЗУ.
    Там всё просто: для ядра - ядро, для режима пользователя - либа. RST, конечно, надо в либе реализовать, также как и обработку прерывания в режиме пользователя.

    Цитата Сообщение от Eltaron Посмотреть сообщение
    У меня была другая идея - выделить под либу одну из страниц ОЗУ.
    А как быть с адресами данных, которые по любому в другой странице ОЗУ вместе с программой?

    У меня была аналогичная идея, но я думал освободить непереключаемое ОЗУ для libc и других разделяемых библиотек, практически полностью перенеся ядро в переключаемые страницы. Много занимают буфера, но перенеся их в другие страницы мы усложняем загрузку файлов в область программы. А если, например, код ядра и буфера будут в разных страницах, то тут могут другие сложности возникнуть.

    Вобщем libc в ПЗУ - наиболее простое решение.
    Последний раз редактировалось b2m; 08.12.2014 в 20:33. Причина: дурость сморозил

  7. #297

    Регистрация
    16.12.2009
    Адрес
    Харьков
    Сообщений
    4,735
    Спасибо Благодарностей отдано 
    365
    Спасибо Благодарностей получено 
    378
    Поблагодарили
    241 сообщений
    Mentioned
    11 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Это когда ставят 256Кб ПЗУ
    ну ПЗУ ставят на самом деле 64кб (27С512), 4 страницы по 16кб. первые 16 кб или свободны или используются под свои нужды - командеры, менюшки, либы как в вашем случае, вторая страница используется под ТРДОС, третьи 16кб используется под бейсик 128, который часто меняют опять же на командеры или какой-то альтернативный менюшке софт, и последняя 4я страница это прошивка бейсик 48кб для 128 машин, его менять само собой нельзя. т.е. если разобраться в вашем распоряжении могут быть две страницы по 16 кб - это 1я и 3я (считаем с 1й).

  8. #298

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от solegstar Посмотреть сообщение
    ну ПЗУ ставят на самом деле 64кб (27С512)
    Ой, пардон, разрядность зашкалила

    ---------- Post added at 22:34 ---------- Previous post was at 22:30 ----------

    Ту страницу, что под бейсик 128, мы уже используем как часть ядра. Остаётся самая первая страница (её обычно вроде reset service называют?)

  9. #299

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я, конечно, не отказываюсь от идеи переписать либы на асме, но всё-таки. Может быть попробовать скомпилить FUZIX IAR`ом?
    Кстати, кто-нибудь объяснит, где взять правильный stdint.h и почему его нет в дистрибутиве?
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  10. #300

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    Я, конечно, не отказываюсь от идеи переписать либы на асме, но всё-таки. Может быть попробовать скомпилить FUZIX IAR`ом?
    Муторно это, всю инфраструктуру переделывать надо. И все .s фиксить.

    Кстати, кто-нибудь объяснит, где взять правильный stdint.h и почему его нет в дистрибутиве?
    Это часть sdcc. /opt/sdcc/include
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

Страница 30 из 47 ПерваяПервая ... 262728293031323334 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Куплю БК 0010 или подобную машинку в Украине
    от LeBohdan в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 06.07.2008, 23:29
  2. SDCC вокруг да около
    от andrews в разделе Программирование
    Ответов: 8
    Последнее: 26.03.2008, 08:16
  3. Ответов: 16
    Последнее: 02.08.2005, 12:20
  4. Ответов: 10
    Последнее: 18.02.2005, 17:45

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •