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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.