Gerçek Zamanlı İşletim Sistemi (RTOS), gerçek zamanlı uygulamalar için tasarlanmış çoklu görev icra edebilen bir işletim sistemidir. RTOS günümüzde askeri alandan kişisel cihazlara kadar yaygın bir kullanım alanına sahiptir.
RTOS iki bileşenden oluşur. Bunlar Gerçek Zaman (Real Time) ve İşletim Sistemidir.
RTOS sistemlerinin stabil bir şekilde kullanımını sağlayan ortam Linux'tur. Donanıma ulaşım konusunda oldukça elverişli bir yapıya sahiptir.
>Gerçek Zamanlı İşletim Sistemi'nin oluşturulabileceği birçok yol vardır. Bunlardan birini deneyelim nasıl yapıldığını anlatalım.
Ubuntu 11.10 üzerinde Xenomai
1.Öncelikle ubuntunun eski versiyonlarından biri olan
ubuntu 11.10 işletim sistemini temin ediyoruz.
2.Ardından oluşturacağımız ortam ana makine ise
buradan , yok hocam ben sanal makine ile uğraşacağım deli manyağım dersen
buradan devam ediyorsun.
(Tavsiye olarak Vmware'a bulaşmayın.)
3.Şu ana kadar yaptığımız şey stabil çalışma ortamı olan 11.10 ubuntuyu kurmaktı. Şimdi işin bir diğer zevkli kısmına geliyoruz. Yani kurulum için gerekli olan dosyalara. Bunlar:
Böylece paketlerimiz ubuntu sistemi içerisinde yerini almış oldu.
4. Bunların ~dk gibi bir dosyada olduğunu varsayalım. Ve terminal penceresinden aşağıdaki adımları takip edelim.
--------------------------------------------------------------------------------------------------------------------------
[~]$ sudo -i
[sudo] password for cpb:
[~]# cd /usr/src/
[src]# tar -xjf ~dk/xenomai-2.6.0.tar.bz2
[src]# tar -xjf ~dk/linux-2.6.38.8.tar.bz2
[src]# mv linux-2.6.38.8 linux-2.6.38.8-xenomai
[src]# xenomai-2.6.0/scripts/prepare-kernel.sh --linux=/usr/src/linux-2.6.38.8-xenomai --adeos=xenomai-2.6.0/ksrc/arch/x86/patches/adeos-ipipe-2.6.38.8-x86-2.10-01.patch --arch=i686
patching file arch/x86/Kconfig
patching file arch/x86/include/asm/apic.h
patching file arch/x86/include/asm/apicdef.h
[...]
patching file mm/mmu_context.c
patching file mm/mprotect.c
patching file mm/vmalloc.c
[src]#
------------------------------------------------------------------------------------------------------------------------
5. Olayın curcuna bölümü burada başlıyor. Ne yapacağız? Kernel konfigürasyonu tabii ki de.
-------------------------------------------------------------------------------------------------------------------------
[src]# cd /usr/src/linux-2.6.38.8-xenomai/
[linux-2.6.38.8-xenomai]# cp /boot/config-2.6.38-11-generic ./.config
[linux-2.6.38.8-xenomai]# make menuconfig
-------------------------------------------------------------------------------------------------------------------------
menuconfig diye elimiz hala sıkıntı görmemişse ekranda gözlerimizle beraber ellerinizi yumruk yapıp gözlerinize götürebilir, hatta ovuşturabilir. Güzel haber doğru yoldasınız.
---------------------------------------------------------------
General setup -->
<*> Kernel .config support
[*] Enable access to .config through /proc/config.gz
------------------------------------------
Processor type and features -->
Processor family (Core 2/newer Xeon) -->
------------------------------------------
Kontrol etmemiz gerekecek ilerde : /proc/cpuinfo
.
----------------------
Processor type and features -->
[ ] Enable -fstack-protector buffer overflow detection
---------------
Power managment and ACPI options -->
ACPI Support -->
< > Processor
---------------
Power managment and ACPI options -->
< > APM
---------------
Power managment and ACPI options -->
CPU frequency scaling -->
[ ] CPU frequency scaling
---------------
Power managment and ACPI options -->
[ ] Cpuidle Driver for Intel Processors
---------------
Processor type and features -->
Preemption Model -->
(X) Preemptible Kernel (Low-Latency Desktop)
---------------------
ayarlarını yapmayı ihmal etmiyoruz. Yazık ederiz yoksa.
6. Ardından du bi lan olmuş mu acaba diyeceğiz ve yolumuza şöyle devam edeceğiz:
--------------------------------------------------------------------------------------------------------------------------
[linux-2.6.38.8-xenomai]# make-kpkg --append-to-version -xenomai --initrd buildpackage
exec make kpkg_version=12.036+nmu1 -f /usr/share/kernel-package/ruleset/minimal.mk debian APPEND_TO_VERSION=-xenomai INITRD=YES
====== making target debian/stamp/conf/minimal_debian [new prereqs: ]======
[...]
test ! -f scripts/package/builddeb.kpkg-dist || mv -f scripts/package/builddeb.kpkg-dist scripts/package/builddeb
test ! -f scripts/package/Makefile.kpkg-dist || mv -f scripts/package/Makefile.kpkg-dist scripts/package/Makefile
echo done > debian/stamp/build/buildpackage
[linux-2.6.38.8-xenomai]#
--------------------------------------------------------------------------------------------------------------------------
Sorun olmadıysa yine sevinç çığlıkları atmalıyız. Yok lan deli misin sorun çıkmaz mı derseniz siz size uygun paketi temin etmeye gayret edin derim. Çünkü sorunun çıkmasındaki tek sebep o kıçı pohlu paketlerdir.
--------------------------------------------------------------------------------------------------------------------------
[linux-2.6.38.8-xenomai]# cd /usr/src
[src]# dpkg -i *xenomai*deb
Sélection du paquet linux-doc-2.6.38.8-xenomai précédemment désélectionné.
(Lecture de la base de données... 306802 fichiers et répertoires déjà installés.)
[...]
Paramétrage de linux-source-2.6.38.8-xenomai (2.6.38.8-xenomai-10.00.Custom) ...
dpkg : avertissement : option obsolète « --print-installation-architecture », veuillez utiliser « --print-architecture » à la place.
Examining /etc/kernel/src_postinst.d.
[src]#
--------------------------------------------------------------------------------------------------------------------------
hatalar çıkarsa hata olmayabilir, mevcut sistemin sorunları da olabilir. Ne gibi mesela apt-get install bla bla bla gibi. Bunları temin edelim ayıp etmeyelim.
7. [src]# /sbin/reboot
8. Az kaldı bitiyor. Sabredin.
--------------------------------------------------------------------------------------------------------------------------
[~]# uname -a
Linux Logilin-A131 2.6.38.8-xenomai #1 SMP PREEMPT Wed Dec 28 \
11:05:33 CET 2011 i686 i686 i386 GNU/Linux
[~]# dmesg | grep I-pipe
[ 0.000000] I-pipe 2.10-01: pipeline enabled.
[ 2.378745] I-pipe: Domain Xenomai registered.
[~]# dmesg | grep Xenomai
[ 2.378745] I-pipe: Domain Xenomai registered.
[ 2.378882] Xenomai: hal/i386 started.
[ 2.378923] Xenomai: scheduling class idle registered.
[ 2.378930] Xenomai: scheduling class rt registered.
[ 2.380254] Xenomai: real-time nucleus v2.6.0 (Movin' On) loaded.
[ 2.380257] Xenomai: debug mode enabled.
[ 2.380508] Xenomai: starting native API services.
[ 2.380510] Xenomai: starting POSIX services.
[ 2.380543] Xenomai: starting RTDM services.
[~]# cat /proc/ipipe/version
2.10-01
[~]# cat /proc/xenomai/version
2.6.0
[~]#
------------------------------------------------------------------------------
9. Son adımlara gelmiş bulunuyoruz.
-----------------------------------------------------------------------------
[~]# cd /usr/src/xenomai-2.6.0/
[xenomai-2.6.0]# export CFLAGS=-fno-omit-frame-pointer
[xenomai-2.6.0]# ./configure --enable-smp --enable-x86-sep --enable-x86-tsc --enable-debug
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
[...]
config.status: executing depfiles commands
config.status: executing libtool commands
[xenomai-2.6.0]# make install
Making install in src
make[1]: entrant dans le répertoire « /usr/src/xenomai-2.6.0/src »
[...]
make[2]: quittant le répertoire « /usr/src/xenomai-2.6.0 »
make[1]: quittant le répertoire « /usr/src/xenomai-2.6.0 »
[xenomai-2.6.0]#
------------------------------------------------------------------------------
Kurulum sapasağlam bitmiş oldu. Şimdi 7.maddeyi açıklamadım heyecan olsun ne oluyor yea için, Anlamayanlar için orada yeniden bi başlatıver la şunu olsun artık adımdır o.
10.Xenomai testlerine başlayabilirsiniz.
Warning: sonraki yazıda tüm bunlarla uğraşmadan yapabileceğiniz başka bir olayı söyleyeceğim. 14.04 ve üstü sürümlerde stabilite sorunları olabiliyor. Kullananlar var, ama sorun yaşamamak için tavsiye etmem.
Ayrıca Ubuntu 12.04'de kurulum anlatılmış. Yine benzer şeyler var aslında.
Kolay gelsin.