LINUX.ORG.RU

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

KVM и OpenStack

Форум — General

Пытаюсь читать доки по OpenStack и не могу найти в них прямого ответа на вопрос: как именно обеспечивается взаимодействие между KVM и возможностями предоставляемыми OpenStack (Swift, Cinder, Neutron). Насколько я понимаю, интерфейс у OpenStack - ReST поверх HTTP; устройства ввода-вывода, эмулируемые KVM, обращаются непосредственно к нему? Или (например, для Swift или Cinder) на хосте через FUSE монтируются некие сетевые шары, к которым потом KVM обращается как к обычным файлам?

Тем, кто посоветовал «поставь OpenStack и посмотри» - большое спасибо.

 , ,

tailgunner
()

Презентация «Rust - лучше, чем C++» на русском языке от разработчика из Яндекса

Форум — Development

http://tech.yandex.ru/events/cpp-party/june-minsk/talks/1978

Степан Кольцов

Яндекс

Rust — это современный, практический, быстрый и безопасный язык программирования. Некоторые говорят, что Rust — это как C++, если бы его писал человек, знающий Haskell.

Система типов Rust решает главную проблему C++ — небезопасность. C++ очень легко сделать ошибки, которые приведут к поломкам (например, use after free). Rust позволяет писать безопасный код, сохраняя при этом выразительность и околонулевые накладные расходы C++. В докладе будут подробно описаны механизмы языка, которые контролируют безопасность программы.

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

 

ozkriff
()

Освобождение ресурсов при ошибке

Форум — Development
int func(int x)
{
  char * c1 = malloc(SOMESIZE);
  char * c2 = malloc(EVENMORE);

  if ((!c1) || (!c2))
  {
    if (c1) free(c1);
    if (c2) free(c2);
    return E_CANTMALLOC;
  }

  int boolerr = 0;
  int retcode = 0;

  switch (x)
  {
  case 0:
     ...
     if (somebadnews)
     {
        boolerr = 1;
        retcode = E_CODE_GREEN;
     }
     break;
  case 1:
     ...
     if (somebadnews)
     {
        boolerr = 1;
        retcode = E_CODE_YELLOW;
     }
     break;
  case 2:
     ...
     if (somebadnews)
     {
        boolerr = 1;
        retcode = E_CODE_RED;
     }
     break;
  case 3:
     ...
     if (somebadnews)
     {
        boolerr = 1;
        retcode = E_CODE_BLACK;
     }
     break;
  default:
     boolerr = 1;
     retcode = E_CODE_BROWN;
  }

  if (boolerr)
  {
    free(c1);
    free(c2);
    return retcode;
  }

  ...

  return 0;
}

А как по канону нужно обрабатывать ситуацию, когда одна из подпрограмм вернула ошибку и нужно освободить ресурсы и передать наверх тот же код?

 

sambist
()

Что почитать для понимания сути работы и архитектуры линукса?

Форум — General

Читаю Немет - Unix и Linux. Руководство системного администратора, и не могу отделаться от мысли, что книга похожа на набор рецептов по установке и конфигурированию софта. То-есть после небольшого введения дается прикладное решение типа вот апач для вебсервера, вот конфиг-файл, тут такие вот опции есть, их можно покрутить. А хочется почитать что-то, что бы дало более глубокое понимание сути работы юникса, его архитектуры, в общем сути а не перечня настроек конфигов демонов. Что посоветуете?

 , ,

n3yron
()

Что говорит реляционная теория про NULL-значения?

Форум — Development

Насколько мне известно, таких значений необходимо избегать для поддержания БД в консистентном (непротиворечивом) состоянии.

NULL есть «неизвестно»: не TRUE, и не FALSE. Так у нас получается трёхзначная логика (истина, ложь, неизвестно).

Можем ли мы гарантировать непротиворечивость хранящихся данных с трёхзначной логикой?

 

wyldrodney
()

Открыт исходный код файрвола Douane

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

Разработчики межсетевого экрана Douane для GNU/Linux объявили об открытии исходных текстов. Douane предназначен для мониторинга сетевой активности и блокировки нежелательного трафика. Сетевой экран обладает наглядным интерфейсом и панелью для тонкой настройки правил. Douane блокирует неизвестный трафик и уведомляет о нем с помощью диалогового окна.

Межсетевой экран состоит из четырех основных частей:

  • модуль ядра douane-dkms — перехватывает исходящий сетевой поток для осуществления его блокировки;
  • фоновый процесс douane-daemon — отвечает за соблюдение правил о допустимости сетевой активности приложением;
  • douane-dialog — интерфейс для вывода уведомлений при неизвестной сетевой активности;
  • douane-configurator — предназначен для управления сетевым экраном.

Код открыт под лицензией GPLv2 и доступен для загрузки на GitHub.

Исходный код на GitHub


Официальный сайт

>>> Подробности

 , ,

garik_keghen
()

Что почитать про менеджмент в IT (программирование, разработка)

Форум — Development

Всем привет!

Проще говоря, интересуют книги про то, как эффективно руководить коллективом из 5-10 человек в IT сфере (программирование, разработка). Может кто знает? Можно на английском.

Dennis7
()

Господа, давайте достанем и померяемся

Форум — Talks

Давайте сравним производительность различных процессоров не с помощью ангажированных производителями непонятных бенчмарков, а используя старый добрый openssl (в особенности интересно сравнить аналогичные процессоры Intel и AMD).

Итак, для того, чтобы поучаствовать в сравнении, нужно выложить сюда выхлоп команды

cat /proc/cpuinfo|sed -rn 's/.*el na.*: //p'|uniq -c; openssl speed md5 -multi `cat /proc/cpuinfo|grep 'el na'|wc -l` 2>&1|grep ^md5

Дополнение: в результате получаются количества хэшей md5 (точнее, их суммарные длины в байтах), которые процессор может посчитать за секунду для блоков следующих длин:

16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
Чем больше, тем лучше.

Update: TL;DR, результаты можно посмотреть тут

 , ,

Deleted
()

Толковая литература по регулярным выражениям

Форум — Talks

Посоветуйте толковую литературу по сабжу. Чтобы можно было потом общаться с sed и подобным софтом «на ты» .

 , ,

Twissel
()

тачка под нагрузкой почти умерла

Форум — Development

Впервые за многие годы увидел как умерла практически пустая тачка (без свопа, но это, похоже, в данном случае неважно). Всего-то нужно было iscsi настроить. Вот мне теперь интересно что за память исчерпалась. Могут ли местные гуру сделать post-mortem анализ?

top - 16:33:42 up  2:17,  1 user,  load average: 7.17, 6.35, 4.41
Tasks: 160 total,   2 running, 158 sleeping,   0 stopped,   0 zombie
%Cpu0  :  9.6 us, 20.1 sy,  0.0 ni, 57.4 id, 11.6 wa,  0.0 hi,  1.2 si,  0.0 st
%Cpu1  : 23.5 us, 76.5 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  3.0 us, 11.3 sy,  0.0 ni, 81.8 id,  4.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  2.3 us,  6.6 sy,  0.0 ni, 89.0 id,  2.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   2071532 total,  1957896 used,   113636 free,       32 buffers
KiB Swap:        0 total,        0 used,        0 free.  1727248 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                             
 2493 root      20   0    7580   3424   2400 R  99.8  0.2  10:43.24 syslog-ng                                                           
 5816 root      20   0   11704   4720   2828 D  48.8  0.2   0:50.53 mc
[skip]
=====================

From dmesg:


Mem-info:
Normal per-cpu:
CPU    0: hi:  186, btch:  31 usd:  70
CPU    1: hi:  186, btch:  31 usd: 145
CPU    2: hi:  186, btch:  31 usd: 117
CPU    3: hi:  186, btch:  31 usd: 165
HighMem per-cpu:
CPU    0: hi:  186, btch:  31 usd:  31
CPU    1: hi:  186, btch:  31 usd:  12
CPU    2: hi:  186, btch:  31 usd:  52
CPU    3: hi:  186, btch:  31 usd:  15
active_anon:6363 inactive_anon:51 isolated_anon:0
 active_file:145592 inactive_file:169478 isolated_file:0
 unevictable:758 dirty:1429 writeback:14550 unstable:0
 free:161317 slab_reclaimable:26465 slab_unreclaimable:3724
 mapped:3522 shmem:370 pagetables:242 bounce:0
 free_cma:39559
Normal free:164216kB min:3512kB low:4388kB high:5268kB active_anon:0kB inactive_anon:0kB active_file:310856kB
lowmem_reserve[]: 0 10215 10215
HighMem free:481052kB min:512kB low:1996kB high:3484kB active_anon:25452kB inactive_anon:204kB active_file:27
lowmem_reserve[]: 0 0 0
Normal: 1042*4kB (UEMC) 396*8kB (UEMC) 120*16kB (C) 120*32kB (C) 120*64kB (C) 120*128kB (C) 100*256kB (C) 84*
HighMem: 1*4kB (U) 1*8kB (U) 1*16kB (U) 2*32kB (UM) 1*64kB (U) 1*128kB (U) 2*256kB (UM) 200*512kB (UM) 161*10
315887 total pagecache pages
0 pages in swap cache
Swap cache stats: add 0, delete 0, find 0/0
Free swap  = 0kB
Total swap = 0kB
1048064 pages of RAM
324434 free pages
12298 reserved pages
28396 slab pages
558866 pages shared
0 pages swap cached
smsc95xx 1-2:1.0 eth0: kevent 2 may have been dropped
swapper/0: page allocation failure: order:3, mode:0x106020
[<c0014e2c>] (unwind_backtrace+0x0/0xf4) from [<c00928c4>] (warn_alloc_failed+0xd4/0x114)
[<c00928c4>] (warn_alloc_failed+0xd4/0x114) from [<c0095910>] (__alloc_pages_nodemask+0x720/0x980)
[<c0095910>] (__alloc_pages_nodemask+0x720/0x980) from [<c0095b80>] (__get_free_pages+0x10/0x24)
[<c0095b80>] (__get_free_pages+0x10/0x24) from [<c03ead64>] (__kmalloc_reserve+0x64/0x70)
[<c03ead64>] (__kmalloc_reserve+0x64/0x70) from [<c03eadec>] (__alloc_skb+0x7c/0x144)
[<c03eadec>] (__alloc_skb+0x7c/0x144) from [<c03eb418>] (__netdev_alloc_skb+0xb8/0xe8)
[<c03eb418>] (__netdev_alloc_skb+0xb8/0xe8) from [<bf058f40>] (rx_submit+0x2c/0x204 [usbnet])
[<bf058f40>] (rx_submit+0x2c/0x204 [usbnet]) from [<bf059154>] (rx_alloc_submit+0x3c/0x98 [usbnet])
[<bf059154>] (rx_alloc_submit+0x3c/0x98 [usbnet]) from [<bf0593a4>] (usbnet_bh+0x1f4/0x268 [usbnet])
[<bf0593a4>] (usbnet_bh+0x1f4/0x268 [usbnet]) from [<c002b69c>] (tasklet_action+0x78/0x110)
[<c002b69c>] (tasklet_action+0x78/0x110) from [<c002b86c>] (__do_softirq+0xf0/0x1a8)
[<c002b86c>] (__do_softirq+0xf0/0x1a8) from [<c002bc10>] (irq_exit+0x58/0x68)
[<c002bc10>] (irq_exit+0x58/0x68) from [<c000efe0>] (handle_IRQ+0x44/0x90)
[<c000efe0>] (handle_IRQ+0x44/0x90) from [<c0008554>] (gic_handle_irq+0x38/0x68)
[<c0008554>] (gic_handle_irq+0x38/0x68) from [<c000dcc0>] (__irq_svc+0x40/0x70)
Exception stack(0xc063ff10 to 0xc063ff58)
ff00:                                     c063ff58 00001dbf 504cbebc 000006ed
ff20: 504b40bd 000006ed c16ec3f0 00000000 c06691c0 c0663c60 00000000 00000000
ff40: 00000018 c063ff58 c0059988 c038cb24 60000153 ffffffff
[<c000dcc0>] (__irq_svc+0x40/0x70) from [<c038cb24>] (cpuidle_wrap_enter+0x48/0x94)
[<c038cb24>] (cpuidle_wrap_enter+0x48/0x94) from [<c038c8c0>] (cpuidle_enter_state+0x18/0x58)
[<c038c8c0>] (cpuidle_enter_state+0x18/0x58) from [<c038c998>] (cpuidle_idle_call+0x98/0xf8)
[<c038c998>] (cpuidle_idle_call+0x98/0xf8) from [<c000f3b0>] (cpu_idle+0x9c/0xec)
[<c000f3b0>] (cpu_idle+0x9c/0xec) from [<c0614b34>] (start_kernel+0x3b8/0x3c4)
     

cast tailgunner

true_admin
()

Какая математика нужна программисту?

Форум — Development

Вот, говорят, что без знаний математики хорошим программистом не стать. Но в то же время не уточняется какую область из этой науки необходимо знать программисту. Я честно говоря по математике имел твердую «4» до 5 класса, а потом из-за препода маразматика на нее забил, ибо непонятны были ее объяснения. Вообще планирую заниматься разработкой программного обеспечения, а точнее программ для работы с веб и т. п камерами. Вот какую математику необходимо знать дискретную, комбинаторику. По совету знакомого открыл Кнута, а через 20 минут закрыл, нихрена не понял. Открыл «Дискретную математику для программистов» от Хаггарти, какие-то непонятные символы там. Вижу греческие буквы, латиницу, а их предназначение непонятно. Эх, возможно я дебил! Ладно возвращаясь к теме, какие разделы математики нужны программисту?

 , ,

kosatar
()

Lisp webframework

Форум — Web-development

Есть тут кто-нибудь, кто реально использует какой нибудь Lisp webframework (на любом диалекте лиспа)?

Хочу попробовать for fun.

 

pi11
()

Новая версия клиента Сервиса Облако@mail.ru для Linux

Форум — Desktop

Выпущена новая версия 13123001 десктопного клиента для Сервиса Облако@mail.ru Скачать можно отсюда: https://desktopcloud.cdnmail.ru/linux/amd64/cloud https://desktopcloud.cdnmail.ru/linux/i386/cloud

 ,

krivenkov
()

Программирование на С

Форум — Development

Здравствуйте мои дорогие любители погромирования. Прочитал K&R «Язык программирования Си». Теперь нужна книга, которая расскажет как правильно писать код на С, общепринятые приёмы и стандартные алгоритмы решения типичных задач. Цель: пишу быдлокод для МК и хочу повысить свой скилл.

Перемещено mono из talks

ramon13666
()

Опубликованы переводы всех глав сборника «Архитектура приложений с открытым исходным кодом»

Новости — Документация
Группа Документация

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

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

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

>>> Подробности

 , ,

vikos
()

Ищу удаленную работу системным программистом (pure C && *nix)

Форум — Job

Нежно люблю linux и чистый Си. Очень хочу связать свое светлое будущее с системным программированием (*nix kernel / C / Assembler). Дико хочу завязать с вебом (Php/JQuery - три года, жутко достало).

  • В системном программировании - новичок, опыта нет;
  • Си учил по K&R (прочел всю книгу, выполнял упражнения);
  • Gentoo - 2 года, Slackware - 1 год, вообще Linux (Desktop) - 4 года;
  • Уверенная жизнь в консоли, немного BASH, учу питон в свободное время;
  • Mercurial/Git;
  • Emacs;
  • Английский язык на уровне чтения манов;
  • Google-skill;
  • 24/7 доступность в скайпе и почте (постоянно проверяю);
  • Читаю Д.Кнута для понимания как устроен PC, начал первый том. Мне нравится;
  • Иркутск (МСК+05:00), сплю по ночам.

Сейчас пишу диплом, 5-й курс. Специальность - информационные системы. Январь-май (пока пишу диплом) готов работать на пол рабочего дня (20 часов в неделю) «за печеньки» с последующим (июнь) удаленным фултайм-трудоустройством у Вас за достойную заработную плату. Вы меня берете сейчас «на вырост», говорите какие книжки читать (все прочту во внерабочее время), даете понятные задания, я задаю глупые вопросы, выполняю ваши задания и за пять месяцев получаете готового специалиста для своей крутой компании.

Ищу работу именно системного программиста на Си. Больше всего интересует доработка ядра, написание модулей к нему. Возможно - разработка консольных (ncurses) утилит. Может быть - программирования разных железяк или embedded-систем. С очень большим интересом отношусь к ассемблеру (сейчас читаю Кнута, там «mixal») - но пока в нём почти ничего не понимаю. Также, с интересом отнесусь к работе с *BSD / Solaris.

Почта (как это сейчас модно)
echo "c29zbm92c2tpZXVnZW5lQGdtYWlsLmNvbQo=" | base64 --decode

Всем: приму любые полезные советы (в плане литературы), что следует прочитать начинающим системщикам, чтобы потом взяли на работу с головой. Ну или с руками.
Ну и вообще, любые советы.

 ,

zekka
()

Интересные технические заметки по геймдеву

Форум — Development

Кто-то знает где лучше искать качественный сабж?
Пример - DOOM 3 BFG Technical Note
http://fabiensanglard.net/doom3_documentation/index.php

 , , , ,

elrprt
()

С чего начать разработку для Андроид?

Форум — Mobile

С чего начать разработку для Андроид? Интересуют в первую очередь игры. Накидайте годных ссылок, посоветуйте на что делать ставку. Пока смотрел cocos2d-x. HTML5 Версия позволяет быстро делать прототипы на JS. Но ощущаю что не то. Хотя обычные приложения тоже интересуют. Но как я понимаю, игры пишут не на Java? C++ И прочие языки не проблема если что.

 

trashymichael
()

Что почитать для общего развития?

Форум — Talks

Уже слегка подташнивает от разнообразных манов, и вчера дочитал последний представитель худлита из запланированного. Реквестую почитать что-то из научпопа/худлита. Может быть, философию науки, но не очень глубоко. В общем, что-то отвлечься.

 , ,

cdshines
()

планировщик типа cron

Форум — Development

Интересно как бы выглядел периодический планировщик аля примитивный cron на ML-подобных ЯП?

Задача: с заданной перидичностью запускать какие-то действия. Причём у каждого действия своя переодичность выполнения.

На питоне я сделал так (можете сделать по-своему): Задачи складываются в очередь «ожидания» с приоритетом, где приоритет есть unix timestamp когда оно должно запуститься. Более срочные задачи в очереди стоят первыми.

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

На случай если новая задача должна быть выполнена быстрее всех мы обрываем текущий таймер ожидания и расчитываем новое время которое нужно спать . Т.е. рестарт таймера (самый дурацкий момент в алгоритме).

Тут есть нюанс: задача планируется только по завершению обработки. Т.е. не получится так что новый процесс проверки запуститься до того как завершаться старые.

 ,

true_admin
()