Очередной релиз. Основные новшества: функция автоматического исправления наклона страницы (deskew) и улучшенный пользовательский интерфейс.
Страница проекта: http://symmetrica.net/cuneiform-linux/yagf-ru.html

Очередной релиз. Основные новшества: функция автоматического исправления наклона страницы (deskew) и улучшенный пользовательский интерфейс.
Страница проекта: http://symmetrica.net/cuneiform-linux/yagf-ru.html

Речь пойдет о запуске полноценного дистрибутива Linux на устройствах, на которых уже установлен урезанный Linux. Проще говоря, на устройствах с Android и Angstrom.
Этот способ установки является на сегодняшний день самым безболезненным для девайса, что хорошо подходит тем, кто хочет по-прежнему пользоваться устройством по назначению, а не только как площадкой для тестирования Linux. При использовании этого способа файлы Linux вообще не будут устанавливаться на устройство с Андроидом. Вместо этого мы установим их на USB-флешку. Читать дальше…
Номера и порядок передачи аргументов системных вызовов ARM Linux соответствуют таковым на платформе Intel, и это очень хорошо и правильно. Существует два режима системных вызовов – старый и новый (новый является частью стандарта EABI). Нынешние ядра ARM Linux поддерживают оба режима, но использовать режим EABI, разумеется, предпочтительнее. У двух режимов много общего: аргументы вызова передаются в регистрах r0-r6, а сам вызов выполняется с помощью инструкции SWI.
В старом режиме номер вызова является частью операнда инструкции SWI. Операнд инструкции выглядит так:
MOV r0, дескриптор_файла; MOV r1, адрес_буфера; MOV r2, длина_буфера; SWI 0x900004;
В режиме EABI номер вызова передается в регистре r7, а операндом SWI всегда является значение 0×0. Еще одно отличие связано с передачей 64-битных аргументов. В обоих режимах их передают в паре 32-битных регистров, но в старом режиме это просто два следующих не занятых регистра, а в режиме EABI – следующая пара регистров, в которой первый регистр имеет четный номер. Тот же вызов _write() в режиме EABI будет выглядеть так:
MOV r0, дескриптор_файла; MOV r1, адрес_буфера; MOV r2, длина_буфера; MOV r7, #4; SWI 0x0;
Помимо прочего, между двумя режимами существует одно, не сразу заметное, различие: режим EABI может использовать как в режиме ARM MODE (32-битные инструкции), так и в более компактном THUMB MODE. Старый режим не может использоваться в THUMB MODE просто потому, что число 0×900000 не поместится в 16-битном операнде инструкции SWI режима THUMB.
Ну и напоследок, описания нескольких системных вызовов ARM Linux. Зная общий принцип, остальные описания легко «конвертировать» из описаний аналогичных вызовов для Intel.
| Номер | Обозначение | Используемые регистры |
| 1 | sys_exit() | r0 |
| 3 | sys_read() | r0, r1, r2 |
| 4 | sys_write() | r0, r1, r2 |
| 5 | sys_open() | r0, r1, r2 |
| 6 | sys_close() | r0 |
Размер исполнимого файла обычной программы Hello World при сборке в моей системе (X86-64, Linux) после выполнения strip составляет 6208 байтов. Для ARM Linux (ARMv9) — 2720 байтов. Можно ли улучшить эти результаты? Читать дальше…
Хотели бы вы иметь компьютер с возможностями, близкими к возможностям нетбука, с встроенными портами Ethernet и USB и энергопотреблением не боле 3-х Ватт? Для сравнения: энергопотребление современного нетбука (без учета энергии, потребляемой монитором!) колеблется в районе 10-15 Ватт, хотя и тут есть свои чемпионы. Низкое энергопотребление это не только экономия электроэнергии и возможность долго работать от автономного источника питания (буде таковая необходимость возникнет), это еще и отсутствие активного охлаждения, то есть шумных и ломких вентиляторов.
В общем, я говорю о компьютере, который можно оставлять включенным, уезжая из дому хоть на месяц, о компьютере, который сможет часами функционировать, используя обычный аккумулятор, который работает совершенно беззвучно (не считая шелеста электронов, бегущих по проводам) и который не перегреется от того что у него сломался вентилятор. Не знаю как вы, а я хочу такой компьютер. И не только по тем причинам, которые я перечислил. Читать дальше…