ʵʱLinux (RT-Linux)

ArticleCategory: [Choose a category, translators: do not translate this, see list below for available categories]

KernelCorner

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in es Ismael Ripoll

es to en Miguel Ángel Sepúlveda

en to zh_CN SEVEN

AboutTheAuthor:[A small biography about the author]

Abstract:[Here you write a little summary]

��ƪ���½�����ʵʱLinux��RT���Ļ�������Լ�ʹ��RT-Linux��Ӳʵʱ��

ArticleIllustration:[One image that will end up at the top of the article]

[Illustration]

ArticleBody:[The main part of the article]

��ʵʱ����ʲô��

�ڽ���RT-Linux֮ǰ�����б�Ҫ�������忴һ��һЩ�йء�ʵʱ����˼�롣����˵��

��һ��ʵʱϵͳ������һ����Ϣϵͳ��������ȷ�Բ������������㷨���߼������ �������ڲ�����Щ�߼�����ļ�ʱ�ԡ���

��������ȷ���������Dz����ģ���������������һ���ض���ʱ�����ڵ����� ��Ҫע�⣺������Ķ����У�һ��ʵʱϵͳ�����������Ǻ���Ȼ���뵽����������Ҫ�졣 �ȷ�˵��һ����ֻ����ϵͳ�����������ٶȺ������������Ǿ����С����㡱 ��ʱ���������Ŀ����������������Գ����������ܲ���һ��ʵʱϵͳ�� ��������Σ��������ǵĶ��壬������һ��ʵʱϵͳ��

ע�����Ƕ������һ����ʵʱϵͳ��������һ��������ϵͳ���� һ������ϵͳͨ���dz��죬���ҿ��Ը��˺ܡ���ʵ����ӡ�� ���͵أ����е�ģ�����ͽ���ʽ��Ϸ����Ҫ���û�һ��������ʱ�仭�棬 ���ң��ڵ�λʱ���������ɵ�ͼ��Խ��Խ�á�

��������������ϸ�ؿ���һ�¡�˲ʱ���ơ��ĸ�� ����һ������ͨ������һ�������������Ӧ����ͬ�ĸ��أ� ����������ʹ��һ��PID��Proportional- Integral-Derivative�����ơ� �����ǵĹ۵�������PID���ƾ���һ��������������һ����� �����������������������ʣ������ҷ���һ����Ӧ��������Ŀ����źŵ�ֵ�� �������ֵ��������ʩ����Ӧ�ĵ�ѹ��PID�㷨��Ʊ�������ۣ�˳����һ�����Ƕ෽��ģ� �������ʱ���ǿ��Ժ��Բ��Ƶģ�Ҳ����˵���Ӷ�ȡ��������ʵ����ǿ�ʼִ����һ��ʱ��̡ܶ� ��������£�ϵͳ������һ��С���ӳ١� �������͵Ŀ��Ƶ���һ�����Ծ��������������Ե�ִ�С� ����֮��PID�㷨���밴��һ���Ĺ���ִ�С� ����������ε���PID���������ʱ��̫���� ��ô������ܻ�ﵽһ�������������������ʡ��ܵ������� PID�㷨���Ա�����һ�����������������Ե�ִ�У�Pi���� ������ʼִ��ֱ��������������ʱ����Բ��ܴ������PIDʱָ�������ʱ�䣨Di���� ���ң����ݴ��������ٶȣ�PID����Ҳ��Ҫһ���ض���ʱ��(Ci) . ��

Pi������i�����ڡ�

Di������i��������ޡ�

Ci������i�����(����������)����ʱ�䡣

���ϵͳ�ǵ�����ģ���ô��һ��ʵʱϵͳ�������κ����⣺ ������������������Ҫ��ʱ����������񣬻��߲��ܡ� ��������������㹻�죬��ô����ֻ��Ҫ��һ����һЩ��CPU��

��ϵͳ���ɶ��������ɵģ�������ҪΪ���Ƿ���һ�����������������Ĵ�������ʱ�� ��ʵʱ������ͳ����ˡ����谭������ʹ��һ������ķ�ʱϵͳ���ȷ�˵Linux�� ��Ȼ����û�б�Ҫȥ����Щ���硰��Ҫ��Windows�ϱ�д��Ҫʵʱ�Եij���֮������ˡ� һ����һ��Ľ����ǣ���Ҫ������ƽ̨��д�κ����͵ij���

���������е�ʵʱϵͳ������ͬ�ģ� ����һ��������ABSɲ��ϵͳ������������ȼ��ע��ϵͳ�Ϳ���һ��MPEG�ļ��Ľ�ѹ���Ӿ�Ч���Dz�ͬ�ġ� �ڵ�һ������£�ִ��ʱ���һ��С���ӳپ��п���Σ����ʻԱ��������ȫ���߻ᵼ�´�����������ʧ�� ���ڶ������ֻ������ϵͳ�������˻���ͼ����ܻ�ͣס�����ܶ�ʧһЩ֡���� ��һ�����͵�ϵͳ������Ӳʵʱϵͳ���ڶ���Ϊ��ʵʱϵͳ�� �ڴ����ǽ���������Ӳʵʱϵͳ��

���һ��ӲʵʱϵͳҪ���������׶Σ����ȣ� Ҫִ�е������˲ʱ���Ʊ��뾭���������������ǵ������� �ڶ�����д���룬ÿһ��ʵʱ����Ҫ���������͵��Ȳ��ԣ� �Ա�֤��ϵͳ���й�����ÿ�����񶼲��ܳ�������������ʱ�����ֵ�� ���Ȳ�����Ӧ����һϵ�в��Ե�����������ɣ� �����ͨ���ڶ��׶εIJ��ԣ����п��ܱ�֤û��������ܻ����г����������ޡ� ������Բ���ͨ���Ļ�����ô��ƾͱ������´�ͷ��ʼ�� ѡ��һ����һ���CPU������ʹ���������㷨��ʵ����Щ����

�ܽ�����������������ʱ���ʶ��Pi��Di��Ci��ϵͳ��Ŀ���ǣ� ��֤���е����������е�ִ�й����ж�������ϵͳ������ʱ�����ֵ�� Ϊ�˱�֤����ʱ�䣬ϵͳ��������Ԥ���ġ� ˵һ��ϵͳ��һ��ʵʱϵͳ��˵һ��ϵͳ�ǿ�Ԥ���ʵ������һ���ġ�

����ϵͳ��ʵʱϵͳ��ʲô��ϵ��

ϵͳ��Ӧ�������ȷ���dz���Ա�����Σ���˲ʱ����ȷ�������ڲ���ϵͳ��OS����

����ϵͳ������֧�ֺ���֯���������ִ�У������ж�Ҳ������ְ�� ����ϵͳ�����ṩ��

����ͨ�IJ���ϵͳ��ͬ��ʵʱ����ϵͳ��Ŀ�������̶ȵؼ��ٸ����ԡ� ���Dz���Ҫһ�������ܶ������ϵͳ������Ҫ���������ڹ涨��ʱ���ڿ�Ԥ���ִ�����ǵ�����

��һ��ʵʱϵͳ�ϣ�һ�������������Ҫ10����λʱ������� ���������Ļ����ĸı䣬��������������12�ĵ�λʱ���ǿ�ȡ�ġ� ����������ͨ�IJ���ϵͳ�ϣ�һ��ƽ���������Ҫ3����λʱ��ij��򾭳���ִ��20����λʱ�䡣

�������һ��ʵʱϵͳ����ͨ�IJ���ϵͳ�����������Dz��ظе���֡� ��ʱ��Ϊ�˻�ÿ�Ԥ�����Ϊ��������Ҫ��ֹʹ��Cache�� ������һЩ�����ϵĶ�ʧ����һ��ʵʱϵͳ��˵�� ������Cache���ṩ�Ĺܵ��ߵ�Ԫ��Ԥ����ת�㷨�����ĵ��ˡ�



POSIX��RT��չ

POSIX�ǿ���ֲ����ϵͳ�ӿڣ�Portable Operating System Interface��������ĸ��д������ΪʲôOS�����д����û��һ��X�أ����� ��һ��׼�����������Դ���뼶����������ֲ�ԡ� ���仰˵��Ϊһ��POSIX���ݵIJ���ϵͳ��д�ij��� Ӧ�ÿ������κ�������POSIX����ϵͳ����ʹ��������һ�����̣��ϱ���ִ�С� POSIX��׼�����˲���ϵͳӦ��ΪӦ�ó����ṩ�Ľӿڣ�ϵͳ���ü��� POSIX����IEEE (Institute of Electrical and Electronic Engineering) �����ģ�����ANSI (American National Standards Institute)�� ISO (International Standards Organisation)��׼���� ����ȻPOSIX�ǻ���UNIX�ģ�������IJ���ϵͳ������Windows NT���������ڿ������ǵı���汾��POSIX���ݡ�

DrawObject

POSIX�Ķ��屻��Ϊ���������飺������������̡�������˾�� �������źͼ�������ʦ��ÿһ����������ڲ���ϵͳ��ijһ���档 ���磺POSIX.4���ǹ���ʵʱ��������ݡ�

POSIX.4����չ��1993�����Ϊ1003.1b������һ������ϵͳ��ʵʱ�����ʹ�á� �����ԣ���Щ��չ�󲿷ֶ��ǹ���ʱ������ͽ������ȼ��� Ҳ��һЩϵͳ������Э�����н��̼�ͨ�š�

POSIX��չ�����������ǿ����ϵͳ����Դ�Ĺ�������������

Linux2.0Ϊʵʱ��ʵ�����������POSIX��չ��ϵͳ���ã� ��Linux��һ������������ǽ����Ժ�������ۡ� ����2.2�汾������100%��POSIX 1003.1b���ݡ�

ʵʱLinux

RT-Linux������ī�����ҵ���Ƽ�ѧԺ�����ϵ�� Victor Yodaiken��Michael Barabanov���������ġ� ����Michael�ύ����ɼ������ѧ˶ʿ���ĵ�һ���֡� ������õİ汾��0.6������ֻ����INTEL��ϵ�ṹ�ļ�����ϡ�

RT-Linux����һ����ȫ��ͬ�ķ�ʽ�����һ����ġ� �б����޸�Linuxϵͳ���ں���ʹ����п�Ԥ���ԣ���ֱ���ڴ�������i386�� �Ͻ�����һ������һ����������С�ĺ��ģ���Linux kernel��������� Linux�ں�����һ���������У���������ʵʱ��������������� ��ôLinux�������������CPU������ȷ��˵��Linux�Ǻ�̨������ ֻ��û������ʵʱ����ִ�е�ʱ�����Ż����С�

�Ҳ���������ڿ��������ˣ���������Ϊ���������ϵͳ��һ�����壬 ��ô�����޸�����

DrawObject

�����˾�����ǣ���ʵ�ϣ������Ϊһ��ģ�����Ļ��� ����Զ�̬��װ����Ƴ���������

����������ϵͳ���ƣ���Ϊͬ����ʽ����Ϊ��ʵ���ٽ����� Linux�ں˴���ͨ����ر��жϡ������Linux���ж��ڼ�����һ��ʱ���жϣ� ���ͻ��������⽫���¶�ʧ˲ʱ��ȷ�ȡ�RT-Linuxʹ����һ���dz����ŵĽ�������� ���ж�CLI��STI��IRET���޸��ж�״̬�Ļ����ã��ĵ��ö��� S_CLI��S_STI��S_IRET�������ģ�⣬������Linux����Զ���ܽ�ֹ�жϵ��á�

RT-Linuxȱʡ�ĵ��Ȳ�������ռʽ���̶����ȼ��ĵ��ȣ� ����Linux�������˽ϵ͵����ȼ��� ���ʵʱ�������������е�CPUʱ�䣬��ôLinux���񽫲��ܻ���κ�CPUʱ�䣬 ������������ֹͣ��һ����

ʹ��RT-Linux���Dz�������һ��ʵʱϵͳ��������һ������IJ���ϵͳ�� �ڲ����Ϳ���һ������ϵͳ��ͬʱ���ǻ������������ˡ�

RT-Linux�İ�װ

��һ���а���ļ������������ã� http://luz.cs.nt.edu/~rtlinux.

Ϊ�˰�һ��Linuxϵͳ�ij�RT-Linux�� ���DZ����RT-Linux�ṩ���ں˲���Ӧ�õ��ں�Դ�����ϲ����±����ںˡ� �����DZ���ķ��������Ǽ���rtlinux-0.6-2.0.33.tgz��Ŀ¼/usr/src�£� �������ѱ���ѹ����/usr/src/rtlinux-0.6�� ���ǻ��ٶ����е��ں�ѡ��Ѿ����ã�make config�����ˡ�������

# cd /usr/src/linux
# patch       -p1 <../rtlinux-0.6-2.0.33/kernel_path
# make dep; make clean; make zlilo; make modules; make modules_install
# reboot

���ں˸�һ����ͨ���ں˿�����ûʲô��� �����Ѿ�׼����ת��Ϊһ��ʵʱϵͳ�ˡ� ��/usr/src/rtlinu-0.6-2.0.33/testing���и��ָ�������ʾ����

���˷��а���testingĿ¼�е����ӣ��㻹��������Oleg SubbotinΪ����׼������һ��ʾ���������������Ǵ��������ִ�м�¼�� ��һʾ����һ���ļ���һ���޸��˵ĵ���������������ִ��������ȣ� ���ܹ����͹���������ߵ���Ϣ����һ��Ϣ���ռ����洢��һ���ļ��У� �Ժ����ͼ�λ�����ʾ��������ǾͿ��Կ���������������ʲô˳��ִ�еģ� ���и�����Ȩ�������������ռ�����ȼ�������ġ�Linux����û�б��ֳ�����

ÿһ�����񶼱�����һ��ˮƽ���ϡ������α�ʾÿһ������ռ��CPU��ʱ�� ����Ϊ����ʹ��һ������������ϵͳ��������ͬһʱ��ֻ����һ��ʵ�������У��� ����������ÿһ��������������ִ��ʱ�������ǵ�������ͬ�� ��һ������һ��ʱ������ǣ���������������һ������������ִ����ϡ� ���沿�ֵ�������нϸߵ����ȼ��������ܴ�����������600λ�ã���ռ��������

RT-Linux���

�����Ѿ�����һ���ദ������RT-Linux�汾��Ϊ�˾����ܵر���ϵͳ�Ŀ�Ԥ���ԣ� RT-Linux�����ṩ�ķ��񱻹�������Ƶĺ��٣� ��Ϊû�б�Ҫ������Щ��ʵʱ��Ҫ���ϸ�Ĺ��ܡ�

������ǰ��ʼ��һ��RT-Linux�ֲ�-�̵̳ı�д��������������д��1998�꣺����ע��

����

��RT-Linux������ǰ���������Ҫʵʱϵͳ�Ĺ���ʦ����ʹ��MS-DOS���ҽ���������Ҫ�������� �������Էdz����˵ļ�Ǯ����һ��������ʵʱ����ϵͳ�� ���ڿ�����������һ��ȫ���ܵIJ���ϵͳ�� ���ǿ������뽫Ҫ���������ϵ���ͬ��ϵͳ�Ͽ���ʵʱ�ij��� ʵ���ϣ��������������˵�ͬʱ�����м���ʵʱ����Ҳû�����⡣

������һϵ���Ժ�������л��о�����ʵʱӦ�ó�������ӣ� �Լ���α�д�����Լ���ʵʱ����