Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so2:teme:tema0 [2018/03/01 23:55]
daniel.baluta [Enunț]
so2:teme:tema0 [2020/03/01 20:03] (current)
constantin.ghioc [Sfaturi]
Line 1: Line 1:
 ====== Tema 0 - Kernel API ====== ====== Tema 0 - Kernel API ======
  
-  * Termen de predare: **Joi, 15 Martie ​2018, ora 23:00**+  * Termen de predare: **Duminică, 15 Martie ​2020, ora 23:00**
  
  
Line 16: Line 16:
 Este obligatorie folosirea [[https://​github.com/​torvalds/​linux/​blob/​master/​include/​linux/​list.h|API-ului de liste]] implementat în kernel. Pentru detalii puteți urmări [[http://​ocw.cs.pub.ro/​courses/​so2/​laboratoare/​lab03#​liste|laboratorul 3]].  Este obligatorie folosirea [[https://​github.com/​torvalds/​linux/​blob/​master/​include/​linux/​list.h|API-ului de liste]] implementat în kernel. Pentru detalii puteți urmări [[http://​ocw.cs.pub.ro/​courses/​so2/​laboratoare/​lab03#​liste|laboratorul 3]]. 
  
-Pentru realizarea temei, trebuie să porniți de la schelet-ul de cod [[https://​github.com/​dbaluta/​linux/​blob/​master/​tools/​labs/​templates/​api_assignment/kernel-api/list.c | list.c]].+Pentru realizarea temei, trebuie să porniți de la schelet-ul de cod [[https://​github.com/​linux-kernel-labs/​linux/​blob/​master/​tools/​labs/​templates/​assignments/0-list/list.c | list.c]].
  
 Folositi noua infrastructura de testare ruland comenzile de mai jos: Folositi noua infrastructura de testare ruland comenzile de mai jos:
Line 23: Line 23:
 $ git clone https://​github.com/​linux-kernel-labs/​linux.git $ git clone https://​github.com/​linux-kernel-labs/​linux.git
 $ cd linux/​tools/​labs $ cd linux/​tools/​labs
-$ LABS=api_assignment ​make skels +$ LABS=assignments/​0-list ​make skels 
-# scheletul de cod se va gasi in api_assignment/​kernel-api/list.c+# scheletul de cod se va gasi in api_assignment/​0-list/list.c
 $ make build $ make build
 $ make copy $ make copy
Line 33: Line 33:
   * **preview**:​ cu acces read-only; este interfața prin care se poate vizualiza conținutul intern al listei din kernel.   * **preview**:​ cu acces read-only; este interfața prin care se poate vizualiza conținutul intern al listei din kernel.
  
-[[https://​github.com/​dbaluta/​linux/​blob/​master/​tools/​labs/​templates/​api_assignment/kernel-api/​list.c|Scheletul de cod]] implementează cele două fișiere din procfs. Voi va trebui să creați o listă și să adăugați suportul pentru adăugarea și citirea datelor. Urmăriți TODOs din cod pentru detalii.+[[https://​github.com/​linux-kernel-labs/​linux/​blob/​master/​tools/​labs/​templates/​assignments/0-list/​list.c|Scheletul de cod]] implementează cele două fișiere din procfs. Voi va trebui să creați o listă și să adăugați suportul pentru adăugarea și citirea datelor. Urmăriți TODOs din cod pentru detalii.
  
 Pentru a interacționa cu lista din kernel, trebuie să scrieți comenzi (folosind comanda ''​echo''​) în fișierul ''/​proc/​list/​management'':​ Pentru a interacționa cu lista din kernel, trebuie să scrieți comenzi (folosind comanda ''​echo''​) în fișierul ''/​proc/​list/​management'':​
Line 45: Line 45:
 ===== Testare ===== ===== Testare =====
  
-Pentru simplificarea procesului de corectare al temelor, dar și pentru a reduce greșelile temelor trimise, corectarea temelor se va face automat cu ajutorul unui [[https://​github.com/​dbaluta/​linux/​blob/​master/​tools/​labs/​templates/​api_assignment/checker/​list-checker|script de testare]] numit ''​list-checker''​. Scriptul de testare presupune că numele modului de kernel este denumit ''​list''​.+Pentru simplificarea procesului de corectare al temelor, dar și pentru a reduce greșelile temelor trimise, corectarea temelor se va face automat cu ajutorul unui [[https://​github.com/​linux-kernel-labs/​linux/​blob/​master/​tools/​labs/​templates/​assignments/0-list/checker/_checker|script de testare]] numit ''​_checker''​. Scriptul de testare presupune că numele modului de kernel este denumit ''​list''​.
  
 <​hidden>​ <​hidden>​
Line 67: Line 67:
 ==== Sfaturi ==== ==== Sfaturi ====
  
-Pentru a vă mări șansele de a obține nota maximă, citiți și respectați coding style-ul kernelului Linux descris din documentul [[http://lxr.free-electrons.com/​source/​Documentation/​process/​coding-style.rst | Coding Style]].+Pentru a vă mări șansele de a obține nota maximă, citiți și respectați coding style-ul kernelului Linux descris din documentul [[https://elixir.bootlin.com/​linux/​v4.19.19/​source/​Documentation/​process/​coding-style.rst | Coding Style]].
  
 De asemenea, folosiți următoarele tool-uri de analiza statică pentru a verifica codul: De asemenea, folosiți următoarele tool-uri de analiza statică pentru a verifica codul:
Line 73: Line 73:
 === checkpatch.pl === === checkpatch.pl ===
  
-  * <code bash> ​/path/to/linux-4.9.11/​scripts/​checkpatch.pl --no-tree --terse -f /​path/​to/​your/​list.c </​code>​+  * <code bash> linux/​scripts/​checkpatch.pl --no-tree --terse -f /​path/​to/​your/​list.c </​code>​
 === sparse === === sparse ===
   * <code bash> sudo apt-get install sparse </​code>​   * <code bash> sudo apt-get install sparse </​code>​
   * <code bash>   * <code bash>
- ​cd ​/path/to/linux-4.9.11 ​+ cd linux
  make C=2 /​path/​to/​your/​list.c </​code>​  make C=2 /​path/​to/​your/​list.c </​code>​
  
so2/teme/tema0.1519941324.txt.gz · Last modified: 2018/03/01 23:55 by daniel.baluta
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0