Was genau bedeutet Unix-Programmierung? [geschlossen]


10

Ich dachte, ich hätte verstanden, was der Begriff Unix-Programmierung bedeutet, aber jetzt, nachdem ich ihn in einem Kernel / C-Programmierkontext gelesen habe, muss ich die Bedeutung dieses Begriffs klären.

Mir ist nicht klar, ob es bedeutet:

  1. Shell-Programmierung,
  2. Unix-Programmiertools,
  3. eine bestimmte Art / ein bestimmtes Muster für die Programmierung von Unix-Befehlszeilentools (z. B. um mit der Pipeline-Methode für die "Unix-Shell-Programmierung" übereinzustimmen) oder
  4. etwas anderes.

2
Sie müssen ein wenig Kontext geben. Wo hast du diesen Ausdruck gelesen? Aus dem Zusammenhang heraus würde ich sagen, dass dies die Programmierung für ein Unix-Betriebssystem bedeutet.
Lgeorget

6
Diese Frage scheint nicht zum Thema zu gehören, da es sich um grundlegendes Englisch handelt.
Gilles 'SO - hör auf böse zu sein'

1
@ Gilles Oh, das ist jetzt ein Begrenzer: P
Goldlöckchen

@ Igeorget, Taoup.
Pacerier

@ Goldlöckchen, Bedeutung?
Pacerier

Antworten:


14

"Unix-Programmierung" bezieht sich auf die explizite Programmierung für eine Unix-Umgebung. Dies würde die Programmierung für Shells einschließen, die einem relevanten Standard entsprechen (wie z. B. POSIX ). Es würde jedoch auch das Programmieren in einer beliebigen Sprache einschließen, wobei explizit Systemschnittstellen und Ressourcen verwendet werden, die ähnlich standardisiert sind, vorausgesetzt, diese sind spezifisch für die * nix-Welt.

Beispielsweise ist die Netzwerkprogrammierung ohne eine Bibliothek eines Drittanbieters in C oder C ++ nicht portierbar, da keiner der Standards etwas darüber aussagt. Das Netzwerk in C / C ++ wird über eine vom Betriebssystem vorgegebene Schnittstelle implementiert. Auf * nix-ischen Systemen ist dies mehr oder weniger universell. Sie können diesen Code jedoch nicht unverändert auf (z. B.) Windows portieren und umgekehrt. Netzwerkarbeiten in C oder C ++ zu erledigen bedeutet daher, eine tragbare Bibliothek zu verwenden oder auf eine Plattform abzuzielen, und Unix ist im späteren Fall eine Möglichkeit, daher ist dies "Unix-Programmierung" (und C- oder C ++ - Programmierung und Netzwerkprogrammierung). 1

Die Netzwerkprogrammierung in vielen höheren Sprachen wie Perl, Python oder Java ist jedoch portabel. Diese Sprachen werden im Allgemeinen in C implementiert, die Details der Implementierung unterscheiden sich zwar von Plattform zu Plattform, die Schnittstelle jedoch nicht. Daher können Sie Netzwerkcode in Perl schreiben, der auf jedem System ausgeführt werden soll, auf dem Perl ausgeführt wird. Auf einem Unix-System wird dies von der Interpreter-Implementierung in die entsprechenden nativen Aufrufe übersetzt, und auf einem Windows-System wird es anders übersetzt. Da Ihr tatsächlicher Perl-Code nur für Perl spezifisch ist, handelt es sich nicht um Unix-Programmierung. Es ist Netzwerkprogrammierung und Perl-Programmierung, aber keine Unix-Programmierung.


1. Aufgrund der engen historischen Beziehung zwischen C und Unix, der Tatsache, dass C die Sprache ist, die am häufigsten zum Schreiben von Betriebssystemen verwendet wird, und der Art, was ein "Betriebssystem" ist, gibt es eine Menge Dinge in der Kategorie " Betriebssystemspezifische C-Programmierung "- ein weiteres alltägliches Beispiel neben der Vernetzung sind dateisystemorientierte Dinge wie Dateien und Leseverzeichnisse. Daher gibt es verschiedene Bücher vom Typ "Unix-Programmierung in C", da die grundlegende Programmierung in C zwangsläufig viele betriebssystemspezifische Elemente umfasst. Dies ist bei tragbareren Sprachen wie Perl oder Java nicht der Fall. in diesem Fall wird das Thema des Buchs wahrscheinlich „sein System in Perl - Programmierung“, oder was wahrscheinlicher ist , einfach nur „Programmierung mit Perl“.


1
prof goldlöckchen schlägt wieder zu!
Mikeserv

@goldilocks, Da Linux Unix getötet hat, meinst du damit, dass kaum noch jemand "Unix-Programmierung" macht?
Pacerier

1
Solaris und BSD werden weit verbreitet verwendet (auch wenn der durchschnittliche PC-Verbraucher keine Ahnung hat, was sie sind), und technisch wird OSX offiziell als UNIX-konform anerkannt (anscheinend wurde der Name wieder auf "macOS" umgestellt, also muss ich stimme deiner Prämisse nicht zu
Goldlöckchen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.