├── .github └── workflows │ ├── compile.yml │ └── pdfs.yml ├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── README.spellcheck ├── appendix.tex ├── common.tex ├── dev ├── check-examples.sh ├── check-label.sh ├── install-latex.sh ├── install-spellcheck.sh └── release.sh ├── docs ├── class-assignments │ ├── extra-feedback.txt │ ├── labs-assignment-2018.txt │ ├── labs-assignment-2019.txt │ ├── labs-assignment-2020.txt │ ├── labs-assignment-2021.txt │ └── labs-assignment-2022.txt ├── cstyle.html ├── cstyle.ms.pdf ├── cstyle.pl ├── exams.html ├── index.html ├── questions-theory.html ├── sample_exams.html ├── syllabus.html └── unix-access.html ├── file-api.tex ├── files.tex ├── history.tex ├── img ├── by-nc-sa-small.pdf ├── eps │ ├── open_files1-eps-converted-to.pdf │ ├── open_files1.eps │ ├── x86-memory-proc-mem-layout-eps-converted-to.pdf │ └── x86-memory-proc-mem-layout.eps ├── examples │ └── circle.eps ├── groff │ └── open_files1.roff ├── odg │ └── x86-memory-proc-mem-layout.odg ├── tex │ ├── access_rights-eps-converted-to.pdf │ ├── access_rights.eps │ ├── access_rights.pstex_t │ ├── access_rights.tex │ ├── assembler-eps-converted-to.pdf │ ├── assembler.eps │ ├── assembler.pstex_t │ ├── classic_os.eps │ ├── classic_os.pstex_t │ ├── classic_os.tex │ ├── compilation_process-eps-converted-to.pdf │ ├── compilation_process.eps │ ├── compilation_process.pstex_t │ ├── compilation_process.tex │ ├── compiler-eps-converted-to.pdf │ ├── compiler.eps │ ├── compiler.pstex_t │ ├── compiler.tex │ ├── deadlock-eps-converted-to.pdf │ ├── deadlock.eps │ ├── deadlock.pstex_t │ ├── deadlock.tex │ ├── environ-eps-converted-to.pdf │ ├── environ.eps │ ├── environ.pstex_t │ ├── fork-eps-converted-to.pdf │ ├── fork.eps │ ├── fork.pstex_t │ ├── fork.tex │ ├── fork_wait-eps-converted-to.pdf │ ├── fork_wait.eps │ ├── fork_wait.pstex_t │ ├── fork_wait.tex │ ├── fstree-eps-converted-to.pdf │ ├── fstree.eps │ ├── fstree.pstex_t │ ├── init.eps │ ├── init.pstex_t │ ├── links-eps-converted-to.pdf │ ├── links.eps │ ├── links.pstex_t │ ├── links.tex │ ├── login.eps │ ├── login.pstex_t │ ├── main-eps-converted-to.pdf │ ├── main.eps │ ├── main.pstex_t │ ├── mem_kernel-eps-converted-to.pdf │ ├── mem_kernel.eps │ ├── mem_kernel.pstex_t │ ├── mem_kernel.tex │ ├── mem_user-eps-converted-to.pdf │ ├── mem_user.eps │ ├── mem_user.pstex_t │ ├── mem_user.tex │ ├── memory_segments.tex │ ├── mount-eps-converted-to.pdf │ ├── mount.eps │ ├── mount.pstex_t │ ├── nav_dir-eps-converted-to.pdf │ ├── nav_dir.eps │ ├── nav_dir.pstex_t │ ├── open_files-eps-converted-to.pdf │ ├── open_files.eps │ ├── open_files.pstex_t │ ├── open_files1.latex │ ├── partitions-eps-converted-to.pdf │ ├── partitions.eps │ ├── partitions.pstex_t │ ├── pipe-eps-converted-to.pdf │ ├── pipe.eps │ ├── pipe.pstex_t │ ├── pipe.tex │ ├── preprocesor-eps-converted-to.pdf │ ├── preprocesor.eps │ ├── preprocesor.pstex_t │ ├── proc_states.tex │ ├── process_states-eps-converted-to.pdf │ ├── process_states.eps │ ├── process_states.pstex_t │ ├── pseudoterm.eps │ ├── pseudoterm.pstex_t │ ├── pseudoterm.tex │ ├── s5-eps-converted-to.pdf │ ├── s5.eps │ ├── s5.pstex_t │ ├── s5.tex │ ├── segments-eps-converted-to.pdf │ ├── segments.eps │ ├── segments.pstex_t │ ├── startx.eps │ ├── startx.pstex_t │ ├── structure-eps-converted-to.pdf │ ├── structure.eps │ ├── syscall_dist-eps-converted-to.pdf │ ├── syscall_dist.eps │ ├── syscall_dist.pstex_t │ ├── syscall_dist.tex │ ├── syscall_unx-eps-converted-to.pdf │ ├── syscall_unx.eps │ ├── syscall_unx.pstex_t │ ├── syscall_unx.tex │ ├── tcp_par-eps-converted-to.pdf │ ├── tcp_par.eps │ ├── tcp_par.pstex_t │ ├── tcp_par.tex │ ├── tcp_prefork-eps-converted-to.pdf │ ├── tcp_prefork.eps │ ├── tcp_prefork.pstex_t │ ├── tcp_prefork.tex │ ├── tcp_seq-eps-converted-to.pdf │ ├── tcp_seq.eps │ ├── tcp_seq.pstex_t │ ├── tcp_seq.tex │ ├── threads-eps-converted-to.pdf │ ├── threads.eps │ ├── threads.pstex_t │ ├── udp-eps-converted-to.pdf │ ├── udp.eps │ ├── udp.pstex_t │ ├── udp.tex │ ├── unix_structure.pstex_t │ ├── vfs-eps-converted-to.pdf │ ├── vfs.eps │ ├── vfs.pstex_t │ ├── virt_mem-eps-converted-to.pdf │ ├── virt_mem.eps │ ├── virt_mem.pstex_t │ ├── virt_mem.tex │ ├── xdm.eps │ ├── xdm.pstex_t │ ├── xwin.eps │ ├── xwin.pstex_t │ └── xwin.tex └── xfig │ ├── assembler.fig │ ├── classic_os.fig │ ├── compilation_process.fig │ ├── compiler.fig │ ├── deadlock.fig │ ├── environ.fig │ ├── fork.fig │ ├── fork_wait.fig │ ├── fstree.fig │ ├── init.fig │ ├── links.fig │ ├── login.fig │ ├── main.fig │ ├── mem_kernel.fig │ ├── mem_user.fig │ ├── mount.fig │ ├── nav_dir.fig │ ├── open_files.fig │ ├── open_files1.fig │ ├── partitions.fig │ ├── pipe.fig │ ├── prava.fig │ ├── preprocesor.fig │ ├── process_states.fig │ ├── pseudoterm.fig │ ├── s5.fig │ ├── segments.fig │ ├── slide_rect.fig │ ├── startx.fig │ ├── structure.fig │ ├── syscall_dist.fig │ ├── syscall_unx.fig │ ├── tcp_par.fig │ ├── tcp_prefork.fig │ ├── tcp_seq.fig │ ├── threads.fig │ ├── udp.fig │ ├── vfs.fig │ ├── virt_mem.fig │ ├── xdm.fig │ └── xwin.fig ├── intro.tex ├── macros.m4 ├── network.tex ├── other.tex ├── posters ├── matfyz-girl.jpg ├── matfyz-girl.pdf ├── unix-poster-AR-2018-2019.roff ├── unix-poster-AR-2019-2020.roff ├── unix-poster-AR-2020-2021.roff ├── unix-poster-AR-2021-2022.roff ├── unix-poster-AR-2022-2023.roff ├── unix-poster-AR-2023-2024.roff └── unix-poster-AR-2024-2025.roff ├── proc.tex ├── signals.tex ├── spellfilter.sed ├── synchro.tex ├── sys-v-semaphores.tex ├── threads.tex ├── unix-linux-prog-in-c.tex ├── unix-linux-prog-in-c_slides-only.tex ├── unix_dict.txt ├── user-access.tex ├── xcomment.sty └── xcomment.tex /.github/workflows/compile.yml: -------------------------------------------------------------------------------- 1 | name: Compile sanity check 2 | on: 3 | push: 4 | branches: 5 | - master 6 | paths: 7 | - '**.tex' 8 | - '**.m4' 9 | - '**.sty' 10 | - Makefile 11 | - .github/workflows/compile.yml 12 | - 'img/**' 13 | - 'dev/**' 14 | jobs: 15 | build: 16 | runs-on: ubuntu-latest 17 | steps: 18 | - name: Update the system 19 | run: sudo apt-get -qq update 20 | - name: Checkout master branch 21 | uses: actions/checkout@v4 22 | with: 23 | path: master 24 | - name: Checkout src repo 25 | uses: actions/checkout@v4 26 | with: 27 | repository: devnull-cz/unix-linux-prog-in-c-src 28 | path: unix-linux-prog-in-c-src 29 | - name: Install pre-requisites for LaTeX 30 | working-directory: master 31 | run: ./dev/install-latex.sh 32 | - name: Install pre-requisites for spell check 33 | working-directory: master 34 | run: ./dev/install-spellcheck.sh 35 | - name: Check labels 36 | working-directory: master 37 | run: ./dev/check-label.sh 38 | - name: Run spellcheck 39 | working-directory: master 40 | run: make spellcheck 41 | - name: Compile 42 | working-directory: master 43 | run: make slides notes 44 | - name: Check example links 45 | working-directory: master 46 | run: ./dev/check-examples.sh 47 | -------------------------------------------------------------------------------- /.github/workflows/pdfs.yml: -------------------------------------------------------------------------------- 1 | name: Create release with PDFs 2 | on: 3 | push: 4 | tags: 5 | - 'v*' 6 | jobs: 7 | build: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: Update the system 11 | run: sudo apt-get -qq update 12 | - name: Checkout master branch 13 | uses: actions/checkout@v4 14 | with: 15 | path: master 16 | - name: Install pre-requisites for LaTeX 17 | working-directory: master 18 | run: ./dev/install-latex.sh 19 | - name: Compile first phase 20 | working-directory: master 21 | run: make slides notes 22 | - name: Compile second phase to get table of contents 23 | working-directory: master 24 | run: make slides notes 25 | - name: Create Release 26 | uses: softprops/action-gh-release@v1 27 | if: startsWith(github.ref, 'refs/tags/') 28 | with: 29 | prerelease: false 30 | draft: false 31 | files: | 32 | ./master/unix-linux-prog-in-c.pdf 33 | ./master/unix-linux-prog-in-c_slides-only.pdf 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.m4.tex 3 | *.aux 4 | *.log 5 | *.ps 6 | *.pdf 7 | *.eps 8 | *.tmp 9 | *.out 10 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Unix programming in C 3 | # 4 | # (c) Martin Beran, Jan Pechanec, Vladimir Kotal 5 | # 6 | # - "make slides" creates lecture slides 7 | # - "make notes" creates slides with notes in the A4 format 8 | # 9 | # For correct links and PDF bookmarks it is necessary to run make twice. 10 | # 11 | # Do not edit m4 files, those are automatically created during the document 12 | # generation. 13 | # 14 | # The 'spellcheck' target requires the aspell program. 15 | # 16 | 17 | LATEX= pdflatex 18 | M4= m4 19 | 20 | SLIDE_TEX= unix-linux-prog-in-c_slides-only.tex 21 | NOTE_TEX= unix-linux-prog-in-c.tex 22 | 23 | SLIDE_PDF= $(SLIDE_TEX:tex=pdf) 24 | NOTE_PDF= $(NOTE_TEX:tex=pdf) 25 | SLIDE_NEW= $(SLIDE_PDF:pdf=pdf.new) 26 | NOTE_NEW= $(NOTE_PDF:pdf=pdf.new) 27 | 28 | TEX_FILES= common.tex \ 29 | intro.tex \ 30 | file-api.tex \ 31 | user-access.tex \ 32 | proc.tex \ 33 | signals.tex \ 34 | synchro.tex \ 35 | network.tex \ 36 | threads.tex \ 37 | files.tex \ 38 | other.tex \ 39 | sys-v-semaphores.tex \ 40 | history.tex \ 41 | appendix.tex 42 | 43 | SLIDES= $(TEX_FILES) $(SLIDE_TEX) 44 | NOTES= $(TEX_FILES) $(NOTE_TEX) 45 | 46 | all: slides notes spellcheck 47 | 48 | slides: $(SLIDES) 49 | @for i in $(SLIDES); do \ 50 | new=`echo $$i | sed -e 's/.tex/.m4.tex/g'`; \ 51 | $(M4) -D NOSPELLCHECK $$i > $$new; \ 52 | done 53 | $(LATEX) $(SLIDE_TEX:tex=m4.tex) 54 | mv $(SLIDE_TEX:tex=m4.pdf) $(SLIDE_PDF) 55 | 56 | notes: $(NOTES) 57 | @for i in $(NOTES); do \ 58 | new=`echo $$i | sed -e 's/.tex/.m4.tex/g'`; \ 59 | $(M4) -D NOSPELLCHECK $$i > $$new; \ 60 | done 61 | $(LATEX) $(NOTE_TEX:tex=m4.tex) 62 | mv $(NOTE_TEX:tex=m4.pdf) $(NOTE_PDF) 63 | 64 | clean: 65 | -rm -f *.log *.aux *.m4.tex *.pdf *.m4.tmp *.out 66 | 67 | spellcheck: 68 | @rm -f /tmp/aspell.out 69 | @echo "test" | sed -E -f spellfilter.sed >/dev/null; \ 70 | if [ $$? -ne 0 ]; then echo "sed failed"; exit 1; fi 71 | @for file in ${SLIDES}; do \ 72 | echo "### Checking $$file"; \ 73 | $(M4) $$file | sed -E -f spellfilter.sed | \ 74 | aspell -t --personal=./unix_dict.txt list | \ 75 | tee -a /tmp/aspell.out; \ 76 | if [ $$? -ne 0 ]; then exit 1; fi; \ 77 | done 78 | @if [ -s /tmp/aspell.out ]; then exit 1; fi 79 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Github Actions status](https://github.com/devnull-cz/unix-linux-prog-in-c/workflows/Compile%20sanity%20check/badge.svg)](https://github.com/devnull-cz/unix-linux-prog-in-c/actions?query=workflow%3A%22Compile+sanity+check%22) 2 | 3 | This project contains source code for the material that is used to lecture 4 | "Unix/Linux Programming in C" (NSWI015) class at the Faculty of Mathematics and 5 | Physics, Charles University in Prague. 6 | 7 | To get the PDFs, go to [Releases](https://github.com/devnull-cz/unix-linux-prog-in-c/releases). 8 | 9 | The class home page is https://devnull-cz.github.io/unix-linux-prog-in-c/ 10 | 11 | # Developer notes 12 | 13 | It is written in LaTeX. See the `Makefile` on how to build the PDF document. 14 | 15 | ## Trigger new release 16 | 17 | ``` 18 | ./dev/release.sh v 19 | ``` 20 | -------------------------------------------------------------------------------- /README.spellcheck: -------------------------------------------------------------------------------- 1 | 2 | In the Makefile there is the 'spellcheck' target. This is meant pretty much for 3 | non-interactive runs (e.g. via Travis). For spell checking, aspell is used. 4 | 5 | The spell checking works by transforming the file via m4 (using macros.m4) 6 | and sed (using spellfilter.sed). 7 | 8 | The sed filters are not very smart, especially they cannot deal with multi line 9 | LateX commands. For those, wrap the lines inside the ifdef, like so: 10 | 11 | ifdef([[[NOSPELLCHECK]]], [[[ 12 | \texttt{void \funnm{err}(int \emph{status}, 13 | const char *\emph{fmt}, ...);} 14 | ]]]) 15 | 16 | The [[[ and ]]] character sequences are left and right quotation marks, 17 | respectively (see macros.m4) not to interfere with LateX quotation. 18 | 19 | There is a personal dictionary in unix_dict.txt. Try not to add too much stuff 20 | there, especially names of functions, headers, varibles, constants etc. as these 21 | should be eradicated using either m4 or sed. 22 | 23 | Sometimes it is not obvious from the output from the 'spellcheck' makefile 24 | target where particular problem is. To do that it is necessary to enter 25 | interactive mode on file processed by m4/sed and then run aspell with the 26 | 'check' command (that requires file name as argument) in one terminal window and 27 | edit the original .tex file in another window. For example: 28 | 29 | $ m4 files.tex | sed -E -f spellfilter.sed > /tmp/p 30 | $ aspell -t --personal=./unix_dict.txt -c /tmp/p 31 | 32 | -------------------------------------------------------------------------------- /appendix.tex: -------------------------------------------------------------------------------- 1 | \pagebreak 2 | \pdfbookmark[0]{Appendix}{appendix} 3 | 4 | \begin{slide} 5 | \sltitle{Contents} 6 | \slidecontents{9} 7 | \end{slide} 8 | 9 | \input{other.m4.tex} 10 | \input{files.m4.tex} 11 | \input{sys-v-semaphores.m4.tex} 12 | \input{history.m4.tex} 13 | 14 | \endinput 15 | -------------------------------------------------------------------------------- /dev/check-examples.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Verify the \example{} are all valid links to the source repository. 4 | # 5 | # Assumes the source repository is checked about to the '../unix-linux-prog-in-c-src' directory 6 | # and also that the TeX documents were already processed by m4. 7 | # 8 | # Lastly, it assumes that the \example{} does not span multiple lines. 9 | # 10 | 11 | SRC_DIR="../unix-linux-prog-in-c-src" 12 | 13 | if [[ ! -d $SRC_DIR ]]; then 14 | echo "directory $SRC_DIR does not exist" 15 | exit 1 16 | fi 17 | 18 | ret=0 19 | for m4file in *.m4.tex; do 20 | echo "### $m4file" 21 | oldIFS=$IFS 22 | cat "$m4file" | grep -o '\\example{[[:alnum:]\/\._\-]\+}' | 23 | sort -u | sed -e 's/^\\example{//' -e 's/}$//' | while IFS='\n' read example; do 24 | if [[ ! -f $SRC_DIR/$example ]]; then 25 | echo "example $example is bad link" 26 | exit 1 27 | fi 28 | done 29 | if (( $? != 0 )); then 30 | ret=1 31 | fi 32 | IFS=$oldIFS 33 | done 34 | exit $ret 35 | -------------------------------------------------------------------------------- /dev/check-label.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if grep '\\label{.*}' *.tex >/tmp/label-err.out; then 4 | echo "Some of the *.tex files contain the \\label command." 5 | echo "This is unwanted as this leads to invalid links in PDFs." 6 | echo "Use \\hlabel instead." 7 | echo "" 8 | cat /tmp/label-err.out 9 | exit 1 10 | fi 11 | -------------------------------------------------------------------------------- /dev/install-latex.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sudo apt-get install -y --no-install-recommends \ 4 | texlive-fonts-recommended \ 5 | texlive-latex-extra \ 6 | texlive-fonts-extra \ 7 | dvipng \ 8 | texlive-latex-recommended \ 9 | texlive-pstricks 10 | -------------------------------------------------------------------------------- /dev/install-spellcheck.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sudo apt-get install -y --no-install-recommends \ 4 | aspell \ 5 | aspell-en 6 | -------------------------------------------------------------------------------- /dev/release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Trigger new release creation on Github. 4 | # 5 | 6 | set -e 7 | 8 | if (( $# > 1 )); then 9 | echo "usage: `basename $0` [version]" 10 | exit 1 11 | fi 12 | 13 | # Get the latest version (needs curl + jq). 14 | if (( $# == 0 )); then 15 | curl -s https://api.github.com/repos/devnull-cz/unix-linux-prog-in-c/releases/latest | \ 16 | jq .tag_name 17 | exit 0 18 | fi 19 | 20 | VERSION=$1 21 | 22 | if ! echo "$VERSION" | grep '^v[0-9]\+$' >/dev/null; then 23 | echo "version needs to be 'v'" 24 | exit 1 25 | fi 26 | 27 | ver=$( git tag -l "$VERSION" ) 28 | if (( $? != 0 )); then 29 | echo "Cannot determine tag" 30 | exit 1 31 | fi 32 | if [[ $ver == $VERSION ]]; then 33 | echo "Tag $VERSION already exists" 34 | exit 1 35 | fi 36 | 37 | echo "Pulling" 38 | git pull --ff-only 39 | git tag "$VERSION" 40 | echo "Pushing" 41 | git push origin tag "$VERSION" 42 | -------------------------------------------------------------------------------- /docs/cstyle.ms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/docs/cstyle.ms.pdf -------------------------------------------------------------------------------- /docs/syllabus.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Unix programming in C syllabus 5 | 17 | 18 | 19 | 20 |

Unix programming in C syllabus

21 | 22 | 27 | 28 |

1. lecture
29 |

 30 | lecture info
 31 | UNIX intro
 32 | standards
 33 | books
 34 | C
 35 | utilities
 36 | file name conventions
 37 | compiler
 38 | 
39 | 40 |

41 | 42 |

2. lecture
43 |

 44 | linker
 45 | make
 46 | dynamic linker
 47 | API vers ABI
 48 | debuggers
 49 | header files
 50 | main()
 51 | environment variables
 52 | command line arguments processing
 53 | UNIX structure
 54 | processes, threads, programs
 55 | 
56 | 57 |

58 | 59 |

3. lecture
60 |

 61 | system calls
 62 | library calls
 63 | return values
 64 | err API
 65 | file API
 66 | 
67 | 68 |

69 | 70 |

4. lecture
71 |

 72 | /etc/passwd, /etc/group
 73 | access rights
 74 | user/group identification
 75 | set UID
 76 | file access rights
 77 | 
78 | 79 |

80 | 81 |

5. lecture
82 |

 83 | process and kernel memory
 84 | virtual memory
 85 | process states
 86 | process groups
 87 | job control
 88 | sessions
 89 | process identification
 90 | scheduling
 91 | fork()
 92 | exec()
 93 | ELF
 94 | process exit
 95 | pipes
 96 | shared memory
 97 | mmap()
 98 | 
99 | 100 |

101 | 102 |

6. lecture
103 |

104 | dynamic linker API
105 | signal handling
106 | 
107 | 108 |

109 | 110 |

7. lecture
111 |

112 | process synchronization
113 | locking, mutual exclusion
114 | deadlock
115 | lock files
116 | fcntl
117 | System V IPC
118 | System V semaphores
119 | 
120 | 121 |

122 | 123 |

8. lecture
124 |

125 | sockets API
126 | select/poll
127 | 
128 | 129 |

130 | 131 |

9. lecture
132 |

133 | threads
134 | global variables for threads
135 | create/destroy thread
136 | fork and threads
137 | signals and threads
138 | 
139 | 140 |

141 | 142 |

10. lecture
143 |

144 | thread synchronizaion
145 | reentrant functions
146 | non-portable threads API
147 | 
148 | 149 |

150 | 151 |

11. lecture
152 |

153 | 154 |

12. lecture
155 |

156 | 157 |

13. lecture
158 | debugging 159 |

160 | 161 |


162 | Last change: 163 | 166 | 167 | 168 | 169 | -------------------------------------------------------------------------------- /docs/unix-access.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Unix access 5 | 6 | 18 | 19 | 20 | 21 | 22 |

Access to Unix machines at MFF UK

23 | 24 |

You can remotely use some Linux machines in the 25 | labs of Malá 26 | Strana. Those are u-pl1.ms.mff.cuni.cz to 27 | u-pl37, as of writing this. Use the ssh client 28 | shipped with your Unix/Linux/Mac installation to reach those machines, for 29 | example: 30 | 31 |

32 | 	$ ssh your-login@u-pl5.ms.mff.cuni.cz
33 | 
34 | 35 |

If you want a different system, you can install it into a virtual machine, 36 | for example VirtualBox, QEMU, or VMWare. 39 | 40 |

To access Unix machines from a Windows installation, you can use a widely 41 | used SSH client PuTTY. Windows 10 43 | is already shipped with OpenSSH as beta. 44 | 45 |


46 | Lasted changed: 47 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /img/by-nc-sa-small.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/by-nc-sa-small.pdf -------------------------------------------------------------------------------- /img/eps/open_files1-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/eps/open_files1-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/eps/x86-memory-proc-mem-layout-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/eps/x86-memory-proc-mem-layout-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/examples/circle.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-3.0 EPSF-3.0 2 | %%BoundingBox: 64 673 137 746 3 | %%HiResBoundingBox: 64.250000 673.650000 136.400000 745.800000 4 | %................................... 5 | %%Creator: GPL Ghostscript 863 (epswrite) 6 | %%CreationDate: 2008/11/22 16:13:52 7 | %%DocumentData: Clean7Bit 8 | %%LanguageLevel: 2 9 | %%EndComments 10 | %%BeginProlog 11 | % This copyright applies to everything between here and the %%EndProlog: 12 | % Copyright (C) 2008 Artifex Software, Inc. All rights reserved. 13 | %%BeginResource: procset GS_epswrite_2_0_1001 1.001 0 14 | /GS_epswrite_2_0_1001 80 dict dup begin 15 | /PageSize 2 array def/setpagesize{ PageSize aload pop 3 index eq exch 16 | 4 index eq and{ pop pop pop}{ PageSize dup 1 17 | 5 -1 roll put 0 4 -1 roll put dup null eq {false} {dup where} ifelse{ exch get exec} 18 | { pop/setpagedevice where 19 | { pop 1 dict dup /PageSize PageSize put setpagedevice} 20 | { /setpage where{ pop PageSize aload pop pageparams 3 {exch pop} repeat 21 | setpage}if}ifelse}ifelse}ifelse} bind def 22 | /!{bind def}bind def/#{load def}!/N/counttomark # 23 | /rG{3{3 -1 roll 255 div}repeat setrgbcolor}!/G{255 div setgray}!/K{0 G}! 24 | /r6{dup 3 -1 roll rG}!/r5{dup 3 1 roll rG}!/r3{dup rG}! 25 | /w/setlinewidth #/J/setlinecap # 26 | /j/setlinejoin #/M/setmiterlimit #/d/setdash #/i/setflat # 27 | /m/moveto #/l/lineto #/c/rcurveto # 28 | /p{N 2 idiv{N -2 roll rlineto}repeat}! 29 | /P{N 0 gt{N -2 roll moveto p}if}! 30 | /h{p closepath}!/H{P closepath}! 31 | /lx{0 rlineto}!/ly{0 exch rlineto}!/v{0 0 6 2 roll c}!/y{2 copy c}! 32 | /re{4 -2 roll m exch dup lx exch ly neg lx h}! 33 | /^{3 index neg 3 index neg}! 34 | /f{P fill}!/f*{P eofill}!/s{H stroke}!/S{P stroke}! 35 | /q/gsave #/Q/grestore #/rf{re fill}! 36 | /Y{P clip newpath}!/Y*{P eoclip newpath}!/rY{re Y}! 37 | /|={pop exch 4 1 roll 1 array astore cvx 3 array astore cvx exch 1 index def exec}! 38 | /|{exch string readstring |=}! 39 | /+{dup type/nametype eq{2 index 7 add -3 bitshift 2 index mul}if}! 40 | /@/currentfile #/${+ @ |}! 41 | /B{{2 copy string{readstring pop}aload pop 4 array astore cvx 42 | 3 1 roll}repeat pop pop true}! 43 | /Ix{[1 0 0 1 11 -2 roll exch neg exch neg]exch}! 44 | /,{true exch Ix imagemask}!/If{false exch Ix imagemask}!/I{exch Ix image}! 45 | /Ic{exch Ix false 3 colorimage}! 46 | /F{/Columns counttomark 3 add -2 roll/Rows exch/K -1/BlackIs1 true>> 47 | /CCITTFaxDecode filter}!/FX{< xxx.eps 5 | .\" 6 | .sp .2i 7 | .PS 8 | { "Per-process File" "Descriptor Tables" } 9 | { move right 1.7i "System" "File Table" } 10 | { move right 3.4i "System" "Inode Table" } 11 | move down .3i 12 | box ht 0.2i wid .8i "Process A" 13 | FD1: box same 14 | FD2: box same 15 | box same 16 | box ht 0.5i wid .8i "." "." "." 17 | move .2i 18 | box ht 0.2i wid .8i "Process B" 19 | FD3: box same 20 | FD4: box same 21 | FD5: box same 22 | box ht 0.5i wid .8i "." "." "." 23 | move right 1.7i 24 | up 25 | box ht 0.4i wid .8i "..." 26 | RDWR: box same "Count 2" "RDWR" 27 | box same 28 | RDONLY: box same "Count 2" "RDONLY" 29 | box same 30 | box same 31 | WRONLY: box same "Count 1" "WRONLY" 32 | move right 1.7i 33 | down 34 | box same 35 | box same 36 | ETCGRP: box same "Count 1" "/etc/group" 37 | box same 38 | box same 39 | ETCPASSWD: box same "Count 4" "/etc/passwd" 40 | box same "..." 41 | arrow from right of FD1 to left of WRONLY 42 | arrow from right of FD2 to left of RDONLY 43 | arrow from right of FD3 to left of RDONLY 44 | arrow from right of FD4 to left of RDWR 45 | arrow from right of FD5 to left of RDWR 46 | arrow from right of RDWR to left of ETCPASSWD 47 | arrow from right of RDONLY to left of ETCPASSWD 48 | arrow from right of WRONLY to left of ETCGRP 49 | .PE 50 | -------------------------------------------------------------------------------- /img/odg/x86-memory-proc-mem-layout.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/odg/x86-memory-proc-mem-layout.odg -------------------------------------------------------------------------------- /img/tex/access_rights-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/access_rights-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/access_rights.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{prava.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4463,1155)(226,-466) 13 | \put(4096,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$\stackrel{\mbox{ostatni (o)}}{\overbrace{\hphantom{\hspace{1cm}}}}$}% 14 | }}} 15 | \put(3196,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$\stackrel{\mbox{skupina (g)}}{\overbrace{\hphantom{\hspace{1cm}}}}$}% 16 | }}} 17 | \put(2296,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$\stackrel{\mbox{vlastnik (u)}}{\overbrace{\hphantom{\hspace{1cm}}}}$}% 18 | }}} 19 | \put(1711,389){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}4}% 20 | }}} 21 | \put(1891,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}2}% 22 | }}} 23 | \put(2071, 29){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}1}% 24 | }}} 25 | \put(541, 29){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}suid}% 26 | }}} 27 | \put(721,-151){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sgid}% 28 | }}} 29 | \put(901,-331){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sticky}% 30 | }}} 31 | \put(226,389){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}nejvyssi bit}% 32 | }}} 33 | \put(2341,-106){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}r}% 34 | }}} 35 | \put(2521,-286){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}w}% 36 | }}} 37 | \put(2701,-466){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}x}% 38 | }}} 39 | \end{picture} 40 | -------------------------------------------------------------------------------- /img/tex/access_rights.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/access_rights}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4463,1155)(226,-466) 13 | \put(4096,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$\stackrel{\mbox{others (o)}}{\overbrace{\hphantom{\hspace{1cm}}}}$}% 14 | }}} 15 | \put(3196,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$\stackrel{\mbox{group (g)}}{\overbrace{\hphantom{\hspace{1cm}}}}$}% 16 | }}} 17 | \put(2296,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$\stackrel{\mbox{owner (u)}}{\overbrace{\hphantom{\hspace{1cm}}}}$}% 18 | }}} 19 | \put(1711,389){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}4}% 20 | }}} 21 | \put(1891,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}2}% 22 | }}} 23 | \put(2071, 29){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}1}% 24 | }}} 25 | \put(541, 29){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}SUID}% 26 | }}} 27 | \put(721,-151){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}SGID}% 28 | }}} 29 | \put(901,-331){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sticky}% 30 | }}} 31 | \put(226,389){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}highest bit}% 32 | }}} 33 | \put(2341,-106){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}r}% 34 | }}} 35 | \put(2521,-286){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}w}% 36 | }}} 37 | \put(2701,-466){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}x}% 38 | }}} 39 | \end{picture} 40 | -------------------------------------------------------------------------------- /img/tex/assembler-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/assembler-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/assembler.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/assembler}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4749,2112)(-11,-1513) 13 | \put(2671,-893){\rotatebox{90.0}{\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}assembler}% 14 | }}}} 15 | \put(3106,-196){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}457f 464c 0101 0001}% 16 | }}} 17 | \put(3106,-376){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}0000 0000 0000 0000}% 18 | }}} 19 | \put(3106,-556){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}0001 0003 0001 0000}% 20 | }}} 21 | \put(3106,-736){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}0000 0000 0000 0000}% 22 | }}} 23 | \put(3106,-916){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}00ec 0000 0000 0000}% 24 | }}} 25 | \put(3106,-1096){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}0034 0000 0000 0028}% 26 | }}} 27 | \put(856,479){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main.s}% 28 | }}} 29 | \put( 91,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}.globl main}% 30 | }}} 31 | \put( 91, 29){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~.type main, @function}% 32 | }}} 33 | \put( 91,-121){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main:}% 34 | }}} 35 | \put( 91,-286){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~pushhl \%ebp}% 36 | }}} 37 | \put( 91,-451){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~movl \%esp, \%ebp}% 38 | }}} 39 | \put( 91,-616){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~pushl \$.LC0}% 40 | }}} 41 | \put( 91,-781){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~call puts}% 42 | }}} 43 | \put( 91,-946){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~addl \$4, \%esp}% 44 | }}} 45 | \put( 91,-1111){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}.L1:}% 46 | }}} 47 | \put( 91,-1276){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~leave}% 48 | }}} 49 | \put( 91,-1441){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~ret}% 50 | }}} 51 | \put(3691, 74){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main.o}% 52 | }}} 53 | \end{picture} 54 | -------------------------------------------------------------------------------- /img/tex/classic_os.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{classic_os.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(2904,2720)(979,-2143) 13 | \put(1831,-1321){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sprava procesoru}% 14 | }}} 15 | \put(1973,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}spravapameti}% 16 | }}} 17 | \put(1898,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sprava souboru}% 18 | }}} 19 | \put(1688,-241){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}rozhrani volani sluzeb}% 20 | }}} 21 | \put(1793,-781){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sprava I/O zarizeni}% 22 | }}} 23 | \put(2168,389){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}aplikace}% 24 | }}} 25 | \put(2108,-1591){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}hardware}% 26 | }}} 27 | \end{picture} 28 | -------------------------------------------------------------------------------- /img/tex/classic_os.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/classic_os.tex -------------------------------------------------------------------------------- /img/tex/compilation_process-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/compilation_process-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/compiler-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/compiler-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/compiler.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{kompilator.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4704,2112)(-11,-1513) 13 | \put(2566,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}.globl main}% 14 | }}} 15 | \put(2566, 29){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~.type main, @function}% 16 | }}} 17 | \put(2566,-121){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main:}% 18 | }}} 19 | \put(2566,-286){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~pushhl \%ebp}% 20 | }}} 21 | \put(2566,-451){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~movl \%esp, \%ebp}% 22 | }}} 23 | \put(2566,-616){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~pushl \$.LC0}% 24 | }}} 25 | \put(2566,-781){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~call puts}% 26 | }}} 27 | \put(2566,-946){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~addl \$4, \%esp}% 28 | }}} 29 | \put(2566,-1111){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}.L1:}% 30 | }}} 31 | \put(2566,-1276){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~leave}% 32 | }}} 33 | \put(2566,-1441){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~ret}% 34 | }}} 35 | \put(2116,-916){\rotatebox{90.0}{\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}kompilator}% 36 | }}}} 37 | \put(3331,479){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main.s}% 38 | }}} 39 | \put(136, 29){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}int puts(char *s);}% 40 | }}} 41 | \put(136,-331){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}extern int var\_{}a;}% 42 | }}} 43 | \put(136,-691){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main()}% 44 | }}} 45 | \put(136,-871){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\{}% 46 | }}} 47 | \put(136,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~puts("Ahoj");}% 48 | }}} 49 | \put(136,-1231){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\}}% 50 | }}} 51 | \put(586,344){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main.i}% 52 | }}} 53 | \end{picture} 54 | -------------------------------------------------------------------------------- /img/tex/compiler.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/compiler}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4704,2112)(-11,-1513) 13 | \put(2566,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}.globl main}% 14 | }}} 15 | \put(2566, 29){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~.type main, @function}% 16 | }}} 17 | \put(2566,-121){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main:}% 18 | }}} 19 | \put(2566,-286){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~pushhl \%ebp}% 20 | }}} 21 | \put(2566,-451){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~movl \%esp, \%ebp}% 22 | }}} 23 | \put(2566,-616){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~pushl \$.LC0}% 24 | }}} 25 | \put(2566,-781){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~call puts}% 26 | }}} 27 | \put(2566,-946){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~addl \$4, \%esp}% 28 | }}} 29 | \put(2566,-1111){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}.L1:}% 30 | }}} 31 | \put(2566,-1276){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~leave}% 32 | }}} 33 | \put(2566,-1441){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~~~ret}% 34 | }}} 35 | \put(2116,-916){\rotatebox{90.0}{\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}compiler}% 36 | }}}} 37 | \put(3331,479){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main.s}% 38 | }}} 39 | \put(136, 29){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}int puts(char *s);}% 40 | }}} 41 | \put(136,-331){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}extern int var\_{}a;}% 42 | }}} 43 | \put(136,-691){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main()}% 44 | }}} 45 | \put(136,-871){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\{}% 46 | }}} 47 | \put(136,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~puts("hello");}% 48 | }}} 49 | \put(136,-1231){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\}}% 50 | }}} 51 | \put(586,344){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main.i}% 52 | }}} 53 | \end{picture} 54 | -------------------------------------------------------------------------------- /img/tex/deadlock-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/deadlock-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/deadlock.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-2.0 EPSF-2.0 2 | %%Title: deadlock.pstex 3 | %%Creator: fig2dev Version 3.2 Patchlevel 3c 4 | %%CreationDate: Fri Aug 31 13:29:14 2001 5 | %%For: beran@omega.ms.mff.cuni.cz (Martin Beran) 6 | %%BoundingBox: 0 0 295 100 7 | %%Magnification: 1.0000 8 | %%EndComments 9 | /$F2psDict 200 dict def 10 | $F2psDict begin 11 | $F2psDict /mtrx matrix put 12 | /col-1 {0 setgray} bind def 13 | /col0 {0.000 0.000 0.000 srgb} bind def 14 | /col1 {0.000 0.000 1.000 srgb} bind def 15 | /col2 {0.000 1.000 0.000 srgb} bind def 16 | /col3 {0.000 1.000 1.000 srgb} bind def 17 | /col4 {1.000 0.000 0.000 srgb} bind def 18 | /col5 {1.000 0.000 1.000 srgb} bind def 19 | /col6 {1.000 1.000 0.000 srgb} bind def 20 | /col7 {1.000 1.000 1.000 srgb} bind def 21 | /col8 {0.000 0.000 0.560 srgb} bind def 22 | /col9 {0.000 0.000 0.690 srgb} bind def 23 | /col10 {0.000 0.000 0.820 srgb} bind def 24 | /col11 {0.530 0.810 1.000 srgb} bind def 25 | /col12 {0.000 0.560 0.000 srgb} bind def 26 | /col13 {0.000 0.690 0.000 srgb} bind def 27 | /col14 {0.000 0.820 0.000 srgb} bind def 28 | /col15 {0.000 0.560 0.560 srgb} bind def 29 | /col16 {0.000 0.690 0.690 srgb} bind def 30 | /col17 {0.000 0.820 0.820 srgb} bind def 31 | /col18 {0.560 0.000 0.000 srgb} bind def 32 | /col19 {0.690 0.000 0.000 srgb} bind def 33 | /col20 {0.820 0.000 0.000 srgb} bind def 34 | /col21 {0.560 0.000 0.560 srgb} bind def 35 | /col22 {0.690 0.000 0.690 srgb} bind def 36 | /col23 {0.820 0.000 0.820 srgb} bind def 37 | /col24 {0.500 0.190 0.000 srgb} bind def 38 | /col25 {0.630 0.250 0.000 srgb} bind def 39 | /col26 {0.750 0.380 0.000 srgb} bind def 40 | /col27 {1.000 0.500 0.500 srgb} bind def 41 | /col28 {1.000 0.630 0.630 srgb} bind def 42 | /col29 {1.000 0.750 0.750 srgb} bind def 43 | /col30 {1.000 0.880 0.880 srgb} bind def 44 | /col31 {1.000 0.840 0.000 srgb} bind def 45 | 46 | end 47 | save 48 | newpath 0 100 moveto 0 0 lineto 295 0 lineto 295 100 lineto closepath clip newpath 49 | -7.0 100.0 translate 50 | 1 -1 scale 51 | 52 | /cp {closepath} bind def 53 | /ef {eofill} bind def 54 | /gr {grestore} bind def 55 | /gs {gsave} bind def 56 | /sa {save} bind def 57 | /rs {restore} bind def 58 | /l {lineto} bind def 59 | /m {moveto} bind def 60 | /rm {rmoveto} bind def 61 | /n {newpath} bind def 62 | /s {stroke} bind def 63 | /sh {show} bind def 64 | /slc {setlinecap} bind def 65 | /slj {setlinejoin} bind def 66 | /slw {setlinewidth} bind def 67 | /srgb {setrgbcolor} bind def 68 | /rot {rotate} bind def 69 | /sc {scale} bind def 70 | /sd {setdash} bind def 71 | /ff {findfont} bind def 72 | /sf {setfont} bind def 73 | /scf {scalefont} bind def 74 | /sw {stringwidth} bind def 75 | /tr {translate} bind def 76 | /tnt {dup dup currentrgbcolor 77 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add 78 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add 79 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} 80 | bind def 81 | /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 82 | 4 -2 roll mul srgb} bind def 83 | /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def 84 | /$F2psEnd {$F2psEnteredState restore end} def 85 | 86 | $F2psBegin 87 | %%Page: 1 1 88 | 10 setmiterlimit 89 | 0.06299 0.06299 sc 90 | % 91 | % Fig objects follow 92 | % 93 | % Polyline 94 | 7.500 slw 95 | n 135 225 m 2340 225 l 2340 1575 l 135 1575 l 96 | cp gs col-1 s gr 97 | % Polyline 98 | n 2565 225 m 4770 225 l 4770 1575 l 2565 1575 l 99 | cp gs col-1 s gr 100 | % Polyline 101 | n 135 900 m 4770 900 l 4770 1080 l 135 1080 l 102 | cp gs col7 0.75 shd ef gr gs col-1 s gr 103 | $F2psEnd 104 | rs 105 | -------------------------------------------------------------------------------- /img/tex/deadlock.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{deadlock.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4659,1572)(124,-748) 13 | \put(181,704){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}p1}}} 14 | \put(189,479){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}lock(lck1);}}} 15 | \put(1171,479){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}/* OK */}}} 16 | \put(1171,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}/* Ceka na p2 */}}} 17 | \put(189,149){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}lock(lck2);}}} 18 | \put(189,-346){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}use(res1, res2);}}} 19 | \put(189,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}unlock(lck2);}}} 20 | \put(189,-676){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}unlock(lck1);}}} 21 | \put(2161,-196){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}Deadlock}}} 22 | \put(2611,-16){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}lock(lck1);}}} 23 | \put(2611,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}lock(lck2);}}} 24 | \put(3601,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}/* OK */}}} 25 | \put(3601,-16){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}/* Ceka na p1 */}}} 26 | \put(2611,-346){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}use(res1, res2);}}} 27 | \put(2611,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}unlock(lck2);}}} 28 | \put(2611,-676){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}unlock(lck1);}}} 29 | \put(2611,704){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}p2}}} 30 | \end{picture} 31 | -------------------------------------------------------------------------------- /img/tex/deadlock.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/deadlock}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4659,1572)(124,-748) 13 | \put(181,704){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}p1}}} 14 | \put(189,479){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}lock(lck1);}}} 15 | \put(1171,479){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}/* OK */}}} 16 | \put(1171,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}/* waiting for p2 */}}} 17 | \put(189,149){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}lock(lck2);}}} 18 | \put(189,-346){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}use(res1, res2);}}} 19 | \put(189,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}unlock(lck2);}}} 20 | \put(189,-676){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}unlock(lck1);}}} 21 | \put(2161,-196){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}Deadlock}}} 22 | \put(2611,-16){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}lock(lck1);}}} 23 | \put(2611,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}lock(lck2);}}} 24 | \put(3601,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}/* OK */}}} 25 | \put(3601,-16){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}/* waiting for p1 */}}} 26 | \put(2611,-346){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}use(res1, res2);}}} 27 | \put(2611,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}unlock(lck2);}}} 28 | \put(2611,-676){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}unlock(lck1);}}} 29 | \put(2611,704){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}p2}}} 30 | \end{picture} 31 | -------------------------------------------------------------------------------- /img/tex/environ-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/environ-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/environ.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/environ}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4107,1149)(361,-1648) 13 | \put(3016,-1276){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$"$DISPLAY=:0$"$}% 14 | }}} 15 | \put(3016,-1546){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$"$LOGNAME=beran$"$}% 16 | }}} 17 | \put(3016,-1006){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$"$SHELL=/bin/bash$"$}% 18 | }}} 19 | \put(856,-1186){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}environ[1]}% 20 | }}} 21 | \put(856,-1006){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}environ[0]}% 22 | }}} 23 | \put(856,-1366){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}environ[2]}% 24 | }}} 25 | \put(856,-1546){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}environ[3]}% 26 | }}} 27 | \put(361,-646){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}environ}% 28 | }}} 29 | \end{picture} 30 | -------------------------------------------------------------------------------- /img/tex/fork-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/fork-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/fork.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{fork.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4705,2775)(33,-2008) 13 | \put(226,-1231){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sw2}% 14 | }}} 15 | \put(2701,-1231){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sw3}% 16 | }}} 17 | \put(181,-1006){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}getpid()==1234, pid==2345}% 18 | }}} 19 | \put(1441,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}getpid() == 1234}% 20 | }}} 21 | \put(2656,-1006){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}getpid()==2345, pid==0}% 22 | }}} 23 | \put(2791,-691){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}dite (novy proces)}% 24 | }}} 25 | \put(2071,-691){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}rodic (pokracuje)}% 26 | }}} 27 | \put(1486,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sw1}% 28 | }}} 29 | \end{picture} 30 | -------------------------------------------------------------------------------- /img/tex/fork.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/fork}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4705,2775)(33,-2008) 13 | \put(226,-1575){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{8.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0} 14 | \begin{minipage}{6.0cm}switch(pid = fork()) \{\\ 15 | \mbox{}\ \ \ case -1: /* Error */\\ 16 | \mbox{}\ \ \ case\ \ 0: /* Child\ */\\ 17 | \mbox{}\ \ \ \emprg{default: /* Parent */}\\ 18 | \}\end{minipage}}% 19 | }}} 20 | \put(2701,-1575){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{8.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}% 21 | \begin{minipage}{6.0cm}switch(pid = fork()) \{\\ 22 | \mbox{}\ \ \ case -1: /* Error */\\ 23 | \mbox{}\ \ \ \emprg{case\ \ 0: /* Child\ */}\\ 24 | \mbox{}\ \ \ default: /* Parent */\\ 25 | \}\end{minipage}}% 26 | }}} 27 | \put(181,-1006){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}getpid()==1234, pid==2345}% 28 | }}} 29 | \put(1441,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}getpid() == 1234}% 30 | }}} 31 | \put(2656,-1006){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}getpid()==2345, pid==0}% 32 | }}} 33 | \put(2791,-691){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}child (new process)}% 34 | }}} 35 | \put(2071,-691){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}parent (continues)}% 36 | }}} 37 | \put(1486,90){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{8.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0} 38 | \begin{minipage}{4.5cm}switch(\emprg{pid = fork()}) \{\\ 39 | \mbox{}\ \ \ case -1: /* Error */\\ 40 | \mbox{}\ \ \ case\ \ 0: /* Child\ */\\ 41 | \mbox{}\ \ \ default: /* Parent */\\ 42 | \}\end{minipage}}% 43 | }}} 44 | \end{picture} 45 | -------------------------------------------------------------------------------- /img/tex/fork_wait-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/fork_wait-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/fork_wait.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{fork_wait.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4839,2814)(-101,-2053) 13 | \put(1216,614){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}int status;}% 14 | }}} 15 | \put(1216,449){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}pid = \emprg{fork()}}% 16 | }}} 17 | \put(2116,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}dite}% 18 | }}} 19 | \put(1306,119){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}rodic}% 20 | }}} 21 | \put(2026,-1276){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}int main(int argc, char *argv[])}% 22 | }}} 23 | \put(2026,-1456){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\{}% 24 | }}} 25 | \put(2026,-1636){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ ...}% 26 | }}} 27 | \put(2026,-1801){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ \emprg{exit}(result);}% 28 | }}} 29 | \put(2026,-1966){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\}}% 30 | }}} 31 | \put(2026,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/bin/ls}% 32 | }}} 33 | \put(2026,-196){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}else}% 34 | }}} 35 | \put(2026,-361){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ \emprg{execl}("/bin/ls",}% 36 | }}} 37 | \put(2026,-556){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ \ \ \ \ \ \ "/bin/ls", "/", NULL);}% 38 | }}} 39 | \put(-44,-196){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}if(pid > 0)}% 40 | }}} 41 | \put(-44,-1951){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ \emprg{wait}(\&status);}% 42 | }}} 43 | \end{picture} 44 | -------------------------------------------------------------------------------- /img/tex/fork_wait.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/fork_wait}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4839,2814)(-101,-2053) 13 | \put(1216,614){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}int status;}% 14 | }}} 15 | \put(1216,449){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}pid = \emprg{fork()}}% 16 | }}} 17 | \put(2116,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}child}% 18 | }}} 19 | \put(1306,119){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}parent}% 20 | }}} 21 | \put(2026,-1276){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}int main(int argc, char *argv[])}% 22 | }}} 23 | \put(2026,-1456){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\{}% 24 | }}} 25 | \put(2026,-1636){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ ...}% 26 | }}} 27 | \put(2026,-1801){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ \emprg{exit}(result);}% 28 | }}} 29 | \put(2026,-1966){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\}}% 30 | }}} 31 | \put(2026,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/bin/ls}% 32 | }}} 33 | \put(2026,-196){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}else}% 34 | }}} 35 | \put(2026,-361){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ \emprg{execl}("/bin/ls",}% 36 | }}} 37 | \put(2026,-556){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ \ \ \ \ \ \ "ls", "/", NULL);}% 38 | }}} 39 | \put(-44,-196){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}if(pid > 0)}% 40 | }}} 41 | \put(-44,-1951){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ \emprg{wait}(\&status);}% 42 | }}} 43 | \end{picture} 44 | -------------------------------------------------------------------------------- /img/tex/fstree-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/fstree-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/fstree.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/fstree}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4029,2544)(79,-1873) 13 | \put(226,-331){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}etc}% 14 | }}} 15 | \put(946,-331){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}usr}% 16 | }}} 17 | \put(1846,-601){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}tty}% 18 | }}} 19 | \put(2296,-196){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}dev}% 20 | }}} 21 | \put(2341,479){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/}% 22 | }}} 23 | \put(3331,-331){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}home}% 24 | }}} 25 | \end{picture} 26 | -------------------------------------------------------------------------------- /img/tex/init.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{init.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4648,2623)(34,-1907) 13 | \put(3061,-61){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/etc/init.d/autofs}% 14 | }}} 15 | \put(3061,-331){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}case \$1 in}% 16 | }}} 17 | \put(3061,-496){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\emph{start})}% 18 | }}} 19 | \put(3061,-661){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ ... ;;}% 20 | }}} 21 | \put(3061,-826){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\emph{stop})}% 22 | }}} 23 | \put(3061,-991){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ ... ;;}% 24 | }}} 25 | \put(3061,-1156){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\emph{*})}% 26 | }}} 27 | \put(3061,-1321){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ echo "usage: " \bs}% 28 | }}} 29 | \put(3061,-1486){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ "\$0 (start|stop)"}% 30 | }}} 31 | \put(3061,-1651){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ ;;}% 32 | }}} 33 | \put(3061,-1816){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}esac}% 34 | }}} 35 | \put( 91,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}init 2}% 36 | }}} 37 | \put(361,-61){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/etc/rc2.d/K08autofs stop}% 38 | }}} 39 | \put(361,-331){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/etc/rc2.d/K20nfs stop}% 40 | }}} 41 | \put(361,-601){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/etc/rc2.d/K89portmap stop}% 42 | }}} 43 | \put(361,-871){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/etc/rc2.d/S10network start}% 44 | }}} 45 | \put(361,-1141){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/etc/rc2.d/S21random start}% 46 | }}} 47 | \put(361,-1411){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/etc/rc2.d/S30syslog start}% 48 | }}} 49 | \put( 91,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/etc/rc2}% 50 | }}} 51 | \end{picture} 52 | -------------------------------------------------------------------------------- /img/tex/links-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/links-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/links.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{linky.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4557,2022)(46,-1333) 13 | \put(721,-646){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}0}% 14 | }}} 15 | \put(2026,-646){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}20}% 16 | }}} 17 | \put(3466,-646){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}31}% 18 | }}} 19 | \put(3241,-1096){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}../etc/passwd}% 20 | }}} 21 | \put(631,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}password}% 22 | }}} 23 | \put(1486,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}20}% 24 | }}} 25 | \put(631,-151){\makebox(0,0)[lb]{\smash{\SetFigFont{14}{16.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 26 | }}} 27 | \put(2926,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}20}% 28 | }}} 29 | \put(2071,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}passwd}% 30 | }}} 31 | \put(2071,-151){\makebox(0,0)[lb]{\smash{\SetFigFont{14}{16.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 32 | }}} 33 | \put(4366,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}31}% 34 | }}} 35 | \put(3511,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}passwd}% 36 | }}} 37 | \put(3511,-151){\makebox(0,0)[lb]{\smash{\SetFigFont{14}{16.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 38 | }}} 39 | \put(1441,-646){\makebox(0,0)[lb]{\smash{\SetFigFont{14}{16.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 40 | }}} 41 | \put(2926,-646){\makebox(0,0)[lb]{\smash{\SetFigFont{14}{16.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 42 | }}} 43 | \put(1711,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}root:x:0:...}% 44 | }}} 45 | \put(811,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}hard link}% 46 | }}} 47 | \put(901,389){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/var}% 48 | }}} 49 | \put(2251,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}original}% 50 | }}} 51 | \put(2341,389){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/etc}% 52 | }}} 53 | \put(3466,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}symbolicky link}% 54 | }}} 55 | \put(3781,389){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/usr}% 56 | }}} 57 | \put( 46,-646){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}i-nodes}% 58 | }}} 59 | \put( 46,-1141){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}data}% 60 | }}} 61 | \end{picture} 62 | -------------------------------------------------------------------------------- /img/tex/links.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/links}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4557,2022)(46,-1333) 13 | \put(721,-646){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}0}% 14 | }}} 15 | \put(2026,-646){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}20}% 16 | }}} 17 | \put(3466,-646){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}31}% 18 | }}} 19 | \put(3241,-1096){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}../etc/passwd}% 20 | }}} 21 | \put(631,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}password}% 22 | }}} 23 | \put(1486,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}20}% 24 | }}} 25 | \put(631,-151){\makebox(0,0)[lb]{\smash{\SetFigFont{14}{16.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 26 | }}} 27 | \put(2926,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}20}% 28 | }}} 29 | \put(2071,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}passwd}% 30 | }}} 31 | \put(2071,-151){\makebox(0,0)[lb]{\smash{\SetFigFont{14}{16.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 32 | }}} 33 | \put(4366,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}31}% 34 | }}} 35 | \put(3511,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}passwd}% 36 | }}} 37 | \put(3511,-151){\makebox(0,0)[lb]{\smash{\SetFigFont{14}{16.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 38 | }}} 39 | \put(1441,-646){\makebox(0,0)[lb]{\smash{\SetFigFont{14}{16.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 40 | }}} 41 | \put(2926,-646){\makebox(0,0)[lb]{\smash{\SetFigFont{14}{16.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 42 | }}} 43 | \put(1711,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}root:x:0:...}% 44 | }}} 45 | \put(811,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}hard link}% 46 | }}} 47 | \put(901,389){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/var}% 48 | }}} 49 | \put(2251,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}original}% 50 | }}} 51 | \put(2341,389){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/etc}% 52 | }}} 53 | \put(3466,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}symbolic link}% 54 | }}} 55 | \put(3781,389){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/usr}% 56 | }}} 57 | \put( 46,-646){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}i-nodes}% 58 | }}} 59 | \put( 46,-1141){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}data}% 60 | }}} 61 | \end{picture} 62 | -------------------------------------------------------------------------------- /img/tex/login.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{login.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4074,297)(124,107) 13 | \put(181,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}init}% 14 | }}} 15 | \put(721,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fork+exec}% 16 | }}} 17 | \put(1621,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}getty}% 18 | }}} 19 | \put(2251,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}exec}% 20 | }}} 21 | \put(2791,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}login}% 22 | }}} 23 | \put(3421,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}exec}% 24 | }}} 25 | \put(3961,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sh}% 26 | }}} 27 | \end{picture} 28 | -------------------------------------------------------------------------------- /img/tex/main-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/main-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/main.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/main}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(3984,879)(79,-1783) 13 | \put(226,-1096){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}ls -l /}% 14 | }}} 15 | \put(1576,-1096){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}argv[0]}% 16 | }}} 17 | \put(1576,-1276){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}argv[1]}% 18 | }}} 19 | \put(1576,-1456){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}argv[2]}% 20 | }}} 21 | \put(1576,-1636){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}argv[3]}% 22 | }}} 23 | \put(3646,-1096){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$"$ls$"$}% 24 | }}} 25 | \put(3646,-1366){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$"$-l$"$}% 26 | }}} 27 | \put(136,-1456){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}argc}% 28 | }}} 29 | \put(136,-1636){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}argv}% 30 | }}} 31 | \put(3691,-1636){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$"$/$"$}% 32 | }}} 33 | \end{picture} 34 | -------------------------------------------------------------------------------- /img/tex/mem_kernel-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/mem_kernel-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/mem_kernel.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{mem_kernel.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(2544,2499)(1339,-1873) 13 | \put(2281,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}text jadra}% 14 | }}} 15 | \put(2071,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}data a bss jadra}% 16 | }}} 17 | \put(1681,-76){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}(tabulky, promenne, apod.)}% 18 | }}} 19 | \put(2138,-466){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}struktura user}% 20 | }}} 21 | \put(2041,-661){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}beziciho procesu}% 22 | }}} 23 | \put(1666,-1411){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}extern struct user u;}% 24 | }}} 25 | \put(2123,-1681){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}zasobnik jadra}% 26 | }}} 27 | \end{picture} 28 | -------------------------------------------------------------------------------- /img/tex/mem_kernel.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/mem_kernel}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(2544,2499)(1339,-1873) 13 | \put(2281,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}kernel text}% 14 | }}} 15 | \put(2071,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}kernel data and bss}% 16 | }}} 17 | \put(1681,-76){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}(fd tables, variables, etc.)}% 18 | }}} 19 | \put(2138,-466){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\texttt{user} struct}% 20 | }}} 21 | \put(2041,-661){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}of running process}% 22 | }}} 23 | \put(1666,-1411){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}extern struct user u;}% 24 | }}} 25 | \put(2123,-1681){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}kernel stack}% 26 | }}} 27 | \end{picture} 28 | -------------------------------------------------------------------------------- /img/tex/mem_user-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/mem_user-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/mem_user.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{mem_user.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4545,2184)(181,-1423) 13 | \put(2011,-1366){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}oblast user}% 14 | }}} 15 | \put(2086,-1186){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}zasobnik}% 16 | }}} 17 | \put(2266,254){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}bss}% 18 | }}} 19 | \put(2236,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}data}% 20 | }}} 21 | \put(2243,614){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}text}% 22 | }}} 23 | \put(181,-1366){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\parbox{2.8cm}{nelze adresovat\\uziv. programem}$\left\{\vphantom{X}\right.$}% 24 | }}} 25 | \put(4726,-286){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$\left.\vphantom{\raisebox{-2.2cm}{\frame{\vspace*{4.4cm}}}}\right\}$\parbox{3cm}{adresovatelne\\uziv. programem}}% 26 | }}} 27 | \end{picture} 28 | -------------------------------------------------------------------------------- /img/tex/mem_user.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/mem_user}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4545,2184)(181,-1423) 13 | \put(2011,-1366){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\texttt{user} area}% 14 | }}} 15 | \put(2086,-1186){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}stack}% 16 | }}} 17 | \put(2266,254){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}bss}% 18 | }}} 19 | \put(2236,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}data}% 20 | }}} 21 | \put(2243,614){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}text}% 22 | }}} 23 | \put(181,-1366){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\parbox{2.8cm}{not addressable\\from userspace}$\left\{\vphantom{X}\right.$}% 24 | }}} 25 | \put(4726,-286){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$\left.\vphantom{\raisebox{-2.2cm}{\frame{\vspace*{4.4cm}}}}\right\}$\parbox{3cm}{addressable\\by the program}}% 26 | }}} 27 | \end{picture} 28 | -------------------------------------------------------------------------------- /img/tex/memory_segments.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/segments}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4467,2595)(79,-2053) 13 | \put(2791,344){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read only}% 14 | }}} 15 | \put(2881,164){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}shared}% 16 | }}} 17 | \put(181,-826){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}struct proc}% 18 | }}} 19 | \put(1171,254){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}struct as}% 20 | }}} 21 | \put(2071,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}a\_segs}% 22 | }}} 23 | \put(2971,-106){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}s\_prev}% 24 | }}} 25 | \put(2881,-556){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}private}% 26 | }}} 27 | \put(2791,-1096){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read/write}% 28 | }}} 29 | \put(2881,-1276){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}private}% 30 | }}} 31 | \put(2791,-1816){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read/write}% 32 | }}} 33 | \put(2881,-1996){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}shared}% 34 | }}} 35 | \put(2791,-376){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read/write}% 36 | }}} 37 | \put(3241,-106){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}s\_next}% 38 | }}} 39 | \put(3691,254){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}text}% 40 | }}} 41 | \put(3691,-466){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}data}% 42 | }}} 43 | \put(3691,-1186){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}stack}% 44 | }}} 45 | \put(3691,-1906){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}shared memory}% 46 | }}} 47 | \put(2206,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}s\_as}% 48 | }}} 49 | \put(4546,-1726){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0} }% 50 | }}} 51 | \end{picture} 52 | -------------------------------------------------------------------------------- /img/tex/mount-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/mount-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/nav_dir-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/nav_dir-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/nav_dir.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/nav_dir}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4602,2856)(91,-2008) 13 | \put( 91,-871){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}data}% 14 | }}} 15 | \put(541,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}i-node 2}% 16 | }}} 17 | \put(1981,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}i-node 37}% 18 | }}} 19 | \put(3421,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}i-node 71}% 20 | }}} 21 | \put(3511,-961){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}root:x:0:...}% 22 | }}} 23 | \put(1576,-916){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}2}% 24 | }}} 25 | \put(1576,-1096){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}2}% 26 | }}} 27 | \put(1531,-1546){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}37}% 28 | }}} 29 | \put(631,-1546){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}etc}% 30 | }}} 31 | \put(2971,-916){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}37}% 32 | }}} 33 | \put(3016,-1096){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}2}% 34 | }}} 35 | \put(2971,-1546){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}71}% 36 | }}} 37 | \put(2071,-1546){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}passwd}% 38 | }}} 39 | \put(2071,-1096){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}..}% 40 | }}} 41 | \put(631,-1096){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}..}% 42 | }}} 43 | \put(631,-916){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}.}% 44 | }}} 45 | \put(2071,-916){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}.}% 46 | }}} 47 | \put( 91,704){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}i-nodes}% 48 | }}} 49 | \put(1988,704){\makebox(0,0)[lb]{\smash{\SetFigFont{12}{14.4}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/etc/passwd}% 50 | }}} 51 | \end{picture} 52 | -------------------------------------------------------------------------------- /img/tex/open_files-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/open_files-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/partitions-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/partitions-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/partitions.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/partitions}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(3878,1207)(271,-1823) 13 | \put(271,-781){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/}% 14 | }}} 15 | \put(4096,-781){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/usr}% 16 | }}} 17 | \put(1396,-736){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/home}% 18 | }}} 19 | \put(653,-1411){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}disk 1}% 20 | }}} 21 | \put(2093,-1411){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}disk 2}% 22 | }}} 23 | \put(3173,-1411){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}disk 3}% 24 | }}} 25 | \end{picture} 26 | -------------------------------------------------------------------------------- /img/tex/pipe-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/pipe-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/preprocesor-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/preprocesor-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/preprocesor.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/preprocesor}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4704,2562)(-11,-1828) 13 | \put(2348,-1066){\rotatebox{90.0}{\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}preprocessor}% 14 | }}}} 15 | \put( 91,614){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main.c}% 16 | }}} 17 | \put( 91,389){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\#include $<$stdio.h$>$}% 18 | }}} 19 | \put( 91,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\#include $"$mydef.h$"$}% 20 | }}} 21 | \put( 91, 29){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main()}% 22 | }}} 23 | \put( 91,-151){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\{}% 24 | }}} 25 | \put( 91,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\}}% 26 | }}} 27 | \put( 91,-826){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/usr/include/stdio.h}% 28 | }}} 29 | \put( 91,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}int puts(char *s);}% 30 | }}} 31 | \put( 91,-1321){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}mydef.h}% 32 | }}} 33 | \put( 91,-1546){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\#define MSG $"$hello$"$}% 34 | }}} 35 | \put( 91,-331){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~puts(MSG);}% 36 | }}} 37 | \put(3151,-241){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}int puts(char *s);}% 38 | }}} 39 | \put(3151,-601){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}extern int var\_{}a;}% 40 | }}} 41 | \put(3151,-961){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main()}% 42 | }}} 43 | \put(3151,-1141){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\{}% 44 | }}} 45 | \put(3151,-1321){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}~~puts("hello");}% 46 | }}} 47 | \put(3151,-1501){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\}}% 48 | }}} 49 | \put(3601, 74){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}main.i}% 50 | }}} 51 | \put( 91,-1726){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}extern int var\_{}a;}% 52 | }}} 53 | \end{picture} 54 | -------------------------------------------------------------------------------- /img/tex/process_states-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/process_states-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/pseudoterm.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{pseudoterm.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4524,1869)(34,-1063) 13 | \put( 91,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}mfd=\emprg{open}("/dev/ptmx", ...);}% 14 | }}} 15 | \put( 91,494){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sname=\emprg{ptsname}(mfd);}% 16 | }}} 17 | \put( 91,329){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\emprg{grantpt}(mfd);}% 18 | }}} 19 | \put( 91,164){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\emprg{unlockpt}(mfd);}% 20 | }}} 21 | \put( 91,-16){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fork();}% 22 | }}} 23 | \put(2431,-331){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sfd=\emprg{open}(sname, ...);}% 24 | }}} 25 | \put(2431,-676){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}dup2(sfd,1); dup2(sfd,2);}% 26 | }}} 27 | \put(2431,-841){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(sfd);}% 28 | }}} 29 | \put(2431,-1006){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}execl("/bin/sh", ...);}% 30 | }}} 31 | \put(2431,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(mfd); dup2(sfd,0);}% 32 | }}} 33 | \put( 91,-376){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/* Emulace terminalu}% 34 | }}} 35 | \put( 91,-556){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0} na zarizeni mfd */}% 36 | }}} 37 | \end{picture} 38 | -------------------------------------------------------------------------------- /img/tex/pseudoterm.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/pseudoterm.tex -------------------------------------------------------------------------------- /img/tex/s5-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/s5-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/s5.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{s5.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4467,2832)(46,-2053) 13 | \put(3331,164){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}0}% 14 | }}} 15 | \put(4141,164){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}9}% 16 | }}} 17 | \put(4366,164){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}12}% 18 | }}} 19 | \put(1336,254){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}superblok}% 20 | }}} 21 | \put(361, 29){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}oblast i-uzlu (i-nodes)}% 22 | }}} 23 | \put(361,-781){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}oblast datovych bloku}% 24 | }}} 25 | \put( 46,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}blok c.}% 26 | }}} 27 | \put( 91,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}0}% 28 | }}} 29 | \put( 91,254){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}1}% 30 | }}} 31 | \put( 91, 74){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}2}% 32 | }}} 33 | \put(113,-91){\rotatebox{270.0}{\makebox(0,0)[lb]{\smash{\SetFigFont{14}{16.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 34 | }}}} 35 | \put(758,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}zavadeci blok (boot block)}% 36 | }}} 37 | \end{picture} 38 | -------------------------------------------------------------------------------- /img/tex/s5.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/s5}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4467,2832)(46,-2053) 13 | \put(3331,164){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}0}% 14 | }}} 15 | \put(4141,164){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}9}% 16 | }}} 17 | \put(4366,164){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}12}% 18 | }}} 19 | \put(1336,254){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}superblock}% 20 | }}} 21 | \put(361, 29){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}i-node area}% 22 | }}} 23 | \put(361,-781){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}data block area}% 24 | }}} 25 | \put( 46,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}block number}% 26 | }}} 27 | \put( 91,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}0}% 28 | }}} 29 | \put( 91,254){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}1}% 30 | }}} 31 | \put( 91, 74){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}2}% 32 | }}} 33 | \put(113,-91){\rotatebox{270.0}{\makebox(0,0)[lb]{\smash{\SetFigFont{14}{16.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 34 | }}}} 35 | \put(758,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}boot block}% 36 | }}} 37 | \end{picture} 38 | -------------------------------------------------------------------------------- /img/tex/segments-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/segments-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/segments.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{segmenty.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4467,2595)(79,-2053) 13 | \put(2791,344){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read only}% 14 | }}} 15 | \put(2881,164){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}shared}% 16 | }}} 17 | \put(181,-826){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}struct proc}% 18 | }}} 19 | \put(1171,254){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}struct as}% 20 | }}} 21 | \put(2071,434){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}a\_segs}% 22 | }}} 23 | \put(2971,-106){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}s\_prev}% 24 | }}} 25 | \put(2881,-556){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}private}% 26 | }}} 27 | \put(2791,-1096){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read/write}% 28 | }}} 29 | \put(2881,-1276){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}private}% 30 | }}} 31 | \put(2791,-1816){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read/write}% 32 | }}} 33 | \put(2881,-1996){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}shared}% 34 | }}} 35 | \put(2791,-376){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read/write}% 36 | }}} 37 | \put(3241,-106){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}s\_next}% 38 | }}} 39 | \put(3691,254){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}text}% 40 | }}} 41 | \put(3691,-466){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}data}% 42 | }}} 43 | \put(3691,-1186){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}zasobnik}% 44 | }}} 45 | \put(3691,-1906){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sdilena pamet}% 46 | }}} 47 | \put(2206,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}s\_as}% 48 | }}} 49 | \put(4546,-1726){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0} }% 50 | }}} 51 | \end{picture} 52 | -------------------------------------------------------------------------------- /img/tex/startx.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{startx.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4524,2004)(-11,-1198) 13 | \put(721,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}startx [clientargs] [-- serverargs]}% 14 | }}} 15 | \put( 91,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}xinit [[client [opts]] [-- [server] [display] [opts]]}% 16 | }}} 17 | \put(2926,-241){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\~{}/.xinitrc}% 18 | }}} 19 | \put( 91,-691){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/usr/lib/X11/xinit/xserverrc}% 20 | }}} 21 | \put(2521,-1141){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}twm}% 22 | }}} 23 | \put(3196,-1141){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}xterm}% 24 | }}} 25 | \put(4096,-1141){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}xman}% 26 | }}} 27 | \put(2521,-691){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/usr/lib/X11/xinit/xinitrc}% 28 | }}} 29 | \put(496,-1141){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/usr/bin/X11/X}% 30 | }}} 31 | \put(1171,-16){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 32 | }}} 33 | \put(3601,-16){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}klienti}% 34 | }}} 35 | \put(473,-241){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\~{}/.xserverrc}% 36 | }}} 37 | \end{picture} 38 | -------------------------------------------------------------------------------- /img/tex/structure-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/structure-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/syscall_dist-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/syscall_dist-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/syscall_dist.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{syscall_dist.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4161,1104)(238,-253) 13 | \put(353,682){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}uzivatelsky}% 14 | }}} 15 | \put(488,547){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}proces}% 16 | }}} 17 | \put(548,292){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}jadro}% 18 | }}} 19 | \put(1568,547){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}proces}% 20 | }}} 21 | \put(1433,682){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}uzivatelsky}% 22 | }}} 23 | \put(1628,292){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}jadro}% 24 | }}} 25 | \put(2596,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}jadro}% 26 | }}} 27 | \put(2551,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 28 | }}} 29 | \put(3226,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 30 | }}} 31 | \put(3271,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}jadro}% 32 | }}} 33 | \put(3946,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}jadro}% 34 | }}} 35 | \put(3901,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 36 | }}} 37 | \end{picture} 38 | -------------------------------------------------------------------------------- /img/tex/syscall_dist.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/syscall_dist}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4161,1104)(238,-253) 13 | \put(353,682){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}user}% 14 | }}} 15 | \put(488,547){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}process}% 16 | }}} 17 | \put(548,292){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}kernel}% 18 | }}} 19 | \put(1568,547){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}process}% 20 | }}} 21 | \put(1433,682){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}user}% 22 | }}} 23 | \put(1628,292){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}kernel}% 24 | }}} 25 | \put(2596,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}kernel}% 26 | }}} 27 | \put(2551,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 28 | }}} 29 | \put(3226,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 30 | }}} 31 | \put(3271,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}kernel}% 32 | }}} 33 | \put(3946,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}kernel}% 34 | }}} 35 | \put(3901,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 36 | }}} 37 | \end{picture} 38 | -------------------------------------------------------------------------------- /img/tex/syscall_unx-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/syscall_unx-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/syscall_unx.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{syscall_unx.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4344,834)(169,-73) 13 | \put(488,584){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}proces}% 14 | }}} 15 | \put(2468,584){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}proces}% 16 | }}} 17 | \put(1576,292){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}rozhrani volani jadra}% 18 | }}} 19 | \put(2168, 22){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}jadro}% 20 | }}} 21 | \put(3728,584){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}proces}% 22 | }}} 23 | \end{picture} 24 | -------------------------------------------------------------------------------- /img/tex/syscall_unx.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/syscall_unx}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4344,834)(169,-73) 13 | \put(488,584){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}process}% 14 | }}} 15 | \put(2468,584){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}process}% 16 | }}} 17 | \put(1576,292){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}kernel syscall API}% 18 | }}} 19 | \put(2168, 22){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}kernel}% 20 | }}} 21 | \put(3728,584){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}process}% 22 | }}} 23 | \end{picture} 24 | -------------------------------------------------------------------------------- /img/tex/tcp_par-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/tcp_par-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/tcp_par.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{tcp_par.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4097,2847)(52,-2098) 13 | \put(721,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 14 | }}} 15 | \put(3736,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}klient}% 16 | }}} 17 | \put(2206,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sit}% 18 | }}} 19 | \put(406,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 20 | }}} 21 | \put(631,-691){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}bind(fd)}% 22 | }}} 23 | \put(541,-871){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}listen(fd)}% 24 | }}} 25 | \put(271,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd2 = accept(fd)}% 26 | }}} 27 | \put(631,-1231){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fork()}% 28 | }}} 29 | \put(181,-1501){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd2)}% 30 | }}} 31 | \put(181,-1666){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}while(waitpid(}% 32 | }}} 33 | \put(181,-1831){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0} -1, stat,}% 34 | }}} 35 | \put(181,-1996){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0} WNOHANG)>0) ;}% 36 | }}} 37 | \put(3331,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 38 | }}} 39 | \put(3511,-2041){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd)}% 40 | }}} 41 | \put(3421,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}connect(fd)}% 42 | }}} 43 | \put(1883,-1501){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}syn}% 44 | }}} 45 | \put(1598,-1681){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read(fd2)}% 46 | }}} 47 | \put(1553,-1861){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}write(fd2)}% 48 | }}} 49 | \put(3106,-1771){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}write(fd);read(fd)}% 50 | }}} 51 | \put(1666,-2041){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}exit(0)}% 52 | }}} 53 | \end{picture} 54 | -------------------------------------------------------------------------------- /img/tex/tcp_par.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/tcp_par}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4097,2847)(52,-2098) 13 | \put(721,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 14 | }}} 15 | \put(3736,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}client}% 16 | }}} 17 | \put(2206,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}network}% 18 | }}} 19 | \put(406,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 20 | }}} 21 | \put(631,-691){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}bind(fd)}% 22 | }}} 23 | \put(541,-871){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}listen(fd)}% 24 | }}} 25 | \put(271,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd2 = accept(fd)}% 26 | }}} 27 | \put(631,-1231){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fork()}% 28 | }}} 29 | \put(181,-1501){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd2)}% 30 | }}} 31 | \put(181,-1666){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}while(waitpid(}% 32 | }}} 33 | \put(181,-1831){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ -1, stat,}% 34 | }}} 35 | \put(181,-1996){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ WNOHANG)>0) ;}% 36 | }}} 37 | \put(3331,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 38 | }}} 39 | \put(3511,-2041){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd)}% 40 | }}} 41 | \put(3421,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}connect(fd)}% 42 | }}} 43 | \put(1883,-1501){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}child}% 44 | }}} 45 | \put(1598,-1681){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read(fd2)}% 46 | }}} 47 | \put(1553,-1861){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}write(fd2)}% 48 | }}} 49 | \put(3106,-1771){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}write(fd);read(fd)}% 50 | }}} 51 | \put(1666,-2041){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}exit(0)}% 52 | }}} 53 | \end{picture} 54 | -------------------------------------------------------------------------------- /img/tex/tcp_prefork-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/tcp_prefork-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/tcp_prefork.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{tcp_prefork.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4070,2712)(79,-1963) 13 | \put(721,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 14 | }}} 15 | \put(3736,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}klient}% 16 | }}} 17 | \put(1463,-1546){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read(fd2)}% 18 | }}} 19 | \put(1418,-1726){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}write(fd2)}% 20 | }}} 21 | \put(1306,-1366){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd2=accept(fd)}% 22 | }}} 23 | \put(1441,-1906){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd2)}% 24 | }}} 25 | \put(676,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fork()}% 26 | }}} 27 | \put(496,-1411){\makebox(0,0)[lb]{\smash{\SetFigFont{20}{24.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 28 | }}} 29 | \put(2206,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sit}% 30 | }}} 31 | \put(406,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 32 | }}} 33 | \put(631,-691){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}bind(fd)}% 34 | }}} 35 | \put(541,-871){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}listen(fd)}% 36 | }}} 37 | \put(3331,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 38 | }}} 39 | \put(3421,-1366){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}connect(fd)}% 40 | }}} 41 | \put(3106,-1636){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}write(fd);read(fd)}% 42 | }}} 43 | \put(3511,-1906){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd)}% 44 | }}} 45 | \end{picture} 46 | -------------------------------------------------------------------------------- /img/tex/tcp_prefork.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/tcp_prefork}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4070,2712)(79,-1963) 13 | \put(721,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 14 | }}} 15 | \put(3736,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}client}% 16 | }}} 17 | \put(1463,-1546){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read(fd2)}% 18 | }}} 19 | \put(1418,-1726){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}write(fd2)}% 20 | }}} 21 | \put(1306,-1366){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd2=accept(fd)}% 22 | }}} 23 | \put(1441,-1906){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd2)}% 24 | }}} 25 | \put(676,-1051){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fork()}% 26 | }}} 27 | \put(496,-1411){\makebox(0,0)[lb]{\smash{\SetFigFont{20}{24.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 28 | }}} 29 | \put(2206,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}network}% 30 | }}} 31 | \put(406,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 32 | }}} 33 | \put(631,-691){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}bind(fd)}% 34 | }}} 35 | \put(541,-871){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}listen(fd)}% 36 | }}} 37 | \put(3331,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 38 | }}} 39 | \put(3421,-1366){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}connect(fd)}% 40 | }}} 41 | \put(3106,-1636){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}write(fd);read(fd)}% 42 | }}} 43 | \put(3511,-1906){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd)}% 44 | }}} 45 | \end{picture} 46 | -------------------------------------------------------------------------------- /img/tex/tcp_seq-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/tcp_seq-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/tcp_seq.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{tcp_seq.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4157,2790)(-8,-2041) 13 | \put(406,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 14 | }}} 15 | \put(541,-1123){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}listen(fd)}% 16 | }}} 17 | \put(631,-817){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}bind(fd)}% 18 | }}} 19 | \put(271,-1429){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd2 = accept(fd)}% 20 | }}} 21 | \put( 46,-1735){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read(fd2); write(fd2)}% 22 | }}} 23 | \put(541,-2041){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd2)}% 24 | }}} 25 | \put(3331,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 26 | }}} 27 | \put(3511,-2041){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd)}% 28 | }}} 29 | \put(3106,-1726){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}write(fd);read(fd)}% 30 | }}} 31 | \put(3421,-1411){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}connect(fd)}% 32 | }}} 33 | \put(721,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 34 | }}} 35 | \put(3736,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}klient}% 36 | }}} 37 | \put(2206,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sit}% 38 | }}} 39 | \end{picture} 40 | -------------------------------------------------------------------------------- /img/tex/tcp_seq.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/tcp_seq}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4157,2790)(-8,-2041) 13 | \put(406,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 14 | }}} 15 | \put(541,-1123){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}listen(fd)}% 16 | }}} 17 | \put(631,-817){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}bind(fd)}% 18 | }}} 19 | \put(271,-1429){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd2 = accept(fd)}% 20 | }}} 21 | \put( 46,-1735){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}read(fd2); write(fd2)}% 22 | }}} 23 | \put(541,-2041){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd2)}% 24 | }}} 25 | \put(3331,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 26 | }}} 27 | \put(3511,-2041){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd)}% 28 | }}} 29 | \put(3106,-1726){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}write(fd);read(fd)}% 30 | }}} 31 | \put(3421,-1411){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}connect(fd)}% 32 | }}} 33 | \put(721,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 34 | }}} 35 | \put(3736,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}client}% 36 | }}} 37 | \put(2206,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}network}% 38 | }}} 39 | \end{picture} 40 | -------------------------------------------------------------------------------- /img/tex/threads-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/threads-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/threads.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/threads}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4524,2859)(34,-2053) 13 | \put( 91,-421){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}void *\emprg{do_a}(void *arg)}% 14 | }}} 15 | \put( 91,-586){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\{}% 16 | }}} 17 | \put( 91,-751){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ ...}% 18 | }}} 19 | \put( 91,-916){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ return arg;}% 20 | }}} 21 | \put( 91,-1081){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\}}% 22 | }}} 23 | \put(2746,-421){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}void *\emprg{do_b}(void *arg)}% 24 | }}} 25 | \put(2746,-586){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\{}% 26 | }}} 27 | \put(2746,-751){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ ...}% 28 | }}} 29 | \put(2746,-916){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\ \ \ \ return arg;}% 30 | }}} 31 | \put(2746,-1081){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\}}% 32 | }}} 33 | \put(676,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}pthread_t id_a, id_b;}% 34 | }}} 35 | \put(676,-1771){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\emprg{pthread_join}(id_a, &res_a);}% 36 | }}} 37 | \put(676,-1951){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\emprg{pthread_join}(id_b, &res_b);}% 38 | }}} 39 | \put(676,119){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\emprg{pthread_create}(&id_b, NULL, do_b, "b");}% 40 | }}} 41 | \put(676,299){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\emprg{pthread_create}(&id_a, NULL, do_a, "a");}% 42 | }}} 43 | \put(676,479){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}void *res_a, *res_b;}% 44 | }}} 45 | \end{picture} 46 | -------------------------------------------------------------------------------- /img/tex/udp-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/udp-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/udp.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{udp.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4030,2790)(119,-2041) 13 | \put(721,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 14 | }}} 15 | \put(3736,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}klient}% 16 | }}} 17 | \put(2206,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sit}% 18 | }}} 19 | \put(338,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 20 | }}} 21 | \put(563,-817){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}bind(fd)}% 22 | }}} 23 | \put(473,-1501){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sendto(fd)}% 24 | }}} 25 | \put(383,-1321){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}recvfrom(fd)}% 26 | }}} 27 | \put(3398,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 28 | }}} 29 | \put(3578,-2041){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd)}% 30 | }}} 31 | \put(3533,-1321){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sendto(fd)}% 32 | }}} 33 | \put(3443,-1501){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}recvfrom(fd)}% 34 | }}} 35 | \end{picture} 36 | -------------------------------------------------------------------------------- /img/tex/udp.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/udp}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4030,2790)(119,-2041) 13 | \put(721,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}server}% 14 | }}} 15 | \put(3736,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}client}% 16 | }}} 17 | \put(2206,569){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}network}% 18 | }}} 19 | \put(338,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 20 | }}} 21 | \put(563,-817){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}bind(fd)}% 22 | }}} 23 | \put(473,-1501){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sendto(fd)}% 24 | }}} 25 | \put(383,-1321){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}recvfrom(fd)}% 26 | }}} 27 | \put(3398,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}fd = socket()}% 28 | }}} 29 | \put(3578,-2041){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}close(fd)}% 30 | }}} 31 | \put(3533,-1321){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sendto(fd)}% 32 | }}} 33 | \put(3443,-1501){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}recvfrom(fd)}% 34 | }}} 35 | \end{picture} 36 | -------------------------------------------------------------------------------- /img/tex/vfs-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/vfs-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/virt_mem-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/virt_mem-eps-converted-to.pdf -------------------------------------------------------------------------------- /img/tex/virt_mem.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{virt_mem.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(3624,2742)(259,-2053) 13 | \put(1621,569){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}pamet}% 14 | }}} 15 | \put(1621,374){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}procesu 2}% 16 | }}} 17 | \put(2611,569){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}pamet}% 18 | }}} 19 | \put(2611,374){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}procesu 3}% 20 | }}} 21 | \put(3601,569){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}pamet}% 22 | }}} 23 | \put(3601,374){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}procesu 4}% 24 | }}} 25 | \put(631,569){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}pamet}% 26 | }}} 27 | \put(631,374){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}procesu 1}% 28 | }}} 29 | \put(901,-1681){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}realna}% 30 | }}} 31 | \put(901,-1876){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}pamet}% 32 | }}} 33 | \end{picture} 34 | -------------------------------------------------------------------------------- /img/tex/virt_mem.tex: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{img/tex/virt_mem}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(3624,2742)(259,-2053) 13 | \put(1621,569){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}process 2}% 14 | }}} 15 | \put(1621,374){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}memory}% 16 | }}} 17 | \put(2611,569){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}process 3}% 18 | }}} 19 | \put(2611,374){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}memory}% 20 | }}} 21 | \put(3601,569){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}process 4}% 22 | }}} 23 | \put(3601,374){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}memory}% 24 | }}} 25 | \put(631,569){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}process 1}% 26 | }}} 27 | \put(631,374){\makebox(0,0)[b]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}memory}% 28 | }}} 29 | \put(901,-1681){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}physical}% 30 | }}} 31 | \put(901,-1876){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}memory}% 32 | }}} 33 | \end{picture} 34 | -------------------------------------------------------------------------------- /img/tex/xdm.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{xdm.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4389,2274)(304,-1468) 13 | \put(3601,-1411){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\~{}/.xsession}% 14 | }}} 15 | \put(1441,-1411){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/usr/lib/X11/xdm/Xreset}% 16 | }}} 17 | \put(361,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}X server}% 18 | }}} 19 | \put(3286,-511){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}Xstartup}% 20 | }}} 21 | \put(2521,-961){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/usr/lib/X11/xdm/Xsession}% 22 | }}} 23 | \put(1351,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}/usr/lib/X11/xdm/Xsetup}% 24 | }}} 25 | \put(2206,659){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}xdm}% 26 | }}} 27 | \put(2116,-241){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\ttdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}xlogin}% 28 | }}} 29 | \put(3961,209){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}login:}% 30 | }}} 31 | \put(3961, 14){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}password:}% 32 | }}} 33 | \end{picture} 34 | -------------------------------------------------------------------------------- /img/tex/xwin.pstex_t: -------------------------------------------------------------------------------- 1 | \begin{picture}(0,0)% 2 | \includegraphics{xwin.pstex}% 3 | \end{picture}% 4 | \setlength{\unitlength}{4144sp}% 5 | % 6 | \begingroup\makeatletter\ifx\SetFigFont\undefined% 7 | \gdef\SetFigFont#1#2#3#4#5{% 8 | \reset@font\fontsize{#1}{#2pt}% 9 | \fontfamily{#3}\fontseries{#4}\fontshape{#5}% 10 | \selectfont}% 11 | \fi\endgroup% 12 | \begin{picture}(4533,2761)(58,-2094) 13 | \put(1171,479){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}aplikace}% 14 | }}} 15 | \put(2071,479){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}aplikace}% 16 | }}} 17 | \put(3106,-16){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}manager}% 18 | }}} 19 | \put(3151,164){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}window}% 20 | }}} 21 | \put(271,479){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}aplikace}% 22 | }}} 23 | \put(2168,-691){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}toolkit}% 24 | }}} 25 | \put(2881,-1861){\makebox(0,0)[lb]{\smash{\SetFigFont{20}{24.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}...}% 26 | }}} 27 | \put(4591,-1861){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}X server}% 28 | }}} 29 | \put(4591,-1276){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}sit}% 30 | }}} 31 | \put(4591,-256){\makebox(0,0)[rb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$\left.\vphantom{\frame{\vspace*{2cm}}}\right\}$ klienti}% 32 | }}} 33 | \put(2071,-106){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}emulator}% 34 | }}} 35 | \put(2026,-286){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}terminalu}% 36 | }}} 37 | \put(1853,-961){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}Xlib}% 38 | }}} 39 | \end{picture} 40 | -------------------------------------------------------------------------------- /img/tex/xwin.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/img/tex/xwin.tex -------------------------------------------------------------------------------- /img/xfig/assembler.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 2475 450 2745 2340 11 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 12 | 2745 2340 2745 450 2475 450 2475 2340 2745 2340 13 | 4 0 0 50 0 4 10 1.5708 2 120 675 2670 1732 assembler\001 14 | -6 15 | 6 3015 855 4815 2025 16 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 17 | 3015 855 4725 855 4725 2025 3015 2025 3015 855 18 | 4 0 0 50 0 5 10 0.0000 2 105 1710 3105 1035 457f 464c 0101 0001\001 19 | 4 0 0 50 0 5 10 0.0000 2 105 1710 3105 1215 0000 0000 0000 0000\001 20 | 4 0 0 50 0 5 10 0.0000 2 105 1710 3105 1395 0001 0003 0001 0000\001 21 | 4 0 0 50 0 5 10 0.0000 2 105 1710 3105 1575 0000 0000 0000 0000\001 22 | 4 0 0 50 0 5 10 0.0000 2 105 1710 3105 1755 00ec 0000 0000 0000\001 23 | 4 0 0 50 0 5 10 0.0000 2 105 1710 3105 1935 0034 0000 0000 0028\001 24 | -6 25 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 26 | 1 1 1.00 60.00 120.00 27 | 2205 1440 2475 1440 28 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 29 | 1 1 1.00 60.00 120.00 30 | 2745 1440 3015 1440 31 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 32 | 0 450 2205 450 2205 2340 0 2340 0 450 33 | 4 0 0 50 0 4 10 0.0000 2 120 435 855 360 main.s\001 34 | 4 0 0 50 0 5 10 0.0000 2 135 990 90 630 .globl main\001 35 | 4 0 0 50 0 5 10 0.0000 2 135 2250 90 810 ~~~~.type main, @function\001 36 | 4 0 0 50 0 5 10 0.0000 2 105 450 90 960 main:\001 37 | 4 0 0 50 0 5 10 0.0000 2 135 1440 90 1125 ~~~~pushhl \\%ebp\001 38 | 4 0 0 50 0 5 10 0.0000 2 135 1890 90 1290 ~~~~movl \\%esp, \\%ebp\001 39 | 4 0 0 50 0 5 10 0.0000 2 135 1440 90 1455 ~~~~pushl \\$.LC0\001 40 | 4 0 0 50 0 5 10 0.0000 2 135 1170 90 1620 ~~~~call puts\001 41 | 4 0 0 50 0 5 10 0.0000 2 135 1710 90 1785 ~~~~addl \\$4, \\%esp\001 42 | 4 0 0 50 0 5 10 0.0000 2 105 360 90 1950 .L1:\001 43 | 4 0 0 50 0 5 10 0.0000 2 105 810 90 2115 ~~~~leave\001 44 | 4 0 0 50 0 5 10 0.0000 2 105 630 90 2280 ~~~~ret\001 45 | 4 0 0 50 0 4 10 0.0000 2 120 450 3690 765 main.o\001 46 | -------------------------------------------------------------------------------- /img/xfig/classic_os.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 1 2 0 1 0 7 50 0 -1 0.000 1 0.0000 2430 405 1350 135 1080 540 3780 270 11 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 0 0 2 12 | 990 720 3870 720 13 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 14 | 1080 900 3780 900 3780 2970 1080 2970 1080 900 15 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 16 | 1260 1170 3600 1170 3600 2880 1260 2880 1260 1170 17 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 18 | 1440 1440 3420 1440 3420 2790 1440 2790 1440 1440 19 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 20 | 1620 1710 3240 1710 3240 2700 1620 2700 1620 1710 21 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 22 | 1800 2610 3060 2610 3060 1980 1800 1980 1800 2610 23 | 2 1 0 1 0 7 50 0 15 4.000 0 0 -1 1 0 2 24 | 1 1 1.00 45.00 30.00 25 | 2160 540 2160 900 26 | 2 1 0 1 0 7 50 0 15 4.000 0 0 -1 1 0 2 27 | 1 1 1.00 45.00 30.00 28 | 2700 900 2700 540 29 | 2 2 0 1 0 7 51 0 15 0.000 0 0 -1 0 0 5 30 | 1980 2250 2880 2250 2880 2520 1980 2520 1980 2250 31 | 4 0 0 50 0 4 10 0.0000 2 120 1200 1830 2160 sprava procesoru\001 32 | 4 0 0 50 0 4 10 0.0000 2 150 915 1972 1890 spravapameti\001 33 | 4 0 0 50 0 4 10 0.0000 2 150 1065 1897 1350 sprava souboru\001 34 | 4 0 0 50 0 4 10 0.0000 2 120 1485 1687 1080 rozhrani volani sluzeb\001 35 | 4 0 0 50 0 4 10 0.0000 2 150 1275 1792 1620 sprava I/O zarizeni\001 36 | 4 0 0 50 0 4 10 0.0000 2 150 525 2167 450 aplikace\001 37 | 4 0 0 50 0 4 10 0.0000 2 120 645 2107 2430 hardware\001 38 | -------------------------------------------------------------------------------- /img/xfig/compiler.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 2475 450 4815 2340 11 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 12 | 2475 450 4680 450 4680 2340 2475 2340 2475 450 13 | 4 0 0 50 0 5 10 0.0000 2 135 990 2565 630 .globl main\001 14 | 4 0 0 50 0 5 10 0.0000 2 135 2250 2565 810 ~~~~.type main, @function\001 15 | 4 0 0 50 0 5 10 0.0000 2 105 450 2565 960 main:\001 16 | 4 0 0 50 0 5 10 0.0000 2 135 1440 2565 1125 ~~~~pushhl \\%ebp\001 17 | 4 0 0 50 0 5 10 0.0000 2 135 1890 2565 1290 ~~~~movl \\%esp, \\%ebp\001 18 | 4 0 0 50 0 5 10 0.0000 2 135 1440 2565 1455 ~~~~pushl \\$.LC0\001 19 | 4 0 0 50 0 5 10 0.0000 2 135 1170 2565 1620 ~~~~call puts\001 20 | 4 0 0 50 0 5 10 0.0000 2 135 1710 2565 1785 ~~~~addl \\$4, \\%esp\001 21 | 4 0 0 50 0 5 10 0.0000 2 105 360 2565 1950 .L1:\001 22 | 4 0 0 50 0 5 10 0.0000 2 105 810 2565 2115 ~~~~leave\001 23 | 4 0 0 50 0 5 10 0.0000 2 105 630 2565 2280 ~~~~ret\001 24 | -6 25 | 6 1935 450 2205 2340 26 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 27 | 2205 2340 2205 450 1935 450 1935 2340 2205 2340 28 | 4 0 0 50 0 4 10 1.5708 2 150 720 2115 1755 kompilator\001 29 | -6 30 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 31 | 0 585 1665 585 1665 2160 0 2160 0 585 32 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 33 | 1 1 1.00 60.00 120.00 34 | 1665 1440 1935 1440 35 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 36 | 1 1 1.00 60.00 120.00 37 | 2205 1440 2475 1440 38 | 4 0 0 50 0 4 10 0.0000 2 120 435 3330 360 main.s\001 39 | 4 0 0 50 0 5 10 0.0000 2 135 1620 135 810 int puts(char *s);\001 40 | 4 0 0 50 0 5 10 0.0000 2 135 1800 135 1170 extern int var\\_{}a;\001 41 | 4 0 0 50 0 5 10 0.0000 2 135 540 135 1530 main()\001 42 | 4 0 0 50 0 5 10 0.0000 2 135 180 135 1710 \\{\001 43 | 4 0 0 50 0 5 10 0.0000 2 135 1350 135 1890 ~~puts("Ahoj");\001 44 | 4 0 0 50 0 5 10 0.0000 2 135 180 135 2070 \\}\001 45 | 4 0 0 50 0 4 10 0.0000 2 120 390 585 495 main.i\001 46 | -------------------------------------------------------------------------------- /img/xfig/deadlock.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 2 2 0 1 -1 7 51 0 -1 0.000 0 0 -1 0 0 5 11 | 135 225 2340 225 2340 1575 135 1575 135 225 12 | 2 2 0 1 -1 7 51 0 -1 0.000 0 0 -1 0 0 5 13 | 2565 225 4770 225 4770 1575 2565 1575 2565 225 14 | 2 2 0 1 -1 7 50 0 15 0.000 0 0 -1 0 0 5 15 | 135 900 4770 900 4770 1080 135 1080 135 900 16 | 4 0 -1 50 0 4 10 0.0000 2 150 180 180 135 p1\001 17 | 4 0 -1 50 0 5 10 0.0000 2 135 990 188 360 lock(lck1);\001 18 | 4 0 -1 50 0 4 10 0.0000 2 120 525 1170 360 /* OK */\001 19 | 4 0 -1 50 0 4 10 0.0000 2 150 1080 1170 720 /* Ceka na p2 */\001 20 | 4 0 -1 50 0 5 10 0.0000 2 135 990 188 690 lock(lck2);\001 21 | 4 0 -1 50 0 5 10 0.0000 2 135 1440 188 1185 use(res1, res2);\001 22 | 4 0 -1 50 0 5 10 0.0000 2 135 1170 188 1350 unlock(lck2);\001 23 | 4 0 -1 50 0 5 10 0.0000 2 135 1170 188 1515 unlock(lck1);\001 24 | 4 0 -1 50 0 4 10 0.0000 2 120 630 2160 1035 Deadlock\001 25 | 4 0 -1 50 0 5 10 0.0000 2 135 990 2610 855 lock(lck1);\001 26 | 4 0 -1 50 0 5 10 0.0000 2 135 990 2610 540 lock(lck2);\001 27 | 4 0 -1 50 0 4 10 0.0000 2 120 525 3600 540 /* OK */\001 28 | 4 0 -1 50 0 4 10 0.0000 2 150 1080 3600 855 /* Ceka na p1 */\001 29 | 4 0 -1 50 0 5 10 0.0000 2 135 1440 2610 1185 use(res1, res2);\001 30 | 4 0 -1 50 0 5 10 0.0000 2 135 1170 2610 1350 unlock(lck2);\001 31 | 4 0 -1 50 0 5 10 0.0000 2 135 1170 2610 1515 unlock(lck1);\001 32 | 4 0 -1 50 0 4 10 0.0000 2 150 180 2610 135 p2\001 33 | -------------------------------------------------------------------------------- /img/xfig/environ.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 2970 1710 4545 2430 11 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 12 | 2970 1980 4050 1980 4050 2160 2970 2160 2970 1980 13 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 14 | 2970 2250 4275 2250 4275 2430 2970 2430 2970 2250 15 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 16 | 2970 1710 4455 1710 4455 1890 2970 1890 2970 1710 17 | 4 0 0 50 0 5 10 0.0000 2 105 1080 3015 2115 "DISPLAY=:0"\001 18 | 4 0 0 50 0 5 10 0.0000 2 105 1350 3015 2385 "LOGNAME=beran"\001 19 | 4 0 0 50 0 5 10 0.0000 2 120 1530 3015 1845 "SHELL=/bin/bash"\001 20 | -6 21 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 22 | 1800 1710 2250 1710 2250 1890 1800 1890 1800 1710 23 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 24 | 1800 1890 2250 1890 2250 2070 1800 2070 1800 1890 25 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 26 | 1800 2070 2250 2070 2250 2250 1800 2250 1800 2070 27 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 28 | 1800 2250 2250 2250 2250 2430 1800 2430 1800 2250 29 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 30 | 990 1350 1440 1350 1440 1530 990 1530 990 1350 31 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 4 32 | 1 1 1.00 45.00 45.00 33 | 1215 1440 1215 1620 1800 1620 1800 1710 34 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2 35 | 1 1 1.00 45.00 45.00 36 | 2025 1800 2970 1800 37 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 4 38 | 1 1 1.00 45.00 45.00 39 | 2025 1980 2700 1980 2700 2070 2970 2070 40 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 4 41 | 1 1 1.00 45.00 45.00 42 | 2025 2160 2610 2160 2610 2340 2970 2340 43 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 0 0 3 44 | 2025 2340 2520 2340 2520 2430 45 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 2 46 | 2430 2430 2610 2430 47 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 2 48 | 2475 2475 2565 2475 49 | 4 0 0 50 0 5 10 0.0000 2 135 900 855 2025 environ[1]\001 50 | 4 0 0 50 0 5 10 0.0000 2 135 900 855 1845 environ[0]\001 51 | 4 0 0 50 0 5 10 0.0000 2 135 900 855 2205 environ[2]\001 52 | 4 0 0 50 0 5 10 0.0000 2 135 900 855 2385 environ[3]\001 53 | 4 0 0 50 0 5 10 0.0000 2 105 630 360 1485 environ\001 54 | -------------------------------------------------------------------------------- /img/xfig/fork.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 180 1935 2250 2835 11 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 12 | 180 1935 2250 1935 2250 2835 180 2835 180 1935 13 | 4 0 0 50 0 5 10 0.0000 2 105 270 225 2070 sw2\001 14 | -6 15 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 16 | 2655 1935 4725 1935 4725 2835 2655 2835 2655 1935 17 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 18 | 1 1 1.00 30.00 60.00 19 | 2430 1215 1980 1710 20 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 21 | 1 1 1.00 30.00 60.00 22 | 2430 1215 2880 1710 23 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 24 | 1440 270 3510 270 3510 1170 1440 1170 1440 270 25 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 26 | 1 1 1.00 60.00 120.00 27 | 45 2565 180 2565 28 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 29 | 1 1 1.00 60.00 120.00 30 | 2520 2430 2655 2430 31 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 32 | 1 1 1.00 60.00 120.00 33 | 1305 405 1440 405 34 | 4 0 0 50 0 5 10 0.0000 2 105 270 2700 2070 sw3\001 35 | 4 0 0 50 0 5 10 0.0000 2 135 2250 180 1845 getpid()==1234, pid==2345\001 36 | 4 0 0 50 0 5 10 0.0000 2 135 1440 1440 180 getpid() == 1234\001 37 | 4 0 0 50 0 5 10 0.0000 2 135 1980 2655 1845 getpid()==2345, pid==0\001 38 | 4 0 0 50 0 4 10 0.0000 2 150 1275 2790 1530 dite (novy proces)\001 39 | 4 2 0 50 0 4 10 0.0000 2 150 1155 2070 1530 rodic (pokracuje)\001 40 | 4 0 0 50 0 5 10 0.0000 2 105 270 1485 405 sw1\001 41 | -------------------------------------------------------------------------------- /img/xfig/fork_wait.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 11 | 1170 90 2250 90 2250 450 1170 450 1170 90 12 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 13 | 1 1 1.00 30.00 60.00 14 | 1620 450 1170 900 15 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 16 | 1 1 1.00 30.00 60.00 17 | 1800 450 2160 900 18 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 19 | 1 1 1.00 30.00 60.00 20 | 3330 1485 3330 1980 21 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 22 | 1 1 1.00 30.00 60.00 23 | 2250 2610 1485 2745 24 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 25 | -90 900 1485 900 1485 2880 -90 2880 -90 900 26 | 2 2 0 1 0 7 51 0 15 0.000 0 0 -1 0 0 5 27 | 1980 1980 4725 1980 4725 2880 1980 2880 1980 1980 28 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 29 | 1980 900 4725 900 4725 1485 1980 1485 1980 900 30 | 4 0 0 50 0 5 10 0.0000 2 135 990 1215 225 int status;\001 31 | 4 0 0 50 0 5 10 0.0000 2 135 1800 1215 390 pid = \\emprg{fork()}\001 32 | 4 0 0 50 0 4 10 0.0000 2 120 255 2115 720 dite\001 33 | 4 2 0 50 0 4 10 0.0000 2 120 345 1305 720 rodic\001 34 | 4 0 0 50 0 5 10 0.0000 2 135 2880 2025 2115 int main(int argc, char *argv[])\001 35 | 4 0 0 50 0 5 10 0.0000 2 135 180 2025 2295 \\{\001 36 | 4 0 0 50 0 5 10 0.0000 2 120 990 2025 2475 \\ \\ \\ \\ ...\001 37 | 4 0 0 50 0 5 10 0.0000 2 135 2610 2025 2640 \\ \\ \\ \\ \\emprg{exit}(result);\001 38 | 4 0 0 50 0 5 10 0.0000 2 135 180 2025 2805 \\}\001 39 | 4 0 0 50 0 5 10 0.0000 2 120 630 2025 1890 /bin/ls\001 40 | 4 0 0 50 0 5 10 0.0000 2 105 360 2025 1035 else\001 41 | 4 0 0 50 0 5 10 0.0000 2 135 2880 2025 1200 \\ \\ \\ \\ \\emprg{execl}("/bin/ls",\001 42 | 4 0 0 50 0 5 10 0.0000 2 135 3780 2025 1395 \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ "/bin/ls", "/", NULL);\001 43 | 4 0 0 50 0 5 10 0.0000 2 135 990 -45 1035 if(pid > 0)\001 44 | 4 0 0 50 0 5 10 0.0000 2 135 2790 -45 2790 \\ \\ \\ \\ \\emprg{wait}(\\&status);\001 45 | -------------------------------------------------------------------------------- /img/xfig/init.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 11 | 315 765 2475 765 2475 945 315 945 315 765 12 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 13 | 1 1 1.00 30.00 60.00 14 | 90 675 90 855 315 855 15 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 16 | 315 1305 2565 1305 2565 1485 315 1485 315 1305 17 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 18 | 315 1575 2655 1575 2655 1755 315 1755 315 1575 19 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 20 | 315 2115 2565 2115 2565 2295 315 2295 315 2115 21 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 22 | 1 1 1.00 30.00 60.00 23 | 90 855 90 1125 315 1125 24 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 25 | 1 1 1.00 30.00 60.00 26 | 90 1125 90 1395 315 1395 27 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 28 | 1 1 1.00 30.00 60.00 29 | 90 1395 90 1665 315 1665 30 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 31 | 1 1 1.00 30.00 60.00 32 | 90 1665 90 1935 315 1935 33 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 34 | 1 1 1.00 30.00 60.00 35 | 90 1935 90 2205 315 2205 36 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2 37 | 1 1 1.00 30.00 60.00 38 | 2475 855 3015 855 39 | 2 2 0 0 0 7 50 0 15 0.000 0 0 -1 0 0 5 40 | 3015 1035 4680 1035 4680 2745 3015 2745 3015 1035 41 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 42 | 315 1035 2250 1035 2250 1215 315 1215 315 1035 43 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 44 | 45 135 675 135 675 315 45 315 45 135 45 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 46 | 45 495 810 495 810 675 45 675 45 495 47 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 48 | 1 1 1.00 30.00 60.00 49 | 360 315 360 495 50 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 51 | 315 1845 2565 1845 2565 2025 315 2025 315 1845 52 | 4 0 0 50 0 5 10 0.0000 2 120 1620 3060 900 /etc/init.d/autofs\001 53 | 4 0 0 50 0 5 10 0.0000 2 120 990 3060 1170 case \\$1 in\001 54 | 4 0 0 50 0 5 10 0.0000 2 135 1170 3060 1335 \\emph{start})\001 55 | 4 0 0 50 0 5 10 0.0000 2 135 900 3060 1500 \\ \\ ... ;;\001 56 | 4 0 0 50 0 5 10 0.0000 2 135 1080 3060 1665 \\emph{stop})\001 57 | 4 0 0 50 0 5 10 0.0000 2 135 900 3060 1830 \\ \\ ... ;;\001 58 | 4 0 0 50 0 5 10 0.0000 2 135 810 3060 1995 \\emph{*})\001 59 | 4 0 0 50 0 5 10 0.0000 2 135 1980 3060 2160 \\ \\ echo "usage: " \\bs\001 60 | 4 0 0 50 0 5 10 0.0000 2 135 1980 3060 2325 \\ \\ "\\$0 (start|stop)"\001 61 | 4 0 0 50 0 5 10 0.0000 2 135 540 3060 2490 \\ \\ ;;\001 62 | 4 0 0 50 0 5 10 0.0000 2 75 360 3060 2655 esac\001 63 | 4 0 0 50 0 5 10 0.0000 2 105 540 90 270 init 2\001 64 | 4 0 0 50 0 5 10 0.0000 2 135 2250 360 900 /etc/rc2.d/K08autofs stop\001 65 | 4 0 0 50 0 5 10 0.0000 2 135 1980 360 1170 /etc/rc2.d/K20nfs stop\001 66 | 4 0 0 50 0 5 10 0.0000 2 135 2340 360 1440 /etc/rc2.d/K89portmap stop\001 67 | 4 0 0 50 0 5 10 0.0000 2 120 2430 360 1710 /etc/rc2.d/S10network start\001 68 | 4 0 0 50 0 5 10 0.0000 2 120 2340 360 1980 /etc/rc2.d/S21random start\001 69 | 4 0 0 50 0 5 10 0.0000 2 135 2340 360 2250 /etc/rc2.d/S30syslog start\001 70 | 4 0 0 50 0 5 10 0.0000 2 120 720 90 630 /etc/rc2\001 71 | -------------------------------------------------------------------------------- /img/xfig/login.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 135 495 3915 720 11 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 12 | 1 1 1.00 30.00 60.00 13 | 585 607 1575 607 14 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 15 | 1 1 1.00 30.00 60.00 16 | 2115 607 2745 607 17 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 18 | 1 1 1.00 30.00 60.00 19 | 3285 607 3915 607 20 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 21 | 135 495 585 495 585 720 135 720 135 495 22 | -6 23 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 24 | 1575 495 2115 495 2115 720 1575 720 1575 495 25 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 26 | 2745 495 3285 495 3285 720 2745 720 2745 495 27 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 28 | 3915 495 4185 495 4185 720 3915 720 3915 495 29 | 4 0 0 50 0 5 10 0.0000 2 105 360 180 630 init\001 30 | 4 0 0 50 0 5 10 0.0000 2 105 810 720 540 fork+exec\001 31 | 4 0 0 50 0 5 10 0.0000 2 135 450 1620 630 getty\001 32 | 4 0 0 50 0 5 10 0.0000 2 75 360 2250 540 exec\001 33 | 4 0 0 50 0 5 10 0.0000 2 135 450 2790 630 login\001 34 | 4 0 0 50 0 5 10 0.0000 2 75 360 3420 540 exec\001 35 | 4 0 0 50 0 5 10 0.0000 2 105 180 3960 630 sh\001 36 | -------------------------------------------------------------------------------- /img/xfig/main.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 2250 1800 2700 2520 11 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 12 | 2250 1800 2700 1800 2700 1980 2250 1980 2250 1800 13 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 14 | 2250 1980 2700 1980 2700 2160 2250 2160 2250 1980 15 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 16 | 2250 2160 2700 2160 2700 2340 2250 2340 2250 2160 17 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 18 | 2250 2340 2700 2340 2700 2520 2250 2520 2250 2340 19 | -6 20 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 21 | 3600 2070 4050 2070 4050 2250 3600 2250 3600 2070 22 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 23 | 900 2025 900 1755 90 1755 90 2025 900 2025 24 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 4 25 | 1 1 1.00 45.00 75.00 26 | 765 2430 1350 2430 1350 1800 2250 1800 27 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2 28 | 1 1 1.00 45.00 75.00 29 | 2475 1890 3600 1890 30 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 4 31 | 1 1 1.00 45.00 75.00 32 | 2475 2070 3150 2070 3150 2160 3600 2160 33 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 4 34 | 1 1 1.00 45.00 75.00 35 | 2475 2250 3060 2250 3060 2430 3600 2430 36 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 0 0 3 37 | 2475 2430 2970 2430 2970 2565 38 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 2 39 | 2880 2565 3060 2565 40 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 2 41 | 2925 2610 3015 2610 42 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 43 | 3600 1800 4050 1800 4050 1980 3600 1980 3600 1800 44 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 45 | 540 2160 990 2160 990 2340 540 2340 540 2160 46 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 47 | 540 2340 990 2340 990 2520 540 2520 540 2340 48 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 49 | 3600 2340 4050 2340 4050 2520 3600 2520 3600 2340 50 | 4 0 0 50 0 5 10 0.0000 0 105 90 720 2295 3\001 51 | 4 0 0 50 0 5 10 0.0000 2 120 630 225 1935 ls -l /\001 52 | 4 0 0 50 0 5 10 0.0000 2 135 630 1575 1935 argv[0]\001 53 | 4 0 0 50 0 5 10 0.0000 2 135 630 1575 2115 argv[1]\001 54 | 4 0 0 50 0 5 10 0.0000 2 135 630 1575 2295 argv[2]\001 55 | 4 0 0 50 0 5 10 0.0000 2 135 630 1575 2475 argv[3]\001 56 | 4 0 0 50 0 5 10 0.0000 2 105 360 3645 1935 "ls"\001 57 | 4 0 0 50 0 5 10 0.0000 2 105 360 3645 2205 "-l"\001 58 | 4 0 0 50 0 5 10 0.0000 2 105 360 135 2295 argc\001 59 | 4 0 0 50 0 5 10 0.0000 2 105 360 135 2475 argv\001 60 | 4 0 0 50 0 5 10 0.0000 2 120 270 3690 2475 "/"\001 61 | -------------------------------------------------------------------------------- /img/xfig/mem_kernel.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 11 | 1620 2340 3600 2340 12 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 13 | 1350 225 3870 225 3870 540 1350 540 1350 225 14 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 15 | 1350 540 3870 540 3870 2700 1350 2700 1350 540 16 | 2 2 0 1 0 7 51 0 15 0.000 0 0 -1 0 0 5 17 | 1620 1080 3600 1080 3600 2610 1620 2610 1620 1080 18 | 4 0 0 50 0 4 10 0.0000 2 135 660 2280 405 text jadra\001 19 | 4 0 0 50 0 4 10 0.0000 2 135 1080 2070 720 data a bss jadra\001 20 | 4 0 0 50 0 4 10 0.0000 2 150 1860 1680 915 (tabulky, promenne, apod.)\001 21 | 4 0 0 50 0 4 10 0.0000 2 120 945 2137 1305 struktura user\001 22 | 4 0 0 50 0 4 10 0.0000 2 150 1140 2040 1500 beziciho procesu\001 23 | 4 0 0 50 0 5 10 0.0000 2 135 1890 1665 2250 extern struct user u;\001 24 | 4 0 0 50 0 4 10 0.0000 2 135 975 2122 2520 zasobnik jadra\001 25 | -------------------------------------------------------------------------------- /img/xfig/mem_user.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 11 | 1530 90 3240 90 3240 270 1530 270 1530 90 12 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 13 | 1530 270 3240 270 3240 450 1530 450 1530 270 14 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 15 | 1530 1890 3240 1890 3240 2070 1530 2070 1530 1890 16 | 2 2 0 1 0 7 50 0 15 0.000 0 0 -1 0 0 5 17 | 1530 2250 3240 2250 3240 2070 1530 2070 1530 2250 18 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 19 | 1530 450 3240 450 3240 630 1530 630 1530 450 20 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 21 | 1530 630 3240 630 3240 1890 1530 1890 1530 630 22 | 4 0 0 50 0 4 10 0.0000 2 120 750 2010 2205 oblast user\001 23 | 4 0 0 50 0 4 10 0.0000 2 120 600 2085 2025 zasobnik\001 24 | 4 0 0 50 0 4 10 0.0000 2 120 240 2265 585 bss\001 25 | 4 0 0 50 0 4 10 0.0000 2 120 300 2235 405 data\001 26 | 4 0 0 50 0 4 10 0.0000 2 120 285 2242 225 text\001 27 | 4 0 0 50 0 4 10 0.0000 2 150 5355 180 2205 \\parbox{2.8cm}{nelze adresovat\\\\uziv. programem}$\\left\\{\\vphantom{X}\\right.$\001 28 | 4 2 0 50 0 4 10 0.0000 2 150 7950 4725 1125 $\\left.\\vphantom{\\raisebox{-2.2cm}{\\frame{\\vspace*{4.4cm}}}}\\right\\}$\\parbox{3cm}{adresovatelne\\\\uziv. programem}\001 29 | -------------------------------------------------------------------------------- /img/xfig/open_files1.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Inches 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 2100 600 3000 3225 11 | 6 2175 600 2775 900 12 | 4 0 0 50 -1 4 9 0.0000 0 105 420 2179 741 count 1\001 13 | 4 0 0 50 -1 4 9 0.0000 0 90 540 2175 900 WRONLY\001 14 | -6 15 | 6 2175 1761 2700 2025 16 | 4 0 0 50 -1 4 9 0.0000 0 105 420 2179 1866 count 2\001 17 | 4 0 0 50 -1 4 9 0.0000 0 90 525 2175 2025 RDONLY\001 18 | -6 19 | 6 2175 2511 2599 2775 20 | 4 0 0 50 -1 4 9 0.0000 0 105 420 2179 2616 count 1\001 21 | 4 0 0 50 -1 4 9 0.0000 0 90 375 2175 2775 RDWR\001 22 | -6 23 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 24 | 2100 1350 3000 1350 25 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 26 | 2100 1725 3000 1725 27 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 28 | 2100 2100 3000 2100 29 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 30 | 2100 2475 3000 2475 31 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 32 | 2100 2850 3000 2850 33 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 34 | 2100 975 3000 975 35 | 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 36 | 2100 600 3000 600 3000 3225 2100 3225 2100 600 37 | -6 38 | 6 3675 2250 4500 2625 39 | 4 0 0 50 -1 4 11 0.0000 0 150 825 3675 2550 /etc/passwd\001 40 | 4 0 0 50 -1 4 11 0.0000 0 120 525 3675 2400 count 3\001 41 | -6 42 | 6 3675 1350 4425 1725 43 | 4 0 0 50 -1 4 11 0.0000 0 150 705 3675 1650 /etc/group\001 44 | 4 0 0 50 -1 4 11 0.0000 0 120 525 3675 1500 count 1\001 45 | -6 46 | 6 600 150 1650 525 47 | 4 0 0 50 -1 2 11 0.0000 0 105 510 600 300 user file\001 48 | 4 0 0 50 -1 2 11 0.0000 0 150 1050 600 450 descriptor table\001 49 | -6 50 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 51 | 1 1 1.00 60.00 120.00 52 | 1200 975 2100 750 53 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 54 | 1 1 1.00 60.00 120.00 55 | 1200 1125 2100 1875 56 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 57 | 1 1 1.00 60.00 120.00 58 | 1200 2625 2100 2700 59 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 60 | 1 1 1.00 60.00 120.00 61 | 1200 2475 2100 1950 62 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 63 | 1 1 1.00 60.00 120.00 64 | 3000 1950 3600 2325 65 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 66 | 1 1 1.00 60.00 120.00 67 | 3000 2647 3600 2475 68 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 69 | 1 1 1.00 60.00 120.00 70 | 3000 825 3600 1500 71 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 72 | 3600 1200 4950 1200 73 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 74 | 3600 1800 4950 1800 75 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 76 | 3600 2700 4950 2700 77 | 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 78 | 3600 613 4950 613 4950 3225 3600 3225 3600 613 79 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 80 | 3600 2175 4950 2175 81 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 82 | 600 1200 1200 1200 83 | 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 84 | 600 900 1200 900 1200 1725 600 1725 600 900 85 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 86 | 600 2538 1200 2538 87 | 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 88 | 600 2400 1200 2400 1200 3225 600 3225 600 2400 89 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 90 | 600 2700 1200 2700 91 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 92 | 600 2850 1200 2850 93 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 94 | 600 1050 1200 1050 95 | 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 96 | 600 1350 1200 1350 97 | 4 0 0 50 -1 2 11 0.0000 0 105 570 2100 375 file table\001 98 | 4 0 0 50 -1 2 11 0.0000 0 105 750 3600 375 inode table\001 99 | 4 0 0 50 -1 2 11 0.0000 0 150 630 600 2325 process B\001 100 | 4 0 0 50 -1 2 11 0.0000 0 150 630 600 825 process A\001 101 | -------------------------------------------------------------------------------- /img/xfig/partitions.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 450 2025 1260 2385 11 | 1 2 0 1 0 7 50 0 -1 0.000 1 0.0000 855 2196 405 162 450 2034 1260 2358 12 | 4 0 0 48 0 4 10 0.0000 2 120 405 652 2250 disk 1\001 13 | -6 14 | 6 1890 2025 2700 2385 15 | 1 2 0 1 0 7 50 0 20 0.000 1 0.0000 2295 2196 405 162 1890 2196 2700 2196 16 | 4 0 0 48 0 4 10 0.0000 2 120 405 2092 2250 disk 2\001 17 | -6 18 | 1 1 0 1 0 7 48 0 15 0.000 1 0.0000 855 1890 315 90 855 1890 1170 1800 19 | 1 2 0 1 0 7 49 0 4 0.000 1 0.0000 855 1890 405 162 450 1890 1260 1890 20 | 1 2 0 1 0 7 49 0 10 0.000 1 0.0000 2295 1872 405 162 1890 1872 2700 1872 21 | 1 2 0 1 0 7 49 0 10 0.000 1 0.0000 3375 1872 405 162 2970 1872 3780 1872 22 | 1 1 0 1 0 7 51 0 15 0.000 1 0.0000 2835 2070 1305 585 2835 2070 4140 2655 23 | 1 2 0 1 0 7 50 0 20 0.000 1 0.0000 3375 2196 405 162 2970 2034 3780 2358 24 | 2 1 0 1 0 7 50 0 20 0.000 0 0 -1 0 0 4 25 | 450 2196 450 1872 1260 1872 1260 2196 26 | 2 1 0 1 0 7 50 0 20 0.000 0 0 -1 0 0 4 27 | 1890 2196 1890 1872 2700 1872 2700 2196 28 | 2 1 0 1 0 7 50 0 20 0.000 0 0 -1 0 0 4 29 | 2970 2196 2970 1872 3780 1872 3780 2196 30 | 2 1 1 1 0 7 48 0 -1 4.000 0 0 -1 0 0 2 31 | 1575 1620 1215 1800 32 | 2 1 1 1 0 7 48 0 -1 4.000 0 0 -1 0 0 2 33 | 2880 1665 4005 1575 34 | 2 1 1 1 0 7 48 0 -1 4.000 0 0 -1 0 0 2 35 | 360 1620 855 1890 36 | 4 0 0 51 0 4 10 0.0000 2 120 45 270 1620 /\001 37 | 4 0 0 51 0 4 10 0.0000 2 120 255 4095 1620 /usr\001 38 | 4 0 0 48 0 4 10 0.0000 2 120 405 3172 2250 disk 3\001 39 | 4 0 0 51 0 4 10 0.0000 2 120 420 1395 1575 /home\001 40 | -------------------------------------------------------------------------------- /img/xfig/pipe.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 1 1 0 1 0 7 50 0 15 0.000 1 0.0000 1800 2790 180 90 1800 2790 1980 2880 11 | 1 1 0 1 0 7 52 0 10 0.000 1 0.0000 2610 2790 180 90 2610 2790 2790 2880 12 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 13 | 45 1035 2295 1035 2295 2430 45 2430 45 1035 14 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 15 | 4230 2925 4230 2655 3330 2655 3330 2925 4230 2925 16 | 2 2 0 0 0 7 52 0 10 0.000 0 0 -1 0 0 5 17 | 1800 2700 2610 2700 2610 2880 1800 2880 1800 2700 18 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 19 | 1800 2700 2610 2700 20 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 21 | 1800 2880 2610 2880 22 | 2 1 1 2 0 7 50 0 -1 6.000 0 0 -1 1 0 2 23 | 1 1 2.00 60.00 120.00 24 | 1125 2790 1800 2790 25 | 2 1 1 2 0 7 50 0 -1 6.000 0 0 -1 1 0 2 26 | 1 1 2.00 60.00 120.00 27 | 2790 2790 3330 2790 28 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2 29 | 1 1 1.00 30.00 60.00 30 | 2430 675 2160 1035 31 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2 32 | 1 1 1.00 30.00 60.00 33 | 2430 675 2700 1035 34 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 35 | 1800 90 3105 90 3105 675 1800 675 1800 90 36 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 37 | 2565 1035 4680 1035 4680 2430 2565 2430 2565 1035 38 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 39 | 1125 2925 1125 2655 360 2655 360 2925 1125 2925 40 | 2 1 0 2 4 4 50 0 0 6.000 0 0 -1 1 0 2 41 | 1 1 2.00 60.00 120.00 42 | 45 1710 180 1710 43 | 2 1 0 2 4 7 50 0 -1 6.000 0 0 -1 1 0 2 44 | 1 1 2.00 60.00 120.00 45 | 2565 1935 2700 1935 46 | 4 0 0 50 0 4 10 0.0000 2 120 345 90 180 shell:\001 47 | 4 0 0 50 0 5 8 0.0000 2 90 525 90 1170 case 0:\001 48 | 4 0 0 50 0 5 8 0.0000 2 120 1575 90 1365 \\ \\ \\emprg{close}(1);\001 49 | 4 0 0 50 0 5 8 0.0000 2 120 1875 90 1755 \\ \\ \\emprg{close}(pd[0]);\001 50 | 4 0 0 50 0 5 8 0.0000 2 120 1275 90 1950 \\ \\ close(pd[1]);\001 51 | 4 0 0 50 0 5 8 0.0000 2 120 2325 90 2145 \\ \\ execl("/bin/ls", "/bin/ls",\001 52 | 4 0 0 50 0 5 8 0.0000 2 120 2025 90 2340 \\ \\ \\ \\ \\ \\ \\ \\ "/", NULL);\001 53 | 4 0 0 50 0 4 10 0.0000 2 150 1260 3105 945 konzument (rodic)\001 54 | 4 0 0 50 0 4 10 0.0000 2 150 1125 675 945 producent (dite)\001 55 | 4 0 0 50 0 5 10 0.0000 2 135 450 1260 2610 pd[1]\001 56 | 4 0 0 50 0 5 10 0.0000 2 135 450 2700 2610 pd[0]\001 57 | 4 0 0 50 0 5 10 0.0000 2 120 810 3420 2835 /bin/more\001 58 | 4 0 0 50 0 5 8 0.0000 2 120 750 1845 225 int pd[2];\001 59 | 4 0 0 50 0 5 8 0.0000 2 105 1275 1845 615 switch(fork()) \\{\001 60 | 4 0 0 50 0 5 8 0.0000 2 90 600 2610 1170 default:\001 61 | 4 0 0 50 0 5 8 0.0000 2 120 1575 2610 1365 \\ \\ \\emprg{close}(0);\001 62 | 4 0 0 50 0 5 8 0.0000 2 120 1725 2610 1560 \\ \\ \\emprg{dup}(pd[0]);\001 63 | 4 0 0 50 0 5 8 0.0000 2 120 1275 2610 1755 \\ \\ close(pd[0]);\001 64 | 4 0 0 50 0 5 8 0.0000 2 120 1875 2610 1950 \\ \\ \\emprg{close}(pd[1]);\001 65 | 4 0 0 50 0 5 8 0.0000 2 120 1650 2610 2145 \\ \\ execl("/bin/more",\001 66 | 4 0 0 50 0 5 8 0.0000 2 120 2625 2610 2340 \\ \\ \\ \\ \\ \\ \\ \\ "/bin/more", NULL);\001 67 | 4 0 0 50 0 5 10 0.0000 2 120 630 450 2835 /bin/ls\001 68 | 4 0 0 50 0 5 10 0.0000 2 135 810 495 180 ls | more\001 69 | 4 0 0 50 0 5 8 0.0000 2 120 1275 1845 420 \\emprg{pipe}(pd);\001 70 | 4 0 0 50 0 5 8 0.0000 2 120 1725 90 1560 \\ \\ \\emprg{dup}(pd[1]);\001 71 | -------------------------------------------------------------------------------- /img/xfig/prava.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 1710 315 2160 810 11 | 4 0 0 51 0 4 10 0.0000 2 120 90 1710 450 4\001 12 | 4 0 0 51 0 4 10 0.0000 2 120 90 1890 630 2\001 13 | 4 0 0 51 0 4 10 0.0000 2 120 90 2070 810 1\001 14 | -6 15 | 1 3 0 1 0 7 51 0 15 2.000 1 0.0000 1035 405 45 45 1035 405 1080 405 16 | 1 3 0 1 0 7 51 0 15 2.000 1 0.0000 1215 585 45 45 1215 585 1260 585 17 | 1 3 0 1 0 7 51 0 15 2.000 1 0.0000 1395 765 45 45 1395 765 1440 765 18 | 1 3 0 1 0 7 51 0 15 2.000 1 0.0000 2475 405 45 45 2475 405 2520 405 19 | 1 3 0 1 0 7 51 0 15 2.000 1 0.0000 2655 585 45 45 2655 585 2700 585 20 | 1 3 0 1 0 7 51 0 15 2.000 1 0.0000 2835 765 45 45 2835 765 2880 765 21 | 1 3 0 1 0 7 51 0 15 2.000 1 0.0000 3375 405 45 45 3375 405 3420 405 22 | 1 3 0 1 0 7 51 0 15 2.000 1 0.0000 3555 585 45 45 3555 585 3600 585 23 | 1 3 0 1 0 7 51 0 15 2.000 1 0.0000 3735 765 45 45 3735 765 3780 765 24 | 1 3 0 1 0 7 51 0 15 2.000 1 0.0000 4275 405 45 45 4275 405 4320 405 25 | 1 3 0 1 0 7 51 0 15 2.000 1 0.0000 4455 585 45 45 4455 585 4500 585 26 | 1 3 0 1 0 7 51 0 15 2.000 1 0.0000 4635 765 45 45 4635 765 4680 765 27 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 3 28 | 1035 495 1035 765 810 765 29 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 3 30 | 990 945 1215 945 1215 675 31 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 3 32 | 1260 1125 1395 1125 1395 855 33 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 2 34 | 1125 405 1665 405 35 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 2 36 | 1845 405 2385 405 37 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 2 38 | 2025 585 2565 585 39 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 2 40 | 1485 765 2025 765 41 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 2 42 | 2205 765 2745 765 43 | 2 1 0 1 0 7 51 0 15 4.000 0 0 -1 0 0 2 44 | 1305 585 1845 585 45 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 4 46 | 2475 495 2475 900 4275 900 4275 495 47 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 2 48 | 3375 495 3375 900 49 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 4 50 | 2655 675 2655 1080 4455 1080 4455 675 51 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 2 52 | 3555 675 3555 1080 53 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 4 54 | 2835 855 2835 1260 4635 1260 4635 855 55 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 0 0 2 56 | 3735 855 3735 1260 57 | 4 0 0 51 0 4 10 0.0000 2 120 270 540 810 suid\001 58 | 4 0 0 51 0 4 10 0.0000 2 150 285 720 990 sgid\001 59 | 4 0 0 51 0 4 10 0.0000 2 150 390 900 1170 sticky\001 60 | 4 0 0 51 0 4 10 0.0000 2 150 765 225 450 nejvyssi bit\001 61 | 4 0 0 51 0 4 10 0.0000 2 90 60 2340 945 r\001 62 | 4 0 0 51 0 4 10 0.0000 2 90 120 2520 1125 w\001 63 | 4 0 0 51 0 4 10 0.0000 2 90 90 2700 1305 x\001 64 | 4 0 0 52 0 4 10 0.0000 2 150 4785 2295 270 $\\stackrel{\\mbox{vlastnik (u)}}{\\overbrace{\\hphantom{\\hspace{1cm}}}}$\001 65 | 4 0 0 53 0 4 10 0.0000 2 150 4785 3195 270 $\\stackrel{\\mbox{skupina (g)}}{\\overbrace{\\hphantom{\\hspace{1cm}}}}$\001 66 | 4 0 0 54 0 4 10 0.0000 2 150 4755 4095 270 $\\stackrel{\\mbox{ostatni (o)}}{\\overbrace{\\hphantom{\\hspace{1cm}}}}$\001 67 | -------------------------------------------------------------------------------- /img/xfig/preprocesor.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 2160 315 2475 2655 11 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 12 | 2475 2655 2475 315 2160 315 2160 2655 2475 2655 13 | 4 0 0 50 0 4 10 1.5708 2 120 840 2347 1905 preprocesor\001 14 | -6 15 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 16 | 1 1 1.00 60.00 120.00 17 | 1710 900 2160 900 18 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 19 | 1 1 1.00 60.00 120.00 20 | 2475 1575 3015 1575 21 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 22 | 1 1 1.00 60.00 120.00 23 | 1710 2430 2160 2430 24 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 25 | 1 1 1.00 60.00 120.00 26 | 1710 1845 2160 1845 27 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 28 | 3015 855 4680 855 4680 2430 3015 2430 3015 855 29 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 30 | 0 315 1710 315 1710 1440 0 1440 0 315 31 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 32 | 0 1755 1710 1755 1710 1980 0 1980 0 1755 33 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 34 | 0 2205 1710 2205 1710 2655 0 2655 0 2205 35 | 4 0 0 50 0 4 10 0.0000 2 120 435 90 225 main.c\001 36 | 4 0 0 50 0 5 10 0.0000 2 120 2070 90 450 \\#include $<$stdio.h$>$\001 37 | 4 0 0 50 0 5 10 0.0000 2 135 1710 90 630 \\#include "mydef.h"\001 38 | 4 0 0 50 0 5 10 0.0000 2 135 540 90 810 main()\001 39 | 4 0 0 50 0 5 10 0.0000 2 135 180 90 990 \\{\001 40 | 4 0 0 50 0 5 10 0.0000 2 135 180 90 1350 \\}\001 41 | 4 0 0 50 0 4 10 0.0000 2 120 1290 90 1665 /usr/include/stdio.h\001 42 | 4 0 0 50 0 5 10 0.0000 2 135 1620 90 1890 int puts(char *s);\001 43 | 4 0 0 50 0 4 10 0.0000 2 150 555 90 2160 mydef.h\001 44 | 4 0 0 50 0 5 10 0.0000 2 135 1710 90 2385 \\#define MSG "Ahoj"\001 45 | 4 0 0 50 0 5 10 0.0000 2 135 1080 90 1170 ~~puts(MSG);\001 46 | 4 0 0 50 0 5 10 0.0000 2 135 1620 3150 1080 int puts(char *s);\001 47 | 4 0 0 50 0 5 10 0.0000 2 135 1800 3150 1440 extern int var\\_{}a;\001 48 | 4 0 0 50 0 5 10 0.0000 2 135 540 3150 1800 main()\001 49 | 4 0 0 50 0 5 10 0.0000 2 135 180 3150 1980 \\{\001 50 | 4 0 0 50 0 5 10 0.0000 2 135 1350 3150 2160 ~~puts("Ahoj");\001 51 | 4 0 0 50 0 5 10 0.0000 2 135 180 3150 2340 \\}\001 52 | 4 0 0 50 0 4 10 0.0000 2 120 390 3600 765 main.i\001 53 | 4 0 0 50 0 5 10 0.0000 2 135 1800 90 2565 extern int var\\_{}a;\001 54 | -------------------------------------------------------------------------------- /img/xfig/pseudoterm.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 11 | 1 1 1.00 30.00 60.00 12 | 990 810 3420 810 3420 1035 13 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 14 | 1 1 1.00 30.00 60.00 15 | 765 810 1035 810 1035 1035 16 | 2 2 0 1 0 7 51 0 15 0.000 0 0 -1 0 0 5 17 | 45 45 2385 45 2385 900 45 900 45 45 18 | 2 2 0 1 0 7 51 0 -1 0.000 0 0 -1 0 0 5 19 | 2385 1035 4545 1035 4545 1890 2385 1890 2385 1035 20 | 2 2 0 1 0 7 51 0 15 0.000 0 0 -1 0 0 5 21 | 45 1035 1935 1035 1935 1440 45 1440 45 1035 22 | 4 0 0 50 0 5 10 0.0000 2 135 3150 90 180 mfd=\\emprg{open}("/dev/ptmx", ...);\001 23 | 4 0 0 50 0 5 10 0.0000 2 135 2430 90 345 sname=\\emprg{ptsname}(mfd);\001 24 | 4 0 0 50 0 5 10 0.0000 2 135 1890 90 510 \\emprg{grantpt}(mfd);\001 25 | 4 0 0 50 0 5 10 0.0000 2 135 1980 90 675 \\emprg{unlockpt}(mfd);\001 26 | 4 0 0 50 0 5 10 0.0000 2 135 630 90 855 fork();\001 27 | 4 0 0 50 0 5 10 0.0000 2 135 2610 2430 1170 sfd=\\emprg{open}(sname, ...);\001 28 | 4 0 0 50 0 5 10 0.0000 2 135 2250 2430 1515 dup2(sfd,1); dup2(sfd,2);\001 29 | 4 0 0 50 0 5 10 0.0000 2 135 990 2430 1680 close(sfd);\001 30 | 4 0 0 50 0 5 10 0.0000 2 135 1980 2430 1845 execl("/bin/sh", ...);\001 31 | 4 0 0 50 0 5 10 0.0000 2 135 2160 2430 1350 close(mfd); dup2(sfd,0);\001 32 | 4 0 0 50 0 5 10 0.0000 2 120 1800 90 1215 /* Emulace terminalu\001 33 | 4 0 0 50 0 5 10 0.0000 2 120 1890 90 1395 na zarizeni mfd */\001 34 | -------------------------------------------------------------------------------- /img/xfig/segments.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 2700 360 3510 720 11 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 12 | 2700 360 3510 360 3510 720 2700 720 2700 360 13 | 4 0 0 50 0 4 10 0.0000 2 150 630 2790 495 read only\001 14 | 4 0 0 50 0 4 10 0.0000 2 120 465 2880 675 shared\001 15 | -6 16 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 17 | 90 1530 1170 1530 1170 1710 90 1710 90 1530 18 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 19 | 1080 450 1980 450 1980 630 1080 630 1080 450 20 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 21 | 1 1 1.00 30.00 60.00 22 | 1170 1620 1530 1620 1530 630 23 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 24 | 1 1 1.00 30.00 60.00 25 | 2700 585 1980 585 26 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 27 | 1 1 1.00 30.00 60.00 28 | 1980 495 2700 495 29 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 30 | 2700 1080 3510 1080 3510 1440 2700 1440 2700 1080 31 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 32 | 2700 1800 3510 1800 3510 2160 2700 2160 2700 1800 33 | 2 2 0 1 0 7 51 0 15 0.000 0 0 -1 0 0 5 34 | 2700 2520 3510 2520 3510 2880 2700 2880 2700 2520 35 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 36 | 1 1 1.00 30.00 60.00 37 | 3150 720 3150 1080 38 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 39 | 1 1 1.00 30.00 60.00 40 | 3060 1080 3060 720 41 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 42 | 1 1 1.00 30.00 60.00 43 | 3150 1440 3150 1800 44 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 45 | 1 1 1.00 30.00 60.00 46 | 3150 2160 3150 2520 47 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 48 | 1 1 1.00 30.00 60.00 49 | 3060 2520 3060 2160 50 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 51 | 1 1 1.00 30.00 60.00 52 | 3060 1800 3060 1440 53 | 4 0 0 50 0 5 10 0.0000 2 135 990 180 1665 struct proc\001 54 | 4 0 0 50 0 5 10 0.0000 2 105 810 1170 585 struct as\001 55 | 4 0 0 50 0 5 10 0.0000 2 135 630 2070 405 a\\_segs\001 56 | 4 2 0 50 0 5 10 0.0000 2 135 630 2970 945 s\\_prev\001 57 | 4 0 0 50 0 4 10 0.0000 2 150 480 2880 1395 private\001 58 | 4 0 0 50 0 4 10 0.0000 2 120 690 2790 1935 read/write\001 59 | 4 0 0 50 0 4 10 0.0000 2 150 480 2880 2115 private\001 60 | 4 0 0 50 0 4 10 0.0000 2 120 690 2790 2655 read/write\001 61 | 4 0 0 50 0 4 10 0.0000 2 120 465 2880 2835 shared\001 62 | 4 0 0 50 0 4 10 0.0000 2 120 690 2790 1215 read/write\001 63 | 4 0 0 50 0 5 10 0.0000 2 135 630 3240 945 s\\_next\001 64 | 4 0 0 50 0 4 10 0.0000 2 120 285 3690 585 text\001 65 | 4 0 0 50 0 4 10 0.0000 2 120 300 3690 1305 data\001 66 | 4 0 0 50 0 4 10 0.0000 2 120 600 3690 2025 zasobnik\001 67 | 4 0 0 50 0 4 10 0.0000 2 150 930 3690 2745 sdilena pamet\001 68 | 4 0 0 50 0 5 10 0.0000 2 135 450 2205 720 s\\_as\001 69 | 4 2 0 50 0 5 10 0.0000 2 15 90 4545 2565 \001 70 | -------------------------------------------------------------------------------- /img/xfig/slide_rect.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 11 | 0 0 4725 0 4725 2970 0 2970 0 0 12 | -------------------------------------------------------------------------------- /img/xfig/startx.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 675 45 3870 225 11 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 12 | 675 45 3645 45 3645 225 675 225 675 45 13 | 4 0 0 50 0 5 10 0.0000 2 135 3150 720 180 startx [clientargs] [-- serverargs]\001 14 | -6 15 | 6 45 495 4860 675 16 | 6 45 495 4500 675 17 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 18 | 45 495 4500 495 4500 675 45 675 45 495 19 | -6 20 | 4 0 0 50 0 5 10 0.0000 2 135 4770 90 630 xinit [[client [opts]] [-- [server] [display] [opts]]\001 21 | -6 22 | 6 2880 945 4095 1125 23 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 24 | 2880 945 3825 945 3825 1125 2880 1125 2880 945 25 | 4 0 0 50 0 5 10 0.0000 2 135 1170 2925 1080 \\~{}/.xinitrc\001 26 | -6 27 | 6 45 1395 2205 1620 28 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 29 | 45 1395 2205 1395 2205 1620 45 1620 45 1395 30 | 4 0 0 50 0 5 9 0.0000 2 120 2100 90 1530 /usr/lib/X11/xinit/xserverrc\001 31 | -6 32 | 6 2475 1845 2835 2025 33 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 34 | 2475 1845 2835 1845 2835 2025 2475 2025 2475 1845 35 | 4 0 0 50 0 5 10 0.0000 2 105 270 2520 1980 twm\001 36 | -6 37 | 6 3150 1845 3690 2025 38 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 39 | 3150 1845 3690 1845 3690 2025 3150 2025 3150 1845 40 | 4 0 0 50 0 5 10 0.0000 2 105 450 3195 1980 xterm\001 41 | -6 42 | 6 4050 1845 4500 2025 43 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 44 | 4050 1845 4500 1845 4500 2025 4050 2025 4050 1845 45 | 4 0 0 50 0 5 10 0.0000 2 75 360 4095 1980 xman\001 46 | -6 47 | 6 2475 1395 4500 1620 48 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 49 | 2475 1395 4500 1395 4500 1620 2475 1620 2475 1395 50 | 4 0 0 50 0 5 9 0.0000 2 120 1950 2520 1530 /usr/lib/X11/xinit/xinitrc\001 51 | -6 52 | 6 450 1845 1755 2025 53 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 54 | 450 1845 1710 1845 1710 2025 450 2025 450 1845 55 | 4 0 0 50 0 5 10 0.0000 2 120 1260 495 1980 /usr/bin/X11/X\001 56 | -6 57 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2 58 | 1 1 1.00 30.00 60.00 59 | 990 675 990 945 60 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2 61 | 1 1 1.00 30.00 60.00 62 | 990 225 990 495 63 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2 64 | 1 1 1.00 30.00 60.00 65 | 3330 675 3330 945 66 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2 67 | 1 1 1.00 30.00 60.00 68 | 3330 225 3330 495 69 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2 70 | 1 1 1.00 30.00 60.00 71 | 990 1620 990 1845 72 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2 73 | 1 1 1.00 30.00 60.00 74 | 2655 1620 2655 1845 75 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2 76 | 1 1 1.00 30.00 60.00 77 | 3420 1620 3420 1845 78 | 2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2 79 | 1 1 1.00 30.00 60.00 80 | 4275 1620 4275 1845 81 | 2 1 1 1 0 7 50 0 -1 2.000 0 0 -1 1 0 2 82 | 1 1 1.00 30.00 60.00 83 | 3330 1125 3330 1395 84 | 2 1 1 1 0 7 50 0 -1 2.000 0 0 -1 1 0 2 85 | 1 1 1.00 30.00 60.00 86 | 990 1125 990 1395 87 | 2 2 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 88 | 450 945 1575 945 1575 1125 450 1125 450 945 89 | 2 1 0 1 0 7 50 0 -1 2.000 0 0 -1 1 0 4 90 | 1 1 1.00 30.00 60.00 91 | 450 1035 0 1035 0 1935 450 1935 92 | 2 1 0 1 0 7 50 0 -1 2.000 0 0 -1 1 0 4 93 | 1 1 1.00 30.00 60.00 94 | 2880 1035 2250 1035 2250 1935 2475 1935 95 | 4 0 0 50 0 4 9 0.0000 2 75 345 1170 855 server\001 96 | 4 0 0 50 0 4 9 0.0000 2 105 330 3600 855 klienti\001 97 | 4 0 0 50 0 5 10 0.0000 2 135 1350 472 1080 \\~{}/.xserverrc\001 98 | -------------------------------------------------------------------------------- /img/xfig/syscall_dist.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 270 360 1170 630 11 | 2 2 0 1 0 7 50 0 15 0.000 0 0 -1 0 0 5 12 | 270 360 1170 360 1170 630 270 630 270 360 13 | 4 0 0 50 0 4 10 0.0000 0 135 345 547 547 jadro\001 14 | -6 15 | 6 270 0 1170 360 16 | 6 337 22 1102 337 17 | 4 0 0 50 0 4 10 0.0000 0 150 735 352 157 uzivatelsky\001 18 | 4 0 0 50 0 4 10 0.0000 0 120 465 487 292 proces\001 19 | -6 20 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 21 | 270 0 1170 0 1170 360 270 360 270 0 22 | -6 23 | 6 1350 0 2250 360 24 | 6 1417 22 2182 337 25 | 4 0 0 50 0 4 10 0.0000 0 150 735 1432 157 uzivatelsky\001 26 | 4 0 0 50 0 4 10 0.0000 0 120 465 1567 292 proces\001 27 | -6 28 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 29 | 1350 0 2250 0 2250 360 1350 360 1350 0 30 | -6 31 | 6 1350 360 2250 630 32 | 2 2 0 1 0 7 50 0 15 0.000 0 0 -1 0 0 5 33 | 1350 360 2250 360 2250 630 1350 630 1350 360 34 | 4 0 0 50 0 4 10 0.0000 0 135 345 1627 547 jadro\001 35 | -6 36 | 6 2520 90 3015 945 37 | 2 1 0 3 0 7 50 0 -1 8.000 0 0 -1 0 0 2 38 | 2767 630 2767 900 39 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 40 | 2520 90 3015 90 3015 360 2520 360 2520 90 41 | 2 2 0 1 0 7 50 0 15 0.000 0 0 -1 0 0 5 42 | 2520 360 3015 360 3015 630 2520 630 2520 360 43 | 4 0 0 50 0 4 10 0.0000 0 135 345 2595 540 jadro\001 44 | 4 0 0 50 0 4 10 0.0000 0 90 435 2550 270 server\001 45 | -6 46 | 6 3195 90 3690 945 47 | 2 1 0 3 0 7 50 0 -1 8.000 0 0 -1 0 0 2 48 | 3442 630 3442 900 49 | 2 2 0 1 0 7 50 0 15 0.000 0 0 -1 0 0 5 50 | 3195 360 3690 360 3690 630 3195 630 3195 360 51 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 52 | 3195 90 3690 90 3690 360 3195 360 3195 90 53 | 4 0 0 50 0 4 10 0.0000 0 135 345 3270 540 jadro\001 54 | 4 0 0 50 0 4 10 0.0000 0 90 435 3225 270 server\001 55 | -6 56 | 6 3870 90 4365 945 57 | 2 1 0 3 0 7 50 0 -1 8.000 0 0 -1 0 0 2 58 | 4117 630 4117 900 59 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 60 | 3870 90 4365 90 4365 360 3870 360 3870 90 61 | 2 2 0 1 0 7 50 0 15 0.000 0 0 -1 0 0 5 62 | 3870 360 4365 360 4365 630 3870 630 3870 360 63 | 4 0 0 50 0 4 10 0.0000 0 135 345 3945 540 jadro\001 64 | 4 0 0 50 0 4 10 0.0000 0 90 435 3900 270 server\001 65 | -6 66 | 2 1 0 3 0 7 50 0 -1 8.000 0 0 -1 0 0 2 67 | 720 630 720 900 68 | 2 1 0 3 0 7 50 0 -1 8.000 0 0 -1 0 0 2 69 | 1800 630 1800 900 70 | 2 1 0 3 0 7 50 0 -1 8.000 0 0 -1 0 0 2 71 | 270 900 4365 900 72 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 6 73 | 1 1 1.00 60.00 120.00 74 | 990 270 990 990 1080 1080 1440 1080 1530 990 1530 270 75 | 2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 1 0 6 76 | 1 1 1.00 60.00 120.00 77 | 2070 270 2070 990 2160 1080 3150 1080 3240 990 3240 315 78 | -------------------------------------------------------------------------------- /img/xfig/syscall_unx.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 2 2 0 1 0 7 50 0 15 0.000 0 0 -1 0 0 5 11 | 180 360 4500 360 4500 630 180 630 180 360 12 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 13 | 270 90 1170 90 1170 360 270 360 270 90 14 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 15 | 2250 90 3150 90 3150 360 2250 360 2250 90 16 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 17 | 3510 90 4410 90 4410 360 3510 360 3510 90 18 | 2 2 0 1 0 7 50 0 15 0.000 0 0 -1 0 0 5 19 | 180 630 4500 630 4500 900 180 900 180 630 20 | 3 0 1 1 0 7 50 0 -1 4.000 0 1 0 6 21 | 1 1 1.00 60.00 120.00 22 | 450 270 450 720 540 810 900 810 990 720 990 270 23 | 0.000 1.000 1.000 1.000 1.000 0.000 24 | 3 0 1 1 0 7 50 0 -1 4.000 0 1 0 6 25 | 1 1 1.00 60.00 120.00 26 | 2970 270 2970 720 3060 810 3600 810 3690 720 3690 270 27 | 0.000 1.000 1.000 1.000 1.000 0.000 28 | 4 0 0 49 0 4 10 0.0000 2 120 465 487 255 proces\001 29 | 4 0 0 49 0 4 10 0.0000 2 120 465 2467 255 proces\001 30 | 4 0 0 49 0 4 10 0.0000 2 135 1395 1575 547 rozhrani volani jadra\001 31 | 4 0 0 49 0 4 10 0.0000 2 135 345 2167 817 jadro\001 32 | 4 0 0 49 0 4 10 0.0000 2 120 465 3727 255 proces\001 33 | -------------------------------------------------------------------------------- /img/xfig/threads.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 2 1 0 1 0 7 52 0 -1 0.000 0 0 -1 1 0 3 11 | 1 1 1.00 30.00 60.00 12 | 630 495 270 495 270 1125 13 | 2 1 0 1 0 7 52 0 -1 0.000 0 0 -1 1 0 3 14 | 1 1 1.00 30.00 60.00 15 | 270 2025 270 2565 630 2565 16 | 2 1 0 1 0 7 52 0 -1 0.000 0 0 -1 1 0 3 17 | 1 1 1.00 30.00 60.00 18 | 3960 675 4320 675 4320 1125 19 | 2 1 0 1 0 7 52 0 -1 0.000 0 0 -1 1 0 3 20 | 1 1 1.00 30.00 60.00 21 | 4320 2025 4320 2745 3960 2745 22 | 2 2 0 1 0 7 51 0 20 0.000 0 0 -1 0 0 5 23 | 45 1125 1890 1125 1890 2025 45 2025 45 1125 24 | 2 2 0 1 0 7 51 0 20 0.000 0 0 -1 0 0 5 25 | 2700 1125 4545 1125 4545 2025 2700 2025 2700 1125 26 | 2 2 0 1 0 7 52 0 15 0.000 0 0 -1 0 0 5 27 | 630 45 3960 45 3960 2880 630 2880 630 45 28 | 4 0 0 50 0 5 10 0.0000 2 135 2610 90 1260 void *\\emprg{do_a}(void *arg)\001 29 | 4 0 0 50 0 5 10 0.0000 2 135 180 90 1425 \\{\001 30 | 4 0 0 50 0 5 10 0.0000 2 120 990 90 1590 \\ \\ \\ \\ ...\001 31 | 4 0 0 50 0 5 10 0.0000 2 135 1710 90 1755 \\ \\ \\ \\ return arg;\001 32 | 4 0 0 50 0 5 10 0.0000 2 135 180 90 1920 \\}\001 33 | 4 0 0 50 0 5 10 0.0000 2 135 2610 2745 1260 void *\\emprg{do_b}(void *arg)\001 34 | 4 0 0 50 0 5 10 0.0000 2 135 180 2745 1425 \\{\001 35 | 4 0 0 50 0 5 10 0.0000 2 120 990 2745 1590 \\ \\ \\ \\ ...\001 36 | 4 0 0 50 0 5 10 0.0000 2 135 1710 2745 1755 \\ \\ \\ \\ return arg;\001 37 | 4 0 0 50 0 5 10 0.0000 2 135 180 2745 1920 \\}\001 38 | 4 0 0 50 0 5 10 0.0000 2 135 1890 675 180 pthread_t id_a, id_b;\001 39 | 4 0 0 50 0 5 10 0.0000 2 135 3150 675 2610 \\emprg{pthread_join}(id_a, &res_a);\001 40 | 4 0 0 50 0 5 10 0.0000 2 135 3150 675 2790 \\emprg{pthread_join}(id_b, &res_b);\001 41 | 4 0 0 50 0 5 10 0.0000 2 135 4230 675 720 \\emprg{pthread_create}(&id_b, NULL, do_b, "b");\001 42 | 4 0 0 50 0 5 10 0.0000 2 135 4230 675 540 \\emprg{pthread_create}(&id_a, NULL, do_a, "a");\001 43 | 4 0 0 50 0 5 10 0.0000 2 135 1800 675 360 void *res_a, *res_b;\001 44 | -------------------------------------------------------------------------------- /img/xfig/virt_mem.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 11 | 3240 540 3870 540 3870 1620 3240 1620 3240 540 12 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 13 | 2250 540 2880 540 2880 1530 2250 1530 2250 540 14 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 15 | 1260 540 1890 540 1890 1350 1260 1350 1260 540 16 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 17 | 270 540 900 540 900 1620 270 1620 270 540 18 | 2 2 0 1 0 7 50 0 41 0.000 0 0 -1 0 0 5 19 | 270 810 900 810 900 990 270 990 270 810 20 | 2 2 0 1 0 7 50 0 41 0.000 0 0 -1 0 0 5 21 | 270 540 900 540 900 720 270 720 270 540 22 | 2 2 0 1 0 7 50 0 42 0.000 0 0 -1 0 0 5 23 | 1260 630 1890 630 1890 810 1260 810 1260 630 24 | 2 2 0 1 0 7 50 0 43 0.000 0 0 -1 0 0 5 25 | 1260 900 1890 900 1890 1080 1260 1080 1260 900 26 | 2 2 0 1 0 7 50 0 43 0.000 0 0 -1 0 0 5 27 | 270 1350 900 1350 900 1530 270 1530 270 1350 28 | 2 2 0 1 0 7 50 0 62 0.000 0 0 -1 0 0 5 29 | 3240 630 3870 630 3870 810 3240 810 3240 630 30 | 2 2 0 1 0 7 50 0 62 0.000 0 0 -1 0 0 5 31 | 3240 1080 3870 1080 3870 1260 3240 1260 3240 1080 32 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 33 | 990 2880 3780 2880 3780 2250 990 2250 990 2880 34 | 2 2 0 1 0 7 50 0 41 0.000 0 0 -1 0 0 5 35 | 1260 2250 1440 2250 1440 2880 1260 2880 1260 2250 36 | 2 2 0 1 0 7 50 0 41 0.000 0 0 -1 0 0 5 37 | 1620 2250 1800 2250 1800 2880 1620 2880 1620 2250 38 | 2 2 0 1 0 7 50 0 42 0.000 0 0 -1 0 0 5 39 | 3060 2250 3240 2250 3240 2880 3060 2880 3060 2250 40 | 2 2 0 1 0 7 50 0 43 0.000 0 0 -1 0 0 5 41 | 2340 2250 2520 2250 2520 2880 2340 2880 2340 2250 42 | 2 2 0 1 0 7 50 0 62 0.000 0 0 -1 0 0 5 43 | 1440 2250 1620 2250 1620 2880 1440 2880 1440 2250 44 | 2 2 0 1 0 7 50 0 62 0.000 0 0 -1 0 0 5 45 | 3240 2250 3420 2250 3420 2880 3240 2880 3240 2250 46 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 47 | 1 1 1.00 30.00 60.00 48 | 585 900 1350 2565 49 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 50 | 1 1 1.00 30.00 60.00 51 | 585 630 1710 2565 52 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 53 | 1 1 1.00 30.00 60.00 54 | 585 1440 2430 2565 55 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 56 | 1 1 1.00 30.00 60.00 57 | 1575 720 3150 2565 58 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 59 | 1 1 1.00 30.00 60.00 60 | 1575 990 2430 2565 61 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 62 | 1 1 1.00 30.00 60.00 63 | 3555 720 1530 2565 64 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 65 | 1 1 1.00 30.00 60.00 66 | 3555 1170 3330 2565 67 | 4 1 0 50 0 4 10 0.0000 2 150 420 1620 270 pamet\001 68 | 4 1 0 50 0 4 10 0.0000 2 150 675 1620 465 procesu 2\001 69 | 4 1 0 50 0 4 10 0.0000 2 150 420 2610 270 pamet\001 70 | 4 1 0 50 0 4 10 0.0000 2 150 675 2610 465 procesu 3\001 71 | 4 1 0 50 0 4 10 0.0000 2 150 420 3600 270 pamet\001 72 | 4 1 0 50 0 4 10 0.0000 2 150 675 3600 465 procesu 4\001 73 | 4 1 0 50 0 4 10 0.0000 2 150 420 630 270 pamet\001 74 | 4 1 0 50 0 4 10 0.0000 2 150 675 630 465 procesu 1\001 75 | 4 2 0 50 0 4 10 0.0000 2 120 405 900 2520 realna\001 76 | 4 2 0 50 0 4 10 0.0000 2 150 420 900 2715 pamet\001 77 | -------------------------------------------------------------------------------- /img/xfig/xdm.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 3555 2115 4860 2295 11 | 2 2 0 1 0 7 51 0 15 2.000 0 0 -1 0 0 5 12 | 3555 2115 4590 2115 4590 2295 3555 2295 3555 2115 13 | 4 0 0 50 0 5 10 0.0000 2 135 1260 3600 2250 \\~{}/.xsession\001 14 | -6 15 | 6 1395 2115 3510 2295 16 | 2 2 0 1 0 7 50 0 -1 2.000 0 0 -1 0 0 5 17 | 1395 2115 3420 2115 3420 2295 1395 2295 1395 2115 18 | 4 0 0 50 0 5 10 0.0000 2 120 2070 1440 2250 /usr/lib/X11/xdm/Xreset\001 19 | -6 20 | 6 315 495 945 675 21 | 2 2 1 1 0 7 51 0 -1 4.000 0 0 -1 0 0 5 22 | 315 495 945 495 945 675 315 675 315 495 23 | 4 0 0 50 0 4 10 0.0000 2 120 585 360 630 X server\001 24 | -6 25 | 6 2475 1215 4770 1845 26 | 6 3240 1215 4005 1395 27 | 2 2 0 1 0 7 50 0 -1 2.000 0 0 -1 0 0 5 28 | 3240 1215 4005 1215 4005 1395 3240 1395 3240 1215 29 | 4 0 0 50 0 5 10 0.0000 2 135 720 3285 1350 Xstartup\001 30 | -6 31 | 6 2475 1665 4770 1845 32 | 2 2 0 1 0 7 51 0 15 2.000 0 0 -1 0 0 5 33 | 2475 1665 4680 1665 4680 1845 2475 1845 2475 1665 34 | 4 0 0 50 0 5 10 0.0000 2 120 2250 2520 1800 /usr/lib/X11/xdm/Xsession\001 35 | -6 36 | -6 37 | 6 1305 495 3420 675 38 | 2 2 0 1 0 7 50 0 -1 2.000 0 0 -1 0 0 5 39 | 1305 495 3330 495 3330 675 1305 675 1305 495 40 | 4 0 0 50 0 5 10 0.0000 2 135 2070 1350 630 /usr/lib/X11/xdm/Xsetup\001 41 | -6 42 | 6 2160 45 2520 225 43 | 2 2 0 1 0 7 50 0 -1 2.000 0 0 -1 0 0 5 44 | 2160 45 2520 45 2520 225 2160 225 2160 45 45 | 4 0 0 50 0 5 10 0.0000 2 105 270 2205 180 xdm\001 46 | -6 47 | 6 2070 945 2655 1125 48 | 2 2 0 1 0 7 50 0 -1 2.000 0 0 -1 0 0 5 49 | 2070 945 2655 945 2655 1125 2070 1125 2070 945 50 | 4 0 0 50 0 5 10 0.0000 2 135 540 2115 1080 xlogin\001 51 | -6 52 | 2 1 1 1 0 7 51 0 -1 4.000 0 0 -1 1 0 3 53 | 1 1 1.00 30.00 60.00 54 | 2160 135 630 135 630 495 55 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 1 0 2 56 | 1 1 1.00 30.00 60.00 57 | 2340 225 2340 495 58 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 1 0 2 59 | 1 1 1.00 30.00 60.00 60 | 2340 675 2340 945 61 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 1 0 3 62 | 1 1 1.00 30.00 60.00 63 | 2655 1035 3600 1035 3600 1215 64 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 1 0 2 65 | 1 1 1.00 30.00 60.00 66 | 3600 1395 3600 1665 67 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 1 0 2 68 | 1 1 1.00 30.00 60.00 69 | 2880 1845 2880 2115 70 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 1 0 2 71 | 1 1 1.00 30.00 60.00 72 | 4050 1845 4050 2115 73 | 2 1 0 1 0 7 51 0 -1 4.000 0 0 -1 1 0 4 74 | 1 1 1.00 30.00 60.00 75 | 1395 2205 1080 2205 1080 585 1305 585 76 | 2 4 1 1 0 7 50 0 -1 4.000 0 0 7 0 0 5 77 | 4680 900 4680 450 3870 450 3870 900 4680 900 78 | 2 1 1 1 0 7 51 0 -1 4.000 0 0 -1 1 0 2 79 | 1 1 1.00 30.00 60.00 80 | 3870 810 3600 990 81 | 4 0 0 50 0 4 10 0.0000 2 150 375 3960 630 login:\001 82 | 4 0 0 50 0 4 10 0.0000 2 150 720 3960 825 password:\001 83 | -------------------------------------------------------------------------------- /macros.m4: -------------------------------------------------------------------------------- 1 | changequote([[[, ]]]) 2 | -------------------------------------------------------------------------------- /other.tex: -------------------------------------------------------------------------------- 1 | 2 | \begin{slide} 3 | \sltitle{Virtual memory implementation} 4 | \begin{itemize} 5 | \item processes in UNIX use virtual addresses to access physical memory. 6 | The virtual - physical conversion is performed by hardware with the help 7 | of kernel. 8 | \item in case of memory shortage unused parts of memory are stored to 9 | (\emsl{swap}) space on disk. 10 | \item before SVR2 the \texttt{swapper} process (nowadays 11 | \texttt{sched}) swapped out whole processes. 12 | \item from SVR2 on (\emsl{demand paging}) is used with \emsl{copy-on-write}. 13 | Pages are allocated only after first use and private pages are copied only 14 | after modification. Freeing and swapping of individual pages is performed 15 | by the \texttt{pageout} process, swapping of whole processes is done only 16 | when critically low on memory. 17 | \end{itemize} 18 | \end{slide} 19 | 20 | \begin{description} 21 | \item[address translation:] access to invalid address or attempt to write into 22 | read-only memory will result in the \texttt{SIGSEGV} signal to be delivered. 23 | \item[swap:] swap area is created on separate disk partition, since 24 | SVR4 it can be also in a file. 25 | \item[swapper:] the \texttt{swapper} process tries to save a process 26 | to disk and use the free space for a process that was swapped out earlier. 27 | \item[demand paging:] when a process requests a memory only the page is 28 | modified. The first instruction addressing the page contents will result in an 29 | exception. The kernel will handle it by allocating a page. 30 | \item[copy-on-write:] multiple processes can share writable physical page that 31 | is however logically private to each process (such situation happens e.g. when a 32 | process is created by the \texttt{fork} system call). Until the processes only 33 | read from the memory, they access the shared page. First attempt to write will 34 | cause an exception. The kernel will copy the page and assign a copy of the 35 | page to the process that is already a private and the process can change it. 36 | The other process keep using the original page. 37 | \item The pages to be swapped out are searched for by the \emph{NRU} (not 38 | recently used) algorithm: each page has the \texttt{referenced} and 39 | \texttt{modified} flags, both zero initially. First access will set 40 | \texttt{referenced}, a change will set \texttt{modified}. 41 | Both flags are periodically nullified. The pages that are neither modified or 42 | used are freed first. The program code pages and pages of mapped files are not 43 | stored into swap area, they are fetched from given file. 44 | \end{description} 45 | 46 | %%%%% 47 | 48 | \endinput 49 | -------------------------------------------------------------------------------- /posters/matfyz-girl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/posters/matfyz-girl.jpg -------------------------------------------------------------------------------- /posters/matfyz-girl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devnull-cz/unix-linux-prog-in-c/f58bb7de5d180ab5a4241dae003887c24b620293/posters/matfyz-girl.pdf -------------------------------------------------------------------------------- /posters/unix-poster-AR-2018-2019.roff: -------------------------------------------------------------------------------- 1 | .\" A poster for the Unix/Linux prog lecture for the winter semester 2018/2019. 2 | .\" 3 | .\" To generate a PDF, paste the following (any unix-like system with groff 4 | .\" should do, including a Mac): 5 | .\" 6 | .\" x=unix-poster-AR-2018-2019; groff -Tps -P-pa4 $x.roff > $x.ps; ps2pdf $x.ps $x.pdf 7 | 8 | .po 0.75i 9 | .ll 6.8i 10 | .ft AR 11 | 12 | .sp 0.7i 13 | .ce 14 | .ps 35 15 | \f(ARNSWI015\fP 16 | 17 | .sp 1.3i 18 | .ce 19 | .ps 100 20 | \f(ABUnix/Linux\fP 21 | 22 | .sp 1.64c 23 | .ce 24 | .ps 45 25 | .ti 0.5c 26 | .\"\f(AIProgramming\fP 27 | .\".ft ABI 28 | .ft AI 29 | Programming\fP 30 | .ft AR 31 | 32 | .sp 2c 33 | .ce 34 | .ps 60 35 | .ti 0.5c 36 | \f(ABin C\fP 37 | 38 | .ps 16 39 | .sp 1.5c 40 | .ce 41 | .\" groff 1.19 does not support -K utf-8 42 | .\" Vladimír Kotal, Principal Software Engineer, Oracle 43 | Mgr. Vladim\['i]r Kotal, Principal Software Engineer, Oracle 44 | .sp 0.5c 45 | .ce 46 | Mgr. Jan Pechanec, Principal Software Engineer, Oracle 47 | .sp 1.4c 48 | .ps 20 49 | .ce 50 | http://mff.devnull.cz 51 | 52 | .\" With 0.75i page offset and 8.3i A4 page width, the line length should be 53 | .\" 6.8i. However, with the bullets for the list, 6.5i looks much better. 54 | .ll 6.5i 55 | .sp 1.2c 56 | .in 0.6i 57 | .ps 12 58 | .ti -0.19i 59 | \(bu\ \ \f(ABNSWI015, 2/1 (5 credits), SISAL\fP 60 | .sp 0.4c 61 | .ti -0.19i 62 | .\"(bu\ \ MFF UK, Mal\['a] Strana, winter semester 2018, \f(ABroom SU2\fP, \f(ABWed 9:00\fP. 63 | \(bu\ \ MFF UK, Mal\['a] Strana, \f(ABwinter semester 2018/2019.\fP Schedule is TBD. 64 | .sp 0.4c 65 | .ti -0.19i 66 | \(bu\ \ This course prepares students for developing software in the Unix/Linux 67 | environment using the C programming language. 68 | .sp 0.4c 69 | .ti -0.19i 70 | \(bu\ \ The course includes laboratory work where all the knowledge gained in 71 | the lectures is practiced. 72 | .sp 0.4c 73 | .ti -0.19i 74 | \(bu\ \ \f(ABLectured in English\fP to accomodate non-Czech speaking students. 75 | .sp 0.4c 76 | .ti -0.19i 77 | \(bu\ \ As a prerequisite, you are expected to have passed \f(AIIntroduction to 78 | UNIX\fP (NSWI095) and you should be either able to write in C (e.g. NPRG\%066) 79 | or willing to learn it by yourself. 80 | .sp 0.4c 81 | .ti -0.19i 82 | \(bu\ \ Let us know if you have any questions: vlada@dev\%null.cz, jp@devnull.cz 83 | .sp 0.4c 84 | -------------------------------------------------------------------------------- /posters/unix-poster-AR-2019-2020.roff: -------------------------------------------------------------------------------- 1 | .\" A poster for the Unix/Linux prog lecture for the winter semester 2019/2020. 2 | .\" 3 | .\" To generate a PDF, paste the following (any unix-like system with groff 4 | .\" should do, including a Mac): 5 | .\" 6 | .\" x=unix-poster-AR-2019-2020; groff -Tps -P-pa4 $x.roff > $x.ps; ps2pdf $x.ps $x.pdf 7 | 8 | .po 0.75i 9 | .ll 6.8i 10 | .ft AR 11 | 12 | .sp 0.7i 13 | .ce 14 | .ps 35 15 | \f(ARNSWI015\fP 16 | 17 | .sp 1.3i 18 | .ce 19 | .ps 100 20 | \f(ABUnix/Linux\fP 21 | 22 | .sp 1.64c 23 | .ce 24 | .ps 45 25 | .ti 0.5c 26 | .\"\f(AIProgramming\fP 27 | .\".ft ABI 28 | .ft AI 29 | Programming\fP 30 | .ft AR 31 | 32 | .sp 2c 33 | .ce 34 | .ps 60 35 | .ti 0.5c 36 | \f(ABin C\fP 37 | 38 | .ps 16 39 | .sp 1.5c 40 | .ce 41 | .\" groff 1.19 does not support -K utf-8 42 | .\" Vladimír Kotal, Principal Software Engineer, Oracle 43 | Mgr. Vladim\['i]r Kotal, Oracle 44 | .sp 0.5c 45 | .ce 46 | Mgr. Jan Pechanec, Oracle 47 | .sp 1.4c 48 | .ps 20 49 | .ce 50 | http://mff.devnull.cz 51 | 52 | .\" With 0.75i page offset and 8.3i A4 page width, the line length should be 53 | .\" 6.8i. However, with the bullets for the list, 6.5i looks much better. 54 | .ll 6.5i 55 | .sp 1.2c 56 | .in 0.6i 57 | .ps 12 58 | .ti -0.19i 59 | \(bu\ \ \f(ABNSWI015, 2/1 (5 credits), SISAL\fP 60 | .sp 0.4c 61 | .ti -0.19i 62 | \(bu\ \ MFF UK, Mal\['a] Strana, \f(ABwinter semester\fP 2019/2020. 63 | \f(ABTentative\fP schedule is Wed, 10:40 in S9 (subject to change until the 64 | schedule is finalized). 65 | .sp 0.4c 66 | .ti -0.19i 67 | \(bu\ \ This course prepares students for developing software in the Unix/Linux 68 | environment using the C programming language. 69 | .sp 0.4c 70 | .ti -0.19i 71 | \(bu\ \ The course includes laboratory work to practise the knowledge gained in 72 | the lectures. \f(ABTentative\fP schedule is Wed, 9:00 in SU1. 73 | .sp 0.4c 74 | .ti -0.19i 75 | \(bu\ \ \f(ABLectured in English\fP to accomodate non-Czech speaking students. 76 | .sp 0.4c 77 | .ti -0.19i 78 | \(bu\ \ You are expected to have passed \f(AIIntroduction to UNIX\fP (NSWI095) 79 | and you should either know C (e.g. NPRG\%066) or willing to learn it by 80 | yourself. 81 | .sp 0.4c 82 | .ti -0.19i 83 | \(bu\ \ Let us know if you have any questions: vlada@dev\%null.cz, jp@devnull.cz 84 | .sp 0.4c 85 | -------------------------------------------------------------------------------- /posters/unix-poster-AR-2020-2021.roff: -------------------------------------------------------------------------------- 1 | .\" A poster for the Unix/Linux prog lecture for the winter semester 2020/2021 2 | .\" 3 | .\" To generate a PDF, paste the following (any unix-like system with groff 4 | .\" should do, including a Mac): 5 | .\" 6 | .\" x=unix-poster-AR-2020-2021; groff -Tps -P-pa4 $x.roff > $x.ps; ps2pdf $x.ps $x.pdf 7 | 8 | .po 0.75i 9 | .ll 6.8i 10 | .ft AR 11 | 12 | .sp 0.8i 13 | .ce 14 | .ps 35 15 | \f(ARNSWI015\fP 16 | 17 | .sp 1i 18 | .ce 19 | .ps 85 20 | \f(CBUnix/Linux\fP 21 | 22 | .sp 1.5c 23 | .ce 24 | .ps 45 25 | .ti 0.5c 26 | .\"\f(AIProgramming\fP 27 | .\".ft ABI 28 | .ft CI 29 | Programming\fP 30 | .ft AR 31 | 32 | .sp 2.6c 33 | .ce 34 | .ps 80 35 | .ti 0.5c 36 | \f(ABin C\fP 37 | 38 | .ps 16 39 | .sp 1.4c 40 | .ce 41 | .\" groff 1.19 does not support -K utf-8 42 | .\" Vladimír Kotal, Principal Software Engineer, Oracle 43 | Mgr. Vladim\['i]r Kotal, Oracle 44 | .sp 0.5c 45 | .ce 46 | Mgr. Jan Pechanec, Oracle 47 | .sp 1.4c 48 | .ps 20 49 | .ce 50 | http://mff.devnull.cz 51 | 52 | .\" With 0.75i page offset and 8.3i A4 page width, the line length should be 53 | .\" 6.8i. However, with the bullets for the list, 6.5i looks much better. 54 | .ll 6.5i 55 | .sp 1.2c 56 | .in 0.6i 57 | .ps 12 58 | .ti -0.19i 59 | \(bu\ \ \f(ABNSWI015, 2/1 (5 credits), SISAL\fP 60 | .sp 0.4c 61 | .ti -0.19i 62 | \(bu\ \ MFF UK, Mal\['a] Strana, \f(ABwinter semester\fP 2020/2021. The 63 | schedule is \f(ABThu, 10:40 in S1 for the lecture, and Thu 9:00 in SU1 for the 64 | labs\fP. 65 | .sp 0.4c 66 | .ti -0.19i 67 | \(bu\ \ This course prepares students for software development in the Unix/Linux 68 | environment using the C programming language. 69 | .sp 0.4c 70 | .ti -0.19i 71 | \(bu\ \ Includes laboratory work to practise the knowledge gained in the course. 72 | .sp 0.4c 73 | .ti -0.19i 74 | \(bu\ \ \f(ABLectured in English\fP to accomodate non-Czech speaking students. 75 | .sp 0.4c 76 | .ti -0.19i 77 | \(bu\ \ You are expected to have passed \f(AIIntroduction to UNIX\fP (NSWI095) 78 | and you should either know C (e.g. NPRG\%066) or willing to learn it by 79 | yourself. 80 | .sp 0.4c 81 | .ti -0.19i 82 | \(bu\ \ Let us know if you have any questions: vlada@dev\%null.cz, jp@devnull.cz 83 | .sp 0.4c 84 | -------------------------------------------------------------------------------- /posters/unix-poster-AR-2021-2022.roff: -------------------------------------------------------------------------------- 1 | .\" A poster for the Unix/Linux prog lecture for the winter semester 2021/2022 2 | .\" 3 | .\" To generate a PDF, paste the following (any unix-like system with groff 4 | .\" should do, including a Mac): 5 | .\" 6 | .\" x=unix-poster-AR-2021-2022; groff -Tps -P-pa4 $x.roff > $x.ps; ps2pdf $x.ps $x.pdf 7 | 8 | .po 0.75i 9 | .ll 6.8i 10 | .ft AR 11 | 12 | .sp 0.8i 13 | .ce 14 | .ps 35 15 | \f(ARNSWI015\fP 16 | 17 | .sp 1i 18 | .ce 19 | .ps 85 20 | \f(CBUnix/Linux\fP 21 | 22 | .sp 1.5c 23 | .ce 24 | .ps 45 25 | .ti 0.5c 26 | .\"\f(AIProgramming\fP 27 | .\".ft ABI 28 | .ft CI 29 | Programming\fP 30 | .ft AR 31 | 32 | .sp 2.6c 33 | .ce 34 | .ps 80 35 | .ti 0.5c 36 | \f(ABin C\fP 37 | 38 | .ps 16 39 | .sp 1.4c 40 | .ce 41 | .\" groff 1.19 does not support -K utf-8 42 | .\" Vladimír Kotal, Principal Software Engineer, Oracle 43 | Mgr. Vladim\['i]r Kotal, Oracle 44 | .sp 0.5c 45 | .ce 46 | Mgr. Jan Pechanec, Oracle 47 | .sp 1.4c 48 | .ps 20 49 | .ce 50 | http://mff.devnull.cz 51 | 52 | .\" With 0.75i page offset and 8.3i A4 page width, the line length should be 53 | .\" 6.8i. However, with the bullets for the list, 6.5i looks much better. 54 | .ll 6.5i 55 | .sp 1.2c 56 | .in 0.6i 57 | .ps 12 58 | .ti -0.19i 59 | \(bu\ \ \f(ABNSWI015, 2/1 (5 credits), SISAL\fP 60 | .sp 0.4c 61 | .ti -0.19i 62 | \(bu\ \ MFF UK, Mal\['a] Strana, \f(ABwinter semester\fP 2021/2022. The 63 | schedule is \f(ABThu, 9:00 in S4 for the lecture, and Thu 10:40 in SU1 for the 64 | labs\fP. We start on Thu Sep 30. 65 | .sp 0.4c 66 | .ti -0.19i 67 | \(bu\ \ This course prepares students for software development in the Unix/Linux 68 | environment using the C programming language. 69 | .sp 0.4c 70 | .ti -0.19i 71 | \(bu\ \ Includes lab work to practise the knowledge gained in the course. 72 | .sp 0.4c 73 | .ti -0.19i 74 | \(bu\ \ \f(ABLectured in English\fP to accomodate non-Czech speaking students. 75 | .sp 0.4c 76 | .ti -0.19i 77 | \(bu\ \ You are expected to have passed \f(AIIntroduction to UNIX\fP (NSWI095) 78 | and you should either know C (e.g. NPRG\%066) or willing to learn it by 79 | yourself. 80 | .sp 0.4c 81 | .ti -0.19i 82 | \(bu\ \ Let us know if you have any questions: vlada@dev\%null.cz, jp@devnull.cz 83 | .sp 0.4c 84 | -------------------------------------------------------------------------------- /posters/unix-poster-AR-2022-2023.roff: -------------------------------------------------------------------------------- 1 | .\" A poster for the Unix/Linux prog lecture for the winter semester 2022/2023 2 | .\" 3 | .\" To generate a PDF, paste the following (any unix-like system with groff 4 | .\" should do, including a Mac): 5 | .\" 6 | .\" x=unix-poster-AR-2022-2023; groff -Tps -P-pa4 $x.roff > $x.ps; ps2pdf $x.ps $x.pdf 7 | 8 | .po 0.75i 9 | .ll 6.8i 10 | .ft AR 11 | 12 | .sp 0.8i 13 | .ce 14 | .ps 35 15 | \f(ARNSWI015\fP 16 | 17 | .sp 1i 18 | .ce 19 | .ps 85 20 | \f(CBUnix/Linux\fP 21 | 22 | .sp 1.5c 23 | .ce 24 | .ps 45 25 | .ti 0.5c 26 | .\"\f(AIProgramming\fP 27 | .\".ft ABI 28 | .ft CI 29 | Programming\fP 30 | .ft AR 31 | 32 | .sp 2.6c 33 | .ce 34 | .ps 80 35 | .ti 0.5c 36 | \f(ABin C\fP 37 | 38 | .ps 16 39 | .sp 1.4c 40 | .ce 41 | .\" groff 1.19 does not support -K utf-8 42 | .\" Vladimír Kotal, Principal Software Engineer, Oracle 43 | Mgr. Vladim\['i]r Kotal, Oracle 44 | .sp 0.5c 45 | .ce 46 | Mgr. Jan Pechanec, Oracle 47 | .sp 1.4c 48 | .ps 20 49 | .ce 50 | http://mff.devnull.cz 51 | 52 | .\" With 0.75i page offset and 8.3i A4 page width, the line length should be 53 | .\" 6.8i. However, with the bullets for the list, 6.5i looks much better. 54 | .ll 6.5i 55 | .sp 1.2c 56 | .in 0.6i 57 | .ps 12 58 | .ti -0.19i 59 | \(bu\ \ \f(ABNSWI015, 2/1 (5 credits), SISAL\fP 60 | .sp 0.4c 61 | .ti -0.19i 62 | \(bu\ \ MFF UK, Mal\['a] Strana, \f(ABwinter semester\fP 2022/2023. The 63 | schedule is \f(ABMon, 9:00 in S11 for the lecture, and Mon 10:40 in SU1 for the 64 | labs\fP. We start on Mon Oct 3. 65 | 66 | .sp 0.4c 67 | .ti -0.19i 68 | \(bu\ \ This course prepares students for software development in the Unix/Linux 69 | environment using the C programming language. 70 | .sp 0.4c 71 | .ti -0.19i 72 | \(bu\ \ Includes lab work to practise the knowledge gained in the course. 73 | .sp 0.4c 74 | .ti -0.19i 75 | \(bu\ \ \f(ABLectured in English\fP to accomodate non-Czech speaking students. 76 | .sp 0.4c 77 | .ti -0.19i 78 | \(bu\ \ You are expected to have passed \f(AIIntroduction to UNIX\fP (NSWI095) 79 | and you should either know C (e.g. NPRG\%066) or willing to learn it by 80 | yourself. 81 | .sp 0.4c 82 | .ti -0.19i 83 | \(bu\ \ Let us know if you have any questions: vlada@dev\%null.cz, jp@devnull.cz 84 | .sp 0.4c 85 | -------------------------------------------------------------------------------- /posters/unix-poster-AR-2023-2024.roff: -------------------------------------------------------------------------------- 1 | .\" A poster for the Unix/Linux prog lecture for the winter semester 2023/2024 2 | .\" 3 | .\" To generate a PDF, paste the following (any unix-like system with groff 4 | .\" should do, including a Mac): 5 | .\" 6 | .\" x=unix-poster-AR-2023-2024; groff -Tps -P-pa4 $x.roff > $x.ps; ps2pdf $x.ps $x.pdf 7 | 8 | .po 0.75i 9 | .ll 6.8i 10 | .ft AR 11 | 12 | .sp 0.8i 13 | .ce 14 | .ps 35 15 | \f(ARNSWI015\fP 16 | 17 | .sp 1i 18 | .ce 19 | .ps 85 20 | \f(CBUnix/Linux\fP 21 | 22 | .sp 1.5c 23 | .ce 24 | .ps 45 25 | .ti 0.5c 26 | .\"\f(AIProgramming\fP 27 | .\".ft ABI 28 | .ft CI 29 | Programming\fP 30 | .ft AR 31 | 32 | .sp 2.6c 33 | .ce 34 | .ps 80 35 | .ti 0.5c 36 | \f(ABin C\fP 37 | 38 | .ps 16 39 | .sp 1.4c 40 | .ce 41 | .\" groff 1.19 does not support -K utf-8 42 | .\" Vladimír Kotal, Principal Software Engineer, Oracle 43 | Mgr. Vladim\['i]r Kotal, Oracle 44 | .sp 1.4c 45 | .ps 20 46 | .ce 47 | http://mff.devnull.cz 48 | 49 | .\" With 0.75i page offset and 8.3i A4 page width, the line length should be 50 | .\" 6.8i. However, with the bullets for the list, 6.5i looks much better. 51 | .ll 6.5i 52 | .sp 1.2c 53 | .in 0.6i 54 | .ps 12 55 | .ti -0.19i 56 | \(bu\ \ \f(ABNSWI015, 2/1 (5 credits), SISAL\fP 57 | .sp 0.4c 58 | .ti -0.19i 59 | \(bu\ \ MFF UK, Mal\['a] Strana, \f(ABwinter semester\fP 2023/2024. The 60 | schedule is \f(ABMon, 9:00 in S6 for the lecture, and Mon 10:40 in SU1 for the 61 | labs\fP. We start on Mon Oct 2. 62 | 63 | .sp 0.4c 64 | .ti -0.19i 65 | \(bu\ \ This course prepares students for software development in the Unix/Linux 66 | environment using the C programming language. 67 | .sp 0.4c 68 | .ti -0.19i 69 | \(bu\ \ Includes lab work to practise the knowledge gained in the course. 70 | .sp 0.4c 71 | .ti -0.19i 72 | \(bu\ \ \f(ABLectured in English\fP to accomodate non-Czech speaking students. 73 | .sp 0.4c 74 | .ti -0.19i 75 | \(bu\ \ You are expected to have passed \f(AIIntroduction to UNIX\fP (NSWI095) 76 | and you should either know C (e.g. NPRG\%066) or willing to learn it by 77 | yourself. 78 | .sp 0.4c 79 | .ti -0.19i 80 | \(bu\ \ Let me know if you have any questions: vlada@kotalovi.cz 81 | .sp 0.4c 82 | -------------------------------------------------------------------------------- /posters/unix-poster-AR-2024-2025.roff: -------------------------------------------------------------------------------- 1 | .\" A poster for the Unix/Linux programming lecture for the winter semester 2024/2025 2 | .\" 3 | .\" To generate a PDF for A4 landscape, paste the following (needs Groff with "ms" macro package) 4 | .\" 5 | .\" x=unix-poster-AR-2024-2025; groff -Tps -m ms -U -P-pa4 -P-l $x.roff > $x.ps > $x.ps; ps2pdf $x.ps $x.pdf 6 | 7 | .2C 15.5c 3c 8 | 9 | .po 0.5i 10 | .ll 4.5i 11 | .ft AR 12 | 13 | .\" insert Matfyz girl picture by Julie K. 14 | .PDFPIC -R matfyz-girl.pdf 15 | 16 | .sp 0.1i 17 | .ce 18 | .ps 35 19 | \f(ARNSWI015\fP 20 | 21 | .sp 0.5i 22 | .ce 23 | .ps 55 24 | \f(CBUnix/Linux\fP 25 | 26 | .sp 1.0c 27 | .ce 28 | .ps 35 29 | .ti 0.5c 30 | .\"\f(AIProgramming\fP 31 | .\".ft ABI 32 | .ft CI 33 | Programming\fP 34 | .ft AR 35 | 36 | .sp 1.0c 37 | .ce 38 | .ps 40 39 | .ti 0.5c 40 | \f(ABin C\fP 41 | 42 | .\" set number of needed lines in the upcoming section to force a column break 43 | .ne 40 44 | 45 | .po 6i 46 | .ll 5i 47 | 48 | .sp 1.0c 49 | .in 0.6i 50 | .ps 12 51 | .ti -0.19i 52 | \(bu\ \ \f(ABNSWI015, 2/1 (5 credits), SISAL\fP 53 | .sp 0.4c 54 | .ti -0.19i 55 | \(bu\ \ MFF UK, Mal\['a] Strana, \f(ABwinter semester\fP 2024/2025. 56 | The schedule is \f(ABMon, 9:00 in S7 for the lecture, and Mon 10:40 in SW1 for the labs\fP. 57 | We start on Monday September 30th. 58 | 59 | .sp 0.2c 60 | .ti -0.19i 61 | \(bu\ \ This course prepares students for software development in the Unix/Linux 62 | environment using the C programming language, a foundation for general systems 63 | programming and/or troubleshooting. 64 | .sp 0.2c 65 | .ti -0.19i 66 | \(bu\ \ Includes lab work to practise the knowledge gained in the course. 67 | .sp 0.2c 68 | .ti -0.19i 69 | \(bu\ \ \f(ABLectured in English\fP to accomodate non-Czech speaking students. 70 | .sp 0.2c 71 | .ti -0.19i 72 | \(bu\ \ You are expected to have passed \f(AIIntroduction to UNIX\fP (NSWI095) 73 | and you should either know C (e.g. NPRG\%066) or willing to learn it by 74 | yourself. 75 | 76 | .ps 16 77 | .sp 1.0c 78 | .ce 79 | .\" groff 1.19 does not support -K utf-8 80 | .\" Vladimír Kotal, Principal Software Engineer, Oracle 81 | Mgr. Vladim\['i]r Kotal, Oracle 82 | .sp 0.5c 83 | .ce 84 | vlada@kotalovi.cz 85 | .sp 1.4c 86 | .ps 20 87 | .ce 88 | http://mff.devnull.cz 89 | -------------------------------------------------------------------------------- /spellfilter.sed: -------------------------------------------------------------------------------- 1 | /\\begin\{verbatim\}/,/\\end\{verbatim\}/d 2 | /\\begin\{alltt\}/,/\\end\{alltt\}/d 3 | s/pdfbookmark\[[0-9]\]\{([^{}]*)\}\{.*\}/pdfbookmark{\1}/ 4 | s/\\\-//g 5 | s/\\\=//g 6 | s/\\example\{[[:alnum:]_\/\.\-]+\}//g 7 | s/\\texttt\{[^{]*\}//g 8 | s/\\funnm\{[^{]*\}//g 9 | s/\\emprg\{.*\}//g 10 | s/\\verb#[[:alnum:]_\(\)]+#//g 11 | s/\\url\{[[:alnum:]_\/:\.]+\}//g 12 | s/IPv[46]//g 13 | s/\\hlabel\{[[:alnum:]_]+\}//g 14 | -------------------------------------------------------------------------------- /unix-linux-prog-in-c.tex: -------------------------------------------------------------------------------- 1 | % Unix/Linux programming in C 2 | % 3 | % Authors: Martin Beran, Jan Pechanec, Vladimir Kotal 4 | % 5 | % These are slides with notes. 6 | % 7 | 8 | \AtBeginDocument[seminar]{% 9 | \pdfhorigin=1sp 10 | \pdfvorigin=1sp 11 | \paperwidth=297truemm 12 | \paperheight=210truemm 13 | } 14 | 15 | \documentclass[article]{seminar} 16 | \input{common.m4.tex} 17 | -------------------------------------------------------------------------------- /unix-linux-prog-in-c_slides-only.tex: -------------------------------------------------------------------------------- 1 | % Unix programming in C - slides 2 | % Authors: Martin Beran, Jan Pechanec, Vladimir Kotal 3 | 4 | \documentclass[slidesonly]{seminar} 5 | \input{common.m4.tex} 6 | -------------------------------------------------------------------------------- /xcomment.sty: -------------------------------------------------------------------------------- 1 | %% $Id: xcomment.sty 315 2010-05-14 21:31:03Z herbert $ 2 | \ProvidesPackage{xcomment}[2010/05/13 package wrapper for 3 | xcomment.tex (hv)] 4 | \input{xcomment.tex} 5 | \ProvidesFile{xcomment.tex} 6 | [\filedate\space v\fileversion\space `xcomment' (tvz)] 7 | \endinput 8 | 9 | --------------------------------------------------------------------------------