Mittwoch, 23. Februar 2011

In welcher Programmiersprache wurde Linux geschrieben?

(R:OK)
Heute werde ich etwas darüber erzählen, in welchen Programmiersprachen Linux und seine Software geschrieben wurde.

Der Kernel

Der Linux-Kernel ist fast vollständig in C (nicht C++!) geschrieben. Einige sehr hardwarenahe Komponenten wurden in Assembler programmiert. Man verwendete also keine objektorientierte Programmiersprache für den Linux-Kernel. Die Kernel der BSD-Derivate sind übrigens auch in C und etwas Assembler geschrieben. Wer in die Kernelprogrammierung einsteigen möchte, der kommt um ausgereifte C-Kenntnisse folglich nicht herum!

Userspace

Die Userspace Tools sind natürlich in allen möglichen Programmiersprache verfasst. Die meisten Startskripte, die beim Booten vom System ausgeführt werden, sind Shellskripte. Fast alle grundlegenden Anwendungen und Bestandteile einer Linux-Distribution sind jedoch ebenfalls in C verfasst. Dazu gehört zum Beispiel die C-Library glibc, der Editor vi und diverse Shells. Diverse grafische Programme  sind heute aber in Python, C++, Java und anderen Sprachen umgesetzt.

Es gibt einige Ausnahmedistributionen wie PerlLinux, bei denen versucht wird, diese Komponenten möglichst vollständig durch eine andere Programmiersprache zu ersetzen, doch das ist nicht unbedingt sinnvoll.

Sicherheit

C wird nachgesagt, es sei eine zu unsichere Sprache, weil sie anfällig für Buffer-Overflows ist, doch mit Stack Smashing Protection im Compiler und kernelbasierten Erweiterungen, wie Address Space Layout Randomization (ASLR) durch PaX, ist C eine diesbezüglich relativ sicher nutzbare Programmiersprache geworden worden. Im Übrigen gibt es massenhaft weitere Sicherheitsprobleme (Race Conditions, Of-by-One-Errors, ...) die auch in anderen Programmiersprachen auftauchen können.

Weitere Informationen

Grundlagen zu Linux liefern wir in unserem Buch Einstieg in Linux.

Keine Kommentare:

Kommentar veröffentlichen