Приложение в OC UNIX
Выполнение анализа основных этапов разработки и отладки приложения в OC UNIX. Приобретение практических навыков по использованию средств разработки при анализе и компиляции исходного кода, тестировании и отладке программ, написанных на языке СИ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 03.06.2015 |
Размер файла | 911,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
РОССИЙСКИЙ УНИВЕРСИТЕТ ДРУЖБЫ НАРОДОВ
Факультет физико-математических и естественных наук
Кафедра прикладной информатики и теории вероятностей
ОТЧЕТ
по лабораторной работе
дисциплина:Операционные системы
Студент: Ирина Емелина
Яббарова Диана
Группа: НП-102
МОСКВА 2015г.
Цель работы:
Выполнить анализ основных этапов разработки и отладки приложения в OC UNIX. Приобрести практические навыки по использованию средств разработки при анализе и компиляции исходного кода, тестировании и отладке программ, написанных на языке СИ.
1. Выполняем вход в систему.
2. В домашнем каталоге создаем подкаталог ~/lab04
3. Создаем файлы calculate.c, calculate.h, main.c
компиляция код программа
4. Выполняем компиляцию программ calculate.c и main.c
Исправляем ошибки:
Ошибки исправлены.
6. Создаем Make-файл и добавляем его в bzr:
Размещено на http://www.allbest.ru/
7. Отладка программы calcul в программе gdb:
Контрольные вопросы:
1.Как получить полную информацию о программах gcc make gdb и др.?
Дополнительную информацию о этих программах можно получить с помощью функций info и man
2.Назовите и дайте краткую характеристику основным этапам разработки приложений в ОС UNIX
Unix поддерживает следующие основные этапы разработки приложений:
-создание исходного кода программы;- представляется в виде файла
-сохранение различных вариантов исходного текста;
-анализ исходного текста; Необходимо отслеживать изменения исходного кода, а также при работе более двух программистов над проектом программы нужно, чтобы они не делали изменений кода в одно время.
-компиляция исходного текста и построение исполняемого модуля;
-тестирование и отладка; - Проверка кода на наличие ошибок
-сохранение всех изменений, выполняемых при тестировании и отладке.
3.Что такое суффиксы и префиксы? Основное их назначение. Приведите примеры их использования
Использование суффикса ".с" для имени файла с программой на языке Си отражает удобное и полезное соглашение, принятое в ОС UNIX.
Для любого имени входного файла суффикс определяет какая компиляция требуется. Суффиксы и префиксы указывают тип объекта. Одно из полезных свойств компилятора Си -- его способность по суффиксам определять типы файлов. По суффиксу .c компилятор распознает, что файл abcd.c должен компилироваться, а по суффиксу .o, что файл abcd.о является объектным модулем и для получения исполняемой программы необходимо выполнить редактирование связей. Простейший пример командной строки для компиляции программы abcd.c и построения исполняемого модуля abcd имеет вид: gcc -o abcd abcd.c.
Некоторые проекты предпочитают показывать префиксы в начале текста изменений для старых (old) и новых (new) файлов. Опция - prefix может быть использована для установки такого префикса. Плюс к этому команда bzr diff -p1 выводит префиксы в форме которая подходит для команды patch -p1.
4.Каковы основные задачи, решаемые инструментальным средством bzr
Bazaar устанавливает единственную новую команду, bzr. Все возможности предоставляются через под-команды этой команды. Одна из функций системы контроля версий -- отслеживать кто сделал изменения. Bazaar достаточно умен, что бы автоматически создавать email адрес из текущего имени и адреса хоста.
Основные задачи:
создание ветки
размещение веток
просмотр изменений
фиксация изменений
сообщение из текстового редактора
выборочная фиксация
удаление зафиксированных изменений
игнорирование файлов
просмотр истории
статистика ветки
контроль файлов и каталогов
ветвление
объединение веток
публикация ветки
5.Назовите и дайте краткую характеристику основным этапам в схеме функционирования bzr
6.Назовите основные команды инструментального средства bzr. Приведите примеры их использования
Мы создаем новую ветку выполнив bzr init в уже созданном каталоге:
% mkdir tutorial
% cd tutorial
% ls -a
./ ../
% pwd
/home/mbp/work/bzr.test/tutorial
%
% bzr init
% ls -aF
./ ../ .bzr/
%
Мы обычно обращаемся к веткам на нашем компьютере просто передав имя каталога содержащего ветку. bzr также поддерживает доступ к веткам через http и sftp, например: bzr log http://bazaar-vcs.org/bzr/bzr.dev/ bzr log sftp://bazaarvcs.org/bzr/bzr.dev/ Установив для bzr плагины можно также осуществлять доступ к веткам с использованием rsync.
Команда status показывает какие изменения были сделаны в рабочем каталоге с момента последней ревизии:
% bzr status
modified:
foo
bzr status скрывает неинтересные файлы, которые либо не менялись, либо игнорируются. Также команде status могут быть переданы необязательные имена файлов, или каталогов для проверки.
Команда diff показывает изменения в тексте файлов в стандартном формате diff. Вывод этой команды может быть передан другим командам, таким как ”patch”, ”diffstat”, ”filterdiff” и ”colordiff”:
% bzr diff
=== added file 'hello.txt'
--- hello.txt 1970-01-01 00:00:00 +0000
+++ hello.txt 2005-10-18 14:23:29 +00006.2. Указания к лабораторной работе 75
@@ -0,0 +1,1 @@
+hello world
Команде commit можно передать сообщение описывающее изменения в ревизии. Она также записывает идентификатор пользователя, текущее время и временную зону, плюс список измененных файлов и их содержимого.
bzr commit -m "добавлен первый файл"
Если вы передадите список имен файлов, или каталогов после команды commit, то будут зафиксированы только изменения для переданных объектов. Например:
bzr commit -m "исправления документации" commit.py
Если вы сделали какие-либо изменения и не хотите оставлять их, используйте команду revert, что бы вернутся к состоянию предыдущей ревизии.
Многие деревья с исходным кодом содержат файлы которые не нужно хранить под контролем версий, например резервные файлы текстового редактора, объектные файлы и собранные программы. Вы можете просто не добавлять их, но они всегда будут обнаруживаться как неизвестные. Вы также можете сказать bzr игнорировать их добавив их в файл .bzrignore в корне рабочего дерева.
Для получения списка файлов которые игнорируются и соответствующих им шаблонов используйте команду bzr ignored:
% bzr ignored
config.h ./config.h
configure.in~ *~
bzr log Команда bzr log показывает список предыдущих ревизий.
Команда bzr log --forward делает тоже самое, но в хронологическом порядке, показывая более поздние ревизии в конце
bzr может контролировать файлы и каталоги, отслеживая переименования и упрощая их последующее объединение:
% mkdir src
% echo 'int main() {}' > src/simple.c
% bzr add src
added src
added src/simple.c
% bzr status
added:
src/
src/simple.c
bzr remove удаляет файл из под контроля версий, но может и не удалять рабочую копию файла2. Это удобно когда вы добавили не тот файл, или решили, что файл на самом деле не должен быть под контролем версий.
% rm -r src
% bzr remove -v hello.txt
? hello.txt
% bzr status
removed:
hello.txt
src/
src/simple.c
unknown:
hello.txt
Часто вместо того что бы начинать свой собственный проект, выхотите предложить изменения для уже готового проекта. Что бы сделать это вам нужно получить копию готовой ветки. Так как эта копия может быть потенциальной новой веткой эта команда называется branch:
bzr branch http://bazaar-vcs.org/bzr/bzr.dev
cd bzr.dev
Если две ветки разошлись (обе имеют уникальные изменения) тогда bzr merge -- это подходящая команда для использования. Объединение автоматически вычислит изменения которые существуют на объединяемой ветке и отсутствуют в локальной ветке и попытается объединить их с локальной веткой. bzr merge URL.
7. Назовите основные команды, повышающие понимание исходного кода программы.
Если вы работаете с исходным кодом, который не вами разрабатывался, то назначение различных конструкций может быть не совсем понятным. Система разработки приложений UNIX предоставляет различные средства, повышающие понимание исходного кода. К ним относятся:
- cscope - исследование функций, содержащихся в программе;
- lint -- критическая проверка программ, написанных на языке Си.
8. Каковы основные задачи, решаемые программой lint?
Вся совокупность решаемых инструментальным средством lint задач может быть условно разбита на три больших группы:
1. Проверка корректности задания аргументов всех использованных в программе функций, а также типов возвращаемых ими значений;
2. Поиск фрагментов исходного текста, корректных с точки зрения синтаксиса языка Си, но малоэффективных с точки зрения их реализации или содержащих в себе семантические ошибки;
3. Общая оценка мобильности пользовательской программы.
9. Дайте характеристику функциональной структуре программы lint.
По своей функциональной структуре программа lint очень напоминает компилятор с языка Си, но вместо объектного кода программа lint генерирует комментарии, описывающие результаты семантического разбора исходного кода рассматриваемой пользовательской программы. При этом так же, как и компилятор с языка Си, программа lint использует препроцессор языка Си и, следовательно, обрабатывает все использованные в составе рассматриваемой пользовательской программы определения символьной замены и макроподстановок, а также осуществляет включение специфицированных файлов. Вместе с тем, в отличие от компилятора Си, программа lint осуществляет комплексный контроль программы и обнаруживает многие типы ошибок, в том числе:
- объекты, по-разному определенные в различных файлах;
- объекты, значения которых никогда не используются;
- переменные, использованные прежде, чем им присвоено значение;
- другие типы семантических ошибок.
10. Основное назначение компилятора с языка Си в UNIX?
Основное назначение компилятора с языка Си заключается в компиляции всей программы в целом и получении исполняемого модуля.
11. Назначение программы make.
Описание взаимосвязей и соответствующих действий хранится в так называемом make-файле, который по умолчанию имеет имя makefile или Makefile. В общем случае make-файл содержит последовательность записей (строк), определяющих зависимости между файлами. Первая строка записи представляет собой список целевых (зависимых) файлов, разделенных пробелами, за которыми следует двоеточие и список файлов, от которых зависят целевые.
12. Приведите структуру make-файла. Дайте характеристику основным элементам этого файла.
Текст, следующий за точкой с запятой, и все последующие строки, начинающиеся с литеры табуляции, являются командами OC UNIX, которые необходимо выполнить для обновления целевого файла. Таким образом, спецификация взаимосвязей имеет формат:
target1 [ target2...]: [:] [dependment1...]
[(tab)commands]
[#commentary]
[(tab)commands]
[#commentary],
где # -- специфицирует начало комментария, так как содержимое строки, начиная с # и до конца строки, не будет обрабатываться командой make; : -- последовательность команд ОС UNIX должна содержаться в одной строке make-файла (файла описаний), есть возможность переноса команд (\), но она считается как одна строка; :: -- последовательность команд ОС UNIX может содержаться в нескольких последовательных строках файла описаний.
14. Назовите и дайте основную характеристику основным командам отладчика gdb.
- backtrace - выводит весь путь к текущей точке останова, то есть названия всех функций, начиная от main(); иными словами, выводит весь стек функций;
- break - устанавливает точку останова; параметром может быть номер строки или название функции;
- clear - удаляет все точки останова на текущем уровне стека (то есть в текущей функции);
- continue - продолжает выполнение программы от текущей точки до конца;
- delete - удаляет точку останова или контрольное выражение;
- display - добавляет выражение в список выражений, значения которых отображаются каждый раз при остановке программы;
- finish - выполняет программу до выхода из текущей функции; отображает возвращаемое значение,если такое имеется;
- info breakpoints - выводит список всех имеющихся точек останова;
- info watchpoints - выводит список всех имеющихся контрольных выражений;
- list - выводит исходный код; в качестве параметра передаются название файла исходного кода, затем, через двоеточие, номер начальной и конечной строки;
- next - пошаговое выполнение программы, но, в отличие от команды step, не выполняет пошагово вызываемые функции;
- print - выводит значение какого-либо выражения (выражение передаётся в качестве параметра);
- run - запускает программу на выполнение;
- set - устанавливает новое значение переменной
- step - пошаговое выполнение программы;
- watch - устанавливает контрольное выражение, программа остановится, как только значение контрольного выражения изменится;
Вывод: мы выполнили анализ основных этапов разработки и отладки приложений в ОС UNIX, приобрели практические навыки по использованию средств разработки при анализе и компиляции исходного кода, тестировании и отладке программ, написанных на языке Си.
Размещено на Allbest.ru
...Подобные документы
Средства разработки, ориентированные на конкретные СУБД. Наиболее известные приложения на основе Eclipse Platform. Проект NetBeans IDE, его возможности. KDevelop — свободная интегрированная среда разработки для UNIX-подобных операционных систем.
реферат [107,5 K], добавлен 14.04.2014История появления операционной системы Unix. Перекомпиляция Unix в коды любой аппаратной платформы, ее многозадачность и многотерминальность. Основные отличия Unix от других операционных систем. Использование Unix в качестве сервера и рабочей станции.
реферат [28,1 K], добавлен 05.04.2010Описание файловой системы Unix. Работа основных команд ls, cmp, comm, их ключей. Разработка программного продукта, работающего в среде Windows и представляющего собой эмулятора командного процессора операционной системы Unix. Выбор средств реализации.
курсовая работа [183,0 K], добавлен 29.04.2015Понятие и особенности операционной системы UNIX как одной из самых популярных в мире операционных систем, история разработки и развития. Оценка возможности постоянного наращивания мощности кластера путем присоединения дополнительных компьютеров.
презентация [6,1 K], добавлен 23.10.2013Основные структуры процессов в операционной системе Unix. Возможные состояния процесса в Unix и способы перехода между ними. Планирование и выполнение процессов. Различия между родительским и дочерним процессом. Ожидание завершения и выполнения процесса.
курсовая работа [673,0 K], добавлен 24.02.2012История развития ОС UNIX, ее достоинства. Управление компьютером под управлением UNIX. Интерпретация командной строки и структура файловой системы. Команды управления процессами. Средства системного администрирования и учетные записи пользователей.
презентация [78,1 K], добавлен 12.05.2014Изучение составляющих этапов разработки программ, процесса их тестирования, отладки и документирования в контексте курса обучения начинающих программистов. Теоретический анализ постановки задачи и модели программы, создания текста, семантической отладки.
курсовая работа [29,2 K], добавлен 28.11.2010Права доступа к файлам и управление ими и другими атрибутами. Значения прав доступа для файлов и директорий. Набор файловых флагов. Команды управления процессами в операционной системе UNIX. Опции и значения программ архивации и сжатия - tar и gzip.
контрольная работа [234,4 K], добавлен 16.01.2014История развития и отличительные признаки UNIX-системы. Основы информационной безопасности и особенности настройки исследуемой операционной системы, ее достоинства, недостатки и базовые права доступа. Общая характеристика безопасности ядра UNIX.
реферат [599,5 K], добавлен 18.09.2013Unix - полноценная, изначально многопользовательская, многозадачная и многотерминальная операционная система. Особенности архитектуры Unix, ее два кита - файлы и процессы. Ядро операционной системы, ее файловая система, работа устройств, драйверы.
реферат [1,0 M], добавлен 22.03.2016Компиляция программ на языке C/C++. Компиляция нескольких файлов. Библиотеки объектных файлов. Создание статической и динамической библиотеки. Функции работы. Создание динамической библиотеки для решения системы линейных уравнений.
курсовая работа [27,4 K], добавлен 07.08.2007Изучение среды разработки программного обеспечения "Pelles C". Создание проекта в рабочем каталоге. Исследование методов компиляции и запуска программ. Особенности их отладки посредством встроенного в среду отладчика. Отображение отладочной информации.
лабораторная работа [358,7 K], добавлен 03.10.2014Java Runtime Environment - минимальная реализация виртуальной машины, необходимая для исполнения приложений, без компилятора и других средств разработки. Компиляция исходного кода через командную строку. Основные моменты создания игрового 2d-приложения.
курсовая работа [2,1 M], добавлен 26.04.2014Классификация пользователей проекта Web-приложения "Такси "Люкс". Выбор основных методов и средств разработки. Описание дизайна сайта. Исходный код обработчиков основных событий на страницах. Расчет себестоимости разработки программного продукта.
дипломная работа [2,5 M], добавлен 26.06.2012Иерархическая структура файловой системы Unix. Согласованная обработка массивов данных, возможность создания и удаления файлов, буферный кэш. Защита информации, трактовка периферийных устройств как файлов. Внутренняя структура файловой системы Unix.
реферат [102,2 K], добавлен 23.03.2010Эволюция графических пользовательских интерфейсов. Устройство системы X Window и менеджеры окон. Описание рабочего стола и приложения KDE и GNOME. Обзор основных принципов организации интерфейса в системе Windows, описание пакета ее прикладных программ.
реферат [1,8 M], добавлен 15.02.2012Методика разработки внешних спецификаций программ, основанных на использовании HIPO-технологии проектирования программ. Приобретение практических навыков определения и оформления внешних спецификаций программ. Схема состава разложения и IPO-диаграммы.
лабораторная работа [45,6 K], добавлен 15.03.2009История создания, назначение ОС UNIX. Функциональные характеристики: управление процессами, памятью и файлами, коммуникационные средства и программный интерфейс. Особенности архитектуры ОС UNIX. Способы управления процессами и условия эксплуатации.
контрольная работа [20,6 K], добавлен 21.02.2009Создание, изучение и разработка приложение на Android. Среда разработки приложения DelphiXE5. Установка и настройка среды программирования. Этапы разработки приложения. Инструменты для упрощения конструирования графического интерфейса пользователя.
курсовая работа [1,6 M], добавлен 19.04.2017Создание программы для хранения и обработки данных о съеме/сдаче жилья. Написание программы на языке C++ с использованием библиотеки Qt; использование исходного кода для создания приложения под Windows, Linux, Mac OS X без дополнительных изменений кода.
курсовая работа [60,4 K], добавлен 07.03.2013