LINUX.ORG.RU

Статическая компиляция

 , harmful.cat-v.org,


1

5

Статическая компиляция — это отлично, посоны.

1) Это решение dependency hell раз и навсегда, абзац.
2) Компилятор Go умеет автоматически скачивать и вкомпиливать либы с шитхаба, например. Это значит, что не надо будет думать: «а будет ли эта либа в {{.distro_name}}?»

А проблема памяти и жесткого диска давно уже не стоит. Во-первых, тот же Go вкомпиливает в бинарник не всю либу, а только необходимые функции; а во-вторых, с терабайтными винтами как может быть жалко пары лишних мегабайт?

Дискасс.

Ответ на: комментарий от Falcon-peregrinus

Пофиксили сразу, как обнаружили косяк.

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

Уже можно выходить в сеть без антивируса?

А что, было нельзя? Pornuha.exe просила её запустить?

anonymous
()
Ответ на: комментарий от anonymous

Не путай «сразу, как обнаружили косяк» и «сразу, как мейнтейнеры обнаружили косяк».

Сразу, как обнаружили косяк и зарепортили его мейнтейнерам. Или они сами, не вникал в тонкости. Суть от этого не меняется. Debian - увидели баг, починили его. Windows - увидели баг, подумали, подумали, прошло несколько месяцев, до бага дорвались энтузиасты, много чего поломали, публично выложили на хабре, поломали ещё много чего, включая винды Баллмера и Гейтса, починили баг.

Falcon-peregrinus ★★★★★
()
Ответ на: комментарий от anonymous

А что, было нельзя?

Если понимание ситуации есть, а также соблюдать некоторые меры безопасности - вроде можно было. Да только ведь у «пользователя» ничего такого нет. А вот Linux можно дать человеку и ничего не бояться.

Хотя учитывая, как «ломают» всякие андроиды, скоро такие вещи как эксплойты будут вообще не нужны - достаточно банального фишинга. А Ubuntu с click-пакетами приведёт это и в Linux.

Falcon-peregrinus ★★★★★
()
Ответ на: комментарий от Falcon-peregrinus

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

И ты конечно можешь предоставить ссылку на ХАБР, где написано о БАГЕ ВИНДЫ, до которого энтузиасты УСПЕЛИ дорваться и много чего поломать? А если этот баг будет связан с сабжем, с меня пиво.

anonymous
()
Ответ на: комментарий от Falcon-peregrinus

А вот Linux можно дать человеку и ничего не бояться.

Написал бы честно: Если у вас нету тёщи флеша, то вам его и не поломать.

anonymous
()
Ответ на: комментарий от anonymous

http://habrahabr.ru/post/179543/

Рекомендую также пройти по ссылке после названия (http://habrahabr.ru/post/179861/). И учитывать, сколько времени было оригинальной статье. Тут, конечно, не годы, но - три с половиной месяца есть.

Дальше - не совсем Windows, но от Microsoft. Офигительная дыра в Skype - http://habrahabr.ru/post/158545/ .

И это те, которые я навскидку вспомнил.

Falcon-peregrinus ★★★★★
()
Ответ на: комментарий от Falcon-peregrinus

То, что я указал - не серьёзно, да?

Скайп - серьёзно, но скайп и винду пишут разные люди. Багой с блускрином никакие энтузиасты ничего кроме собственных локалхостов не поломали. Ей не шибко-то поломешь. Так что не серьёзно, да. Линуксовая usb-бага гораздо интереснее.

anonymous
()
Ответ на: комментарий от anonymous

Линуксовая usb-бага гораздо интереснее.

Судя по прочитанному - там даже PoC нету.

Багой с блускрином никакие энтузиасты ничего кроме собственных локалхостов не поломали

Ну, в Linux тоже уязвимости бывает. Только их чинят, и как можно скорее. Посему вреда они не наносят.

Falcon-peregrinus ★★★★★
()
Последнее исправление: Falcon-peregrinus (всего исправлений: 1)

Пожалуй расскажу о своих буйных фантазиях о статической конпеляции. Линаксу нужен подход PCBSD в такой ситуации, то есть система отдельно, пользовательские утилиты отдельно, ABI не ломается, да и статически слинкованный сервер ашттпд работает быстрее динамически слинкованного. Вот думается мне Бубунта со своими уанклик пакетами пошла по хорошей дорожке, проторенной макосикс и псбсд и у нее большое будущее.

anonymous
()
Ответ на: комментарий от Falcon-peregrinus

Ну, в Linux тоже уязвимости бывает. Только их чинят, и как можно скорее. Посему вреда они не наносят.

Особенно 12309.

Я тебе открою секрет: Если бы в винде вовремя не чинили баги, линукса уже было бы 90%.

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

anonymous
()
Ответ на: комментарий от anonymous

Да вам с такими познаниями в маркетинг надо было идти анон, сейчас бы на техподдержке линакса большие баблосы бы зашибали :)

anonymous
()
Ответ на: комментарий от tailgunner

А я говорю, что максимум ускорения - единицы процентов

Ну... если больше 25% для тебя это единицы, тогда уж ладно, спорить не буду.

root@debian:~/ttt# cat test.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>

main (int argc, char *argv[])
{
  unsigned int start, stop, calls, len;
  char *str;
  struct timeval t0, t1;

  start = (unsigned) atoi (argv[1]);
  stop = (unsigned) atoi (argv[2]);
  str = argv[3];
  
  calls = stop - start;
  


  gettimeofday (&t0, NULL);

  for (len=0; start < stop; start++)
  {
    len = len + strlen(str);   
  }
  gettimeofday (&t1, NULL);

  printf ("Did %u calls in %.7g seconds\n", calls, t1.tv_sec - t0.tv_sec + 1E-6 * (t1.tv_usec - t0.tv_usec));

}
root@debian:~/ttt# gcc test.c -o test -fno-builtin -O2 -static
root@debian:~/ttt# ./test 1 100000000 a
Did 99999999 calls in 3.533357 seconds
root@debian:~/ttt# gcc test.c -o test -fno-builtin -O2        
root@debian:~/ttt# ./test 1 100000000 a
Did 99999999 calls in 4.45794 seconds
root@debian:~/ttt# 

Это на ARM-e. (Marvell Kirkwood на 1200Mhz)

На Интеле(Sandy Bridge), справедливости ради отмечу, цифры, конечно, другие.

dvl36
()
Ответ на: комментарий от SAA

очередная фаза цикла «язык часть мира .... язык (весь) мир»

qulinxao ★★☆
()
Ответ на: комментарий от Falcon-peregrinus

«дин линковка» принуманна раньше ибо это библиотеки перфокарт .

дин. линковке предшествовала написание вообще без каких либо библиотек - т.е одна большая программа так или иначе «декомпозированая» на вычислительные блоки.

вообще динамическая VS статическая (в разрезе линковки) это вопрос на каком этапе разыменовывать имена функций из «чужих» библиотек

qulinxao ★★☆
()
Ответ на: комментарий от anonymous

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

а вот для экономии это да.....

qulinxao ★★☆
()
Ответ на: комментарий от dvl36

Ну... если больше 25% для тебя это единицы, тогда уж ладно, спорить не буду.

Посмотри, не инлайнит ли компилятор вызов.

На Интеле(Sandy Bridge), справедливости ради отмечу, цифры, конечно, другие.

Добавь к этому, что strlen вообще плохой пример.

Кстати, ARMv5 - это же какое-то невообразимое старье, не?

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Посмотри, не инлайнит ли компилятор вызов.

Не не инлайнит.

    81e0:       e1a06001        mov     r6, r1
    81e4:       eb002fa5        bl      14080 <strlen>
    81e8:       e5da9000        ldrb    r9, [sl]
И с чего бы ему вдруг инлайнить?

Добавь к этому, что strlen вообще плохой пример.

Бывает и хуже. ;)

Кстати, ARMv5 - это же какое-то невообразимое старье

ARMv5 - система команд. Да, не новая. Но debian armel собран вообще под ARMv4.

На Kirkwood-е этот код исполняется в 3.5 раза медленнее чем на Sandy Bridge на той же частоте. Не такой уж и «тормоз».

dvl36
()
Ответ на: комментарий от dvl36

strlen вообще плохой пример.

Бывает и хуже. ;)

Бывают, конечно. А бывают и лучше, и вопрос в том, каково соотношение между «плохими» и «хорошими».

ARMv5 - система команд. Да, не новая

Ну, архитектура коры наверняка тоже не новая. В общем, любопытно, но не показательно.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

вопрос в том, каково соотношение между «плохими» и «хорошими».

Как обычно, зависит от реализации. А пример,можно сказать, вполне жизненный. ;)

Ну, архитектура коры наверняка тоже не новая.

Проприаторная, не новая, близка по быстродействию к Cortex A8.

В общем, любопытно, но не показательно.

Нормально, нормально. ;) Собственно то, что оверхед вызова, при динамической линковке, может быть достаточно большим, я показал.

dvl36
()
Ответ на: комментарий от dvl36

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

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

tailgunner ★★★★★
()
Ответ на: комментарий от Aruifas

Быстр

Ага, как ява=)

прост

Скорее примитивен. Ничего не умеет. Мне не хватает, как минимум, полиморфных типов(дженериков/шаблонов).

удобная многопоточность

Одна из возможных реализаций. Ничего нового, я так часто писал, как на основе сопрограмм, так и на основе тредов. Тоже каналы и пр. делал.

автоматическое управление памятью

Ну все несистемные языки просто обязаны это уметь. Да и в системных оно должно быть. Опционально.

не прожорлив.

Это фантазии уже. ИМХО, они вообще зря заикались о C/C++. Не тянут.

anonymous
()
Ответ на: комментарий от anonymous

Ну во-первых, 500гигов(что так мало-то?) нужны для контента, а не для сраных программок. А во-вторых, про ssd не надо забывать.

anonymous
()
Ответ на: комментарий от anonymous

Динамическая линковка - это костыль для экономии байтов.

Это пайк тебе рассказал? Это глупость. Динамические библиотеки для обновления, багфиксов и пр.

anonymous
()
Ответ на: комментарий от rogvold

Они переписывают все на go

Что, например?

от прироста скорости

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

Разве что если с питоном сравнивать.

anonymous
()
Ответ на: комментарий от anonymous

Ага, как ява=)

ява быстра, пока памяти хватает, не С/С++, может быть, но для большинства десктопных приложений хватит.

Ничего нового

О новизне речи не было.

Это фантазии уже.

Пямяти ест немногим более С/С++. пример

Aruifas
()
Ответ на: комментарий от Aruifas

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

anonymous
()
Ответ на: комментарий от anonymous

Удобна, если все программы нормально работают с последней версией либы, а если нет, в чем удобство?

Aruifas
()
Ответ на: комментарий от KivApple

Нормальные программисты должны экономить мегабайты даже с терабайтным винтом и десятком гигов оперативной памяти. И с сотней тоже. Просто потому что так надо.

Кому так надо? :)

ovk48 ★★★
()
12 мая 2015 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.