31

yxma,  oO
Любой язык работает на уровне ассемблера при помощи компилятора.
Или вам ассемблер в Linux нужен? oO

Linux Mint 19.3 Mate Edition
Windows 7

32

какой линукс быстрее?))) ну из этой темы можно холивар начать) каждому свое (FreeBSD рулит!)

33 (23.02.2011 23:20:47 отредактировано Wolfenberg)

foozzi, быстрее всего работают тонкие клиенты, загруженные в ОЗУ wink
Остальные-одинаково. Зависит от железа, поставленных задач и криворукости юзверя.

Linux Mint 19.3 Mate Edition
Windows 7

34 (23.02.2011 23:22:52 отредактировано foozzi)

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

35

Wolfenberg пишет:

Любой язык работает на уровне ассемблера при помощи компилятора.

Это слишком мутная фраза для технического форума. Тем более для модератора.
Легион подозревает, что вы не в теме.

36 (24.02.2011 00:02:42 отредактировано yxma)

Wolfenberg пишет:

yxma,  oO
Любой язык работает на уровне ассемблера при помощи компилятора.
Или вам ассемблер в Linux нужен? oO

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

друзья, давайте заменим чсВ на ЧСД!
Проблемы. Глюки. Красные глаза. Так будет с каждым, кто не хочет сменить Ubuntu на минт-росинку9
Знаю, что росинка - внучка убунты, значит, неизбежны родимые пятна. Но бабулька-то куда страшнее!
Но наш слакварь стоит на запасном пути. Он ждет своего часа. Может, когда док вернется из бана?

37

yxma,  по вашему вопросу:
цитата
"

Хотя программирование на ассемблере в Unix-мире считается моветоном, поскольку нарушает один из основополагающих принципов юникс-вея «жертвуй производительностью ради переносимости», даже тут находится место разногласиям, способным вылиться в настоящую драму.
Дело в том, что встроенный ассемблер большинства Unix-ов (и Linux в том числе) использует синтаксис (AT&T-синтаксис), в корне отличающийся от оригинального Intel-синтаксиса. А поскольку Intel-синтаксис у большинства труЪ-линуксоидов прочно ассоциируется с маздаем, он объявляется ересью, и всем, кто пользуется nasm, yasm или fasm пророчатся вечные муки, страшный суд, ад и погибель, хотя gas тоже владеет интеловским синтаксисом. Правда все ELF-инфекторы всё же приходится писать на старом добром асме.
Алсо какой либо годной документации по ассемблеру AT&T в интернете хрен найдешь (зато на официальном сайте компании AT&T[5] можно купить сотовый телефон). По этой причине программистов на AT&T крайне мало.

"
отсюда
http://lurkmore.ru/Assembler

38

О, вспомнил какой самый быстрый - любой на SSD  smile

39

yxma, хех. Если вам не жалко угробить кучу времени, то можете взять в руки инженерный калькулятор и засесть за алгоритмику. smile
И помните, программа будет не только шустрее, но и легче. Самый яркий пример: игра DOOM 3. wink
К тому же Assembler является на 100% Freeware.

Linux Mint 19.3 Mate Edition
Windows 7

40

yxma пишет:

А что знатоки расскажут об опыте создания линукса на ассемблере? Как будто такой был?

не было, GnuLinux (ядро) написано на C.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

41

nuc пишет:

Это слишком мутная фраза для технического форума. Тем более для модератора.
Легион подозревает, что вы не в теме.

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

yxma пишет:

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

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

nuc пишет:

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

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

Wolfenberg пишет:

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

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

42 (24.02.2011 12:23:42 отредактировано bobr)

drBatty пишет:

флажок достанется генте

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

mvt пишет:

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

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

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

Йа тьомный эльф

43

bobr пишет:

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

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

bobr пишет:

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

конечно.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

44

drBatty пишет:

Легион может простить некоторую мутность

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

drBatty пишет:

4.2

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

drBatty пишет:

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

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

drBatty пишет:

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

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

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

45

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

46

redux пишет:

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

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

redux пишет:

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

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

redux пишет:

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

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

47

redux пишет:

А оно то на С написано!

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

redux пишет:

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

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

48 (24.02.2011 14:56:06 отредактировано redux)

drBatty пишет:

что это меняет?

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

drBatty пишет:

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

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

49

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

Linux Mint 19.3 Mate Edition
Windows 7

50

Wolfenberg пишет:

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

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

Wolfenberg пишет:

redux, плохо знаете BIOS.

Простите, но вы кажется имеете в виду хождение по синим окошкам после включения компа  ag

51

Wolfenberg пишет:

overclock utilities.

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

52

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

Linux Mint 19.3 Mate Edition
Windows 7

53

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

drBatty пишет:

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

ассмкод можно вообще прям в код на с втсавлять, вот файл 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
бинарник создается.
Когда я говорил что ядро написано на С я имел в видуи по контесту как раз, аппартно-зависимые вещи, о которых и вы говорили= в плане зависимости от архитектуры.

54

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

Linux Mint 19.3 Mate Edition
Windows 7

55

redux пишет:

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

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

redux пишет:

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

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

Wolfenberg пишет:

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

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

redux пишет:

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

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

56

Wolfenberg пишет:

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

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

57

redux пишет:

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

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

ПатреГ не любит Gnome...

58

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);
}
только чтобы прерывание вызвалось.

59

redux пишет:

ассмкод можно вообще прям в код на с втсавлять

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

redux пишет:

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

redux пишет:

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

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

60

Termo пишет:

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

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