Архитектура современных операционных систем

79 3. Особенности операционной системы Linux Первая версия Linux 0.01 была создана в 1991 году на базе учебной опе- рационной системы Minix и состояла из 9340 строк кода на С и 950 строк на языке ассемблера. Linux – монолитная система. Версия 1.0 вышла в 1994 году. Особенности: новая файловая система, отображение файлов в память, поддержка TCP/IP. Начиная с версии Linux 2.0, разработанной в 1996 году, система поддер- живает 64-х разрядную архитектуру, мультипроцессирование, большой набор драйверов устройств, графический интерфейс X-Window, функционирует на различных платформах, в том числе на RISC и Intel. Современные версии Linux представляют собой многопользовательские, многопоточные операционные системы. Потоки в Linux Linux поддерживает потоки на уровне ядра, реализованные с помощью идей BSD v.4.4. Для создания потока используется специальный вызов API: pid=clone(function, stack_ptr, shared_flags, arg). Этот вызов создает новый поток в рамках текущего или нового процесса и запускает в нем функцию function, передавая ей аргумент arg. В каком про- цессе будет запущен новый поток, зависит от значений флагов shared_flags (табл. 3.1.). Если поток запускается в рамках текущего процесса, ему становится до- ступно адресное пространство и ресурсы процесса. Все изменения, сделанные этим или другими потоками, видны всем потокам процесса. Если новый поток запускается в новом процессе, то выполняемое дей- ствие похоже на fork: копирование в новый процесс. Все изменения сделанные в новом адресном пространстве уже не видны в родительском процессе. Параметр Shared Flags – это битовый массив, с помощью которого опре- деляются режимы создания нового потока.

RkJQdWJsaXNoZXIy MTY0OTYy