2013•New computer technologyOpen access

Применение Free Pascal для поддержки курса системного программирования в Unix

Олександр Павлович Поліщук, Сергій Олексійович Семеріков

Open full text 2 citations

Abstract

Одной из составных частей системного программирования является совокупность программных средств интерфейса программиста с операционной системой. В этом классическом определении не учитывается то, что системные программы (утилиты) обязательно должны взаимодействовать и с пользователем, поэтому предполагается наличие минимального пользовательского интерфейса (текстовый режим, командная строка).Интерфейс системных вызовов ОС UNIX отличается стабильностью (более 35 лет разработки), компактностью (менее 1000 базовых системных вызовов) и универсальностью (один системный вызов применим к различным ситуациям). В начале нынешнего десятилетия интерфейс системных вызовов ОС UNIX стал основой международного стандарта переносимого открытого программного обеспечения (POSIX).Таким образом, освоение системного программирования в ОС UNIX дает возможность в дальнейшем создавать мобильное программное обеспечение под любую современную операционную систему, удовлетворяющую требования стандарта POSIX (Windows NT/2000/2003/XP, UNIX-подобные системы Linux, FreeBSD, Solaris, Mac OS X).Традиционно в качестве языка системного программирования используется язык Си. Это, в частности, обусловлено тем, что становление языка Си и ОС UNIX проходило в одно и то же время в одном и том же авторском коллективе. Долгое время язык Си выгодно отличался от конкурирующих процедурных языков гибкостью, простотой, переносимостью и компактностью записи. В то же время на рынке образовательных услуг чаще использовался язык Паскаль, отличавшийся высокой степенью формализации и структурирования программ. Как язык для начального обучения программированию, он четко реализовал в своем синтаксисе основные алгоритмические конструкции, содержал в качестве ключевых слова английского языка, имел самоочевидные имена процедур и функций.В процессе своего развития язык Си стал более четко структурированным, менее терпимым к свободной работе с указателями, более полно соответствующим парадигмам структурного программирования. В свою очередь, Паскаль приобрел ограниченную адресную арифметику, способность гибко управлять циклами, модульную структуру и другие позаимствованные у языка Си средства. Такое взаимное обогащение языков-конкурентов привело к тому, что постепенно оба они стали применяться и в системном, и в прикладном программировании.Наивысшая степень гибкости языка Паскаль, эквивалентная Си, но с сохранением традиционного Паскаль-синтаксиса, реализована в кроссплатформенном свободно распространяемом компиляторе Free Pascal.Наличие общих программных библиотек для языков Си и Паскаль, реализованная в семействе компиляторов GCC и Free Pascal, позволяет решать любые задачи одинаковыми или хотя бы однотипными средствами, оставляя различие лишь в синтаксисе.Это позволило нам поставить перед собой следующую цель: создать справочник системного программиста в UNIX на языке Паскаль.Для реализации этой цели мы решили следующие задачи:построили интерфейсную библиотеку к ядру операционной системы UNIX на языке Паскаль, расширяющую функциональность стандартных модулей linux и sysutils;создали аналоги функций библиотеки stdio языка Си для доступа к файлам и процессам;составили систематическое руководство программиста для модулей linux, sysutils и stdio;проиллюстрировали руководство примерами системных утилит.В результате было создано руководство системного программиста в UNIX в среде Free Pascal [1], которое включает такие разделы:Основные понятия и терминологияФайлРабота с файламиКаталоги, файловые системы и специальные файлыПроцессСигналы и их обработкаМежпроцессное взаимодействие при помощи программных каналовДополнительные методы межпроцессного взаимодействияТерминалСокетыСтандартная библиотека ввода/выводаРазные дополнительные системные вызовы и библиотечные процедуры.Особенностью выбранных средств реализации поставленных задач является их открытость, низкая стоимость и переносимость. Это позволяет разработанному программному обеспечению функционировать под управлением многих операционных систем.

Open-access reader

About this research paper

What this paper is about

Одной из составных частей системного программирования является совокупность программных средств интерфейса программиста с операционной системой. В этом классическом определении не учитывается то, что системные программы (утилиты) обязательно должны взаимодействовать и с пользователем, поэтому предполагается наличие минимального пользовательского интерфейса (текстовый режим, командная строка).Интерфейс системных вызовов ОС UNIX отличается стабильностью (более 35 лет разработки), компактностью (менее 1000 базовых системных вызовов) и универсальностью (один системный вызов применим к различным ситуациям). В начале нынешнего десятилетия интерфейс системных вызовов ОС UNIX стал основой международного стандарта переносимого открытого программного обеспечения (POSIX).Таким образом, освоение системного программирования в ОС UNIX дает возможность в дальнейшем создавать мобильное программное обеспечение под любую современную операционную систему, удовлетворяющую требования стандарта POSIX (Windows NT/2000/2003/XP, UNIX-подобные системы Linux, FreeBSD, Solaris, Mac OS X).Традиционно в качестве языка системного программирования используется язык Си. Это, в частности, обусловлено тем, что становление языка Си и ОС UNIX проходило в одно и то же время в одном и том же авторском коллективе. Долгое время язык Си выгодно отличался от конкурирующих процедурных языков гибкостью, простотой, переносимостью и компактностью записи. В то же время на рынке образовательных услуг чаще использовался язык Паскаль, отличавшийся высокой степенью формализации и структурирования программ. Как язык для начального обучения программированию, он четко реализовал в своем синтаксисе основные алгоритмические конструкции, содержал в качестве ключевых слова английского языка, имел самоочевидные имена процедур и функций.В процессе своего развития язык Си стал более четко структурированным, менее терпимым к свободной работе с указателями, более полно соответствующим парадигмам структурного программирования. В свою очередь, Паскаль приобрел ограниченную адресную арифметику, способность гибко управлять циклами, модульную структуру и другие позаимствованные у языка Си средства. Такое взаимное обогащение языков-конкурентов привело к тому, что постепенно оба они стали применяться и в системном, и в прикладном программировании.Наивысшая степень гибкости языка Паскаль, эквивалентная Си, но с сохранением традиционного Паскаль-синтаксиса, реализована в кроссплатформенном свободно распространяемом компиляторе Free Pascal.Наличие общих программных библиотек для языков Си и Паскаль, реализованная в семействе компиляторов GCC и Free Pascal, позволяет решать любые задачи одинаковыми или хотя бы однотипными средствами, оставляя различие лишь в синтаксисе.Это позволило нам поставить перед собой следующую цель: создать справочник системного программиста в UNIX на языке Паскаль.Для реализации этой цели мы решили следующие задачи:построили интерфейсную библиотеку к ядру операционной системы UNIX на языке Паскаль, расширяющую функциональность стандартных модулей linux и sysutils;создали аналоги функций библиотеки stdio языка Си для доступа к файлам и процессам;составили систематическое руководство программиста для модулей linux, sysutils и stdio;проиллюстрировали руководство примерами системных утилит.В результате было создано руководство системного программиста в UNIX в среде Free Pascal [1], которое включает такие разделы:Основные понятия и терминологияФайлРабота с файламиКаталоги, файловые системы и специальные файлыПроцессСигналы и их обработкаМежпроцессное взаимодействие при помощи программных каналовДополнительные методы межпроцессного взаимодействияТерминалСокетыСтандартная библиотека ввода/выводаРазные дополнительные системные вызовы и библиотечные процедуры.Особенностью выбранных средств реализации поставленных задач является их открытость, низкая стоимость и переносимость. Это позволяет разработанному программному обеспечению функционировать под управлением многих операционных систем.

Why it matters

OpenAlex reports 2 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

Одной из составных частей системного программирования является совокупность программных средств интерфейса программиста с операционной системой. В этом классическом определении не учитывается то, что системные программы (утилиты) обязательно должны взаимодействовать и с пользователем, поэтому предполагается наличие минимального пользовательского интерфейса (текстовый режим, командная строка).Интерфейс системных вызовов ОС UNIX отличается стабильностью (более 35 лет разработки), компактностью (менее 1000 базовых системных вызовов) и универсальностью (один системный вызов применим к различным ситуациям). В начале нынешнего десятилетия интерфейс системных вызовов ОС UNIX стал основой международного стандарта переносимого открытого программного обеспечения (POSIX).Таким образом, освоение системного программирования в ОС UNIX дает возможность в дальнейшем создавать мобильное программное обеспечение под любую современную операционную систему, удовлетворяющую требования стандарта POSIX (Windows NT/2000/2003/XP, UNIX-подобные системы Linux, FreeBSD, Solaris, Mac OS X).Традиционно в качестве языка системного программирования используется язык Си. Это, в частности, обусловлено тем, что становление языка Си и ОС UNIX проходило в одно и то же время в одном и том же авторском коллективе. Долгое время язык Си выгодно отличался от конкурирующих процедурных языков гибкостью, простотой, переносимостью и компактностью записи. В то же время на рынке образовательных услуг чаще использовался язык Паскаль, отличавшийся высокой степенью формализации и структурирования программ. Как язык для начального обучения программированию, он четко реализовал в своем синтаксисе основные алгоритмические конструкции, содержал в качестве ключевых слова английского языка, имел самоочевидные имена процедур и функций.В процессе своего развития язык Си стал более четко структурированным, менее терпимым к свободной работе с указателями, более полно соответствующим парадигмам структурного программирования. В свою очередь, Паскаль приобрел ограниченную адресную арифметику, способность гибко управлять циклами, модульную структуру и другие позаимствованные у языка Си средства. Такое взаимное обогащение языков-конкурентов привело к тому, что постепенно оба они стали применяться и в системном, и в прикладном программировании.Наивысшая степень гибкости языка Паскаль, эквивалентная Си, но с сохранением традиционного Паскаль-синтаксиса, реализована в кроссплатформенном свободно распространяемом компиляторе Free Pascal.Наличие общих программных библиотек для языков Си и Паскаль, реализованная в семействе компиляторов GCC и Free Pascal, позволяет решать любые задачи одинаковыми или хотя бы однотипными средствами, оставляя различие лишь в синтаксисе.Это позволило нам поставить перед собой следующую цель: создать справочник системного программиста в UNIX на языке Паскаль.Для реализации этой цели мы решили следующие задачи:построили интерфейсную библиотеку к ядру операционной системы UNIX на языке Паскаль, расширяющую функциональность стандартных модулей linux и sysutils;создали аналоги функций библиотеки stdio языка Си для доступа к файлам и процессам;составили систематическое руководство программиста для модулей linux, sysutils и stdio;проиллюстрировали руководство примерами системных утилит.В результате было создано руководство системного программиста в UNIX в среде Free Pascal [1], которое включает такие разделы:Основные понятия и терминологияФайлРабота с файламиКаталоги, файловые системы и специальные файлыПроцессСигналы и их обработкаМежпроцессное взаимодействие при помощи программных каналовДополнительные методы межпроцессного взаимодействияТерминалСокетыСтандартная библиотека ввода/выводаРазные дополнительные системные вызовы и библиотечные процедуры.Особенностью выбранных средств реализации поставленных задач является их открытость, низкая стоимость и переносимость. Это позволяет разработанному программному обеспечению функционировать под управлением многих операционных систем.

Key concepts: Unix, POSIX, Unix architecture, Operating system, Pascal (unit), Computer science, Environment variable, Unix filesystem

Related papers

Back to paper searchBrowse research topicsOriginal source
Применение Free Pascal для поддержки курса системного программирования в Unix — Research Paper | ScholarLens