LINUX.ORG.RU

Microsoft Research подтверждает преимущество Линукс


0

0
Подразделение исследовательской группы (Microsoft Research) компании Microsoft, занимающееся разработкой новой ОС "Singularity", опубликовало отчет, который включает некоторые тесты, сравнивающие производительность собственно "Singularity", FreeBSD, Linux и Windows XP. Во всех тестах (что неудивительно) выиграла "Singularity", однако дальнейшее распределение мест довольно показательно - среди оставшихся ОС в подавляющем большинстве тестов лидирует Linux, за ним FreeBSD и далее со значительным отставанием - Windows XP. Отмечается также, что в единичных тестах Windows XP лидирует, однвко эти тесты выглядят как то очень Windows-ориентированными.

Очень интересно почитать сам отчет, т.к. он открывает некоторые особенности архитектуры "Singularity".

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

Ответ на: комментарий от anonymous
А когда эта Singularity выйдет официально? Тогда и надо будет сравнивать ее с существующими ОСами. А то на коленке можно что хошь и как надо быстро состроить. А когда к этому еще прикручивать разные оффисы 2010, да прочие прикладные программы... Тогда и посмотрим. Еще раз: под тесты построить что хошь можно.
anonymous
()
Ответ на: комментарий от MaratIK
>Это правда, что прога helloworld в лялихе весит 431900 для С и 984520 для С++?????

Правда. Что-то около. -static. Только микрософтовцы команды strip не знают. Тогда будет поменьше. 350k. А про себя они гонют. НА студийном компиляторе проверить не могу за неимением оного но MinGW дает 140kb. В общем чуть преувеличили чужим чуть приуменьшили себе.

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

Не ребят. Это даже не смешно. Разница в производительности на уровне погрешности (6%). Размер слинкованных бинарников - это даже не смешно.

При том, что умеет она пока очень мало.
Korwin ★★★
()
Ответ на: комментарий от anonymous
>Не, ну если нахреначить что-то типа:

>char x[900000]="Hello world !\n";

>int main() { printf("%s",x); }

>то всё может быть :)

ну тогда уже

char x[900000]="Hello world !\n\0" " " //эту строчку повторить 1000 раз ;

kolian
()
скорее всего на IPC
эта штука будет рвать все известные оси как тузик грелку
линаксу вообще будет как до китая раком
но микрософт всегда славилась хорошим IPC
yeolahim ★
()
Ответ на: комментарий от avatar
> Итог не утешительный, надо плотнее браться за разработку микроядра.

а зачем оно нужно простому пользователю? Что других проблем мало.

anonymous
()
Что-то они там намутили. Простейшая прога хелоу вёрд статически слинкованая весит 414 кб, а не 900 кб. Её процесс кушает винтуальной памяти 104 кб, а не 1216 кб как у них. Далее. Много ли у людей статически слинкованых бинарников? Правильно - не много, мягко говоря. А про динамически слинкованыые: Под виндой хелоу вёрд рилизный - 28 кб. Под линуксом - 10кб, стрипаный - 2,8 кб Правда, я там ещё sleep() везде добавил (для удобства), но это не сильно изменило размер. И даже при добавлении sleep() всё равно не достич их размеров. А чтобы в винде сделать прогу в 3 кб, это нужны такие приседания... Хотя можно и я делал в своё время. Правда при этом нельзя было половину функций использовать, иначе бы подключался стартапный код, который раздувает программму сразу до 20 кб. Как статически собрать под винду так и не нашёл, хвалёный MSDN так и непоказал требуемой опции линковщика.

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

Serega_S
()
Ответ на: комментарий от Orlangoor
вот кстате виндовс и g++ из Cygwin

E:\>cat test.cpp
#include <iostream>

using namespace std;

int main()
{
        cout << " Hello world " << endl;
        return 0;
}

E:\>g++ -s test.cpp


E:\>ls -l
total 39
-rwxr-xr-x   1 500      544         74752 Nov  9 18:42 a.exe
-rw-r--r--   1 500      544           112 Nov  9 18:37 test.cpp
-rw-r--r--   1 500      544          4473 Nov  9 18:41 test.o

E:\>
anonymous
()
Ответ на: комментарий от Led
И эти размеры зависят еще и от компилятора, и от флагов, версии glibc, библиотек с которыми они линкуют, итд..

А вообще они странно размеры файлов сравнивают. Для линукса/bsd сказано что код просто скомпилирован, а для singularity - code is linked with its full run-time system (including GC), and measured after Bartok optimization to remove unused code and data. В линуске минимальный hello world занимает около 1Kb, если убрать неиспользуемые секции в elf (как было сделано для singularity).

>In Singularity, we hope to share read-only pages containing the run-time system among similar processes, to reduce memory utilization and accelerate process creation times.

Это интересно.. значит если вдруг совершенно случайно один процесс что-то не так в памяти сделает то все рухнет? Зато понятно почему в ИХ бенчмарке ТАК быстро процессы создаются.

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

>Singularity provides a single, uniform name space for all services on a system. The name space encompasses transient system services, such as device drivers and network connections, and a persistent store in a file system. The name space is implemented by a distinguished (root) name server and services.

Привет /dev/, /sys/ и /proc/...

Судя по статье, микрософт все ближе и ближе подходит к идеям 30-летней давности. Это не говоря о замене '\' на '/' :).

McGray ★★
()
Ответ на: комментарий от Serega_S
Для windows насколько я помню mingw32 создает файлы меньшего размера чем Visual C++.

В PE файлах windows тоже можно кучу неиспользуемых вещей убрать, но это офигенно сложно.

McGray ★★
()
Ответ на: комментарий от Linfan
> в физике черных дыр - сингулярность появляется при схлопывании звезды-гиганта в конце ее жизненного цикла. И получается черная дыра. Только вдумайтесь, до чего поэтичное мЫшленье у отцов C# и дотнета.

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

yozhhh ★★★
()
Ответ на: комментарий от McGray
>In Singularity, we hope to share read-only pages containing the run-time system among similar processes, to reduce memory utilization and accelerate process creation times.

>Это интересно.. значит если вдруг совершенно случайно один процесс что-то не так в памяти сделает то все рухнет? Зато понятно почему в ИХ бенчмарке ТАК быстро процессы создаются.

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

anonymous
()
Ответ на: комментарий от anonymous
В линуксе по-моему только copy-on-write, после fork(). В singularity насколько я понял это глобально во всей системе.

(Или я отстал от жизни в области mm в линуксе? :))

McGray ★★
()
Ответ на: комментарий от Serega_S
Насчет висты не уверен, но во всей статье про singularity используются '/'.

Таким путем скоро доберутся до

#!/windows/system32/cmd.exe

:)

McGray ★★
()
Ответ на: комментарий от McGray
> В линуксе по-моему только copy-on-write, после fork(). В singularity насколько я понял это глобально во всей системе.

С кодом в singularity всё радикальней. Программу нельзя просто запустить. Сначала её код нужно установить. Установщик кода - это не просто некоторая программа - это неотъемлимая часть системы. Установленный код нельзя в принципе изменить не только во время исполнения программы, а вообще никогда, - это запрещено ОС. То есть, код хранится не в обычном файле. Весь установленный код всех программ хранится в некотором реестре ОС. Выполняется весь код в том же кольце защиты, что и "микроядро".

Sorcerer ★★★★★
()
Ответ на: комментарий от Sorcerer
Что будет мешать "попросит" установщик кода "обновить" существующий бинарник? Какие-то замуты. Это всё равно что замуровать вход в банк... А брать-то оттуда что-то всё равно придётся. Размуровывать? Или строить новый банк (переустанавливать ось)?
Serega_S
()
Ответ на: комментарий от Serega_S
>Что будет мешать "попросит" установщик кода "обновить" существующий бинарник? Какие-то замуты. Это всё равно что замуровать вход в банк... А брать-то оттуда что-то всё равно придётся. Размуровывать? Или строить новый банк (переустанавливать ось)?

Нафиг? Это просто тупая VM, наподобие CLR или JVM. Никаких бинарников: все - байт-код. Меняешь прогу, старый ее бинарник в кэше затирается и генерится автоматом новый(при запуске ли (JIT), либо при "установке"). Вот и все.

MaratIK ★
()
Ответ на: комментарий от McGray
>Для windows насколько я помню mingw32 создает файлы меньшего размера чем Visual C++.
>В PE файлах windows тоже можно кучу неиспользуемых вещей убрать, но это офигенно сложно.

Не так-то уж и сложно, вот статейка http://www.uinc.ru/articles/28/ - я так helloworld в винде 1-2 кб делал (только похоже 7-ая визуалстудия разучилась этот трюк делать). По умолчанию размер .exe у VS - 32кб, у cygwin gcc - 4кб.

PS: Щас пытался по образу и подобию такую же вещь под линуксом сотворить, что-то не получилось :/

$cat smallhello.c
#include <unistd.h>
int _start(){
write(2,"Hello World!\n",13)
}
$gcc -nostdllib smallhello.c
undefined reference to `write'
W98 ★
()
Ответ на: комментарий от Serega_S
Обновить, конечно, можно, как и удалить. Но только процесс установки кода - это не просто копирование его в недоступное место, а еще и его компиляция. То есть, код системе дается не в машинных кодах, а на некотором платформно-независимом языке. В машинном коде может быть дан только "Trusted"-код.
Sorcerer ★★★★★
()
Ответ на: комментарий от Sun-ch
>Чудик, это ж совершенно новое слово в осестроении. Читаем про Software Isolated Processes.

Кстати, идея SIP мне как-то сама-собой пришла в голову еще давно, но я не просто не знал, что с ней делать. Оказывается, не мне одному. :)

Zubok ★★★★★
()
Ответ на: комментарий от Sorcerer
хе.

это значит установив один раз глючную программу, мне ее уже не изменить?

рулез форева :)))

gr_buza ★★★★
()
Ответ на: комментарий от Sorcerer
правильно, даем исходники и компилируем там где запускаем ;)

измена! Батарейкин, тебя предали! ;)

netkeeper
()
>Во всех тестах (что неудивительно) выиграла "Singularity". Также неудивительно, как и необычное совпадение заголовка этой статьи с ее содержанием.

anonymous
()
Ответ на: комментарий от Zubok
SIP это не per process namespace ? MS рекордсмен по изобретению колёс ... Есть Inferno :) только появилась она (Inferno) раньше ... :)
robot12 ★★★★★
()
Ответ на: комментарий от yozhhh
Да нет - пока МС еще гигант и пока светит. :)) но если склеит лапти - всем хреново станет.
Linfan ★★★★★
()
Ответ на: комментарий от robot12
> так и не понял что такое trusted base :-) исходников то нет ... кк проверить ?

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

legk
()
Ответ на: комментарий от Sorcerer
> С кодом в singularity всё радикальней. Программу нельзя просто запустить. Сначала её код нужно установить. Установщик кода - это не просто некоторая программа - это неотъемлимая часть системы. Установленный код нельзя в принципе изменить не только во время исполнения программы, а вообще никогда, - это запрещено ОС. То есть, код хранится не в обычном файле. Весь установленный код всех программ хранится в некотором реестре ОС. Выполняется весь код в том же кольце защиты, что и "микроядро".

Зашибись. А если я пишу СВОЙ код, свою программу? Мне её тоже после каждого ребилда УСТАНАВЛИВАТЬ?

anonymous
()
Ответ на: комментарий от yeolahim
>но микрософт всегда славилась хорошим IPC

Если это не ирония, то на сайте ibm видел бенчмарки. Там винда явно не в лучшем свете.

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

Davidov ★★★★
()
Ответ на: комментарий от anonymous
> Зашибись. А если я пишу СВОЙ код, свою программу? Мне её тоже после каждого ребилда УСТАНАВЛИВАТЬ?

"Впервые! Купите нашу замечательную сдеру разработки, и вы сможете компилировать и запускать софт сколько вам угодно и когда вам удобно!" рекламный ролик MS в будующем ;)

legk
()
Ответ на: комментарий от Sorcerer
>С кодом в singularity всё радикальней. Программу нельзя просто запустить. Сначала её код нужно установить. Установщик кода - это не просто некоторая программа - это неотъемлимая часть системы. Установленный код нельзя в принципе изменить не только во время исполнения программы, а вообще никогда, - это запрещено ОС. То есть, код хранится не в обычном файле. Весь установленный код всех программ хранится в некотором реестре ОС. Выполняется весь код в том же кольце защиты, что и "микроядро"

Можно тупой вопрос - если я установлю вирус и заражу установщик кода, то системе сразу полный писец?

jackill ★★★★★
()
Ответ на: комментарий от Davidov
>Зашибись. А если я пишу СВОЙ код, свою программу? Мне её тоже после каждого ребилда УСТАНАВЛИВАТЬ?

В чем и смысл. Ты и писать что-то сможешь только на сертифицированном Microsoft компиляторе который на автомате будет проверять не нарушены ли авторские Microsoft на код, так, что тут и DRM будет в полный рост. В чем и смысл... А то ишь, норовят запускать самопальный код...

anonymous
()
$ cat helloms.asm
section .data
msg     db      "Hello, world!",0xa
len     equ     $ - msg
section .text
global _start
_start:
        mov     edx,len
        mov     ecx,msg
        mov     ebx,1
        mov     eax,4
        int     0x80
        mov     ebx,0
        mov     eax,1
        int     0x80
$ nasm -f elf helloms.asm
$ ld -o helloms helloms
$ strip helloms
$ ./helloms
$ls -la helloms
-rwxr-xr-x  1 xnix users 536 Nov  9 20:55 helloms*
xnix ★★
()
Ответ на: комментарий от jackill
> Можно тупой вопрос - если я установлю вирус и заражу установщик кода, то системе сразу полный писец?

Естественно. Только вот Ваш вирус никак не сможет заразить установщик кода, потому что если вирус идет в байткоде, то он не сможет изменить установщик при всем желании, а если не в байт-коде, то установка такой программы почти аналогична запуску из-под рута бинарного файла, который неизвестно что делает. Потому как такая программа может быть установлена только как "Trusted", а права на установку таких программ должны быть только у администратора.

Sorcerer ★★★★★
()
Ответ на: комментарий от Sorcerer
> Можно тупой вопрос - если я установлю вирус и заражу установщик кода, то системе сразу полный писец?

Заразить - это значит изменить, а изменять может только спец установщик, который является частю ОС
anonymous
()
Ответ на: комментарий от jackill
>> С кодом в singularity всё радикальней. Программу нельзя просто запустить. Сначала её код нужно установить. Установщик кода - это не просто некоторая программа - это неотъемлимая часть системы. Установленный код нельзя в принципе изменить не только во время исполнения программы, а вообще никогда, - это запрещено ОС. То есть, код хранится не в обычном файле. Весь установленный код всех программ хранится в некотором реестре ОС. Выполняется весь код в том же кольце защиты, что и "микроядро"

> Можно тупой вопрос - если я установлю вирус и заражу установщик кода, то системе сразу полный писец?

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

Фактически весь Sing. - большой оптимизирующий компилер. Ничего нового впрочем тут нет - такие эксперименты делали ещё на EC ЭВМ c целью получать быстродействующие приложения. Как понимаю тогда дело упёрлось в низкую надёжность результата, слишком долгое время подготовки к запуску и некомпактность граф-кода. Кому интерестно - сходите в тех. библиотеку - в СССР издавалась масса литературы посвещённая именно этому вопросу.

2 jackil: если ты сделаешь вирус для Sing. то скорее всего ты грохнеш не просто систему, а всю сеть - сдаётся мне, что объектное хранилище у них рапредённое.

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov
>>2 jackil: если ты сделаешь вирус для Sing. то скорее всего ты грохнеш не просто систему, а всю сеть - сдаётся мне, что объектное хранилище у них рапредённое.

Поидее вирус который попытается нарушить работу других процессов даже неоткомпилится, такая же схема в Inferno
anonymous
()
Ответ на: комментарий от anonymous
> Поидее вирус который попытается нарушить работу других процессов даже неоткомпилится, такая же схема в Inferno

то-же самое думали раньше вообще про черви/вирусы - теоретики были крайне изумленны их появлением ;-)

MKuznetsov ★★★★★
()
"Singularity" - это вообще-то свойство матрицы. If the matrix M is singular, we cannot undo the linear transformation caused by applying the matrix.

Товарищи! Операционные системы Микрософт безвозвратно калечят ваш моск!
PashaKustov ★★
()
Ответ на: комментарий от MKuznetsov
>то-же самое думали раньше вообще про черви/вирусы - теоретики были крайне изумленны их появлением ;-)

Разве? Можно ссылки?

Davidov ★★★★
()
Ответ на: комментарий от anonymous
>Жалко, сырцов-бинарей поиграться не дают (или я плохо смотрел?).

Они всем дают, кто заплатит. Есть такая лицензия у них, для изучения исходных кодов

anonymous
()
Ответ на: комментарий от r
> НА студийном компиляторе проверить не могу за неимением оного но
> MinGW дает 140kb. В общем чуть преувеличили чужим чуть 
> приуменьшили себе.

См. результат.
Собрано бесплатным Visual C++ Toolkit 2003, зависимость результата только от kernel32.dll.

p.s. Хотя это и неважно всё. Причём тут ОС, если вопрос чисто в компиляторе.

-- lortest.cpp --
#include <iostream>
using namespace std;

int main(void) {
	cout << "hello lor!";
	return 0;
}
-- lortest.cpp --

C:\current>cl /EHsc lortest.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.

vtest.cpp
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:lortest.exe
lortest.obj


C:\current>dir
 Volume in drive C has no label.
 Volume Serial Number is CCB4-095D

 Directory of C:\current

09.11.2005  21:52    <DIR>          .
09.11.2005  21:52    <DIR>          ..
09.11.2005  21:50               102 lortest.cpp
09.11.2005  21:51            73 728 lortest.exe
09.11.2005  21:51            15 832 lortest.obj
               3 File(s)         89 662 bytes
               2 Dir(s)   2 925 575 168 bytes free
Dimentiy ★★
()
Ответ на: комментарий от Dimentiy
C:\ASM>type lortest.asm
.model tiny
.586
.code
org 100h
start:
mov ah, 9
mov dx, offset msg
int 21h
ret
msg db "hello lor!",13,10,'$'
end start

C:\ASM>dir lortest*
Том в устройстве C не имеет метки.
Серийный номер тома: FC75-1111

Содержимое папки C:\asm

09.11.2005 22:09 129 lortest.asm
09.11.2005 22:09 21 LORTEST.COM
09.11.2005 22:09 150 LORTEST.MAP
09.11.2005 22:09 214 LORTEST.OBJ
09.11.2005 22:11 55 LORTEST.TR
5 файлов 569 байт
0 папок 23 496 732 672 байт свободно

C:\ASM>


За что собственно и люблю DOS. :)
anonymous
()
Ответ на: комментарий от McGray
> Таким путем скоро доберутся до 
> #!/windows/system32/cmd.exe 

Работает всё давно :0)


C:\Documents and Settings\XXX>/winxp/system32/find.exe
FIND: Parameter format not correct

C:\Documents and Settings\XXX>
Dimentiy ★★
()
Ответ на: комментарий от McGray
> Возможно это глупый вопрос, но .com файлы в windows xp/2003 еще работают?

Я под хрюшей это и компилировал, и запускал. Наверное работают. :)

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