A Unix operációs rendszer és testvérei
Mi az a Unix ? "Mi az a Unix ?" 1994 -Charles Simonyi "Gyakran mondom a fejlesztőknek, hogy szerezzék meg, csináljanak jobbat. Jobbak akarunk lenni Unixban, mint maga a Linux" 2004 Steve Ballmer
“a linux sz.r, mert nem lehet vele játszani” 2006 ismeretlen középiskolás a 6-os villamoson
Asztali operációs rendszerek (2016 Szeptember): 28% Win10, 11% Win8, 37% Win7, 1.3% Xp, 10% Mac, 5.8% Linux, 5.7% mobile ... (w3schools a böngészők alapján)
Webszerverek megoszlása az interneten (forrás: netcraft)
Unix történelem 1969 - (a DEC PDP-7 [Programmed Data Processor] with 4K memory for user programs) nem használt, sarokban állt, space war játékhoz os. Ken Thompson (ma Google) Dennis Ritchie (-2011 október 12), Bell Labs. Multics, UNICS (UNiplexed Information and Computing Service), BCPL (Basic Combined Programming Language). UNICS – UNIX névváltozásra senki sem emlékszik, „creat végére kiírnám az e-t”
Linus megszületett.
Text editor pl. ed
1971 - 1. kiadás. as, fork, roff, ed. 60 db parancs 1972 - B nyelvből C lesz (Ritchie), Thomson megalkotja a pipe-ot 1973 - c-re írják át Portolható kód Os fejlesztési célok: csoportmunka, szöveges programfejlesztés és kapcsolódó tevékenységek (hibakeresés,dokumentáció) Multi useres, multitaszkos, időosztásos,interaktív, rugalmas OS. Rendszerkönyvtárak
C forrás .c .cpp Előfeldolgozó preprocesszor Előfeldolgozott forrás .i C fordító compiler Assembly forrás .s Assembler Object kód .o Linker Futtatható prg (a.out)
hiba esetén a fordítási folyamat leáll !
1975 - 6. kiadás. Kijön a Bell-Labsból. BerkeleySoftwareDistributions 1.0 ebből származik. Az egyetemeknek olcsón/ingyen adják. 1979 – C fordító, uucp, Bourne shell, Vax port. kernel > 40k ! 1980 - Micro$oft Xenix (pc-re is: 286, 386 port, 89ben eladják). 4BSD
1975 - 6. kiadás. Kijön a Bell-Labsból. BerkeleySoftwareDistributions 1.0 ebből származik. Az egyetemeknek olcsón/ingyen adják. 1979 – C fordító, uucp, Bourne shell, Vax port. kernel > 40k ! 1980 - Micro$oft Xenix (pc-re is: 286, 386 port, 89ben eladják). 4BSD
1982 - Unix System Groups (USG) System III - már nem Bell Labs 1983 - System V (AT&T), Thomson és Ritchie Turingdíjat kap. Mo: Sztaki, KFKI-ban ismerik "az unix"-ot. 1984 - 4.2BSD Tcp/ip implementáció (internet), SVR2. 100.000 db, X/Open Company Ltd (szabványosítás), Unix terjeszti az internetet. 1986 - 4.3BSD DNS szerverrel. GNU project elindul. 1987 - SVR3. 750.000 gép
1976-87 Andy Tanenbaum minix-et oktatási céllal írta, nem volt forrás a system7-hez. Design and Implementation of the MINIX Virtual File System (Balazs Gerofi's Masters thesis - 2005) minix: unix szerű, ibm pc-n futó ingyenes os
1988 - Open Software Foundation (OSF)megalakul. kijön a Posix.1 szabvány 1989-91 - At&t leányvállalat: USL 1990 - X/open kiadja a portability guide 3. verzióját, XPG3 néven 1991 - Linus elkezd fejleszteni 1992 - Novell megveszi USL-t 1993 vége - Novell eladja a Unix márkanevet és a Single Unix specification-t az X/opennek 1995 - Unix-95, Novell eladja a Unixware-t az SCO-nak
1996 - az OSF-ből és az X/openből megalakul a The Open Group 1997 - SigleUnix spec v2. pl 64 bites és nagyobb cpu-k. 1998 - Unix 98 1999 - az Open Group és az IEEE együtt dolgoznak a posix-en és a SingleUnixSpec-on. 2001 - Single Unix Spec v3.szabványosítva a rendszerfüggvények vannak. 2003 - v3 nemzetközi szabvány: UNIX®03 2006 – NetBSD-n tesztelik a posix IEEE-1003.1 szabvány 1400-nál több függvényét. 2013 – A specifikáció új kiadása. + ISO/IEC JTC 1/SC 22 +IEEE PASC +The Open Group = Austin Common Standards Revision Group Több, mint 500 tag, ipar, kormány, nyilt forráskódú társadalom: pl. AT&T, Microsoft, The US Department of Defense, SuSE Linux AG,USENIX Association.
UNIX®-nek tekintendő pl. a: Product Standard: UNIX 03 (2003) Apple Inc.: Mac OS X Version 10.10 Yosemite on Intel-based Macintosh computers Fujitsu Limited: Solaris™10 Operating System on Fujitsu PRIMEPOWER® 64-bit SPARC® Based Platforms Hewlett-Packard Company: HP-UX 11i V3 Release B.11.31 or later on HP Integrity Servers IBM Corporation: AIX 5L for POWER V5.2 dated 8-2004 or later with APARs: IY59610, IY60869, IY61405 with VAC 6.0.0.8 or later on pSeries CHRP systems Inspur Co. Ltd: Inspur-K-UX 2.0 on Inspur TS K1 system Oracle Corporation: Oracle Solaris 11 FCS and later on SPARC-based platforms, 32-bit and 64-bit and on X86-based platforms, 32-bit and 64-bit Oracle Corporation: Solaris 10 Operating System plus patch 118844-06 for X86 and on, on 64-bit X86 based systems
"...the number of UNIX installations has grown to 10, with more expected..." - Dennis Ritchie and Ken Thompson, June 1972
A testvérek. Linux és xBSD: nem UNIX®-ok
Opendarwin
Linux
Minix
FreeBSD
OpenBSD
Szoftverfejlesztés nyílt és zárt forráskóddal Open source development
Programfejleszt(et)ő cég
Látható kód (szép program) Szabad felhasználás Fejlesztők száma max 7 milliárd
Csak bináris kód (gyorsan kész) Korlátozott használat Fejlesztők száma korlátos
“You can't trust code that you did not totally create yourself.” Free software: szabad felhasználás (nem ár). Szabadon futtatható, tanulmányozható (forrás), továbbadható, bővíthető és a bővítés közzétehető (kötelező source GNU-nál, ha eladunk szoftvert, Berkeley-nél (BSD) nem).
UNIX rendszer részei Kernel: tárrezidens program, hw erőforrások kezelése driverekkel, filerendszer kezelése, felhasználók (jogok) és processzek kezelése. Moduláris kernelek: szükséges részeket betöltik (fileokból), feleslegeseket törlik, a memóriát felszabaditják.
Shell: parancsértelmező. Felhasználó ezen keresztül indít processzeket. Kevés belső parancs, kényelmi szolgáltatások. Bash2 : bourne again v2. Utility-k: segédprogramok. Alapvető file, processz, stb. feladatokra. Kezdetben 3rd party alkalmazások, később beépülnek a disztribúcióba. Elmosódik a határ rendszerhez tartozást illetően.
Bejelentkezési folyamat: usernév/jelszó páros ellenőrzése, effektív felhasználó beállítása, login script lefut, utána shell-ben vagyunk, parancsokat adhatunk. Processz id (egész szám), signal-ok (softver interrupt): processz által többiektől vagy kerneltől (másik processztől: kill parancs), signal handler: lekezeli a szituációt, SIGKILL nem ignorálható, nem jut el a processzig. Démon: processz, amihez nem tartozik vezérlő terminál. Szerver program: démon. TCP/IP porton figyel, ha jön kérés, válaszol. Soha nem szólítja meg előre a kliens-t, de a kapcsolat létrejötte után ellenőrizheti, hogy még üzemképes-e (kivéve az állapotmentes kiszolgáló).
Elf formátum: futtatás előtt memóriában linkel. Futtatható prg (a.out)
Futásidejű könyvtárak
Run time linker Megosztott objektum (shared object, .so) elv: több programnak is kell ugyanaz a könyvtári függvény. A lemezen csak egyszer van meg, futtatás előtt kell linkelni. Windows DLL ugyanilyen elven.
Processz képe (image) Betöltő (loader) Processz a programterületen vezérlés időnként idekerül (időosztásos os)
Unix filozófia: Egy eszköz egy feladatot csináljon, de azt jól. Kis eszközök összekapcsolása csővezetéken (pipe) keresztül a bonyolult műveletekhez. Egy kimenet egy bemenethez kapcsolódik, a kimenet stdout, a bemenet stdin nevű fájl.
Nagy logfile
Adott nap szűrése
Sorbarendez
Azonos adatokból csak 1-et hagy
Pl: cat logfile.txt | grep "2008-10-20" | sort | uniq > eredmeny.txt
Megjegyzés: Unix-ban nincs kiterjesztés, a pont a filenév egyik karaktere. Minden egyes parancs külön processz, egyik szabványos kimenete a másik szabványos bemenetére van kötve. Ha hiba van, a cső eltörik.
Eredmény
internet és unix kapcsolata 85-ben ip támogatás, az első internet-kezelő szerverek és kliensek unix-ra készülnek el, a gnu, a linux, az xBSD is internetes feljesztés. Egymás elterjedését teszik lehetővé. Sockets programcsomag (először 4.2bsd - 1983): internetes kapcsolat=szekvenciális file. Windows-ban is, először 3rd party (trumpet winsock for w3.1), majd beépitett w95-ben.
Filerendszer, fileok. Hierarchikus adatszerkezet. Minden eszköz (lemez, memória, terminál) file, a kernelben lévő driver és a hardver közt a /dev könyvtárban lévő speciális fileok teremtik meg a kapcsolatot. Gyökér könyvtár. kisbetű/NAGYBETŰ megkülönböztetése (mint C++ és C#).
Filevédelem elérési jogok kódjai: felhasználó (u) csoport (g) egyéb (o), mindenki (a). jogok: olvasás(r), írás(w), keresés/futtatás(x). ural2-n alaphelyzet: csak u-nak vannak jogai, ezért weboldalhoz szervernek (o) jogokat kell adni file típusa: - "text" file: minden file ilyen, kivéve d: könyvtár, l: szimbólikus link, karakteres és blokk eszköz (c,b), fifo(p), socket(s) . r=4, w=2, x=1, binárisan 111, oktálisan 7 u g o : kire mi vonatkozik rw- --- --- : csak tulajdonos ír / olvas 110 000 000 : oktálisan 600 rw- r-- --- : csoport is elolvashatja 110 100 000 : oktális 640 rw- r-- r-- : publikus file, webszervernek 110 100 100 : oktálisan 644 Felhasználókat névvel látjuk el, és egy egész szám (uid) azonosítja őket. A file tulajdonságai közt ez a szám szerepel. Rendszergazdánál (root, uid==0) az elérési jogok ellenőrzését a kezelő függvény (a kernelben) átugorja.
Manual és fejezetei A parancsokat on-line manualból ismerhetjük meg, parancsonként 1 file. Tartalmazza a parancsot, kapcsolóit, mikor fordult elő először, példát, és a hibáit. RTFM: olvasd el a ... kézikönyvet. Amikor kinyomtatott dokumentációt adtak, ezek a fileok voltak kinyomtatva. Fejezetek: 1:felhasználói parancsok, 2:rendszerhívások, 3:c könyvtári fv-ek, 4:eszközkezelők, 5:file formátumok, 6:játékok, 7:egyebek, 8:adminisztráció, 9:lokális
Gyakran használt utility-k és alkalmazások:
Shell: felfele nyíl, tabulátor, logout , ctrl-c, ctrl-z, ctrl-d, fg, bg, export File-kezelés:rm, cat, echo, cp, dd, cmp, mv, chmod, chown, chgrp, find, file, touch, echo, tar, compress, (g)zip, bzip2 Könyvtárkezelés:ls, cd, pwd, ln, mkdir, rmdir, du, df, mount Processz-kezelés: ps, kill, pidof/pgrep, top, loadavg, at, cron. Interaktív editorok: ed, ex, vi(m), joe, emacs, xedit, jed, pico Nem-interaktív: sed,awk,diff/patch Szűrők more, less, grep, wc, groff/troff, sort, head, tail Programfejlesztés: (g)cc,gdb,(g)make Utility-k: mc, bc/dc, cal, gs/gv/xpdf, bladeenc/mpg123, openoffice. Segítség: man, whatis, apropos, info Internetes kliensek: ping, nslookup, traceroute,telnet, ftp, lynx, pine. Szórakozás: mplayer (mplayerhq.hu) Bold-dal írva a windows-ban teljesen ugyanolyan parancsokat.
Disztribúciók: A disztribúció egy adott, formattálatlan háttértárolójú gépre (pl. i386 pc) felinstallálható, lefordított csomagot jelent. Méretbeli különbségek: 1 floppy- 1 internet-ig. Live rendszert nem kell installálni, cd(dvd, bd, pen drive)-ről fut. Linux disztribúciók: hitvita. A többi disztribúció rossz, és felhasználói hozzá nem értő, buta kezdők (lamerek).
GUI a unix-on A unixokon grafikus felhasználói felület az X szerver segítségével lehetséges. X Window System. Ablakkezelő (WM-window manager). Áttetsző ablakok: 2004 szept 8-tól. Elkülönül az OS és a felület.
Milyen OS-t használ(j)unk ? Windows Asszisztens gépel, majd kinyomtatja (irodai alkalmazás). Kedvenc, megvásárolt CAD tervezőprogramunk. 3d-s legújabb játék. Banki ügyintéző gépe. USB-s scanner és printer, szoftvermodem, mobil internet.
Unix (like) Webszerver, divatos tech-cég (Google,FB) Szoftverfejlesztés eltérő cpu-ra, saját készitésű hardverre. Beágyazott rendszer (pl. tv, dvd játszó, adsl router, flash mp3 player), telefonközpont, biztonsági kamerák HDD rögzitője. Mobiltelefon, táblagép: Android, Apple Összegyetemi szerver, 15000 userrel. Tudományos kutatás grid-en, pl Earth Simulator (super-ux). zero.eik.bme.hu:a BME oktatói, kutatói, dolgozói számára fenntartott FreeBSD alapú gép. Banki számlakezelő szoftver adatbázis szervere, webáruház adatbázis szervere Alapítványi pc, „újrafeldolgozott” pc
Programozás (C++) tanulás szórakoztató pc, otthoni pc web böngészés digitális fényképező és 4K videókamera, cd-dvd-blu-ray írás. prezentáció készítés ???
URAL2 solaris 8 (unix®) Minden hallgatónknak jár usernév erre a gépre. Neve: ural2.hszk.bme.hu szolgáltatások:ssh protokollal interaktívan bejelentkezve (pl. putty, teraterm stb) file tárhely scp-vel feltöltve (winscp) saját weboldal (public_html könyvtárban, elérési jogok !) email interaktív/webmail felületen: ide jönnek az oktatási licenszek X szerverként (csak egyetemről), igazi unix https://accadmin.hszk.bme.hu oldalon kapunk nevet, jelszó megadása után
Az oktatók számára már egy FreeBSD alapú PC dolgozik: zero.eik.bme.hu
Leárazott irodalom:
Példa: bekapcsolunk egy TV-t a távirányitóval, soros porton keresztül, PC-n nézzük a kernel üzeneteit terminálprogrammal onboot (Dec 30 2011 – 18:13:55) release ver : 1000 - RELEASE etc : spi_wp Onboot X9 Sync mode LCD FastLogo Run...[SS] fc, 39 [SFL][SE] Loading Kernel.... load kernel start, size : 131072 + 2883584 byte Jump Kernel.... auth success by h/w sha1 UART1 is used to debug mode. [SELP] preset_lpj =================================================================== SAMSUNG Mstar Kernel Version : 1011_013 RELEASE ==================================================================== mount: mounting devpts on /dev/pts failed: No such device /etc/rc.local start!!!! ROOTFS VERSION : "Mstar-X9 1016 RELEASE" KERNEL MODULE VERSION : "1011_013" send signal from USER, SIG : 0, init(1)->???(19) sys_kill [LvdsFormat_Init @ 0226] LVDS formt (0001) |||||||||||||||||| PWM Enable ..!!! |||||||||||||||||| |||||||||||||||||| Inverter On ..!!! |||||||||||||||||| [TDaSystem::PrimePivotModeConfig] PivotConfig Size [1920 * 1080], Mode [3] Default VFreq = 50 hz DSP code loaded successfully [vdec][dbg][0xb][1:mpeg][0x0b:h264]
köszönöm a cpu időt ...
logout Jövök még: hálózatok és internet