Меня останавливает от такой затеи то, что другие этого не делали и даже под Ubuntu 32 нет более менее всежих версий Qt. В результате подстраиваюсь под Qt той версией какая есть
Raspi автоматически снижает скорость работы и не дает перегреваться микросхемам. Установка радиаторов и обдува увеличивает ток потребления и быстродействие, на температуре ни как не сказывается. У Raspi самые не надежные места во шлеф карте и в питание
Есть драйвера для подключения устройств по I2C на 50 метров
www.ti.com/lit/ds/symlink/p82b715.pdf
есть и дифферинциальные драйвера I2C
Можно и самому на транзисторах сделать и пустить большой ток, увеличить напряжение, можно сделать оптическую развязку (это тоже дифферинциальный сигнал получиться, но без земли)
Все производители микросхем предлагают драйверы для I2C. 1Wire микросхем датчиков очень не много и стоят дорого, микрокотроллеры тоже аппаратно его не поддерживают
В принципе можно ни когда не пользовать root, кроме начальной установки системы и программы, после чего о нем можно забыть.
Для обновления ПО заменять sd-карту с системой и программой. Либо написать в программе свой загрузчик, как это делается для обновления прошивки в микроконтроллерах.
Антон Пархоменко, графический интерфейс - это и есть клиент. Программа поставляется вместе с компьютером. Ни чего кроме кнопок программы пользователю не должно быть доступно. Даже обновление можно было бы заложить в саму программу (как загрузчик в микроконтроллерах), либо еще проще и надежнее, обновление производить заменой sd-карты с системой и новой версией программы.
Владимир, так а что пользователь должен сделать, чтобы посмотреть файлы? Если ни чего кроме интерфейса программы у него нет (ни рабочего стола, ни bash)? Как имея графический интерфейс программы увидеть ее код?
Я видел аналогичное устройство, где заявлено что используется Андроид, на каком языке программа написана не известно. Ни чего кроме кнопок интерфейса пользователю не доступно.
Если программа запускает на ПК это одно - смысла защищать байт-код нет - надо писать на С++ с компиляцией в машинные коды.
А если программа запускается на встраиваемой системе, где она является единственным интерфейсом - это другое. Можно ли в Linux запретить копирование файлов пользователю?
С открытым кодом конкурентных встраиваемых систем нет, есть только хобби проекты. Материальную и программую поддержку Linux осуществляют в том числе производители процессоров, которые их продают за деньги.
Linux предназначен для разграничения прав доступа, если бы все было открыто, то зачем надо было бы это внедрять в Linux и в файловые системы?
Владимир, можно ли в Linux разграничить права так, чтобы пользователь не смог открытьвать на чтение и скопировать файлы, а только запускать единственную программу (да и то, это будет автоматически при старте системы)?
Когда код откомпелирован в машинные коды, то дешевле написать заново. Новая разработка с этим и связана, потому что нет поддержки старой сторонней программы, надо написать аналогичную свою.
Этот вопрос по администрированию Linux и по файловой системе ext4.
1. Может ли файловая система ext4 запретить доступ к файлам при вынутой флеш карте, либо надо шифровать диск?
2. Можно ли запретить пользователю Linux любые действия, кроме работы с интерфейсом программы. В основном запретить просмотр и копирование файлов запущенной пользователем программы на языке Python
Спасибо, буду разбираться как это сделать в ручную и из C#. Wireshark похоже это и делает. Мне что-то в голову не пришло что сетевая карта просто отбрасывает пакеты у которых не ее сетевой адрес, из-за того что Wireshark показывает всё
Даниил Смирнов, статья напоминает старые времена когда говорили о преимуществах детерминизма при графическом описание схемы из встроенных примитивов. И самое главное в статье не приведен пример кода о котором они рассуждают. Языки имеют абсолютно взаимозаменяемые конструкции только синтаксис разный
Вот в чем более оптимальная запись сдвигающего регистра?
port (
clk : in std_logic;
enable : in std_logic;
reset : in std_logic;
sr_in : in std_logic;
sr_out : out std_logic
);
end entity;
architecture behavior of shift_reg is
type sr_length is array ((NUM_STAGES-1) downto 0) of std_logic;
signal sr: sr_length;
begin
process (clk, reset) begin
if (reset = '1') then
sr <= (others=>'0');
elsif (rising_edge(clk)) then
if (enable = '1') then
sr((NUM_STAGES-1) downto 1) <= sr((NUM_STAGES-2) downto 0);
sr(0) <= sr_in;
end if;
end if;
end process;