# client
# sender
# recipient
# relay
smtpd_client_restrictions=
smtpd_sender_restrictions=
smtpd_recipient_restrictions=
smtpd_relay_restrictions=
smtpd_data_restrictions=
smtpd_end_of_data_restrictions=
smtpd_helo_restrictions=
smtpd_etrn_restrictions=
mynetworks=
myhostname=
smtpd_helo_required=yes
# permit_mynetworks
# check_policy_service
# unknown
# reject_unknown_client
# reject_unknown_client_hostname
# reject_unknown_reverse_client_hostname
# reject_unknown_hostname
# reject_unknown_helo_hostname
# reject_unknown_sender_domain
# reject_unknown_recipient_domain
# hostname
# reject_unknown_client_hostname
# reject_unknown_reverse_client_hostname
# reject_unknown_hostname
# reject_invalid_hostname
# reject_non_fqdn_hostname
# reject_unknown_helo_hostname
# non_fqdn
# reject_non_fqdn_hostname
# reject_non_fqdn_sender
# reject_non_fqdn_recipient
# sender
# reject_non_fqdn_sender
# reject_unknown_sender_domain
# recipient
# reject_non_fqdn_recipient
# reject_unknown_recipient_domain
# unauth
# reject_unauth_pipelining
# reject_unauth_destination
a CAPABILITY
a LOGIN "user" "password"
a LIST "" *
a SELECT INBOX
a FETCH 1 RFC822
a STORE 1 +FLAGS (\Seen \Deleted)
a CLOSE
a EXPUNGE
a SEARCH
a LOGOUT
HELO/EHLO
MAIL
DATA
RST
VRFY
EXPN
NOOP
QUIT
Return-Path:
Recevied:
From:
To:
Subject:
Date:
Message-ID:
User-Agent:
MIME-Version:
Content-Transfer-Encoding:
Content-Type:
Importance:
Reply-To:
X-Assp-..:
X-Priority:
%{
#include <stdio.h>
#include <ctype.h>
%)
%token NUMBER
%%
lines : lines expr '\n' {printf("%d\n", $2);}
| lines '\n'
;
expr : expr '+' term {$$=$1+$3;}
| expr '-' term {$$=$1-$3;}
| term
;
term : term '*' factor {$$=$1*$3;}
| term '/' factor {$$=$1/$3;}
| term
;
factor : '(' expr ')' {$$=$2;}
| NUMBER
;
statement -> assignment | cond | loop
assignment -> id := expr
cond -> if boolexpr then statement fi |
if boolexpr then statement else statement fi
loop -> while boolexpr do statemend od
expr -> boolexpr | numexpr
boolexpr -> numexpr cop numexpr
numexpr -> numexpr + term | term
term -> term * factor | factor
factor -> id | const | (numexpr)
./skript.sh
/bin/bash ./skript.sh
bash skript.sh
#!/bin/bash
# Die ist ein Kommentar
echo "Ausgabe"
var1=Hallo
var2=Welt
echo $var1
echo $var2
if [ $var1 == $var2 ]
then
echo $var1
else
echo $var2
fi
while [ $var1 == $var2 ]
do
echo $var1
done
for var3 in "a " "b " "c "
do
echo $var3
done
typeset -i i=3
i=$(( 5 ))
i=$(( 4+5 ))
while [ $i -le 50 ]
do
echo $i
i=$(( $i+1 ))
done
useradd
userdel
usermod
newgrp
groupadd
groupdel
groupmod
passwd
id
chsh
chfn
cp
mv
mmv
cd
rm
rmdir
unlink
touch
cat
cut
mkdir
diff
comm
locatedb
update
dd
lsof
lsblk
blkid
mount/umount
pwd
man
info
rsync
rename
dirname
basname
shred
sort
split
uniq
Pipeline
Pipeline-Stufe = Pipeline-Segment
Pipeline-Register
Pipeline-Maschinentakt
Durchsatz einer Pipeline
1. IF = Instruction Fetch = Befehlsholestufe
2. ID = Instruction Decode = Befehlsdekodierstufe/Operandenbereitstellungstufe
3. EX = Execute/Adress Calculation = Ausführungsstufe
4. MEM = Memory Access = Speicherzugriffsphase
5. WB = Write Back = Resulutatspeicherphase
Befehl holen
Befehl dekodieren
Operanden Bereitstellen
Operation in ALU
Resultat zurückschreiben
Pipeline-Konflikte
Pipeline-Hemmnisse = Pipeline-Hazards
1. Datenkonflikte
2. Struktur- und Ressourcenkonflikte
3. Steuerflusskonflikte
Datenkonflikte
1. Echteabhängigkeit = RAW
2. Gegenabhängigkeit = Anti Dependency = WAR
3. Ausgabe = RAW
Behandlung durch Compiler
Erkennung durch Hardware - Pipeline Sperren Interlocking...
BTAC - Branch Adress Target Cache = Sprungzieladresscache
Branch Adress Cache
BTB - Branch Target Buffer
1. Predict always not taken
2. Predict always taken
3. Predict backward taken, forward not taken
1. Ein-Bit-Prädiktor
- T - Taken
- NT - Not Taken
2. 2-Bit:
- Predict strongly taken
- Predict weakly taken
- Predict weakly not taken
- Predict strongly not taken