Programozás 2 I. Alapok utolsó változtatás 2008.04.12.
Alapok A számítógép adatok és információ feldolgozását automatizáló eszköz. Analóg számítógépek. Digitális számítógép. A feldolgozást a gép programja vezérli. Univerzális Turing gép (1936), (szalag, fej, műveleti tábla, státusz regiszter)
Számítógépek osztályozása Beépített (embedded) - a legelterjedtebb fajta Személyi számítógép (PC) – asztali, hordozható Nagyszámítógép (mainframe) nagy teljesítmény, kritikus feladatok ellátására sokszor évekig fut leállás nélkül. Nem feltétlen a leggyorsabb, legnagyobb kapacítású.
Szuperszámítógépek – számítógép clusterek Pillanatnyilag legnagyobb teljesítményű gépek
Személyi számítógépek 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Monitor Alaplap CPU RAM Bővítőkártyák Tápegység Optikai meghajtó HD Billentyűzet Egér
Programozás Programok írása, tesztelése, hibakeresése, javítása. Program (szoftver): 1. 2.
A számítógépeket vezérlő utasítások sorozata Ilyen utasítások sorozatának leírása elvontabb módon
A programokat többnyire valamilyen programozási nyelven írják
Operációs rendszerek Az a szoftver, amelynek feladata: 1.
2. 3. 4. 5.
Hardver kezelése (CPU-k, memória, be/kiviteli eszközök, hálózati eszközök, stb) Folyamatok indítása, prioritások megállapítása Szolgáltatások indítása/leállítása Felhasználói input fogadása és feldolgozása Kimeneti eszközök (pl képerrnyő)
A programok valamilyen OS –re (alá) íródnak.
Operációs rendszerek feladatai Memória menedzselés virtuális memória kezelése, memóriavédelem (page table, swapping)
Fájlrendszer/lemez kezelés Fájl – adatok elrendezése, hivatkozás módja, hierarchikus rendszerek, elválasztó karakterek
Meghajtóprogramok Folyamatok kezelése (programok, szogáltatások, alkalmazások) indítása, futtatása (multitasking)
Operációs rendszerek feladatai Hálózati (TCP/IP) szolgáltatások Különböző fajtájú és szerkezetű gépek hálózati összekapcsolására
Biztonsági szolgáltatások Programok hardver hozzáférésének korlátozása Felhasználók azonosítása Naplózás „Sandbox” – emulált processzor/ p – code (pl Java)
Grafikus interface
Operációs rendszerek osztályozása Monolitikus kernel (linux eredetileg) Moduláris / Microkernel (QNX, Windows Vista) Kernel (mag): a legtöbb operációs rendszer azon része, amely a HW és SW közötti kapcsolatot adja. (legalacsonyabb szintű absztrakciós réteg) Egyes OS-ekben (pl. Windows) a GUI, a nyomtató meghajtó is a kernel része. Nem biztonságos. Más OS-ekben (QNX) a kernel semmilyen meghajtót nem tartalmaz csak az időzítéssel (timer), folyamatok szinkronizálásával (signals, scheduling) foglalkozik. Minden más védett memóriaterületen fut.
Operációs rendszerek osztályozása Fizikailag: egy processzor, egy feladat Logikailag (egy processzoron): 1.
Egyidejűleg egy feladat
- single tasking
DOS 2.
„Egyidejűleg” több feladat - multitasking Egy programon belül: többszálú OS
Ennek lehetséges megoldása: Vezérlő hardver Szoftveres vezérlés (hardverrel segítve) Kooperatív – Windows 3.1 Időosztás - Windows XP, Linux, Mac OS
Operációs rendszerek osztályozása Felhasználók száma szerint 1. 2.
3.
Egy felhasználós Több felhasználós – több nem egyidejű felhasználó Több felhasználós - több, akár egyidejű felhasználó
Néhány Operációs rendszer Windows variációk Sok egymással nem teljesen kompatibilis változata van. (pl. Win 98,, NT, XP, VISTA)
UNIX variációk (pl. BSD, System V, QNX, Linux, Mac OS X)
Mac OS (< OS X) VMS – (WNT ? ☺ )
Windows 98 Sp2 Win98 Sp2 – már nem gyakori (99.05.15) 16/32 bit Fájlrendszerek: FAT 12/16/32, Memória: 16-24 Mbyte Disk: 500 Mbyte Proc.: 486 DX2, 66 MHz
Windows NT változatok NT 4.0 Fájlrendszerek: FAT 16/32, NTFS Memória: 12 Mbyte Disk: 110 Mbyte Proc.: 486, 33 MHz
Windows 2000 Fájlrendszerek: FAT 16/32, NTFS Memória: 32 Mbyte Disk: 650 Mbyte Proc.: Pentium,1 33 MHz
Windows NT változatok Windows XP 32 vagy 64 bit Fájlrendszerek: NTFS Memória: 64 Mbyte Disk: 1,5 Gbyte Proc.: Pentium MMX, 233 MHz
Windows Vista 32 vagy 64 bit Fájlrendszerek: NTFS Memória: 512 Mbyte Disk: 15 Gbyte Proc.: Pentium III, 800 MHz
UNIX és társai Az első OS, amit „magas szintű” nyelven írtak (1970) Alap variánsok: System V (AT&T) BSD (Berkley Software Distribution)
GNU – (rekurzív rövidítés:GNU Not Unix...) Linux
Windows és Linux összehasonlítás Windows XP/Vista Többfelhasználós Multitasking Thread-ek Installable File System Minden lemezmeghajtónak más betüjele van Lemezmeghajtónként külön hierarchikus fájl rendszer. Útvonal elválasztó karakter a ‘\’ (belül elfogadja a ‘/’-t is) Linkek fájlokra és könyvtárakra (Link ké készí szítés Windows Inté Intézőbőll)
Linkek hálózati erőforrásokra és internet címekre
Linux Többfelhasználós Multitasking Thread-ek Többféle file rendszer Ext2,Ext3,JFS,ReiserFS, Virtuális, etc Olvasni tudja az NTFS-t is (írás – pénzé nzért, ill. Mé Még nem üzembiztos)
Mount Minden meghajtó és az azokon levő akár különböző fájlrendszerek egy hierarchiában vannak. Útvonal elválasztó karakter a ‘/’, a ‘\’ ún. „escape” karakter „hard” és „soft” linkek
Windows és Linux összehasonlítás II Windows XP/Vista GUI a kernelbe integrálva Nyomtatás ugyanígy Szolgáltatások (Services) Parancsértelmezők command.com Cmd
Automatizálás (script nyelvek)
Linux GUI külön (XWindow) GUI ablakkezelő választható Nyomtatás külön program Szolgáltatások (Services) Parancsértelmezők sh, bash, csh, tcsh, ksh, ...
Automatizálás (script nyelvek)
OS alapok Windows Kis- és nagybetű ugyanaz (problé (probléma:speciá ma:speciális betű betűk) Fájlnévben nem szerepelhet: \:?/* Hozzáférési jogok: FAT – Archive, Read Only, Hidden, System NTFS - sokfajta
Linux Kis- és nagybetű különböző A tiltott fájlnév karakterek fájlrendszertől függenek, VFAT, vagy NTSC esetá esetán u.az, mint a WindowsWindows-nál, Ext2,3 eseté esetén bá bármi kivé kivéve NUL és /
Hozzáférési jogok: Alap: read, write, execute a tulajdonosnak, csoportnak, ill másoknak Egyéb: sokféle . –al kezdődő név = rejtett fájl
OS alapok folyt. Windows A fájlok típusát a névben az utolsó . utáni karaktersorozat (extension) dönti el. Végrahajtható fájlok kiterjesztései: BAT, COM, EXE Parancssor beli indításnál ezeket nem kell beírni! Pl. program.exe helyett elég beírni a program-ot.
A könyvtárak (mappák) speciális fájlok. Ezek tartalmazzák a fájlok neveit és egyéb adatait
Linux A fájlok típusa független a nevüktől. Nincs kiterjesztés. De vannak konvenciók (pl alma.cpp egy C++ fájl) Végrehajtható fájlok: amelyek emgedélyei közt szerepel az „execute”. A könyvtárak (mappák) speciális fájlok. Ezek tartalmazzák a fájlok neveit és egyéb adatait Virtuális fájlrendszerek is vannak. Pl /proc
OS alapok folyt. Windows Speciális fájlok: Shortcut/link könyvtárakra és egyebek-re parancssorból csak külön programmal készíthetőek Speciális – virtuális – könyvtárak (pl. Dokumentumok, Lomtár, stb)
Linux Az eszközök egy része is (pl. hangkártya) fájlokként jelenik meg Link-ek Hard – más név ugyanahhoz a fájlhoz, csak egy fájlrendszeren belül használhatóak Soft – külön fájl ami egy másik fájl, vagy könyvtár nevét tartalmazza
Alap parancsok Windows
Linux
Átlépés adott lemez meghajtóra
C:
cd a meghajtó csatolási útvonala
Átlépés adott könyvtárba cd = "change directory"
cd "\Dokumentumok\ez az" cd "/Dokumentumok/ez az"
Saját (home) könyvtárba lépés akárhonnan
c: majd cd "Documents and Settings\usernév"
cd
Aktuális könyvtár kiiratása
cd
pwd (print working directory)
Fájlnevek kilistázása
dir *.cpp dir /w *.cpp
ls *.cpp vagy echo *.cpp ls –l
Rejtett fájlok listázása összes fájl listázása
dir /AH
ls .* ls -la
Alap parancsok Windows
Linux
Egy fájl kiiratása a képernyőre
type alma.cpp more alma.cpp
cat alma.cpp more alma.cpp less alma.cpp
Fájl(ok) törlése
del
Pl. del *.cpp
rm rm *cpp
Könyvtár létrehozása
mkdir könyvtár neve mk könyvtár neve
mkdir könyvtár neve
Könyvtár törlése
üres: rmdir könyvtár nem az: del /s /q könyvtár
üres: rmdir könyvtár nem az: rm –r könyvtár
Fájl másolás átnevezés
copy mi(ke)t hova ren régi név új név move régi név új név
cp mi(ke)t hova mv régi név új név
Program környezeti változóinak listája, megjelenítése, beállítása, törlése
set, set név, set név=tartalom, set név=
set, set|grep név, név=tartalom
Alap parancsok Windows A keresési út beállítása
path=%path%;új_könyvtár
Linux (BASH) Export PATH=$ PATH=$(PATH): (PATH):új_kö j_könyvtá nyvtár
Fájl-, könyvtár linkek létrehozása
windows intézőben
Hard: Soft:
Jelszó változtatás
rendszerbeállítások
Passwd
Átirányítás: Egy karaktere ablakba/képernyőre író program kimenetének fájlba írása, - eldobása - üres fájl létrehozása
program > kimeneti.file
program > kimeneti.file
A programot az aktuá aktuális kö könyvtá nyvtárban, majd a PATHPATH-ban keresi program >NUL
A programot a PATHPATH-ban keresi
Hibakimenet átirányítása,
command.com – nincs cmd - program 2> hiba fájl program 2> NUL
program 2> /dev/null
Átirányítás: Egy billentyűzetről dolgozó program bemenetének megadása másik fájlból
program < bemeneti szöveg fájl
program < bemeneti szöveg fájl
Átirányítás: egy program kimenete legyen egy másik program bemenete
program1 | program2
program1 | program2
eldobása
ln létező új ln –s létező új
program > /dev/null : > alma.txt program 2> hiba fájl
Alap parancsok Windows
Linux
STDIN=0 STDOUT=1 STDERR=2
stdin=0 stdout=1 stderr=2
> 2> <
> 2> <
Átirányítás: Átirányítás fájlba hozzáírás (append)
>>
>>
ciklus adott feltételú fájlokra (Példa)
for %f in (*.txt) do del %f
for f in *txt; do rm $f; done (Figyeljük meg a pontosveszzőket és, hogy az első f előtt nincs dollárjel!)
fájl keresése adott könyvtártól indulva az összes alatta levő könyvtárig
F3 gomb amikor az asztal aktív
find könyvtár –name "fájl spec." (az " nem mindíg kell, de nem árt)
handle: fájl azonosító az OS-ben minden programnak van 3: standard input (STDIN) standard output (STDOUT) standard error (STDERR) Átirányítás fájlba, ill fájlból STDOUT STDERR STDIN
Alap parancsok Windows
Linux program2 `program 1 [param.]` (Az itt szerepő karakter a hátrahajló felső idézőjel) rm –f `find . –name "*.bak"`
Egy program kimenete adja meg egy másik program paramétereit Példa: minden BAK fájl törlése az adott könyvtárban és alkönyvtáraiban (Veszélyes!) Könyvtárszerkezet archiválása+tömörítése, Pl.
parancssorból csak külön programmal (pl. pkzip, rar) rar a alma *.cpp
tar zcf archívum neve fájlok specifikációja tar zcf alma.tar *.cpp
program fordítás: Vagy integrált feljlesztő rendszerrel (grafikus, pl VisualStudio), vagy Makefile-al
make
make
sú g ó
Start menűből Súgó és támogatás Help and Support Parancssorból: parancs név /?
Grafikusan hasonló a W-hoz Parancssorból: man parancs man –k kulcsszó info parancs