LinuxForum.Fans
Тема

Самый быстрый линукс

Автор: Fesali 140 сообщений 33753 просмотров
#133006
nuc написал:
Это слишком мутная фраза для технического форума. Тем более для модератора.
Легион подозревает, что вы не в теме.

Легион может простить некоторую мутность в целом правильных фраз. Не? wink

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

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

nuc написал:
Хотя программирование на ассемблере в Unix-мире считается моветоном, поскольку нарушает один из основополагающих принципов юникс-вея «жертвуй производительностью ради переносимости»

дело не в этом - программирование на асме == изобретение велосипедов. Это глупо хотя-бы потому, что в Linux они все есть, бесплатны, и доступны. И ещё и с манами. Причём с нормальными манами, а не с этой вашей мутной MSDN.
Особенно печально, что ваш код нужно ПЕРЕПИСЫВАТЬ для каждого CPU, а для C достаточно простой перекомпиляции. А скрипты даже в перекомпиляции не нуждаются, потому не удивительно, что старый код на асме жутко тупит, и его легко делает даже перловый скрипт (причём такой-же древний).

Wolfenberg написал:
К тому же Assembler является на 100% Freeware.

это в каком смысле?!

#133009
drBatty написал:
флажок достанется генте

Ну, уж если Доктор так говорит...

mvt написал:
Любой, который целиком загружается в оперативу

Стало быть, вообще любой. Любой дистр можно целиком загрузить в оперативу. Точнее говоря, просто смонтировать / в tmpfs
А при прочих равных немного быстрее будут скомпилированные под данное конкретное железо, то есть Гента и упомянутая здесь фряха, хотя упомянута она не кместу, ибо

Самый быстрый линукс
#133015
bobr написал:
Ну, уж если Доктор так говорит...

как есть, так и говорю. если вам нужно смотреть кино нв первом пне, то надо пересобирать ядро и плеер. в генте это проще всего. можно в слаке.
если вы смогли найти что-то лучше первого пня, то вам нет разницы, откроется окошко за 10 или за 15мс.

bobr написал:
Стало быть, вообще любой. Любой дистр можно целиком загрузить в оперативу. Точнее говоря, просто смонтировать / в tmpfs

конечно.

#133025
drBatty написал:
Легион может простить некоторую мутность

понравилось! Прикольно тут у вас.

drBatty написал:
4.2

Wolfenberg хороший модератор. Требование знать модерам асм- это только по накурке такое можно задвинуть (ну хотя в прямом смысле тут такого и не было, но в общем : )))

drBatty написал:
дело не в этом - программирование на асме == изобретение велосипедов.

Ой-йой!
Боюсь что велосипеды будут уникальные и диковеные...:)

drBatty написал:
Особенно печально, что ваш код нужно ПЕРЕПИСЫВАТЬ для каждого CPU,

Ну, тут можно поспорить.
Дизасемблируйте бинарник, полученный посредством С или С++.
Увидите, что регистры используются недостаточно. А они как вы конечно занете, самые быстрые из всего.
Прирост в производительности дадут не только специфичные для данного процы регистры, но и активнее используемые регистры общего назанчения того-же целочисленного устройства. И если прога затачивается для так наз реп под i386, то все там будет летать.

Ну в целом С не отстает от асма, поэтому асм используется в редких случаях, и с ростом производительности железа его практически не видно. А в 90Х да.

#133030

.......кроме того, сейчас процы робют в защ режиме (я имею в виду наиболее распр арх I386 и амд64).А там все прерывания (системные вызовы) обращены один чер к ядру на 80й вентиль.А оно то на С написано!
Это раньше асм был прикольный потому что через него можно было обращаться напрямую к железу используя прерывания биос,= даже в обход ОСИ. Вот это было интересно.

#133032
redux написал:
Ой-йой!
Боюсь что велосипеды будут уникальные и диковеные...:)

да нет... обычные велосипеды. например трёх колёсные. авторы почему-то считают это новым словом в велосипедостроении :)

redux написал:
Дизасемблируйте бинарник, полученный посредством С или С++.
Увидите, что регистры используются недостаточно.

ну-ну. objdump вам в помощь. только -O3 не забудьте.

redux написал:
Ну в целом С не отстает от асма, поэтому асм используется в редких случаях, и с ростом производительности железа его практически не видно.

не потому. в 90х процессоры были очень простыми, сейчас они стали сложными и многообразными

#133038
redux написал:
А оно то на С написано!

что это меняет? кстати не всё - многое на асме.

redux написал:
Это раньше асм был прикольный потому что через него можно было обращаться напрямую к железу используя прерывания биос,= даже в обход ОСИ. Вот это было интересно.

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

#133093
drBatty написал:
что это меняет?

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

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

А вот с этим вопросом погодите прощаться!!!
Я стопятьсот времени убил, чтобы просто найти как это в защищенном режиме вызвать прерывание биос в обход ядра? Пожалуйста ткните носом!
А уж в обход даже биос к железу это, в защищенном режиме, простите как?В линуксе именно, тоже хотелось бы направление так сказать хотя бы, не говоря уже о пруфлинке.
Мне вообще очень интересно, и раз уж вы знаете, прошу поделиться.

#133097

redux, плохо знаете BIOS. Там есть настройки прерываний в защищённом режиме (можно и комп спалить).
Многие производители выпускают overclock utilities.

#133099
Wolfenberg написал:
redux, плохо знаете BIOS. Там есть настройки прерываний в защищённом режиме (можно и комп спалить).
Многие производители выпускают overclock utilities.

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

Wolfenberg написал:
redux, плохо знаете BIOS.
Простите, но вы кажется имеете в виду хождение по синим окошкам после включения компа :D
#133101
Wolfenberg написал:
overclock utilities.

это то тут к чему?
Или для вас менять частоту шины\памяти\проца = это типа к разговору про ассемблер и системные вызовы ядра? :D :D :D

#133110

redux, а на хрена мне их менять? Прерывания меняются только при разгоне системы.
Прирост вы получите 1-2% + кучу геморроя с охлаждением и отладкой.
Если же вы имеете ввиду простое управление режимами прогона системы. То там не обязательно ломать ядро.
Кто вам мешает написать управляющий модуль, впихнуть его в автозагрузку и выставить очерёдность.
Или у вас такая раздутая программа, что необходимо двигать регистры и считать управляющие биты?
ИМХО легче выгрести мусор. К тому же, на новые процессоры вам придётся считать намного больше регистров и учитывать флагов, чем для старых пней, не говоря уже о разделении...

#133111

и в догонку вот про это

drBatty написал:
что это меняет? кстати не всё - многое на асме.

ассмкод можно вообще прям в код на с втсавлять, вот файл drBatty.c

text
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[]) { asm("movb $0x05, %ah"); asm("movb $0, %al"); exit(0); }

и далее:
gcc drBatty.c
бинарник создается.
Когда я говорил что ядро написано на С я имел в видуи по контесту как раз, аппартно-зависимые вещи, о которых и вы говорили= в плане зависимости от архитектуры.

#133112

Wolfenberg, перестань вести себя как обиженная институтка!
Если будешь продолжать необоснованные наезды на человека - прикрою тему на редактирование.

#133114
redux написал:
В линуксе именно, тоже хотелось бы направление так сказать хотя бы, не говоря уже о пруфлинке.

kernel.org ;)
ядро-же обращается как-то? причём напрямую, без всяких биосов (потому-то старый BIOS не видит больших дисков, но новый линукс видит прекрасно. Я уж не говорю про USB). ядро править неудобно - перезагружаться надо. для этого придумали модули. они тоже напрямую работают с железом. берёте открытый модуль, и читаете. да, в Сети полно мануалов на эту тему.

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

да легко! вы просто не имели в венде доступ к исходным текстам ядра и к модулям. потому и всё так плохо - сколько лет делали драйвер для NTFS? сколько лет пилят wine? до сих пор бета. всё потому, что КАК работает windows знают только в мысы. а как работает Linux может посмотреть любой желающий. И даже поучаствовать. Это всемерно поощряется, в отличии от.

Wolfenberg написал:
плохо знаете BIOS. Там есть настройки прерываний в защищённом режиме (можно и комп спалить).

да плевать хотела ОСь на ваши прерывания. ;)

redux написал:
Речь идет о программном доступе скажем к Int 21 минуя системный вызов ядра.

вы не поверите, но биос нужен лишь при загрузки загрузчика. потом загрузчик грузит ядро, а оно грузит init. дальше всё зависит от дистра, точнее от содержимого /etc/inittab.
А что там в int21 записано никого не волнует. Зачем обходить хорошо известные и документированные функции ядра? ну не нравятся? сделайте модуль свой.

#133116
Wolfenberg написал:
redux, а на хрена мне их менять? Прерывания меняются только при разгоне системы.

вы не в теме.
Речь идет о прерываниях вызываемых из кода на асме. Они в общем не для разгона. А для работы с железом, например с видеорежимами в обход всех драйверов. Я 99.999% знаю, что так сделать нельзя в защищенном режиме, но в свое время инетресовался этим вопросом, возможно доктор что-то знает, мне очень интересно.

#133117
redux написал:
Речь идет о программном доступе скажем к Int 21 минуя системный вызов ядра.

а разве так можно?

#133118
redux написал:
kernel.org
ядро-же обращается как-то? причём напрямую, без всяких биосов (потому-то старый BIOS не видит больших дисков, но новый линукс видит прекрасно. Я уж не говорю про USB). ядро править неудобно - перезагружаться надо. для этого придумали модули. они тоже напрямую работают с железом. берёте открытый модуль, и читаете

Это всё отговорки и размышления общего характера!!!

drBatty написал:
Сети полно мануалов на эту тему.

Дайте ОДИН линк на такое, где дан пример кода на асме или со вставкой в С, где вызывается прерывание биос из программы на асме.
Вот что-нибудь типа такого:
#include <stdio.h>
#include <stdlib.h>


int main(int argc, char* argv[])
{
asm("movb $0x05, %ah");
asm("movb $0, %al");
asm("int $0x10");
exit(0);
}
только чтобы прерывание вызвалось.

#133119
redux написал:
ассмкод можно вообще прям в код на с втсавлять

я знаю.
а ещё gcc поддерживает кучу ЯП, в т.ч. и приснопамятный masm ;)

redux написал:
Когда я говорил что ядро написано на С я имел в видуи по контесту как раз, аппартно-зависимые вещи, о которых и вы говорили= в плане зависимости от архитектуры.
redux написал:
Когда я говорил что ядро написано на С я имел в видуи по контесту как раз, аппартно-зависимые вещи, о которых и вы говорили= в плане зависимости от архитектуры.

не, вот они обычно таки на асме. причём там 100500 вариантов для разных камней.

#133123
Termo написал:
redux пишет:
Речь идет о программном доступе скажем к Int 21 минуя системный вызов ядра.
а разве так можно?

вот именно!
Доктор, вопрос не в том, что это не нужно в целом и сделано гораздо лучше по-новому, по-моему это невозможно.

Войдите или зарегистрируйтесь, чтобы ответить.