Или процесс создания linux headers настолько специфичен?
как процессор может отличить длину команды (1, 2, и 3 байт), чтобы выполнить следующую команду ?
Почему кроме команды Остановить все команды занимают 3 байта?
Как происходить выборка команды? Как найти логическую схему выборки команды?
Как реализовать на с или assembler асинхронную выборку из RAM?
memcpy
для MIPS. Этот код не выглядит асинхронным, но написан именно так (сначала групповая загрузка в разные регистры, потом изменение базового адреса загрузки, потом групповое сохранение, потом изменение базового адреса сохранения) с рассчётом на то, что процессор сможет, в том числе, перекрыть во времени операции загрузки, арифметики и сохранения данных. 00000234: xori r16,r16,32768 00000238: addi r16,r16,-32768
Подскажите пожалуйста смысл таких преобразований?
short right = acum & 65535;
. Оно нужно для того, чтобы работать с загруженными в регистры значениями не задумываясь об исходной ширине их типа данных. Т.е. (short)-1
в 64-битном регистре будет представлен как 0xffffffffffffffff, а не как 0xffff. Зачем нужны header guards если в заголовочных файлах мы пишем только объявление функции?
--with-pcre=/usr/lib64/
…
cd /usr/lib64/ \ && if [ -f Makefile ]; then make distclean; fi \ && CC="cc" CFLAGS="-O2 -fomit-frame-pointer -pipe " \ ./configure --disable-shared
--with-pcre
ожидается путь к исходникам PCRE, а не к установленным либам. И судя по этому, так оно и есть. static struct file_operations process_sched_add_module_fops = { … proc_create(PROC_CONFIG_FILE_NAME,0777,NULL,&process_sched_add_module_fops);
proc_ops
, а не на file_operations
. Компилятор должен был бы что-нибудь сказать в этом месте, ты не читаешь его предупреждения?static ssize_t process_sched_add_module_write(struct file *file, const char *buf, size_t count, loff_t *ppos)
__user
у параметра buf
. Этот буфер приходит из юзерспейса, по этой причине ты не можешь лезть в него напрямую функцией kstrtol
. books[nst] = book;
В чём может быть ошибка
books
не выделено место для nst
объектов.раннее были записаны данные в виде двух строчек string и двух чисел int (структуры, в общем)
std::string
, а значит вся затея с fread
обречена на провал. -L путь должен быть полным путем в моей хост машине где производится кросс компиляция или путь относительно пути указанного в параметре sysroot?
=
либо строки $SYSROOT
($SYSROOT не должен быть интерпретирован оболочкой и должен попасть в таком виде в аргументы компилятора), он интерпретируется относительно sysroot.start:
....
mov sp, start + 512 + 1024
org 0x7c00
start:
mov ax, 0
mov ss, ax
mov sp, start + 512 + 1024
mov ax, 0x060 ;(1024+512)/16=96=60h адрес стека после загрузчика в сегментах mov ss, ax ;установка адреса сегмента стека mov sp, 1024 ;установка указателя стека
add ax, 0x060 ;адрес стека после загрузчика в сегментах 0x07C0+0x060
Сгенерировал приватный и публичный ключ на сервере, публичный скопировал на клиентскую машину в файл 'authorized_keys' но аутентификация как и обычно проходит по паролю.
Ок. Возник конфликт. Но почему?
1. Это я неправильно понимаю как должна работать эта команда или здесь что-то пошло не так?
3. Если cherry-pick работает также как merge, то может лучше тогда делать для копирования squash?