Mittwoch, 23. Februar 2011

In welcher Programmiersprache wurde Linux geschrieben?

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 aber auch direkt in Assembler codiert. Man verwendete also keine objektorientierte Programmiersprache für Linux. 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.

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 sei, doch mit Stack Smashing Protection im Compiler und kernelbasierten Erweiterungen, wie Address Space Layout Randomization (ASLR) durch PaX, ist C eine diesbezüglich relativ sichere Programmiersprache. Im Übrigen gibt es massenhaft weitere Sicherheitsprobleme (Race Conditions, Of-by-One-Errors, ...) die auch in anderen Programmiersprachen auftauchen können.

Keine Kommentare:

Kommentar veröffentlichen