Make master work again

This commit is contained in:
bhuvy
2019-03-20 16:45:29 -05:00
parent 99bacb13b5
commit e85f5edbcc
3 changed files with 6 additions and 9 deletions
+2 -2
View File
@@ -17,6 +17,7 @@ Just know that there are other ways of dividing up memory like with \texttt{mmap
\section{C Memory Allocation API}
\begin{itemize}
\item \keyword{malloc(size\_t bytes)} is a C library call and is used to reserve a contiguous block of memory that may be uninitialized \cite[P. 348]{jones2010wg14}.
Unlike stack memory, the memory remains allocated until \keyword{free} is called with the same pointer.
If \keyword{malloc} can either return a pointer to at least that much free space requested or \texttt{NULL}.
@@ -111,6 +112,7 @@ free(ptr);
\end{lstlisting}
If you use a piece of memory after it is freed - that is undefined behavior.
\end{itemize}
\subsection{Heaps and sbrk}
@@ -466,7 +468,6 @@ One of three allocators used internally by the Linux Kernel.
See \href{http://man7.org/linux/man-pages/man3/malloc.3.html}{the man page}!
\begin{itemize}
\tightlist
\item
\href{http://en.wikipedia.org/wiki/SLUB_\%28software\%29}{SLUB} (wikipedia)
\item
@@ -476,7 +477,6 @@ See \href{http://man7.org/linux/man-pages/man3/malloc.3.html}{the man page}!
\section{Topics}
\begin{itemize}
\tightlist
\item
Best Fit
\item
+2 -2
View File
@@ -15,7 +15,7 @@
@misc{mallocinternals, title={Overview of Malloc}, url={https://sourceware.org/glibc/wiki/MallocInternals}, journal={MallocInternals - glibc wiki}, publisher={Free Software Foundation}, year={2018}, month={Mar}}
@misc{process_def, 2018 edition_2018, title={Definitions}, url={http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_210}, journal={The Open Group Base Specifications Issue 7, 2018 edition}, publisher={The Open Group/IEEE}, year={2018}, month={Jul}}
@misc{process_def, title={Definitions}, url={http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_210}, journal={The Open Group Base Specifications Issue 7, 2018 edition}, publisher={The Open Group/IEEE}, year={2018}, month={Jul}}
@book{Bovet:2005:ULK:1077084,
author = {Bovet, Daniel and Cesati, Marco},
@@ -36,4 +36,4 @@
publisher={International Standards Organization}
}
@misc{env_std_2018, title={Environment Variables}, url={https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html}, journal={Environment Variables}, publisher={The Open Group/IEEE}, year={2018}, month={Jul}}
@misc{env_std_2018, title={Environment Variables}, url={https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html}, journal={Environment Variables}, publisher={The Open Group/IEEE}, year={2018}, month={Jul}}
+2 -5
View File
@@ -9,8 +9,6 @@ This is the piece of software that is loaded up before all of your other program
What the kernel does is the following, abbreviated
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
The operating system executes ROM or read only code
\item
@@ -124,14 +122,14 @@ Most notably, this section contains variables that were initialized with a stati
\begin{lstlisting}[language=C]
int global = 1;
\end{lstlsting}
\end{lstlisting}
But not those that are default initialized, that is the next segment.
\item \textbf{A BSS Segment} or the Basic Service Segment. This contains all of your globals and any other static duration variables that are implicitly zeroed out like.
\begin{lstlisting}[language=C]
int assumed_to_be_zero;
\end{lstlsting}
\end{lstlisting}
It is not an error to assume that this will be zero because otherwise we'd have a security risk from other processes.
They just get put in a different section to speed up process start up time.
@@ -729,7 +727,6 @@ Read the man pages and the posix groups above!
\subsection{Topics}
\begin{itemize}
\tightlist
\item
Correct use of fork, exec and waitpid
\item