LINUX.ORG.RU
ФорумTalks

[оффтопик] ШТАБИЛЬНОЕ АПИ

 


0

3

Вопрос: почему далеко не все драйвера для Vista нормально работают в 7, а так же далеко не все драйвера для 7 нормально работают в 2008 Server? Видать не такое уж и «стабильное» там Kernel API, ага?

Deleted
Ответ на: комментарий от yoghurt

где парнишка с pthreads хотел выполнить произвольную функцию в контексте другого, запущенного потока (ессно без изменения кода самого потока). И что ему наотвечали? «Нененне, ты хочешь странного, так оно не умеет». А вот ВИНДА УМЕЕТ!

Всё верно. Самые лучшие вирмейкеры рекомендуют Microsoft Windows (tm)(r)(c): «На вашей Windows наши продукты не будут глючить и выполнят свои функции».

no-dashi ★★★★★
()
Ответ на: комментарий от yoghurt

> Вот, например, относительно недавно был топик в девелопменте, где парнишка с pthreads хотел выполнить произвольную функцию в контексте другого, запущенного потока (ессно без изменения кода самого потока). И что ему наотвечали? «Нененне, ты хочешь странного, так оно не умеет»

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

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

>Если проверка версии отключена, большинство модулей с большой вероятностью загрузятся.

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

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

Ygor ★★★★★
()

Пайшдём к нам Люк, нашладись нашей швабодкой!

darkshvein ☆☆
()

>Видать не такое уж и «стабильное» там Kernel API, ага?

А ты не знал?

DNA_Seq ★★☆☆☆
()

Vista/7 и 2008 — разные, не вполне совместимые ветки. Особенно с точки зрения драйверов.

Если программа работает в Висте, но не в 7, это значит ошибки в программе взаимно компенсируются с глюками Висты.

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

> Другой компилятор, другая libc, другая версия ядра --- если что-нибудь одно из этого разное --- это полная гарантия того, что загрузить модуль не удастся.

libc? в ядерном модуле?

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

А зачем такое надо кроме вирусов/антивирусов? Приведите хоть один пример такой задачи.

А то так ещё можно сказать «ОС Васи Пупкина круче всех этих ваших линусков с виндой - ведь она позволяет стандартными средствами любому удалённому компьютеру выполнить любую команду на компьютере, где установлена. А ваши линуксы такое не умеют!».

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

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

Ну так расскажи нам, что же там такое.

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

Use-case замечательным образом не объяснен, только общий трёп. Приведи реальным пример дизайна, когда это нужно.

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

Зачем на винде аналог fork? Аналогом связки fork/exec есть CreateProcess, а когда нужен просто один fork, скажем, для каждого клиента при обслуживании сервером, тут только санитары помогут.

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

Два вида юзер-мод скейдулинга, апи пула потоков и дохрена ещё :) Дальше уж сам читай

Пулов потоков и без WinAPI хоть ж*пой жуй. А юзать пока у людей XP всё равно нельзя.

UMS - в данном случае не имеет принципиально ничего интересного и, судя по описанию, без проблем пишется в user-space в любой ОС.

Что еще (мне делать больше нечего, чем рыться в MSDN)?

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

>Я тоже так думал, когда, ещё школьником, его изучал. Но спустя 7 (!) лет на меня снизошло просветление!

Сорок лет ушло у него на то, чтобы понять, какая улыбка прячется в черных усах. О жестокая, ненужная размолвка! О упрямый, своенравный беглец, оторвавшийся от любящей груди! Две сдобренные джином слезы прокатились по крыльям носа. Но все хорошо, теперь все хорошо, борьба закончилась. Он одержал над собой победу. Он любил Старшего Брата. ©

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от Pavval

>Пулов потоков и без WinAPI хоть ж*пой жуй.

Лишние левые зависимости.

А юзать пока у людей XP всё равно нельзя.

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

UMS - в данном случае не имеет принципиально ничего интересного и, судя по описанию, без проблем пишется в user-space в любой ОС.

Ага, только в «любой ОС» его надо ещё написать, со всякими плясками и swapcontext-ом, а тут оно уже готовое, протестированное и отлаженное.

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

Вот. Сделать что-то подобное на винде нельзя :) Ч.т.д.

Теперь: что дает столь извращенный CreateProcess с кучей параметров, чего не может дать простой fork/exec?

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

>Вот. Сделать что-то подобное на винде нельзя :)

Клонировать текущий процесс с его контекстом? И слава Б-гу, что нельзя (если действительно нельзя).

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

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

weblogs.asp.net/kennykerr/archive/2007/12/11/parallel-programming-with-c-a-new-s...

специально для тебя нагуглил

Спасибо, теперь хорошо вижу что это. Это тупое message queue и ничего больше.

Новый SleepEx(INFINITE, TRUE) - это просто WaitForSingleObject(hMsgQueueб INFINITE)+обработка RPC и не более. MsgWaitForMultipleObjectsEx - туда же, только +1 хэнд ждет.

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

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

Пулов потоков и без WinAPI хоть ж*пой жуй.

Лишние левые зависимости.

Да он велосипедится за час и потом реюзается всю жизнь - о чем речь?

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

А ну-ка дай статистику по версиям винды у юзверей.

Ага, только в «любой ОС» его надо ещё написать, со всякими плясками и swapcontext-ом, а тут оно уже готовое, протестированное и отлаженное.

Какой swapcontext, когда тут U-тред сам вызывает Yield??? Тут же вытеснения нет (если я правильно понял).

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

Это таки не совсем message queue - оно-то там было всю жизнь

Я знаю, что оно там было. Вот только чем APC отличается от того, что я описал?

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

>А ну-ка дай статистику по версиям винды у юзверей.

http://upload.wikimedia.org/wikipedia/commons/b/b5/Operating_system_usage_sha...

>Да он велосипедится за час и потом реюзается всю жизнь - о чем речь?

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

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

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

Да, вот только для того, чтобы любой, кто пользовался ХР, мог использовать топор, мало купить на него лицензию. Ещё есть большая вероятность, что потребуется замена оборудования.

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от yoghurt

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

Легко и непринуждённо. За час не факт, но за день запросто.

no-dashi ★★★★★
()
Ответ на: комментарий от Ttt

>Да, вот только для того, чтобы любой, кто пользовался ХР, мог использовать топор, мало купить на него лицензию. Ещё есть большая вероятность, что потребуется замена оборудования.

Боюсь, что пользователям 10летнего оборудования ничего не поможет. Даже под XP они не могут использовать более-менее современный софт.

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

Ну почему я же могу на на десятилетнем компьютере с Linux использовать свежий софт. Если ресурсов не хватает — это другое дело (но кроме игр и профессионального софта, например, для работы с графикой и звуком, практически любая программа кое-как будет работать на десятилетнем железе). Но вот если их хватило бы, но программа не запустится из-за того, что требует новую ОС, а новая ОС требует нового железа из-за свистоперделок и из-за того, что драйверов нет (старые не подходят, а переписывать под новую ОС производитель не хочет и другим не даёт) — то это как раз и есть банальное рабство, и это плохо.

Кстати, в том тексте «Stable API nonsence» предлагается, чтобы разработчики драйверов добавляли их в основную ветку ядра, и тогда при поломке API его сразу же будут править. А что предлагает Microsoft? Вроде ничего хорошего. Драйверы им на подпись нести надо (причём, подозреваю, они это делают не за спасибо), а в актуальном состоянии надо поддерживать самому (и опять же, каждую новую версию нести на подпись).

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

И, кстати, оборудование, которая не поддерживает, может быть периферийным, и оно никак не будет в плане ресурсов влиять на то, заработает ли новая программа или нет.

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

>Ну почему я же могу на на десятилетнем компьютере с Linux использовать свежий софт.

Не можешь. Потому, что упрёшься в RAM. А в современном линуксе с этим хуже, чем в винде.

А что предлагает Microsoft? Вроде ничего хорошего. Драйверы им на подпись нести надо (причём, подозреваю, они это делают не за спасибо), а в актуальном состоянии надо поддерживать самому (и опять же, каждую новую версию нести на подпись).

А что предлагает Microsoft? Да всего лишь драйверы от висты подходят к моей windows 8. Сущий пустяк. Сколько ядер, кстати, за это время вышло?

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

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

>Не можешь. Потому, что упрёшься в RAM. А в современном линуксе с этим хуже, чем в винде.

Ну так запускаю же. Современный браузер более-менее нормально работает на железке десятилетней давности. Тормоза, в основном, только из-за флеша.

А что предлагает Microsoft? Да всего лишь драйверы от висты подходят к моей windows 8. Сущий пустяк.

Если бы все подходили, то не было бы этой темы. И Windows 8 не твоя. Или ты Стенька Дворкин или Билли?

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от x3al

>Десятилетнее железо хуже современных нетбуков/неттопов при том, что потребляет энергии гораздо больше.

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

Ttt ☆☆☆☆☆
()

А почему еще никто не написал, что ТС путает API и ABI? Или я не заметил? С перекомпиляцией думаю 95% драйверов заработает, если не 99%

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

А чему тогда разговоры, что не ставится от висты на 7ку? Перекомпилит производитель с семерочным ДДК и поставится.

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

При нестабильном API оно может тупо неперекомпилиться. А со стабильным должно компилится. думаю 95% в венде есть. Скорее всего процентов 90 драйверов от win2000 перекомпилится, просто производители болт положили на это дело

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

При нестабильном API оно может тупо неперекомпилиться.

А может перекомпилиться, но не заработать.

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