Журналов:     Статей:        

Радиопромышленность. 2020; 30: 47-53

Поддержка работы со звуковой подсистемой ALSA в бинарном компиляторе уровня приложений x86→«Эльбрус»

Носкова Е. С., Рожин А. Ф.

https://doi.org/10.21778/2413-9599-2020-30-1-47-53

Аннотация

Успешность аппаратной платформы во многом определяется набором доступного на ней программного обеспечения. Именно поэтому очень актуальной является задача расширения базы приложений, запускаемых на платформе «Эльбрус». Один из способов ее решения – использование технологии бинарной компиляции. Работа многих современных приложений так или иначе связана с обработкой звука. Одной из наиболее популярных библиотек для работы со звуковыми устройствами в операционных системах семейства Linux на сегодняшний день является библиотека ALSA. Ее функциональность базируется на наборе команд системного вызова ioctl, которые в бинарном компиляторе x86→«Эльбрус» до недавнего времени не поддерживались. Поэтому возникла задача реализации поддержки команд ALSA-ioctl в этом бинарном компиляторе. Для ее решения были изучены средства, при помощи которых эта технология реализована в ядре Linux. Полученные знания были применены для разработки собственных для бинарного компилятора средств, которые сделали возможным использование ALSA в транслируемых под архитектуру «Эльбрус» приложениях.

Список литературы

1. Alsa project. [Электронный ресурс]. URL: https://alsa-project.org (дата обращения: 23.01.2020).

2. Lin J. M., Cheng W. G., Fang G. M. Software integration for applications with audio stream. 2008 International Conference on Intelligent Information Hiding and Multimedia Signal Processing. IEEE, 2008, pp. 1126–1129.

3. Система динамической двоичной трансляции x86→«Эльбрус» / Н. В. Воронов, В. Д. Гимпельсон, М. В. Mаслов, А. А. Рыбаков, Н. С. Сюсюкалов // Вопросы радиоэлектроники. 2012. Т. 4. № 3. С. 89–108.

4. Kanhere A. S. Instruction and logic to perform dynamic binary translation: патент 9417855. США. 2016.

5. Das A. Support for a non-native application: патент 9766911. США. 2017.

6. Corbet J., Rubini A., Kroah-Hartman G. Linux Device Drivers, 3rd Edition. USA, O’Reilly Media, Inc., 2005, 640 p.

7. Чезати М., Бовет Д. Ядро Linux. СПб.: БХВ-Петербург, 2007. 1105 с.

8. Intel→ 64 and IA-32 Architectures Software Developer’s Manual, vol. 3, Intel Corp., 2006. [Электронный ресурс]. URL: https://www.intel.ru/content/www/ru/ru/architecture-and-technology/64-ia-32-architectures-software-developer-system-programming-manual-325384.html (дата обращения: 22.10.2019).

9. Akshintala A., Jain B., Tsai Ch., Ferdman M., Porter D. x86–64 instruction usage among C/C++ applications. In: Proceedings of the 12th ACM International Conference on Systems and Storage (SYSTOR ’19). New York, Association for Computing Machinery, 2019, pp. 68–79.

10. Остин Т., Таненбаум Э. Архитектура компьютера. СПб.: Питер, 2013. 816 с.

Radio industry (Russia). 2020; 30: 47-53

Support for working with the ALSA sound subsystem in a binary compiler of application level x86→«Elbrus»

Noskova E. S., Rozhin A. F.

https://doi.org/10.21778/2413-9599-2020-30-1-47-53

Abstract

The success of a hardware platform is mainly determined by the software available for it. That is why the problem of enlarging the number of applications launched on the «Elbrus» platform is very acute. One of its possible solutions is the usage of binary compilation technology. The work of many modern applications is somehow related to sound processing. One of the most popular modern libraries for working with sound devices in Linux operating systems is the ALSA library. Its functionality is based on the set of ioctl system call commands. They were not supported in the x86→«Elbrus» binary compiler until recently. Therefore, occurred the issue of implementing support for ALSA-ioctl commands in binary compiler. In order to solve this problem, it was necessary to study the Linux kernel implementation of this technology. The gained knowledge was used to develop proprietary tools for the binary compiler making it possible to use the ALSA in applications translated under the «Elbrus» architecture.

References

1. Alsa project. [Elektronnyi resurs]. URL: https://alsa-project.org (data obrashcheniya: 23.01.2020).

2. Lin J. M., Cheng W. G., Fang G. M. Software integration for applications with audio stream. 2008 International Conference on Intelligent Information Hiding and Multimedia Signal Processing. IEEE, 2008, pp. 1126–1129.

3. Sistema dinamicheskoi dvoichnoi translyatsii x86→«El'brus» / N. V. Voronov, V. D. Gimpel'son, M. V. Maslov, A. A. Rybakov, N. S. Syusyukalov // Voprosy radioelektroniki. 2012. T. 4. № 3. S. 89–108.

4. Kanhere A. S. Instruction and logic to perform dynamic binary translation: patent 9417855. SShA. 2016.

5. Das A. Support for a non-native application: patent 9766911. SShA. 2017.

6. Corbet J., Rubini A., Kroah-Hartman G. Linux Device Drivers, 3rd Edition. USA, O’Reilly Media, Inc., 2005, 640 p.

7. Chezati M., Bovet D. Yadro Linux. SPb.: BKhV-Peterburg, 2007. 1105 s.

8. Intel→ 64 and IA-32 Architectures Software Developer’s Manual, vol. 3, Intel Corp., 2006. [Elektronnyi resurs]. URL: https://www.intel.ru/content/www/ru/ru/architecture-and-technology/64-ia-32-architectures-software-developer-system-programming-manual-325384.html (data obrashcheniya: 22.10.2019).

9. Akshintala A., Jain B., Tsai Ch., Ferdman M., Porter D. x86–64 instruction usage among C/C++ applications. In: Proceedings of the 12th ACM International Conference on Systems and Storage (SYSTOR ’19). New York, Association for Computing Machinery, 2019, pp. 68–79.

10. Ostin T., Tanenbaum E. Arkhitektura komp'yutera. SPb.: Piter, 2013. 816 s.