LINUX.ORG.RU

Избранные сообщения wandrien

Вышел симулятор электронных схем Qucs-S 1.0.2

Новости — Open Source
Группа Open Source

Сегодня, 23 апреля 2023 года, состоялся очередной релиз симулятора электронных схем Qucs-S. Особенностью Qucs-S является то, что он не содержит собственного движка моделирования, а использует сторонние SPICE-совместимые движки. Рекомендуемым движком является Ngspice, который предлагается по умолчанию при старте программы.

( читать дальше... )

>>> Страница релиза на Гитхабе

 , , ,

DarthVadimius
()

Убийца ли C язык C3?

Форум — Development

В честь сегодняшнего пре-релиза (0.2.4).

C3 (GitHub) - очередной «убийца» C на базе LLVM. Потихоньку разрабатывается шведским программистом (одна штука).

Ключевые особенности:

  • компилятор написан на C
  • поддержка LLVM 12-15 (насколько мне известно, ни один из конкурентов этого не может (привет, Odin, Zig и т.д и т.п.))
  • полная C-ABI совместимость
  • модули - нет хидерам!
  • дженерики
  • макросы, но не как в C
  • слайсы
  • контракты
  • compile time and runtime reflection (плохопереводимая игра слов)
  • SIMD «из коробки»
  • и многое другое!

Из недостатков - практически спартанская стандартная библиотека, но так как реализованы ещё не все запланированные возможности, то в этом есть смысл.

macro int factorial($n)
{
        $if ($n == 0):
                return 1;
        $else:
                return $n * factorial($n - 1);
        $endif;
}

extern fn void printf(char *fmt, ...);

fn void main()
{
        int x = factorial(12);
        printf("12! = %d\n", x);
}

 , ,

dataman
()

Можно ли считать grub операционной системой?

Форум — Talks

Собственно, почему бы и нет. Запуск внешних программ(модулей) - есть. Консоль есть. Дисковые операции тоже. Получается, что grub(как в принципе и u-boot) - это ОС?

 ,

Werenter
()

SDE: история неуспеха

Форум — Desktop

Привет. В продолжение этого комментария. Потыкал SDE полдня и расскажу вам свои впечатления.

Собрал SDE в pisilinux. Как известно, pisilinux малопопулярный дистрибутив с кучей багов, а я один из тех, кто собирает для него пакеты.

Итак. Панель waterline действительно производит хорошее впечатление и богата настройками. Есть мелкие претензии к внешнему виду. Изменение расположения апплетов из gui вызывает сегфолт. Секундные задержки генерации миниатюр окон.

При первом запуске в панели нет кнопки меню приложений. Проблема связана с настройкой темы значков. Отсутствующая иконка ничем не замещается и не резервируется место.

Настройки из /etc/xdg/sde-session-manager выполняются независимо от того, существует ли каталог ~/.config/sde-session-manager и что там прописано.

stuurman-desktop рисует обои через раз. Окошки ФМ и его настроек спустя некоторое время перестают появляться, если запущен демон.

WM — pek или openbox. Спасибо за внимание.

 ,

zombi_pony
()

Как настроить несколько раскладок клавиатуры Linux Mint Cinnamon 21.1 ?

Форум — General

Здравствуйте.

Я использую Linux Mint Cinnamon с 2012 года и обычно мне хватало включения в настройках 3 ряда и добавления букв Эсперанто Ĉ, ĉ, Ĝ, ĝ, Ĥ, ĥ, Ĵ, ĵ, Ŝ, ŝ, Ŭ, ŭ.

Но в последнее время мне понадобилось кроме эсперантских букв ещё и расширенные типографские символы типа §, °, —, ₽, „, “, «, ».

Это достигается путём включения галочки «дополнительных типографских символов». Эти символы тоже вешаются на 3 ряд клавиш, что создаёт конфликт с эсперантскими буквами, замещая их.

Теперь меня заинтересовал язык APL который так же использует довольно много расширенных символов. Раскладку APL можно так же включить в настройках клавиатуры.

Но она тоже вешается на 3 ряд клавиш и конфликтует с ранее выбранными раскладками замещая их.

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

Думаю, что моя проблема возникает у людей не часто, т.к. обычно, нет необходимости иметь одновременно несколько альтернативных раскладок. Но вот так сложилось.

Я не до конца понимаю, что такое клавиши 5 ряда и как туда подключить раскладки. Есть галочка переключения на 5 ряд, но это ни на что не влияет.

Когда-то в начале 2000-х я вручную редактировал файлы раскладок для Linux (хотя это было не очень удобно, т.к. приходилось изменять какую-то существующую раскладку) и в Windows (Которой я тогда параллельно пользовался) с помощью какой-то утилиты.

Я хотел бы понять:

  1. Как подключать раскладки в 5 ряд.
  2. Как добавить или изменить элементы в «Параметры раскладки клавиатуры».

 

Hemulo
()

Расцепители на DIN рейку выключаемые слаботочкой

Форум — Talks

Хочется вручную механически взводить выключатель и сбрасывать по сигналу с датчика.

Существуют ли вообще такие устройства? Не нашел.


Независимые расцепители похожи на то что нужно, но они вроде не на слаботочке работают и хочется одно дешевое устройство.

Можно электронное УЗО пропатчить, но это сомнительное решение.

 ,

Tanger
()

OpenBSD 7.3 на ноутбуке

Галерея — Скриншоты

Давно хотел начать описывать реалии использования OpenBSD, поскольку информации в сети по ней мало, а та что есть часто устаревшая, либо касается исключительно серверного использования.

Вот тут начало, по мере накопления тем буду публиковать детали.

На скриншоте 7.3 OpenBSD, недавно обновленная, с кастомным ядром.

Xfce4 в виде DE, тема оформления видна в выводе neofetch на скриншоте.

 , ,

alex0x08
()

Произвольная сортировка файлов

Форум — Desktop

Всем доброго времени суток.

Подскажите пожалуйста по такому вопросу. В ранних версиях виндовс, в частности в хр была функция произвольной сортировки файлов. То есть, была возможность сортировать файлы в произвольном порядке не только на рабочем столе, но и в любой папке файлового менеджера, как в виде таблицы / списка, так и в виде эскизов.

Хотел поинтересоваться у опытных пользователей, есть дистрибутив линукс или файловый менеджер в котором реализована данная функция?

Спасибо за ответ!

 

johnsmith
()

Как экранировать пробелы во вложенных командах?

Форум — General

Есть однострочник:

for f in oldpath/*.png; do convert "$f" $PARAMETERS "newpath/`basename "$f" .png`.webp"; done

Он работает в 1 поток. Можно запускать каждую команду отдельным процессом:

for f in oldpath/*.png; do convert "$f" $PARAMETERS "newpath/`basename "$f" .png`.webp" & done

Но памяти хватает файлов на 300, если больше — всё прибивается по OOM.

Я хотел использовать GNU parallel, точнее sem:

for f in oldpath/*.png; do sem -j8 convert "$f" $PARAMETERS "newpath/`basename "$f" .png`.webp" & done

Но как выяснилось, если в $f есть пробелы, convert получит его без кавычек и не сможет работать.

Вопрос: как принято передавать имена с пробелами пробелы таким утилитам, как sem?

Ответ: У sem и parallel есть параметр --quote или -q.

for f in oldpath/*.png; do sem -q -j8 convert "$f" $PARAMETERS "newpath/`basename "$f" .png`.webp" & done

Но я всё ещё жду ответов о возможности более общего решения. Например, утилиты вроде tr или sed, автоматически экранирующей строки.

 ,

question4
()

Корзина в MC.

Форум — General

Нагуглилось некое libtrash https://pages.stern.nyu.edu/~marriaga/software/libtrash/ попробовал на разных машинах - из под arch или debian и везде одна и та же картина: дирректория ~/Trash создается без проблем, но потом начинается непонятное - что то удалить прав не хватает, что то удаляется мимо корзины, а что то всетаки попадает в ее. Все файлы которые пытаюсь удалять находятся в домащней дирректории и без использования libtrash легко удаляются навсегда. Кто пользуется подобной связкой mc+libtrash, нет ли у вас такой проблемы и если была как решили ее?

 , , ,

amd_amd
()

details - утилита по поддержанию детальной документации в актуальном состоянии

Форум — Talks

Ранее я уже писал, что использую в своих новых проектах детальную документацию, способ ведения документации когда в коде расставляются @метки, а в отдельной директории они все подробно описываются в Markdown-файлах.

Я оценил всю крутизну деталей когда разработка проекта была прервана на три месяца. Благодаря им я легко вспомнил всё и легко продолжил проект. Предлагаю оценить и вам удобство такой документации, тем более что я написал няшную утилиту чтобы смотреть какие детали использованы, но ещё не описаны или наоборот найти неиспользуемые описанные детали:

https://github.com/unDEFER/details

Не в новостях потому что утилита очень уж мелкая и написана за пару часов..

 

unDEFER
()

Разница конфигов Openbox и BSPwm

Форум — Talks

Переезжаю с одного оконного менеджера на другой, и вот что заметил когда, переносил хоткеи для MPD.

Вот конфа sxhkd

#MPD

shift + alt + {p,n,b,k,l,c}
	mpc {toggle,next,prev,volume -5,volume +5,clear}

Вот конфа openbox

    <!-- Music MPD -->
    <keybind key="S-A-p">
      <action name="Execute">
        <command>mpc toggle</command>
      </action>
    </keybind>
    <keybind key="S-A-n">
      <action name="Execute">
        <command>mpc next</command>
      </action>
    </keybind>
    <keybind key="S-A-b">
      <action name="Execute">
        <command>mpc prev</command>
      </action>
    </keybind>
    <keybind key="S-A-k">
      <action name="Execute">
        <command>mpc volume -5</command>
      </action>
    </keybind>
    <keybind key="S-A-l">
      <action name="Execute">
        <command>mpc volume +5</command>
      </action>
    </keybind>
    <keybind key="S-A-c">
      <action name="Execute">
        <command>mpc clear</command>
      </action>
    </keybind>
    <!-- Music MPD END -->

Слова в принципе излишни, но скажу на последок - считаю оба менеджера лучшими в своём роде.

 , , ,

LibAccelerator
()

linux-0.01 скомпилированный в minix-386 и запущенный в эмуляторе 86box

Галерея — Скриншоты

Я люблю старые программы, мне нравится их изучать и смотреть как они развивались, и во что они сейчас превратились или умерли так и не дожив до современных дней. И по той же самой причине, мне нравится смотреть различных авторов Youtube каналов посвященные ретро тематике в котором авторы рассказывают о корнях программ, игр, приставок или старых компьютерах. И на волне этого, мне захотелось попробовать собрать и запустить, что-то относительно старое, но которое живет и развивается до сих пор. Мой выбор пал на первую версию Linux, версии 0.01.

Те кто знаком с историй создания Linux и её ранних дней, знают, что она писалась Линусом Торвальдсом на 386 машине на которой работала пропатченнная версия Minix 1.5. И не смотря на, то, что есть проект (и не один) позволяющий скомпилировать linux-0.01 на современных версия компиляторов мне же хотелось побыть немного в шкуре самого Линуса и самому собрать ядро в ее родной среде, а именно в Minix и древними версиями GCC.

Те, что интересуется подобной историей (да или просто пользуются гуглом), знают, что такое уже проделывали многократно (посмотрите хотя бы сайт oldlinux.org), но я хотел сделать это всё сам. И вот вооружись энтузиазмом, эмулятором 86Box, старыми версия ПО (многие их которых взяты с вышеупомянутого сайта), а главное ядра Linux, я пошел по стопам Линуса, ну или почти по стопам… :)

Первым делом необходимо было установить классический 16-битный Minix 1.5.10 (верхний левый скрин). При наличии дистрибутива (17 дискет), а также Reference Manual делается это не сложно. Просто необходимо внимательно читать manual Танненбаумана. Единственное замечание по установке в эмуляторе 86Box, так это то, что необходимо в настройках эмулятора (и BIOS) выставить тип 360к для 5 1/4 дисковода, иначе Minix сможет грузится с загрузочной дискеты, но root’овую уже не увидет.

Далее необходимо очень внимательно следовать прекраснейшему руководству от Джона Наллома по превращению в minix-386. На этом этапе каких-либо подводных камней нет (опять же внимательно читаем), единственное необходимо установить тип 1.2M для 5 1/4 дисковода. Также необходимо будет перекомпилировать все бинарные файлы в /bin и /usr/bin. В самом руководстве Джон компилирует только часть их них (сам Брюс Эванс в README на bcc писал, что достаточно только sh :) ). Я же перекомпилировал почти всё.

Затем качаем и ставим готовый компилятор GCC 1.37.1 от Alan W Black’а. Нужно как минимум 3 архива с самим gcc, библиотеками и заголовочными файлами. Главное, ОБЯЗАТЕЛЬНО, необходимо пропатчить ядро Minix (kernel) иначе при компиляции ядра Linux, получите сообщение, что-то типа fp stack overflow.

Ну и под финал всего это необходимо скомпилировать сам Linux-0.01. Линус писал, что он использовал пропатченный им же gcc-1.40 c поддержкой -mstring-insns, но он также писал, что возможно подойдет 1.37.1 и да, им можно скомпилировать ядро Linux. Нужно только убрать вышеупомянутую опцию из нескольких Makefile (об этом писал Линус), а также отредактировать под себя boot.s (под нужный тип дискеты) и include/linux/config.h (параметры жесткого диска). Плюс в Makefile надо добавить путь до gnulib (об этом тоже писал). О чем Торвальдс не писал, так это то, необходимо в Makefile добавить команду конвертации бинарного файла в формат, который мог бы исполняется на Minix-386 (на нижнем левом скрине эти команды можно увидеть). Линус не делал подобной конвертации и могу предположить, что у него был патч который позволял запускать бинарные файлы gcc нативно (aka gnutoo).

Осталось только подготовить свободный раздел жесткого диска, создать несколько устройств в /dev и /bin скопировать bash (+ сделать ссылку на sh) и update. Запись ядро на дискету и как писал Линус «Use the three-finger-salute to reboot you machine».

 , linux-0.01, ,

OlegSL
()

Выходим в интернет с minix-386 1.5.10

Галерея — Скриншоты

Перечитывая, в очередной раз, книгу Линуса Торвальдства «Ради удовольствия: Рассказ нечаянного революционера» (Just for Fun: The Story of an Accidental Revolutionary) и всё больше погружаясь в историю раннего развития ядра Linux, начинаешь находить какие-то факты, на которые ранее совершенно не обращал внимание.

Вот, например, читая эти строки:

Мой эмулятор терминала обрастал наворотами. Я регулярно использовал его, чтобы подключиться к университетскому компьютеру и получить почту или поучаствовать в конференции по Minix.

Я мысленно спросил себя, а как это делалось тогда? Ведь в minix не было никакого сетевого стека (amoeba не в счет). Да, были попытки внедрения сети, и наверно, самый известный проект, это TNET, на основе которого уже был проект по поддержке сетевых карт, таких как WD8003, NE1000/NE2000, 3C503/3C509. Но, во-первых, Линус ничего не упоминал об этом (даже в Linux сеть появилась далеко не сразу), а во-вторых у него на домашнем компьютере просто не было сетевой карты, был только модем.

Хорошо, модем так модем. Но как с помощью него он подключался к университетскому компьютеру? Все достаточно просто (с точки зрения современных технологий) модем Линуса звонил на университетский модем и если он был свободен, происходил пшшш-шшш-дын-дын-пшш.. или modem handshake и если модемы устанавливали связь, оба модема переходили в режим передачи данных, со стороны «университетского сервера» запускался /bin/login, и пользователь авторизовывался там, вводя свой логин/пароль, тем самым попадая на сервер, прям как мы сейчас подключаясь по ssh. И уже на сервере, можно было и почту прочитать и в конференциях поучаствовать…

Но вернемся в наше время. С тех пор, как мне удалось в 86Box собрать minix-386 и в нём скомпилировать и запустить Linux версии 0.01 мне всегда хотелось выйти с него в интернет. Но 86box нет поддержки модема, только сетевые карты, но использовать сетевые карты, с вышеупомянутым TNET, мне не хотелось потому, по-первых, это был бы не канон, а во-вторых TNET у меня не заработал :) (возможно, просто из-за моей криворукости).

И вот, недавно, разработчики 86Box’а зарелизили фичу проброса серийного порта (serial port passthrough) на хостовую ОС и мои руки зачесались…

Первым делом, в настройках 86Box включил passthrough, я задействовал 2-ой com-порт (в minix это устройство /dev/tty2) с режимом Pseudo Terminal/Virtual Console и скоростью 2400 8n1. При запуске 86Box автоматически создать PTY-устройство /dev/pts/XX (у меня это было /dev/pts/19) и уже с этим файлом можно взаимодейстовать как с minix, так и с хоста. Ну, ОК, скажите вы, а что дальше-то, где модем? А модем будем эмулировать через modemulator программа на Go которая реализует небольшой сабсет АТ-комманд модема. Сам modemulator представляет из себя сервер, который при старте открывает tcp порты для работы на различных модемных скоростях, а после установление CONNECT’а, производит подключение по telnet на указанный хост.

Т.к. modemulator открывает сетевой порт, а со стороны 86box есть только pty, то пришлось задействовать socat для форварда данных между pty и tcp портом. Причем у меня не получилось напрямую пробросить /dev/pts/19 на tcp порт (localhost:10024), пришлось вначале socat’ом создать ещё одно устройство pty с пробросом на tcp, и уже потом cat’ами гонять данные туда сюда (см схему внизу скриншота). И в самом конце цепочки CentOS 7 c телнет сервером. Спросите зачем целая виртуалка с CentOS? По простой причине, она у меня уже была настроена.

Собственно, осталось только скомпилировать minicom v1.3.2 вот minix-386 уже попытаться дозвонится (верхний левый скрин). По факту, конечно, с компиляции minicom’а я и начал. В самом процессе компиляции нет никаких проблем, достаточно в Makefile убрать комментарии с флагов предназначенные для Bruce Evans’ bcc и закомментировать, соотвественно, PC Minix ACK compiler. Если всё происходит удачно, то можно попробовать запустить minicom в режиме конфигурации (-s), указать, что модем у нас находится на /dev/tty2 и сохранить как дефолтный конфиг. И потом запустить minicom! minicom отправит команду инициализации модема, но нашему эмулятору модема на неё всё равно, он просто отвечает ОК. И далее «звоним», набираем ATD4242. Когда эта команда прилетит на modemulator, то он откроет телнет соединение с сервером указанный в программе (в моем случаи на telnet://localhost:2323), где надо будет авторизоваться, и уже там можно и «получить почту или поучаствовать в конференции по…».

Но это всё текстовые протоколы, а как на счёт файлов? Линус же как то заливал свое ядро на ftp сервер ftp.funet.fi? А для этого в давние времена придумали протоколы xmodem/ymodem/zmodem + были альтернативные протоколы, такие как kermit и др. Чтобы залить куда-то файл, например по zmodem, необходимо было с одной стороны запустить программу по приему (rz, Receive ZMODEM), а с другой отправить файл через sz, Send ZMODEM. На втором скриншоте справа вы как раз и видите процесс передачи оригинального ядра linux-0.01.tar.Z на «университетский» сервер.

 , ,

OlegSL
()

Один бинарник на четыре системы

Статьи — Разработка

Это текстовая версия статьи, оригинал с картинками вот тут

( читать дальше... )

 , , , ,

alex0x08
()

В файле pdf переставить номера страниц

Форум — Desktop

Есть некий документ, распечатанный в файл pdf, и номер страниц в нём идут то слева, то справа, т.к. он распечатан, чтобы его сшить. А мне нужно, чтобы все номера были в одном месте (допустим, в середине). Документ сложный (ноты). Попробовал открыть в LibreOffice Draw, ничего нормального не вышло. Какая программа позволит мне импортировать документ как изображение, без потери качества, чтобы я мог переместить номера страниц и потом обратно сохранить в pdf или распечатать?

 ,

den73
()

Демосцена на FreeBSD

Галерея — Скриншоты

Как-то решил я вспомнить счастливое детство и полазить по сайтам сценеров — с удивлением обнаружил, что много кто выкладывает релизы демок под FreeBSD.

FreeBSD — мягко говоря не самая подходящая система для занятия оптимизированной графикой, поэтому делать такое это своего рода показатель удали, уровня мастерства в разработке и духа сцены.

Вообщем тут рассказываю что удалось собрать и запустить.

На скриншоте Ghosts of Mars by Faemiyah собранный и запущенный под FreeBSD. Это все программный рендер на обычной встроенной Intel-видео.

Оформление: Xfce и известный IndigoMagic - такой закос под 4Dwm на SGI Irix.

 , ,

alex0x08
()

Ничего особенного,просто Fallout 2 на движке Doom

Форум — Games

https://jonasz-o.itch.io/fallout2remake3d

Проект фанатский,и активно развивается. По ссылке можно поиграть прямо в браузере,там же скачать. В том числе, под линукс (у меня правда не завелось). Что приятно - есть рус. перевод. Правда,кривоватый - в меню навыков все перепутано,так что на дверь надо делать «скрытность» вместо «взлом». Полчаса тупил в храме,пока дошло) Как по мне - это уже лучше Фоллаутов от Беседки.

 

Dog
()

xp4q q4os

Галерея — Скриншоты

Зачем? Для бесшовного переезда с винды на линукс обычных людей.

https://q4os.org/

https://xpq4.sourceforge.io/

Софт

  • OnlyOffice
  • Audacious со скином WinAmp
  • VLC со скином WMPlayer
  • p7zip-desktop из снапа https://snapcraft.io/p7zip-desktop (к сожалению протух)
  • Konquerer со скином IE6 (because i can)
  • Косынка ace-spider
  • Паинт gnome-paint
  • wine + wine-binfmt для запуска оффтопик софта

Вариант с темой XP https://0x0.st/HoSY.png https://i.ibb.co/JcXvSJ3/XP-1.png

Вариант с темой 10 https://0x0.st/HoSx.png https://i.ibb.co/t3nmtSh/10.png

 , , xp4q

bga_
()

Вышел SimulIDE-1.0.0-SR0

Новости — Open Source
Группа Open Source

SimulIDE — это кроссплатформенная среда для моделирования цифровых схем, в том числе содержащих микроконтроллеры, отдалённо напоминающая Proteus.

В настоящее время поддерживаютcя МК серий PIC, AVR и 8051, логические ИС серий 74 и CD4000, а также упрощённые модели аналоговых компонентов. Моделирование — полностью интерактивное в реальном времени. К МК можно подключить разнообразные индикаторы.

Сегодня, 18 марта 2023 года, вышел первый стабильный релиз SimulIDE-1.0.0. Данный релиз содержит многочисленные исправления ошибок и некоторые новые компоненты.

Скачать бинарные пакеты для Linux можно здесь: https://launchpad.net/simulide/+download

>>> Сайт проекта SimulIDE

 , , ,

DarthVadimius
()