Zkouška OSP 25.5.2015

1) Zaškrtnout správná tvrzení:

  • a) NO - Unix byl od počátku vyvíjen pro komerční použití.
  • b) YES - Linus nepoužil pro vývoj Linuxovýho jádra žádné zdrojáky z Unixu i když byly dostupné v akademické sféře.
  • c) NO - Stallman napsal GCC kompilátor až potom, co bylo Linuxové jádro přizpůsobeno pro něj.
  • d) YES - ? (něco s Linuxem a GNU, doplnit pls)
  • e) NO - Linux byl od pořátku vyvíjen tak, aby byl kompatibilní pro všechny architektury.

2) Byl tam kus Cčka a napsat jaké symboly z a,b,c,fnc budou uloženy na disku ve spustitelném souboru ELF.

  include <
  char a[] = "prvni";
  
  char *fnc ()
  {
  
      char b[] = "druhy";
      char* c;
      c = (char*) malloc(6); 
      strcpy(c, "treti")
      return(c); 
  
  }
  

* Tady chtěl hlavně říct, že bude v soboru pouze globální proměnná a a definice funkce fnc, ostatní (b,c) jsou jen lokální a při kompilaci se neuvažují.

3) Jakými vrstvami systému a jakými volními bude procházet požadavek při vytvoření souboru, zapsání do něj a uložení na disk.

  chtěl že to jde od user space přes kernel space až po hardware, že se tam volá nějaký fopen() atd..
  

4) Otázka na cross-kompilaci. Máme architektury A, B

  zkompilovat na A cross kompilací binárky pro B, pak cross kompilací opět nativní kompilátor z A pro B a pak už jen na B kompilujeme nativním kompilátorem (za 2 body)
  

5) Při přístupu k libovolnému souboru uloženému v soub.systému na blokovém zař. dochází v jádrech OS Linux 2.4 a vyšších k uložení dat souboru do operační paměti po úsecích v násobku určité délky.

  a) Z čeho je velikost těchto úseků odvozená ? Odpověď: Z násobků velikosti stránky
  b) Jak se tento mechanizmus vyrov.pam. nazývá ? Odpověď: PAGE CACHING
  c) Kdy dojde k uvolnění takto alokovaného bloku paměti ? Odpověď: Při nedostatku volné paměti

6) Jaký je výstup po použití diff. Jak můžeme tento výstup přímo aplikovat do jiné větve. Jaké znaky v diffu jsou a co znamenají

  znaky ---,+++,+,-,@@ => původní soubor, změněný soubor, přidaná řádka, odebraná řádka, pro který úsek (řádky) platí následující změny
  PATCH - dá se vytvořit, přeposlat mailem například a aplikovat v jiné větvi
  

7) Máme repozitář s 1000 soubory (každý jiný) a je jednou provedený commit - .git zabírá 1MB. Když do každého souboru přidáme jeden nový znak a poté provedeme commit (pro všechny soubory najednou) o kolik se zvětší velikost .git? Lze v udoucnu nějak vynutit snížení této velikosti?

  zvětší se 2x, protože se pro každý soubor vytvoří jeho kopie a celý strom, žádný diff... lze požádat o zmenšení zavoláním git gc (garbage collector)
  

8) Jak můžeme otimalizovat práci s velkými soubory na úrovni user space?

  mmap(), ..  ??? za DMA byl půl bodu až bod (to je prý moc nízko a neovlivníme to programem)
  

9) Jaké jsou základní myšlenky společenské smlouvy projektu Debian?

  vždy 100% svobodný, nesmí použít nic nesvobodnýho, priorita je svoborný SW a uživatel, veřejná databáze chyb, pokud chceme mimo smlouvu vyvíjet tak do repozitářů contrib, non-free
  

10) Tabulka s licencema viz test 7.6.2013

courses/a4m35osp/zkouska_25052015.txt · Poslední úprava: 2019/01/10 18:46 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0