Мы можем отличить UNIX товарный знак от Unix кодовая база.
Unix был первоначально разработан в Bell Labs, принадлежавшей AT&T. Эта команда Unix стала Unix System Laboratories (USL) AT&T и произвела System V Unix (Римская цифра для пять) или SysV, если коротко. Калифорнийский университет в Беркли (UCB) также лицензировал Unix для академического использования, их Computer Systems Research Group (CSRG) позже внесла много важных изменений и дополнений (особенно TCP/IP) в их Распределении программного обеспечения Беркли (BSD), которые были позже включены во многих потомков продвижения Unix к BSD по сравнению с разделением SysV. В конечном счете много изменений BSD было бэкпортировано в SysV (который мы можем считать основной "наследственный Unix" кодовой базой).
По пути многие различные компании лицензировали эту кодовую базу (на различных этапах в, он - разработка), и использовал его в качестве основания их собственных операционных систем Unix - AIX, HPUX, IRIX, Солярис, Ultrix и десятки других.
USL был куплен Novell. В это время наследственный код Unix был известен как выпуск 4 System V Unix - или SVR4, если коротко. Novell назвал их продукт Unixware для дополнения названия их традиционной сети Сетевое обеспечение ОС. Novell был Приобретен Attachmate.
Novell в конечном счете продал их бизнес Unix старому лицензиату SVR3.2 Операция Санта-Круза (SCO), основной бизнес которой до той точки продавал продукт под названием OpenServer, который был основан на Unix SVR3.2. Novell (так как купленный Attachmate) все еще владеет некоторыми правами ‡ к Unix, но не делает никакой работы над исходным кодом.
Операция Санта-Круза позже продала их бизнес Unix компании Linux Кальдера, кто позже переименовал себя к SCO Group (иногда называемый новой SCO или SCOG) и у кого был катастрофический отказ продвижения лидерства к банкротству главы 11 и продажи бизнеса Unix к UnXis, бизнес, сформированный с этой целью. Впоследствии SCO Group была реорганизована в TSG Group Inc и TSG Operations Inc. У них нет роли относительно обслуживания наследственной кодовой базы Unix. В августе 2012 TSG Group Inc преобразовала в банкротство главы 7.
Таким образом, теперь UnXis ответственны за маркетинг и разработку/поддержание Unixware - наследственная кодовая база Unix AT&T. Поскольку Операция Санта-Круза (старый SCO) первоначально портированный † Unix на x86 платформу, я верю x86, и x86_64 являются единственными целевыми платформами, которые непосредственно поддерживают UnXis.
12 июня 2013 UnXis объявил, что был переименован в Xinuos.
† Microsoft лицензировала Unix и портировала его к 16-разрядному Zilog Z8000 - старая SCO купила Xenix от них и портировала его к 16-разрядным 8 086 архитектуре (используемый IBM для их исходного IBM PC). Старый SCO позже портировал SVR3.2 к x86, поскольку 32-разрядный SCO-Unix позже переименовал OpenServer
‡ права Novell оспаривались, несколько бесполезно, SCO Group (теперь названный TSG Group Inc), несостоятельные остатки старой компании Linux Кальдера. Еще не ясно, прекратила ли TSG Group Inc наконец этот и связала тяжбу в результате 30 августа 2011 решений суда против них
Вы хотите считать первые несколько строк /proc/stat
. Необходимо будет считать его дважды, измеренное время независимо, и вычесть первый набор чисел от второго. Строки похожи на это:
cpu 1526724 408013 600675 541100340 2861417 528 14531 0 0 0
cpu0 344507 77818 251244 134816146 1119991 324 13283 0 0 0
cpu1 502614 324065 179301 133991407 1631824 136 906 0 0 0
cpu2 299080 3527 79456 136144067 103208 59 255 0 0 0
cpu3 380521 2602 90672 136148719 6393 7 86 0 0 0
intr 2111239193 344878476 16943 ...
Первая строка является совокупной для всех ядер. Следующие строки показывают каждое ядро. Когда Вы видите строку, которые запускаются с intr
, Вы знаете, чтобы прекратить анализировать.
Каждое число является количеством времени, которое ЦП провел в конкретном состоянии. Единицы обычно являются сотыми частями секунды. Поля user
, nice
, system
, idle
, iowait
, irq
, softirq
, steal
, guest
, и guest_nice
.
Авторитетная документация является, конечно, исходным кодом. Если у Вас есть копия удобного источника ядра Linux, посмотрите на fs/proc/stat.c
, особенно show_stat
функция.
Существует некоторый пример в сети, которая показывает, как читать /proc/pid/stat
в C.
Вы могли читать utime
или stime
значения в два отличных момента и вычисляют желаемую статистику загрузки ЦП. (Я предполагаю top
использование это необработанные данные также.)
(Я забыл: это - конкретный Linux.)