LINUX.ORG.RU

Ужасные предсказания от Линуса Торвальдса


0

0

Linus Torvalds, Linux's chief kernel hacker, вчера сказал, что по
мнению его самого Windows обречен и это уже будет очевидно
в конце этого года.
Многие компании, делающие ставки на Windows, потерпят к концу 2001
года если не полное фиаско, то ощутимые поражения.
Основные моменты в развитии Windows в 2001 году:
- вялые темпы роста
- падение интереса к ОС с закрытым исходным кодом
- острое падение фондовой стоимости Microsoft и Windows-related-компаний.
История, конечно, рассудит. Благо ждать придется недолго.
Однако, тенденция таковая присутствует уже сейчас.
Windows-компании теряют деньги, Microsoft начинает нечеcнтую игру,
что вызывает смех у здравомыслящих людей и подрывает свой авторитет,
а в то время добрый дядя IBM бухает целый милиард вечнозеленых дохлых
президентов в Linux и надеется уже в 2002 году извлекать первую
прибыль от этого миллиарда.

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

anonymous

Проверено:

2Ирси. Вопрос был не Вам, кажется?
Но если Вы настаиваете, то вношу поправку: современной архетектуры общего назначения.

ShadowJack
()

2ShadowJack: изначально вопрос стоял иначе...:) На него и ответил...:)

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

2Ogr:
Wow!
ВЫ МНЕ говорите -- "Спасибо!"

Это был
Искренне Ваш,
Flawer
;)

P.S.
Честное слово, не подписывался просто из принципа --
хоть и нравится мне местная тусовка, но политика регистрации...
Я -- против!

anonymous
()

2Flawer: когда человек прав - он прав :)

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

2bluesman: www.ivrix.org.il Иврит, в отличие от катаканы и канджи, имеет 2 разных направления - логический и visual.

omerm
()

Господа програмисты и прочие. Надо, надо стандарты читать, и
если уж на то пошло, то и Ogra слушать, когда правду говорит.

Итак, Страшная Тайна(тм):

аддресс длжен помещатся в long. больше он никому ничего не должен.

8 bit называчтся octet.



omerm
()

А почему тогда во всех RFC упоминаются именно байты, а не октеты?

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

> аддресс длжен помещатся в long.

Ссылочку, pls...

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

2Ogr: >Потрудитесь почитать литературу прежде чем глупости говорить. >Точного пределения не помню, но грубо говоря байт это то наименьшая >величина которая умесчается в регистр. И если у Вас есть регистр 48 >бит длинной (была такая машина), то байт будет соотвественно такого >размера. А то что он 8 бит в PC всего лишь особенности арзитектуры Загляните в limits.h (согласно ANSI): #define BITS_PER_BYTE 8 Led.

anonymous
()

2Led: "Загляните в limits.h (согласно ANSI): #define BITS_PER_BYTE 8 Led"
Я не знаю из поставки какого компилятора Вы взяли эту величину (конечно я знаю, что вы смотрели в gcc), но вот догадатся почему она была забита как #define Вы не смогли. В качестве намека: для какой плтаформы установленный у Вас gcc.
PS кажется уже и ссылку давали...

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

2Ogr:
>Я не знаю из поставки какого компилятора Вы взяли эту величину
>конечно я знаю, что вы смотрели в gcc), но вот догадатся почему она
>была забита как #define Вы не смогли

Да нет, не в gcc. Посмотрел в книжке Джорджа Лукаса (в то время -
сотрудник AT&T, так что он не линуксоид)

Led

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

2Ogr:
Извините, ошибся: не Джордж, а Пол Лукас :). А книжка издана в AT&T
Bell Laboratories.

Led.

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

2Ogr:
Еще одно уточнение (что-то с памятью :)): там написано
#define CHAR_BIT 8

Led.

anonymous
()

2Led: "Да нет, не в gcc. Посмотрел в книжке Лукаса (в то время - сотрудник AT&T, так что он не линуксоид) "
Меня это не удивляет, т.к. человек знал, что на разных платформах эта велчиниа может быть разной, поэтому там ис тоит #define и наверняка несколько строчек выше написано #ifdef ATT_HARDWARE.

Ogr
()

Народ, ну Вы ей богу как дети малые. БГ ведь тоже людь, и его уважать тоже надо, хотя бы за то, что он ввел некую стандартизацию в плане графического интерфейса, да и не только. Ведь благодаря его MSDOS на рынке впервые появилась нормальная совместимость компьютеров разных производителей... ну вобщем кому интересно - почитайте о нем по-больше прежде чем полоскать его в помоях. Я сам стороник UNIX-систем, но никогда не стану унижаться подобно Вам, поскольку Вы выглядите как дети, а иногда - как настоящие ЛАМЕРЫ!!! За грубость получите грубость. С.у. Тарас halturin@udmnet.ru

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

>В писюках вы не можете эффективно оперировать с числами менее чем 8 >бит длиной.
Кто тебе такую чушь сказал? ;-)

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

2 Org:
>Точного пределения не помню, но грубо говоря байт это то наименьшая
>величина которая умесчается в регистр.
Нет. По современному определению байт - это минимальный адресуемый
кусок информации ;-) А по-твоему 1 бит в регистр не поместится??? ;-))

kod
()

2 kod: Ну сложите, вычтите, умножьте, сравните мне, скажем трехбитовые данные. Только сделайте это без ухищрений, эффективно, так, как вы бы это сделали с данными разрядности 8, 16 и 32 бита. :0)

Bluesman

anonymous
()

2 kod: В регистр можно поместить не менее одного байта. Вы можете использовать из этого одного байта один бит, но меньше байта вы в регистр записать не можете физически. Вот о чем шла речь. :0)

Bluesman

anonymous
()

Во-первых, не надо писать БГ. Прозвище "БГ" давно забито за существенно более талантливым и уважаемым человеком. <p> Во-вторых, стандартизация ГИ - это ночной кошмар Виллигейца. Не зря же он не стал употреблять действительно СТАНДАРТНЫЙ Motif вкупе с Xwindows. <p> В-третьих, совместимость дешевых железок появилась тогда, когда IBM сделало персоналку по открыттым спецификациям и назвало ее IBM PC. MSDOS тут вообще ни при чем. Да и то сказать, лучше б такой "совместимости" не было - один только интерфейс IDE сколько крови всем попортил и еще портит, хотя SCSI по себестоимости такой же, а уж совместимее и стандартнее не сосчитать во сколько раз. <p> В-четвертых, по большому счету, НИКОМУ не интересно, кто такой вообще этот Гейц. Ну, денег нахапал. И что. ( Кстати, писать "побольше" через дефис - это что, MS Word подсказал? )Так что, не обижайся, Тарас, но это именно твоя восторженность и твоя обида за великого жулика выглядит по-детски наивно. <p> И в-пятых, ау, админ! Когда на этой доске нормальные "баны" введут, задолбало уже читать весь этот мусор о "гении всех времен и народов, сделавших всех умных людей, что жили до него, как сынков, с 60 миллиардами и пальцами во все стороны света"?

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

2Ogr:
>поэтому там ис тоит #define и наверняка несколько строчек выше
>написано #ifdef ATT_HARDWARE

Да нихрена там не написано! Чем кидатся словами наподобие "наверняка" не проще ли самому посмотреть - неужто нету ни одного компилятора у
вас на машине? limits.h есть и в Borland C++, и в Visual C++.

Led.

anonymous
()

2anonimous а также 2ShadowJack:


> А почему тогда во всех RFC упоминаются именно байты, а не октеты?

Из стандарта C99 FDR:
3.4
[#1] byte
addressable unit of data storage large enough to hold any
member of the basic character set of the execution
environment

[#2] NOTE 1 It is possible to express the address of each
individual byte of an object uniquely.

[#3] NOTE 2 A byte is composed of a contiguous sequence of
bits, the number of which is implementation-defined. The
least significant bit is called the low-order bit; the most
significant bit is called the high-order bit.

Комментарий:

Нигде не указана длинна, или размер byte. byte может быть 9 10 или 16 бит.
Трбования к byte: возможность аддресации и достаточность для репрезентации
алфавита. Также требуется слитнисть битов (для бит-вкторов).

Далее:

6.3.2.3 Pointers
...
[#5] An integer may be converted to any pointer type. The
result is implementation-defined, might not be properly
aligned, and might not point to an entity of the referenced
type.47)

[#6] Any pointer type may be converted to an integer type;
the result is implementation-defined. If the result cannot
be represented in the integer type, the behavior is
undefined. The result need not be in the range of values of
any integer type.

Комментарий:
поинтер (аддресс) может быть приведен к топу int.
Однако он может не поместиться в int.

> > аддресс длжен помещатся в long.

> Ссылочку, pls..

C99 FDR. искать в google.

omerm
()

2omerm:

> Из стандарта C99 FDR
Что это за стандарт, нельзя ли подробнее? Разработка ANSI ?

> Комментарий:
> поинтер (аддресс) может быть приведен к топу int.
> Однако он может не поместиться в int.
Из того, что Вы привели, это НИКАК не следует. Более того,
> The result need not be in the range of values of
> any integer type
при известной фантазии :) может быть отнесено и к longу (он же тоже
в известной степени подходит под "any integer type", а иначе
что значит "any"?).

Далее,
> may be converted
Да ради бога, меньше всего меня интересует проблема преобразования
pointer <-> integer! Меня интересует, куда поместится РАЗНОСТЬ
pointerов, вернее, какой тип она имеет? Что об этом говорят
стандарты?


> > > аддресс длжен помещатся в long.
> > Ссылочку, pls..
> C99 FDR. искать в google.
Классная ссылка!!!
Искал, не нашел...
В основном, типа
"a flight data recorder (FDR). ...
manual for the C99 airliner provided the ...
Flight Operations Manual"

Но стандарт такой, действительно, есть:
* Long long datatype in accordance with ANSI/C99 standards

anonymous
()

Я конечно может не совсем в тему скажу
1. Воровство ПО это не проблема конечного пользователя √ это проблема тех кто его ворует, в данном случае пиратов. К. пользователь все равно платит деньги за ворованное ПО, но платит не разработчику, а пиратам! ⌠Съездил на горбушку и копил Mandrake 7.x■ √ тогда если основываться ваших принципов то это тоже воровство!!! ⌠Обычно MS релизы пиратами скачиваются с MSDN■
2. По поводу ⌠дружественного интерфейса :)■... Удобный интерфейс не значит для ламеров, потому что профессионал сначала сделает удобною рабочею среду себе, а потом приступит за работу, а не будет из*******, как некоторые! :)
3. В мире линукс за 6 лет почти ничего не изменилось, кроме красивых окошек
4. То что линух не падает √ брехня. Иксы у меня летели по 4 раза на дню, а менять разрешение и цветность налету нам видимо не дано! А просто ядро и в виндах не падет.
5. По поводу поддержки оборудвания я даже говорить не буду. Скажу только одно со скази работа √ это не работа, проще дос научить :) И очень интересное высказывание у некоторых, если у тебя что-то из хардваре (именно в линухе) не работает, то это у тебя кривые руки и это твои проблемы. ⌠Напиши драйвер сам, благо ⌠опенсоурце■■ √ а из вас кто-нибудь драйвер себе сам писал в такой ситуации??? Из такой ситуации можно сделать вывод: ⌠ПОКУПАЙ ЖЕЛЕЗО ПОД СВОЮ ОС■
6. Про сказку что линух занимет меньше виндов говорить не надо, если добавить ГУИ интерфейс ко всем программам будет тоже самое, если не больше...
P.S. Могу сказать только одно, что от линуха я ушел уже год назад, и об этом не желею.!!! Ша у меня стоит W2K Server и я вполне им доволен...
Gera IS gera-is@mail.ru

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

Gera! При всем моем к тебе априорном уважении, ты действительно не в тему и не разобравшись.

Базарить в стиле "чет вы какие-то дураки, что винду себе еще не своровали" - только позориться... не стыдно?

PS Ушел и иди себе (к Виллигейцу ;-)), чего возмущаться-то? Все равно никто не прибежит и не сделает всем халявщикам "линукс КАК ВИНДЫ и ЗАДАРОМ". Как сказал поэт (Никольский) - "..дай Боже счастья им - пускай они пьют воду из-под крана..."

Stork
()

Я, может, ламер... Но объясните принципиальную разницу между указателем и разностью указателей. К тому же: пусть у меня указатель 4 байта. Вычтем из него 0. Что получим? Те же 4 байта. Короче, просветите убогого :))

Eldhenn
()

2Eldhenn: В реальности адрес и long имеют один и тот же размер, в стандерте об этом прямо не говорится, но если вспомнить, что разница указателей есть целое число, то это утверждение будет не далеко от истины, хотя в тоже время ни кто не гарантирует что long* и long будут иметь одинаковый размер. Мне кажется этот вопрос они оставили на усмотрение писателей компиляторов.

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

2Ogr
> В реальности адрес и long имеют один и тот же размер, в стандерте
> об этом прямо не говорится
Это точно, что нигде об этом не говориться?

В архитектуре Cray (светлая ему память!) было принято делать
long в два раза толще pointerа, если не ошибаюсь.

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

2Eldhenn
Тип pointer это поинтер, а разность pointerов -- целое.
Вспомните DOS его с сегментированными указателями!
Там pointer, фактически, был структурой из двух int.

anonymous
()

2anonymous (*) (2001-02-14 23:27:22.0): "> В реальности адрес и long имеют один и тот же размер, в стандерте
> об этом прямо не говорится
Это точно, что нигде об этом не говориться? "

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

Ogr
()

И всё же я что-то не понял.
{
int i=1;
char *P=(char*)i;
}
Здесь что работает - pointer или какая-то гипотетическая разность?

Eldhenn
()

2Eldhenn: Здесь работают мозги программиста, т.к. кастинг лежит целиком и полностью на его совести.

Ogr
()

Дело не в предсказаниях а втом, что МS действительно работает начисто

Начато новое антимонопольное дело против Microsoft
15 февраля 2001 г.
[www.netoscope.ru] По сообщению сайта CNet News, компанию Microsoft продолжают преследовать антимонопольные органы США. Новое расследование, начатое министерством юстиции США, касается инвестиций Microsoft в компанию Corel.

Три недели назад Microsoft получила повестку от министерства юстиции, в которой корпорации предписывается предоставить все внутренние документы, касающиеся соглашения с компанией Corel. Представители корпорации заявили, что правительство получит все необходимые документы в предписанные сроки.

Соглашение с компанией Corel было заключено в октябре прошлого года. Корпорация Microsoft купила 24 миллиона акций своего младшего конкурента за 135 миллионов долларов. Также две компании заключили альянс, который предполагает совместную работу на базе NET-платформы Microsoft. Компания Corel разрабатывает новые версии текстового редактора WordPerfect и других своих программ для NET-платформы Microsoft.

Одной из причин причисления этой сделки к сфере интересов антимонопольных органов США, является то, что, по их мнению, с момента заключения соглашения Corel свернула или продала большинство своих разработок под операционную систему Linux, объявив их нерентабельными. По соглашению же с Microsoft компания Corel обязуется затрачивать на разработку, тестирование и поддержку Microsoft-совместимой продукции не меньшее количество ресурсов, нежели на аналогичные действия по отношению к другим платформам.

Источник: Netoscope.ru

anonymous
()

2anonymous (*) (2001-02-15 21:49:50.0): развалится как и все предыдущие дела...:) Во-первых корел компания не американская, во-вторых - только идиот будет резать дойную корову...:) Ну а в третих - в случае если выйграют это дело, то больше пострадает корел чем мелкософт...:)

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

> И всё же я что-то не понял. > { > int i=1; > char *P=(char*)i; > } > Здесь что работает - pointer или какая-то гипотетическая разность? int strlen(char *l) { char *p=l; while(*l++!='\0'); return(l-p-1); } ???? -- under DOS bpp 3.1 at large model it is =strlen%16.

anonymous
()

Sorry, bpp==Borland C++;
> И всё же я что-то не понял.
> {
> int i=1;
> char *P=(char*)i;
> }
> Здесь что работает - pointer или какая-то гипотетическая разность?
int strlen(char *l)
{ char *p=l;
while(*l++!='\0');
return(l-p-1);
} ???? -- under DOS bpp 3.1 at large
model it is =strlen%16.

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

Уффф... Добрался до русской клавиатуры, наконец.
2Eldhenn:
Вы путаете кастинг с прописанными типами, проблему -- см. мой message
с примером про длину строки.

Еще фенька:
int i=1;
char *P=(char*)i;
всегда сработает, только потом, как заметил Ogr, может быть гемморой.
Вот что гарантированно НЕ сработает под DOS, например:
long i;
char *c="ququ";
i=(long)c;

Теперь в i -- абракадабра, не имеющая отношения к адресу строки
"ququ" (под DOS), а в 32 битной системе -- действительно, ее адрес.

anonymous
()

Подведем итоги: 1. Я не побоюсь предположить что Windows либо умрет ПОЛНОСТЬЮ вместе с ее зоопарком либо трансформируется в PlayStation. 2. Кстати, о падучем юзерском софте: моему начальству это уже поперёк горла становится, когда почта директора по PR накрывается медным тазом... ;-) 3. А еще особенно прикольно сравнивать топики про ОСы и про конкретные проблемы :) В топике про ОСы - да нармальные пацаны ставят bind-sendmail-на_дискетку и у них все пучком. В топике про траблы bind-а (недавно совсем) - да еее, это только лохи недобитые ставят bind и sendmail. Нармальные пацаны ставят то-то и то-то (забыл. кто хочет, тот посмотрит). В топике freebsd - да еееее, только лохи ставят linux на инетные сервера. Нармальные пацаны ставят FreeBSD и рулят, рулят, рулят.... На сomputerra.ru в новостях приведено высказывание основателя Macintosh (ууу, какой флейм сейчас начнется :) ) - ОС не должна быть видна пользователю. Когда вы хотите написать на листе бумаги, вы берете этот лист и ручку и пишите. То же должна позволять операционка. Не важно что она запустит - какой редактор. Главное - достигнуть цели. А то прикиньте - первое, выяснить ли, compatible ли лист бумаги и ручка, compatible ли ручка и ваши руки и т.д. и т.п :) 4. А, твое упоминание NT среди 'нормальных' систем звучит странно. Среди гордой толпы MSCEшников редко встетишь человека который действительно понимает что делает, и может заткнуть зияющие дыры, устанавливаемые с виндой по умолчанию. 5. > ...мавр сделал свое дело, мавр может уходить...:) Рано. Он еще Дездемону не задушил :) 6. Господин Ирси, а вы помните прекрасный отечественный офисный пакет "Лексикон"? Где он сейчас? Правильно - в жопе! И так будет с другими программами, если $M захочет.... 7. Извините ребяты, но все вы здесь ПЕДИКИ!!! 8. Irsi: за 2000 год серверов NT сломали больше, чем всех остальных систем вместе взятых. Не из-за ненависти к Microsoft, просто дыры у них _КАЧЕСТВЕННЕЕ_, и ломать их легче. remedy

anonymous
()

2 Anonymous&&Ogr
Вы меня не поняли. Я не спрашиваю, что есть кастинг и насколько от безопасен. Всё же не первый год C мучаю... Вопрос у меня такой: указатель и их разность. char* в 32бит системе - указатель? Может поместиться в int там же?

Далее.

#include <stdio.h>
void main(){
    long i;
    char S="What?";
    i=(long)S;
    printf("%d%s",sizeof(int),(char*)i);
}

результат: 2What?
Или я что-то не понимаю?

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

Что-то не понял, ты прикалываешься или в самом деле не понимаешь?

::char* в 32бит системе - указатель?

Указатель конечно, не только в 32-битной системе. Или ты спрашиваешь не про то что пишешь? ;)

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

Не в обиду - помучай C ещё немного, он того заслуживает.

Для затравки: Разность указателей - целочисленный тип, указатели должны быть одного типа (void * - не допускается), результат зависит от sizeof(type)

rabbit
()

Ладно. Короче.
Весь этот базар я начал, когда меня смутила фраза: "меня не интересует, куда поместится указатель, меня интересуе, куда поместится их рахзность" или что-то вроде в этом треде.
А C я мучал, мучаю, и буду мучать. Пока он не замучает вконец меня.

Eldhenn
()

2anonymous (*) (2001-02-16 04:10:54.0): "2. Кстати, о падучем юзерском софте: моему начальству это уже поперёк горла становится, когда почта директора по PR накрывается медным тазом... ;-)"
Ну конечно, директор еще не работал с Нетскейповским почтовым клиентом. А программы падают от ошибок в самих программах, а не от ОС. И если есть buffer overrun, то программа рано или поздно упадет в любой ОС. Да кстати каким почтовым клиентом вы там пользуетесь, у меня ни Outlook ни Outlook Express так ни разу не упали, хотя первый по нескольку месяцев работает без выключения.

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

to Ogr :
>Ну конечно, директор еще не работал с Нетскейповским
>почтовым клиентом. А программы падают от ошибок в самих
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>программах, а не от ОС. И если есть buffer overrun, то
^^^^^^^^^^^^^^^^^^^^^^^
>программа рано или поздно упадет в любой ОС.

Тогда скажи с какого такого хрена MS Office на Mac не
падает в отличии от своего виндузного собрата ?

P.S: Похоже ты опять прогнал...

Mr.Bool

anonymous
()

2Mr.Bool: У меня MS Office и на Windows не падает. Кроме того различное распределение памяти может вызывать ошибку программы на одном компьютере и точно такая жу программа на другом компьютере будет работать не падая.
PS поосторожнее с "ты опять прогнал", а то ведь я могу и попросить привести пример где это я прогнал...

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

2Eldhenn: Ha!! This is one of DOS models (do not remember which one) Look at that: sizeof( char * ) == sizeof( char ) sizeof( int ) == 2 * sizeof ( char ) On Unix, it doesnt compile until you s/char S/char *S/ After that it returns 4What?

omerm
()

:-) Davno nado bilo Mustdie-ku utopit!!

anonymous
()

2anonymous (*) (2001-02-18 13:00:52.0): ":-) Davno nado bilo Mustdie-ku utopit!!"
И всем научитася писать/читать валапюком! :)

Ogr
()

2Mr.Bool: ну на маках тоже неплохие падения случаются...:) И не только у MS Office...;)
К слову - ты в курсе что MacOS до 9ки включительно, по своей внутренней организации больше всего похожа на win3.x, точнее конечно же наоборот? :)

Irsi
()

2Eldhenn:
> Весь этот базар я начал, когда меня смутила фраза: "меня не
> интересует, куда поместится указатель, меня интересует, куда
> поместится их разность"
Это была моя фраза, поэтому я решил еще раз ответить, хотя ничего
нового я написАть не могу: все уже сказано.

> Вы меня не поняли. ... Вопрос у меня такой: указатель и их
> разность. char* в 32бит системе - указатель? Может поместиться
> в int там же?

Да, _в_32бит_системе_ это так. Вопрос в том, так ли это в 64бит
системе, e.g.

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

char *p="12345678901234567890";
long i=(long)p;/* Ok, char* fits long */
i+=17;
p=(char*)i;/* ?? address -- the result is unpredictable! */

( Все это под DOS!)

С др. стороны, int там был двухбайтный, и pointer в int просто
физически не влезал.

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

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