������� | ������ ������� |
����� | ���������� | ������ |
������������� ��������� ����� ������ � ����� ������������ �������. ������, �������� �� ��, ��� �� ��������� � ����� ���� � �� �� �������� ������������ (������������ �� ���� ��������� ���������), �� ����������� ��� ������� �������. ��� ��������, ��� ������������� ��������� ����������� � ���������� ����� � ���������� �� �� ��������� �������� ��������� ��� �������������� � ������� ����������.
������������� ��������� �������� �� �������� � ������� ����� ��������� � �� ���������� ���������, ���������� � ���������. ��� ��� ������� ����������� ����������� �������� ���������. ��������, �������� ������������� ��������� ������ �������� �������������� ����������� ������� ���������, ����������� ��������� ���������� � ����� ����������� ��������. ��������� �������� ��������� ���������������� �� ��� ����, �� ����� ����� ������� ����� ������� �� ������ ����, ������ ��������������� ��������� �������������� ��������� ���������� ����.
� ������� QNX ���������� ��� ��������� �������� ��������:
��������� fork() � exec() ���������� ���������� POSIX, � �������� spawn() ���������� ������ � QNX.
�������� fork() ��������� �������, ���������� ��� ������ ������. ����� ������� ����������� � ��� �� �������� ������������ � ��������� ��� ������ ������������ ��������.
�������� exec() �������� ����� ������������ �������� ������� ������ ��������. �������� ���������� �� ��������� ������������� exec() �� ����������, �.�. ����� ������ �������� ������������� �� ����� ������������ ��������. � �������� ��������� POSIX ����� �������� ������ ��������� ��� �������� ���������� ������������ �������� - ������� ���������� fork(), � ����� �� ������������ �������� - exec().
�������� spawn() ������� ����� ������� �� �������� "����"-"���". ��� ��������� �������� ������������� ���������� fork() � exec(), ��� �������� ��������� � �������� ����� ����������� ��������� �������� ����� ���������. � ������� �� fork() � exec(), ������� �� ����������� ������� ������� �� ��� �� ����, ��� � ����������� �������, �������� spawn() ����� ��������� �������� �� ����� ���� ����.
��� �������� �������� � ������� ������ �� ���� ��������� ���� ����������, �� ��������� ������ �� ��� ����������� �����, � ������� ���������� ��� "��������". ���������� ���������� ������������ � ��������� �������.
3.1.2. ��������� �������� ��������
fork()
exec()
spawn()
fork()
exec()
spawn()
3.1.3. ��� ��������� �������
��� ����������� | fork() | exec() | spawn() |
������������� �������� | ��� | �� | ��� |
�������� ����� | �� | �� �����* | �� ����� |
���������� ������ | ��� | �� | ��� |
����������� ������� | ��� | �� | ��� |
����� ������� | �� | �� ����� | �� ����� |
������������ ������� | �� | �� ����� | �� ����� |
���������� �������� | �� | ��� | ��� |
���������� ����� | �� | �� ����� | �� ����� |
������������� ������ | �� | �� | �� ����� |
������ �������� | �� | �� | �� ����� |
�������� �������������� | �� | �� | �� |
������ � ������������ ( UID, GID ) ����������� UID, GID |
�� | �� ����� | �� ����� |
������� ������� ������� | �� | �� ����� | �� ����� |
����� �������� ������ | �� | �� | �� |
��������� | �� | �� ����� | �� ����� |
����� ������������ | �� | �� ����� | �� ����� |
����������� ������ | ��� | ��� | ��� |
������������� ����� | ��� | ��� | ��� |
������� ��������� ������� | ��� | ��� | ��� |
����������. * - ���������� ������� ����� �� ������������� ������� - �� ��� ���. |
������ ������� �������� ��������� ������ ����:
�������� �������� ����������� � ���������� �������������� �������� (ID) ������ �������� � ������� ����������, ������������ ����������� ����� ������ ��������. ������� ����� ���� ���������� ����������� �� "��������" ������ �������� (��. ���������� ��������).
�������� ������� ��������� ����������� ����������� "�� �������". ��������� ������ � ������ �������������� ��������� � ����������� ��� ��������������� ������ ��������. ��� ��������� �������������� ��������� ��������� ������ ������� ��� �������� ��������.
��� ������ ����������� ��� ��������, ������� ����� � ����������; �� �������� ������������� � ������� ����������, �������� �������� ������� ������������ ����������. �������� �������� �� ��, ��� �������� ����������� ����������� ������ �� ������ "����������". ����� ����, ������ "��������" �� �������� ������������� ������ ����������� �� ���������.
������� ����������� ����� �� ���� ��������:
���������� �������� � ���� ��� ������:
���� ���������� ������� �� ����� wait() ��� waitpid(), �� ����������� ������� ���������� ��� ���������� "�����"-��������� � �� ����������� �� ��� ���, ���� ���������� ������� �� ������ wait() ��� �� ���������� ���.
��� ����, ����� �� ����� ���������� ������������ ��������, ������� ���� ���������� ������� _SPAWN_NOZOMBIE � �������� qnx_spawn() ��� qnx_spawn_option(), ���� � ������� signal() ������ ��� SIGCHLD ������� SIG_IGN. � ���� ������ ����������� �������� ��� ���������� �� ���������� "�����"-����������.
���������� ������� ����� ������� ���������� ������������ �������� �� ��������� ����. ���� �������, ���������� "�����"-������� �����������, �� ������������� ��� �������, ��������� � "�����".
���� ������� ����������� �� ������� ���������� � ��� ���� ����������� ������� dumper, �� ����������� ���� ������ ������. ���� ���� ����� ����������� � ������� ����������� ���������.
������� ������ ��������� � ����� �� ��������� ���������:
�� ���. 15 ������������ ��������� ��������� �������� � ������� QNX.
���������� ��������� �������� �� ������ ��������� � ������:
���������� ��������� ����������� �������� ��������:
���������� ��������� ������������ ������� � ����� ��������:
������� ps ���������� ���������� POSIX, ������������� ��������� ����� � �� �������������� �������� ����������. ������� sin ��������� � QNX, ��� ������������� �������� ���������� � ������� QNX, ������� ������ �������� � ������� ������� ps.
� QNX �������������� ����������� ���������� ����������, �������������� ����� ����� ����������������� ���������. ����� ���������� ���������� ����� ������� �������� ������������ ��������� ������, � ����� ����, ����� �������������� � ����, ������� ���� ������������������ �������.
������, ��������� ���������� �� ����������������� �������� ������� ����������� ����������. ��� ����, ����� ����������������� �������� ����� ������� ����������� ���� � ������, ��� ������ ����� ����������� ���������� �������������� (ID) ���� �����. ����������, ��������, ������ ���� ������, ������� �������� � ������������ ����������� ������������� ��������� (��������). ������� ����� ���������� � ������� � ����� �����, � ������ ������ ������ ���� ��������. ����� ������� ������� ���������� ������������� ������� ���� ������ ��� ����, ����� ������� ��� ���������?
� QNX ��� �������� �������� ����� �������������� ����������� ����������� ��������� ������������� �����. � ������ ������ ���� �������� ����� ���������������� ��� ��� � ������� �������������� ��������� �� ��� ����, ��� ��� �����������. ������ �������� ����� ����� �������� � �������������� ��������� ������������� ��������, ��������������� ����� �����.
� ������ ������ � ���� �������� �����������, �.�. ������ ������ ����������� ��������, ������� ��������� �� ������ ����� ����. � QNX ������� ����������� ������������ ������ ��� � �����������, ��� � � ���������� �������. ���������� ����� �������� �� ���� ����, � ��������� - ������ �� ��� ����, ��� ��� ����������������. ���������� ����� ���������� �� ����� ���� (/). ��������: ��� ����, ����� ������������ ���������� ����� ���� �� �� ����� �� ����� ����, ���������� ��������� "������������ ���� ���������" (������� nameloc). ���� ������� �������� ������ ���� ������������������ ���������� ����.
� ���� � �� �� ����� � ���� ����� �������� �� ������ ������������� ���� ���������. ������ ����� ���������� ����� ���� �������� ���������� ����. ��� ������������ ������������ ���������� ������ ����, ���������� ����������������� ��� ������������� ��������� ���������� ���������� ������������� ���� ���������.
��� ����������� ����� �������-������ ���������� ������� �� qnx_name_attach(). ��� ����������� ����� �������� �������-������ ���������� ������� �� qnx_name_locate().
� QNX ���������� �������� �������� �� ������������� ���������� �������. ���� ������ �������� ������� ������������ ������������� ����� (UTC) ������������ 0 ����� 0 ����� 0 ������ 1 ������ 1970 �. ��� ��������� �������� ������� ������� ���������� �������� ���������� ���������� ����� TZ (������� � ����������� ������������).
��������� �������������� Shell � �������� ����� ���� ��������� �� �������� ���������� ������ � ������� ������� ������� ������������. ��������� �������������� ���������� ��� ����� ������� sleep; �������� - ������� �� sleep(). ����� ����� ��������������� �������� delay(), � ������� �������� �������� ������� � �������������.
������� ����� ����� ��������� �������, �������� �� ��������� �������� � ������� �������. ��� ����� ������� �������� ������������ ������������� ��������� POSIX 1003.4/Draft 9.
������� ����� ������� ���� ��� ��������� ��������. ������� ����� ���� ������ ��������������� �������� ����, � �� ���������� �������������� ����������� ���������� ����������� �������� � ������� (��. ������� Proc � "��������").
��� �������� ������� ������������ ������� �� mktimer(). ��� ������� ��������� �������� ��������� ���� ��������� ������ �� �������:
�� ������ ������ ������� ��������� ��������� ���������:
����� ����� ������ ���������� ������� �� �������� ���������. ��������, �� ���������� ������ �� 9 ���� ����������� ���. ��� ����� ���������� ���, ����� �� ���������� ����� ������ ���� ����� ����� ��������� ����� �������. ����� ����� ���������� ����� ��������� �������� ������������� �������. ��������� ���� �������� ������� �� ���� ��������� ���������:
��� �������� ������� �������������� �������� �� rmtimer(). ������ ����� ������� ��� ���� �� ��������� ���������� ��������� ��� �������:
������ ������� �������� �������� ticksize ��� �������� �� qnx_timerperiod(). �� ������ ������� ������ � ��������� �� 500 ����������� �� 50 �����������.
����� ���������� ���������� ���������� �������� � ���������� ������� ����� �������, ����� ���������� ���������� �� ������� ���������� �� �������. ��� ��������� ������� ����������� ������� ticksize.
����� ����� ������������ � ��������������� ���������� �� �������, ������� �������� ������ 100 ����������� � ����������� �� �������� ticksize. ��� ������� �������� ������������� �������� ��������� POSIX 1003.4 ��� ��������� ���������� ������� ������.
3.2.2. ��������
3.2.3. ����������
3.2.4. ����������
����� �������� ��������� ���������� ����������� � ������� 2 "���������".
��������� ��������� �������� � ������� QNX.
���.15
3.3.1. ����������� ��������� ���������
3.4. ������������� ����� ���������
qnx - ��������� ���;
company/xyz - ��������� ���;
/company/xyz - ���������� ���.
����������� �������� ��� ����� � �������� ����� �����, �� ��������� ���������� � ������� ��������������� ����������� ��������� �� ������ ���� ��������.
3.5. �������
3.5.1. ���������� ��������
3.5.2. ������� �������� ������������
3.5.3. ����� ������� �������� ������������
�������� ��������
��������� ��������
��� ���������
�����������
����������� ���������� ���������
������� abstimer()
�������������� ���������� ���������
������� reltimer()
�������� ��������
��������� ������� �������
���������� �������
���� �� ������
�����������
���������� ���������� ����������
������� qnx_hint_attach()
������� ���������� ����������
������� qnx_hint_detach()
3.6.1. ����������� ���������� �� �������
����� ���������� ������
������� ������ �������