Лабораторная работа №1. Введение в ОС Linux

1. Системные вызовы и библиотека libc.

Основной постоянно функционирующей частью операционной системы Linux является ее ядро. Другие программы (будь то системные программы или пользовательские) могут общаться с ядром посредством системных вызовов, которые по сути дела являются прямыми точками входа программ в ядро. При исполнении системного вызова программа пользователя временно переходит в привилегированный режим, получая доступ к данным или устройствам, которые не доступны при работе в режиме пользователя.
Реальные машинные команды, которые требуются для активизации системных вызовов, естественно, отличаются от машины к машине, наряду со способом передачи параметров и результатов между вызывающей программой и ядром. Однако с точки зрения программиста на языке С использование системных вызовов ничем внешне не отличается от использования других функций стандартной ANSI библиотеки языка С, таких как, например, функции работы со строками strlen(), strcpy() и т.д. Стандартная библиотека в Linux - libc - обеспечивает C интерфейс к каждому системному вызову. Это приводит к тому, что системный вызов выглядит как функция на языке С для программиста. Более того, многие из стандартных функций, например, функции для работы с файлами: fopen(), fread(), fwrite() при реализации в операционной системе Linux при своей работе будут применять различные системные вызовы.

Большинство системных вызовов, возвращающих целое значение, использует значение -1 при возникновении ошибки и значение большее или равное 0 при нормальном завершении. Системные вызовы, возвращающие указатели, обычно для идентификации ошибочной ситуации пользуются значением NULL. Для точного определения причины ошибки C-интерфейс предоставляет глобальную переменную errno, описанную в файле <errno.h> вместе с ее возможными значениями и их краткими определениями. Заметим, что анализировать значение переменной errno необходимо сразу после возникновения ошибочной ситуации, так как успешно завершившиеся системные вызовы не изменяют ее значения. Для получения символьной информации об ошибке на стандартном выводе программы для ошибок (по умолчанию экран вашего терминала) может применяться стандартная Linux функция perror().

2. Понятия login'а & password'а.


Операционная система Linux является многопользовательской операционной системой. Для обеспечения безопасной работы пользователей и целостности системы любой доступ к ней должен быть санкционирован. Для каждого пользователя, которому разрешен вход в систему, заводится специальное регистрационное имя - username или login и сохраняется специальный пароль - password, соответствующий этому имени. Как правило, при заведении нового пользователя начальное значение пароля для него задает системный администратор. После первого входа в систему пользователь может изменить начальное значение пароля с помощью специальной команды passwd.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: