yxma, oO
Любой язык работает на уровне ассемблера при помощи компилятора.
Или вам ассемблер в Linux нужен? oO
Windows 7
Настоятельно просим вас при общении соблюдать Правила форума и законы РФ. Наша тематика вне политики, поэтому воздержитесь от обсуждения ситуации на Украине и связанных с ней событий, независимо от того, какую сторону вы поддерживаете.
Также напоминаем, что наш форум находится в доменной зоне .ru, физически расположен на российских серверах и мы соблюдаем действующее законодательство России. Любые сообщения о политике будут удаляться.
Linux Forum → Разговоры о Linux и не только → Самый быстрый линукс
yxma, oO
Любой язык работает на уровне ассемблера при помощи компилятора.
Или вам ассемблер в Linux нужен? oO
какой линукс быстрее?))) ну из этой темы можно холивар начать) каждому свое (FreeBSD рулит!)
foozzi, быстрее всего работают тонкие клиенты, загруженные в ОЗУ wink
Остальные-одинаково. Зависит от железа, поставленных задач и криворукости юзверя.
вот) и я того же мнения, железяки тащат, ну а про оси работающие под озу я мало знаю, говрить не буду т.к. бывший масдайщик =(
Любой язык работает на уровне ассемблера при помощи компилятора.
Это слишком мутная фраза для технического форума. Тем более для модератора.
Легион подозревает, что вы не в теме.
yxma, oO
Любой язык работает на уровне ассемблера при помощи компилятора.
Или вам ассемблер в Linux нужен? oO
и я о том же. Компилятор переводит текст программ, написанных на человеческом буржуйском языке в коды машины. Но это не ассемблер -тут вы ошибаетесь. Это машинные коды. Ассемблер - тоже язык, тоже переводящий все в коды машины, но это язык низкого уровня, на котором программировать - сущее мучение. Зато программы, на нем написанные, работают быстрее - он ближе к машинным кодам, нет лишних машинных команд, которые неизбежны в языках высокого уровня.
В свое время пытались создать Колибри - линукс из-под ассемблера.
Но насчет линукса в озу и тонких клиентов - это бесспорно.
yxma, по вашему вопросу:
цитата
"
Хотя программирование на ассемблере в Unix-мире считается моветоном, поскольку нарушает один из основополагающих принципов юникс-вея «жертвуй производительностью ради переносимости», даже тут находится место разногласиям, способным вылиться в настоящую драму.
Дело в том, что встроенный ассемблер большинства Unix-ов (и Linux в том числе) использует синтаксис (AT&T-синтаксис), в корне отличающийся от оригинального Intel-синтаксиса. А поскольку Intel-синтаксис у большинства труЪ-линуксоидов прочно ассоциируется с маздаем, он объявляется ересью, и всем, кто пользуется nasm, yasm или fasm пророчатся вечные муки, страшный суд, ад и погибель, хотя gas тоже владеет интеловским синтаксисом. Правда все ELF-инфекторы всё же приходится писать на старом добром асме.
Алсо какой либо годной документации по ассемблеру AT&T в интернете хрен найдешь (зато на официальном сайте компании AT&T[5] можно купить сотовый телефон). По этой причине программистов на AT&T крайне мало.
"
отсюда
http://lurkmore.ru/Assembler
О, вспомнил какой самый быстрый - любой на SSD smile
yxma, хех. Если вам не жалко угробить кучу времени, то можете взять в руки инженерный калькулятор и засесть за алгоритмику. smile
И помните, программа будет не только шустрее, но и легче. Самый яркий пример: игра DOOM 3. wink
К тому же Assembler является на 100% Freeware.
А что знатоки расскажут об опыте создания линукса на ассемблере? Как будто такой был?
не было, GnuLinux (ядро) написано на C.
Это слишком мутная фраза для технического форума. Тем более для модератора.
Легион подозревает, что вы не в теме.
Легион может простить некоторую мутность в целом правильных фраз. Не? wink
Ассемблер - тоже язык, тоже переводящий все в коды машины, но это язык низкого уровня, на котором программировать - сущее мучение. Зато программы, на нем написанные, работают быстрее - он ближе к машинным кодам, нет лишних машинных команд, которые неизбежны в языках высокого уровня.
4.2
вы точно не в теме. писать на асме имеет смысл лишь для конкретного железа. Программа которая не использует последнее SSE будет тупить на посл. компах. А программа которая использует просто не заработает на всех компах, кроме последних. Быстрее всего будет работать программа, котрая использует libc, если эта libc использует все навороты. можно конечно юзать libc и из асма, но какой в этом смысл?
Хотя программирование на ассемблере в Unix-мире считается моветоном, поскольку нарушает один из основополагающих принципов юникс-вея «жертвуй производительностью ради переносимости»
дело не в этом - программирование на асме == изобретение велосипедов. Это глупо хотя-бы потому, что в Linux они все есть, бесплатны, и доступны. И ещё и с манами. Причём с нормальными манами, а не с этой вашей мутной MSDN.
Особенно печально, что ваш код нужно ПЕРЕПИСЫВАТЬ для каждого CPU, а для C достаточно простой перекомпиляции. А скрипты даже в перекомпиляции не нуждаются, потому не удивительно, что старый код на асме жутко тупит, и его легко делает даже перловый скрипт (причём такой-же древний).
К тому же Assembler является на 100% Freeware.
это в каком смысле?!
флажок достанется генте
Ну, уж если Доктор так говорит...
Любой, который целиком загружается в оперативу
Стало быть, вообще любой. Любой дистр можно целиком загрузить в оперативу. Точнее говоря, просто смонтировать / в tmpfs
А при прочих равных немного быстрее будут скомпилированные под данное конкретное железо, то есть Гента и упомянутая здесь фряха, хотя упомянута она не кместу, ибо
Самый быстрый линукс
Ну, уж если Доктор так говорит...
как есть, так и говорю. если вам нужно смотреть кино нв первом пне, то надо пересобирать ядро и плеер. в генте это проще всего. можно в слаке.
если вы смогли найти что-то лучше первого пня, то вам нет разницы, откроется окошко за 10 или за 15мс.
Стало быть, вообще любой. Любой дистр можно целиком загрузить в оперативу. Точнее говоря, просто смонтировать / в tmpfs
конечно.
Легион может простить некоторую мутность
понравилось! Прикольно тут у вас.
4.2
Wolfenberg хороший модератор. Требование знать модерам асм- это только по накурке такое можно задвинуть (ну хотя в прямом смысле тут такого и не было, но в общем : )))
дело не в этом - программирование на асме == изобретение велосипедов.
Ой-йой!
Боюсь что велосипеды будут уникальные и диковеные...:)
Особенно печально, что ваш код нужно ПЕРЕПИСЫВАТЬ для каждого CPU,
Ну, тут можно поспорить.
Дизасемблируйте бинарник, полученный посредством С или С++.
Увидите, что регистры используются недостаточно. А они как вы конечно занете, самые быстрые из всего.
Прирост в производительности дадут не только специфичные для данного процы регистры, но и активнее используемые регистры общего назанчения того-же целочисленного устройства. И если прога затачивается для так наз реп под i386, то все там будет летать.
Ну в целом С не отстает от асма, поэтому асм используется в редких случаях, и с ростом производительности железа его практически не видно. А в 90Х да.
.......кроме того, сейчас процы робют в защ режиме (я имею в виду наиболее распр арх I386 и амд64).А там все прерывания (системные вызовы) обращены один чер к ядру на 80й вентиль.А оно то на С написано!
Это раньше асм был прикольный потому что через него можно было обращаться напрямую к железу используя прерывания биос,= даже в обход ОСИ. Вот это было интересно.
Ой-йой!
Боюсь что велосипеды будут уникальные и диковеные...:)
да нет... обычные велосипеды. например трёх колёсные. авторы почему-то считают это новым словом в велосипедостроении 
Дизасемблируйте бинарник, полученный посредством С или С++.
Увидите, что регистры используются недостаточно.
ну-ну. objdump вам в помощь. только -O3 не забудьте.
Ну в целом С не отстает от асма, поэтому асм используется в редких случаях, и с ростом производительности железа его практически не видно.
не потому. в 90х процессоры были очень простыми, сейчас они стали сложными и многообразными
А оно то на С написано!
что это меняет? кстати не всё - многое на асме.
Это раньше асм был прикольный потому что через него можно было обращаться напрямую к железу используя прерывания биос,= даже в обход ОСИ. Вот это было интересно.
никто вам не мешает править ядро и/или писать свои модули, которые работают даже в обход биоса. удачи 
что это меняет?
как что, вы стараетесь, пишите прогу на асме, а с железом все равно ядро работает, потому что прога к ядру обращается, а не напрямую к железу.
никто вам не мешает править ядро и/или писать свои модули, которые работают даже в обход биоса. удачи
А вот с этим вопросом погодите прощаться!!!
Я стопятьсот времени убил, чтобы просто найти как это в защищенном режиме вызвать прерывание биос в обход ядра? Пожалуйста ткните носом!
А уж в обход даже биос к железу это, в защищенном режиме, простите как?В линуксе именно, тоже хотелось бы направление так сказать хотя бы, не говоря уже о пруфлинке.
Мне вообще очень интересно, и раз уж вы знаете, прошу поделиться.
redux, плохо знаете BIOS. Там есть настройки прерываний в защищённом режиме (можно и комп спалить).
Многие производители выпускают overclock utilities.
redux, плохо знаете BIOS. Там есть настройки прерываний в защищённом режиме (можно и комп спалить).
Многие производители выпускают overclock utilities.
Прерывания биос я как раз знаю, и у меня в руках две хорошие книги по асму, которые я давно люблю.
Речь идет о программном доступе скажем к Int 21 минуя системный вызов ядра.
redux, плохо знаете BIOS.
Простите, но вы кажется имеете в виду хождение по синим окошкам после включения компа 
overclock utilities.
это то тут к чему?
Или для вас менять частоту шины\памяти\проца = это типа к разговору про ассемблер и системные вызовы ядра?

redux, а на хрена мне их менять? Прерывания меняются только при разгоне системы.
Прирост вы получите 1-2% + кучу геморроя с охлаждением и отладкой.
Если же вы имеете ввиду простое управление режимами прогона системы. То там не обязательно ломать ядро.
Кто вам мешает написать управляющий модуль, впихнуть его в автозагрузку и выставить очерёдность.
Или у вас такая раздутая программа, что необходимо двигать регистры и считать управляющие биты?
ИМХО легче выгрести мусор. К тому же, на новые процессоры вам придётся считать намного больше регистров и учитывать флагов, чем для старых пней, не говоря уже о разделении...
и в догонку вот про это
что это меняет? кстати не всё - многое на асме.
ассмкод можно вообще прям в код на с втсавлять, вот файл drBatty.c
#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
бинарник создается.
Когда я говорил что ядро написано на С я имел в видуи по контесту как раз, аппартно-зависимые вещи, о которых и вы говорили= в плане зависимости от архитектуры.
Wolfenberg, перестань вести себя как обиженная институтка!
Если будешь продолжать необоснованные наезды на человека - прикрою тему на редактирование.
В линуксе именно, тоже хотелось бы направление так сказать хотя бы, не говоря уже о пруфлинке.
kernel.org 
ядро-же обращается как-то? причём напрямую, без всяких биосов (потому-то старый BIOS не видит больших дисков, но новый линукс видит прекрасно. Я уж не говорю про USB). ядро править неудобно - перезагружаться надо. для этого придумали модули. они тоже напрямую работают с железом. берёте открытый модуль, и читаете. да, в Сети полно мануалов на эту тему.
А уж в обход даже биос к железу это, в защищенном режиме, простите как?В линуксе именно, тоже хотелось бы направление так сказать хотя бы, не говоря уже о пруфлинке.
Мне вообще очень интересно, и раз уж вы знаете, прошу поделиться.
да легко! вы просто не имели в венде доступ к исходным текстам ядра и к модулям. потому и всё так плохо - сколько лет делали драйвер для NTFS? сколько лет пилят wine? до сих пор бета. всё потому, что КАК работает windows знают только в мысы. а как работает Linux может посмотреть любой желающий. И даже поучаствовать. Это всемерно поощряется, в отличии от.
плохо знаете BIOS. Там есть настройки прерываний в защищённом режиме (можно и комп спалить).
да плевать хотела ОСь на ваши прерывания. 
Речь идет о программном доступе скажем к Int 21 минуя системный вызов ядра.
вы не поверите, но биос нужен лишь при загрузки загрузчика. потом загрузчик грузит ядро, а оно грузит init. дальше всё зависит от дистра, точнее от содержимого /etc/inittab.
А что там в int21 записано никого не волнует. Зачем обходить хорошо известные и документированные функции ядра? ну не нравятся? сделайте модуль свой.
redux, а на хрена мне их менять? Прерывания меняются только при разгоне системы.
вы не в теме.
Речь идет о прерываниях вызываемых из кода на асме. Они в общем не для разгона. А для работы с железом, например с видеорежимами в обход всех драйверов. Я 99.999% знаю, что так сделать нельзя в защищенном режиме, но в свое время инетресовался этим вопросом, возможно доктор что-то знает, мне очень интересно.
Речь идет о программном доступе скажем к Int 21 минуя системный вызов ядра.
а разве так можно?
kernel.org
ядро-же обращается как-то? причём напрямую, без всяких биосов (потому-то старый BIOS не видит больших дисков, но новый линукс видит прекрасно. Я уж не говорю про USB). ядро править неудобно - перезагружаться надо. для этого придумали модули. они тоже напрямую работают с железом. берёте открытый модуль, и читаете
Это всё отговорки и размышления общего характера!!!
Сети полно мануалов на эту тему.
Дайте ОДИН линк на такое, где дан пример кода на асме или со вставкой в С, где вызывается прерывание биос из программы на асме.
Вот что-нибудь типа такого:
#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);
}
только чтобы прерывание вызвалось.
ассмкод можно вообще прям в код на с втсавлять
я знаю.
а ещё gcc поддерживает кучу ЯП, в т.ч. и приснопамятный masm 
Когда я говорил что ядро написано на С я имел в видуи по контесту как раз, аппартно-зависимые вещи, о которых и вы говорили= в плане зависимости от архитектуры.
Когда я говорил что ядро написано на С я имел в видуи по контесту как раз, аппартно-зависимые вещи, о которых и вы говорили= в плане зависимости от архитектуры.
не, вот они обычно таки на асме. причём там 100500 вариантов для разных камней.
redux пишет:
Речь идет о программном доступе скажем к Int 21 минуя системный вызов ядра.
а разве так можно?
вот именно!
Доктор, вопрос не в том, что это не нужно в целом и сделано гораздо лучше по-новому, по-моему это невозможно.
Linux Forum → Разговоры о Linux и не только → Самый быстрый линукс
Форум работает на PunBB, при поддержке Informer Technologies, Inc