№2-LABORATORIYA ISHI MAVZU: LINUX SERVERNI SOZLASH Ishdan maqsad: Linux operatsion tizimida Ncurses (Konsolnoy GUI) va tcltk yordamida dasturlashni o‘rganish va dastur yaratishdagi ko‘nikmalarni hosil qilish. Ushbu laboratoriya ishidan maqsad, Linux serverni administratsiyalash vazifalari va fayl server bilan ishlash ko‘nikmalariga ega bo‘lish.
Laboratoriya ishini bajarishda zaruriy vositalar va axborot manbalari ta’minoti:
Har bir tinglovchi uchun ishchi stantsiya va ajratilgan kompyuter sinfi.
Linux operatsion tizimi distributivi (Ubuntu).
Ma’ruza materiallari.
2.1. Ncurses (Konsolnoy GUI) va tcltk yordamida dasturlash Curses funksiyasi boʻyicha Paskal CRT moduliga oʻxshardi va uning asosiy maqsadi ekran (terminal darajasida) va klaviatura bilan oʻzaro aloqada boʻlish edi. Vaqt o‘tishi bilan u pcurses deb nomlangan ishlanmani ishlab chiqdi, keyin esa (1993 yilda) ncurses ular uzoq vaqt davomida GNU loyihasi soyasida joylashdi. Ncurses juda ko‘p dasturlar tomonidan qo‘llaniladi. Dasturni ncurses ostida yozish foydalidir: bu kutubxonani istalgan *nix tarqatishda topish mumkin va hech bo‘lmaganda uzoq vaqt davomida ushbu distributivlarga kiritiladi. Umuman olganda, biz ncurses ostida yozamiz - biz asrlar davomida yozamiz!
C yoki C++ dasturingizga ncurses ulanishi juda oson. Manbada #include direktivasidan foydalanish va kompilyatsiyaga ulanish uchun -lncurses ni belgilash kifoya:
$ g ++ main.cpp -lncurses Albatta, ncurses sarlavhalarini o‘rnatish kerak. Debian va Ubuntuda ular bilan paket ncurses-dev deb ataladi:
$ sudo apt-get install ncurses-dev Bir nechta faylli dasturlarni yaratish uchun autotools yoki Scons kabi qurish tizimidan foydalanish qulay. Ikkinchisi (men buni afzal ko‘raman) bo‘lsa, dastur manbasi bo‘lgan katalogda quyidagi tarkibga ega SConstruct faylini yaratishingiz kerak:
import glob import os
env = Environment() SOURCES = glob.glob('*.cpp')
INST_PREFIX = '/usr/local/' INST_DIR_BIN = INST_PREFIX + 'bin' INST_PREFIX_DATA = INST_PREFIX + 'share'
env.Append(CCFLAGS = ['-g‘, '-Wall']) env.Append(LIBS = ['ncurses', 'other-libs']) mixtestbin = env.Program(target = 'mytest', source = SOURCES) env.MergeFlags('-DNIX=1')
env.Install(dir = INST_DIR_BIN, source = mytestbin) env.Alias('install', [INST_DIR_BIN]) Endi, bir xil katalogda scons buyrug‘ini ishga tushirganingizda, barcha .cpp fayllari kompilyatsiya qilinadi va ncurses va boshqa kutubxonalar bilan bog‘lanadi. Dasturni yaratish va o‘rnatish uchun siz root sifatida ishga tushirishingiz kerak:
# scons install Ncursesni ishga tushirish uchun ko‘pincha uchta funksiya chaqiriladi:
initscr () - konsol bilan ishlashni ishga tushiradi. Bu funksiya juda ko‘p ishni bajaradi, chunki juda ko‘p turli xil terminallar mavjud va ncurses ulardan birortasi bilan ishlashni boshlashdan oldin terminal turini aniqlashi va unga "moslashishi" kerak. Initscr chaqiruvi WINDOW * ko‘rsatkichini qaytaradi, undan keyin boshqa funksiyalarda foydalanish mumkin. Ikkinchisiga kursor koordinatalarini olish uchun getyx (), oynani faylga saqlash uchun putwin (), fayldan oynani o‘qish uchun getwin (), bir oynaning mazmunini boshqasiga ko‘chirish uchun copywin () kiradi ... In Bundan tashqari, initscr () oynani tozalaydi.