- 82 yaşındaki Ken Thompson, Unix işletim sisteminin doğuş dönemini ve Bell Labs’taki özgür deney kültürünü anımsıyor
- Multics projesinin başarısızlığının ardından elde kalan bilgisayarı kullanarak tesadüfen Unix’in çekirdek yapısını kurma sürecini anlatıyor
- Unix geliştirme ekibi, PDP-11’i temin edip işletim sistemini gayriresmî biçimde geliştirdi ve içeride mizah ile yoldaşlıkla dolu bir “Unix Room” oluşturdu
- Bell Labs’in açık ortamı, C dilinin ve Unix’in büyümesi ile daha sonra Go dilinin geliştirilmesine uzanan işbirliği kültürünün temelini attı
- Thompson, Unix’in ‘açık kaynaktan önceki açıklığı’ hayata geçiren topluluk temelli bir deney olduğunu vurgulayarak bu ruhun modern teknoloji kültüründe yaşamayı sürdürdüğünü söylüyor
Unix’in doğuşu ve Bell Labs’in deney kültürü
- Ken Thompson, 1960’ların ortasında Bell Labs’te Multics projesinde yer aldığını, ancak sistemin “büyük, yavaş, pahalı ve başarısızlığı kaçınılmaz bir proje” olduğunu hatırlatıyor
- Multics sona erdikten sonra elde kalan büyük bilgisayarı kullanarak deneylerini sürdürdü ve CRAM veri depolama aygıtı ile drum memory üzerinde iyileştirme yapmaya çalıştı
- Bellek okuma hızını artırmaya yönelik deneyler sırasında, farkına varmadan bir işletim sistemi biçimini alan bir sistem oluşturdu
- Bell Labs’in “işletim sistemi araştırmasını durdurun” talimatına rağmen Unix’in temelini gayriresmî olarak tamamladığını anlatıyor
- Dosya sistemi, disk sürücüsü, I/O aygıtları gibi temel bileşenleri içeren ilk Unix böyle doğdu
İlk Unix topluluğu ve PDP-11’in gelişi
- Unix’in ilk kullanıcıları Dennis Ritchie, Doug McIlroy, Robert Morris, Brian Kernighan gibi isimlerdi; kullanıcı kimlikleri tek haneli sayıydı, yani topluluk çok küçüktü
- Thompson, Rudd Canaday ile birlikte tahtada dosya sistemi tasarımı yaptı ve Bell Labs’in telefon kayıt sistemini kullanarak bunu belgeledi
- Joe Ossanna, Bell Labs’in bürokratik süreçlerini aşarak bir PDP-11 bilgisayarı temin etti ve bu Unix geliştirmesinde dönüm noktası oldu
- Kâğıt üzerinde “kelime işlem için” satın alınan PDP-11, gerçekte Unix geliştirmesinin ana ekipmanı olarak kullanıldı
- Patent bölümündeki sekreterler Unix sistemi üzerinde belge yazmaya başlayınca ilk dış kullanıcı kitlesi oluştu
“Unix Room” ve özgür topluluk
- PDP-11, Bell Labs’in altıncı katındaki bir alana kuruldu ve burası kısa sürede geliştiricilerin merkezi olan **“Unix Room”**a dönüştü
- Eski otomat ve depo malzemeleri temizlenen alana ikinci bir PDP-11’in eklenmesiyle burası ağ kurma ve belge dizgisi tartışmalarının merkezi hâline geldi
- Telefon hatlarına bağlı kendi PBX sistemi bile olan gayriresmî bir araştırma merkezi olarak işlev gördü
- Thompson, “Unix Room’da kilit açtıkları ve şakalar yaptıkları günleri” anımsıyor
- Park ihlali nedeniyle takılan bir tekerlek kilidini çalıp saklamak gibi mizah ile başkaldırının iç içe geçtiği deneysel ortamı tasvir ediyor
- Güvenlik sorumlusunun “çizme kilidini geri verirseniz sekreterleri rahatsız etmeyiz” teklifinde bulunmasıyla pazarlıkla sonuçlanan bir anekdot paylaşılıyor
- Dennis Ritchie, Unix’i “bir topluluğun oluşabileceği bir sistem” olarak tanımladı; düzenli “Unix Lunch” buluşmaları da fikir alışverişinin alanı oldu
Bell Labs’in açıklığı ve Unix’in büyümesi
- Thompson, baskısız araştırma ortamı ve özerkliğin Unix ile C dilinin başarısını getirdiğini düşünüyor
- Bell Labs, “her şeyi deneyebileceğiniz bir atmosfere” sahipti ve farklı alanlardan insanlar birlikte çalışıyordu
- Dilbilimci Lee McMahon, makine tarafından okunabilir bir sözlük ile Federalist Papers’ın elektronik sürümünü sağlayarak Unix geliştirmesine katkı verdi
- Metin ed düzenleyicisine sığmayınca Thompson, örüntü arama aracı grep’i geliştirdi
- Unix, Bell Labs içinde idari işler ve telefon santral sistemleri gibi alanlara yayılarak kurum genelinde temel altyapılardan biri hâline geldi
Açık kaynaktan önce gelen açıklık felsefesi
- Thompson, Richard Stallman açık kaynak felsefesini geliştirmiş olsa da Unix’te de bu ruhun bulunduğunu söylüyor
- O dönemde Unix’te dosya koruma özellikleri vardı, ancak pratikte tüm kaynak kod herkesin değiştirebileceği durumda tutuluyordu
- “Elini sürersen artık senindir” şeklindeki örtük kural altında, ortak üretim ve deneyin gündelikleştiği bir geliştirme kültürü oluştu
- İş arkadaşı P. J. Plauger’ın dizininde saklanan roman taslaklarını herkesin okuyup yorum bırakması, işbirliği ve açıklığın simgesel bir örneği olarak anlatılıyor
- Bu kültürün, ‘tahtaya birlikte yazılan’ topluluk temelli geliştirme tarzını doğurduğu belirtiliyor
- Daha sonra Bell Labs’in Plan 9 projesinden çıkan bazı fikirler UTF-8 standardına dönüştü ve modern web’in temelini oluşturdu
Bell Labs sonrası yolculuk ve Go dili
- Thompson, 2000’de Bell sisteminin dağılmasının ardından Bell Labs’ten ayrılırken değişen kurum kültürüne değiniyor
- Ortamın “ne yaptığını gerekçelendirmek zorunda olduğun” bir yere dönüştüğünü ve araştırma özgürlüğünün kaybolduğunu söylüyor
- Sonrasında ağ ekipmanı şirketi Entrisphere’de altı yıl çalıştıktan sonra Google’a geçti
- O dönem Entrisphere’deki yöneticisi Google’a geçmiş ve Thompson’ı davet etmişti; ayrıca Eric Schmidt de Bell Labs döneminden bir çalışma arkadaşıydı
- Google’da Android güvenlik incelemesine katıldıktan sonra Rob Pike ile birlikte Go dili geliştirme ekibini kurdu
- Bell Labs dönemindeki işbirliğinin 30 yıl sonra yeni bir programlama dilinin yaratılmasına uzanması bunun bir örneği olarak değerlendiriliyor
Sonuç: Merak ve topluluk tarafından yaratılan teknolojik miras
- Ken Thompson’ın anıları, Unix’in yalnızca bir teknoloji değil özgür keşif ve topluluk ruhunun ürünü olduğunu gösteriyor
- Bell Labs’in açık ortamı, modern açık kaynak kültürünün erken modeli işlevi gördü
- Onun deneyimi, yaratıcılık ve işbirliğinin teknolojik yeniliğin temel itici gücü olduğunu hatırlatan bir örnek olarak kalıyor
1 yorum
Hacker News yorumu
Birçok başarılı yazılım projesinin paylaştığı yaratıcı işbirliği ve yüksek güven ruhu etkileyici
Bu kültür, MBA tarzı düşünceye ya da büyük şirketlerin bürokratik ortamına tamamen zıt bir yönde duruyor
Unix, GNU, Linux, erken dönem Python ve erken dönem Rockstar Games gibi örnekleri hatırlatıyor
Bürokrasi sonunda her şeyi ele geçiriyor ve yöneticiler duvarlar örüp gizlilik kültürüyle güveni aşındırıyor
Yeni gelen biri sistemin nasıl işlediğini anlamakta zorlanıyor, yeni fikirler ise daha başlamadan ölüyor
Büyük organizasyonlar yine para kazanabilir ama değişim yaratmak istiyorsanız güven şart
Atmosfer, bugünkü VC’lerin etrafa para saçmasına benziyordu
İlk Unix kullanıcılarının patent sekreterleri ya da idari personel olması ilginç
İnsanların kendi istekleriyle kullanmaya başladığı bir sistem olduğu için, gerçek dünyadan gelen baskılar oluştu ve bu baskılar sağlıklı bir rol oynadı
Deneysel fikirler denenebilirdi ama gerçek kullanıcıların her gün kullandığı sistemi bozmak kabul edilemezdi
Linux’un “sadece bir hobi” olarak başlaması gibi, ilk Unix de büyük bir vizyondan çok işe yarar araçlar üretmeye yönelik bir deney olarak doğdu
Elbette Bell Labs ortamı büyük bir avantaj sağlıyordu
Çalınan güvenlik botları olayı ilginçti
Bunun resmî prosedürlerle değil, güvenlik görevlisiyle doğrudan pazarlık edilerek çözülmesi dikkat çekiciydi
Thompson’ın Rudd Canaday ile birlikte tahtada Unix dosya sistemini tasarlaması ve Bell Labs’in dikte telefon hizmetini kullanmasıyla ilgili anekdot harikaydı
Bugün sıradan insanlar bile konuşma tanıma hizmetlerini kolayca kullanabiliyor ama o dönemde bu gerçekten yenilikçiydi
Elbette o zaman bu yapay zeka değil, sekreterler tarafından yazıya geçiriliyordu ama Bell Labs’in teknik gücü düşünülünce bunun tamamen imkansız olmadığını da düşündürüyor
Yazınca sürekli geri dönüp düzeltmek istiyorum ve bu da beni engelliyor
İlk dönem araçların mesg ve talk gibi topluluk oluşturmayı gözeterek tasarlanmış olması ilginç
Yarı açık yapı sayesinde başka insanların home dizinlerine girip dosyalarına bakmak da mümkündü
ITS yetki kısıtlamaları koymuyor ve işbirliğini teşvik ediyordu, ama Unix sunucularında home dizinleri çoğunlukla 0700 ile kilitlenirdi
Ken ile dmr’ın birlikte ayakta durduğu fotoğrafın başlığında “bir topluluğun oluşabileceği bir sistem yapmak istedik” ifadesi yer alıyor
Bu, Perl kaynak dosyasının başındaki Yüzüklerin Efendisi alıntısını hatırlatıyor
İlgili kod GitHub bağlantısında görülebilir
Ken’in Go diline yaptığı katkıların tamamı Git deposunda görülebilir
Spoiler yok ama epey eğlenceli kodlar var
1981 tarihli hardcore punk albümü This is Boston not LA’de yer alan “Radio UNIX USA” parçasının adını merak ediyorum
Sözlerin Unix’le hiçbir ilgisi yok ama grup Boston kökenli olduğu için MIT ile bir bağlantısı olabilir
Başlık ayrıca ABD radyo istasyonlarının 4 harfli çağrı işareti kuralına bir parodi de olabilir
Bu yazı ilginizi çektiyse Steven Levy’nin 《Hackers》 kitabını öneririm
MIT AI Lab’den Homebrew Computer Club’a ve ilk oyun programcılarına uzanan hacker kültürü tarihini anlatıyor
Ben de bunu gençken okuyup programlamaya kapılmıştım; bugün de bir startup’ta benzer işbirliği heyecanını hissediyorum
Goodreads bağlantısı
Brian Kernighan’ın 《Unix: A History and a Memoir》 kitabı da harika bir okuma