Apakah ini merupakan bagian dari standar apa pun (mis. POSIX), bahwa file sistem harus menggunakan huruf kecil?

29

Perusahaan saya menjual kembali aplikasi yang bermerek campuran, misalnya "ApplicationName".

Pemasang aplikasi membuat semua jalur dan nama file dalam standar ini. Misal direktori utamanya adalah /opt/ApplicationName, file init dipanggil ApplicationNamejadi saya harus menjalankan service ApplicationName statusdan sebagainya.

Bagi saya, ini memecah semua konvensi yang masuk akal dan saya merasa file dan direktori semua huruf kecil (ada preseden dalam aplikasi lain seperti MySQL, yang semua file dan dirs disebut mysql, bahkan aplikasi seperti Apache dan Tomcat menghapuskan sebelumnya. huruf kapital).

Jika saya mengangkat ini sebagai laporan bug, saya ingin mengajukan argumen yang lebih kuat daripada hanya "Saya pikir itu salah". Jadi apakah itu ditentukan dalam sesuatu seperti standar POSIX bahwa file sistem seperti ini harus huruf kecil?

Darren
sumber
9
Anda juga dapat menunjukkan bahwa itu sangat menjengkelkan bagi pelanggan Anda karena Anda akan memaksa mereka untuk menggunakan tombol tambahan (shift). Ini mungkin tidak terlihat seperti masalah besar (OK, tidak) tetapi itu menjengkelkan.
terdon
5
Beberapa sistem file tidak peka huruf besar-kecil, ada baiknya menunjukkan salah ketik sederhana (misalnya, beberapa skrip pengguna yang merujuk file pada "applicationname" karena kesalahan) akan bekerja pada beberapa sistem tetapi tidak pada yang lain, masalah tidak akan segera diambil dan bisa mahal untuk menemukan nanti. "Application_name" yang lebih eksplisit cenderung memiliki masalah ini.
Stefan
11
Contoh tandingan lain: apa pun yang terkait dengan X11 biasanya memiliki huruf kapital X dalam nama file-nya, misalnya / usr / X11R6, /usr/lib/libX11.so, dan seterusnya.
nomadictype
1
X ingin menjadi pengecualian tren-pembuktian Anda hari ini.
StarWeaver
1
@nomadictype Selain menjalankan sistem Unix, Sistem X Windows sangat sedikit hubungannya dengan standar POSIX Unix.
Kusalananda

Jawaban:

27

Standar POSIX memiliki bagian dengan pedoman untuk menyesuaikan utilitas (yaitu, "seperti yang ditulis khusus untuk sistem lokal atau yang merupakan komponen dari aplikasi yang lebih besar") yang mengatakan

  1. Nama utilitas harus antara dua dan sembilan karakter, inklusif.
  2. Nama utilitas harus mencakup huruf kecil (klasifikasi karakter bawah) dan digit hanya dari set karakter portabel.

[ref: 12,2 Utilitas Pedoman Sintaks ]

Tidak jelas bagi saya apakah penggunaan kata-kata "harus menyertakan" benar-benar berarti " hanya boleh memasukkan". (Konsensus dalam komentar di bawah adalah bahwa itu berarti "hanya boleh memasukkan").

Aplikasi pada sistem Unix yang tidak mengklaim sebagai utilitas konforman POSIX dapat menggunakan nama apa pun yang diinginkan. Jika tidak mengklaim untuk menjadi sebuah utilitas konforman POSIX yang merupakan bagian dari utilitas POSIX shell , teks setelah pedoman dalam bagian 12.2 mengatakan bahwa "harus" perubahan yang berarti "akan".

Sejauh ini tidak ada panduan serupa tentang nama direktori. macOS (yang merupakan produk bersertifikasi UNIX 03 ketika dijalankan pada komputer Mac berbasis Intel) digunakan /Userssebagai awalan untuk direktori home pengguna, misalnya, serta sejumlah nama direktori case campuran lainnya.

Kusalananda
sumber
3
Saya tidak berpikir mereka benar-benar mengklaim sebagai POSIX compliant dimanapun. Menariknya, nama aplikasi panjangnya 10 karakter sehingga mereka gagal di bagian depan juga. BTW, cara saya membaca poin 2 adalah "itu hanya harus mencakup huruf kecil dan digit - saya pikir akhir" hanya "mencakup seluruh klausa. Mungkin pertanyaan untuk english.stackexchange.com :)
Darren
3
XBD mendefinisikan shouldsebagai berikut: "Untuk implementasi yang sesuai dengan IEEE Std 1003.1-XXXX, jelaskan fitur atau perilaku yang direkomendasikan tetapi tidak wajib. Aplikasi tidak boleh bergantung pada keberadaan fitur atau perilaku. Aplikasi yang bergantung pada sebuah fitur atau perilaku tidak dapat dipastikan portabel di seluruh implementasi yang sesuai. Untuk suatu aplikasi, jelaskan suatu fitur atau perilaku yang direkomendasikan untuk diprogram dalam praktik untuk portabilitas yang optimal. "
fpmurphy
5
Apakah penamaan aplikasi ada hubungannya dengan penamaan utilitas sistem ?
Matti Virkkunen
1
@IlmariKaronen Benar. Pedoman ini untuk mengimplementasikan utilitas yang dijelaskan dalam standar itu sendiri.
Kusalananda
3
Ada "hanya" dalam kalimat yang Anda kutip. Itu datang pada titik canggung dalam frasa, mungkin karena mengedit komite, tetapi masih memiliki efek yang sama.
hobbs
44

Tidak, nama huruf kecil tidak ditentukan untuk direktori instalasi paket perangkat lunak.

Faktanya, paket perangkat lunak yang terinstal secara /optresmi dimulai dengan simbol ticker saham lengkap dari perusahaan yang menyediakan paket, seperti SUNWuntuk Sun Microsystems atau ORCLuntuk Oracle.

Jadi paket seperti sistem file QFS Sun akan diinstal di direktori bernama sesuatu seperti /opt/SUNWqfs.

Andrew Henle
sumber
7
TIL titbit baru ini tentang ticker saham. Terpilih. Terima kasih.
Darren
2
Saya percaya bahwa konvensi hanya berlaku untuk SunOS / Solaris.
fpmurphy
3
@ fpmurphy1 Mungkin. Tetapi mengingat bagaimana Sun memperlakukan kepatuhan POSIX, saya ragu skema penamaan yang mereka pilih akan melanggar bagian standar apa pun. Saya juga tidak akan berpikir Sun akan banyak berhasil meyakinkan Oracle untuk menggunakan skema penamaan apa pun.
Andrew Henle
1
@AndrewHenle, skema penamaan IKM untuk SunOS / Solaris sesuai dengan standar dan spesifikasi yang relevan. Baik POSIX dan Single Unix Spesifikasi menentukan shouldpada dasarnyait is recommended
fpmurphy
nama huruf besar hanya terasa berpasir dan diadopsi dari mainframe :)
rackandboneman
4

Di samping pedoman POSIX berkata, saya pikir itu bisa memiliki bobot lebih dari tradisi pengguna. Nama kasus sebagai "ApplicationName" menjadi populer dengan ledakan Wikis, membiasakan beberapa orang (seperti saya) untuk menggunakan ibukota alih-alih tanda hubung, atau lebih buruk, spasi. Tapi ini beberapa tahun setelah Linux dan OS serupa menjadi populer, dengan tradisi Unix yang sangat panjang.

Tradisi ini selalu merupakan kesederhanaan, tidak hanya untuk mengikuti aturan yang Kusalananda tunjuk, bahkan menyingkat kata-kata empat-enam karakter saja (misalnya, /usruntuk "pengguna", atau /srvuntuk "melayani" atau /mntuntuk "dipasang") dan jelas artinya lebih lama ( /sbinuntuk "biner superuser". Dalam tradisi ini, huruf besar, memaksa Anda untuk menekan tombol Shift, dan mungkin tanpa sengaja juga tombol Caps Lock, benar-benar jahat.

Pada tingkat tertentu, ini mencengangkan karena Unix telah lama dapat menulis nama file panjang yang sensitif, sementara sebaliknya, MS-DOS / Windows terbatas pada case nama file pendek tidak sensitif (delapan karakter ditambah tiga untuk ekstensi) tetapi dengan cepat kehilangan kesederhanaan ini ("Program Files", "My Documents", dll.) ketika Windows 95 melampaui batasan ini.

Meskipun demikian, hari ini ada beberapa pengecualian seperti NetworkManagerdaemon dan mungkin kita akan melihat lebih banyak WikiWords di masa depan. Tapi kami masih membenci mouse dan menulis dalam nama panjang terminal yang hanya dapat Anda akhiri dengan TabTabpelengkapan otomatis. Atau seseorang melihat keuntungan mengubah nama vimmenjadi VisualImproved?

Fran
sumber
3
/usrbukan singkatan untuk "pengguna". Ini adalah singkatan untuk "Unix system resource"
fpmurphy
1
@ fpmurphy1 yang berbau seperti backronym.
hobbs
3
@ fpmurphy1 /usrawalnya adalah direktori yang berisi direktori home pengguna (seperti /homehari ini). Saya setuju dengan hobbs.
Fran
2
Di Windows, My Computerbukan, dan tidak pernah, direktori. Ini murni konstruksi shell; Anda dapat mengilustrasikan ini dengan mempertimbangkan bagaimana Anda akan, dalam prompt perintah atau dalam aplikasi Win16 gaya lama, menavigasi ke sana. Program Filesberantakan semua dengan namanya sendiri; Saya mengalami masalah itu paling baru kemarin , di mana sebuah perangkat lunak mengasumsikan nama bahasa Inggris Program Filestetapi nama sebenarnya yang digunakan terlokalisasi pada sistem. Mungkin salah satu kesalahan terburuk Microsoft di Windows 95.
CVn
@ hobbs. @ Fran Hanya melakukan Internet untuk /usrdan Unix System Resources Dan, ya, dalam versi awal Unix, direktori home pengguna juga hidup di bawah `/ usr '
fpmurphy