����� ��������, 2003 �.

�� �����������: �������� �������...">

BugTraq.Ru: �������� SCO: �������� ��������� ������� (original) (raw)

�����
�������
���������
������
�����
��������
free soft

�������� SCO: �������� ��������� �������

© �������: ����� ��������, 2003 �.

�� �����������: �������� ������� ������ ��������� �����: http://www.catb.org/~esr/writings/smoking-fizzle.html. ������ ������� �� ������ �������� ���������� � ��������������, �� ��������� �� ���� �� ����, �� ������ ��������� ������, � �� ��������� ����������. ������� html-������������ ��� ���������� �� ������ ����� �����.

������ 1.0 – ������� ������������ 20 ������� 2003 �.

������ 1.1 – �������� �������� ���������� �������� �� �������� 32V.

������ 1.2 – ������������ �������� ���������� �������, ������� ���������� � SIII.

������� ����������: ���� ��� ������� ��� SCO ������� ������������ ��� �������������, ������� ��� ������������ 18 ������� 2003 ����. ������ – ��� ��, ��� ��� ������������� ������������ ���� ����������� ����; ������ – ��, ��� GPL � ������ ������ ���������� ��� ������������� � �������� ������; � ������ – ��, ��� �������� BSD, ��������, ���� ��� �� �������. �� ��������� ������� ��� SCO – ������: ����������� �������� ���� ���� �������� (a) ��� "�������� ���������" ����� SCO/Caldera � 2002 ����, (b) �� ���� ������������� IBM ��� Sequent, (c) ����������� � 90 % ���� �������������� ������������� Linux, � (d) ���� ������� �� Linux 2.5 � ���� 2003 ����, ��������� ��������� ������� ���������, ����� ����. ���� ��� �� ���������� ��� �������� ���� �������������, �������� ����������� SCO, �� ���� – ���������������.

��������

� SCOforum 18 ������� 2003 ���� SCO ������������ ����� ����, ��� ���� ������� ��������������� �� ������������� �� �������� ����� �������� ������� Linux. ��� – ���� �� ����������� ����������� � �� �������� �������� ���� ������ IBM. "���������������" ���� ��� ��������� �����������, ������������ ����� ������, ������������� SCO "System V" � "Linux". ������ ����������� ������ ��������: "����������� ������ �� ������� – ���� ������ �� ������".

������ ������ ������ 24 ���� � ��� ��� ��� ����������� ����� ����������������. ���� ��������� ��������� ������������, ��� �������������� �� SlashdotLinux Weekly News. ���� ����� � ������� ������, ��� (a): �� ���� �� ��� �� ���� ���������� �� ������� ��� ������������� ���������, � (b): ��� ���������� ��� �� ��������� �������� �� ��������� ���������� ������������, �� ������� ��������� ���� SCO ������ IBM � ���������� �� �������� ��������������. ����� � ����� ��, �� ��� ������ �� ����������: � ��������, ������ � �������������� �����������, � ��� System V.

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

������� ������ � ����, ��� ���������� �������� ���������������. �������������� ������ – ����������. �������, ���������� SCO, ��� �������, � ����� ����������� ������ "System V" ���� ���������� ���������, ��������� �� ��� ���������������� � ��������� �������. ����� ���������� ��������, �� �������� ��������� ����������� � ��������� ��������� ������, �������������� SCO "System V":

����� 1, ����� ������� (����� "System V"):

/*

  • Allocate 'size' units from the given map.
  • Return the base of the allocated space.
  • In a map, the addresses are increasing and the
  • list is terminated by a 0 size.
  • The swap map unit is 512 bytes
  • Algorithm is first-fit.
  • As part of the kernel evolution toward modular naming, the functions
  • malloc, and mfree are being renamed to rmalloc and rmfree.
  • Compatibility will be maintained by the following assembly code:
  • (also see mfree/rmfree below)
  • /

����� 1, ������ ������� ("����� ���� Linux"):

/*

  • Allocate 'size' units from the given map.
  • Return the base of the allocated space.
  • In a map, the addresses are increasing and the
  • list is terminated by a 0 size.
  • Algorithm is first-fit. */

ulong_t atealloc( struct map *mp, size_t size) { register unsigned int a; register struct map *bp; register unsigned long s;

����� 2 ������ ���������� ����� ������ ���� Linux:

if (size == 0)
    return((ulong_t) NULL);

s = mutex_spinlock(maplock(mp));

for (bp = mapstart(mp); bp-m_size; bp++) {
    if (bp-m_size = size) {
        a = bp-m_addr;
        bp-m_addr += size;
        if ((bp-m_size -= size) == 0) {
            do {
                bp++;
                (bp-1)-m_addr = bp-m_addr;
            } while ((((bp-1)-m_size) = (bp-m_size)));
            mapsize(mp)++;
        }

        ASSERT(bp-m_size < 0x80000000);
        mutex_spinunlock(maplock(mp), s);

��������, ��� SCO ���������� �� ���������� ����� System V, ������������� ������������.

�����, ���������� �� ������� Linux, ��������� � ����� 2.4 arch/ia64/sn/io/ate_utils.c. ��� – ������ ����� ��������������� �������:

/*

  • Allocate 'size' units from the given map.
  • Return the base of the allocated space.
  • In a map, the addresses are increasing and the
  • list is terminated by a 0 size.
  • Algorithm is first-fit. */

ulong_t atealloc( struct map *mp, size_t size) { register unsigned int a; register struct map *bp; register unsigned long s;

ASSERT(size = 0);

if (size == 0)
    return((ulong_t) NULL);

s = mutex_spinlock(maplock(mp));

for (bp = mapstart(mp); bp-m_size; bp++) {
    if (bp-m_size = size) {
        a = bp-m_addr;
        bp-m_addr += size;
        if ((bp-m_size -= size) == 0) {
            do {
                bp++;
                (bp-1)-m_addr = bp-m_addr;
            } while ((((bp-1)-m_size) = (bp-m_size)));
            mapsize(mp)++;
        }

        ASSERT(bp-m_size < 0x80000000);
        mutex_spinunlock(maplock(mp), s);
        return(a);
    }
}

/*
 * We did not get what we need .. we cannot sleep .. 
 */
mutex_spinunlock(maplock(mp), s);
return(0);

}

��������������� ��� – ������������ ���������� �������������� ������, ������� ���������� �� ������������� ������ ����� ����. �� �� ����� ������ �����, �� ����� ��� � ����� ������������������ �������� Unixware ��������� SCO, ��, �������������, � ���������� Unix'�� ���� ����� ������� ����������.

����� ����� ������ ������ Unix, ��� ������� ��������� ��� ��� ���������� � ��������� ����� – Fifth Edition (��� �� Version 5 ��� V5), ��������� 1974 ����. ��� – ������ ���������������� ���� �� Fifth Edition, � ����� ������� "1973".

malloc(mp, size) struct map *mp; { register int a; register struct map *bp;

for (bp = mp; bp-m_size; bp++) {
    if (bp-m_size = size) {
        a = bp-m_addr;
        bp-m_addr =+ size;
        if ((bp-m_size =- size) == 0)
            do {
                bp++;
                (bp-1)-m_addr = bp-m_addr;
            } while ((bp-1)-m_size = bp-m_size);
        return(a);
    }
}
return(0);

}

��� ������ �� Sixth Edition, (��� V6), �� 1976 ����. ����������� ����������� ������� �������; � ��������� ����� ��������� ������ �� V5.

/*

  • Allocate 'size' units from the given

  • map. Return the base of the allocated

  • space.

  • Algorithm is first-fit. */ malloc(mp, size) struct map *mp; { register int a; register struct map *bp;

    for (bp = mp; bp->m_size; bp++) { if (bp->m_size >= size) { a = bp->m_addr; bp->m_addr =+ size; if ((bp->m_size =- size) == 0) do { bp++; (bp-1)->m_addr = bp->m_addr; } while ((bp-1)->m_size = bp->m_size); return(a); } } return(0);

}

��� �� version 6 ���������� � Lions Commentary on Unix, ������������ � 1975-76 �����. ����� Lions (�� ���������� �������� �������) ���� ���������� � ������������� SCO � 1996 ����.

��� – ��� �� Version 7 �� 1979 ����. ������� �� ���������� ������ (V6) ����� �������� �������; ��� ���������� � �������� �������������� ��������� � ���������� � ��������� ���������� ����� C.

/*

/*

  • Allocate 'size' units from the given

  • map. Return the base of the allocated

  • space.

  • In a map, the addresses are increasing and the

  • list is terminated by a 0 size.

  • The core map unit is 64 bytes; the swap map unit

  • is 512 bytes.

  • Algorithm is first-fit. */ malloc(mp, size) struct map *mp; { register unsigned int a; register struct map *bp;

    for (bp=mp; bp->m_size; bp++) { if (bp->m_size >= size) { a = bp->m_addr; bp->m_addr += size; if ((bp->m_size -= size) == 0) { do { bp++; (bp-1)->m_addr = bp->m_addr; } while ((bp-1)->m_size = bp->m_size); } return(a); } } return(0);

}

��� – ������ ������ �� 32V, ������������ ����� 1979 �����. ������� �� ���������� ������ (V7) �������� �������; ������������ �������������� �������� �������� ����������� � ������.

/*

  • Allocate 'size' units from the given

  • map. Return the base of the allocated

  • space.

  • In a map, the addresses are increasing and the

  • list is terminated by a 0 size.

  • The swap map unit is 512 bytes.

  • Algorithm is first-fit. */ malloc(mp, size) struct map *mp; { register unsigned int a; register struct map *bp;

    for (bp=mp; bp->m_size; bp++) { if (bp->m_size >= size) { a = bp->m_addr; bp->m_addr += size; if ((bp->m_size -= size) == 0) { do { bp++; (bp-1)->m_addr = bp->m_addr; } while ((bp-1)->m_size = bp->m_size); } return(a); } } return(0);

}

������ �� System III �� 1981 ���� ��������� ������ �� 32V �� ����������� ����, ��� ���� �������������� ��������� � ������������ �������� � �����������.

� ��������� �� ������� � ����������� � �������������� ��������� �����, ������ ���� �� V5/V6/V7/32V/SIII ���������. ��� – ����� ���������� ������� ������, � ������� ���������� ������� ��������. �� ������� ��� "������" ������� � ������� ������� ������ �� 32V/SIII ��� �������� ��� ���.

������ – ����� ������� �� Linux. �� ��� ��� ������� �������� ������� �� "������ ������". �������������� �������� � ������������� �������� ������������.

/*

  • Allocate 'size' units from the given map.
  • Return the base of the allocated space.
  • In a map, the addresses are increasing and the
  • list is terminated by a 0 size.
  • Algorithm is first-fit. */

ulong_t atealloc( struct map *mp, size_t size) { register unsigned int a; register struct map *bp; register unsigned long s;

ASSERT(size >= 0);

if (size == 0)
    return((ulong_t) NULL);

s = mutex_spinlock(maplock(mp));

for (bp = mapstart(mp); bp->m_size; bp++) {
    if (bp->m_size >= size) {
        a = bp->m_addr;
        bp->m_addr += size;
        if ((bp->m_size -= size) == 0) {
            do {
                bp++;
                (bp-1)->m_addr = bp->m_addr;
            } while ((((bp-1)->m_size) = 
                                                (bp->m_size)));
            mapsize(mp)++;
        }

        ASSERT(bp->m_size < 0x80000000);
        mutex_spinunlock(maplock(mp), s);
        return(a);
    }
}

/*
 * We did not get what we need .. we cannot sleep .. 
 */
mutex_spinunlock(maplock(mp), s);
return(0);

}

�������� �������������. ���� ����� – ����������. ��������� � ����� � �������� ���������� ������ �������� ���� �������������� ������� ������� ������. �������� "size_t" �������� ������ ����, ����� ���� �� ��������� ����������� � ���� "int". "mapstart" � "mapsize" – ����������� ������������. ������������ ������������ ��������� – ���������� �������� ����� � ��������� ����� ���������� ���������.

������ ������ ���� �� ������ ���� ����������� � ������� 2.11 BSD Unix, �������� �������� ��������������� ��������. ������ 2.11 ������� ����� ������������ ����������������� � � ��� ��������� ���������� ������ �� 32V; ��� ���������� ��������. ��� ���:

/*

  • Allocate 'size' units from the given map. Return the base of the

  • allocated space. In a map, the addresses are increasing and the

  • list is terminated by a 0 size.

  • Algorithm is first-fit. */ memaddr malloc(mp, size) struct map *mp; register size_t size; { register struct mapent *bp, *ep; memaddr addr; int retry;

    if (!size) panic("malloc: size = 0"); /*

    • Search for a piece of the resource map which has enough
    • free space to accomodate the request. */ retry = 0;

again: for (bp = mp-m_map; bp-m_size; ++bp) if (bp-m_size = size) { /* * Allocate from the map. If we allocated the * entire * piece, move the rest of the map to the left. */ addr = bp-m_addr; bp-m_size -= size; if (bp-m_size) bp-m_addr += size; else for (ep = bp;; ++ep) { *ep = ++bp; if (!bp-m_size) break; } #ifdef UCB_METER if (mp == coremap) freemem -= size; #endif return(addr); } / no entries big enough */ if (!retry++) { if (mp == swapmap) { printf("short of swap\n"); xumount(NODEV); goto again; } else if (mp == coremap) { xuncore(size); goto again; } } return((memaddr)NULL); }

� ������ ... �����! ... ������ �� System V Release 4, � uts/i386/os/malloc.c. ����� �� ������������ �����, ��������� ���������� ��������� ������, � �� ��������� ��������� ��������������� �������� SVr4. ������ ����� � ��������� �������� ��� ���-���, ���������� ����� �������������: ������� ����� �������� �� SVr4 � Linux.

����� ����� SCO, ������� � ������� ������� ��� ������ ���������� ���� �������� ��� ����� ������� � ������� SVr4, ������ ������ ������ �������� � ���, ��� ����� ��������� � ������������, ��� �������� ������ ���������, � ������������� �����������, �������� ����� ����� ������������� ����������, ���������� �����, ������� ����������� ������������ ��������.

����������, ����� ���� �� ��������, ��� ���� ���������� ���� �������. � ����� ������� �� ������ � ����, ���������� � 1993 ����, ������� ����� �����������, ����� ������� �������� � ���, ��� AT&T �������� ���������� ��������� ���� �� ��� Unix � ����� (��. ��� �������� "������� ����" ��� ������������ ����� ����������). ���� �� � ��� ��������� SCO, �� ���������, ���� � ����� �� – �������� ������� ��� ����� � �������. ��������� ���� �� ���� ������������ �������������, � ��������� ��������: � ������ ����� ���������������� ������������� � �� ���� �������� ����� SCO, ���� ��������, ���� ����� ������ ������������� ����� ���� ���� ��� ������������, ������������ ��� �� �������� GPL.

�������� ����. ������ "<" � ������ �������� ������, ��������� � ������ �� Linux; ������ ������������ � ����� ">", ���������. ����� ������ ��� ������, ����� �������������� ��� ����, ��� �������� ����� �������� SVr4 � Linux ���������� � ����������� ������� ������� �����������. �� ��� ��������� ��������: ��� ����, ��� ������� �� SystemV ������� �� ��� ("rmalloc" � ��������� ��� "malloc"), � ����� ������� � �������� ������������/�������������.

6d5 < * The swap map unit is 512 bytes. 8,12d6 < * < * As part of the kernel evolution toward modular naming, the < * functions malloc and mfree are being renamed to rmalloc and rmfree. < * Compatibility will be maintained by the following assembler code: < * (also see mfree/rmfree below) 15,26c9,12 < unsigned long < malloc(mp, size) < register struct map *mp; < register size_t size; < { < return(rmalloc(mp, size)); < } < < unsigned long < rmalloc(mp, size) < register struct map *mp; < register size_t size;

ulong_t atealloc( struct map *mp, size_t size) 30c16,18 < register int s;


  register unsigned long s;

  ASSERT(size >= 0);

33,35c21,24 < return(NULL); < ASSERT(size > 0); < s = splhi();


          return((ulong_t) NULL);

  s = mutex_spinlock(maplock(mp));

44c33 < } while ((bp-1)->m_size = bp->m_size);

                          } while ((((bp-1)->m_size) = (bp->m_size)));

47,48c36,38 < ASSERT(bp->m_size < (unsigned)0x80000000); < splx(s);


                  ASSERT(bp->m_size < 0x80000000);
                  mutex_spinunlock(maplock(mp), s);

52c42,46 < splx(s);


  /*
   * We did not get what we need .. we cannot sleep ..
   */
  mutex_spinunlock(maplock(mp), s);

���� � �������������� ���������� � UnixWare �� ������ SVr4, � ����� ������� ���� �� ������� ���� � ����������, ��� ������ ����� ���� �� UnixWare �� �������� ��������� ������ �� SVr4.

�������

��� ��� ����� ���� ���������� ������� ���� ����� ��� ����, ����� ������� ���� (��� ������ ������� ������������� ������������ �� C), ��� ������ �� Linux, 2.11BSD � System V Release 4, ���������� �� �����, ����� ������, ������. ������ �� System V � Linux ������������� ���������� �� ������ ������ ������ � ���, ��� ��� �������� �����, ������������ ���������� �� �������� �����������.

����������, ������ SVr4 �� ��������� �������, � ������ ��������� ����������� �������; �������� – � ��� �����, ��� SVr4 �� ������������ �������������������. ������� ������� � SVr4 ������� � ���, ����� ����������� ���������� (������ �������������, ��� ���������� ������� �� ����� �������� ��������� ��������� ��� ���������� �������), � ������ � Linux ������ ���������� ������������ �������������������� ��� ���������� ���������� ������. �������� �����������.

"������", "System V" � Linux-������ ����� ������� ���� �����, ������ ����� �� ��� ���������� ��� BSD. �������� ����� ��� – ����� �����, ������� ���� ������� �������� ��������, �� ���� ����, ��� ������������� ��� ���������������� ����� �����-�� �����.

����������� �����, ����� �������, ��� � ���� �� Linux ���� �������� ����, ��� �� ��� ���������� �� �������� ������ ����������, � �� ������� ������: ���������� "register". ��� ������ ������� �����������, ������� ����������� C ����������� ������ �������������, � ����������� ������������� �������� �������� � ������� �� � ����� ���� ������ ������ ��� �����. ��� ��� ������� ������: � ���� ��� ���������� "atemalloc" Linux'a?

����� ���������� �������� �������: ��� – ��������� ��������������� ������ ������ ����� ������� ����. ������ ������� – ��������� ���������� �������������. ������������� ���������� ��������� ������� ����; �������� ����������� – ��, ��� ��� SVr4 � ��� Linux �������� ������������ �������� ���� � �����, ��������� ���������� � 32V, � ����� ��������� �� 2.11BSD.

                                  +------> SVr4
                                  |
                ������ Unix ----+-|
                                | |
                                | +------> Linux
                                |
                                | 
                                +------> 2.11BSD

(�������� �� �������������, � �����, ����� ���� �������� ��� ����� HTML-������.)

����, ������� ��������� � ��������� ���� ������������� ������������� ������ – ��, ��� ��� ������������� ���������� ��������, ��� ��� �������, �������� � Eric Levenez's history chart

��� ��� ����������� � ����������� �� ������� ���� Unix, ��������� SCO, ���������� ����� ��� ����� ������� ������. ��� �� ����� ������� � ������ �� ��� �� ���������� � ������ ��������? ��� ������� �� ����, �� ����� ������ ������� ��� ���������� ���.

��� � ���� ����������?

������ �� ���������������� ������, ����� �������, ��� ����������, � �������� ��� ���������� ��� Linux, �������� �������� ���� BSD.

� 1993 ����������� Unix (Unix Systems Labs, USL) �������� AT&T ���������� ��� � BSDI, ��������, ��������� ������������ ������� BSD, � ��������������� ������������, ���������, ��� � BSD ���������� ��������� ����������� ���. �� ������ ���� ������ ������ �� ��, ��� �������� SCO. ���� ��� ������ ����� ���� ��� ����� ���������, ��� AT&T ���� ��������� �������� ��� �� BSD � ���� ����. �� �������� ���������� ����������� ���������� �������� ����������� �� ��������� ����� AT&T � ��������� �����, �� ������� ����� ���������� �������������� ������������ ������� �� �������� �������� BSD. AT&T ����������� ��������� �������� �������� ������������. ��������� ����������� ��������� �������� – �����.

��������� �������� ��������, ��� ������������� ������ ���� � "��������" BSD – ����������� ������ ������ ��������� � ���, ��� ������, ������������ � Linux ���� �������� �� SCO. � �� �� ����� � ������, ��� ��� ����� ��������� ����������� ��� ������ ������ ���������������� ������������ ����������� �������� ���� (� ���������������� � ��� ������, ��� ����������� ����������� ����� � ����� 2003 ����), ��, ������ ������, � �� ���� �������, ��� �����, ����� ��� – ����������� ������ ��� ������ ������. �� ����� ���� ������ ������� � ���, ��� �� ������� �� Linux ������������� ���������� �� "�������" Unix ���� System V ������, ��� ��� ������� ��� ������������ ��������� Linux.

����� �������� ���������� ���, �� ������ ����������� �������� ����� ��������� � ������������� ������������. ��������� ����������� � ������� ����� ����� �����, ����� �� �������, ��� ������ ���������� �������� ������������ ���, ��� �� ������� �� ����. �������������� ����������� – ����� �� ������, ��� �� ������ ����� ������. ����, ��������� ���������� ���, ������ �����, ����� �������� ������ ���� ��������. ����� ������� ������ ������� ��� – �������� ����� ����������, ������ ��� ����� ��������� ������ ������� ��� ����� ��������� ���.

�������, �� ������� �� ������ ������ ��� �������� – ��� ������ ���� ���������� ���� ����� ���������, ���, ���� �� ���, ��� ���������� ���, ���������� ������ ���, �� �� ����� �� ���������� �� �� ����� ��������� � ������ ������.

� �������, � ����� ������ �� ����� ��������� ����� ���� � ����������� ����������������� �����������. ��� ������ ���������� "bp" ��� �������� ��������� ����������. �� ���� �� ������� ����� �������� �� SVr4 � Linux, ���� "������" Unix � Linux, �� �������� ��� ��������� ��� ����, ����� ������ ���������. ��� ��� �� ����� ������������, ��� �� ����� ���� ����� �������� ���������� �� �������.

�������� ���, ���� ��������� �� ���� ������ ��������������, ������� ������� � ������ "�������" ����. ������ – ��, ��� ������� ������� �� ��� � SVr4, �� ���� � "������" Unix � Linux. ����� �������� ��������� – ��� ��� ������ ����� ����� SVr4 � Linux ���� �� ������� ���������� ���� (�� ������ ������ "ASSERT"). ������ ������������ ��, ��� �����������, �������� ���������� ���, ����� �� ������ �� �������� ����� ����������; ������������� ���������� �� ����� ������ �����, ����� ���� ������� ������ ��������, ������� ����� � ����� �������� ������� ������� ������. ��� ������� ������� �� ������ ��� ��� ����� ����������� ����� ���������� ������� �� � ���, ����� ������� ������ "ASSERT" ���������: ��� ������������ ��� �������, � �� ����� ��� ������, ��� ��� ����� � ��������� �������� ��� ���.

� ������ �������, �������� ��� ����, ��� ������ � �� SVr4 � �� Linux ��������, ���������������� "ASSERT" � ���, ������� ���������� ����������� � ������������� ��������, � �� ����� ��� ������� Unix ����� �� ������, ����� ���������� ��� ��� �������� ����� �������������� ����, ����� ��� � Linux ��� ���������� � SVr4. �� ����� ���� �����, ��� ����� �����������. ������ ����� "ASSERT" ���������� ����������, ��� ��� �� �� �������� (������ �� Linux ��������� ���������, ������ ����). � �� ��� ������, ��� ���������� ������� ���������� �������.

� �������������� ������ Caldera ����������, ��� ������������ ������������������ ��������� (SMP) � Linux ���� ����������� �� SVr4, �� � �� �������������� ������ �� ����� ���������� ��� ����������. ������ ����������������� ��, ��� ������������������ ��������� � Linux ���� � ���� �������� ������ ������ � 1996 ���� � �������������� ������������, ���������������� Caldera. � ����������������, ���������� �������� ����������� ��� ��������� ������� �� "��������" Unix; ��� – ������ ���������� �����������, ������ ��� ���� ����������� ����� ���������� �������� ����������, ������� �� ������������ � 32V.

����������, �������� ������������ ����������� ����, ��� ����� ��� � Linux ��� ���������� � SVr4, �������� ���������������� "mapstart" � "mapsize". ��� ������������ � ������� �� Linux � SVr4, �� ����������� � "������" ����. ��� �� ������� ������������ ��������� SMP.

���� � ��������� �������� ����� – � ��� �����, ��� �� ���������� � Linux � SVr4 �������� – ��� ������������ ����� ���������������� ��� ������� � ��������� ���������� ������. ���, �� ����� ���� ����������� � SVr4 � ��������, ������ ��� ������������ ��� ������ ���� �� �������; ������, ���-��, ���������� ��� �������������� Linux ��� ia64 � �������� ����� ���� ������ SVr4, �������� ������������� ������� ��� ����, ����� ����� �������� ������� ���������. ��� �� ����������� �� ���������.

� �����, �������, ������� �� �����, ������������, ��� ��� Linux ��� �������� ���������� �� "�������" Unix, � �� – ������������ � �� System V. ������ � ������������� �����������, �� ������� �������� ���������� SCO, �� ��������� � ������ ������ �� ������ ��-�� ��������-��������� �������� ���������� ������������ ��������, �� � ����������-����������� �������� ������������� �������������.

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

� ��������� ��� SCO, ��������� ����, ��� "atemalloc" � Linux, ��������, ��� ���������� �� 32V, ��������� �� ������� �� ����. ��������� ��������������� ���� �� "�������" Unix ������ 32V, ������� �������� ��� ����������� �����.

������ ���� ��� ������� � ����? ������, ��� SCO/Caldera ��������� �������������� �������� ������ 5th Edition, 6th Edition, Version 7, 32V, � System III �� �������� ��������, ���������� �� �������� BSD, � ������ 2002 ����, ������� �� ����, ��� ���� 2.4.19 ���� ���� ��� � Linux.

��� – ����� ������, � ������� Caldera ���������� �������� � ������� ������ ���������� "������ Unix'��". ����� �������, ������� �������� ������, ������������ ��� "������������ ���������� � ���� �� ������ ����������� �������� ���������� � Caldera Intl". ������ �-�� �������� �������� ������ �� ���������� ������������ ����� ��������. � ������ �������� ���������� ���� ��������� � System III, �� ����� ��������, �� ������� SCO �������������� �� ������ � ������� "�������" �������� Unix, ��� ��� ���������� �� Wayback Machine.

������, ���� SCO, ��� �������, ��������� �������� ��� ����, ��� ��� ���� �� "���������" �������� ��������� ���� ��� ������������ �� �� ���������� Unix. �� ��������, ������������ � �������� �� "������" Unix'� (Ancient Unix license), ���������������� ��������������� SCO/Caldera, ������������ ���� Linux ����� ��������� ���������� ��������� ����� "������" Unix'�� � ����, � SCO/Caldera �� ����� ������� �������� ���������� �� ���������� �� ������ ������.

��� ����, ��� ����� ������� ��� ���������� � System V, ��������� �� ������� ��. ����� �������� ����, ��� ������ ����� ��������, ��� ������������ ������� ����, ������� �� �������������� �� � ����� "��������" ���� Unix, ���� ����������� � ���� Linux. ��� �����, ��� �������, ������.

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

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

1. ��� �� Linux ���������� �� ia64, � �� ��� i386, ��� � SVr4.

2. �� ������� �� SGI, � �� IBM ��� Sequent.

3. �� ��� ������� � ������ 2.4.19 � ������ � 2.5.

4. ������ 32V �� �������� ������� ��������� ������.

������ �� ��� ����� �������� ��� ���� SCO. ������ �������.

���� ��� ���������� ��� ia64 ��� ���������� Itanium, ��� ��� � �������� ������ ����������, ������������� ��� 32-��������� ����������� Intel. ��� ��������, ��� ����� 90% ���� ������������� Linux, ������� ������������� ������������� ������� SCO ������ ������ ������ �� ��������, ���������� �������� ����������� Linux, � ������� ���� ��� �� �������. ���������� �����, SCO �������� �� ��-�� ����, ������� �� �������������� � �� ����� �, ��������, �� ������������ � �������� ���� ����� �� �� ������� �������!

��������� ����� �� ����� Linux ����������� Silicon Graphics, Inc – �� ������� �� ����������� � ��� ��������� ������ � �����������. �� ������� ����� ���� NUMA (���������� ������� � ������������ ������, Non-Uniform Memory Access) SCO ������� ���� ����������, ����� ����� ���� ������� SGI. ������ �� ����� �� ������� ���� SCO � ��������� ���������, ������� �������� �� �����������, ��� ��� �� System V ��� ������������� ��������� �������� IBM � Sequent, ������� ����������� �������� ���������� ������ SCO, ��������� � Unix.

����� ������� �������� ���� � ��� �������� ����������� �� ���� ��������, ���� �� ������ "�����" � ���� "�������������". ������� "�����": ���� ��� "atemalloc" ��� ������ � ������ 2.4.19. ����� �������, GPL �� ���� �� ������� ������ ��������� SCO � ���� ������, ������ ��� ��������� ���� Linuz, ������� �������������� SCO, ���� 2.4.13.

������ �������: ��� ��� ������ �� ������ 2.5 � ���� 2003 ����, �� ��-�� ������� � ���������� �������, � ��-�� ����� �����������. ��� ��� � ������� ������ Linux, ���� ��� �� ������������ ���� � ������ ����������, ������������� ��� ia64!

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

P.S.: � ��������� �� ������� ������������ ��� ���������� ������������ � GPL ������� � ���, ��� ��������� ������ ���� �������� ������ ��������, ������� �������� (��� ���������) �����, – � "atealloc.c" �������� ������ "SGI", ��� ��� � �� ����, ���� ����������� �� ��, ��� �� ������� ���.

������ ���������� ��� – ������ ����� ������������� ��� �������� (IBM ��� ����-���� ���), ������������� �� ��, ����� ������ SCO �� ���������������� ������������� ��� ������ ����� ��������� � ����. ������ �����, ����� ���������� ����� ������, � ������������ � ������� ������������� ��������� � ������ ���� ������ ���� ���������� ����� �����, ���, ����� �� ������ ����� ���� ����������. � �� ������, �� ��� ������ ������, ��� ��� ���� �������������� ��� �������� ����������.

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

������ 32V, ���������� � 1979 ����, �� ����� �������� ������ �������� �� ���������� ���������� ����� �� ���. ��� ����� �������� ������ ���, �������� ������������� ���������������� �� ��������� �����, �������������� �� 1996 ����, AT&T ��������� ������� � �������� ���������� ���������� �� ��������� ���� �� ������������� ���������� ����� �� �������� ������. ��� – ������� ����, ��� ����� �� ���� "AT&T ������ BSD" ����� �������, ������� � ��� �������� ������������ ����, ��� AT&T ����� ����������� ���� ���������� �� ��������� �����, ���, � ���� ������� ������� ��������, �� ������� AT&T ����� �� ���������� �������� ����������. ����, ���, ���� �� ���� ����� �� ������� � ���� ����, ���, ��������, �������� �� ��� ����� �� ���.

����� ��� ������� � 1996 �������, ������� ������ ������ ���� �� ������������ ��������� ���� ������� ����� ����������� � �������. (���, ��� �� ���� �������� ��������� RIAA, ��� ������ ���� �������� ������������ ���������������� � ������������ � ������������� �������� ���������� �� ��������� �����.)

SCO, ��� ������������� AT&T, ����� �������, ������������ ��������� ��������. ���� ��� ����� ����� ���������� "������" Unix, ������������ ����������� ��� �����, ��� ������ ������, ����� �� ��� ��������� ����� �� ���. ��� �� ���, ���, ��� � �, ������� ����������� System V, ������� �� ��������� �� 1996 ����, ������ ������������ �� ���, ��� ��-�� ����������� �� 1996 ���� ������, ��� � ������, ��� ���������� ���������� ���� �������� �� �������� �������������, ��������� � ���������� �������, ������� �����. (�� ��� ��� ��� ����� ���� �� ����������� ��� �� �� �����������: ��� ���� �� ����� ����������.)

�, ����������, ������������� � ������ ����, ����������� �������� ���� ������� ����� ��� ��� ���� �����, SCO �� ����� ������� ����������� ���������� ������ �� ��������� ���������� ����� �� ����, ������������ �� ��������� �� ��� ����� 1996 ����.

����������

����� �������, � ���������� ������: SCO ����� � ���, ��� �� ����� �������� ��� ���� � ������� � ���, ��� �����. ��, ������������� �������, ��� � ������ ������ ��� ��� ���������� � Linux �� ������ ������ Unix. ��, ��������� ��������������� ���, ����������� �� �� ����������, ��� ������� ��� "�������� ���������", ����� SCO/Caldera ������, ��� ��� ������� � Linux, SCO/Caldera �� ����� � ������ ������ ������� ��������� ��� ����������� ����-���� � ���������������.

�� ������ ����� ��������� ������ ���� �������, ��������� ������ ���� (Greg Lehey). �� ���������� � ��������� ������, �� �������� � ��� �� ����� �������.

���������� ����� ������ ����� ������� (Bruce Perens), ������� �������� ������� ������ �������.