������������� �������
���������������������


3. ������������� ���������

3.1. ��������

3.1.1. ������� �������������� ���������

������������� ��������� ����� ������ � ����� ������������ �������. ������, �������� �� ��, ��� �� ��������� � ����� ���� � �� �� �������� ������������ (������������ �� ���� ��������� ���������), �� ����������� ��� ������� �������. ��� ��������, ��� ������������� ��������� ����������� � ���������� ����� � ���������� �� �� ��������� �������� ��������� ��� �������������� � ������� ����������.

������������� ��������� �������� �� �������� � ������� ����� ��������� � �� ���������� ���������, ���������� � ���������. ��� ��� ������� ����������� ����������� �������� ���������. ��������, �������� ������������� ��������� ������ �������� �������������� ����������� ������� ���������, ����������� ��������� ���������� � ����� ����������� ��������. ��������� �������� ��������� ���������������� �� ��� ����, �� ����� ����� ������� ����� ������� �� ������ ����, ������ ��������������� ��������� �������������� ��������� ���������� ����.

3.1.2. ��������� �������� ��������

� ������� QNX ���������� ��� ��������� �������� ��������:

    fork()
    exec()
    spawn()

��������� fork() � exec() ���������� ���������� POSIX, � �������� spawn() ���������� ������ � QNX.

fork()

�������� fork() ��������� �������, ���������� ��� ������ ������. ����� ������� ����������� � ��� �� �������� ������������ � ��������� ��� ������ ������������ ��������.

exec()

�������� exec() �������� ����� ������������ �������� ������� ������ ��������. �������� ���������� �� ��������� ������������� exec() �� ����������, �.�. ����� ������ �������� ������������� �� ����� ������������ ��������. � �������� ��������� POSIX ����� �������� ������ ��������� ��� �������� ���������� ������������ �������� - ������� ���������� fork(), � ����� �� ������������ �������� - exec().

spawn()

�������� spawn() ������� ����� ������� �� �������� "����"-"���". ��� ��������� �������� ������������� ���������� fork() � exec(), ��� �������� ��������� � �������� ����� ����������� ��������� �������� ����� ���������. � ������� �� fork() � exec(), ������� �� ����������� ������� ������� �� ��� �� ����, ��� � ����������� �������, �������� spawn() ����� ��������� �������� �� ����� ���� ����.

3.1.3. ��� ��������� �������

��� �������� �������� � ������� ������ �� ���� ��������� ���� ����������, �� ��������� ������ �� ��� ����������� �����, � ������� ���������� ��� "��������". ���������� ���������� ������������ � ��������� �������.

��� ����������� fork() exec() spawn()
������������� �������� ��� �� ���
�������� ����� �� �� �����* �� �����
���������� ������ ��� �� ���
����������� ������� ��� �� ���
����� ������� �� �� ����� �� �����
������������ ������� �� �� ����� �� �����
���������� �������� �� ��� ���
���������� ����� �� �� ����� �� �����
������������� ������ �� �� �� �����
������ �������� �� �� �� �����
�������� �������������� �� �� ��
������ � ������������ ( UID, GID )
����������� UID, GID
�� �� ����� �� �����
������� ������� ������� �� �� ����� �� �����
����� �������� ������ �� �� ��
��������� �� �� ����� �� �����
����� ������������ �� �� ����� �� �����
����������� ������ ��� ��� ���
������������� ����� ��� ��� ���
������� ��������� ������� ��� ��� ���
����������.
* - ���������� ������� ����� �� ������������� ������� - �� ��� ���.

3.2. ��������� ���� ��������

������ ������� �������� ��������� ������ ����:

  1. ��������;
  2. ��������;
  3. ����������;
  4. ����������.

3.2.1. ��������

�������� �������� ����������� � ���������� �������������� �������� (ID) ������ �������� � ������� ����������, ������������ ����������� ����� ������ ��������. ������� ����� ���� ���������� ����������� �� "��������" ������ �������� (��. ���������� ��������).

3.2.2. ��������

�������� ������� ��������� ����������� ����������� "�� �������". ��������� ������ � ������ �������������� ��������� � ����������� ��� ��������������� ������ ��������. ��� ��������� �������������� ��������� ��������� ������ ������� ��� �������� ��������.

3.2.3. ����������

��� ������ ����������� ��� ��������, ������� ����� � ����������; �� �������� ������������� � ������� ����������, �������� �������� ������� ������������ ����������. �������� �������� �� ��, ��� �������� ����������� ����������� ������ �� ������ "����������". ����� ����, ������ "��������" �� �������� ������������� ������ ����������� �� ���������.

3.2.4. ����������

������� ����������� ����� �� ���� ��������:

���������� �������� � ���� ��� ������:

  1. ������������� ��������� ���������� ���������� ���������� "�� �������". ��������� ���������� ������ � ������ �������������� ��������� � ����������� ��� ��������������� �������������� ��������. ��� ���� ����������� �������� ���� ���������� �������� ������ � �������������:
    • ��� ����������� ������, ������� ���� �������;
    • ��� ������, ���������� ��������;
    • ��� ������������� �����;
    • ��� ������ �������� ��������� (������ ��� ��������������� �����/������ );
    • ��� ����������� ����������;
    • ��� proxy;
    • ��� �������.
  2. ����� ������� ��������� ���������� � ����������� ��� �������� ���������� ����������� � ���������� �������� (��� ���� ����������� ������ �������������� ���������).

���� ���������� ������� �� ����� wait() ��� waitpid(), �� ����������� ������� ���������� ��� ���������� "�����"-��������� � �� ����������� �� ��� ���, ���� ���������� ������� �� ������ wait() ��� �� ���������� ���.

��� ����, ����� �� ����� ���������� ������������ ��������, ������� ���� ���������� ������� _SPAWN_NOZOMBIE � �������� qnx_spawn() ��� qnx_spawn_option(), ���� � ������� signal() ������ ��� SIGCHLD ������� SIG_IGN. � ���� ������ ����������� �������� ��� ���������� �� ���������� "�����"-����������.

���������� ������� ����� ������� ���������� ������������ �������� �� ��������� ����. ���� �������, ���������� "�����"-������� �����������, �� ������������� ��� �������, ��������� � "�����".

���� ������� ����������� �� ������� ���������� � ��� ���� ����������� ������� dumper, �� ����������� ���� ������ ������. ���� ���� ����� ����������� � ������� ����������� ���������. 3.3. ��������� ���������

������� ������ ��������� � ����� �� ��������� ���������:

����� �������� ��������� ���������� ����������� � ������� 2 "���������".

�� ���. 15 ������������ ��������� ��������� �������� � ������� QNX.

��������� ��������� �������� � ������� QNX.
���.15

���������� ��������� �������� �� ������ ��������� � ������:

  1. ������� �������� ���������.
  2. �������-���������� ��������� ���������.
  3. �������-���������� �������� �� ���������.
  4. ������� ������� ���������.
  5. ������� ��������� ���������.
  6. ������ ������������ �������.
  7. ������ ������c� �������������� �������; ���������� ����������� ��������� � ������� �������.
  8. �������-���������� ��������� ������.
  9. ������� ������� ���������� ������������ ��������.
  10. ����������� ������� �����������, ���� ������ ������������ �������.
  11. �������� ����� SIGSTOP.
  12. �������� ����� SIGCONT.
  13. ������� �����������.
  14. ����������� ������� ������� ����������, ����������� ��� ��� ��� ��������.

3.3.1. ����������� ��������� ���������

���������� ��������� ����������� �������� ��������:

���������� ��������� ������������ ������� � ����� ��������:

������� ps ���������� ���������� POSIX, ������������� ��������� ����� � �� �������������� �������� ����������. ������� sin ��������� � QNX, ��� ������������� �������� ���������� � ������� QNX, ������� ������ �������� � ������� ������� ps.

3.4. ������������� ����� ���������

� QNX �������������� ����������� ���������� ����������, �������������� ����� ����� ����������������� ���������. ����� ���������� ���������� ����� ������� �������� ������������ ��������� ������, � ����� ����, ����� �������������� � ����, ������� ���� ������������������ �������.

������, ��������� ���������� �� ����������������� �������� ������� ����������� ����������. ��� ����, ����� ����������������� �������� ����� ������� ����������� ���� � ������, ��� ������ ����� ����������� ���������� �������������� (ID) ���� �����. ����������, ��������, ������ ���� ������, ������� �������� � ������������ ����������� ������������� ��������� (��������). ������� ����� ���������� � ������� � ����� �����, � ������ ������ ������ ���� ��������. ����� ������� ������� ���������� ������������� ������� ���� ������ ��� ����, ����� ������� ��� ���������?

� QNX ��� �������� �������� ����� �������������� ����������� ����������� ��������� ������������� �����. � ������ ������ ���� �������� ����� ���������������� ��� ��� � ������� �������������� ��������� �� ��� ����, ��� ��� �����������. ������ �������� ����� ����� �������� � �������������� ��������� ������������� ��������, ��������������� ����� �����.

� ������ ������ � ���� �������� �����������, �.�. ������ ������ ����������� ��������, ������� ��������� �� ������ ����� ����. � QNX ������� ����������� ������������ ������ ��� � �����������, ��� � � ���������� �������. ���������� ����� �������� �� ���� ����, � ��������� - ������ �� ��� ����, ��� ��� ����������������. ���������� ����� ���������� �� ����� ���� (/). ��������:
    qnx - ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ ���;
    company/xyz - ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ ���;
    /company/xyz - ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ ���.

����������� �������� ��� ����� � �������� ����� �����, �� ��������� ���������� � ������� ��������������� ����������� ��������� �� ������ ���� ��������.

��� ����, ����� ������������ ���������� ����� ���� �� �� ����� �� ����� ����, ���������� ��������� "������������ ���� ���������" (������� nameloc). ���� ������� �������� ������ ���� ������������������ ���������� ����.

� ���� � �� �� ����� � ���� ����� �������� �� ������ ������������� ���� ���������. ������ ����� ���������� ����� ���� �������� ���������� ����. ��� ������������ ������������ ���������� ������ ����, ���������� ����������������� ��� ������������� ��������� ���������� ���������� ������������� ���� ���������.

��� ����������� ����� �������-������ ���������� ������� �� qnx_name_attach(). ��� ����������� ����� �������� �������-������ ���������� ������� �� qnx_name_locate().

3.5. �������

3.5.1. ���������� ��������

� QNX ���������� �������� �������� �� ������������� ���������� �������. ���� ������ �������� ������� ������������ ������������� ����� (UTC) ������������ 0 ����� 0 ����� 0 ������ 1 ������ 1970 �. ��� ��������� �������� ������� ������� ���������� �������� ���������� ���������� ����� TZ (������� � ����������� ������������).

3.5.2. ������� �������� ������������

��������� �������������� Shell � �������� ����� ���� ��������� �� �������� ���������� ������ � ������� ������� ������� ������������. ��������� �������������� ���������� ��� ����� ������� sleep; �������� - ������� �� sleep(). ����� ����� ��������������� �������� delay(), � ������� �������� �������� ������� � �������������.

3.5.3. ����� ������� �������� ������������

������� ����� ����� ��������� �������, �������� �� ��������� �������� � ������� �������. ��� ����� ������� �������� ������������ ������������� ��������� POSIX 1003.4/Draft 9.

�������� ��������

������� ����� ������� ���� ��� ��������� ��������. ������� ����� ���� ������ ��������������� �������� ����, � �� ���������� �������������� ����������� ���������� ����������� �������� � ������� (��. ������� Proc � "��������").

��� �������� ������� ������������ ������� �� mktimer(). ��� ������� ��������� �������� ��������� ���� ��������� ������ �� �������:

��������� ��������

�� ������ ������ ������� ��������� ��������� ���������:

����� ����� ������ ���������� ������� �� �������� ���������. ��������, �� ���������� ������ �� 9 ���� ����������� ���. ��� ����� ���������� ���, ����� �� ���������� ����� ������ ���� ����� ����� ��������� ����� �������. ����� ����� ���������� ����� ��������� �������� ������������� �������. ��������� ���� �������� ������� �� ���� ��������� ���������:

��� ��������� �����������
����������� ���������� ��������� ������� abstimer()
�������������� ���������� ��������� ������� reltimer()

�������� ��������

��� �������� ������� �������������� �������� �� rmtimer(). ������ ����� ������� ��� ���� �� ��������� ���������� ��������� ��� �������:

��������� ������� �������

������ ������� �������� �������� ticksize ��� �������� �� qnx_timerperiod(). �� ������ ������� ������ � ��������� �� 500 ����������� �� 50 �����������.

���������� �������

��� ����������� ����������� ������� ������������ ��� ��� ����, ����� ������, ��� �� ������ ������, ����������� ������� �� gettimer().

3.6. ����������� ����������

����������� ���������� ����������� ���������� ���������� ����� ������������ �������; ��������� �� ���������� ���������� � ��������� �� ������ ������ ��������� ������ ����� ����������� � �������� ������������.

��������� ����������� ���������� ����������� ��� ����� ������������ �������� QNX (��������, ��������), �� ��� ������ ����������� ���������� � ���������, � ������� ����������.

���������� ����������:

�� ������ ���������� (���� ��� �������������� ���������) ����� ����������� ��������� ���������. ��� ������������� ����������� ���������� ������� ����������� ���������� ���������� ����������. � ����� ������� ����������� ���������� ��������� ��������� ����� ���������� - �� ����������.

���� �� ������ �����������
���������� ���������� ���������� ������� qnx_hint_attach()
������� ���������� ���������� ������� qnx_hint_detach()

3.6.1. ����������� ���������� �� �������

����� ���������� ���������� ���������� �������� � ���������� ������� ����� �������, ����� ���������� ���������� �� ������� ���������� �� �������. ��� ��������� ������� ����������� ������� ticksize.

����� ����� ������������ � ��������������� ���������� �� �������, ������� �������� ������ 100 ����������� � ����������� �� �������� ticksize. ��� ������� �������� ������������� �������� ��������� POSIX 1003.4 ��� ��������� ���������� ������� ������.


���������������������
������������� �������