Terms of Service | Privacy Policy | Cookie Policy

Commit 63f1aa5a authored by Uwe Plonus's avatar Uwe Plonus

Further documentation of setup and VM

parent 34e7eee3
pipeline {
agent {
node {
label 'master'
}
}
stages {
stage('Cleanup') {
steps {
deleteDir()
}
}
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build asm and pdf') {
agent {
dockerfile {
reuseNode true
}
}
steps {
sh script: 'make'
sh """
cd bootloader
make
"""
}
}
stage('Archive Artifacts') {
steps {
archiveArtifacts 'bootloader/bootloader'
archiveArtifacts 'bootloader/bootloader.pdf'
archiveArtifacts 'bootloader/makebootfloppy.sh'
archiveArtifacts 'tutorial.pdf'
}
}
stage('Update gh-pages from master') {
when {
environment name: 'CHANGE_FORK', value: ''
expression { GIT_URL ==~ 'https://github.com/osdevelopment-info/.*' }
expression { GIT_BRANCH ==~ 'master' }
expression { currentBuild.result == null || currentBuild.result == 'SUCCESS' }
}
steps {
sshagent(['6452f2aa-2b69-4fa7-be5f-5f0ef6d3acba']) {
sh """
git clone --no-checkout \$(echo ${GIT_URL} | sed 's/https:\\/\\//git@/' | sed 's/\\//:/') checkout
git config --add user.email ci@sw4j.org
git config --add user.name "CI Jenkins"
git config push.default simple
cd checkout
git checkout gh-pages
cp ../*.pdf .
cp ../bootloader/bootloader bootloader/
cp ../bootloader/bootloader.pdf bootloader/
cp ../bootloader/makebootfloppy.sh bootloader/
git diff --quiet && git diff --staged --quiet || git commit -am 'Update program and documentation'
git push
cd ..
rm -rf checkout
"""
}
}
}
}
}
......@@ -7,6 +7,8 @@
\newacronym{gdb}{GDB}{GNU Debugger}
\newacronym{gui}{GUI}{graphical user interface}
\newacronym{os}{OS}{operating system}
\newacronym{tlb}{TLB}{translation lookaside buffer}
......
\newglossaryentry{centos}{
name=CentOS,
description={a Linux distribution}
}
\newglossaryentry{debian}{
name=debian,
description={the Linux distribution used in this book}
description={the Linux distribution used in this book for the \gls{vm}}
}
\newglossaryentry{debugger}{
......@@ -14,6 +19,11 @@
description={a version control system}
}
\newglossaryentry{git-lfs}{
name=git-lfs,
description={an extension to \gls{git} for handling large files}
}
\newglossaryentry{linux}{
name=Linux,
description={an operating system}
......@@ -29,6 +39,21 @@
description={the \gls{x86} emulator used in this book}
}
\newglossaryentry{ubuntu}{
name=ubuntu,
description={a Linux distribution}
}
\newglossaryentry{vbox}{
name=VirtualBox,
description={a virtualization software running on different \gls{os}}
}
\newglossaryentry{vmware}{
name=VMWare,
description={a virtualization software running on different \gls{os}}
}
\newglossaryentry{x86}{
name=x86,
description={a microprocessor architecture based on the 8086/8088 from Intel}
......
......@@ -144,17 +144,25 @@ requirements on the tools. Also we have nothing that supports us with doing regu
the screen. Therefore most of the time we will run our programs in an isolated environment and see the results directly
in a \gls{debugger}.
If you are used to work with \gls{linux}\index{Linux} then please go on to section \ref{sec:environment/setup}. There I
list all software needed and give a short introduction to each of this tools.
If you are used to work with \gls{linux}\index{Linux} then please go on to section
\ref{sec:environment/setup}~\nameref{sec:environment/setup}. There I list all software needed and give a short
introduction to each of this tools.
If you do not know \gls{linux}\index{Linux} or are not used to work with the \gls{acr-cli} then it is best to continue
with section \ref{sec:environment/vm}. In this section I will show a \gls{vm}\index{VM} that contains everything and
also give an instruction on how to use everything with a step--by--step introduction.
with section \ref{sec:environment/vm}~\nameref{sec:environment/vm}. In this section I will show a \gls{vm}\index{VM}
that contains everything and also give an instruction on how to use everything with a step--by--step introduction.
In either case after setup you should go the section
\ref{sec:environment/test setup}~\nameref{sec:environment/test setup} to make a short check of your setup.
\section{Setup}
\label{sec:environment/setup}
Needed software:
If you already use a \gls{linux} system and know how to use the \gls{acr-cli} then you need to ensure that some software
is installed.
The following software is included in the standard repositories of most distributions, at least \gls{centos},
\gls{debian} and \gls{ubuntu} have the software in the repositories.
\begin{itemize}
\item \gls{nasm}
......@@ -163,9 +171,27 @@ Needed software:
\item \gls{git}
\end{itemize}
You additionally need to setup an additional repository to install \gls{git-lfs}. The installation instructions for
setting up the repository for \gls{centos}, \gls{debian} and \gls{ubuntu} can be found at
\url{https://github.com/git-lfs/git-lfs/wiki/Installation}.
TBD manual setup\marginnote{TBD manual setup}
\section{VM}
\label{sec:environment/vm}
If you are not using \gls{linux} or not used to use the \gls{acr-cli} on a daily base then the \gls{vm} created for this
tutorial is perhaps helpfull for you.
TBD download instructions\marginnote{TBD Download}
I created the \gls{vm} using \gls{vbox} and also checked it with \gls{vmware} Player. For \gls{vmware} an additional
step is needed which is explained later in this section. The software should also run with other virtualization software
but this is not tested.
The \gls{vm} is a \gls{debian} installation with all additional software installed. The \gls{vm} does not contain a
\gls{gui} and is only installed with \gls{acr-cli}.
So to help you with using this tutorial I created a toolset that may help you. Basically I created a \gls{vm} that
contains everything that you need to see the instructions work as explained in this book. The \gls{vm} contains a basic
\gls{debian} and all tools needed to run the examples. The tools installed are \gls{nasm} (used to assemble your
......@@ -248,7 +274,7 @@ This file sets the correct breakpoint and program layout for \gls{gdb} and tries
already be running when calling \gls{gdb}.
\section{Test Setup}
\label{sec:environment/test setup}
\begin{itemize}
......@@ -1385,7 +1411,7 @@ This is a temporary chapter to help me organize this book.
\section{Introduction}
There are two different syntaxes for assembly language for the \gls{x86} assembly language. One is the
AT\&T\index[idx]{Assembly Syntax!AT\&T} syntax and the other is the Intel\index[idx]{Assembly Syntax!Intel} syntax.
AT\&T\index[idx]{Assembly Syntax!AT\&T|(} syntax and the other is the Intel\index[idx]{Assembly Syntax!Intel|(} syntax.
The difference looks like this:\\
\begin{minipage}[t]{0.5\textwidth}
......@@ -1556,6 +1582,8 @@ mov AH,[ESI]
\end{minipage}
\vspace{1ex}
\index[idx]{Assembly Syntax!AT\&T|)}\index[idx]{Assembly Syntax!Intel|)}
\printglossary
\printacronyms
......
version https://git-lfs.github.com/spec/v1
oid sha256:f31dbc40f88f9aa1f0ca3d6d812393eec8f1788f632dfa3040ae7749752c2aa4
size 192720
oid sha256:65af6dd76db286720479ce86907308b8b6e9099379609d41065090a3467bfa6d
size 195764
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment