DOI: 10.14489/vkit.2024.04.pp.057-064
Мизюков Г. С. РАЗРАБОТКА СИСТЕМНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОСНОВЕ ЧАТ-БОТА CHATGPT (c. 57-64)
Аннотация. Рассмотрены основные аспекты разработки системного программного обеспечения, а именно написание программного кода простейшего драйвера устройства с помощью чат-бота ChatGPT. Перечислены затруднения, с которыми могут столкнуться разработчики в процессе разработки драйвера, предложены пути их возможного решения, например, с помощью повышения уровня их собственных знаний или с использованием современных инструментов, в том числе нейронных сетей. Проведен обзор существующих исследований в области разработки и тестирования системного программного обеспечения. Рассмотрены существующие инструменты разработки программного обеспечения: среды разработки, инструменты для отладки, профилирования, тестирования и статического анализа, а также решения в области управления версиями и совместной работы. Указаны плюсы и минусы разработки драйверов устройств для операционных систем Windows и Linux. Описаны этапы процесса генерации программного кода драйвера для компьютерной мыши с помощью ChatGPT. Приведены примеры сгенерированного программного кода драйвера для операционных систем Windows и Linux, показаны перспективы использования чат-бота ChatGPT в задачах разработки системного программного обеспечения.
Ключевые слова: системное программное обеспечение; программирование; драйвера устройств; искусственный интеллект; нейронные сети.
Miziukov G. S. DEVELOPMENT OF SYSTEM SOFTWARE BASED ON THE CHATGPT CHAT-BOT (pp. 57-64)
Abstract. The article discusses the main aspects of system software development, namely writing program code for a simple device driver using the ChatGPT chat bot. The introduction outlines the main difficulties (hardware, software, complexity of debugging and testing, and security issues) that developers may encounter during driver development, as well as ways to possibly solve them: for example, by increasing the level of their theoretical knowledge or using modern tools, such as neural networks. The main part of the article reviews existing research in the field of system software development and testing. Existing software development tools are reviewed: such as development environments, tools for debugging, profiling, testing and static analysis of program code, as well as solutions in the field of version control and collaboration. A comparative table is provided showing the pros and cons of developing device drivers for Windows and Linux operating systems. The stages of the process of generating driver program code for a computer mouse using the ChatGPT chat bot are described. Conventionally, the article identifies five main stages: preparing training data, training, creating a query, generating and repeating stages in case of an unsatisfactory result. Examples of generated program code for a computer mouse driver for Windows and Linux operating systems are provided. In conclusion, conclusions are given regarding further prospects for using the ChatGPT chatbot in system software development tasks.
Keywords: System software; Programming; Device drivers; Artificial intelligence; Neural networks.
Г. С. Мизюков (Ростовский государственный университет путей сообщения, Ростов-на-Дону, Россия) E-mail:
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
G. S. Miziukov (Rostov State Transport University, Rostov-on-Don, Russia) E-mail:
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
1. Hennessy John L., Patterson David A. Computer Architecture - A Quantitative Approach. 5th ed. San Francisco, USA: Morgan Kaufmann, 2011. 856 p. 2. Silberschatz A., Galvin P. B., Gagne G. Operating system concepts. 7th ed. New York, USA: John Wiley & Sons, 2004. 921 p. 3. Kaner C., Falk J., Nguyen H. O. Testing Computer Software. 2nd ed. London, UK: International Thomson Publishing Company, 1993. 520 p. 4. Howard M., LeBlanc D. Writing Secure Code. 2nd ed. Redmond, USA: Microsoft Press, 2003. 798 p. 5. Трубачева С. И. Системное программное обеспечение: некоторые аспекты проектирования компиляторов // Вестник Волжского университета имени В. Н. Татищева. 2012. № 4(20). С. 102–109. 6. Toward Compositional Verification of Interruptible OS Kernels and Device Drivers / H. Chen, X. Wu, Z. Shao et al. // J. Autom Reasoning 61. 2018. P. 141–189. DOI: 10.1007/s10817-017-9446-0 7. Radovici A., Culic I. Embedded Systems Software Development / Getting Started with Secure Embedded Systems. Berkeley, CA: Apress, 2022. P. 27–47. 8. Девянин П. Н., Тележников В. Ю., Хорошилов А. В. Формирование методологии разработки безопасного системного программного обеспечения на примере операционных систем // Тр. Института системного программирования РАН. 2021. Вып. 33. № 5. С. 25–40. 9. Степанов В. В., Баранова Е. А. Драйверы Linux: разработка TTY драйвера для устройства PCI // Форум молодых ученых. 2017. № 5(9). С. 1963–1968. 10. Гриценко А. В., Романенко М. В. Алгоритм разработки простого драйвера ядра для Windows 10 // Science Time. 2016. № 3(27). С. 153–158. 11. Овезова Г., Ходжаева Б. Обсуждение системного программного обеспечения, утилитного программного обеспечения и общественного программного обеспечения // Вестник науки. 2023. Вып. 4. № 5(62). С. 759–761. 12. Ammari H. M. An Overview of Sensing Hardware, Standards, Operating Systems, Software Development, and Applications and Systems / Theory and Practice of Wireless Sensor Networks: Cover, Sense, and Inform. Studies in Systems, Decision and Control. V. 214. Cham: Springer, 2023. P. 685–727. 13. Combemale B., Gray J., Rumpe B. ChatGPT in Software Modeling // Softw Syst. Model 22. 2023. P. 777–779. DOI: 10.1007/s10270-023-01106-4 14. What is GDB? // GDB: The GNU Project Debugger [Электронный ресурс]. URL: https://www.sourceware.org/gdb/ (дата обращения: 12.06.2023). 15. Valgrind // Valgrind Home [Электронный ресурс]. URL: https://valgrind.org/ (дата обращения: 12.06.2023). 16. Kumar Anil, Clair Jerry St. CUnit: A Unit Testing Framework for C // CUnit – Table of Contents [Электронный ресурс]. URL: https://cunit.sourceforge.net/doc/index.html (дата обращения: 12.06.2023). 17. Synopsys: сайт. Coverity. Static Analysis // Synopsys [Электронный ресурс]. URL: https://www.synopsys.com/content/dam/synopsys/sig-assets/datasheets/SAST-Coverity-datasheet.pdf (дата обращения: 12.06.2023). 18. Microsoft Learn: Windows Driver Kit (WDK) // Microsoft Learn: Build Skills that Open Doors in Your Career [Электронный ресурс]. URL: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ (дата обращения: 12.06.2023). 19. ForkLog: сайт. Что такое ChatGPT и как им пользоваться? // ForkLog [Электронный ресурс]. URL: https://forklog.com/cryptorium/ai/chto-takoe-chatgpt-i-kak-im-polzovatsya (дата обращения: 12.06.2023). 20. Пенни О., Смит Г. Windows Driver Foundation: разработка драйверов. СПб.: БХВ-Петербург, 2008. 880 с. 21. Комиссарова В. Программирование драйверов для Windows. СПб.: БХВ-Петербург, 2007. 256 с.
1. Hennessy John L., Patterson David A. (2011). Computer Architecture - A Quantitative Approach, 5th ed. San Francisco: Morgan Kaufmann. 2. Silberschatz A., Galvin P. B., Gagne G. Operating system concepts, 7th ed. New York: John Wiley & Sons. 3. Kaner C., Falk J., Nguyen H. O. (2003). Testing Computer Software, 2nd ed. London: International Thomson Publishing Company. 4. Howard M., LeBlanc D. (2003). Writing Secure Code, 2nd ed. Redmond: Microsoft Press. 5. Trubacheva S. I. (2012). System software: some aspects of compiler design. Vestnik Volzhskogo universiteta imeni V. N. Tatishcheva, 20(4), 102 – 109. [in Russian language] 6. Chen H., Wu X., Shao Z. et al. (2018). Toward Compositional Verification of Interruptible OS Kernels and Device Drivers. Journal of Automated Reasoning, 61, 141 – 189. Retrieved from https://doi.org/10.1007/s10817-017-9446-0 (Accessed: 10.06.2023). 7. Radovici A., Culic I. (2022). Embedded Systems Soft-ware Development. Getting Started with Secure Embedded Systems, 27 – 47. Berkeley: Apress. 8. Devyanin P. N., Telezhnikov V. Yu., Horoshilov A. V. (2021). Formation of a methodology for developing secure system software using the example of operating systems. Trudy Instituta sistemnogo programmirovaniya RAN, 33(5), 25 – 40. [in Russian language] 9. Stepanov V. V., Baranova E. A. (2017). Linux Drivers: Developing a TTY Driver for a PCI Device. Forum molodyh uchenyh, 9(5), 1963 – 1968. [in Russian language] 10. Gritsenko A. V., Romanenko M. V. (2016). Algorithm for developing a simple kernel driver for Windows 10. Science Time, 27(3), 153 – 158. [in Russian language] 11. Ovezova G., Hodzhaeva B. (2023). Discussion of system software, utility software, and community software. Vestnik nauki, Vol. 4 62(5), 759 – 761. [in Russian language] 12. Ammari H. M. (2023). An Overview of Sensing Hardware, Standards, Operating Systems, Software Development, and Applications and Systems. Theory and Practice of Wireless Sensor Networks: Cover, Sense, and Inform. Studies in Systems, Decision and Control, 214, 685 – 727. Cham: Springer. 13. Combemale B., Gray J., Rumpe B. (2023). ChatGPT in software modeling. Software and Systems Modeling, 22, 777 – 779. Retrieved from https://doi.org/10.1007/s10270-023-01106-4 (Accessed: 10.06.2023). 14. What is GDB? GDB: The GNU Project Debugger. Retrieved from https://www.sourceware.org/gdb/ (Accessed: 12.06.2023). 15. Valgrind. Valgrind Home. Retrieved from https://valgrind.org/ (Accessed: 12.06.2023). 16. Kumar Anil, Clair Jerry St. CUnit: A unit testing framework for C. CUnit – Table of Contents. Retrieved from https://cunit.sourceforge.net/doc/index.html (Accessed: 12.06.2023). 17. Coverity. Static Analysis. Synopsys. Retrieved from https://www.synopsys.com/content/dam/synopsys/sigassets/data-sheets/SAST-Coverity-datasheet.pdf (Accessed: 12.06.2023). 18. Microsoft Learn: Windows Driver Kit (WDK). Microsoft Learn: Build skills that open doors in your career. Retrieved from https://learn.microsoft.com/en-us/windows-hard-ware/drivers/ddi/ (Accessed: 12.06.2023). 19. What is ChatGPT and how to use it? Retrieved from https://forklog.com/cryptorium/ai/chto-takoe-chatgpt-i-kak-im-polzovatsya (Accessed: 12.06.2023). [in Russian language] 20. Penni O., Smit G. (2008). Windows Driver Foundation: Driver Development. BHV-Peterburg. [in Russian language] 21. Komissarova V. Driver programming for Windows. BHV-Peterburg. [in Russian language]
Статью можно приобрести в электронном виде (PDF формат).
Стоимость статьи 500 руб. (в том числе НДС 20%). После оформления заказа, в течение нескольких дней, на указанный вами e-mail придут счет и квитанция для оплаты в банке.
После поступления денег на счет издательства, вам будет выслан электронный вариант статьи.
Для заказа скопируйте doi статьи:
10.14489/vkit.2024.04.pp.057-064
и заполните форму
Отправляя форму вы даете согласие на обработку персональных данных.
.
This article is available in electronic format (PDF).
The cost of a single article is 500 rubles. (including VAT 20%). After you place an order within a few days, you will receive following documents to your specified e-mail: account on payment and receipt to pay in the bank.
After depositing your payment on our bank account we send you file of the article by e-mail.
To order articles please copy the article doi:
10.14489/vkit.2024.04.pp.057-064
and fill out the form
.
|