Asıl yazarlar |
Geliştirici |
İlk sürüm |
Kararlı sürüm |
Kod deposu |
Yazıldığı dil |
İşletim sistemi |
Ardılı |
Tür |
Lisans |
Website |
CUPS
CUPS (önceden Common UNIX Printing System'in kısaltması ), bir bilgisayarın bir yazdırma sunucusu olarak hareket etmesine imkan sağlayan Unix benzeri bilgisayar işletim sistemleri için modüler bir yazdırma sistemidir. CUPS çalıştıran bir bilgisayar, istemci bilgisayarlardan yazdırma işlerini kabul edebilen, bunları işleyebilen ve uygun yazıcıya gönderebilen bir ana bilgisayardır.
CUPS, bir yazdırma biriktiricisi ve zamanlayıcıdan, yazdırma verilerini yazıcının anlayacağı bir biçime dönüştüren bir filtre sisteminden ve bu verileri yazdırma aygıtına gönderen bir arka uç sisteminden oluşur. CUPS, yazdırma işlerini ve kuyrukları yönetmek için temel olarak İnternet Printing Protocol (IPP) kullanır. Ayrıca System V ve Berkeley yazdırma sistemleri için geleneksel komut satırı arabirimlerini sağlar ve Berkeley yazdırma sisteminin Line Printer Daemon protokolü için destek ve Server Message Block (SMB) protokolü için sınırlı destek sağlar. Sistem yöneticileri, metin dosyalarını Adobe'nin PostScript Printer Description (PPD) formatında düzenleyerek CUPS'nin sağladığı aygıt sürücülerini yapılandırabilir. CUPS'yi yapılandırabilen farklı platformlar için bir dizi kullanıcı arabirimi vardır ve yerleşik bir web tabanlı arabirime sahiptir. CUPS, Apache Lisansı altında sağlanan ücretsiz bir yazılımdır .
Easy Software Products'ın sahibi olan Michael Sweet, 1997'de CUPS geliştirmeye başladı ve ilk genel betalar 1999'da ortaya çıktı.12 CUPS'nin orijinal tasarımı Line Printer Daemon protokolünü (LPD) kullandı, ancak LPD'deki sınırlamalar ve satıcı uyumsuzlukları nedeniyle bunun yerine Internet Printing Protocol (IPP) seçildi. CUPS başlangıçta "The Common UNIX Printing System" olarak adlandırıldı. Bu ad, UNIX ticari markasıyla ilgili yasal sebepler nedeniyle CUPS 1.4 ile başlayarak yalnızca "CUPS" olarak kısaltılmıştır.3 CUPS, çoğu Linux dağıtımı için varsayılan yazdırma sistemi olarak hızla benimsendi. Mart 2002'de Apple Inc., Mac OS X 10.2 için yazdırma sistemi olarak CUPS'u benimsedi.4 Şubat 2007'de Apple Inc., baş geliştirici Michael Sweet'i işe aldı ve CUPS kaynak kodunu satın aldı. 20 Aralık 2019'da Michael Sweet, blogunda Apple'dan ayrıldığını duyurdu.5 2020'de OpenPrinting organizasyonu projeyi çatalladı ve Michael Sweet üzerinde çalışmaya devam etti.6
CUPS, yazdırma işlerinin yazıcılara standart bir şekilde gönderilmesini sağlayan bir mekanizma sağlar. Yazdırma verileri, işleri, yazdırma işini yazıcının anlayacağı bir biçime dönüştüren bir filtre sistemine gönderen bir programlayıcıya 7 gider.8 Filtre sistemi daha sonra verileri bir arka uca, yani yazdırma verilerini bir aygıta veya ağ bağlantısına gönderen özel bir filtreye iletir.9 Sistem, verileri hedef yazıcıya uygun bir biçime dönüştürmek için PostScript'i ve verilerin rasterleştirilmesini kapsamlı bir şekilde kullanır.
CUPS, baskı sunucusunda çok sayıda veri formatını işleyebilen standart ve modülerleştirilmiş bir baskı sistemi sunar. CUPS'den önce, kendi yazıcı dillerini ve formatlarını kullanan piyasadaki çok çeşitli yazıcıları barındıracak standart bir yazıcı yönetim sistemi bulmak zordu. Örneğin, System V ve Berkeley yazdırma sistemleri birbirleriyle büyük ölçüde uyumsuzdu ve programın veri biçimini yazdırılabilir bir biçime dönüştürmek için karmaşık komut dosyalarına ve geçici çözümlere ihtiyaç duyuyorlardı. Genellikle yazıcıya gönderilen dosya biçimini algılayamadılar ve bu nedenle veri akışını otomatik ve doğru bir şekilde dönüştüremediler. Ayrıca, merkezi bir sunucu yerine bireysel iş istasyonlarında veri dönüştürme işlemi gerçekleştirilmiştir.
CUPS, yazıcı üreticilerinin ve yazıcı sürücüsü geliştiricilerinin, yazdırma sunucusunda yerel olarak çalışan sürücüleri daha kolay oluşturmasına olanak tanır. İşlem, sunucuda gerçekleşir ve diğer Unix yazdırma sistemlerinden daha kolay ağ tabanlı yazdırmaya olanak tanır. Samba yüklendiğinde, kullanıcılar uzak Windows bilgisayarlarındaki yazıcıları adresleyebilir ve ağ üzerinden yazdırmak için genel PostScript sürücüleri kullanılabilir.
CUPS scheduler, HTTP/1.1 üzerinden İnternet Yazdırma Protokolü'nü (IPP) uygular. Bir yardımcı uygulama (cups-lpd), Line Printer Daemon protokolü (LPD) isteklerini IPP'ye dönüştürür. Zamanlayıcı aynı zamanda yazdırma işlerini yönetmek, sunucunun konfigürasyonunu yapmak ve CUPS ile ilgili dokümantasyon için web tabanlı bir arayüz sağlar.10
Bir yetkilendirme modülü, hangi IPP ve HTTP mesajlarının sistemden geçebileceğini kontrol eder.11 IPP/HTTP paketleri yetkilendirildikten sonra, gelen bağlantıları dinleyen ve işleyen istemci modülüne gönderilir. İstemci modülü, web tabanlı yazıcıları, sınıfları ve iş durumu izleme ve yönetimini desteklemek için gerektiğinde harici CGI programlarını yürütmekten de sorumludur.12 Bu modül isteklerini işledikten sonra, bir istemcinin HTTP sunucusunda herhangi bir erişim denetimini veya kimlik doğrulamasını atlamasını önlemek için Tekdüzen Kaynak Tanımlayıcı (URI) doğrulaması gerçekleştiren IPP modülüne gönderir.13 URI, bir ağdaki soyut veya fiziksel bir kaynağa atıfta bulunmak için kullanılabilecek bir adı veya adresi belirten bir metin dizesidir .
Zamanlayıcı, yazıcı sınıflarına izin verir. Uygulamalar, bir sınıftaki yazıcı gruplarına istek göndererek, zamanlayıcının işi o sınıftaki ilk uygun yazıcıya yönlendirmesine olanak tanır.14 Bir iş modülü, yazdırma işlerini yönetir, bunları son dönüştürme ve yazdırma için filtreye ve arka uç işlemlerine gönderir ve bu işlemlerden gelen durum mesajlarını izler.15
CUPS programlayıcı, yapılandırma dosyalarını ayrıştıran, CUPS veri yapılarını başlatan ve CUPS programını başlatan ve durduran bir yapılandırma modülü kullanır. Yapılandırma modülü, yapılandırma dosyası işleme sırasında CUPS hizmetlerini durduracak ve ardından işleme tamamlandığında hizmeti yeniden başlatacaktır.16
Bir günlük kaydı modülü, erişim, hata ve sayfa günlük dosyaları için zamanlayıcı olaylarının günlüğünü işler. Ana modül, istemci bağlantıları için zaman aşımlarını ve G/Ç isteklerinin gönderilmesini, sinyallerin izlenmesini, alt işlem hatalarının ve çıkışlarının ele alınmasını ve gerektiğinde sunucu yapılandırma dosyalarının yeniden yüklenmesini yönetir.17
Zamanlayıcı tarafından kullanılan diğer modüller şunları içerir:
CUPS, baskı sunucusunda çeşitli veri biçimlerini işleyebilir. Yazdırma işi verilerini bir dizi filtre aracılığıyla yazıcının son diline/biçimine dönüştürür.2223 Dosya biçimlerini tanımlamak için MIME türlerini kullanır.
CUPS sistemi, yazdırma işini zamanlayıcıya atadıktan sonra, CUPS filtre
sistemine geçirilir. Bu, verileri yazıcı için uygun bir biçime
dönüştürür. Başlatma sırasında, CUPS arka plan programı iki MIME
veritabanı yükler: CUPS'nin veri kabul edebileceği bilinen dosya
türlerini tanımlayan mime.types
ve her bir belirli MIME türünü işleyen
programları tanımlayan mime.convs
.24
mime.types
dosyası sözdizimine sahiptir:
mimetype { [file-extensions] | [pattern-match] }
Örneğin, bir HTML dosyasını algılamak için aşağıdaki giriş uygulanabilir:
text/html html htm \
printable(0,1024) + (string(0," <HTML> ") string(0,"<!
DOCTYPE"))
İkinci satır, dosyadaki metnin ilk kilobaytının yazdırılabilir karakterler içerdiğini ve bu karakterlerin HTML işaretlemesi içerdiğini belirleyerek dosya içeriğini belirtilen MIME türüyle eşleştirir. Yukarıdaki model eşleşirse, filtre sistemi dosyayı MIME tipi metin/html olarak işaretler.25
mime.convs
dosyası sözdizimine sahiptir:
source destination cost program
Kaynak alan, mime.types
dosyası aranarak belirlenen MIME türünü
belirtirken, hedef alan istenen çıktı türünü listeler ve hangi
programın kullanılması gerektiğini belirler. Bu aynı zamanda
mime.types
dosyasından alınır. Maliyet alanı, bir dosyayı
dönüştürürken filtre setlerinin seçiminde yardımcı olur. Son alan olan
program, veri dönüştürmeyi gerçekleştirmek için hangi filtre
programının kullanılacağını belirler.26
Bazı örnekler:
metin/düz uygulama/postscript 50 texttops
application/vnd.cups-postscript application/vnd.cups-raster 50 pstoraster
image/* application/vnd.cups-postscript 50 imagetops
image/* application/vnd.cups-raster 50 imagetoraster
Filtreleme işlemi, altı bağımsız değişkenle önceden biçimlendirilmiş girdi verilerini alarak çalışır:
Daha sonra MIME veritabanlarının kullanımı yoluyla girilen verinin türünü ve kullanılacak filtreyi belirler; örneğin, görüntü verileri belirli bir filtre aracılığıyla algılanır ve işlenir ve HTML verileri başka bir filtre aracılığıyla algılanır ve işlenir.
CUPS, sağlanan verileri PostScript verilerine veya doğrudan tarama verilerine dönüştürebilir. PostScript verilerine dönüştürülürse, ön filtre adı verilen ve PostScript verilerini başka bir PostScript dönüştürücü aracılığıyla çalıştıran ek bir filtre uygulanır, böylece yazdırılacak sayfa aralıklarını seçme, n -up modunu ayarlama ve diğer aygıt- belirli şeyler.28 Ön filtreleme yapıldıktan sonra, veriler PostScript yazıcı kullanılıyorsa doğrudan bir CUPS arka ucuna gönderilebilir veya linuxprinting.org tarafından Foomatic gibi başka bir filtreye geçirilebilir. Alternatif olarak, PostScript'i bir ara CUPS-raster biçimine dönüştüren Ghostscript'e geçirilebilir.29 Ara tarama formatı daha sonra tarama verilerini yazıcıya özel formata dönüştüren son bir filtreye geçirilir. CUPS ile birlikte gelen varsayılan filtreler şunları içerir:
other proprietary languages like GDI or SPL (Samsung Printer Language) are supported by Splix, a raster to SPL translator.30
Bununla birlikte, birkaç başka alternatif CUPS ile entegre olabilir. HPLIP (önceden HP-IJS olarak bilinir), HP yazıcılar için Linux+CUPS sürücüleri sağlar, Gutenprint (önceden Gimp-Print olarak bilinir), (çoğunlukla) mürekkep püskürtmeli yazıcılar için bir dizi yüksek kaliteli yazıcı sürücüsüdür ve TurboPrint for Linux başka bir ürün yelpazesine sahiptir. çok çeşitli yazıcılar için kaliteli yazıcı sürücüleri.
Arka uçlar, CUPS'nin yazıcılara veri gönderme yöntemleridir. CUPS için kullanılabilen birkaç arka uç vardır: paralel, seri ve USB bağlantı noktaları, cup-pdf 31 PDF Sanal Yazdırma ve ayrıca IPP, JetDirect (AppSocket), Line Printer Daemon ("LPD") aracılığıyla çalışan ağ arka uçları ve SMB protokolleri .
CUPS 1.4'teki yeni bir mdns
arka ucu,
Bonjour ( DNS-SD
) tabanlı yazıcı keşfi sağlar.32 CUPS 1.6'da,
Avahi kullanılarak Bonjour yazıcı keşfi ve
paylaşımı da desteklenir.33
CUPS, hem System V hem de Berkeley yazdırma komutlarını sağlar, böylece
kullanıcılar CUPS aracılığıyla yazdırma için geleneksel komutlarla devam
edebilirler. CUPS, standart IPP bağlantı noktası olan 631 numaralı
bağlantı noktasını (TCP ve UDP) kullanır ve isteğe bağlı olarak LPD
yazdırmayı desteklemek için cup-lpd yardımcı programını kullanan inetd,
launchd, Solaris Service Management
Facility veya xinetd tarafından 515 numaralı bağlantı noktasında
kullanılır. CUPS kurulduğunda, lp
System V yazdırma sistemi komutu ve
lpr
Berkeley yazdırma sistemi komutları uyumlu programlar olarak
yüklenir. Bu, CUPS için standart bir arabirim sağlar ve bu yazdırma
sistemlerine dayanan mevcut uygulamalarla maksimum uyumluluğa izin
verir.
CUPS kurulumuna yardımcı olacak çeşitli araçlar mevcuttur.
Tüm platformlarda CUPS, 631 numaralı bağlantı noktasında çalışan web tabanlı bir yönetim arabirimine sahiptir.34 Özellikle yazdırma işlerini izlemesi ve uzaktan yazdırma kuyrukları ve yazıcılar eklemesi gereken kuruluşlara yardımcı olur.
CUPS 1.0, web tarayıcıları için basit bir sınıf, iş ve yazıcı izleme arabirimi sağladı.
CUPS 1.1, bu arayüzü, kullanıcıların sınıfları, işleri ve yazıcıları eklemesine, değiştirmesine, silmesine, yapılandırmasına ve kontrol etmesine izin veren gelişmiş bir yönetim arayüzü ile değiştirdi.
CUPS 1.2 ve sonraki sürümleri, daha iyi okunabilirlik ve tasarım, otomatik olarak keşfedilen yazıcılar için destek ve sistem günlüklerine ve gelişmiş ayarlara daha iyi erişim sağlayan yenilenmiş bir web arayüzü sağlar.
GNOME 3'ten başlayarak GNOME'da CUPS yazdırma, GNOME Çekirdek Uygulamalarının bir parçası olan Ayarlar uygulamasında ele alınmıştır. GUI, CUPS yazıcıları ekleyebilir ve CUPS yazıcılarını ve kuyruklarını yönetebilir.35 GNOME 3'ten önce, bu görevleri gerçekleştirmek için GNOME Yazdırma Ayarları (eski adıyla CUPS Manager) kullanılıyordu.36
GNOME'un araç takımı GTK+, 2006'da piyasaya sürülen 2.10 sürümünde CUPS'ye dayalı entegre baskı desteği içeriyordu.
KDE için KDEPrint iskeleti, CUPS arayüzü olarak işlev gören ve sınıfların, yazdırma kuyruklarının ve yazdırma işlerinin yönetimine izin veren çeşitli GUI araçları içerir; diğer özelliklerin yanı sıra yeni yazıcılar eklemeye yardımcı olacak bir yazıcı sihirbazı içerir.37 KDEPrint ilk olarak KDE 2.2'de ortaya çıktı.
KDEPrint, en iyi desteklenenlerden biri olan CUPS ile birkaç farklı yazdırma platformunu destekler. KDE, qtcups'taki önceki bir yazdırma desteği sürümünün yerini almıştır ve bu KDE modülüyle geriye dönük olarak uyumludur. Bir diyalog kutusu programı olan kprinter, işleri yazdırma aygıtına göndermek için ana araç olarak hizmet eder; komut satırından da başlatılabilir. KDEPrint, herhangi bir işi CUPS'ye teslim edilmeden önce önceden filtrelemek veya dosyaları PDF'ye dönüştürmek gibi işleri tek başına ele almak için bir sistem içerir. Bu filtreler, bir çift Desktop/ XML dosyası tarafından tanımlanır.
KDEPrint'in ana bileşenleri şunları içerir:
Mac OS X 10.5'te yazıcılar, Sistem Tercihleri'ndeki Yazdırma ve Faks panelinde ve yazdırma kuyruklarını görüntüleyen ve yazıcılar kurulduktan sonra ek yapılandırmaya izin veren yazıcı proxy uygulamalarında yapılandırılır. Mac OS X'in önceki sürümlerinde, Yazdırma ve Faks tercih bölmesinin önceki sürümlerinde bulunmayan yapılandırma seçeneklerini sağlayan Yazıcı Kurulum Yardımcı Programı da vardı.
PrinterSetup sistemi CUPS kuyruklarını yönetebilir. Her bir yazdırma kuyruğunu açıklamak için bir metin dosyası atama yaklaşımını benimser. Bu 'PrinterSetupFiles' daha sonra 'PrinterSetupLists' adı verilen diğer metin dosyalarına eklenebilir. Bu, yazıcıların mantıksal olarak gruplandırılmasını sağlar. PrinterSetup projesi emekleme aşamasında kalır.38
Red Hat Linux 9 ile başlayarak, Red Hat, CUPS tabanlı ve GNOME'a entegre edilmiş entegre bir yazdırma yöneticisi sağladı. Bu, Microsoft Windows'un kullandığına benzer bir kullanıcı arabirimi aracılığıyla yazıcıların eklenmesine izin verdi; burada yeni bir yazıcı ekleme sihirbazı kullanılarak yeni bir yazıcı eklenebiliyordu, ayrıca yüklü yazıcıların listesini içeren bir pencerede varsayılan yazıcı özelliklerini değiştiriyordu. İşler ayrıca bir yazdırma yöneticisi kullanılarak başlatılıp durdurulabilir ve yazıcı simgesine sağ tıklandığında açılan bir bağlam menüsü kullanılarak yazıcı duraklatılabilir.
Eric Raymond, The Luxury of Cehalet adlı eserinde bu sistemi eleştirmiştir. Raymond, CUPS'yi Fedora Core 1 yazdırma yöneticisini kullanarak yüklemeye çalışmıştı, ancak bunu sezgisel bulmadı; arayüz tasarımcılarını kullanıcının bakış açısıyla tasarlamadıkları için eleştirdi. Yazıcı kuyrukları fikrinin açık olmadığını çünkü kullanıcılar kendi yerel bilgisayarlarında kuyruklar oluşturduklarını, ancak bu kuyruklar aslında CUPS sunucusunda oluşturulduğunu buldu.
Ayrıca, ağ bağlantılı CUPS (IPP), ağ bağlantılı Unix ( LPD ), ağ bağlantılı Windows ( SMB ), ağ bağlantılı Novell ( NCP ) veya ağ bağlantılı JetDirect arasından seçim yapabileceği için çok sayıda sıra tipi seçeneği kafa karıştırıcı buldu. Yardım dosyasını tek başına yararsız ve kullanıcının ihtiyaçlarıyla büyük ölçüde alakasız buldu. Raymond, Linux masaüstlerinde kullanıcı arayüzü tasarımının yeniden düşünülmesi ve daha dikkatli bir tasarım gerektirdiğini göstermek için CUPS'u genel bir konu olarak kullandı. dedi ki:39
Buradaki büyük sorun, yapılandırma sihirbazının tüm onaylanmış ritüelleri (standartlaştırılmış tıklama düğmelerine sahip GUI, bir tarayıcıda açılır yardım, vb.) yapmasıdır, ancak bunların elde etmesi beklenen merkezi özniteliğe sahip olmamasıdır: keşfedilebilirlik. Yani, arayüzdeki her noktanın, daha sonra ne yapacağınızı öğrenebileceğiniz istemleri ve kendisine bağlı eylemlerin kalitesi. Projeniz bu kaliteye sahip mi?
CUPS'un orijinal yaratıcıları olan Easy Software Products, bir görsel arayüz oluşturdu, birçok yazıcı için destek sağladı ve bir PostScript RIP uyguladı. ESP Print Pro, Windows, UNIX ve Linux üzerinde çalıştı, ancak artık mevcut değil ve bu ürün için destek 31 Aralık 2007'de sona erdi.40
Orijinal kaynak: cups. Creative Commons Atıf-BenzerPaylaşım Lisansı ile paylaşılmıştır.
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page