Hi, wie kann ich mein eigenes Unix basiertes Betriebssystem programmieren?

14 Antworten

Man kann (wenn du das wilst) auch über einen Mikrocontroller sich eine Art Taschenrechner Programmieren ,dazu braucht man kein Linux.

Arduino Uno ,Leonardo oder sogar ein Mega würde sich dafür gut eignen. DieTeile sind nicht teuer und man kann alles wichtige daran betreiben was man für einen Taschenrechner braucht. und passenden Kompliler ( Sketch ,Arduino IDE) gibts kostenlos dazu. Aktuell zahlt man für einen Uno ( zweite Generation) nicht mehr als 4 Euro .Er verfügt über einen I²C Bus  über den man z.B: das Display dazu betreiben kann. Und wenn man noch eine serielle Schnittstelle z.B. für die Tastatur braucht lässt sich das mit entsprechenden LS Bausteinen realisieren. Bis zu 32 Tasten ( 16X16) lassen sich so dran betreiben. Theoretisch wären dann sogar wissenschaftliche Funktionen möglich. also mehr als nur Addition,Subtraktion,Division und Multiplikation.

Hallo

wie kann ich mein eigenes Unix basiertes Betriebssystem programmieren?

Dann brauchst Du ja erstmal den Quellcode von einem (sehr) alten Unix, denn es ist ja proprietär und nicht frei.

Ich weiß dass es nicht einmal 1% kann von dem was Linux kann

Ich fürchte Du hast hierbei das Komma und ein paar Nullen vergessen ;-)

es soll auch nur einen Taschenrechner geben.

Einen Taschenrechner habe ich noch nicht als Betriebssystem gesehen, aber prinzipiell ist so ein Gerät natürlich auch mit einem OS ausgestattet.

Aber mit welcher Sprache programmiert man das (ich kann C++) und in welcher IDE?

In C oder in D oder sogar in Assembler. Zu IDE's kann ich nicht raten.

Linuxhase

Woher ich das weiß:eigene Erfahrung – Ich benutze seit 2007 Linux und habe LPIC101 und LPIC102

Ich weiß dass es nicht einmal 1% kann von dem was Linux kann, 

konnte der, der dir dieses Wissen vermittelt hat, schon lesen?

Was wisst du an deinem eigenen Unix-Betriebssystem programmieren?
Willst du es verbessern. Aber dann bitte nicht mit einer Taschenrechner-Funktion. Ein Betriebssystem benötigt so eine Funktion nicht. Ein Taschenrechner gehört zu den Anwenderprogrammen.
Wenn du meinst, für Unix-Betriebssysteme gibt es so etwas nicht ( was habe ich nur die vielen Jahre am SUN-OS oder HP-Unix für Dinger benutzt, de da rechnen konnten?), dann suche die Quellen für Linux  (z.B. bc) und übersetze die für dein Unix-System.
Oder noch einfacher: schreibe so einen Rechner als Shell-Programm.

 

Woher ich das weiß:Berufserfahrung – openSuSE seit 1995
TeeTier  23.05.2017, 22:35

Ein Taschenrechner gehört zu den Anwenderprogrammen.

Also bei mir läuft "bc" als Kernelmodul. :)

0
guenterhalt  24.05.2017, 06:23
@TeeTier
which bc
/usr/bin/bc

....

lsmod | grep bc 
 (keine Spur von bc)
cd /lib/modules/3.16.7-53-default/kernel/drivers/
find ./ -name "*bc*"
 (keine Spur von bc)
0

Wer in der Lage ist, sich sein eigenes OS zu programmieren,stellt sicher keine solche Frage.

Den schnellsten Erfolg einen eigenen Taschenrechner auf einem Rechner mit Unix Betriebssystem oder einer Linux-Distribution zu programmieren, geht mit einem Shell-Script (auch mit AWK bzw auch mit C++) dazu braucht man nur einen Texteditor.

 

Ich hätte da zwei Ideen, die dich evtl. überfordern werden, aber bei denen du extremst viel lernen wirst, falls du es durchhältst:

  1. Bau dir dein eigenes "Linux from Scratch". Das ist kein Programm, sondern ein ständig aktualisiertes Buch im PDF-Format, welches kostenlos zum Download steht. Darin ist jeder einzelne Schritt beschrieben um dir dein eigenes Linux komplett aus den Quellen selbst zu bauen - völlig unabhängig von jeder Distribution. Ein einfaches Konsolenlinux ohne Bloatware kannste damit auf einige MB runter bringen, mit einer Bootzeit von weniger als einer Sekunde.
  2. Da du dich ja schon mit C++ beschäftigt hast, bau dir doch deine eigene C-Standardbibliothek. C++ wäre zu umfangreich, aber C ist überschaubar und durchaus machbar. Du könntest dir eine statisch linkbare libc schreiben, die dann keinerlei andere Abhängigkeiten hat (außer natürlich direkt dem OS-Kernel). Deine kompilierten Programme wären dabei auch nur noch ein paar hundert Byte oder höchstens KB groß. "Hello World" z. B. habe ich so mal auf knapp 200 Byte als Linux-ELF gebracht, und einen Webserver (mit Kernel-Syscalls) auf knapp 500 Byte. :)

Wie gesagt, beides sind umfangreichere Projekte, aber beides kann man ruhig mal zu Übungszwecken gemacht haben.

Viel Spaß! :)

PS: Für den Einstieg ...

http://www.linuxfromscratch.org/lfs/