All streams
Search
Write a publication
Pull to refresh
87
0
Артемий @Sap_ru

User

Send message
«Не вышел значит не вышел. Не все драйвера включены в ядро.
А почему нет?

Есть масса железа, дравйвера которого поставляет производитель.
И кто в этом виноват?»

Повторяю — наша конторая производит некую железку — нам что теперь, требовать включения наших драйверов в ядро? А железку у нас меняется раз в пол года — рынок знаете ли — заказчики требуют. Или нам переписывать драйвера под каждый релиз?

«Да ради бога — возьмите одну конкретную версию ядра, напишите под неё драйвер и используйте. Зачем вам в этом случае поддержка всего зоопарка (Ubuntu, Fedora, etc)?»
Я не говорю о совместимости между дистрибутивами — это отделаная песня, но дистрибутивы могут отличатсья и это понятно. Я говорю несоместимости в предалх дистрибутива. Вот мы напсиали свой некий софт под Linux. Большой и сложный. Поставили заказчику систму с системой и этим софтом. Проходит год — в ядре и системе обнаружен некотрое кол-во уязвимостей и нужно обновляться. Обновляемся. Всё перестаёт работать. Т. к. изменилось ядро, изменились версии билиотек. Не обновляться? А как же безопасность? Да путём танцем с бубнами можно всё заставить работать. Но закачик не хочет нанимать программистов — ему нужно чтобы его насосы работали. Приходится высылать специалистов. В результате стоимость обслуживания сильно превышает Windows.

«А зачем они меняются? Чем отличаются бесчисленные китайские поделки сделанные на одном чипсете?»
Повторяю кроме чипсета есть множетсво устройств — от USB-камер и WiFi до промшленного железа. Все они сделаны на своих собственных чипах. Предалагете зконодательно запретить делать несовместимое железо? :) Откуда будет брать новое?

"«Любое китайское барахло» может и с Windows не заработать. Старое — не заведётся под Vista, новое — под XP. В совокупности Linux поддерживает железа строго больше, чем любая одиночная версия Windows."
Т. е. за последние 10+ лет мы имеем только один порог не соместимости? По-моему это прекрасный результат. Я же Вам говорю — возбмите любой компьютерный магазин и посмотрите, что будет работь под Линуск, а что — нет. 30% не заработает. Под Windows получаем 100% заработает.

И как можно под линукс создать аналог потока Windows? :) Не процесс, не нить, а имено поток в пределах процесса? У них разные модели многопоточности.
«И вот эти три программиста освоили те самые «три с половиной модели драйверов», написали драйвера, протестировали их с десятком конфигураций Windows (Windows XP SP2/3;Windows Vista SP1/2; Windows 2003, Windows 2008 — всё это 32bit/64bit) плюс ещё разные Hotfix'ы? »
Вот Вы когда-нибдь под Windows писали? Hot-fix'ы влияются на стабильность и безопасноть ситемы и практически не влияют на совместимость. Ниодну из написанных по WIndows программ в нашей компании не пришлось даже перекомпилировать за восемь лет. Под Линукс регулярно приходится править и пересобирать код, т. к. после очередного обновления системы выясняется что-то то не работает.
«А вот как раз в Windows — да, вам придётся либо «до гроба» заниматься его поддержкой, либо заявить что-нибудь типа «мы поддерживаем только Windows XP и Windows XP SP1»»
Нужно очень сильно постараться и очень не внимательно читать MSDN чтобы написать программу работающую ТОЛЬКО под SP1. 90% программ заработают под Win95. Для сетевых програм придётся обновить TCP/IP. 100% правильно написаных заработают под Win Nt/2k/XP. 90% заработает под Vista. Виста имеет очень не плохую обратную совместимость с XP/2k — пока что все правильно написаные прогрммы заработали и там и там. Таким образом покрываются все ОС за последний 10 лет. Драйвера достаточно писать под Win2k и Vista. Мне кажется, что Вы либо, не работали и не писали под Windows, либо сознательно искажается факты.

Не понял, «Вопрос-ответ» не может использовать в качестве упаковки дынных структыры или теги? Зачем смешиваете логику работы и представление данных? Разе в HTTP 1.1. Get+XML это не «вопрос-ответ» с тегами? Это тоже самое что говрить, что обощи бывают трёх видом — красные, круглые и вкусные.
Короче говоря трудности с терминологий и какая-то мешанина.

Тогад уж пишите, что по логике обмена протоклы бывают:
1) «ЗАпрос-ответ» (я не «ВОпрос-ответ»), кода одна из сторон обмена (ведомая/slave) может передавать данные только по запросу второй (ведущей/мастер/host). Это самый простой с точки зрения реализации тип обмена, но недостаком имеет длительное время реакции при большой кол-во аобнентов в сети (пока всех опросишь).
2) асинхроные, когда обе стороны равноправны и могут начать обмен в любой момент времени. Достоинством имеет минимальное время реакции, но необходимо решать вопросы синхронизации состояний у абонентов и коллизий при некоторых физический протоколах.
3) ВременнЫе окна (Time frames). Фактический смешаный типа, когда одна из сторон управляет обменом и может предоставлять право обмена другим абонентам и/или группам. Очень популярный тип, широко применяется при радиобмене — от GSM до WiFi. Позволяет сохранить приемлемое время реакции и не потерять возможность управления сетью. Но всё равно нужно решать проблеммы коллизий для некоторых физических уровней.

Далее протоклы подразделяются по типу синхронизации потока данных:
1) Полностью асинхронные протоклы. Целиком зависят от надёжности нижележащего уровня. При искажении данных нсами воосстановить синхронизацию не могут. Соответсвенно могут работать поверх TCP/IP, но не на обычном последовательном порту.
2) Протоколы с временнОй синхронизацией. Синхронизируются по паузам между пакетами, либо возлагают процедуру синхронизации на протоколы более низких уровней.
3) Самосинхронизирующиеся протоколы. Как правило начало каждой посылки (пакета/кадра/фрейма) обозначается специальным маркером, который не может встречаться в данных, что реализуется, обычно, при помощи т. н. байт-стафинга или бит-стафинга. В простейшем случае маркером может служить символ перевода строки. В случае ошибки в потоке данных, будет потерян один блок данных, а со следующего блока синхронизация будет восстановлена. Самая популярная группа протоколов. (Большинство промышленных протоколв).

Протоколы могут иметь контроль целостности данный и/или коррекцию ошибок или не иметь.

1) Если протокол обладается контролем целостности (обычно при помощи контрольной суммы дла каждого блока данных), то принимающая сторона может определить факт искажения данных. (IP, UDP, TCP)
2) Если протокол обладает возможностью коррекции ошибок, то ошибки и искажения данных в некоторых пределах могут быть скорректированы принимающией стороной на основании избыточной информации передавайемой совместно с данными. (Форматы записи компкат и жёстких дисков, некоторые промышленные протоколы).
3) В противном случае, протокл полнотсью полагется на нижележащий уровень и в случае искажения данных, принимающая стороная об этом не узнает (например — HTTP).

Кроме того протоколы подразделяются по типу реакции на искажение данных:
1) Протоколы без повторов передачи. Полностью полагаются на нижелижещие уровни. В случае повреждения данных, передающая стороная не узнает, что данные не приняты.
2) Требующие подтверждения протоколы. Каждая порция данных требует подтверждения от принимающией стороны. В качестве развития, подтверждаться может не один пакет, а группа (как в TCP/IP). Если подтверждение не принято или получаен сигнал, о том, что данные приняты не верно, то передача может быть пвторена повторяется (а могут быть, как в UDP, просто отброшены неправильные данные).
3) Различные смешаные варианты. Например, данные могут повторяться с некоторым интервалом, в надежде, что одна из копий будет принята правильно.

Ещё можено делить протоклы по типу установления связи:
1) Перед началом сеанса связи происходит «рукопоажатие» (handshake) во время которого стороны договариваются о способе обмена данными и о возможности начала сеанса данных. Например — USB, IP, TCP.
2) «рукопожатие» не происходит — каждая сторона сразу готова принимать и передавать данные. Например UDP и множество промышленных протоколов.

Ваше деление по типу представления даных крайне не корректно. «структуры» обязательно имеют некий маркер позволяющий определить что это за структура и что за данные в ней. Для «теговых» протоколов таким маркером является теги. Вот и всё различие. Каким образом «вопрос-ответ» может быть типом представлния данных не понятно.
«Что значит «не вышел»? Их все портировали вместе с остальным ядром. Если что-то не компируется/не работает — сообщите разработчикам, они подобные вещи быстро фиксят.»
Не вышел значит не вышел. Не все драйвера включены в ядро. Есть масса железа, дравйвера которого поставляет производитель.

«Угу. И именно поэтому железа оно поддерживает меньше, чем Linux, ресурсов ему требуется раза в два больше, а простые операции (скажем создание нити) занимают куда больше времени чем в Linux. Ну и кому эта «мощща» нужна?»
Про железо — не правда. Вы хотите скахть, что любое купленное мною китайское барахло, вроде графического планшета или сканера заработает с Linux? :) Про нити — не надо путать хрен с морковкой — нити линукса и потоки windows это соврешенно разные вещи. Моща нужна тем, кто активно использует и/или проивзодит нестандартное железо, например.
«Внутриядерный API» на пару с бинарной совместимостью и неплохим централизованым документированием позволил микрсофту иметь поддержку совершенно любого железа — любой самый китайский производитель может позволить себе написать драйвера под эту ОС. «Моделей драйверов» у Микрософт всего три (с половиной). У Линукса вообще такого понятия нет — интерфейсы нещадно правятся самым неожиданным. С драйверами и микрософта чудеса бывают, но в целом — имеется очень не плохая совместимость. Скажите, а вот если я делаю свою уникальное железо — мне тоже драйвера в ядро включать? А если я этого железа два десятка делаю? А если я не хочу код раскрывать? Давайте посмотрим сколько веб камер или USB-сетевый карт или WiFi-адаптеров из всеобщего зоопарка заработают под Linux? Включать драйвера в ядро — вообще дурная идея, желаза слишком много и они слишком активно меняется. Можно говорить о пользе поддержик некоторого базового наиболее поплуярного железа, чтобы можно было поставить система «из коробки», но не более того. У меня дома есть, как минимум десят устройств, о существовании которых, Линукс не подозревает.
Но мне кажется, что мы скатываемся к холивору на тему как я ось лучше, а вопрос вроде стоял сугубо по ядру.

Лично персонально мне кажется, что для линукса нужно было бы заморозить ядро, определиться в каком направлении будет идти развитие, определить интерфейсы, которые будут поддерживаться и не будут меняться и максимально документировать то, что есть. Вместо этого мы видим со трашной силой выходящие версии ядра, таинственным образом меняющиеся программные интерфейсы, о которых не знает никто кроме пары человек и какое-то метание от одной реализации к другой.
Живой пример — скачал я недавно новое «стабильное» ядро. Попытался собрать драйвера от VmWare. Не собралось. Стал копать — изменены некоторые стрктуры, выховы функций и т. п. Вот в яре на диницу меньше всё было, а тут — нет! Стал копать в интернете — ничего! Каким-то чудом нашёл переписку Торвальда где он упомянал, ч то не плохо было бы пару структур поменять. Заодно вообще идеологию изменить. Это прекрансно. А если я маленькая фирма разработчик джелеза? Выпустил железку. Напрягся и написал драйвер под Линукс. Мне теперь всю жизнь все ядра испытывать и драйвера под каждый релиз переписывать? При этом об изменениях я должен сам догадываться уже после выхода ядра? И о том, как теперь это все работает — лично Тордвальда спрашивать? А если штат всего десять человек из которых только три программиста? Бросить всё и заниматься непрерывным переписыванием старых драйверов? Шантажом и угрозами требовать, чтоб коре-дивелоперы включили мои драйвера в ядро и сами их правили? Или что?
Linux 64 имеет полную бинарную соместимость с 32-ой верснией? Дравера/модули ядра 32-бита грузить можно? (На случай, если драйвер 64-бита ещё не вышел). К 64-битному линуксу есть полное описание всех системых функций? Всего вдвое дольше? :)
А теперь посмотрите, как обстоит дело с бинарной совместимостью драйверов у семейства Windows. И как эти дравйвера пишутся. Да, там своих граблей полный огрод, но ядро NT, есть мнение, одной из самые перспектиынх и мощных ядер. Куда заведёт Vista не понятно, но Linux'у имело смысл взять лучшее от NT, а не упорно совершать те же ошибки, что Микрософт.
Кстати, сильный аргумент :) Но, во-первых с 1992 года технологии программировании ушли далего вперёд и сейчас мыы имеем достаточно приммернов очень сложных проектов разработаных на C++. А во вторых, я всё же имею в виду не C++, как средство разработки, а скорее, как инструмент позволяющию добиться большей структурированности и унифицированости кода. В принципе, можно и С использовать, но структура ядра должна быть объектная с жёсткой иерархией и не менее жёсткими требованиями по соместимости, в т. ч. бинарной. Хотя в целом, я всё же за C++ :)
Кстати, сильный аргумент :) Но, во-первых с 1992 года технологии программировании ушли далего вперёд и сейчас мыы имеем достаточно приммернов очень сложных проектов разработаных на C++. А во вторых, я всё же имею в виду не C++, как средство разработки, а скорее как инструмент позволяющию добиться большей структурированности и унифицированости кода. В принципе, можно и С использовать, но структура ядра должна быть объектная с жёсткой иерархией и не менее жёсткими требованиями по соместимости, в т. ч. бинарной. Хотя в целом, я всё же за C++ :)
Кстати, сильный аргумент :) Но во-первых с 1992 года технологии программировании ушли далего вперёд. А во вторых, я всё же имею ввду не C++, как средство разработки, а скорее как среду позволяющию добиться большей структурированности и унифицированости кода.
Можете пинать меня ногами, но ядром WinXP — на голову лучше. Оно конечно далеко не идеал, но гораздо более структурирвано и имеет бОльший потенциал развития.
эээ… с чего бы это C++ был медленнее чем C? Хотя, 5% потери производительности я допускаю — если не сильно связываться с оптимизация и не усложнять структуру.
Но чёрт с ним с C и C++. Вот скажите мне, дорогой товарищ, Вы не считаете ядро Linux чрезвычайно сложным, запутаным и практическине документированым?
Это только подтверждает мою точку зрения :) «в моде же уже pure functional для беспроблемного распарраллеливания», а тут 10 миллионов строк pure C :) Собственно это и есть отставание.
«нет смысла рассматривать закрытые драйвера»?! Что прикажете делать разработчикам уникального железа? Стоимость разработки совего видочипа огромна, а вот скопировать архитектуру можно очень быстро. Это во-первых. А во-вторых на уровне исходников совместимость всё равно очень и очень слабая. Для того же примера — посмотри, что есть драйвера от NVidia — там два вагона заплаток на все мыслимые версии ядер. И всё равно приходится танцевать с бубном. Это я к тому, что берём любой более-менее сложный драйвер и видим целый зоопарк. Но это только часть проблеммы.
Я же не говорю, что Линукс невозможно использовать, я имею смелость утверждать, что ядро линукса начинает отставать от современных требований. И это отставание будет увеличиваться. А причина отставания — крайняя консервативность сообщества и holywar на тему «деды наши так делали и мы будем».
Всякие вопли о том, что «на С можно написать всё, что моэно написать на C++» это сплошная профанация — на ассемблере вообще можно написать всё — так давайте всё на нём писать. Вот только сложность, проверяемость и понятность кода получаются сильно разные.
Если бы Линукс был коммерческим проектом, то ядро уже отчаяно начали модернизировать.
Гхм… WIndows? Я могу на XP запустить половину драйверов от системы десятилетней давности и 100% драйверов от системы восьмилетней давности. И это без всякой пересборки ядра или самих драйверов. На Линуксе в лучшем случае драйвера нужно пересобирать, что вызывает проблеммы у производителей не желающий открывать программынй интерфейс или архитектуру своего железа (например, производители видеокарт). В худшем — вообще ничего не работает. Живой пример — попытайтесь поставить драйвера от VMWare — с удивлением обнаружите что в ядрах отличающихся последней цифрой ревиизии чудесным образом появляются и исежазают поля структур, менябтся парметры функций и т. п. В резульате имеет монстрический код на все возможные варианты ядер, плюс полная неопределённость в будующем — с новыми ядрами драйвера просто не работают. Объектная модель ядра совместно с чем-то вроде COM кроме того, что сильно упрощает отладку и разработку модулей ядра, но и позволяет добиться крайне высокой обратной соместимости — изменения ядра производтся только путём расширения существующих интерфейсов и механизмы наследования. Ну про неизмеримо большую прозрачность и проверяемость кода я вообще молчу.
А главное, что этот код стремительно устаревает — давно нужно было переходить на C++ и объектную модель. Ядро всё сложнее, документации отстаёт всё больше, некоторые ошибки исправляются годами. Совместимость между версиями ядра достаточно слабая. Есть мнение, что ядро нужно срочно переделывать с ноля, но это никому не нужно.
Не кошерно. Вот если бы число сичталось и выводилось на стороне пользователя… С выбором кол-ва чисел…
У меня знакомый сейчас работет в региональной конторе, которая производит экпертизы и собирает доказательную базу тому самому отделу «К». Им, собственно, все эти конфискованые компьютер ыи приносят.
В целом, впечатление удручающие. На компьютерах тупо ищут установленный софт, плюс некой софтиной от ФАПСИ ищут «следы программ» в файле подкачки. Плюс ещё какой-то софтиной ищут установленные софтины в реестре. Что такое тру-крипт не знают. Линукс вообще в глаза не видели. В сложных случаях пишут какие-то мутные заключения суть которых — «невиновность не доказана». После общения с ними, я стал спать как-то спокойнее.
Кстати, эта же контора знамается сбором доказательной базы в интернете. Ищут злоумшленников на форумах и по IP. Некомпетентность редкая — найти могут только тех, кто совсем не прячется. Про анонимные прокси гле-то слышали и всех, кто ими пользуется считают злыми хакерами. Опять же пишут очень мутные и спорные заключения — «Тип используемого браузера совпадает… Использованы специальные технические знания с целью воспрепятствовать идентификации..». Короче, может быть виновен, а может быть и нет.
думал пойти туда работать, но гложут смутные предчувствия, что они не совсем, скажем так, честные и не хочется карму портить.
А молодёжи там много рабтает — работа не пыльная, зарплата не плохая. Даже интересно в чужих компьютерах компаться.
А если у нас лицензия на разработку софта? Компьютеры это у нас основные средства производства, так что никаких тетрадок и счёт :)
Кстати, тут была весьма интересная ситуация. Когда-то очень давно написал софт для безнозаправки который они успешно использую лет пять. При проверке у них стали требовать лицензию. Кончилось тем, что пришлось лично ехать и говорить. Разговор был странный. Сначала меня просили доказать, что это мой софт. Я прямо там написал расписку, что я являюсь едиственным автором программы «бла-бла» и в соотвтствии с законом об авторском и смежных правах передал права на использование программы компании «бла-бла» в хрен знает каком году. Правомерность использования программы компанией «бла-бла» подтверждаю. Притезний по нарушению авторских прав со стороны компании не имею. Дальше мы имели разговор на тему «откуда мы знаем, что вы автор». Разговор кончился тем, что «Вот расписка. Если вы мне не верите — доказывайте обратно. До тех пор — я автор». Дальше с меня стали трбовать договор с компанией на разработку софта. Кончилось тем, что «Договора не было. Сам написал — сам передал. Безвоздмезно. Имею право.» Заправщиками был откопан в аналах и предъявлен договор о монтаже и тех. поддержки заправки с неким предпренимателем хрен знает какого года.
Дальше стали давить на меня лично Начали с того, что «не верим в безвоздмезность — налоги платили? Сейчас налоговую напишем». Были отшиты тем, что «Вот с налоговой и буду разбираться. Но лично вам по-секрету скажу, что срок давности уже вышел, к тому же, если совсем приспичит — найду все необходимые документы». А вот дальше случился самый неприятный момент. Стали, опять же, давить лично и говорить «А вот мы сейчас к Вам лично поедем. Пиратский софт по-ищем. Компьютер и изымем и т. п.». Пришлось занять принципиальную позицию «А я лицо глубоко частное. Когда дело заведёте, ордер получите — тогда и приходите. И я вам торжественно обещаю, что ничего не найдёте». (На всякий случай компьютер потом на некоторое время перетащил к родителям, а ноутбук зашифровал трукриптом). Короче, от меня отстали. Контора им денег вроде дала, но сумму на порядок меньшую, чем просили в начале. Лично меня тоже вознаградили за потраченные нервы и время. Потом они эту софтину какие-то бумажки по-написали и заключили некий фиктивный договор с какой-то компанией на её поддержку.
Осадок остался очень и очень не приятный.
Есть два замечания:
перое — монтаж USB кабелей таки лучше делать обравком USB-удлинителя, а не отдельными проводами. Если USB-кабель не помещается, то лучше брать плоский шлейф — и шины данный располагать рядом, а питание по бокам. Иначе, могут быть разные чедеса.
И второе — паять антенну отдельными проводниками… Вы же даже на этих сантиметрах сильно теряете на отражениях. В идеале лучше применять тонкий (1-2 мм) СВЧ-коаксиальных кабель, но денег стоит и не все смогут достать. Но даже обычный тонкий импортный коаксиал будет намного лучше!!! Если совсем ничего нет, то опять же 2 мм шлейф будет лучше.
Согласен. Это относится только к 13% налогу.
Может объясниетемне глупому, как у них всё же 54% получается? Во-первых, я так понимаю, что они дважды удерживают (фактически с клиента) 9% за «пользование ПО». Во-вторых, они дополнительно берут 24% коммисни (Формально её берёт ЦОП, но я не в жисть не поврею что ЦОП не является дочкой sape — т. е. доход получает таки sape). И ещё, я не могу понять — они проценты, что от полной суммы (крое НДФЛ) на каждом этапе вычисляют? Если да, то это означает, что у них там общая бухглатерия, и они все это 9%+9%+24% вообще какой-то лохотрон.
Т. е. Вы соврешенно не против того, что Выши паспортные данные раздавали на лево и на право? Или, что с Вас будут брать 24% под весьма странным предлогом? По-моему это есть, как минимум редкостное свинство и не уважение к клиентам.

Information

Rating
5,409-th
Location
США
Date of birth
Registered
Activity