LINUX.ORG.RU

Сообщения den73

 

Ошибка 137 - как проверить, заканчивалась ли память на машине?

Форум — Admin

Злые языки говорят, что одна из возможных причин ошибки 137 при сборке программок - это нехватка оперативной памяти на машине. А о факте такой нехватки делается ли запись в какой-нибудь журнал, чтобы потом можно было посмотреть? Интересуют два варианта ОС - Ubuntu 18.04 и Red OS не знаю какая.

 ,

den73
()

как соотносится pthread_clockgettime(thread) и rdtsc?

Форум — Development

я чиню диспетчер задач в ЯОС. В ЯОС есть процедура для замера времени выполнения треда. В юникс-версии она была сломана и вызывала, по сути, rdtsc,

проц -ДайКвоТактовПроцессораСМоментаПерезапуска* (): цел64;
машКод
  XOR RAX, RAX
  RDTSC  ; set EDX:EAX
  SHL RDX, 32
  OR RAX, RDX
кон ДайКвоТактовПроцессораСМоментаПерезапуска;

Поэтому в местном диспетчере задач у всех тредов было одинаковое CPU. Я поправил процедуру, которая лежит в основе замера, и теперь она выглядит так:

	проц GetCpuCycles*( process : Process; перем cpuCycles: CpuCyclesArray; all: булево );
	перем temp : цел64;
	перем t: Unix.Timespec;
	перем кодЧасов: Unix.ClockId_t;
	перем успехТочногоЗамера: булево;

	нач
		утв(process # НУЛЬ);
		если Unix.pthread_getcpuclockid(process.threadId, адресВПамяти из кодЧасов) = 0 то
			если Unix.clock_gettime(кодЧасов, адресВПамяти из t) = 0 то
				(* Вот здесь что надо сделать??? *)
				cpuCycles[0] := цел64(t.tv_sec)*1000000000 + цел64(t.tv_nsec);
				успехТочногоЗамера := истина всё всё;
		если ~успехТочногоЗамера то
			cpuCycles[0] := ЭВМ.ДайКвоТактовПроцессораСМоментаПерезапуска() всё;

		если ~all то
			temp := process.lastThreadTimes;
			process.lastThreadTimes := cpuCycles[0];
			cpuCycles[0] := cpuCycles[0] - temp;
		всё;
	кон GetCpuCycles;

Т.е. я пытаюсь воспользоваться clock_gettime, и если у меня всё получается, то считаю, что 1 цикл = 1 наносекунда. Если не получается, то использую старое решение. В результате всё вызвалось нормально и я увидел, какие треды работают, а какие спят. Но единицы измерения вряд ли правильные. Как пересчитать, чтобы было похоже на те циклы, которые считает rdtsc?

Иными словами, как узнать частоту, с которой тикают часы, показания которых возвращает rdtsc?

 ,

den73
()

Rust и двусвязный список

Форум — Development

Хорошую тему тут затронули

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

http://contain-rs.github.io/linked-list/src/linked_list/lib.rs.html#11-1388

Или не лучшее? Растаманы и растафобы, собирайтесь на великую битву!

А вот, кстати, ещё про списки:

https://rust-unofficial.github.io/too-many-lists/

 , двусвязный список,

den73
()

Покрывают ли макросы Rust возможности #define?

Форум — Development

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

  #define OPEN_BRACE {
  #define CLOSE_BRACE }

Можно ли так сделать в Расте?

 ,

den73
()

перенос Ubuntu 18.04 вместе с диском в другой ноутбук

Форум — Desktop

Реально ли?

 ,

den73
()

Объём исходников типичной «базовой» системы Linux

Форум — Development

Нашёл за сегодня много интересного, например,

https://sources.debian.org/stats/#sloc_current

https://dwheeler.com/sloc/redhat71-v1/redhat71sloc.html

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

Сколько строк кода в её исходниках?

Нигде не нашёл инфы, скачиваю пакеты исходников для всех пакетов, поставленных в моей подходящей виртуалке, с тем, чтобы их потом подходящей программкой (cloc) подчитать, но боюсь, что виртуалка + дачный интернет = fail.

 

den73
()

юнионы в C++

Форум — Development

Пишу телегу против плюсов. В связи с этим вопрос - насколько широко в плюсах используются нуль-терминированные строки, юнионы, неумные указатели и всё такое плохое, что делает Си опасным языком.

Даже интересует не столько то, насколько они используются в существующих программах, а есть ли примеры программ, где хорошие средства плюсов сконсолидировались и поставили заслон от опасных конструкций Си, позволив полностью избежать их использования и избавиться от типичных ошибок Си. Можно ли так написать что-то существенно сложное? Сделано ли это в любимых библиотеках (Буст, QT и иже с ними)? Вторая часть вопроса - это неопределённое поведение. В Си его много. Это подаётся как фича, но с точки зрения безопасности это дыра. Меньше ли неопределённого поведения в С++?

Есть две полярные точки зрения на вопрос:

а) С++ перекрывает Си, поэтому там всё сделано по-другому, поэтому безопасность выше б) С++ - наследник Си и в целом наследует его недостатки.

Поскольку я мало пишу на Си и ещё меньше на Си++, у меня нет сложившегося мнения на эту тему. А у ЛОРа наверняка есть мнение, даже несколько.

 

den73
()

Open Source в российском правовом поле

Форум — Development

Мы решили начать кое-какую разработку и встал вопрос о юридическом оформлении. В разработке участвуют физ. и юр. лица (возможно, НКО) и мы хотим сделать код общедоступным. Исходный код - под MIT лицензией. Как нам перенести всё это в российское правовое поле, чтобы оно работало? Есть ли адаптированные тексты лицензий и таблица, какую лицензию с чем совмещать? На каком основании вкладчики будут передавать права на код и кому? Кто уже ходил такой дорогой, может есть у кого списать готовое решение?

Мне на ум пришли такие примеры для подражания:

  • шрифты PT, которые заказаны государством у паратайпа и написана лицензия, явным образом разрешающая всем пользоваться, но это не совсем то - тут законченное изделие, и к тому же не программа
  • IDEA IC - я не нашёл текста лицензии на русском, в т.ч. лицензия для студентов с русскоязычных страниц открывается тут https://www.jetbrains.com/legal/docs/toolbox/license_educational/
  • 1C-предприятие - у них открытый код конфигураций, который можно дорабатывать - пока не добрался до лицензии (а надо бы)
  • НИИ ЦентрПрограммСистем, который является ещё советским прототитом FSF

Ещё новость для контекста (лорчик сам подсказал, спасибо: Поправки в Гражданский кодекс вводят в закон понятие открытой лицензии)

Ваши идеи?

 , ,

den73
()

лучший российский линукс простого человека

Форум — Talks

Расскажите пожалуйста. Ходят слухи, что Альт достаточно давно и далеко отпочкован от мейнстрима Линукса. Для меня это первый критерий качества. Правда это или нет? Какой российский линукс наиболее хорош для установки на домашний или офисный компьютер?

Я понимаю, что тема холиварная, но зато я перестал ругать линукс и стал его рассматривать. Видите, как хорошо. Поэтому прошу тему не убивать, а вместо этого хорошо и подробно рассмотреть.

Между тем уже появились люди, которые за 3000 рублей предлагают пригласить мастера и поставить запасной Linux, «пока Windows и Mac OS не заблокировали и вы не потеряли свои данные». Выглядело бы резонно, если бы этим линуксом была не убунта.

Впрочем, в моей параноидальной версии мира, блокировать будут не Windows, а сразу превращать весь компьютер в кирпич. Наверняка для этого есть инструменты. В этом случае линукс не поможет. Не поможет он и в случае, если новые поколения шифровальщиков успеют добраться до ваших данных до момента, когда вы уйдёте с Windows. Но при некоторых сценариях и Linux может сгодиться.

Перемещено leave из development

 

den73
()

российские аналоги github/gitlab - 2022-03

Форум — Development

Поскольку недолго поднять локальную копию гитлаба, наверняка кто-то уже запилил «наш российский гитхаб» и наверняка таких гитхабов не один. Кто поделится ссылками?

 ,

den73
()

Как поживает внедрение Linux в управлении делами Президента?

Форум — Development

Была статья от 2018 года, что внедрение прошло не очень успешно. А что дальше было?

Вот прошлая тема про это:

Управление делами Президента РФ переходит на Astra Linux

Там есть ссылка на документ о графике перехода, он 404.

А вот статья про неудачу перехода:

https://itnan.ru/post.php?c=2&p=297819

 ,

den73
()

ptrace - подменить программу во время exec

Форум — Development

Возможно ли? И если да, то как? Запускается некая программа, нужно запустить вместо неё свою.

 code injection,

den73
()

Как меняется стоимость кода в зависимости от требований к его надёжности?

Форум — Development

Что-то не могу ничего найти, хотя помню, что полгода назад где-то обсуждал и находил какую-то инфу на эту тему. Спор начался с того, что кто-то утверждал, что в Open Source на 3 порядка меньше ошибок на 1000 строк, чем в коммерческих программах. Это оказалось враньём и по ходу дела нашлись цифры и о плотности ошибок, и о стоимости программы.

 

den73
()

кто пробовал лисповое расширение для VS Code?

Форум — Development

Ну вот, опять довелось покодить на CL ради хлеба насущного. Поскольку емакс в этом году уже приходилось расчехлять, он почти не ранит. Но всё же, кто пробовал новое расширение для VS Code?

 ,

den73
()

сокращённая версия git репозитория

Форум — Development

Имеется git-репозиторий А размером за 2 гига и историй за овердофига лет с детальными подробностями. Хочется сделать другой репозиторий Б, поменьше, мегов на 200, но чтобы можно было перетягивать новые изменения из А в Б и обратно. Позволяет ли гит в принципе такое сделать? Например, можно ли сделать, чтобы в репозитории Б вся история до 2021-01-01 была тупо удалена и при этом сохранилось бы взаимопонимание между А и Б?

 ,

den73
()

кто-нибудь запускал plan9 для RPi под QEMU?

Форум — Development

Что-то не гуглится строка запуска. Меня больше всего интересует raspberry pi 2. На железке всё запускается и работает. На QEMU пока только доходит до показа объёма доступной памяти.

 , , ,

den73
()

ищется протокол удалённого вызова процедур

Форум — Development

Клиент - C++, Сервер - программа на языке со сборкой мусора. Вызов только локальный. Нужно уметь описывать интерфейсы, хранить ссылки на удалённые объекты, генерировать обёртки и всё вот это вот.

Основное требование - это простота реализации и независимость от библиотек, т.к. придётся портировать на новый язык, в котором ничего нет (даже json).

Поэтому ищется какая-то компактная многоязычная библиотечка.

Второе требование - пермиссивная лицензия.

В текущем самодельном прототипе используются сокеты. Вроде этого пока должно быть достаточно.

Посмотрел:

  • SOAP - на базе XML = тормоза.
  • Protobuf - формат можно рассмотреть, хотя у меня нет цели слишком сжимать данные, а они там похоже на это запарились.
  • grpc - оказывается, там какое-то http/2, заточенное под оптимизацию веба. Мне это абсолютно не нужно
  • erpc - только Си
  • CORBA - вроде громоздкая?

Фавориты:

 

den73
()

Куски BSD в GPL приложение можно засунуть ли?

Форум — Development

Наверное, это FAQ. Простите. Но всё же вопрос такой актуален. Программа под GPL v.2, использует QT 5. Залезаю в примеры Qt и вижу там двойное лицензирование - либо коммерческое, либо BSD.

https://code.qt.io/cgit/qt/qtwebsockets.git/tree/examples/websockets/echoclient/main.cpp?h=5.15

Я могу это вставить в программу?

 , ,

den73
()

хеш-функция для строк юникода

Форум — Development

Вот тут есть функции для char-ов,

http://www.cse.yorku.ca/~oz/hash.html

А как насчёт юникодных? Функция нужна для реализации хеш-таблицы.

 хеш, хеш-таблицы

den73
()

Ubuntu 20, lxqt+openbox, переключаемся в нужные приложения по клавишам Super-1 и т.п.

Форум — Desktop

В продолжение темы, попавшей в архив:

LXDE, lubuntu-desktop - открывать приложение или переключаться в него по горячей клавише

Обновился с lubuntu 18.04 до lubuntu 20.04, и снова возник вопрос, как переключаться по клавишам Super-1, Super-2 в нужные окна (как я делал это в предыдущей теме).

Ничего не работало, до тех пор, пока я не удалил у себя ~/.config/lxqt, ~/.config/openbox, и затем не сделал из текстового терминала (Ctrl-Alt-F3) следующее:

sudo apt purge openbox lxqt lubuntu-desktop
sudo apt install openbox lxqt lubuntu-desktop
sudo shutdown -r now

После этого стало возможным задать новые сочетания клавиш с Meta-1 и т.п. через приложение «сочетания клавиш», оно же - «управление глобальными настройками». Сначала пришлось назначить действие «показать/скрыть главное меню» на кнопку Super_l, затем удалось добавить сочетания с Meta+1, Meta+2, там задаём команду, которую нужно выполнять (/home/моё-имя/.config/горячие-клавиши-openbox.ш W-1), и к тому же поставить «при наличии нескольких действий выполнять последнее», а действия по умолчанию для Meta+1, Meta+2 и иже с ними отключить.

Полдня убил на это. Куча багов в lxqt про кнопку super, плюс попытка применения мной старого рецепта существенно запутала ситуацию.

 ,

den73
()

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