The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Интервью с разработчиком TuxOnIce, реализации 'спящего режим..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Интервью с разработчиком TuxOnIce, реализации 'спящего режим..."  +/
Сообщение от opennews (??) on 19-Июн-11, 10:37 
Александр Наталенко опубликовал (http://natalenko.name/myfiles/interviews/nigelc_rus.html) интервью с Найджелом Каннингемом (Nigel Cunningham), разработчиком подсистемы TuxOnIce (http://www.tuxonice.net/) (до переименования - Suspend2) для Linux ядра, реализующей поддержку "спящего" режима со сбросом образа памяти на диск. Кроме проекта TuxOnIce, Найджел также участвует в разработке свободной среды дистанционного обучения Moodle (http://moodle.org/) и системы управления web-контентом Drupal, совмещая низкоуровневое программирование на языке Си с разработкой web-приложений на PHP. В повседневной практике Найджел использует Ubuntu Linux, в качестве рабочего окружения используется Xfce4 с панелью AWN.


Найджел разрабатывает TuxOnIce практически в одиночку, кроме людей временами присылающих патчи, основную работу (дизайн, разработка, поддержка и документация) выполняет один человек. Тем не менее, TuxOnIce хоть и медленно но совершенствуется, например, последний выпуск TuxOnIce 3.2 в...

URL: http://lkml.org/lkml/2011/6/18/98
Новость: http://www.opennet.me/opennews/art.shtml?num=30922

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +2 +/
Сообщение от Аноним (??) on 19-Июн-11, 10:37 
В стандартном саспенде оче не хватает сжатия для быстрой гибернации и сбрасывания памяти в файл потому что апгрейды памяти(да и держать 16 гиг свопа как то несуразно).
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от postfactum on 19-Июн-11, 11:19 
В стандартной гибернации не так давно уже появилось сжатие.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  –1 +/
Сообщение от pavlinux (ok) on 19-Июн-11, 12:40 
Процедура сжатия вряд ли ускорит процесс засыпания.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от Аноним (??) on 19-Июн-11, 12:46 
Должна. Проблем же в том, что память долго на диск сбрасывается/читается, проц не нагружен. Сжатие должно уменьшить размер путем нагрузки проца, на современных 4х ядерных это вполне допустимо, я считаю.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  –2 +/
Сообщение от Аноним (??) on 19-Июн-11, 15:07 
>на современных 4х ядерных это вполне допустимо

на современных SSD это не нужно

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от Аноним (??) on 19-Июн-11, 15:15 
Ссд редки, например. Да и всеравно, сколько на ссд будет записываться 3 гигабайта? 10 секунда в лучшем случае, не самое приятное ощущения в плане юзабилити.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

10. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от Аноним (??) on 19-Июн-11, 19:10 
У меня не самая быстра SSD (из первого поколения, 100мб/с чтение-запись), проц C2D 2.4, 4Gb RAM, засыпаю в файл (без свопа), сжатие LZO. Вермя засыпания/просыпания сильно зависит от занятой RAM, это может быть от пары секунд до 15-20.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

20. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от аноно on 20-Июн-11, 08:12 
Лол, нафик так жить. У меня на SSD Mageia загружается за 12,5 секунд без всяких спящих режимов и плясок с конфигами.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

21. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от smile (??) on 20-Июн-11, 09:14 
загрузка "рабочего стола" и "всего что нужно, уже открытых документов, проектов и прочего в том состоянии, с которого ты поднялся со стула N часов назад" - это две большие разницы.
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

7. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от pro100master (ok) on 19-Июн-11, 16:00 
Но ускорит просыпание. Что важнее :)
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

8. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +3 +/
Сообщение от Аноним (??) on 19-Июн-11, 18:45 
> Процедура сжатия вряд ли ускорит процесс засыпания.

Современные алгоритмы сжатия вполне могут ускорить запись на диск. Например LZO2 и QuickLZ на минимальных степенях сжатия могут запросто упереться в диск, при этом все еще давая сжатие в пару раз. Так можно запросто выиграть по времени. А уж распаковка LZ-алгоритмов нынче легко достигает гигабайтов в секунду и может даже обогнать стандартный memcpy() за счет меньшего объема в src при том же объеме dst.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

9. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от Аноним (??) on 19-Июн-11, 18:54 
Что, в общем-то, и демонстрирует btrfs при включенном сжатии. Скорость возрастает.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от pavlinux (ok) on 19-Июн-11, 22:52 
> Что, в общем-то, и демонстрирует btrfs при включенном сжатии. Скорость возрастает.

Теоретики млин...

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

12. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от Аноним (??) on 20-Июн-11, 00:30 
http://www.phoronix.com/scan.php?page=article&item=btrfs_lzo...
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +1 +/
Сообщение от pavlinux (ok) on 20-Июн-11, 02:40 
> phoronix.com

Хорошо хоть на сайт к Кашпировскому не послал. ;)

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  –1 +/
Сообщение от pavlinux (ok) on 20-Июн-11, 04:15 
В двух словах:

Учитывая то, что сжатые данные надо всё таки записать на диск, то скорость
сжатия должна быть, минимум, в двое быстрее записи на этот диск.
То есть, имея 100МБ/c диск, плющить надо со скоростью 200Мб/c (это округлённые цифры).

А с точки зрения оптимальности по размеру, при скорости сжатия равной
скорости диска, коэффициент не превысит 0.10 (между прочим не плохая цифра)
И только уменьшая этот коэффициент получим прирост в скорости.


---

Почему БТР быстро работает?!! Да потому-что 30% времени он них...я не делает.
Точнее делает, но скорости от этого не прибавляется. Так что он компенсирует
алгоритмами сжатия собственную заторможенность, так сказать, на чужой шее выехал.


Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

15. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +2 +/
Сообщение от Eugeni Dodonov email(ok) on 20-Июн-11, 05:23 
> Учитывая то, что сжатые данные надо всё таки записать на диск, то скорость сжатия должна быть, минимум, в двое быстрее записи на этот диск.

[root@acergeni-x86_64 22:18:13 /home/eugeni] $ dd if=/dev/mem | lzop -1  | wc -c
5750784+0 records in
5750784+0 records out
2944401408 bytes (2,9 GB) copied, 34,7794 s, 84,7 MB/s
859838555

[root@acergeni-x86_64 22:19:11 /home/eugeni] $ hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 194 MB in  3.01 seconds =  64.47 MB/sec

В моем конкретном случае lzo, пусть даже с минимальной компрессией, уже намного поможет. Вместо того чтобы записать 3GB со скоростью 65.47MB/s надо будет записать только 860MB, которые поступают со скоростью 84.7MB/s.

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

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от pavlinux (ok) on 20-Июн-11, 06:07 
>[оверквотинг удален]
> [root@acergeni-x86_64 22:19:11 /home/eugeni] $ hdparm -t /dev/sda
> /dev/sda:
>  Timing buffered disk reads: 194 MB in  3.01 seconds =
>  64.47 MB/sec
> В моем конкретном случае lzo, пусть даже с минимальной компрессией, уже намного
> поможет. Вместо того чтобы записать 3GB со скоростью 65.47MB/s надо будет
> записать только 860MB, которые поступают со скоростью 84.7MB/s.
> Причем это не совсем корректный тест, так как я вообще всю память
> читаю - при suspend нужно прочитать/записать только те страницы которые используются.
> С какой стороны ни посмотри - компрессия намного выгоднее.

Никанает ;)


# echo 3 > /proc/sys/vm/drop_caches; sync; sync; sync; time dd if=/dev/mem | lzop -1 > /RAM.lzo;
2097152+0 записей считано
2097152+0 записей написано
скопировано 1073741824 байта (1,1 GB), 15,5731 c, 68,9 MB/c

real    0m15.598s
user    0m8.506s
sys    0m14.699s

# echo 3 > /proc/sys/vm/drop_caches; sync; sync; sync; time dd if=/dev/mem > /RAM.lzo;
2097152+0 записей считано
2097152+0 записей написано
скопировано 1073741824 байта (1,1 GB), 11,3049 c, 95,0 MB/c

real    0m11.319s
user    0m0.638s
sys    0m7.514s


Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

17. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от Eugeni Dodonov email(ok) on 20-Июн-11, 06:13 
> Никанает;
>  скопировано 1073741824 байта (1,1 GB), 15,5731 c, 68,9 MB/c
>  скопировано 1073741824 байта (1,1 GB), 11,3049 c, 95,0 MB/c

Да, а если посчитать количество байт что будет записано на диск после lzo vs без lzo и умножить на скорость? Хотя в любом случае мы сравниваем среднюю температуру по больнице :).

(В моем конкретном случае lzo быстрее диска, но это ноутбук - у вас обратная ситуация, я правильно понял?)

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от pavlinux (ok) on 20-Июн-11, 06:26 
>> Никанает;
>>  скопировано 1073741824 байта (1,1 GB), 15,5731 c, 68,9 MB/c
>>  скопировано 1073741824 байта (1,1 GB), 11,3049 c, 95,0 MB/c
> Да, а если посчитать количество байт что будет записано на диск после
> lzo vs без lzo и умножить на скорость? Хотя в любом
> случае мы сравниваем среднюю температуру по больнице :).
> (В моем конкретном случае lzo быстрее диска, но это ноутбук - у
> вас обратная ситуация, я правильно понял?)

Ну как видите 4 секунды. Мы ж за время боремся :)
А сплющил да, 1.1Гб почти до 225 мегов.


Правда это SSD :) (Kingston SSDNow V Series 64GB)

------
Хотя пофигу...


# echo 3 > /proc/sys/vm/drop_caches; sync; sync; sync; time dd if=/dev/mem | lzop -1 > /media/vm/RAM.lzo;

2097152+0 записей считано
2097152+0 записей написано
скопировано 1073741824 байта (1,1 GB), 15,5587 c, 69,0 MB/c

real    0m15.578s
user    0m8.566s
sys    0m14.533s
# echo 3 > /proc/sys/vm/drop_caches; sync; sync; sync; time dd if=/dev/mem > /media/vm/RAM.lzo;

2097152+0 записей считано
2097152+0 записей написано
скопировано 1073741824 байта (1,1 GB), 10,1843 c, 105 MB/c

real    0m10.204s
user    0m0.558s
sys    0m6.206s

---

Хотя, почти работает фишка с размонтированием.

# time (dd if=/dev/mem | lzop -1 > /media/vm/RAM.lzo; umount /media/vm);

real    0m15.472s

# time (dd if=/dev/mem > /media/vm/RAM.lzo; umount /media/vm);

real    0m16.059s

Пол секунды всего.

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

22. "что за фс?"  +/
Сообщение от Вова on 20-Июн-11, 09:38 
Решил повторить, абсолютно другие данные без сжатия:

tupee vvk # echo 3 > /proc/sys/vm/drop_caches; sync; sync; sync; time dd if=/dev/mem | lzop -1 > /RAM.lzo;
dd: чтение «/dev/mem»: Неправильный адрес
6422528+0 записей считано
6422528+0 записей написано
скопировано 3288334336 байт (3,3 GB), 15,1793 c, 217 MB/c

real    0m15.189s
user    0m9.862s
sys    0m13.698s
tupee vvk # echo 3 > /proc/sys/vm/drop_caches; sync; sync; sync; time dd if=/dev/mem > /RAM.lzo;
dd: чтение «/dev/mem»: Неправильный адрес
6422528+0 записей считано
6422528+0 записей написано
скопировано 3288334336 байт (3,3 GB), 97,5896 c, 33,7 MB/c

real    1m37.597s
user    0m0.823s
sys    0m10.380s

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

23. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от Аноним (??) on 20-Июн-11, 09:51 
> # time (dd if=/dev/mem > /media/vm/RAM.lzo; umount /media/vm);

Ошибка эксперимента в копировании всего /dev/mem, в то время как при hybernete неиспользуемые области памяти и дисковые кэши не копируются, а то что остается обычно плохо сжимается. Весь прирост сокращения размера в вашем тесте в основном за счет неиспользуемой памяти, которая остается в очищенном состоянии. Попробуйте  тест повторить, перед копированием забив /dev/random-ом какой-нибудь буфер так, чтобы вся свободная память необнуленной оказалась.

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

26. "согласен"  +/
Сообщение от Вова on 20-Июн-11, 20:28 
так и есть.
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

28. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от Аноним (??) on 21-Июн-11, 12:21 
>Учитывая то, что сжатые данные надо всё таки записать на диск, то скорость

сжатия должна быть, минимум, в двое быстрее записи на этот диск.

C чего это? Применяя потоковое сжатие, можно даже чтоб скорость записи на диск была быстрее, если сжатые данные будут достатчно сжаты.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

40. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от pavlinux (ok) on 22-Июн-11, 14:15 
>>Учитывая то, что сжатые данные надо всё таки записать на диск, то скорость
> сжатия должна быть, минимум, в двое быстрее записи на этот диск.
> C чего это? Применяя потоковое сжатие, можно даже чтоб скорость записи на
> диск была быстрее, если сжатые данные будут достатчно сжаты.

Пример потокового сжатия на 100 MB/c

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

24. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  –1 +/
Сообщение от Аноним (??) on 20-Июн-11, 15:53 
С каких пор Си стал низкоуровневым ?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

25. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от pavlinux (ok) on 20-Июн-11, 18:13 
> С каких пор Си стал низкоуровневым ?

Язык имеющий директиву asm() - низкоуровневый (Это такое неофициальный критерий)

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

27. "Интервью с разработчиком TuxOnIce, реализации спящего..."  +1 +/
Сообщение от anonymous (??) on 21-Июн-11, 03:58 
>> С каких пор Си стал низкоуровневым ?
> Язык имеющий директиву asm() - низкоуровневый (Это такое неофициальный критерий)

лол. у меня есть низкоуровневый basic.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

29. "Интервью с разработчиком TuxOnIce, реализации спящего..."  +/
Сообщение от pavlinux (ok) on 21-Июн-11, 22:18 
>>> С каких пор Си стал низкоуровневым ?
>> Язык имеющий директиву asm() - низкоуровневый (Это такое неофициальный критерий)
> лол. у меня есть низкоуровневый basic.

ЛоЛ будет когда ты узнаешь что на некоторых компах это был единственный язык.

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

38. "Интервью с разработчиком TuxOnIce, реализации спящего..."  +/
Сообщение от anonymous (??) on 22-Июн-11, 00:32 
> ЛоЛ будет когда ты узнаешь что на некоторых компах это был единственный
> язык.

то есть, машинного кода не было?

или тебе дать фото тетрадей, где у меня дизасм 51-го бейсика?

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

39. "Интервью с разработчиком TuxOnIce, реализации спящего..."  +/
Сообщение от pavlinux (ok) on 22-Июн-11, 02:16 
>> ЛоЛ будет когда ты узнаешь что на некоторых компах это был единственный
>> язык.
> то есть, машинного кода не было?
> или тебе дать фото тетрадей, где у меня дизасм 51-го бейсика?

Мне-то зачем, асм есть - низкоуровневый.

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

30. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от Stax (ok) on 21-Июн-11, 22:24 
Ничего себе.

В питоне:
import corepy.arch.x86_64.isa as x86
...

x86.xor(rax, rax)

x86.cmp(rax, 1)
x86.je(lbl_skip)
x86.add(rax, MemRef(rbp, 16, data_size = 64))
...

http://www.corepy.org/

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

31. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от pavlinux (ok) on 21-Июн-11, 22:25 
> Ничего себе.
> В питоне:
> import corepy.arch.x86_64.isa as x86

Без импорта и вызова внешних функций.

а то ведь так и до шеллкода можно докатиться.

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

33. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от Stax (ok) on 21-Июн-11, 22:28 
>> Ничего себе.
>> В питоне:
>> import corepy.arch.x86_64.isa as x86
> Без импорта и вызова внешних функций.

Продемонстрируйте ассемблер в C, в рамках стандартов C89 и POSIX.1-2001, скажем? Если в "питоне нет ассемблера", то его и в C точно так же нет. То, что в неком компиляторе XXX на платформе YYY внезапно доступна директива asm() со специфичным и несовместимым ни с чем другим синтаксисом - нестандартная особенность одной реализации.

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

35. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от pavlinux (ok) on 21-Июн-11, 22:47 
>>> Ничего себе.
>>> В питоне:
>>> import corepy.arch.x86_64.isa as x86
>> Без импорта и вызова внешних функций.
> Продемонстрируйте ассемблер в C, в рамках стандартов C89 и POSIX.1-2001, скажем?

Ты ... или прикалываешься?


void a(){
        __asm("nop");
        __asm("finit");
        __asm("emms");
        __asm("sfence");
}

$ gcc -D__STRICT_ANSI__ -W -Wall -Wextra -ansi -pedantic  -c test.c
$ objdump -d test.o

test.o:     file format elf64-x86-64


Disassembly of section .text:

0000000000000000 <a>:
   0:   55                      push   %rbp
   1:   48 89 e5                mov    %rsp,%rbp
   4:   90                      nop
   5:   9b db e3                finit  
   8:   0f 77                   emms  
   a:   0f ae f8                sfence
   d:   5d                      pop    %rbp
   e:   c3                      retq  

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

36. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от Stax (ok) on 21-Июн-11, 23:01 
Это "не в рамках стандарта", это просто аналог asm, который не отключается ключиком -ansi у gcc.

Вы же не можете запустить этот код на ansi C компиляторе под ARM, например. Или на компиляторе С, полностью совместимом с ansi, но поддерживающим иной от gcc синтаксис ассемблера.

То, что код компилится под gcc - ВООБЩЕ ничего не говорит о соответствии стандарту! Найдите упоминание, что в языке C есть asm() или __asm() - у Кернигана, например, или в спецификации ANSI, или в других. В C по стандарту ассемблера нет и быть не может, а вы всего лишь продемонстрировали gcc-специфичное расширение, работающее только на x86 архитектуре.

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

37. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от pavlinux (ok) on 21-Июн-11, 23:46 
> Это "не в рамках стандарта", это просто аналог asm, который не отключается
> ключиком -ansi у gcc.

Да, да, да начались отмазки.

---

Вот тут исходники UNIX System III, за 11 апреля 1980 года

ftp://pdp11.org.ru/pub/unix-archive/PDP-11/Distributions/usd...

там в /usr/src/uts/vax/os/machdep.c

mtpr(regno, value)
{
        asm("   mtpr    8(ap),4(ap)");
}

mfpr(regno)
{
        asm("   mfpr    4(ap),r0");
}

/*
* copy count bytes from from to to.
*/
bcopy(from, to, count)
caddr_t from, to;
{
        asm("   movc3   12(ap),*4(ap),*8(ap)");
}

/usr/src/lib/lib2/SYS.c


#ifdef vax
_mfpr(reg)
{
        asm("   mfpr    4(ap),r0");
}

_mtpr(reg, val)
{
        asm("   mtpr    8(ap),4(ap)");
}
#endif


Столман тогда ещё лысого гонял в школе.

----

Добиваем дальше

http://flash-gordon.me.uk/ansi.c.txt


A.6.5.10 The asm keyword

   The asm keyword may be used to insert assembly-language code
directly into the translator output.  The most common implementation
is via a statement of the form

         asm (  character-string-literal );

ANSI пойдёт?!

Мало?!

ISO/IEC 9899:201x  http://www.open-std.org/jtc1/sc22/wg14/www/projects#9899


J.5.10 The asm keyword
1
The asm keyword may be used to insert assembly language directly into the translator
output (6.8). The most common implementation is via a statement of the form:

asm ( character-string-literal );


Теперь показывай столько же стандартов на Пидон, кусок кода
из системной библиотеки, операционной системы иль драйвера.

Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

32. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от Stax (ok) on 21-Июн-11, 22:26 
А если вы вдруг скажете, что это ассемблер "со стороны", а не в языке - так в C тоже в языке ассемблера никакого нет, и спецификация POSIX директивы asm() так же не требует; слишком специфичная для платформы и реализации, и в "C вообще" доступа к ассемблеру так же нет.
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

34. "Интервью с разработчиком TuxOnIce, реализации спящего режима..."  +/
Сообщение от pavlinux (ok) on 21-Июн-11, 22:31 
> А если вы вдруг скажете, что это ассемблер "со стороны", а не
> в языке - так в C тоже в языке ассемблера никакого
> нет, и спецификация POSIX директивы asm() так же не требует; слишком
> специфичная для платформы и реализации, и в "C вообще" доступа к
> ассемблеру так же нет.

для таких зануд сделали __asm

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру