Ist es Teil eines Standards (zB POSIX), dass Systemdateien in Kleinbuchstaben geschrieben werden?

29

Mein Unternehmen verkauft eine Anwendung weiter, deren Markenname gemischte Groß- und Kleinschreibung hat, beispielsweise "ApplicationName".

Das Installationsprogramm der Anwendung erstellt alle Pfade und Dateinamen in diesem Standard. ZB Das Hauptverzeichnis ist /opt/ApplicationName, die Init-Datei heißt ApplicationNamealso muss ich laufen service ApplicationName statusund so weiter.

Für mich verstößt dies gegen alle sinnvollen Konventionen, und ich bin der Meinung, dass alle Dateien und Verzeichnisse in Kleinbuchstaben geschrieben werden sollten (dies gilt auch für andere Anwendungen wie MySQL, deren Dateien und Verzeichnisse alle so genannt werden mysql, selbst Anwendungen wie Apache und Tomcat machen die vorhergehenden überflüssig Großbuchstabe).

Wenn ich dies als Fehlerbericht anspreche, möchte ich ein stärkeres Argument vorbringen als nur "Ich denke, es ist falsch". Ist es also so wie im POSIX-Standard vorgeschrieben, dass solche Systemdateien in Kleinbuchstaben geschrieben werden sollten?

Darren
quelle
9
Sie können auch darauf hinweisen, dass dies für Ihre Kunden äußerst ärgerlich ist, da Sie sie zwingen, eine zusätzliche Schaltfläche (Umschalttaste) zu verwenden. Dies mag nicht sehr wichtig erscheinen (OK, ist es nicht), aber es ist ärgerlich.
terdon
5
Bei einigen Dateisystemen wird die Groß- und Kleinschreibung nicht beachtet. Es lohnt sich, darauf hinzuweisen, dass ein einfacher Tippfehler (z. B. ein Benutzerskript, das versehentlich auf die Datei unter "applicationname" verweist) auf einigen Systemen funktioniert, auf anderen jedoch nicht. Das Problem wird nicht sofort behoben könnte teuer sein, später zu finden. Ein expliziterer "application_name" weist mit geringerer Wahrscheinlichkeit dieses Problem auf.
Stefan
11
Ein weiteres Gegenbeispiel: Alles, was mit X11 zu tun hat, hat normalerweise ein großes X im Dateinamen, zB / usr / X11R6, /usr/lib/libX11.so und so weiter.
Nomadictype
1
X möchte heute Ihre trendbeweisende Ausnahme sein.
StarWeaver
1
@nomadictype Abgesehen von der Ausführung auf einem Unix-System hat das X Windows-System sehr wenig mit dem Unix POSIX-Standard zu tun.
Kusalananda

Antworten:

27

Der POSIX-Standard enthält einen Abschnitt mit Richtlinien für konforme Dienstprogramme (z. B. solche, die für ein lokales System geschrieben wurden oder Komponenten einer größeren Anwendung sind)

  1. Dienstprogrammnamen sollten aus zwei bis neun Zeichen bestehen.
  2. Dienstprogrammnamen sollten nur Kleinbuchstaben (Kleinbuchstaben) und Ziffern aus dem tragbaren Zeichensatz enthalten.

[Ref: 12.2 Utility-Syntaxrichtlinien ]

Es ist mir unklar, ob die Verwendung der Wörter "sollte einschließen" wirklich "sollte nur einschließen" bedeutet. (Der Konsens in den Kommentaren unten ist, dass es "nur einschließen sollte" bedeutet).

Eine Anwendung auf einem Unix-System, die nicht behauptet, ein POSIX-konformes Dienstprogramm zu sein, kann ansonsten einen beliebigen Namen verwenden. Wenn es tut Anspruch ein POSIX - konformes Programm zu sein , den Teil des POSIX - Shell - Utilities ist , wird der Text nach den Richtlinien in Abschnitt 12.2 sagt , dass „sollten“ Änderungen Bedeutung zu „sollen“.

Soweit mir bekannt ist, gibt es keine vergleichbare Richtlinie für Verzeichnisnamen. macOS ( ein zertifiziertes UNIX 03-Produkt, wenn es auf einem Intel-basierten Mac ausgeführt wird) verwendet /Usersbeispielsweise als Präfix für die privaten Verzeichnisse des Benutzers eine Reihe anderer Verzeichnisnamen in Groß- und Kleinschreibung.

Kusalananda
quelle
3
Ich glaube nicht, dass sie behaupten, POSIX-konform zu sein. Interessanterweise ist der Anwendungsname 10 Zeichen lang, so dass sie auch an dieser Stelle fehlschlagen. Übrigens lautet die Art und Weise, wie ich Punkt 2 las, "es sollte nur Kleinbuchstaben und Ziffern enthalten - ich denke, das letzte" nur "deckt die gesamte Klausel ab. Vielleicht eine Frage an english.stackexchange.com :)
Darren
3
XBD definiert shouldFolgendes: " Beschreibt für eine Implementierung, die der Norm IEEE 1003.1-XXXX entspricht, eine Funktion oder ein Verhalten, das empfohlen, aber nicht obligatorisch ist. Eine Anwendung sollte sich nicht auf das Vorhandensein der Funktion oder des Verhaltens stützen. Eine Anwendung, die sich auf eine solche Funktion stützt." Es kann nicht garantiert werden, dass eine Funktion oder ein Verhalten auf konforme Implementierungen übertragbar ist.
Fpmurphy
5
Ist die Benennung einer Anwendung hat nichts mit der Benennung von System zu tun Dienstprogramme ?
Matti Virkkunen
1
@IlmariKaronen Richtig. Die Richtlinien gelten für die Implementierung der im Standard selbst beschriebenen Dienstprogramme.
Kusalananda
3
Es gibt ein "nur" in dem Satz, den Sie zitiert haben. Es kommt zu einem unangenehmen Punkt in der Formulierung, wahrscheinlich aufgrund der Komiteebearbeitung, aber es hat immer noch den gleichen Effekt.
Hobbs
44

Nein, für Installationsverzeichnisse von Softwarepaketen werden keine Kleinbuchstaben angegeben.

In der Tat wurden Softwarepakete, die in der Vergangenheit installiert wurden, /optmit dem Börsensymbol des Unternehmens gestartet, das das Paket anbietet, z. B. SUNWfür Sun Microsystems oder ORCLOracle.

Pakete wie das QFS-Dateisystem von Sun werden also in einem Verzeichnis mit dem Namen installiert /opt/SUNWqfs.

Andrew Henle
quelle
7
Bis zu diesem neuen Leckerbissen über Börsenticker. Upvoted. Vielen Dank.
Darren
2
Ich glaube, diese Konvention galt nur für SunOS / Solaris.
Fpmurphy
3
@ fpmurphy1 Vielleicht. Angesichts der Behandlung der POSIX-Konformität durch Sun bezweifle ich, dass das von Sun gewählte Benennungsschema gegen einen Teil des Standards verstoßen würde. Ich würde auch nicht denken, dass Sun viel Erfolg gehabt hätte, Oracle davon zu überzeugen, ein Namensschema zu verwenden.
Andrew Henle
1
@AndrewHenle, SMIs-Benennungsschema für SunOS / Solaris entsprach den relevanten Standards und Spezifikationen. Sowohl die POSIX- als auch die Single-Unix-Spezifikation definieren shouldsich als wesentlichit is recommended
fpmurphy
Namen in Großbuchstaben fühlen sich einfach
düster
4

Neben den genannten POSIX-Richtlinien denke ich, dass die Nutzertradition noch mehr Gewicht haben könnte. Fallnamen wie "ApplicationName" wurden mit der Wikis-Explosion populär und gewöhnten einige Leute (wie mich), Großbuchstaben anstelle von Bindestrichen oder schlechteren Leerzeichen zu verwenden. Aber dies war einige Jahre, nachdem Linux und ähnliche Betriebssysteme populär geworden waren, mit einer sehr langen Unix-Tradition dahinter.

Diese Tradition war (ist) immer die Einfachheit, nicht nur den Regeln zu folgen, auf die Kusalananda hingewiesen hat, sondern auch Wörter mit nur vier bis sechs Zeichen abzukürzen (z. B. /usrfür "Benutzer" oder /srvfür "Aufschlag" oder /mntfür "Aufgestellt") und offensichtlich längere Bedeutungen ( /sbinfür "Superuser-Binärdateien"). In dieser Tradition ist es einfach böse, Sie zu zwingen, die Umschalttaste und möglicherweise auch die Feststelltaste in Großbuchstaben zu drücken.

In gewissem Maße ist dies erstaunlich, da Unixes lange Zeit in der Lage war, lange Dateinamen zu schreiben, während MS-DOS / Windows auf kurze Dateinamen beschränkt war, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wurde (acht Zeichen plus drei für die Erweiterung), die jedoch schnell verloren gingen diese Einfachheit ("Programme", "Eigene Dateien" usw.), wenn Windows 95 diese Einschränkung überschreitet.

Trotzdem gibt es heute einige Ausnahmen wie den NetworkManagerDaemon und wahrscheinlich werden wir in Zukunft mehr WikiWords sehen. Trotzdem hassen wir die Maus und schreiben in das Terminal lange Namen, die man nur mit der TabTabAutovervollständigung beenden kann . Oder jemand sehen einige Vorteile Umbenennung vimzu VisualImproved?

Fran
quelle
3
/usrist keine Abkürzung für "Benutzer". Es ist eine Abkürzung für "Unix-Systemressource"
fpmurphy
1
@ fpmurphy1 das riecht wie ein backronym.
Hobbs
3
@ fpmurphy1 war /usrursprünglich das Verzeichnis, in dem sich die Home-Verzeichnisse der Benutzer befanden (wie /homeheute). Ich stimme Hobbs zu.
Fran
2
In Windows My Computerist und war es noch nie ein Verzeichnis. Es ist nur ein Shell-Konstrukt; Sie können dies veranschaulichen, indem Sie überlegen, wie Sie in einer Eingabeaufforderung oder in einer Win16-Anwendung alten Stils zu dieser navigieren würden. Program Filesist ein Durcheinander für sich, mit seinem lokalisierten Namen; Ich bin gestern buchstäblich auf dieses Problem gestoßen , als eine Software den englischen Namen von annahm, Program Filesaber der tatsächliche Name, wie er verwendet wurde, auf dem System lokalisiert war. Wahrscheinlich einer der schlimmsten Fehler von Microsoft in Windows 95.
ein
@hobbs. @Fran Mach einfach ein Internet für /usrund Unix System Resources Und ja, in früheren Versionen von Unix lebten die Home-Verzeichnisse der Benutzer auch
fpmurphy