Profesörün SPARC4’ünün yavaşlama nedeni, xterm’in altında biriken xroach’larmış
(infosec.exchange/@paco)- CS bölümünün BT destek sorumlusu, profesörün Sparc4 performans düşüşü şikâyeti üzerine ofise gittiğinde pencerenin arkasına gizlenmiş xroach’u fark etti
- Bir pencere simge durumuna küçültülünce ekranın altında siyah bir dikdörtgen belirdi ve onun içinde hamamböcekleri çok yavaş hareket ediyordu
- Hareket yaklaşık 0,5 fps düzeyindeydi ve xterm’in altında o kadar çok xroach hamamböceği vardı ki tek bir siyah kütle gibi görünüyordu
- Sorunun özü donanımın kendisinden çok, kullanıcının görmediği bir yerde xroach’un göstermeye devam ediyor olmasıydı
- Eski X11 masaüstü ortamlarında şaka amaçlı programlar bile gerçek performans sorunları gibi görünebilir; bu yüzden gizli pencereleri ve arka plan durumunu kontrol etmek önemlidir
Profesörün ofisinde doğrulanan belirti
- Paco Hope, geçmişte CS bölümünde BT destek sorumlusu olarak çalışırken, profesör Sparc4 yavaş diye şikâyet edince ofisine çağrıldı
- İlk yaptığı şey pencerelerden birini simge durumuna küçültmek oldu ve altında beklenmedik bir siyah dikdörtgen ortaya çıktı
- Siyah alanın içinde xroach hamamböcekleri azar azar hareket ediyordu
- Hareket, yaklaşık 0,5 fps görünecek kadar yavaştı
xterm’in altında dolup taşan xroach
- xterm’in altında o kadar çok xroach birikmişti ki tek tek hamamböcekleri yerine neredeyse tek renkli siyah bir dikdörtgen gibi görünüyordu
- Profesör, pencereyi simge durumuna küçültmeden önce altındaki durumu görmemişti; performans düşüşü şikâyetinin ipucu da bu gizli ekran durumuna bakınca ortaya çıktı
Kısa bir anı ve tepkiler
- Bu anekdot, Paco Hope’un 25 Temmuz 2023’te Mastodon’da paylaştığı kısa bir anıdır
- Gönderide 202 boost ve 389 favori görünüyordu; bu da eski masaüstü ortamlarını ve şaka amaçlı programları hatırlayan kullanıcılarda karşılık buldu
1 yorum
Hacker News yorumları
Yerel bir hastanede teknik destek verdiğim dönemde, bir hemşire ekranda “hava durumu tahmini gibi bir pencere” açıldığını, farenin de onun altına girdiği için pencereyi kapatamadığını söyleyerek aradı.
Meraklandım, bilgisayara dokunmamasını söyledim ve yaklaşık 10 dakikada oraya vardım; “Bir dakika önce kendiliğinden kapandı. 30 dakikadır açıktı” dedi.
Masanın düzenine ve pencere tarifine bakıp monitör düğmesine basınca, klavyenin köşesiyle yanlışlıkla basılmış monitör OSD menüsü açıldı; parlaklığı %100 olarak, güneş simgesiyle gösteriyordu. Farenin onun altına girmesi de gayet normaldi.
Tekrar 10 dakika yürüyüp geri döndüm ve bir sonraki telefonu bekledim.
Hemşireler hayat kurtarmakla ve hayatlarının en kötü gününü yaşayan insanlarla ilgilenmekle meşgul; bunun üstüne bir de kötü uygulanmış ve kötü bakımı yapılan iş istasyonlarıyla uğraşmak zorunda kalıyorlar. Yardım istediklerinde de bazen sorunu yaratan insanlar gelip onları küçümsüyor.
Hemşireler aptal ya da tembel değil; küçük IT sorunlarına zaman harcamak yerine yapmaları gereken daha önemli işleri olan insanlar.
Gerçek tedavi için kritik olan ekipmanlar genelde özel uzmanlar tarafından yönetiliyordu; MRI cihazı bilgisayarı Active Directory'ye bağlı olmayabiliyor, hatta ağda bile bulunmayabiliyordu. Sorun yazıcıyı tamir eden kişiye değil, GE'ye aktarılıyordu.
Gittiğimde CRT monitörün üstünde iki büyük hoparlörü olan bir boombox duruyordu; onu kaldırınca sorun sihirli bir şekilde çözüldü.
Aslında hemşire olan biteni oldukça doğru tarif etmiş sayılır.
1989'da, akademiden ayrılmış ekonomistlerin Digital VAX 11/750 üzerinde ekonometrik modelleme yaptığı bir yerde IT departmanına tek başıma bakıyordum.
Bu mini bilgisayar çok kullanıcılı işletim sistemi VMS'i çalıştırıyordu ve tüm kullanıcıların yönetici yetkisi vardı. Herkes kendi süreç önceliğini olabildiğince yükseltirse modelinin daha hızlı çalışacağını sanıyordu; ama bu, bilgisayarın çalışması için gereken gerçek zamanlı süreçleri engelleyip tam ters etki yaratıyordu.
Nedeni bulup yetkileri geri aldıktan sonra sistemi yeniden başlatınca her şey normale döndü; sistemi hızlandırdığım için teşekkür ettiler.
Bir başkası kendini 1000 kez fork eden,
nicedeğerini 19'a düşüren, sonrasleep(0)yapıp çıkan bir program yazdı. Azıcık bile CPU zamanı alırsa hemen bitecekti ama emacs çalışırken o fırsatı bulamıyordu. Bu sıradaxloadun gösterdiği yük simsiyah bir kutuya dönmüştü.emacs kullanan kişi root olarak
ps -ef | grep procname | xargs killçalıştırdı; ama kill işleminin işlenmesi için CPU zamanı gerektiğindensleep(0)dan daha uzun sürüyor ve pek işe yaramıyordu.İkinci şakada süreç adını
emakoyduk; sonuçta tüm emacs örnekleri de öldü.Üçüncüde süreç adını
etyaptık; tesadüfen/etc/initdye de denk geldi ve makine birden yeniden başladı.Scheme yorumlayıcısının başlaması yavaştı, özellikle de 20'den fazla kişi oturum açmışsa. Asistan, yorumlayıcıyı
ctrl-zile askıya alıpviile düzenleme yaptıktan sonrafgile geri dönme yöntemini göstermişti.Sorun şu ki sınıfın yarısı değil, sınıfın 2/3'ü
fgyi unutup düzenleme sonrası yeni bir Scheme örneği daha açıyordu. Ödev teslim gecesi terminal odasında sistemin tamamen süründüğünü hatırlıyorum.Sonrasında iki veya daha fazla Scheme örneği çalıştıran sınıf arkadaşlarını bulup onlara
fgyi hatırlatmayı öğrendik; 8 vezir problemini sonsuz özyinelemeyle çözen “çözüm” de yüke hiç yardımcı olmuyordu. Asıl ders ise daha sonra CS 401 ödevi teslim gecelerinde oturum açmamaktı.Paylaşımlı terminaller aynı odada toplandığı için yaptığım şeyin etkisini gerçek zamanlı görmek eğlenceliydi.
İnsanların sırada beklediği bir ortamda, biri kendi sorununa diğerlerinden önce bakılıp bakılamayacağını sormuş. Yani sıranın en önüne alınmayı istemiş.
O da “Elbette!” demiş; karşısındaki şaşırınca da “Ama aynı istekte bulunan başka herkese de aynı şeyi yapacağımı biliyorsunuz, değil mi?” diye eklemiş.
Sonunda o kişi kendi yerinde beklemeye devam etmeye karar vermiş.
Eski, altın değerindeki öğrencilik günlerimi hatırlattı
Benimki 2000’lerin başıydı; üniversite laboratuvarındaki bilgisayarlar güçlü olmadığından insanlar ağır X oturumları açmak yerine Linux konsolunda çalışırdı
2001 civarında
console_ioctl(4)kılavuz sayfasını okurken şaka malzemesiyle dolu olduğunu fark ettim. Konsol yazı tipini kurcalayıp tüm karakterleri ters çeviren, büyük ve küçük harfleri değiştiren, klavye LED desenlerini yanıp söndüren ya da paleti değiştirip ekranı siyaha doğru soldurup geri getiren küçük programlar yazdımBuna bir sunucu bileşeni ekleyip sıradan görünen bir terminalde çalışır halde bırakır, kurbanın gelmesini bekler, sonra aynı odadaki başka bir makineden efektleri uzaktan açıp tepkisini izlerdim. Neyse ki kısa süre sonra insanların paniğe kapılmasını izlemenin değil, kodlamanın kendisinin daha eğlenceli olduğunu fark ettim ve ikinci kısmı bıraktım
Bir başka şaka da
gettyoturum açma isteminde root girişinin başarılı olmuş gibi göstereceği çıktıyı elle yazmaktı.motddahil; satır sonlarını sekme ve boşluklarla taklit eder, asla RET’e basmaz ve sonu[root@mailhost root]#ile bitirirdimBazıları merak edip
whoamiyazınca neden parola isteminin çıktığını anlamayıp şaşırdı; bazıları ise hiçbir şeye dokunamadan korkup geri çekildi ve başka bir terminalden sistem yöneticisine e-posta attıKullanıcı oturum açmış olduğu sürece Görev Zamanlayıcı ile fiilen herhangi bir programı o kullanıcının yetkileriyle çalıştırabiliyorduk; Active Directory ile birleşince kullanıcı bilgilerini de öğrenebiliyorduk. Kimin nerede olduğunu bilip belirli bir sitenin
iexplorerını açmak ya da zararsız bir Word belgesi göstermek gibi şeyler yapardık. En kötü niyetli örnek otomatik oturum kapatma batch betiğiydiİnsanlar sonradan yöntemi fark edip uzaktan çalıştırmayı taklit etmeye çalıştı; ama hedef kullanıcının yetkileriyle değil, kendi yetkileriyle çalıştırdıkları için IT yöneticisi geldiğinde kimin çalıştırdığına dair izler fazlasıyla açıktı
Ben şakaları bıraktım ve sonunda IT’den geçip yazılım mühendisi oldum. O zaman disiplin cezası alsaydım ne olurdu diye bazen merak ediyorum
IBM 370 mainframe’de 80’den fazla programcı vardı ve VM/370 her programcı için bir sanal makine oluşturuyordu. Ben “süper kullanıcı” yetkilerine sahip iki sistem programcısından biriydim
Sanal makinenin içinde genelde CMS çalıştırırdık ama başka şeyler de çalıştırılabiliyordu; bazı makineler MVS çalıştırıyordu
Sanal makinenin kendisine komut göndermek için komutun başına varsayılanı
#olan özel bir karakter eklerdiniz. Örneğin#cp ..., sanal makineye giden bir komuttu ve bu sihirli önek istenen karakterle değiştirilebiliyorduBir gün canım sıkıldı ve sanal makinenin içinde tekrar VM çalıştırıp çalıştıramayacağımı merak ettim. “İkinci seviye”de VM’i boot ettim ve öneki
!olarak değiştirdim; onun içinde yeni sanal makineler oluşturabiliyordumSonra “üçüncü seviye” sanal makinede VM’i boot edip öneki
@olarak değiştirdim. Sonunda 8 kat iç içe yapıya kadar indim ve VM’in VM çalıştırabildiğini, onun da yine VM çalıştırabildiğini doğruladımArtık bitirip iç içe geçmiş seviyeleri kapatmak isterken alışkanlıkla
#cp shutdownyazdım; bunun sonucunda gerçek makinenin gerçek VM’i kapanıverdi. Panikleyip makine odasına koştum ve konsoldaki başlatma düğmesine bastımTabii sistem logu kaldı ve diğer sistem programcısı odama gelip “Bunu bir daha yapma” dedi. Eğlenceli zamanlardı
#ın 0. seviye işletim sistemi, yani host değil, 1. seviye VM’in öneki olduğunu sanıyordum#ile 0. seviyeye komut gönderildiyse 1. seviyenin öneki neydi, merak ettimkillall procnameçağırdık. Makine anında öldüSistem yöneticisi gelince Solaris’te
killallın başka bir şey yaptığını öğrendik ve bir daha kullanmamamız söylendi80’lerde üniversitede öğrenciyken VAX 11/750’ye, daha doğrusu 8750 Systime klonuna erişip kodlama ödevleri yapıyordum
Öğrenci terminalleri büyük bir odanın yarısındaydı, diğer yarısını ise üniversitenin IT çalışanları kullanıyordu. IT yöneticileri tarafında boş terminal yoksa bir iki çalışan, bölmenin hemen öbür tarafındaki öğrenci terminallerini kullanırdı
Bir gün COBOL projemin derlenmesini beklerken çok sıkıldım ve sistem yöneticisinin kullanıcı adı ile parolasını yakalayıp yakalayamayacağımı merak ettim. CLI’da oturum açma istemini bip sesi ve mesajına kadar kusursuz taklit eden bir betik yazdım
Betik ekranı temizliyor, kullanıcı adı ve parola girişini bekliyor; girilince bunları bana e-postayla gönderiyor, kullanıcı adı/parola hatası gösterip oturumu kapatarak gerçek login sürecine devrediyordu
Bunu fark etmeyen birkaç sınıf arkadaşım üzerinde deneyip biraz anonim şaka yaptıktan sonra, sistem yöneticileri üzerinde gerçekten denemeye karar verdim. IT çalışanlarının genelde kullandığı iki terminalde oturum açıp betiği çalışır halde bıraktım; birkaç saat sonra döndüğümde şaşırtıcı ve biraz da tedirgin edici şekilde SYSTEM oturum açma parolasını ele geçirmiştim
Yaklaşık bir ay boyunca o makine üzerinde tam denetime sahiptim; SYSTEM parolası her değiştiğinde ara sıra betiği tekrar çalıştırdım. Kimseye söylemedim ve mezuniyetin son günü, ne olur ne olmaz diye oturum açıp betiği sildim. O dönem Birleşik Krallık’ta yetkisiz bilgisayar erişimiyle ilgili yasaların sıkılaşmaya başladığı zamandı
O makinenin devasa kılavuzlarıyla çok zaman geçirerek VMS’i kurcalayıp öğrendim ama kimse fark etmedi
Ctrl+Alt+Delile güvenli bağlama girmesi gerekiyorduhttps://en.wikipedia.org/wiki/Control-Alt-Delete
Bana ilk işimi verdiler :-) Ayrıca pek bilinmeyen bir iki hesaba gerekli yetkileri önceden vermiştim; böylece “resmî” hesaptan SYSTEM yetkisi geri alınsa bile onu geri alabilecektim
Eğlenceli zamanlardı, biraz da saftık. Yetkilerle ortalığı dağıtmadım
Şimdi geçimimi programlamayla sağlıyor olmam pek de şaşırtıcı değil
Benimki okulun Windows’u, muhtemelen Novell ağı için Visual Basic 5 ile yazılmıştı.
win.inidosyasını değiştirip gerçek oturum açma ekranından önce çalışmasını sağlamak çok kolaydıKullanıcı adı ve parolayı paylaşımlı bir ağ sürücüsüne ya da yerel bir dosyaya kaydediyor, “parola hatası” gösteriyor ve ardından gerçek login istemine çıkıyordu
Sonunda sorun, bir “arkadaşımın” aynı teknikle insanların ağ hesabı dosyalarını kendi hesabına kopyalamasıyla çıktı. Kotası dolduğunda sistemin ağ yöneticisini uyarmış olacağını tahmin ediyorum. Kabaca bakınca öğretmenin tez dosyalarını bile kopyaladığı ortaya çıktı; bu gerçekten büyük bir tabuydu
Bu olay sayesinde sonunda junior teknik destek/ağ yöneticisi olarak ilk bilgisayar işimi aldım
1988’de lisede bir arkadaşımla birlikte, yeni bilgisayar laboratuvarındaki 30 IBM PS/2 Model 30-286 makineye dağıtılmış NetWare’de,
autoexecağ önyükleme dizisine program sokmaya yarayan bir açık keşfettikOndan önce, o zamanlar yeni olan VGA register’larıyla oynayarak 80x25 metin modundan 320x200 256 renk grafik moduna titreme ya da bozulma olmadan geçmenin yolunu bulmuştuk. Çünkü iki modun da yenileme hızı 70Hz idi
Arkadaşım, bir palyaço yüzünün dijital görüntüsünü önceden
A000:0000adresine yükleyen bir TSR yazdı; yaklaşık 4 dakika sonra birkaç kare boyunca palyaço yüzünü gösterip hemen kullanıcının üzerinde çalıştığı ekrana geri döndürüyorduSınıfın köşesinde öğrencilerin şaşkın ve korkmuş yüzlerini görünce gülmemizi tutamayıp yakalandık. Özellikle bir öğrencinin öğretmeni çağırıp ekranı 3 dakikadan fazla izletmesi, tam öğretmen arkasını döndüğü anda palyaço yüzünün birden parlaması müthiş bir zamanlamaydı
Arkadaşımın adı Brian’dı ve tanıdığım en zeki insanlardan biriydi. 10 yıl sonra mobygames.com’u yaptık
Sesin frekansı sürekli değiştiği için bir an bile sabit bir nota yoktu. O zamanlar hoparlörler genelde sadece bip sesi çıkarırdı; bunu kullanılmayan makinelere açık bırakırdık
90'ların başında bir eyalet üniversitesinin bilgisayar bilimleri bölümünde birinci sınıf lisans öğrencisiydim. Bilgisayar laboratuvarı SunOS çalıştıran Sun SPARCstation IPC'lerle doluydu ve bölümdekilerin iletişim için kullandığı temel bir e-posta sistemi vardı
Teknolojiye hâkim olanlar Usenet'i çoktan keşfe çıkmıştı ama çoğu kişi için dijital dünyanın tamamı e-postadan ibaretti
Bir gün arkadaşlarımla bir şaka yapmaya karar verdik ve rastgele özlü sözler basan meşhur
fortunekomutundan ilham aldık. Bizim yazdığımız komik ve saçma cümlelerin bulunduğu bir metin dosyasından rastgele bir satır seçip bilgisayar bilimleri bölümündeki rastgele bir kullanıcıya e-posta gönderen basit bir shell betiği hazırladık; bunu da cron işi olarak kaydedip her saat bir tane gönderecek şekilde ayarladıkBaşta zararsız bir şakaydı. İnsanlar mesajları eğlenceli buluyor, laboratuvarda birbirleriyle paylaşıyordu. Mesajların kaynağı bölümde konuşulan bir konuya dönüştü ama kimse nereden geldiklerini bilmiyordu; biz de arkadaşlarımızın ve hocaların gizemli göndereni tahmin etmeye çalışmasını keyifle izliyorduk
Ama dekan özellikle saçma bir mesaj alınca iş büyüdü: “Bilgisayar bilimciler Noel ile Cadılar Bayramı'nı neden karıştırır? Çünkü Oct 31 == Dec 25.” Espriyi anlamadı ve bunu şifreli bir mesaj ya da potansiyel bir tehdit sandı
Kampüs IT ekibi soruşturmaya dahil oldu ve e-postaların kaynağını izlemeye yönelik bir haftalık bir hengâme yaşandı. Arkadaşlarımla ben de yakalanıp okuldan atılır mıyız diye kaygıyla izliyorduk
Sonunda birkaç uykusuz gecenin ardından teslim olmaya karar verdik. Dekana gidip itiraf ettik; uzun bir sessizliğin ardından gülmeye başladı. Meğer bilgisayar bilimleri profesörlerinden biri espriyi ona açıklamış ve bizim ne zaman ortaya çıkacağımızı bekliyormuş
Şakayı hoşgörüyle karşıladı ve girişkenliğimizi yaratıcı buldu, ama bu tür şakaların istenmeyen sonuçları konusunda bizi uyardı
Geriye dönüp bakınca eğlenceli ve unutulmaz bir şakaydı; teknoloji kullanım etiği konusunda da değerli bir ders verdi. Bugün bilgisayar bilimleri öğrencilerime dijital dünyada etik davranmanın önemini anlatırken sık sık aktardığım bir hikâye
Matematik bölümü başkanının PC'si garip davrandığı için soruna bakmam gerekmişti
Meğer Prime95'i Core 2 Duo'nun bir çekirdeğindeki boştaki döngülerin tamamını 10 yıl boyunca kullanacak şekilde bırakmış; makine de ancak oda sıcaklığına kadar soğuyunca boot edebiliyordu
Lisansüstü dönemimde bir arkadaşın başka bir arkadaşa yaptığı şaka
Kurban login olmuş halde terminalin başından kısa süreliğine ayrılınca şakacı kişi
.logindosyasınaecho sleep -1 >> .logineklemişBirkaç gün sonra
sleepsatırları 20'yi geçince, öğrencinin login sürecinde olağandışı biçimde yanlış giden bir şey olduğu açıkça anlaşılmış. Her gün ilk login'den etkin terminale ulaşma süresi giderek yavaşlamış, kurban da giderek daha çok sinirlenmiş; sonunda tahammül edilmez hale geldiğinde şaka ortaya çıkmışBir süre sonra her login'e 1 saniye eklemenin fazla incelikli olduğuna karar verdim
echo "echo sleep 1 >> ~/.login" >> ~/.loginBu eski hikâyelerin epey çoğunun sonunda “kötü niyetli değildi, sadece komik olsun diye yapmıştık; bu kadar çoğalacağını ya da bu kadar çok kaynak tüketeceğini bilmiyorduk” noktasına varması ilginç
Morris worm da benzer. Tartışmalı olsa da kötü amaçlı yazılım olarak tasarlandığı söylenebilir; en azından aktarıldığı kadarıyla, bu kadar ciddi bir hale gelmesi amaçlanmamış