Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai

Documente similare
Gestionarea I/E

Proiect didactic

1

Slide 1

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

Universitatea Politehnica din București Facultatea de Electronică, Telecomunicații și Tehnologia Informației Metode de extindere a duratei de viaţă a

Microsoft Word - 4-Interfete paralele.doc

Proiectarea Sistemelor Software Complexe

Microsoft Word - 2 ES RO.doc

Universitatea Transilvania Braşov Facultatea de Inginerie Electrică şi Ştiinţa Calculatoarelor Catera de Electronică şi Calculatoare Construcţia şi de

Lucrarea 10

Biomedical Wi-Fi data transmissons

Cursant prof. Constantin Vasilache PROIECT DE LECȚIE Clasa Data: Obiectul: Tehnologia Informației și a Comunicațiilor Nr. de ore: 1oră Tema lecţiei: A

Microsoft Word - Ansamblul software CRONIS

PPSD

Înregistrator de temperatură şi umiditate AX-DT100 Instrucţiuni de utilizare

LUMINIŢA SCRIPCARIU

Concepte de bază ale Tehnologiei Informației

AcadNet Etapa Naţională Secțiunea calculatoare, clasele Citiți cu atenție toate subiectele înainte de a începe rezolvarea. Aveți 15 minut

PROGRAMARE ORIENTATA PE OBIECTE

PowerPoint Presentation

Platformăde e-learning și curriculăe-content pentru învățământul superior tehnic Sisteme de operare 13. Planificarea proceselor

Microsoft Word - ReteleCalculatoare-IA-FisaDisciplina-2019.doc

2 BAZE TEORETICE ALE REȚELELOR DE CALCULATOARE CAPITOLUL 2 BAZE TEORETICE ALE REŢELELOR DE CALCULATOARE 2.1. Necesitatea standardizării (referenţierii

Slide 1

Sistem de rutare între VLAN-uri bazat pe LISA

Sisteme de calcul în timp real

Microsoft Word - 11_Evaluare ETC_master_Master_ESI.doc

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

PowerPoint Presentation

HONEYWELL AWARD

LABORATOR 2

Microsoft PowerPoint - ARI_R_c9-10_IP_part2 [Compatibility Mode]

INFORMATICĂ ŞI MARKETING

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIŞA DISCIPLINEI (CO

Microsoft Word - lab-fr_3

Microsoft Word - 5_ _Eval_ ETC_master_ESI_AnI-II_completat.doc

Ghid de Referință Explicații sumare ale operațiunilor de rutină HL-L2312D HL-L2357DW HL-L2352DW HL-L2372DN HL-L2375DW Brother recomandă să păstrați ac

Platforma 5. 1 Introducere in MSSQL Introducere Pe parcursul ultimilor ani, se poate observa o cuplare a limbajelor de programare majore cu tipuri de

PROGRAMA DE EXAMEN

PowerPoint Presentation

Informatică aplicată TEST GRILA TEST GRILĂ - REZOLVAT 1.Structura de principiu a unui sistem de calcul contine urmatoarele componente principale: A. u

Example Title with Registration Microsoft® and Trademark SQL ServerTM

Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve

Hotel Problema 1. Hotelul oferă clienților camere single și camere duble precum și apartamente. Să se implementeze modulul care construiește ca

Cuantizare Vectoriala.doc

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

PowerPoint Presentation

Slide 1

Microsoft PowerPoint - TDRC_II-10-TCP.ppt

Modul Modbus ASCII SISTEME DE COMUNICATIE CURS 5 - Constantinescu Catalin Atunci cand se foloseste modul MODBUS ASCII fiecare octet din mesaj

A TANTÁRGY ADATLAPJA

Microsoft Word - intro_msp430.doc

Chertif Ionuț - Andrei Prietenul meu, calculatorul CLASA a V - a, 1 ora pe săptămână ARGUMENT Transformările societăţii româneşti din ultimii ani, dez

Testare manuala: situatia in care o persoana initiaza fiecare test, interactioneaza cu el si interpreteaza, analizeaza si raporteaza rezultatele. Test

Microsoft Word - Laboratorul 3.doc


Controlerul LCD

CASA CORPULUI DIDACTIC BRAILA PROGRAM DE FORMARE INFORMATICA SI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: TIMOFTI V. AFRODITA COLEGIUL

Guardian2012_RO3

Ghid utilizare aplicație PARKING BUCUREȘTI Aplicație PARKING BUCUREȘTI 1

Microsoft Word - CarteC.doc

Microsoft Word - Politică de cookie-uri OK_v1.docx

Reţele de calculatoare

Microsoft Word - Plus TV Analog Pro Stick Installation _Rom V1.3_.doc

XPS Configurare şi specificaţii

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Facultatea de Științe Politice, Administrative și ale Comunicării Str. Traian Moșoiu nr. 71 Cluj-Napoca, RO Tel.: Fax:

Kein Folientitel

MINISTERUL EDUCAŢIEI AL REPUBLICII MOLDOVA COORDONAT: _ J _ 2016 Nr. de înregistrare a olanului de UNIVERSITATEA DE STAT DIN MOLDOVA APROBAT: SENATUL

Unitatea: Școala Gimnazială Disciplina: Informatică și TIC Programa școlară aprobată cu OMEN nr.3393 din Profesor: prof. Clasa: a V-a A, B

Microsoft Word - 2 Filtre neliniare.doc

Microsoft PowerPoint - automatizari_lucrarea9.ppt

manual_ARACIS_evaluare_experti_v5

Microsoft Word - 1-Introducere.doc

CERERE ONLINE PENTRU INSCRIEREA LA CRESA CAPITOLINA SI SECTIA DE LEGATURA (SEZIONE PONTE) ANUL 2014/15 Ghid pentru familii Domanda online iscrizioni n

MINISTERUL EDUCAŢIEI, CULTURII ŞI CERCETĂRII AL REPUBLICII MOLDOVA COORDONAT: 2017 Nr. de înregistrare a planului de învăţământ UNIVERSITATEA DE STAT

O NOUA PROBLEMA DE CONCURS OLIMPIADA MUNICIPALA DE INFORMATICA, IASI 2019 V-am promis într-un articol mai vechi ca vom prezenta pe acest blog câteva p

Panaszkezelési szabályzat

Secţiunea 5-6 începători Concurs online de informatică Categoria PROGRAMARE PROBLEMA puncte PERIODIC Se citește un număr natural nenul N. Se ump

PowerPoint-Präsentation

COLEGIUL TEHNIC „VICTOR UNGUREANU” CAMPIA TURZII

Dispozitive BENDER pentru monitorizarea rezistenţei de izolaţie Pornind de la necesitatea unui sistem de alimentare cu energie electrică cât mai sigur

Modulul 1 M1-2.3 Protocoale şi servicii în reţea În acest capitol ne propunem să abordăm următoarele: Protocoalele şi aplicaţiile folosite în reţelele

Tipuri de date abstracte 30 noiembrie 2005 Programarea calculatoarelor 2. Curs 9 Marius Minea

Sistemul Naţional Unic pentru Apeluri de Urgenţă (SNUAU) reprezintã o componentã importantã a obligaţiilor serviciului universal, fiind prevãzut şi în

Manual de utilizare a Sistemului Informațional al Institutului Național al Justiției (SI INJ) intranet.inj.md Ver.2 Manual de utilizare a Sistemului I

Ghidul Utilizatorului GW210

Lucrarea nr. 2 Aplicaţii de tip client Mihai IVANOVICI 6 martie 2006 Scopul acestei lucrări este de a vă familiariza cu modulul Python socket şi cu mo

客厅电脑 酷影Q1000

Slide 1

Microsoft Word - cap2.2.UNIX-NOS.doc

Microsoft Word - TIC5

AdVision este un software de narrowcasting, destinat tuturor celor care administrează conţinut pe o reţea de monitoare. Fie că este vo

Slide 1

Microsoft PowerPoint - 11_USO_curs_08.ppt [Compatibility Mode]

Advance CAD 2016 SP1 Acest document descrie îmbunătățirile pentru Advance CAD 2016 Service Pack 1. Notă: Advance CAD 2016 Service Pack 1 este compatib

Comparație versiuni AOMEI Backupper 1 Care versiune este cea mai potrivită pentru dvs.? AOMEI Backupper este disponibil în prezent în patru ediții dif

programă şcolară pentru clasa a 11a, liceu

Manual de utilizare Room Booking System

Transcriere:

Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai specializați dintre noi în domeniul calculatoarelor știu că procesorul definit ca unitatea centrală de prelucrare nu este singurul dispozitiv inteligent dintr-un sistem. Susțin acest fapt prin a spune că fiecare dispozitiv conectat la sistem are o parte care îl controlează, care răspunde de acțiunile dispozitivului propriu zis, și care este inteligentă. Aceasta parte poartă numele de controler și realizează acțiunile menționate mai sus prin intermediul unor registrii de stare și control proprii și specifici. Pe langă partea hard tangibilă un dispozitiv are și o parte soft. Această parte soft care este menită să programeze un anumit fel de interacțiune cu acesta și să se asigure că acesta va răspunde în mod dorit, practicând astfel un exercițiu de control asupra dispozitivului direcționat prin controler, adică asupra părții fizice care controlează dispozitivul. Această parte soft este păstrată în nucleul Linuxului adică în kernel, și poartă numele de driver de dispozitiv.

Figura 1: Anatomia unui driver dispozitiv[7] Dupa cum putem observa în figura de mai sus un driver este alcătuit din mai multe interfețe care reprezintă interacțiunea driverului cu celelalte părți ale sistemului. În primul rând el este făcut să comunice cu partea hard, deci are o interfată concepută pentru acest lucru. O altă interfață este aceea prin care se realizează comunicarea cu utilizatorul, dar cea mai critică interfață este aceea cu ajutorul căreia se realizează comunicarea cu kernelul și fără de care celelalte două interfețe nu ar mai avea sens. În cele ce urmează vom vorbi strict despre interfața dintre kernel și driver. Interfața kernel-driver Deoarece kernelul este sursa comună la care trebuie legate toate aceste drivere, ce sunt nevoite să știe anumite particularități ale lui, și din moment ce kernelul este o platforma comună, mereu cunoscută, rezultă că toate interfețele dintre kernel și driver sunt într-un mod sau altul procurate de acestea din urmă.

Acum trebuie să ne putem problema dacă dispozitivul nostru este sau nu suportat de sistem. Ca răspuns la această întrebare Linuxul oferă suport pentru 3 categorii de dispozitive discutate în continuare. Prima categorie de dispozitive sunt acelea prin care interacțiunea dintre sistem și dispozitiv se realizează prin transmiterea la un moment dat a unui singur caracter de unde și numele de dispozitive caracter. Din descrierea de mai sus survine în mod direct că acestea sunt destinate comunicării de date, cum ar fi modemurile, tastatura. Din punct de vedere al accesării, aceste dispozitive sunt tratate ca fișiere iar pentru a realiza operații asupra lor se folosesc apeluri de sistem. Un dispozitiv de caracter este disponibil numai după ce driverul său îl face să apară în tabelul dispozitivelor de caracter unde are ca index indentificatorul major. Pe langă numele driverului acest tabel oferă și un pointer către un block de operații care este presupus a conține adresele rutinelor necesare pentru a opera asupra fișierului care reprezintă driverul. Pentru a fi găsite de către kernel atunci când sunt apelate aceste fișiere dispun de un nod index în sistemul virtual de fișiere care a fost conceput pentru accesarea uniformă a fișierelor. Deoarece acestor noduri le sunt asociate doar operația de deschidere a fișierului atunci când fișierul asociat caracterului este deschis aceasta operație trebuie să acceseze vectorul dispozitivelor de caracter pentru a avea access la zona în care se află rutinele pentru operațiile asociate fișierului de driver respectiv. A doua categorie de dispozitive sunt dispozitivele bloc, din denumirea lor deducem că transmiterea datelor are loc bloc cu bloc, și deja acest lucru ne trimite cu gândul la dispozitive precum unități hard disk sau flash.

În mod asemănator dispozitivelor caracter, și aceste dispozitive sunt accesate ca fișiere și sunt disponibile atunci când driverul specific înregistrează dispozitivul în vectorul dispozitivelor bloc cu un index ce reprezintă indentificatorul major al sistemului. Deosebirea dintre ele este că în cazul dispozitivelor block care sunt aranjate în clase și care ele însele sunt responsabile pentru înregistrarea în kernel și pentru oferirea unor modalități de operare asupra fișierelor. O altă deosebire dintre aceste două tipuri de dispozitive este că cele din urmă folosesc un buffer pentru rutinele de intrare ieșire și astfel fiecare driver este nevoit să ofere o interfață pentru acest buffer. Interacția dintre buffer și dispozitiv are loc prin intermediul unor cereri indexate, rutine și structuri de date iar atunci când o cerere este primită, driverul începe să proceseze cererile care sunt memorate într-o structură asociată bufferului și care se blochează automat. După ce termina acest lucru drivelul eliberează și golește structura asociată bufferului. Ultima categorie de dispozitive suportate de linux este cea a dispozitivelor de rețea, care sunt responsabile de transmiterea și receptarea pachetelor de date. Din punctul de vedere al organizării, aceste dispozitive sunt reprezentate ca și în cazul celor de mai sus de o structură proprie și fiecare driver își înregistrează propriul dispozitiv în kernel într-o manieră similară celor de mai sus. Structura dispozitivelor de rețea contine în același timp informații despre dispozitiv precum nume, informații de control, steaguri, informații de protocol, funcții de suport, structuri pentru transmiterea pachetelor și funcții care sunt folosite de protocoalele de comunicații pentru transmiterea datelor folosind dispozitivul respectiv care în mod normal este placa de rețea.

Excepții și întreruperi Definiția unei întreruperi survine chiar din numele folosit, în mod general poate fi văzut ca un eveniment menit a întrerupe procesorul din execuția curentă. Acest eveniment este în general generat de dispozitive care au și nevoie să desfășoare anumite procese. În orice moment de timp unitatea centrală de prelucrare poate acționa în trei moduri dar cel care are prioritatea cea mai mare este servirea unei întreruperi. Fiecare întrerupere sau excepție este definită printr-un număr de ordine numit vector. Valorile 0-31 sunt asociate excepțiilor și întreruperilor nemascate, 32-47 sunt asociate întreruperilor mascate iar valoarea 128 este asociată apelurilor de sistem. Fiecare valoare a vectorului este asociată unei entități menite să manipuleze respectivele excepții și întreruperi. Excepțiile sunt folosite pentru a semnala condiții anormale iar entitatea care le manipulează are o structură care salvează registrele în stiva modului kernel, manipulează excepția folosind funcția C iar apoi iese. Manipulatorii întreruperilor folosesc un alt mod care este compus din salvarea valorii de cererii de întrerupere și executarea cererii de servire asociată. Concluzie Pentru a lega cele expuse mai sus le voi rezuma într-o modalitate mai simplistă. Fiecare dispozitiv este compus din 2 părti, o parte fizică reprezentată de dispozitivul propriu zis și o parte programabilă reprezentată de driverul lui. Partea de program are rolul de a ascunde utilizatorului toate procesele care au loc în fundal pentru a asigura desfașurarea unui activități care poate implica mouseul, tastatura, placa

de rețea, imprimanta, hard diskul. Modalitatea prin care aceste aceste dispozitive sunt instalate este prin înregistrarea lor în nucleul sistemului prin diverse structuri de date ale căror câmpuri sunt setate să faciliteze desfășurarea unor acțiuni specifice. Modalitatea practica prin care un dispozitiv realizeaza ceva este prin a cere realizarea unui serviciu procesorului folosind întreruperi, atunci când apar anomali în funcționare atunci ele sunt semnalizate prin excepții care împreună cu întreruperile sunt sunt rezolvate cu ajutorul unor entități concepute pentru a le manipula și care dispun de algoritmi specifici. Toate aceste procese nu se pot desfăsura dacă nu există o interfață care să le suporte, aceasta interfață este interfața dintre driver și nucleu prin intermediul căreia utilizatorul obișnuit reușeste să interacționeze cu dispozitivul fizic. Interfața driver nucleu este chiar zona de separare dintre partea de program și partea fizică și poate fi asemuită unui translator menit a realiza comunicarea dintre 2 oameni ce vorbesc limbi diferite. Bibliografie 1. http://www.freesoftwaremagazine.com/articles/drivers_linux 2. http://stanislavs.org/helppc/device_attributes.html 3. http://www.comedi.org/ 4. http://www.kroah.com/log/linux/stable_api_nonsense.html 5. Kernelul linux: Semnale și întreruperi, Boston University 2001 6. Intreruperile linux: Concepte de bază, Mika J. Järvenpää 7. Introducere în dispozitivele driver linux, Muli Ben-Yehuda 8. Kernelul Linux, David A. Rusling 9. Dispozitive alocate linux, versiunea 2.6+ 10. Evenimentul de programare linux Briam W. Kernighan, Rob Pike 11. Sistemul virtual de fișiere al nucleului linux