Dear viewer, these subtitles were generated by a machine via the service YouTube and therefore are (very) buggy. If you are capable, please help us to create good quality subtitles: https://c3subtitles.de/talk/2271 Thanks!
so with this I would like to introduce
Danielle who will give us a talk about
computers as a
whole uh so um he does realist holistic
research on computers so not just the
hardware but how it all comes together
thank you and welcome thank you for
giving me the stage you might know me
from previous years on the
stage now we're here on fire
shs in preparation or a um earlier I
talked about a lot of very
specialized areas and today I want to
make it more
holistic and talk about
computers and we'll go into different
directions so let me give you an
overview
first I would like to talk about what
it's like to design a computer as a
whole so not just the thing that you're
looking at in the Shelf but also what's
within it and the second part
is what you can discover when you buy
when you've bought a computer and how
you and third is what is between us and
the
computer that means platforms and
systems as well as interfaces and
layers and at the
end I would like to invite you
to go a step further yourself and
introduce you to some research and some
possibilities where you can become
active
yourself so
design designing a computer is not
something you do just like that there's
a lot of inventions that humans have
achieved and they all took
time and the term design is relatively
new in the
1960s
the term design was probably the first
time introduced into
Computing and it people began to define
the term more sharply because design can
have a lot of
meanings you can design
clothes where you think of fancy
clothing
but it has um other aspect as
well design
is has the purpose of helping to find
Solutions on the other hand design
should deal with complexity that means
analyzing things understanding things
and thinking about things differently
giving them new names maybe or um
creating a better way of understanding
them so that makes it an iterative
process
you go one step and then maybe improve
on that
step try out new
things I went to talk about computers
today and when I built my first computer
in the
2000s um there were sharp edges in the
computer you could actually um cut your
finger and of course that happened to me
as well
because I SLI I SLI my finger somewhere
so at some
point people got the idea that maybe um
you
should trim down the edges so you can't
to it
yourself when building a
computer so people started to think
about how can you design design that
sounds stupid but design thinking is
something like a
framework it goes from finding ideas
together with a
colleague people getting into
conversation trying to Define things
Define what makes up a product and then
you develop
prototypes get feedback on them and all
of that is repeated several times or
runs in parallel
even and
the interaction design Foundation found
it
itself and in their websites which are
linked you can find a lot of
literature and they also have
conferences on the
topic for example I've linked you a
paper and I can recommend you to have a
look at that because it helps you get a
deeper understanding of the design
process now I would like to come to the
principles of good design because that
isn't
easy when you buy a
product um you tend to think about is
that really a good design do I like it
and
someone really thought deeply about that
that was Da RAM and he did that in in
the 1970s he asked himself is my design
a good design or what makes a good
design and he found 10 principles which
are relatively well
known and I I'll still I'd like to show
you them so get design first is
innovative so do you create something
new are you creating something new or
are you just reheating something
else is your
useful does it is it useful for its uses
or is it something they'll throw away in
a few weeks or maybe is it something in
between so I already talked about fancy
clothing there's people who say oh it's
pretty it's a nice
design but that's only one of the 10
aspects listed here
next question
is is
it
understandable you can design products
that no one
understands and we'll talk about that
and still today
sometimes even I I'm working as a
software engineer and sometimes I find
that's too
technical for example in the last
company I
worked then it's also about
honesty you shouldn't hide
things and this is sometimes neglected a
lot we want that honesty and I would
like to see more of that
Honesty also for example um being
conscious of the environment is part of
design making your product
sustainable one very interesting
aspect is um did I overdo
it did I do too much and this is the
aspect of complexity which I mentioned
earlier we want to have a holistic
look
so
whole is um like the term we're talking
about
here and basically the adjective whole
was turned into another adjective which
is
holistic and if
you think about sometimes when you think
about products um people ask well who
did did that um who designed that
[ __ ] maybe some feedback was missing and
there's way to ways to improve that
design there are things that are very
difficult to design for example building
a house or a
Hardware in software it's different
we'll get to that
later then there's these typical
questions why didn't they consider this
this is just so
obvious so for example sharp edges in a
computer why didn't somebody think that
people could hurt
themselves why don't you round off the
edges why didn't anyone think of this
well they learned from it and this is
the iterative part of the process
there'll always be a new design re
sharpened design
so we want to look at the system as a
whole when designing a computer from the
in from the outside to the inside make
it transparent and
understandable and that isn't easy in
itself like building a city or building
a
building a lot of those same thoughts
come in there for example the
environmental or energy saving
aspect so in this image this is about
the
whole so you could apply that to a city
or even a whole
country so how does the product for
example affect the people that are using
it there are so many things that would
be easy to fix for example like public
bins or public toilets if you think
about cities but on the other hand
someone has to be
responsible people also have to be
responsible for example if a bin isn't
available they need to find another
one so if you want to make good design
you need a lot of knowledge and
experience especially when it comes to
computers is also something that is very
current in
research knowledge is being researched
on you
could you can classify knowledge as
explicit and implicit
knowledge so explicit knowledge is
something you can write
down
and we can we can basically give someone
a book and say hey this is everything
you need to know about X or you can have
a series of lectures about it at Uni or
at school this is direct transfer of
knowledge and what about things that you
can't easily write down this is what is
called implicit
knowledge it is something you learn by
doing by
experimenting for example
it can start with children when children
start walking and
speaking when parents try to teach their
children to
speak like when you think about how did
I learn to
speak this is not something you would
know consciously it just
happens so a lot of things happen
subconsciously
you pick it up along the way and you
don't really question it
afterwards and
there's a whole science that tries to
look into those
processes and then we have subcategories
of
knowledge
there's as a kind of knowledge that
isn't just subconscious that just comes
from
experience this is T it
know it is something you gather for
example while working a job it's just
those things you basically just
know it's things that are usually not
written down and where sometimes
people are like why did no one ever
write this down let's write it down
now and it's not even easy to explain
it
and the
other thing is that takes us back to
companies for
example or even your own household it's
called tribal
knowledge so that's knowledge that only
specific persons or groups of persons
have and it may even be things that we
forget and that are never written down
but still people know it they know how
it works and for example a coffee
maker you you've long since lost since
lost the manual but you still know how
to operate the
thing so this would be an example of
tribal
knowledge or there's sometimes there's a
niche person who is responsible for a
certain
task and if he
think from the company's perspective you
would have to be careful um because that
person might not be there at some point
and this is also a thing that applies to
computers I would like to now give you
some
thesis my first thesis would be that we
have a lot of knowledge about computers
but it's very hard to transfer that
knowledge
so because when I start using a computer
I learned so much not just general
concept but also very specific
knowledge people who are trying to get
used to a different operating systems of
math
difficulties and they have to transfer
some of the
knowledge they know from their previous
operating system but they kind of need
to get to know the specifics of the new
operating
system and then it's still some sort of
a mystery of what what can I transfer
from from one computer or product to
maybe another one maybe I have one
laptop that has a control and uh key on
the left side and then there's the FN
key uh that maybe enables different
functions right next to it but then
there are computers that maybe have it
the other way around
um and I I bet that there are many of
you that uh have suddenly used a
different laptop and uh are not used to
that and then there are people that
actually will reconfigure the keyboard
uh to to have it
matched and so maybe the question will
occur what what can we do with this to
make this uh more easily understandable
and so the question becomes is is my
design a good design did I make this uh
understandable there there are companies
that actually decide to do things
differently just just to be different
there's uh one that um might be more
well known that uh creates a lot of
devices there are lots of functions that
are very different there are Keys you
might not find when you use them for the
first time or maybe they're not even
labeled
and
now I will take a few steps back how did
we get to even having these these
computer
things that actually started a long time
ago in the
1940s there were the first
electromechanical computers that were
built the Harvard Mark 1 for example uh
maybe you know the the place
Harvard purpose computer it was a
so-called general purpose computer you
could actually use it for for various
purposes and this term computer actually
only created a bit later uh over over
time um before that it was more of a
calculator and you will probably see
this term uh with a different example
later and the people that worked on this
one of the first computers were uh
Richard Milton block Robert Campell and
Grace Hopper that's probably a name that
many of you have already heard and
because they did very interesting
things um and uh invested a lot into the
development of computers and uh computer
science and computer
engineering
so um they also had the idea of maybe
creating a a language for computers that
is independent of the specific machine
um and uh wanted to try this because
they had this idea this language she
created was called
flowmatic um but it was the basis for
Cobalt which many of you will probably
heard even modern day
AWS Amazon web services allowed allows
running cobal on the machines that's a
language that was is almost 80 years old
and it can still be
used and this is what this looked like
with the harat one it uh used a system
of um
card and uh this
is uh a bit more difficult than what we
do nowadays with just writing some text
it was harder to read and uh especially
write let
give but okay let's keep going for a bit
after a while the electronic
computers uh came up an example for this
is the Inc which was also a general
purpose computer it was the first one
programmable digital
computer and here as well there were a
couple of people that uh programmed
these first this was usually woman's by
Woman by the way uh Jean uh there was
um bet hton and marn MZ and good title
bom they can actually be seen in this uh
picture uh replugging various cables to
program
uh Francis Pence also worked with this
machine so what did they leave us they
actually invented the concept of
breakpoints which is something that is
still used a lot in modern day software
engineering to stop a machine to have a
look at the current state of the system
what is currently going
on I mean you have to think of this
concept at some
point Kathleen Antonelli actually um
thought about uh the these huge programs
that they wrote and thought about
whether one could group sections of that
to run repeatedly that's basically the
concept of sof routines this was very
important because the the machines were
used imagine it like a series of
fridges um I mean it's it's kind of
similar to what you can see in in a
modern day
uh Computing
Center
this was just one computer back then
because these small integrated circuits
were discrete
wires but then things got a lot
easier at some point people got the idea
how can we create a switch but digitally
and maybe that was not the the actual
thought but it's basically what they
did so I am showing a small schematic uh
transistor here it has three poles
there's uh an input on the top and an
output on the bottom and depending on
what's given on the side uh
might allow current to flow through or
not and we can even um celebrate a small
anniversary here because on the 23rd of
December the transistor turned 75 this
year there were a couple of Articles and
various newspapers which you can also
find
so this was the year of 197 uh
1947 where the first transistor was
built and uh actually was produced a lot
quite soon I uh want to reference and uh
lead you to the page pbs.org here they
have a large archive with a lot of
knowledge about uh how the transistor
was created and lots of interesting
images all right so programming
languages we already already talked
about um formatic but there is a
language that's a bit different and
that's the so-called assembly
languages so people that work with
lowlevel programming like
microcontrollers and maybe other things
uh might have heard of this or maybe
even use
it assembly languages uh are also very
very old they uh stem from
1947 this is Kathleen booth that had the
idea back
then uh this is also a somewhat more
tragic um anniversary she turned 100
this year and then died and she together
with her husband uh designed computers
and these were some of the first uh
programmable
computers and this was one of the the
the largest breakthroughs that uh
happened in this realm and the idea of
the Assembly Language was that users can
actually read the machine code um the
this was a
design how is it how if I want to use
this language I don't I can't really
talk a lot about formatic or Cobo
because I have never used those
languages but with assembly I have
worked a lot and well if I know how this
machine works on the inside then I can
actually um use this Assembly Language a
lot it helps me a lot to to understand
what's happening I'm writing through
this register I'm changing this
and all of the higher level languages
actually also mostly just refer to these
things these
Concepts so this was one of the first
programmable computers that had a
storage
actually delay stage and uh this was
called the ATAC the electronic delay
storage automatic calculator not
computer so where did this come from
this uh was came from Cambridge actually
and they actually wrote a very extensive
manual uh for this
design um they described how how does
this work from uh from the
inside and uh included all of the
details in their manual this is not
really understandable anymore
nowadays um there was an assembly
language for this actually it was called
initial
orders conf
that may be sounds a little confusing
but it's also very
interesting and they had this diagram
that's what that looked
like there was a starting button starter
button that's what we know from nowadays
as well then there's a
St there's a storage
store uh something to read things
something to record
things and the computer written with an
O that's where you can see that um this
might be a little bit older and from
Britain
and yeah so the the actual
other way to ride it came
later there was a company that figured
they wanted something like this as well
and they were called J
Lions they actually um operated um tea
houses and started making uh computers
later so-called GE computers
and that's also what the the company
called it itself and the Leo
one was actually based on this
concept and I'm 58 people change a
little bit there
um noise start with Fair child
semiconductor and he started develop
integrated
circuits and he was wondering how how
was I working with the transistors it's
not possible to slim them down further
make them even smaller and finally we
have the uh option of of of grading is
very small one and it it it pretty close
to what we have nowadays and they are
just like figure tip sized uh little uh
circuits um not sure if that's just a
picture of an IC or it's actually the
real thing
but in
parallel little bit
earlier Jack kby had a similar idea but
it was not the exact same idea the idea
of Rober noise was more
purposeful we skip ahead another 10
years and we come to the age of the home
computers uh you probably heard of them
from old Tales back in the days
and some people over yours are might be
a little bit older might
remember uh among these there were a few
of these uh that's the Holy Trinity of
the home computers uh at the end of the
70s we have the company K
Apple there were a lot of computers that
were start being
manufactured uh compared to what we saw
earlier right
those were more for designed for
research
um this one was wiely
spreads these you had like multiple you
could just go to a shop by them
and the earlier models we saw they they
are often not they don't exist anymore
as a hole and they ended up in in in
museums and ended on this place uh
they consist of a lot of parts
um but there it continued to home
computer from the home computers we uh
continue to the personal
computers how how is it to to own your
own device that
would uh would be cool right
um can one that's considered the first
first a personal computer that's uh
around 50 years ago and there's a um
Wikipedia page that that's uh dedicated
to the history of personal
computers um the next one is
zerox that was in in United States and
they made a bit of research on on what
what you could do with one of those
computers and had the first idea to to
build like graphical surfaces graphical
user interfaces uh what what I'm just
doing with the most that was develop uh
developed invented at that time even
ethernet uh was was introduced by them
uh what we know nowadays for all local
area
networks that was back in park in a
research CER in Paulo Alto uh where they
all Vel this uh we go a little bit ahead
and we have a paradigm
shift the computer is is not something
anymore that just a programmer uses
we we get to a point where is this like
a consumer product um everything we have
nowadays uh like what we watching now
the live stream for instance this is all
happening on a on a computer it could be
like a smart screen or but it's
Irrelevant in the end of the day it's it
is a
computer back at that time uh that was
not the case the the users of a computer
but Al were also the same people who
were programming the computer that's uh
still the case today for some but the
majority of people are users and not
programmers and back in the days you you
still need people to who monitored the
computers who who uh had to to kick the
kick it a bit to make sure it is running
that we're operating the device now that
we we have an operating system uh the
device takes care of operating
itself the next revolutionary step were
the
microprocessors uh what is a
microprocessor
uh a microprocessor consists of a lot of
of of Parts on itself first of all it's
like an integrated circuit but there's
not only a Computing unit there's also
um storage unit in
there the first of that kind was the
inel uh
404 that's also around 50 years ago it
was a a 4bit uh a 4bit computer not 64
like noway it's not a typo it was
literally 4bit uh over the time it
became more obviously in 10 years ahead
81 uh
IBM developed D IBM PC uh which is still
considered as the reference device it
was based on an Intel processor and the
uh at that stage they started with the
secrecy on the development um they uh
within IBM there only like a handful of
people who who knew what's going on uh
in the development s of
things the first uh laptop
um came around the same time it was
based on on the the Intel uh processor
same Intel processor and they put a lot
of thought in to into the design of that
and they they uh um took took another uh
industrial design on board like Jack
Hall and they uh they thought about the
whole process as a
um as luggage as as a briefcase uh that
you that they designed the whole product
around it this was very uh interest
interesting accessory that was uh
developed there
at this stage we are going to make a
little stop on a time travel
and we start um discovering the computer
go back to
nowadays I want to take a look at how do
you discover a computer
today uh what is a computer I talk you
about integrated circuits and then
processors you have storage you have
peripherals and um when you when you
think about it a little bit further it's
it's everything what we have in the
computer nowaday uh like the the laptop
computer I have in front of
me I I'm surrounded by cameras and they
all they all include a processor they
all include storage that that's uh
creates a basis for our live stream and
I have like even a little small monitor
in front of me and there are three more
just for uh for audio that I can see
like uh I'm I'm still audible gives me
feedback and and they are like just
totally
normal and we don't perceive them
actively
anymore and I going to go and take a few
more examples of every day Electronics
just go into
Supermarket uh shopping center have
parking lots uh and then the sensors
they show you uh give you information
about the capacity of the parking lot uh
so that means at one part there are
sensors there register is there a car on
that parking lot and uh then you have
like a counter that counts down like uh
the availability of the spots is is a
spot free or
not
and it just keeps counting and and you
can uh distribute those those uh parking
lots and you can distribute them across
different spots and and there are even
guiding systems if there's a big system
uh these are guiding
systems same for uh elevators escalators
automatic doors they they can be weird
sometimes but uh they stop working from
time to time but uh I was at the
University in Ro and the escalator
there only 5% of the time it was
available um it it had to to carry a lot
of loads
and we don't think about those details
any more about the the the controls of
these
devices we we're used to it we we just
stand on it it start moving that's what
the electronics are there for
when we get inside the
supermarket and uh we can see price tags
and I only consciously perceive them
this year uh they have like little e in
displays they they are not very power
hungry uh very efficient just need teeny
tiny bit of electricity to add there uh
but they they they hanging there and and
showing showing us the prices all day
long uh
maybe a can of pece has price Euro and
we can
change they are
sometimes they can be as fancy that they
are uh connected uh interconnected and
they can remotely be
programmed you could use like an adapter
to change them but no now they are even
remotely connected it's
like um and if we continue there uh to
the uh to the till uh to the check out
we have barcode
scanners very early we we had to write
down by hand uh or we had typewriters to
to write down the prices and you all
know remember the Tils with the uh
little crank on the S
side but now there we we can do the self
checkout we can pay uh
electronically and
I I don't even need cash anymore uh
where I leave fingerprints I can just
leave electronic uh fingerprints
there now we go down to the the more
horrible part it's uh
the
uh laughing in the
background we're going down to the iot
Lane so uh where think about uh fridges
that are interconnected washing machines
that can tell you way I'm
done with a with coffee machine I
wouldn't need myself but some people
think it's it's it's helpful that they
are able to see on the phone uh the
progress
there all the gadgets we
see USB Sig actually are a small a small
computer and the
we have appliances for for almost
everything uh in medicine in medical
sector there's so many devices um that
are if you get an
x-ray there is so much electronic so
many electronic devices involved um and
I I took a closer look at a few of those
systems if if you're interested
uh you you can look for other
Talks by myself on on those
topics and more interesting uh
development that I I consider more
useful is the smart it's a Smart Home
Smart
building so if you remove the smart
gadgets because there are a lot of of
lunatic devices in there but uh there
are some useful approaches where we can
use Smart devices to uh to be helpful to
collect data in a
way um where we can guide the traffic uh
change how we design streets and Roads
and air how to measure the air
quality yesterday I I saw a small report
on the on the Hamburg
Harbor it's it's so the density of
buildings is so high uh you need sensors
to to understand the air quality in in
that area uh to avoid people getting
sick and and you that's something you
want to avoid right uh another example I
was uh traveling around and I saw uh
Street lanterns uh some of them were on
some of them were
off
and
and they they turned
on when I when I approach them they
turned on and then I turned around and I
I I understood uh the ones I passed they
turned off again so that means somebody
uh thought about how how can you avoid
wasting energy uh by just turning on the
lanterns while actually somebody's
walking by there walking by that
area and as we saw like the and uh
environment is a big topic but we also
have uh the entertainment
sector uh for instance Google Zia which
I uh I added rip there because it's like
uh off the market uh Google created
these these Gaming controllers they even
send it to people uh for free sometimes
and the idea was um how can you play a
game um maybe you can just have played
the game in the cloud and you just
controller and back in the days I
already assumed this is uh this is like
a dead duck but um on the other hand
maybe maybe it it would have been
helpful uh because it's uh more energy
efficient and you don't need to have
like a computer in every every household
you just like run that centrally but uh
difficult to achieve and uh now as you
can see we only have like three weeks
left January 18 means that's the end of
life for Google
CIA and as you can see uh I I took that
controller apart and
uh a lot of people are asking the
question can you use it for something
else and actually it's not designed to
be used over Bluetooth or something else
so uh if you hack around you can get
access to a few bits and
pieces um and if you want to know more
feel free to talk to me about the
topic and we have a hacker space in bom
uh where we designed something similar
uh in the
labor and uh hey I noticed some people
have like cool badges for their for
their events and and I saw some uh on
the austr on a conference in Australia
the Aros conference uh almost 3 years
ago and they had a batch like this only
few simple displays on it and a little
microl roller and I thought told myself
I we can do the similar thing can how
can we do it more ha take and what what
kind of form factors do we want to have
and uh with
a team member uh we prototype a bit
around and that's the uh the uh Bard
that we created that
way and a few design thoughts we put in
there uh are going down direction of of
modularity you can reuse idea the board
for instance even if you have no idea of
of of uh of those boards
itself and of course you can program the
whole thing you can't see everything in
this
picture you have two um little LEDs
there um glowing arrows and you can also
connect to more monitors with a higher
resolution and below that you can see
two
buttons you might know them from older
machines they're like half a centimeter
in width just some little
buttons and underneath you have ERS for
joysticks like the controllers that you
know from today's gaming
systems and you can
just connect them
there and the module
itself
that's on it um can also be replaced you
can just use another
module today there's a lot of chips that
are designed in a way that this is
possible there's um so-called systems on
modules that means you have
manufacturing modules that you can see
here for example
this Square here that's a little darker
with the metal
plate is
actually just inserted onto that plate
and it has a lot of pins
that means that you could also use
another chip and do the same
thing I found that interesting and maybe
I can do some more with that so if
you're interested in that
just drop me a line it'll be really
interesting to do something different
there uh I just have to say that Google
is
um suspending this
project and yeah there's the link to our
batch and there's still people who hack
consoles it's still a thing we had um
presentations at the Congress but also
in the wider
hacker
movement who just took apart some Sony
controllers and
got into more detail
there all right and then there's people
computer design who still design
computers themselves and this is what I
want to talk about now and this is what
I would like to see more of in the
future
people getting into their computers
themselves for several reasons um
there's such a big industry behind
computer manufacturing today
so they're not really approachable
anymore if you have problems with your
computer if you're looking for info you
basically have to go to the
internet you don't know if it's a
software problem it's if it's a hardware
problem there's so many aspects that
could play into that and it's very hard
to get an understanding and we have the
possibility to get away from that to get
an understanding of our computer
and I'll come to that in more detail
later solution is
anro that was an interesting idea that
kind of fizzled out after some
time it was a computer based on
microcontrollers such as the one we just
saw or others that are available in the
meantime
and then you have a protocol that allows
devices to
communicate with one another another
interesting product is
Kon it's also something like a
PC and the form factor is it's exactly
the same that we had in the early 2000
was called htx it's the S of a
um for
platin and it's a design that many
people don't actively think
about but it's it's actually
exchangeable there's one design on
that's built on Rasberry Pi
Pico and only recently a few weeks
ago there was a small session on that
with a former
commodor um programmer and Jonathan um
pet who started the neutron project
and they've written a very expansive
book where they basically go in detail
and go into detail on the whole
design okay more computers what else do
we
have
we've got Moss which is a very
interesting project by Daniel
mangram he wanted to do something with a
strong
performance but still
understandable completely understandable
for
users so what does performance mean
maybe I have to go beyond the
microcontroller so he started looking
into chip
design Neutron is not not doing that at
the
moment it's just doing um using the Pico
to build something on that and Moss went
a step further
and looked into how to build one's own
chip and then
there's the um build an 8bit computer
from scratch that's also very
interesting and there's a similar thing
with the 82 86 system that was a thing
in the ' 80s
90s that's also very interesting there's
a big YouTube playlist on that that's
really worth watching and it's also
based on different
parts how about mobile devices there's
some very interesting projects there as
well I just picked two one of them is
MNT report reform laptop
the idea is to have a more personalized
computer everything's documented you can
look
at all of the um different switches and
different
modules
it's basically a modular computer with a
different form factor but the it's
designed in a way that you can look into
all of the going
on then um we have a phone project
that's the pine phone you can buy that
as a
phone and I have to be
honest the chips that this is built
on um are not that open there's you can
look at the code in big Parts but the
chips aren't completely publicly
documented
so if you look at Radio technology today
there's a lot of
have big data
centers and they have specific
requirements so they founded a community
where they thought about how to design a
hardware for those specific
requirements because if you run a data
center you have to think about
say you you can only save 10% of energy
that's a huge Factor not only for the
environment but also economic
so for those companies that's a huge
motivating
factor and there's a few
designs um that you can have a look at
from them it's not all open but at least
you can look at a large part then
there's
oxide oxide um built a w
server
but
and they rethought the design from the
beginning because today
usually you have many
manufactures involved in building those
designs and the software comes from a
completely different manufacturer than
the design of um the hardware and server
W and what they want to do is supply
hardware from very small
companies even in Big Data
Centers
so they might be a bit slower or they
might have this or the other bug that so
that you have to get
creative and a few students had a
similar
idea how can you down
Iraq because there's so many small
computers available today this is the
recket project that's very interesting
so I invite you to have a look there's
also a an online meeting where um I Al
also take part regularly and on Reet
doio you can find the
documentation so single board computers
I want to have a look off um at that
because it's a very common architecture
but there are
some aspects that you should pay
attention
to there's a lot of single board
computers which are marketed as open
source but you have to look behind that
what does it
mean for example the well there's the
open source Hardware Association who put
some thought into that and who tried to
find a definition of open- Source
Hardware so it means that you need to
have the plans for the computers so
which components are used and how do
they play together the whole design of
the board is part of
it manuals and everything how to work
with those devices from the beginning
and an open license those are the
minimum
criteria I'll add open the the source
code um the source code from the
beginning from the start of the device
and before that should be open there's
so many companies who don't have open
firmware for example rasbery
P I went and asked them about what about
open source code and their response was
basically yeah
no so I don't want to play the blame
game here because of course um they have
special contracts from where they sourc
their chips and so on but still as the
end user I don't have a complete
understanding of the whole product and
this is not what open source should
be I can look at the parts but not
understand the system as a whole and
this is where I want to
go there's people from the community who
are um working on Linux
kernels sometimes you can
find um files soal s stumps so you can't
even have a look at what is friend now
so that's not
cool so if you want to build code please
use a tool
chain
that um is act actually that I can
Source from somewhere and that I don't
have to scramble together from
elsewhere so tool chains that are ready
to use and even better if you have to
use your
own provide the source
code so and if you meet those
requirements you can get certific get a
certificate with the logo which you see
above so you
can file a request with the Open Source
Hardware and say okay I would like to
have my product certified as open source
by you and then you have
to um jump through certain
Hoops so it's the same like if um for
cars basically I I can't just build my
own car I have to have get it certified
and
approved I want to talk about
firmware
I already mentioned it a few times but I
would like to go into more
detail the term firmware is actually
badly defined or isn't defined at all
actually sometimes um it's called the
bias and then you give people a
raspberry piie and
there's a conceptual difference and some
people even know that it has and runs a
firmware there's
many meanings of
firmware
people for example um when they talk
about firmware they actually mean
operating
system sometimes the
ter inform where it's
stretched and includes like the the user
interface even it depends on the
manufacturer and the terminology they're
using sometimes the um definition is
overextended and sometimes it's the
opposite but the fixed part that is not
really
exchangeable there are certain things
that I need for my computer to become a
computer an interesting thought to think
about what do I even need to start a
computer yeah that's another
thing we're not 100% there but that's
okay
I think there should be an awareness for
how it all comes
together and for people to be able to
come together and
exchange for people to come into contact
with small companies for example there's
um
now um a
group The Open Source firmware
Foundation that um came
together as an umbrella
organization and they're saying that
they're um represent our par is
interested in open source
firmware okay and another project that I
want to include in the foundation there
is my firmware editor uh this is
something with with which I can load
some firmware Maybe maybe from a laptop
or some other device and um this will
then work by um analyzing the firmware
first then it's visualized for example
what does the storage use look like of
this um of the sare um file systems are
discovered and uh maybe ufi for example
is something that people might have
heard um then might be a bit of a
different thing but yeah there's always
a file system there
um there are some other file systems
that may be understood as well that are
worth looking at and you can maybe wipe
some files that you don't need uh for
example if I um have an email client on
the firmware by default then I can
remove it there yes I have actually seen
that
before and I can also export some
metadata from this
um which is actually something you can
give to other people and show them um
the interesting things that you
discovered an interesting new topic that
uh is being added there with in within
the understanding of computers that is
commonly not talked about much and not
documented very well is the the idea of
an Asom a software build of materials
the idea is what things belong to the
software
um so you want to know uh where does the
software come from who wrote it what
components are inside of there for
example that email
client and so
on yeah and now I started a new project
that I want to go more into depth uh for
this
talk so what is well okay I I talked
about firmware and firmware needs to do
something before it can start an
operating system but what what does that
actually
mean so we're talking about platforms
and systems here systems like operating
systems for example
okay so what's what's a platform we can
have a look at Wikipedia and there's a
quite large definition
here which says that it's a comp a
compute platform that is an environment
where software is
executed okay I think that's a a fairly
intuitive uh
definition it's something that I can can
run and run sof F but then it it maybe
gets a bit more confusing it it can be
Hardware or it can be an operating
system or it can be a web browser or it
can maybe also be a programming
interfaces maybe some other software
that's underlying is the the the
only condition is that it it can execute
my program
code okay this can be lots of things
now yeah
well so what what can also be included
that various abstraction levels maybe um
also the the computer architecture maybe
a part of
that or maybe an operating system or
maybe
runtime um
libraries that's still similar to to the
sentence before and then we have a bit
of a more compact
sentence it's the thing that computer
programs are r
on wouldn't don't really want to go into
this definition for too long but so yeah
there is a definition but it's it's
difficult to grasp it
entirely that is why I started this
project platform system interface is
what I'm calling it I want to have a
look at these interfaces for what what
is an platform what is a
system and I I want to narrow this down
uh and maybe be able to design uh create
some design guidelines from that the
idea is to create a spe
specification which is this PSI spec
GitHub repository on on the GitHub Arc
and the idea is to to maybe find some
different firmware projects and look at
how their boot flows look how they
interact with uh the operating
system and how how would I do that well
I have to look at all of the features
that exist
I want to extract them I want to compare
them and uh maybe evaluate and maybe
even improve
them maybe we can find some more useful
designs there's a small other thing that
we need to explain as well which is a
smaller side here we will talk about
buses
now this is something that is um
something that is very important to a
computer as a as as a
system buses there there are some very
common ones um what's a bus in Computing
for example these are usually
lines data lines running over some sort
of PCB but they can also be exposed uh
and a good example is the I Square SE
bus it's present in very many places uh
for example within your HDMI plug or
even
VGA um and that's how the computer even
knows what resolution the monitor on the
other side of the cable
has often sensors are connected uh using
this uh for example temperature sensors
on Linux there's uh a tool called I i2c
tools um which can show what I C devices
are on this computer then there are
protocols which is the sort of the
second half to communicate with other
devices I need some sort of protocol and
this protocol defines commands for
example
or information
codex and as an example a thing that one
can look at is um the SPI flash which is
a small uh storage chip that can be used
in
computers and uh it it can be read with
a very small command and in or boot
which is a project that I'm uh currently
building there's a very small system
defined how to read data from the
storage there's a only a read command
defined because we don't really need a
right command at
all and then there's conventions and
standards if you think about uh how many
things are connected via USB these days
for example mice uh keyboards USB sticks
phones um all the things can be
connected to computers but all of these
will only work because we have this uh
predefined interface and this is
something that that's how we create
compatibility and create a market
because devices can Market that they are
compatible with USB if you connect it to
your USB port it will
work but these buses are not only
external they are also internal buses
and they are deeply inside the computer
if you look at a microprocessor it do it
might often look like this
uh there's this is a basic schematic of
a microprocessor that the small chip
with lots of little
legs this is how this would look
schematically from the inside there is
often a system bus or maybe multiple and
there are lots of components that are
inside of the the the chip package that
will will make out the chip in the end
there there's a CPU for this there's a
little bit of
memory um then microl often have a um a
ROM a fixed nonvolatile U
Storage and then uh there are lots of
the um rudimentary commands are embedded
into this and then there
interfaces especially for things like
systems on a chip as an example I
included a uart interface here this is a
uh very simple part
that uh I can use to connect something
to exchange text it's just a Serial
interface and these individual
components inside of this are also
called blocks or
cores and uh if somebody talks about hey
I have this eight core then that means
there are eight of these uh CPU cores
blocks inside of the system and that can
communicate with all of the other
devices
another example is the so-called
Advanced high performance bus which is a
kind of originated in the arm uh area
and it's the the standard bus uh for
some reason with arm everything is
Advanced uh arm means means Advanced
risk risk machines but the the
architecture is actually publicly
available and well
documented all right so let's talk about
about complexity because I try to
explain all of this very
simply and so we have these uh different
ideas of instruction sets there's x86
Which Intel and AMD use which are very
very complex instruction sets there are
I don't know how many thousands of
instructions and uh barely anyone can
actually understand all of them and
that's why we have to document
everything uh so people can actually use
it and right software fit
and then there's arm which is still
quite
complex it um the letters the acronym is
for uh R the risk is reduced instruction
set but these are still hundreds of
instructions that uh can be computed by
this and then there's a new idea here
which is called risk five which is about
10 years old and you can already buy
chips for
it and their idea is that they created a
modular approach for an instruction set
for a computer and they do that using
open
specifications and um you can basically
well sort of easily um design cuse with
this it's a a bit simpler than
arm but uh it's still reduced so we're
still looking from the perspective of a
complex thing on to a a bit less complex
thing we're still only at a bit
easier and that's why we want to try to
reduce this even further Neil Neil foram
wrote a nice book called The productive
programmer uh and they thought that um
programmers
are um like complexity like uh moths
like like light um there's um yeah and
this it's equivalent because it's it's a
dangerous thing and um it can create
more
problems complexity can also be inherent
or given for example just like in
physics but we are discovering physics
it's not something we're
inventing we we just discovered the way
it is maybe we're looking at it in
different ways but essentially that's
just how it is and we have to accept
this
complexity
and once it gets too much we have to
start
reducing and the the opposite that we
want to reach is
Simplicity in software architecture
there are various approaches to achieve
this what is software architecture kevn
heny um who recently gave a talk about
this is the thing where developers
live
you can imagine this like houses for
example they're something to live in and
people cat about dark arure of those
things so they don't just fall fall into
rubble and uh has doors and
windows and that it's a similar thing
with softare architecture NE thought
said yeah most Architects and developers
pursue the latest and greatest and uh
with great F yet the history of
engineering including software projects
contains that's why I mentioned all of
these things how all of this was
created yeah includes lots of things
that we can learn from and uh maybe try
not to repeat their
errors and uh for there's this classic
quote that says that those who don't
know history are doomed to repeat
it
so let's talk a bit more about firmware
there's something called
uavi does that even mean uh it means for
it means something extensible it's an
extensible
extensible firware interface and this
extensible is a sort of a problem it's
marketed as uh something that gives you
more functionality and more security and
now if you think about that wait more
functionality why is that more secure
well of course it's not uh that's not
really how it works the more complexity
we have the more potential there is for
errors and so that's it it's supposed to
to run with this evolution of devices
and a couple of years ago maybe 20 years
or
something people thought about uh how
this may be able to be changed and then
there are people from Google and
Facebook and Horizon Computing and to
Sigma and they thought how can we um
create something from this ufi stuff and
reduce it into something more simple
something that we understand better for
our firware for example let's include a
Linux cner and that's how the Linux boot
project was created this it was
originally Nerf the non-extensible
reduced firmware that's where we have
this reduction aspect and uh Microsoft
had the same idea
well something is not quite running
right here and this is a bit complex and
they work together with lots of Hardware
developers and firmware developers and
uh wanted to uh reduce all of these uh
interoperability problems and they
created this
fasr uh project the firmware attack
surface reduction project which is a way
to also reduce the
surface um so yeah the the security part
of ufi apparent didn't work quite well
because there's a a
large um aspect of security
problems and now at the end I would like
to start talking about uh layers and
interfaces and uh maybe get a little bit
a hint what you can do yourself uh
nowadays so with layers uh we have a a
small problem uh it this inherent
problem uh there's a classic picture uh
xkz comic um that everything that we
have in modern
infrastructure uh it all it's based on a
very sensible component that can easily
break not
cool what I would uh add here if we if
we are building layers uh we will always
have interfaces and it is difficult to
design an interface and the more I have
the more problems I'm creating and
sometimes they are not
necessary but they also create
creativity SP creativity in are for
instance uh Linux Biers it's uh in 1999
in some uh data center some computers
were not working and somebody uh
realized that we can we can just add uh
Linux here uh similar to what we saw
with the Linux boo uh which then
involved into
corw
uh say again Linux would we just remove
a lot of the uh manufacturers parts and
we just replace it by Linux uh because
we can uh we can understand it
better and the question is is do you own
your computer if you don't own the
firmware if you if you can't understand
film where a lot of people don't care
because they uh they don't need that
they just understand it but there are
enough enough people who who actually
run into problems because of that uh if
you look around in forums um you you
find a lot of questions on where people
raise questions like can I boot from a
USB stick uh and and and further these
are all related to Firmware
problems
we don't do we just create a pic host
Boot
loer
and it's just loads it's there's no huge
uh user interface um just load it
similar approach you have in the uh open
system firmware uh which comes from the
open compute project it
just specify how the firmware should be
when you're creating the firmware uh how
it should be designed how you should
create the uh operating system on
it and the open system firmware group uh
ecosystem they uh can assist you there
and it's highly recommended to take a
look there if you're interested in that
topic on the other side you have
the layering grows
vertically it will
not more pretty because of
that but you can also have uh components
on the same
layer I can also take a different
approach uh where I offer various layers
um I can offer different
approaches uh but if you don't have the
ownership of these components then you
you can end up being stuck with these
layers one approach is the uh approach
by
Intel we make a three layer model for uh
firmware they first is like the the the
first level is done by us that's Intel
and
uh that is interfacing with the with the
hardware directly and uh above that uh
you you have the the lawyers that's the
sfsp components it's a it's a large
collection of of binaries so they are
not open uh it's hard to to Really
research them
um you you could find problems in there
but uh not
EAS heavy uh heavy Lo there have
multiple kilobytes just to initiate the
ram that's something that that's
potential to slim
that in the uh open source Firma
Foundation there is the a group that
that called silicon interface design um
they believe
in
the the binaries that should work with a
few
components uh that is then made
available to the open source
Community from a chip manufacturer
perspective but from my perspective as a
user uh I have a
different different approach and there
you have the me personally I'm uh
involved in the all boot project that's
a f that's written in Rust and I just
want to quickly elaborate how our uh our
boot flow looks it only has two parts if
at
all the uh the first part
is uh we just have a small boot part and
then we hand it over straight to the
next
part there's like small things you can
um
extend put in a Linux kernel and that's
the
idea uh the next part I have to to
shorten a little bit um it's runtime
Services the idea is to to abstract a
platform you define interfaces again and
and you you you turn the software as
part into to uh part of the platform
which is uh problematic if you turn the
software as part of uh of the hardware
layer because that creates a new attex
Surface and that's this company that uh
creat uh research these
vulnerabilities you have those uh
varable onetime
services that platform specific and have
the SBI specific and I'm going to have a
talk in the next days about
that and that's where we talk about how
to create those
interfaces you always need to implement
them on a per platform basis they are
not very portable and that's why they
have a group that uh
has built around that in order to
standardize these uh these Services uh
I'm afraid I have to
skip few bits and
pieces that's how uh calls look in those
run times uh I will give you more
information about that on The Talk The
Day After
Tomorrow if we go from register
to memory
uh we we attract problems that we
already solve with with taking these
back the the best idea is to just remove
these out of the
idea and what else can we do uh that's
how I come to my end uh on research and
development
s
how can we
avoid uh project ROM time you can find
approaches how you can avoid
forgeability
else what can you do in defending
software and What needs to go into the
hardare there's uh also something very
new it's a cachent project uh looks
after this and I only discovered it
yesterday but I can only recommend to
take a look there Hardware has also
other vulnerabilities like uh meltdown
and
Spectre uh they uh were targeting at the
M micro
microarchitectural uh designs and you
would need to redesign the entire
Hardware around
it then you have uh trusted execution
environments uh where you have like a
secure environment where you execute Cod
uh another approach is confidential
Computing uh where others can't see what
what kind of service are using that uh
that that computing power for instance
when you're like in a cloud computing
environment where you want to avoid
other people to see that
execution some talks uh I can only
recommends and literature very
interesting I I can't I will not go down
into DET on all of these um the P
Hennessy the hardware and software uh
interfaces are explained in the book by
Hennessy um other create your own
computers you can get fpga BS uh there
are
Frameworks uh there are
associations for instance the FY
Foundation the Z
and there are also C where you can learn
uh to create that and even Google offers
you to help you creating your your
fs and now the final question will your
design be a good
design thank you very
much
question
uh the internet was very busy listening
to your talk and they have a lot of
questions are there open source
Hardwares they
are running on Linux cuse uh that's a
difficult question because I will have a
talk in a day after tomorrow we have
a community that looks into the insight
and uh I have two platforms where we in
implemented all boots uh where we manage
the memory ourselves we have a better
understanding but not a full
understanding yet for some parts the
community has a very very good
understanding that's what I'm going to
talk to uh
tomorrow the other is not as well
documented and
I the
test Eagle
Foundation
where and we have the vision five BS
with a followup product uh that are very
similar they are in the off
boots
um and the link
twitch uh Twi stream you can hear me
talking
about what
uh single board is this is the most open
source uh computer if you want to close
Source get a uh Raspberry Pi and uh if
you want something open S the
eagle and uh systems based on the all B
and
rockwin the all winner has been looked
at a lot by other
teams there's a large Wiki where I wrote
a lot of articles on where uh we have a
list of a lot of different variety of
boards and I'm going to pick this topic
tomorrow
again and another question
[Music]
um I'm not sure if I direction of the
question um rolling up
patches
firware uh only itel provides these
patches there are from from updates uh
from time to
time they they come through the through
the O manufacturer
itself they include that as part of
their updates and can you repeat the
second part of the
question could you not um could not
control closed Source uh processors on
an open source way and uh yes of course
you could do that uh but it's not uh if
you figure out how that works but it's
not that
easy and uh it's
it's it's potentially it's possible but
so far nobody has uh figured it out
potentially would run into issues with
uh signatures and you will not access
this uh you will not have this Keys
these keys but you may find it
somewhere the question is there a
different this was a a very North
American European perspective uh where
there also um more Eastern perspectives
on this and uh yes uh other companies in
modern Asia uh like
Panasonic um Japan was uh was Advanced
uh if you take a look at the Wikipedia
page uh of the first home computers
where I looked at the Trinity and there
you will also find a Japanese version of
the
Trinity and the former Soviet countries
and uh for the for countries uh context
we have to understand the the country
uh were set up unfortunately very
similar to today they were not the best
friends and the they created uh also uh
their
own
um their own uh varieties but I I just
saw somebody on a vintage computer
Festival who was able to install Linux
on one of the uh sovic uh computer
varant so it's it's it's
possible that's how close
[Music]
there