On Mon, 15 Apr 2019 at 17:53, Mihai Barbulescu <b12mi...@gmail.com> wrote: > > Salut Paul, > > Acestea nu sunt definitii oficiale > > On Mon, 15 Apr 2019 at 12:47, Paul Olaru <olarupaulstelia...@gmail.com> wrote: > > > > Comportament ciudat: mă gândeam la situația în care libc și-ar reinițializa > > heap-ul după ce am dat so_exec_start și astfel bufferele din > > printf/fprintf/... nu mai sunt partajate cu programul, nu mai sunt > > flushuite corespunzător etc. Nu sunt sigur că se comportă așa sau nu, eu > > voi merge pe presupunerea asta și mă voi rezuma la a folosi doar apeluri de > > sistem pentru implementare. > > Nu te mai gandi la nimic. Daca nu e documentat in: > - manpage-ul libc-ului > - issue ridicat de developer/tester > Atunci acea problema __nu exista__
Un amendament aici: daca problema totusi exista si esti convins de ea -> se ridica bug si se specifica cum se reproduce. > > Daca nu stii sigur si ai nevoie de validarea unui > comportament/presupunere sunt doua solutii in viata reala (dar si la > temele SO) pe care le aplici: > - se face un program cat mai mic posibil de test si se valideaza sau > nu o presupunere > - se verifica documentatia daca specifica sau nu acel comportament > Asa cum faceai si la matematica metoda reducerii la absurd - > presupuneai ceva apoi gaseai contra-exemplu care sa invalideze > presupunerea. Cealalta solutie era inductia: porneai de la un caz > particular pe care il validai apoi generalizai prin presupunere prin > inductie si o validai si p-aia. > > Daca ai neclaritati asupra functionarii functiei so_start_exec din > scheletul temei 3 deschide un thread nou si pune intrebari punctuale, > cu fraze cat mai scurte si clare, iar cei care au facut scheletul vor > lamuri. > > > > > Cheaty: La tema anterioară nu puteam folosi fprintf pt a implementa > > so_fprintf -- asta ar fi fost cheaty. La SD, nu puteam folosi std::map > > pentru a implementa ceva echivalent lui. > > > > Ceea ce spui tu aici se numesc restrictii si trebuie sa tii cont de > ele in orice situatie. Nu mai folositi cuvinte complicate pentru > concepte simple. Iar presupunerea la SO este: daca nu s-a dat o > restrictie in enuntul unei teme => ai voie cu orice (asa cum i-am > clarificat lui Alice). > > Spor la lucru. > > > On Mon, Apr 15, 2019, 12:43 PM Mihai Barbulescu <b12mi...@gmail.com> wrote: > >> > >> Salut, > >> > >> Iar am probleme cu vocabularul vostru si devin din nou confuz. Ce e aia: > >> - functie libc care se comporta ciudat? -> defineste conceptul > >> "comportament ciudat" ca sa imi calibrez limbajul pe frecventa ta -> > >> da-mi si exmplele la care te gandesti, eu unul nu am in minte nici o > >> functie __standard__ care se comporta ciudat. Daca exista asa ceva a > >> fost marcata ca deprecated si inlocuita! > >> - implementare in mod cheaty -> ce-i aia mod cheaty, defineste-mi? > >> Da-mi exemplu de functie care face asta > >> > >> In standarde precum libc nu se pun functii "periculoase" sau "cheaty" > >> sau whatever le numiti voi. Se pun functii care au trecut de un amplu > >> proces de review si validare. Singurul lucru de care trebuie tinut > >> cont e daca functiile sunt sau nu thread safe atunci cand programati > >> multithreaded...ATAT. Daca se comporta ca mai sus => se ridica bug cu > >> severitate mare la libc... > >> > >> Va rog sa va luati un moment de a revizui textul scris ca sa putem > >> vorbi pe aceeasi frecventa si sa fim sincronizati. > >> > >> On Mon, 15 Apr 2019 at 12:27, Paul Olaru <olarupaulstelia...@gmail.com> > >> wrote: > >> > > >> > Pe scurt, dacă e o funcționalitate oferită de sistemul de operare e ok > >> > și putem folosi ce ne oferă acesta fără restricții, și tot ce e de > >> > evitat e doar folosirea funcțiilor din libc care ori s-ar comporta > >> > ciudat ori ar implementa într-un mod cheaty funcționalitatea dorită? > >> > (Notă, la tema asta nu cred că e nimic în a doua categorie dar ar putea > >> > fi câteva în prima) > >> > > >> > On Mon, Apr 15, 2019, 12:24 PM Mihai Barbulescu via so > >> > <so@cursuri.cs.pub.ro> wrote: > >> >> > >> >> Buna Alice, > >> >> > >> >> Si eu sunt confuz din doua motive: > >> >> 1. Formularea ta: alea nu sunt semnale, par a fi chestii pe care le > >> >> primesti in siginfo_t in si_code [1],[2] > >> >> 2. Nu vad de ce ar fi interzis sa verifici structura siginfo_t si > >> >> continutul ei daca te ajuta in rezolvare, e aceasta restrictie > >> >> mentionata pe undeva? > >> >> > >> >> [1] https://www.mkssoftware.com/docs/man5/siginfo_t.5.asp > >> >> [2] > >> >> https://elixir.bootlin.com/linux/latest/source/include/uapi/asm-generic/siginfo.h#L221 > >> >> > >> >> On Mon, 15 Apr 2019 at 11:10, Adrian Șendroiu via so > >> >> <so@cursuri.cs.pub.ro> wrote: > >> >> > > >> >> > Bună, > >> >> > > >> >> > La ce te referi mai exact? Alea nu sunt semnale. > >> >> > > >> >> > On Mon, 15 Apr 2019 at 10:22, Alice Suiu via so > >> >> > <so@cursuri.cs.pub.ro> wrote: > >> >> > > > >> >> > > Buna ziua, > >> >> > > > >> >> > > Este permis ca in cadrul rezolvării temei de pe Linux sa ne folosim > >> >> > > de semnalele SEGV_MAPERR si SEGV_ACCERR pentru a verifica dacă o > >> >> > > pagina este mapata sau nemapata? > >> >> > > > >> >> > > Mulțumesc, > >> >> > > Alice Suiu > >> >> > > _______________________________________________ > >> >> > > http://ocw.cs.pub.ro/courses/so/info/lista-discutii > >> >> > _______________________________________________ > >> >> > http://ocw.cs.pub.ro/courses/so/info/lista-discutii > >> >> > >> >> > >> >> > >> >> -- > >> >> Cu stimă, > >> >> Mihai Bărbulescu > >> >> _______________________________________________ > >> >> http://ocw.cs.pub.ro/courses/so/info/lista-discutii > >> > >> > >> > >> -- > >> Cu stimă, > >> Mihai Bărbulescu > > > > -- > Cu stimă, > Mihai Bărbulescu -- Cu stimă, Mihai Bărbulescu _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii