OpenBSD'ye Terfi etmek

From OpenBSD Belgeleme Projesi

Contents

OpenBSD’ye Geçiş

Unix benzeri işletim sistemi kullanıcıları için tavsiyeler


OpenBSD geleneksel bir Unix-benzeri işletim sistemi olmasına ve diğer Unix benzeri işletim sistemi kullanıcıları için epey tanıdık gelmesine rağmen aslında büyük farklılıklar içerir. Unix tecrübesi belli bir Linux işletim sistemine dayanan kullanıcılar için, OpenBSD biraz “garip” gelebilir. Tersine, emin olun ki, işe OpenBSD ile başlayanlar Linux’ü oldukça “garip” bulacaktır. Sizin tecrübeniz ile “standart” arasındaki farkı iyice anlamanız gerekir.


Eğer Unix’i önce “Unix felsefesi”ni kavratan iyi bir genel Unix kitabından öğrenip, daha sonra bilgilerinizi belirli bir platform üzerinde geliştirdiyseniz, OpenBSD’nin Unix’e çok benzediğine ve çok “doğru” olduğuna hak vereceksiniz. Eğer Unix’i “bu işlem için bu komutu yaz” tarzında bir süreçte veya “Learn PinkBeenie v8.3 in 31.4 Hours” gibi bir kitaptan öğrenip kendinize “Ben Unix biliyorum” diyorsanız, büyük ihtimalle OpenBSD’yi çok farklı bulacaksınız.


OpenBSD ile diğer işletim sistemleri arasındaki önemli farklardan biri dökumantasyondur. OpenBSD geliştiricileri sistem man sayfaları ile gurur duyarlar. Man sayfaları, OpenBSD dokümantasyonunun en güvenilir ve geçerli kaynaklarıdır --bu SSS bölümü, üçüncü şahısların serbestçe hazırladıkları sayfalar veya “HOWTO”lar değil. Bir geliştirici sistem üzerinde bir değişiklik yaptığında, man sayfalarını yaptıkları değişikliğe gore hemen güncellemeleri beklenir; daha sonra, biri şikayet ettiğinde veya tekrar üzerinden geçtiklerinde değil. Neredeyse her program, sürücü, yapılandırma dosyası .. vb. öğelere ait bir manüel dosyası vardır. Kullanıcılardan mail gruplarından yardım istemeden önce man sayfalarını okuması beklenir.


Aşağıda OpenBSD ile diğer Unix benzeri işletim sistemleri arasındaki bazı belirgin farklılıkları bulabilirsiniz.


  • OpenBSD 4.4BSD tasarımını yakından takip eden, oldukça saf bir “BSD-Stili” Unix’tir. Linux ve SCO Unix, “System V” tarzı sistemlerdir. Bazı Unix-benzeri işletim sistemleri (bazı Linux dağıtımları dahil) Sys V ve BSD özelliklerini karıştırır. Bu noktanın kafa karıştıran en belirgin örneği “startup script”leridir, OpenBSD geleneksel 4.4BSD tarzı rc(8) stilini kullanır.
  • OpenBSD senkron çalışabilecek şekilde tasarlanmış bir sistemdir, “Kernel ve Altprogramlar”dan oluşup birbirinden bağımsız güncellenebilecek bir sistem değildir. Eğer sisteminizi (Kernel, kullanıcı programları ve uygulamaları) senkronize çalıştırmazsanız, bu kötü sonuçların oluşmasına yol açar.
  • Birçok uygulama OpenBSD ile derlenip çalışması için geliştirilmediğinden, OpenBSD’nin kendisine ait bir port ağacı vardır. Port ağacı kullanıcının istediği uygulamanın kaynak kodlarını edinmesi, OpenBSD ‘ye uygun hale getirmesi, bağımlı programların yüklenmesi ve derlenmesi işlemlerini yaparak programın standart ve kolay bir şekilde yüklenip kaldırılmasını sağlar. Önceden derlenmiş paketler OpenBSD ports takımı tarafından geliştirilir ve dağıtılır. Kullanıcıların yükleme esnasında bu paketleri kullanması teşvik edilir.
  • OpenBSD kaynak kodu değisimleri için CVS kullanır. OpenBSD anonim CVS’yi geliştirmiştir. Bu sistem kullanıcının istediği zaman ,istediği OpenBSD sürümü (2.0’dan şimdiki sürüme kadar tüm sürümler ve tüm dosyalar) için tüm kaynak kodu ağacını indirmesini ve en son güncellemelere ulaşmalasını sağlar. Ayrıca, CVS kullanışlı bir ağ arayüzüne sahiptir.
  • OpenBSD daha once belirlenmiş programa gore altı aylık periyotta bir resmi sürümü CD veya FTP yoluyla yayınlar. Desteklenen tüm platformlar için snapshotlar mevcut kodlarla yapılır. Bununla hedeflenen kaynak kodu ağacının tamamen geliştirilebilir olması ve oluşturulan sistemin sürekli kullanılabilir olmasını sağlamaktır. Ağaç nadir olarak bozulabilir, fakat bu olağandışı hata en kısa sürede düzeltilir.
  • OpenBSD, işletim sistemlerinin bazı ülkeler sebebiyle içermediği güçlü bir kriptografiye sahiptir.
  • OpenBSD, kodların kalitesini (böylece güvenliğini) artırmak için yoğun ve sürekli güvenlik denetimlerinden geçmiştir.
  • OpenBSD’nin kerneli /bsd ‘dir.
  • Hard disklerin isimleri genellikle /dev/wd (IDE) ve /dev/sd (SCSI veya SCSI disk benzeri cihazlar) olarak geçer.
  • /sbin/route işlemi argümanı olmadan Linux üzerinde tüm aktif rotaların durumunu gösterirken, OpenBSD (ve daha pek çok işletim sistemi için) bu komuta bir "show" parametresi eklemeli, yada "netstat -r" kullanmalısınız.
  • OpenBSD; ReiserFS, IBM’in JFS veya SGI’ın XFS sistemi gibi günlük tutan sistemleri DESTEKLEMEZ. Yerine performans ve stabilite hedeflerine ulaşmak için, zaten oldukça güvenilir olan Unix Fast File System (FFS)’in Soft Updates özelliğini kullanır.
  • OpenBSD ipfw, ipchains, netfilter, iptables, veya ipf’den farklı olarak Packet Filter (PF) içerir. Yani , Network Address Translation (Linux’teki IP-Masquerading ), kuyruklama ve filtreleme işlemlerini pfctl(8), pf(4), and pf.conf(5) ile yapar. Daha fazla bilgi için PF User's Guide’a bakınız.
  • Arayüz adresi /etc/hostname.<interface_adı> (örneğin, dc(4) sürücüsü kullanan bir NIC için /etc/hostname.dc0)içinde saklanır. Bu dosya IP adresi yerine hostname (/etc/hosts ‘ta çözülmüş olarak) içerebilir.
  • Makinanın ismi /etc/myname içinde saklanır.
  • Öntanımlı geçit /etc/mygate içinde saklanır.
  • OpenBSD’nin öntanımlı kabuğu /bin/ksh türevi pdksh‘tir(Public Domain Korn shell). Bunların dışında csh ve sh kabuklarını da bulundurur. bash ve tcsh gibi kabuklar paket olarak eklenebilir veya port yoluyla yüklenebilir. bash kullanmaya alışkın olan kullanıcılar, ksh(1) kullanmaya teşvik edilirler, çünkü ksh, bash’ten beklenen birçok özelliği içerir.
  • OpenBSD’de parola yönetimi diğer Unix-benzeri işletim sistemlerine gore farklıdır. Güncel parolalar sadece root tarafından okunabilen master.passwd(5) dosyasında saklanır. Bu dosya sadece vipw programı ile değiştirilmelidir.
  • Cihazlar tiplerine göre değil, sürücülerine göre adlandırılırlar. Örneğin, eth* isimli cihazlar yoktur. Yerine, NE2000 Ethernet kartı için ne0 ve 3Com Etherlink XL yada hızlı Etherlink XL Ethernet cihazları için xl0, vs. olacaktır. Tüm bu sürücülerin manuel sayfaları 4. bölümde mevcuttur. Yani, 3c905 sürücünüzle ilgili mesajlar için daha fazla bilgiyi "man 4 xl" ile bulabilirsiniz.
  • OpenBSD/i386 birinci katmanı IBM uyumlu bilgisayar kullanıcılarına tanıdık olduğu BIOS’un gördüğü fdisk, ikinci katmanı geleneksel BSD bölümleme sistemi disklabel olan, “iki katmanlı” bir disk bölümleme sistemi kullanır. OpenBSD disk üzerindeki bir fdisk bölümü için 15’e kadar disklabel bölümü destekler. Bu özellik, OpenBSD/i386’nin diğer Unix-benzeri sistemler de olmak üzere birçok işletim sistemi ile kullamılmasını sağlar. Ancak, OpenBSD dört birincil bölümden biri olmalıdır.
  • Bazı işletim sistemleri sizin makinanızda kendi kernelinizi özelleştirmenizi önerir. OpenBSD kullanıcıları ise sadece geliştiricilerin oluşturduğu ve test ettiği standart GENERIC kerneli kullanmanızı önerir. Kerneli “özelleştirmek” veya “optimize etmek” isteyen kullanıcılar, genellikle kendi çözebileceklerinden daha büyük problemlere yolaçarlar ki, bu geliştiriciler tarafından desteklenmez.
  • OpenBSD projenin lisans sözleşmesi ve güvenlik kurallarını korumaya büyük önem verir. Bu sebeple, bazı yazılımların bazı yeni sürümleri lisans sözleşmesi yada güvenlik hedeflerine uymuyorsa, hiçbir zaman OpenBSD’ye kabul edilmez ve edilmeyecektir. Güvenlik ve bedava lisans vermek hiçbir zaman en yüksek sürüm numarısını almaya eş tutulmayacaktır.

Linux ve OpenBSD ile “dual boot”


Evet! Bu mümkün! INSTALL.linux’i okuyun.

Linux (ve diğer Sixth Edition tarzı) parola dosyalarını BSD stiline çevirme


Öncelikle yapmanız gereken Linux parola dosyanızda gölge şifreleme uygulanıp uygulanmadığını öğrenin. Eğer öyleyse, John the Ripper edinin ve birlikte gelen gölge şifrelemeyi kaldırma özelliğini kullanarak passwd ve shadow dosyalarını birleştirip Sixth Edition-stili bir dosya elde edin. linux_passwd olarak adlandıracağımız Linux parola dosyanızın dört ve yedinci alanları arasına ::0:0 eklemeniz gerekir. awk(1) bunu sizin için yapar.

# cat linux_passwd | awk -F : '{printf("%s:%s:%s:%s::0:0:%s:%s:%s\n", \
> $1,$2,$3,$4,$5,$6,$7); }' > new_passwd

Bu noktada, oluşan new_passwd dosyasını düzenleyerek, OpenBSD parola dosyasında zaten bulunan root ve diğer sistem girişleri veya OpenBSD ile uygulanabilir olmayan girişleri (hepsini) silmeniz gerekir. Ayrıca, OpenBSD kutusunun /etc/passwd ile oluşturduğunuz new_passwd dosyasında aynı kullanıcı adı ve kullanıcı ID girişlerinin iki kez yazılmış olmamasına dikkat edin. Bunu yapmanın en kolay yolu, yeni bir /etc/passwd dosyası oluşturmaktır.

# cat new_passwd >> /etc/master.passwd
# pwd_mkdb -p /etc/master.passwd

Son adım pwd_mkdb, /etc/spwd.db ve /etc/pwd.db dosyalarını tekrar yapılandırmak için gereklidir. Bu ayrıca kendisini kullanan uygulamalar için /etc/passwd olarak bir Sixth Edition-stili parola dosyası (şifrelenmiş parolalar hariç) oluşturur. OpenBSD parolalar için blowfish adında, tamamen Six Edition-stili parola dosyaları ile çalışan sistemlerde rastlanması zor, çok güçlü bir şifreleme sistemi kullanır. Bu güçlü şifreleme sistemine geçmek için, kullanıcıların sadece ‘passwd’ komutunu çalıştırmaları ve parolarını değiştirmeleri yeterlidir. Girdikleri yeni parola öntanımlı sistem (eğer /etc/login.conf dosyası yeniden düzenlenmediyse, blowfish) ile şifrelenir. Yada, root olarak passwd kullanıcı_adı komutunu yürütebilirsiniz.

Linux kütüphanelerini OpenBSD üzerinde kullanma


Eğer kernel COMPAT_LINUX seçeneği ile derlenmişse ve runtime sysctl kern.emul.linux aktif ise, OpenBSD/i386 Linux ikili dosyalarını kullanabilir. Eğer GENERIC kernel kullanıyor iseniz (ki, kullanmalısınız), COMPAT_LINUX seçeneği zaten aktiftir ve yapmanız gereken tek şey:

#sysctl kern.emul.linux=1

Bu işlemin bilgisayar her başlatıldığında uygulanması için satırın başındaki # (yorum) karakterini kaldırmaktır. /etc/sysctl.conf dosyasındaki:

kern.emul.linux=1      # enable running Linux binaries
yerine,
kern.emul.linux=1       # enable running Linux binaries

yazın ve değişikliğin geçerli olması için sistemi yeniden başlatın.


Statik bağlı olmayan Linux ikili dosyalarını(genellikle hepsi) çalıştırmak için, compat_linux(8) manuel sayfasındaki yönergeleri takip etmeniz gerekir.

Linux kütüphanelerini edinmenin kolay bir yolu da redhat/base paketini size en yakın FTP yansısından yüklemektir. Portlar ve paketler hakkında daha fazlası için FAQ 15 - The OpenBSD Packages and Ports System’i okuyun. Yukarıda bahsedilen paketleri yüklemek için:

# export PKG_PATH=ftp://sizin.ftp.yansisi/pub/OpenBSD/3.8/packages/i386
# pkg_add redhat_base-8.0p4.tgz

OpenBSD 3.7’den başlayarak, pkg_add(1) yukarıdaki paketi yükledikten sonra otomatik olarak sysctl‘i çalıştırıp kern.emul.linux değerini olması gereken duruma getirir. Ama, /etc/sysctl.conf dosyasını değiştirmez.

OpenBSD ile Linux dosyalarına ulaşma


OpenBSD, EXT2FS dosya sistemini destekler. Daha fazla bilgi için: FAQ 14.