main.tex 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. \documentclass{report}
  2. \usepackage[a4paper]{geometry}
  3. \usepackage[utf8x]{inputenc}
  4. \usepackage[T1]{fontenc}
  5. \usepackage[french]{babel}
  6. \usepackage[cyr]{aeguill}
  7. \usepackage{xspace}
  8. \usepackage{hyperref}
  9. \usepackage{svg}
  10. \hypersetup{breaklinks=true}
  11. \urlstyle{same}
  12. \usepackage{cite}
  13. \usepackage{graphicx}
  14. \usepackage[export]{adjustbox}
  15. \usepackage[nottoc, notlof, notlot]{tocbibind}
  16. \usepackage{minted}
  17. \usepackage{verbatim}
  18. \setlength{\parindent}{2em}
  19. \setlength{\parskip}{0.5em}
  20. \renewcommand{\baselinestretch}{1.4}
  21. \usemintedstyle{tango}
  22. % TODO: handle reference name
  23. \makeatletter
  24. \newenvironment{code}[2]
  25. {\VerbatimEnvironment
  26. %\begin{listing}[H]
  27. \begin{minted}[frame=lines,framesep=2mm,linenos,label=#2]{#1}}
  28. {\end{minted}
  29. %\end{listing}
  30. }
  31. \makeatother
  32. \usepackage{titlesec}
  33. % \titleformat
  34. % {\chapter} % command
  35. % [block] % shape
  36. % {\bfseries\Large} % format
  37. % {Chapitre \ \thechapter} % label
  38. % {0ex} % sep
  39. % {
  40. % \rule{\textwidth}{1pt}
  41. % \centering
  42. % } % before-code
  43. % [
  44. % \centering
  45. % \vspace{-1.5ex}%
  46. % \rule{\textwidth}{0.3pt}
  47. % ] % after-code
  48. \titleformat{\chapter}[frame]
  49. {\normalfont}
  50. {\filright
  51. \large
  52. \enspace Chapitre \thechapter\enspace}
  53. {8pt}
  54. {\Large\bfseries\filcenter}
  55. \titlespacing{\chapter}{0pc}{-5pc}{2pc}
  56. \newcommand{\inltype}[1]{\texttt{\detokenize{#1}}}
  57. \begin{document}
  58. \title{{\Huge{Rapport de stage --- VideoLabs}} \\
  59. Renforcement de la sécurité d'un lecteur vidéo multiplate-forme par séparation des privilèges}
  60. \author{Alexandre Janniaux}
  61. \date{19 septembre 2018}
  62. \begin{titlepage}
  63. \thispagestyle{empty}
  64. \newgeometry{top=1in,bottom=1in,right=1in,left=1in}
  65. \includegraphics[scale=0.25]{schemas/TELECOM_PARISTECH_IMT_grise_RVB.eps}\\[1cm]
  66. \center
  67. \vspace{-1em}
  68. \textsc{\huge Renforcement de la sécurité d'un lecteur vidéo multiplate-forme
  69. par séparation des privilèges}\\% Minor heading such as course title
  70. \vspace{1.5em}
  71. \center
  72. \includesvg[width=4cm]{schemas/Logo_videolabs_simple}
  73. \vspace{3em}
  74. \textsc{\LARGE Rapport de stage --- VideoLabs}\\[0.5cm] % Major heading such as course name
  75. \textsc{\LARGE Alexandre Janniaux}\\[0.5cm] % Name of your university/college
  76. \textsc{\Large19 septembre 2018}
  77. \vspace{2cm}
  78. \raggedleft
  79. \begin{minipage}[t]{0.55\textwidth}
  80. \large
  81. \begin{tabular}{ll}
  82. \textsc{Enseignant référant:} & \textsc{Samuel Tardieu} \\
  83. \textsc{Maitre de stage:} & \textsc{Thomas Guillem}
  84. \end{tabular}
  85. \end{minipage}
  86. \end{titlepage}
  87. \clearpage
  88. \section*{Remerciements}
  89. \input{chapters/thanks}
  90. \tableofcontents
  91. \chapter*{Introduction}
  92. \input{chapters/vlc_introduction}
  93. \part{VLC-sandbox, sécurité par isolation et limitation des capacités}
  94. \chapter{Qu'est-ce que le sandboxing}
  95. \input{chapters/what_is_sandboxing}
  96. \chapter{Pourquoi faire du sandboxing dans VLC}
  97. \input{chapters/why_sandboxing}
  98. \part{Fonctionnement de VLC}
  99. \chapter{Architecture modulaire}
  100. \input{chapters/vlc_explanations}
  101. \part{Abstractions apportées dans la sandbox}
  102. \chapter{Question d'architecture: broker vs orchestrateur}
  103. \input{chapters/sandbox_architecture}
  104. \chapter{Communication inter-processus}
  105. \input{chapters/sandbox_ipc}
  106. \chapter{Gestion des messages reçus: boucle événementielle}
  107. \input{chapters/sandbox_eventloop}
  108. \chapter{Gestion des blocs mémoires}
  109. \input{chapters/sandbox_memory_blocks}
  110. \chapter{Technique de sandboxing naïve, isolation par module}
  111. \input{chapters/sandbox_pattern_modules}
  112. \chapter{Gestion des objets de libvlccore, design pattern}
  113. \input{chapters/sandbox_pattern_libvlccore}
  114. \part{Implémentation de la sandbox sous Linux}
  115. \chapter{Passage de descripteur de fichiers entre processus}
  116. \input{chapters/linux_file_descriptor}
  117. \chapter{Gestion asynchrone des messages reçus}
  118. \input{chapters/linux_eventloop}
  119. % \chapter{Routage des messages dans les différents modèles}
  120. %
  121. % \chapter{Gestion des accès et permissions via socket unix et descripteur de fichiers}
  122. \part{Implémentation de la sandbox sous Windows}
  123. \chapter{Passage de descripteur de fichiers entre processus}
  124. \input{chapters/windows_ipc}
  125. \chapter{Gestion asynchrone des messages reçus}
  126. \input{chapters/windows_eventloop}
  127. %\chapter{Routage des messages dans le modèle broker}
  128. %
  129. %\chapter{Gestion des accès et de la mémoire via ACL}
  130. \part{Missions subsidiaires}
  131. \chapter{Ajout de fonctionnalités mineures et correction de bogues}
  132. \input{chapters/other_bug_features}
  133. \chapter{Implémentation d'un encodeur matériel sous Android}
  134. \input{chapters/other_android_mediacodec}
  135. \chapter{Finalisation d'un cinéma 3D virtuel}
  136. \input{chapters/cinema.tex}
  137. \chapter{Amélioration d'un module d'extraction de flux vidéos depuis des torrents}
  138. \input{chapters/torrent}
  139. \clearpage
  140. \section*{Conclusion}
  141. \input{chapters/conclusion}
  142. \bibliographystyle{plain}
  143. \bibliography{bibliography}
  144. \end{document}