LINUX.ORG.RU

Сообщения WizardOfOz

 

Пара дурацких вопросов про системы на ARM и ядро

Форум — Development

Добрый вечер, господа.

Возникло несколько нубских вопросов.

1) Вот есть у нас какой-нибудь SoC на ARMv8 (для определенности). Есть ядро для него и есть device tree blob. А где физически хранится информация о карте памяти? Т.е. одно из ядер CPU собирается исполнить, например, store по некоторому адресу, и уже на уровне L1 кэша должно быть известно, что это за адрес - оперативка или что-нибудь еще, TLB и MMU должны знать, какие у страницы, содержащей этот адрес, параметры (cacheable/non-cacheable, access ordering и т.п.). А откуда они это знают? Эта логика только софтварная, т.е. кроме загрузки dtb в память и передачи ядру указателя на него, ничего не нужно больше, или эта логика и в железе есть, и, скажем, L1, когда видит store, интересуется у кого-то, что это за адрес? ARM ARM листал, но сходу найти ответ, увы, не смог:(

2) Допустим, собрал я ядро для этого SoC'а. Но загрузчик хочу использовать какой-нибудь совсем тривиальный, поэтому с помощью objcopy сделал из elf'ника binary, потеряв при этом возможность по произвольному адресу ядро класть. И есть какой-нибудь способ, кроме ручной правки linker-скриптов, этот адрес задать? Беглый поиск показал, что для uboot'а это можно переменной задать, но если я не хочу с ним связываться, что мне делать?

Спасибо большое.

 ,

WizardOfOz
()

Как избавиться от псевдоколлбеков?

Форум — Development

Доброе утро, благородные доны.

Сегодня вопрос такой: пусть есть класс Foo, который в одном из методов создает объект класса Bar. Перед этим Foo создает окружение, в котором Bar исполняет связанную с ним логику, и поэтому в целях инкапсуляции этой самой логики хочется, чтобы Foo передавал в Bar this, а тот уже дергал нужные ему (публичные) методы.

Но тогда получается, что все это напоминает коллбеки по своей конструкции (в стеке бутерброд получается из методов Foo, Bar и снова Foo), а коллбеки мне не нравятся как концепция. Поэтому скажите, пожалуйста, как можно более чисто такую хрень спроектировать? А, еще ситуация осложняется тем, что в одном и том же месте такой паттерн придется несколько раз применить вложенным образом (т. е. Bar создает новые объекты, которые таким же макаром будут дергать его методы, и т. д.), и от этого тошнит еще больше.

Спасибо.

 , ,

WizardOfOz
()

Thread pool на плюсах без join'ов

Форум — Development

Добрый вечер, господа.

Есть следующая проблема: нужен thread pool (на современных плюсах написанный), от которого требуются всего две вещи:

1. Возможность асинхронно в него пихать задачи

2. После акта запихивания нужна возможность синхронно дождаться окончания выполнения всех задач. Немного погуглив, я нашел вот это: https://github.com/vit-vit/CTPL Но с этой либой есть две проблемы, маленькая и большая:

1. Меньшая в том, что насколько я понял, она не умеет из коробки принимать метод (а я хочу ту же семантику, что при передаче метода в конструктор std::thread). Но это я могу, наверное, исправить, подумав какое-то время, а пока просто метод в лямбду оборачиваю и пихаю ей.

2. А вот главная проблема в том, что эта либа реализует ожидание выполнения, вызывая на всех тредах .join(). И мне это очень не нравится, потому что итераций «запихнул - подождал» у меня планируется много, и они довольно короткие, и я не хочу каждый раз платить за создание новых тредов.

Поэтому, собственно, вопрос: как сделать так, чтобы когда переданный пулу метод вернет результат, рабочий тред не заканчивал работу, а засыпал на условной переменной, пока не появятся новые задачи? (Очевидный способ - чтобы он какой-нибудь atomic<bool> записывал в конце, но я хочу именно его засыпания на condition variable'е, а не polling loop в мастер-треде).

Если я дурак, а такая хрень по какой-либо причине не нужна, дайте знать, пожалуйста:)

Спасибо.

 ,

WizardOfOz
()

Как устроен бинарник, получившийся после objcopy -O binary?

Форум — Development

Всем привет. Дурацкий вопрос возник, сходу нагуглить не получилось. Вот есть у меня elf'ник, собранный gcc (для определенности - под ARM). Я хочу его запускать в режиме baremetal, поэтому прогоняю через objcopy -O binary, оттуда удаляются все символы, секции и т.п., больше нельзя секции релоцировать, остаются только байты инструкций и данных. И как мне после этого узнать, где в этом бинарнике код, а где - данные?

Спасибо.

 , ,

WizardOfOz
()

Параметризация шаблона enum'ом для CT-определения типа

Форум — Development

Собственно, вопрос изложен в теме. Пусть у меня есть шаблонная функция, параметризованная enum'ом, и в зависимости от конкретного варианта инстанцирования шаблона я хочу создать переменную нужного мне типа.

Если бы варианта было всего два, то, насколько я понимаю, было бы разумно использовать std::conditional, но что, если я хочу compile-time switch вместо тернарного оператора?

Спасибо.

 ,

WizardOfOz
()

Обменяю Nokia N900

Форум — Mobile

На что-нибудь на Андроиде, предпочтительнее HTC Legend или Desire.

Состояние N900 на 5-, куплена в прошлом феврале, осталось около месяца гарантии.

Аська 344394898

WizardOfOz
()

wxWidgets+KDE4

Форум — Desktop

Всем доброго времени суток. Такой вопрос: можно ли заставить приложение, написанное на cpp + wxWidgets (code::blocks для ясности) заставить выглядеть нативно в четвертых кедах?

WizardOfOz
()

В чем разница между кодировкой (charset, encoding) и кодовой страницей (codepage)?

Форум — Talks

И расскажите еще, пожалуйста, о назначении параметров iocharset и codepage команды mount. Заранее спасибо.

WizardOfOz
()

[толстый троллинг] Много ли людей считают Столлмана фанатиком?

Форум — Talks

В треде http://www.linux.org.ru/forum/mobile/4816290 некий Axon сказал

o_O Вы что, серьёзно считаете, что «несовместимость с идеей свободного программного обеспечения» - это действительно весомый повод для отказа от хорошей железки для кого-либо кроме RMS?

Вот мне и стало интересно - а много ли лоровцев не согласны с RMS в

  1. собственно, его идеях открытости всего и вся?
  2. его фанатичному следованию этим идеям? (взять хотя бы тот факт, что его единственный компьютер - 9-дюймовый китайский нетбук по той причине, что этот Yeeloong - единственная существующая модель с открытым биосом http://www.linux.org.ru/news/linux-general/4559794)
WizardOfOz
()

Компилятор Питона

Форум — Development

Собственно, я уже предчувствую, как обрадуются тролли и как окружит меня дурнопахнущий океан шоколадного цвета, но все-таки.

Почему до сих пор не существует компилятора для питона? ведь не так уж и сложно реализовать, имхо, команда человек из 10 за полгода бы справилась.

Ведь отличный же язык, если гипотетический компилятор оптимизировать до сопоставимости скорости выполнения приложений с С/С++, то конкуренцию ему составят _очень_ мало языков и только в _очень_ узкоспециализированных задачах.

WizardOfOz
()

Можно ли по SSH получить доступ к tty?

Форум — Admin

Есть два компьютера, объединенные локалкой. Один под виндой, другой под гентой.

На том, где гента, открыта консоль, в ней что-то творится (допустим, мир пересобирается =). И я хочу из другой комнаты посмотреть, на какой стадии сборка.

Собственно, вопрос. Можно ли с виндового компа по ssh получить доступ к уже существующему tty на удаленном компьютере?

WizardOfOz
()

Ноутбук + FreeBSD

Форум — Desktop

Собственно, живу на генте нестабильной, все, вроде, нормально внешне. Но чего-то не хватает =)

как там у Высоцкого? "Все не так, как надо."

ни с того, ни с сего задумался о сабже.

собственно, имеет ли это смысл (мои цели- скорость и KISS)? много ли будет проблем с железом и софтом?

WizardOfOz
()

ReiserFS vs. Ext3 для /

Форум — General

Собственно, интересует, насколько важно ускорение райзера по сравнению с ext3 в работе с мелкими файлами, и сравнение скорости их работы в целом. Всех с Новым годом и заранее спасибо. З.Ы. и еще, если можно, пару слов про ext4 - скорость, стабильность и т.п.

WizardOfOz
()

Софт для работы с синтезатором

Форум — General

Посоветуйте, пожалуйста.

WizardOfOz
()

Зачем люди юзают дистрибутивы на бинарных пакетах

Форум — Talks

Это не флуд и не провокация холиваров, мне действительно интересно. Ведь на то, чтобы освоить gentoo на уровне, достаточном для более-менее грамотной его сборки, нужно не так уж много времени.

Так почему опытные пользователи сидят, к примеру, на убунте?

Dixi.

WizardOfOz
()

Gentoo + i386

Форум — Linux-install

Собственно, кто-нибудь такое делал без кросс-компиляции?

Интересуют советы, мнения и т.п.

WizardOfOz
()

RSS подписка на новые темы