200 lines
7.3 KiB
HTML
200 lines
7.3 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
|
|
<meta content="Pentabarf" name="generator"/>
|
|
<meta content="2011-04-24" name="DC.date"/>
|
|
<title>EH2011: Wie schreibt man ein Betriebssystem?</title>
|
|
<link type="text/css" href="../style.css" rel="Stylesheet" media="screen,print"/>
|
|
</head>
|
|
<body>
|
|
<div class="noprint" id="conference-logo">
|
|
<a href="http://easterhegg2011.hamburg.ccc.de">
|
|
<img alt="Easterhegg 2011" src="../images/conference-128x128.png"/>
|
|
</a>
|
|
</div>
|
|
<div class="noprint" id="menu">
|
|
<ul>
|
|
<li>
|
|
<a href="../index.en.html">
|
|
<span class="normal">Index</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="../day_2011-04-22.en.html">
|
|
<span class="normal">Karfreitag - 2011-04-22</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="../day_2011-04-23.en.html">
|
|
<span class="normal">Ostersamstag - 2011-04-23</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="../day_2011-04-24.en.html">
|
|
<span class="normal">Ostersonntag - 2011-04-24</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="../day_2011-04-25.en.html">
|
|
<span class="normal">Ostermontag - 2011-04-25</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="../speakers.en.html">
|
|
<span class="normal">Speakers</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="../events.en.html">
|
|
<span class="normal">Events</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<ul class="track">
|
|
<li class="track-hacking">
|
|
<a href="../track/Hacking/index.en.html">
|
|
<span class="normal">Hacking</span>
|
|
</a>
|
|
</li>
|
|
<li class="track-administration">
|
|
<a href="../track/Administration/index.en.html">
|
|
<span class="normal">Administration</span>
|
|
</a>
|
|
</li>
|
|
<li class="track-gesellschaft">
|
|
<a href="../track/Gesellschaft/index.en.html">
|
|
<span class="normal">Gesellschaft</span>
|
|
</a>
|
|
</li>
|
|
<li class="track-making">
|
|
<a href="../track/Making/index.en.html">
|
|
<span class="normal">Making</span>
|
|
</a>
|
|
</li>
|
|
<li class="track-historylessons">
|
|
<a href="../track/history lessons/index.en.html">
|
|
<span class="normal">history lessons</span>
|
|
</a>
|
|
</li>
|
|
<li class="track-meta">
|
|
<a href="../track/Meta/index.en.html">
|
|
<span class="normal">Meta</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="content">
|
|
<p class="release">EH2011 - 21</p>
|
|
<p class="intro">
|
|
<strong>Easterhegg 2011</strong>
|
|
<br/>
|
|
<em>the ccc family event</em>
|
|
</p>
|
|
<div class="section vevent" id="event">
|
|
<div id="infobox">
|
|
<table>
|
|
<tr>
|
|
<th colspan="2">Speakers</th>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<a href="../speakers/2874.en.html">
|
|
<img height="32" width="32" src="../images/person-0-32x32.png"/>
|
|
</a>
|
|
</td>
|
|
<td>
|
|
<a href="../speakers/2874.en.html">Andreas Galauner</a>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table>
|
|
<tr>
|
|
<th colspan="2">Schedule</th>
|
|
</tr>
|
|
<tr>
|
|
<td class="keyword">Day</td>
|
|
<td class="value">Ostersonntag - 2011-04-24</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="keyword">Room</td>
|
|
<td class="value location">Raum 1</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="keyword">Start time</td>
|
|
<td class="value dtstart" title="2011-04-24T12:00:00+02:00">12:00</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="keyword">Duration</td>
|
|
<td class="value duration" title="P04H00M00S">04:00</td>
|
|
</tr>
|
|
<tr>
|
|
<th colspan="2">Info</th>
|
|
</tr>
|
|
<tr>
|
|
<td class="keyword">ID</td>
|
|
<td class="value" title="4352@EH2011@pentabarf.org">4352</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="keyword">Event type</td>
|
|
<td class="value">Lecture</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="keyword">Track</td>
|
|
<td class="value">Making</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="keyword">Language used for presentation</td>
|
|
<td class="value">German</td>
|
|
</tr>
|
|
</table>
|
|
<table>
|
|
<tr>
|
|
<th colspan="2">Feedback</th>
|
|
</tr>
|
|
<tr>
|
|
<td class="feedback" colspan="2">
|
|
Did you attend this event? <br/>
|
|
<a href="https://cccv.pentabarf.org/feedback/EH2011/event/4352.en.html">Give Feedback</a>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<h1 class="title summary">Wie schreibt man ein Betriebssystem?</h1>
|
|
<p class="subtitle">Vom BIOS in den Userspace</p>
|
|
<img class="event-image" src="../images/event-4352-128x128.png"/>
|
|
<div class="abstract">
|
|
<p>Zu einer Zeit, zu der Computer noch raumfüllende Maschinen waren, gab es sogenannte Operator, die sich den ganzen Tag lang damit beschäftigt haben Computer mit Programmen auf Lochkarten oder Bändern zu füttern und auf das (hoffentlich korrekte) Ergebnis einer Reihe von Rechenoperationen zu warten. Als sich Programmierer im Jahr 1964 zum ersten mal Gedanken machten, wie man diese Prozesse automatisieren kann, wurde das erste Betriebssystem entworfen. Heutzutage sind sie auf jedem Rechner, den man vorfindet vorhanden und bilden den Grundstein einer Softwareumgebung, um Rechenmaschinen komfortabel und effizient nutzen zu können. Nerds wollen in der Regel relativ genau wissen, wie Systeme funktionieren. Um am besten zu verstehen, wie so ein System funktioniert schreibt man es selber. Die Grundlagen hierzu sollen anhand von Beispielcode und einigen wenigen Konzepten verdeutlicht werden.</p> </div>
|
|
<div class="description">
|
|
<p>Im Laufe eines Informatikstudiums hört jeder Student eine Vorlesung, die sich damit beschäftigt, wie Betriebssysteme funktionieren. Man hört viel über virtuellen Speicher, Swapping, Scheduling, Threads, IPC und noch viel mehr Verfahren und deren Funktionsweise. Da sich das in den Vorlesungen ja alles so einfach anhört fängt man als Nerd in den Abendstunden seines lokalen Hackerspaces an einen eigenen Kernel zu entwickeln.
|
|
Man liest sich durch die Intel-Manuals und fängt an wilde Interrupt- und Tabellen für die Speicherverwaltung zusammenzuschustern, damit es einem am Ende doch um die Ohren fliegt.</p>
|
|
|
|
<p>Der Vortrag wird anhand von Beispielcode zeigen, wie man seinen Code initial nach dem BIOS ans laufen bekommt, wie man danach seinen virtuellen Speicher zusammenbaut, Interrupts handlet und sogar Multitasking implementiert.</p>
|
|
|
|
<p>Vorwissen in Assembler (sehr wenig) und C sind hilfreich.</p> </div>
|
|
<div id="navigation">
|
|
<a href="../events/4369.en.html">
|
|
<span class="previous" title="We believe in an open social network"><<<</span>
|
|
</a>
|
|
<a href="../events/4364.en.html">
|
|
<span class="next" title="Wir proben eine Mini-Produktion">>>></span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="noprint" id="conference-logo">
|
|
<a href="http://easterhegg2011.hamburg.ccc.de/index.shtml">
|
|
<img src="'http://easterhegg2011.hamburg.ccc.de/img/eh2011_banner_final_o_LOGO.png" alt="Easterhegg 2011" width="1280" height="160"/>
|
|
</a>
|
|
</div>
|
|
<li>
|
|
<a href="http://easterhegg2011.hamburg.ccc.de/index.shtml">
|
|
<span class="normal">Home</span>
|
|
</a>
|
|
</li>
|
|
</body>
|
|
</html>
|