- Bir zamanlar hackerların doğal olarak bildiği ASCII bit yapısı, RS-232, donanım terminalleri ve modem bilgisi; donanım ve ağ ortamları değiştikçe artık giriş sürecinde aktarılmaz oldu
tty,SIGHUP,core dump,README,Ctrl-Dgibi ifadeler, ortadan kalkmış araçların kalıntılarıdır; kökenlerini bilmek modern Unix’i ve geliştirme geleneklerini daha iyi anlamayı sağlar- ASCII, 36 bit makineler, sekizlik taban, RS-232 ayarları, MIME, termios, curses ve ANSI terminal kontrolü, günümüz sistemlerinde kalan tarihsel uyumluluk katmanlarını gösterir
- Kitlelere açık internetten önce UUCP, USENET, BBS, FidoNet, FTP, Gopher, ticari timesharing ve akademik WAN’lar dosya aktarımı, e-posta, forum ve iş birliği gibi işlevleri ayrı ayrı üstleniyordu
- Açık depo tabanlı geliştirme; DECUS teyp arşivleri, FTP ve e-posta, USENET kaynak grupları,
patch(1), SCCS/RCS/CVS, SourceForge ve Subversion’dan geçerek 2005’te Git’e uzanan süreçte şekillendi
Kaybolan donanımın Unix’te bıraktığı izler
- Genç hackerların ASCII’nin bit yapısını ve tuhaf kontrol karakterlerini bilmemesi kişisel bir sorun değil, donanım terminallerinin ve RS-232’nin günlük kullanımdan kaybolmasının sonucudur
- Eski terminaller birer yazılım penceresi değil, merkezi bilgisayara bağlı video display terminal (VDT) cihazlarıydı; onlardan önce de kâğıda çıktı veren teletype sınıfı aygıtlar kullanılıyordu
- Unix’teki
tty, teletype kısaltmasından gelir;/dev/lpiçindekilpline printer’dır, bazı BSD Unix’lerdeki/dev/drumise ilk dönem döner tamburlu aygıtlardan türemiştir \rCarriage Return, yazıcı kafasını satırın soluna gönderen harekettir; Unix satır sonunu tek bir\nile işlerken, diğer işletim sistemleri\r\nkullanmayı sürdürdü- Sıranın
\r\nolmasının nedeni, ilk donanımlarda carriage return işleminin bir karakter iletim süresinden uzun sürmesi ve bu yüzden önce çalıştırılması gerekmesiydi
- Sıranın
- Birden çok kullanıcının tek bir merkezi bilgisayar CPU’sunu paylaştığı yöntem timesharing olarak adlandırılıyordu; modern Unix’in birden çok sanal terminal yapısında da bunun izleri kalmıştır
RS-232, modemler ve AT komutları
- RS-232, 1960’ların başında teletypewriter’ların modemlerle iletişim kurması için geliştirilmiş bir donanım protokolüdür; USB’den önceki “serial” bağlantı genellikle RS-232 anlamına gelirdi
- Modem, dijital sinyalleri telefon hattı üzerinden göndermeyi sağlayan bir aygıttı; hackerlar ayrı kutu biçimindeki harici modemleri çok kullanırdı
- Dahili modemler kasa içindeki RF gürültüsüne karşı hassastı; harici modemlerin gösterge ışıkları ise sorun teşhisinde işe yarardı
- Bağlantının başarılı olması ile senkronizasyon hatası, modemin bip ve hışırtı seslerinden bir ölçüde ayırt edilebilirdi
- Unix’teki
SIGHUPiçindekiHUP, Hang Up anlamına gelir; başlangıçta modem bağlantısının kopup kontrol terminalinin ortadan kalktığı durumu ifade ederdi - Modem hızı 110bps’den 1990’ların sonunda 56kbps’ye kadar çıktı; 1984–1991 civarındaki istikrarlı dönemde 9600bps yaygındı
- Bu yüzden günümüze kalan serial-protocol cihazların varsayılan olarak 9600bps kullanması sık görülür
- Hayes Smartmodem’in
ATkomut öneki 1981’den sonra fiilen evrenselleşti;ATDTarkasına telefon numarası eklenerek arama yapılabiliyorduATbit örüntüsü, alıcı iletim hızını bilmese bile tanıması kolay bir biçimde olduğundan otomatik senkronizasyon için avantajlıydı- 2017’de bile akıllı telefonların 3G/4G hücresel modem kontrol işlevlerinde AT komutları bulundu; yaygın dağıtılan bir türde
AT+QLINUXCMD=, komutları çip firmware’indeki Linux instance’ına ileten önek olarak kullanılıyordu
“core”, 36 bit makineler ve sekizlik taban
- 1955–1975 civarında yarı iletken bellekten önce ana akım bellek, küçük ferrit halkalar ve bakır tellerden yapılan core memory idi;
in core,core dumpgibi Unix terimleri buradan doğdu - 2000’den sonra çok işlemcili sistemler masaüstlerinde de yaygınlaşınca
core, processor core’un kısaltması olarak da kullanılmaya başlandı; eski bellek anlamı ise giderek daha az anlaşılır oldu - 8 bit byte ve 16/32/64 bit word hiyerarşisinin fiilen evrensel hâle gelmesi 1983 sonrasındadır; ondan önce 36 bit word mimarisi geleneği güçlüydü
- DEC PDP-10 ve Symbolics 3600 Lisp machine, 36 bit makinelerin başlıca örnekleriydi
- PDP-10’un iptali 1983’te bu soyun sonunu haber verdi; Symbolics 3600 ise bundan sonra yaklaşık 10 yıl daha dayandı
- 36 bit word’ler 12 adet 3 bitlik alana bölündüğünden sekizlik gösterim doğaldı; bellek dump’larında 7’den büyük rakam görünüp görünmemesine bakarak 32 bit soyuyla 36 bit soyunun ayırt edilebileceği düşünülürdü
- C’de sayısal literallerin başındaki
0ın sekizlik tabanı ifade etmesi, B ile PDP-7/PDP-11 tarihinden gelir; Java, Python gibi birçok dil C’nin düşük seviyeli sözcüksel kurallarını izleyerek bu izi devraldı- Python 3, Perl 6 ve Rust tehlikeli leading-0 sekizlik sözdizimini kaldırdı, ancak Go bunu korudu
- x86 komut kümesi de genellikle onaltılık tabanla açıklanır, fakat büyük bölümleri 3 bitlik alanlar olarak anlaşılınca sekizlik gösterim daha doğal gelir
RS-232 ayar cehennemi ve 7 bitlik dünya
- TCP/IP bağlantıları genellikle temiz bir 8 bit byte akışı gibi görünür; ancak RS-232 cihazlarda iki tarafın hat hızını, byte framing’i, parity’yi ve stop bit’i eşleştirmesi gerekirdi
- 1984’ten sonra
8N1—8 bit, no parity, 1 stop bit—yaygınlaştı; ancak öncesinde çeşitli kombinasyonlar kullanılıyordu ve ayarlar uyuşmazsa yalnızca baud barf denen rastgele 8 bitlik çöp görünürdü - POSIX/Unix terminal arayüzü
termios(3)içinde modern bakışla anlamı pek açık olmayan karmaşık seçeneklerin çok olmasının nedeni, bu RS-232 ayarlarını yönetmek zorunda kalmasıydı - Parity açıksa 8 bitlik ikili verinin üst biti bozulabiliyordu; üst bit
0x80i bozmayan ağ ve yazılımlara 8-bit clean denirdi- E-posta için MIME kodlaması ve MIME64, bu 7 bit kısıtının hâlâ bulunduğu ortamlar nedeniyle ortaya çıktı
- MIME’den önce 8 bit veriyi 7 bite çeviren
uuencode/uudecodeUnix ortamlarında kullanılıyordu; bugün bile zaman zaman karşınıza çıkabilir
- RS-232 konnektörlerinde DB-25 ve DB-9 bir aradaydı; gender changer, DB-25↔DB-9 adaptörü, breakout box ve null modem gibi ekipmanlar gerekirdi
- 2000’den sonra DB9/DB25’in standart RS-232’si ile devre kartlarının TTL serial’ının aynı RS232 gösterimini kullanması şeklinde bir tuzak oluştu
- TTL serial 3.3V veya 5V seviyesindedir; standart RS-232 ise çok daha büyük voltaj salınımları kullanır, bu yüzden level shifter olmadan bağlanırsa TTL tarafındaki bileşenler zarar görür
- RS-232, 1990’ların ortalarından sonlarına doğru ortak bilgi olmaktan çıktı; ancak genel amaçlı bilgisayarlardan yaklaşık 2010’a kadar tamamen kaybolmadı ve POS ekipmanlarında, ticari router tanılama konsollarında, gömülü debug konsollarında, GPS sensörlerinde ve IoT cihazlarında yaşamaya devam ediyor
İnternet öncesi WAN’lar ve topluluklar
- Günümüzde WAN’lar neredeyse tamamen TCP/IP internetinde birleşmiş olsa da, 1970’lerin sonundan 1990’ların ortasına kadar birden fazla pre-Internet WAN bir arada var oldu
- UUCP, Unix to Unix Copy Program’ın kısaltmasıdır; 1979’da Bell Labs dışına çıktıktan sonra, 1990’ların ortasında kitlesel internet yaygınlaşmadan önce modemler ve telefon ağı üzerinden Unix siteleri arasında düşük maliyetli ağ bağlantısı sağladı
- Başlangıçta yazılım güncellemelerini yaymak için bir store-and-forward sistemiydi, ancak başlıca kullanım alanları e-posta ve 1980’de başlayan USENET oldu
- Telefon ücretlerinin local sabit ücret ve long-distance kullanıma göre ücretlendirme olarak ayrıldığı düzende, UUCP trafiği local hop’ları birbirine ekleyerek uzun mesafeli iletimi dolanabiliyordu
- USENET, kaynak kodu paylaşım gruplarında modern açık kaynak geleneklerinin tohumlarını attı;
README,NEWS,INSTALLgibi proje metadata dosya adları 1980’lerin başında orada yerleşti- 1987’deki Great Renaming, USENET grup adı hiyerarşisinin yeniden düzenlenmesiydi
- 1993’te AOL kullanıcılarına USENET erişimi açınca “September that never ended” başladı; çok sayıda yeni kullanıcının gelişi kültürel uyumu zorlaştırdı
- UUCP adresleri
…!bigsite!foovax!barbox!usergibi bang-path biçimindeydi; 1990’ların başında internet erişimi arttıkça yerleriniuser@hostnamebiçimine bıraktılar- Geçiş döneminde
%ile UUCP yönlendirmesini ve internet yönlendirmesini birleştiren hibrit adresler de vardı
- Geçiş döneminde
- BBS genellikle tek bir modemin bağlı olduğu bir bilgisayarda, aynı anda bir kişinin bağlanarak mesaj, dosya yükleme-indirme ve oyunlara eriştiği sistemdi
- İlk BBS 1978’de Chicago’da çalıştırıldı; sonraki 18 yıl içinde 100 binden fazla BBS ortaya çıkıp kayboldu
- 1984’ten itibaren FidoNet, BBS’ler arasında e-posta ve USENET’e benzer bir forum sistemini destekledi
- XMODEM, YMODEM, ZMODEM BBS kültüründen geriye kalan neredeyse tek hatıralardır; 2018’de bile bazı Cisco ekipmanları serial port üzerinden XMODEM yüklemesiyle yama alıyordu
- AOL, CompuServe, GEnie, The Source, Prodigy gibi ticari timesharing servisleri ve CSNET, BITNET, EARN, VIDYANET gibi akademik WAN’lar da vardı;
listservsözcüğü BITNET’in e-posta reflector’ından gelir
FTP, Gopher ve web öncesi bilgi erişimi
- World Wide Web 1990’ların başında birkaç yıl içinde yaygınlaşmadan önce, 1971’den itibaren internet siteleri arasında dosya aktarımı genellikle ftp ve File Transfer Protocol ile yapılıyordu
- Web tarayıcıları FTP protokolünü doğrudan konuşabilir hale gelince ftp kullanımı büyük ölçüde tarayıcıların içine alındı;
ftp:URL öneki, bir FTP sunucusuyla iletişim kurulması gerektiğini gösterir - Tim Berners-Lee’nin World Wide Web’i yarattığı 1991 yılında, University of Minnesota’daki hacker’lar menü odaklı hiper metin protokolü Gopher’ı geliştirdi
- Gopher ilk dönem Web ile birkaç yıl rekabet etti, ancak 1993 başında üniversite uygulamaya lisans ücreti koymaya karar verince benimsenmesi yavaşladı
- İlk web tarayıcıları Gopher protokolünü ve belge görüntülemeyi destekliyordu; ancak 2000’e gelindiğinde Gopher fiilen ortadan kalkmıştı ve yalnızca bazı sunucular nostalji ve ironi anlamında çalıştırılıyordu
Terminal emülatörleri ve VDT mirası
- Modern Unix’in terminal emülatörleri, teletype’ı taklit eden ilk ekranların, yani glass TTY ve dumb terminal’ların devamındaki son biçime yakındır
- Bu tür ilk cihaz 1969’da sevk edildi; iyi hatırlanan modeller arasında 1975 tarihli ADM-3 vardır
- İlk VDT’ler ASR-33 gibi yalnızca büyük harf gösterebiliyordu; Unix ve 2018’deki Linux, oturum açma adı büyük harfle başlarsa tüm girdiyi büyük harfe çeviren moda geçme davranışını korur
- 1975’ten itibaren ortaya çıkan ADM-3A ve 1978 DEC VT-100 gibi “smart terminal”lar, delikli kartlardan gelen 80 karakter genişliği ile 24x80 veya 25x80 varsayılan ekran boyutunu miras bıraktı
- cursor addressing, bold, underline, reverse-video gibi kontrol özellikleri yaygınlaştı; bunları soyutlamak için Unix’in terminfo veritabanı ve
curses(3)kütüphanesi kullanıldı - 1979’dan sonra DEC VT-100 tabanlı ANSI terminal kontrol kodları yayıldı; 1990’ların başında VDT’lerde ANSI uyumluluğu neredeyse evrensel hale geldi
- 1992 civarında kişisel bilgisayarların bitmapped color display’leri, tek renkli VDT düzeyindeki dot pitch ve net metin görüntülemeye yetişince, genel amaçlı bilişimde VDT pazarı hızla çöktü
- Unix komut satırı VDT’den önceki printing terminal döneminden gelir; çıktı vermek için “printing” denmesinin nedeni de budur
vi(1),top(1),mutt(1)gibi karakter tabanlı iki boyutlu arayüzler, VDT döneminin gelişmiş görsel arayüzleriydi; daha sonra GUI terimi yaygınlaşınca bunlara TUI adı verildi- screensaver, CRT’lerde phosphor burn-in’i önlemek için ekran görüntüsünü değiştiren yazılımlar olarak başladı; flat screen’lerde asıl amacı ortadan kalktı
İlk bitmapped display’ler ve 8-bit estetiği
- Günümüzün piksel düzeyinde manipüle edilebilen ekranlarına giden üretim sistemlerinin ilk örneği, 1973’te Xerox PARC’ın Alto’suydu
- Alto’nun ekranı 608x808 pikseldi; 1024x1024 sınıfında olduğu yönündeki hatıra, sonraki ekranlarla karıştırılmasından kaynaklanır
- 1981’de Dandelion 1024x809’a ulaştı; bunu Xerox Star olarak ticarileştirme girişimi başarısız oldu
- 1982’de Sun Microsystems’in Sun-1’i 1024x800 piksel sunuyordu; Sun sınıfı iş istasyonları birçok hacker’ın sahip olmak istediği şey haline geldi
- Kişisel renkli bilgisayarlar 1975’ten itibaren primitive bitmapped display sunuyordu, ancak Apple II’nin Hi-res modu yalnızca 280x192 idi
- Hacker’ların programlama için iyi metin görüntülemeye ihtiyacı vardı ve 1024x1024 sınıfı iş istasyonu grafiklerini biliyorlardı; bu yüzden tüketici tipi TV tabanlı renkli ekranları çoğu zaman neredeyse işe yaramaz oyuncaklar gibi görürlerdi
- 1984’te original Macintosh, 512x342 siyah-beyaz bitmapped display’e sahip ilk tüketici makinesiydi; kısa süre sonra IBM EGA ve klonları 640x350 çözünürlükte 16 renk sundu
- Ancak 1990 civarında 1024x1024 renkli monitörler tüketici pazarının üst segmentine ulaştı; 1992 civarında yaygınlaşınca PC üreticileri iş istasyonu tedarikçilerini sıkıştırmaya başladı
- 1980’lerin ortasındaki bazı genç hacker’lar düşük çözünürlüklü renkli ekranlardan ve erken dönem ses donanımlarından azami performansı almaya çalıştı; bunun sonucu olan chunky graphics, pixelated sprites ve chirpy/buzzy sesler, 21. yüzyıl oyunlarında 8-bit nostaljisi olarak kullanılır
GUI öncesi oyun kültürü
- bitmapped color display yaygınlaşmadan önce, yalnızca metin arayüzleri ve VDT’lerin karakter hücresi grafikleriyle çalışan güçlü bir oyun geleneği vardı
- Trek ailesi, geçmişi 1971’e uzanan bir oyun grubuydu; oyuncu Enterprise’ı yöneterek Klingon, Romulan vb. düşmanlarla savaşırdı
- teletype için tasarlanmış son derece kaba bir arayüzün arkasında initiative, tactical surprise ve logistics’in önemli olduğu görece sofistike bir savaş oyunu gizliydi
- Colossal Cave Adventure, 1977 tarihli ilk dungeon-crawling adventure game’dir; “You are in a maze of twisty little passages, all alike” ve
xyzzybu oyundan çıkmıştır- PDP-10’un 6 karakterlik dosya adları nedeniyle ilk kullanıcılar bu oyuna ADVENT de diyordu
- modern C portu ADVENT da vardır
- Zork, MIT hacker’larının 1979’da PDP-10 üzerinde ilk kez yayımladığı ADVENT’in doğrudan halefidir ve daha sonra ticari başarı yakalamıştır
- zorkmid, Great Underground Empire, grue gibi ifadeler buradan çıkmıştır
- roguelike, adını 1980 tarihli Rogue’dan alan bir oyun ailesidir; yukarıdan görünüşlü harita biçimindeki zindanlarda canavarlarla savaşma ve hazine arama üzerine kuruluydu
- Hack 1982’de, Nethack 1987’de ortaya çıktı
- Nethack, geliştirme grubunun internet üzerinden dağıtık işbirliğiyle bilinçli olarak örgütlendiği en eski programlardan biriydi ve bu yenilik projenin adına yansıdı
- Rogue’un ardılları en popüler ve başarılı TUI oyunlarıydı; 1990’ların ortasından sonra genel kültürden silinmiş olsalar da bugün hâlâ küçük ama sadık bir hayran kitlesini korurlar
ASCII’nin bit yapısı ve kontrol karakterleri
- ASCII, 1960’ların başındaki teletype karakter kodu ailelerinden evrildi; Unicode’un en düşük 127 kod noktası ASCII olarak tasarlandığı için uzun süre yaşamaya devam etmesi muhtemeldir
- UTF-8’i biliyorsanız, her ASCII dosyası aynı zamanda geçerli bir UTF-8 dosyasıdır
- Klavyedeki Control modifier temelde giriş karakterinin üst 3 bitini siler, yalnızca alt 5 biti bırakır ve bunu 0–31 aralığındaki kontrol karakterlerine eşler
Ctrl-SPACE,Ctrl-@, `Ctrl-`` hepsi NUL anlamına gelir
- Çok eski klavyelerde Shift, tuşa bağlı olarak 32 veya 16 biti toggle edecek biçimde uygulanmıştı; bu yüzden ASCII’de küçük-büyük harf ilişkisi ile sayı-sembol ilişkisi düzenlilik taşır
- 1963’teki özgün ASCII, bugün kullanılan 1967 ASCII’sinden farklıydı; tilde ve vertical bar yoktu,
5Ecaret değil up-arrow,5Fise underscore değil left arrow idi - 0–31 arasındaki kontrol karakterlerinin çoğu teletype protokolünden kalıntıdır; bazıları metin veya Unix geleneklerinde, bazıları da ikili veri protokollerinde yaşamaya devam eder
NUL: C string sonlandırıcısıEOT/Ctrl-D: Unix terminalinde end of file girişiBEL/Ctrl-G: teletype’ın bell’i veya VDT’nin attention signal’ıBS,HT,LF,FF,CR,ESC,DEL: görece iyi bilinen kontrol karakterleri kümesiDC1/DC3: XON/XOFF yazılım flow control için kullanıldı ve Unix, CP/M, DOS’ta da uygulandıSUB/Ctrl-Z: DOS ve Windows’un end-of-file karakteridir; CP/M ve DEC minibilgisayar işletim sistemlerinden devralınmıştır; Unix’te process suspend tuşu olarak kullanılırESC: VT100, ANSI VDT ve modern terminal emülatörlerinde kontrol dizisi introducer’ı olarak kullanılmaya devam eder
DEL’in0x7Fdeğeri, paper tape üzerinde 7 delikle herhangi bir ASCII karakterinin üzerine yazılabilmesinden gelir; tape reader DEL ve NUL’u atlıyordu- Meta veya Alt tuşu VDT’lerde genellikle ASCII keycode’a 128 eklerdi; ancak modern terminal emülatörleri değiştirilmiş tuşun önüne
ESCkoyma yöntemini de yaygın olarak kullanır - ASCII bit yapısı ascii(1) ile incelenebilir; yazıdaki ASCII tabloları da bu araçla oluşturulmuştur
Dağıtık işbirliğinin yavaş doğuşu
- Günümüzde açık dağıtık sürüm yönetimi ve uzaktan işbirliği doğal kabul edilir; ancak bunların temel araçları ve kullanım gelenekleri uzun sürede oluştu
- Erken atalardan biri, 1961’de kurulan Digital Equipment Corporation Users' Group olan DECUS’un teyp paylaşımıydı
- DEC kullanıcıları public-domain yazılım içeren magnetic tape’leri dolaştırıyordu ve 1976’ya gelindiğinde bu gelenek yerleşmişti
READMEgeleneği Unix dünyasına USENET üzerinden girdi, ancak DECUS teyp’lerinden yayılmış bir iz gibi görünür
- 1970’lerde kaynak kodun e-postayla gönderilip alındığı ve dağıtımların FTP sitelerine yüklendiği akademik yazılım işbirlikleri vardı
- ağ e-postası 1971’de icat edildi ve 1973’te ARPANET trafiğinin %75’ini oluşturacak kadar yaygın kullanılıyordu
- Donald Knuth’un TeX’i, 1978’de başlayan bu dönemin ayakta kalmış başlıca örneklerindendir
- 1980’den sonra özel USENET newsgroup’larında kaynak kod yayımlamak ve dış katkıcıların e-postayla patch göndermesi hızla gelenek haline geldi
comp.sources.unix, Unix hacker’larının yeni kod aradığı gündelik yerdi
- Tam anlamıyla merkezsiz geliştirme için version control, patching ve forge gerekiyordu
- SCCS 1972’de doğdu, ancak Bell Labs dışına ancak 1977’de çıktı; kapalı lisansı yayılmasını yavaşlattı
- RCS, 1982’de çıkan özgürce yeniden kullanılabilir bir alternatifti
patch(1)1984’te çıktı; ondan önce değişen dosyanın tamamını gönderip almak yaygındı
- Nethack, 1987’de başlayan bir roguelike oyundur; geliştiricilerin e-postayla önce tüm dosyaları, sonra patch’leri gönderip aldığı ve yerel kopya yönetimi için SCCS/RCS kullandığı erken dönem tam dağıtık geliştirme örneğiydi
- CVS 1990’da ortaya çıktı; 1993’te ağ üzerinden uzaktan çalışma özelliği eklendikten sonra FreeBSD ve NetBSD gibi büyük projeler tarafından hızla benimsendi
- Linux 1991’de dağıtık işbirliği çabası olarak duyuruldu; ancak ilk geliştirme Nethack gibi e-posta patch yöntemiyle yürüyordu ve henüz herkese açık bir Linux deposu yoktu
- SourceForge, 1999’da ortaya çıkan ilk özel software forge idi; başlangıçta yalnızca CVS destekliyordu, ancak 2000’de çıkan Subversion’ın benimsenmesini hızlandırdı
- Subversion 2000–2005 arasında genel kabul gören bilgi haline geldi; 2005’te Linus Torvalds Git’i yapınca önceki sürüm yönetim sistemleri hızla eski moda oldu
Hatırlanması Gereken Zaman Çizelgesi
- 1969'da Ken Thompson, Unix'e dönüşecek çalışmaya başladı; ilk ticari VDT sevk edildi ve ARPANET'te ilk paket alışverişi yapıldı
- 1970'te DEC PDP-11 sevk edildi ve daha sonra Intel ile ARM dahil olmak üzere mimari ailelerini büyük ölçüde etkiledi
- 1971'de erken dönem ARPANET'te ağ e-postası ve
@işaretinin kullanımı icat edildi - 1973'te Xerox Alto, yüksek çözünürlüklü ekran ve fareye sahip ağ bağlantılı kişisel bilgisayar olan workstation kavramına öncülük etti
- 1977'de Unix, Interdata'ya port edilerek çekirdeğin büyük kısmı C ile yazılmış ilk sürüm oldu; SCCS yayımlandı ve Colossal Cave Adventure sevk edildi
- 1980'de Rogue icat edildi ve USENET başladı
- 1981'de IBM PC sevk edildi; TCP/IP, 4.1BSD Unix'in VAX-11/780 üzerinde uygulanmasıyla ARPANET ve Unix kültürü birleşmeye başladı
- 1983'te PDP-10 iptal edildi ve ARPANET teknik bir dönüşüm geçirerek Internet oldu
- 1987'de USENET Great Renaming gerçekleşti, Perl icat edildi ve Nethack projesi başladı
- 1991'de Linux ve World Wide Web ayrı ayrı başladı; Python icat edildi
- 1993'te Linux TCP/IP yetenekleri kazanarak hobi oyuncağından ciddi bir OS'ye dönüştü; AOL'nin USENET'i açmasıyla “September That Never Ended” başladı ve Mosaic, Web'e grafik ve görsel yetenekleri ekledi
- 1994'te ABD'de kitlesel internet ciddi şekilde yayılmaya başladı ve USB duyuruldu
- 1995~1996, UUCP/USENET ve BBS kültürünün zirvesi olduğu, aynı zamanda kitlesel internet baskısıyla çöktüğü dönemdi
- 1999'da SourceForge başladı; Linux'un PC'lerde çalışmasıyla Sun gibi tescilli Unix workstation pazarları çöktü
- 2005'te büyük üreticiler CRT üretimini durdurup flat-panel'e geçti; AOL USENET desteğini sonlandırdı ve Git ilk kez sevk edildi
- 2007~2008'de kitlesel PC'lerin 64 bit'e geçişiyle 32 bit dönemi sona erdi; iPhone ve Android, Unix tabanlı OS'lerle birlikte ilk kez sevk edildi
1 yorum
Hacker News yorumları
İlginç olan, yazının modern dünyayla bağlantı kurma biçiminin epey hatalı olması. Örneğin Hayes komut öneki
ATnin hat hızı otomatik senkronizasyonu için faydalı bir özelliği olduğunu anlattıktan hemen sonra, 2017’de de 3G/4G hücresel modemleri kontrol etmek için AT komutlarının kullanıldığını söylüyor.Ama modern modemler seri olarak bağlanmıyor ve hat hızı kavramı da yok. Bu özellik modern donanımla alakasız; mevcut kod tabanını yeni ortamlara genişletmenin kolay olduğu açıklaması çok daha makul.
“IoT devices still speak RS-232” ifadesi de tehlikeli derecede yanlış. RS-232, 0 için pozitif voltaj, 1 için negatif voltaj kullanır ve her biri 3–15V aralığındadır; bu yüzden RS-232’yi modern bir IoT cihazının seri arayüzüne doğrudan bağlarsanız cihazı bozma ihtimaliniz yüksektir. Eski seri ile modern cihazların seri portlarının paylaştığı kısımlar RS-232 kapsamının dışındadır; örneğin 8N1 çerçevelemeyi RS-232 tanımlamaz.
“Tüm ASCII dosyaları geçerli UTF-8’dir” sözü de muğlak. ASCII bir karakter kümesidir, diskteki temsilini tanımlamaz; karakterleri 7 bit paketleyerek saklayan bir ASCII dosyası, işlem yapılmadan UTF-8 değildir. Daha önce çeşitli sözcük uzunlukları ve 8-bit clean olmayan aktarım biçimlerinden bahsettiği düşünülürse bu tuhaf bir iddia.
Git’in önceki tüm sürüm kontrol sistemlerini hızla demode ettiği sözü de Perforce düşünüldüğünde abartı. Git, CVS ve SVN’e göre büyük bir ilerlemeydi, ama ondan önceki her şeyi hurdaya çıkardığını söylemek yazılım sektörünün büyük bir bölümünü bilmeyen bir iddia gibi görünüyor.
Elbette bu aşırı kılı kırk yaran bir yorum, ama yazının genel tonu kendini beğenmiş ve didik didik eden bir tondaysa aynı ölçütle eleştirmek haksız sayılmaz.
Modern modemlerin seri olarak bağlanmadığı sözü de doğru değil. Mutlaka RS-232 denecek biçimde olmayabilir, ama birkaç yıl önce bile genelde USB hatları kullanılıyordu ve USB de seri bir veri yoludur.
AT komutları hâlâ neredeyse tüm modemlerde kullanılıyor; cebindeki telefonda bile var. Hücresel modemin telefon şebekesinde çağrı kurma biçimi bu ve köklü
ATDTde ağ çağrısı kurulumunda kullanılmaya devam ediyor. AT komut seti çağrı kurulumu ile azami hız ve izin verilen protokoller gibi çağrı özelliklerini kontrol etmek içindi; otomatik anlaşma ise ağ/modem katmanında ayrı bir aşamadır. Eski modemler bu süreci hoparlörden duyururdu, şimdi sadece duymuyoruz.Bu tür karakter kümelerinin başka protokoller üzerinde nasıl taşındığı tanım kapsamının dışındadır.
Varsayılan hat
115200 8n1ve hız değiştirilebiliyor; hız otomatik algılama da var. Modem ayrı bir hat üzerinden hazır olduğunu bildirdikten sonra istediğin hızdaATgönderirsen genelde üçüncü denemede yanıt veriyor.Bu anlamda bugün Git, kaynak kod üzerinde dağıtık işbirliği için kullanılan fiilî olarak tek sürüm kontrol sistemi.
Yaşlı birinin ek açıklaması olarak, telefon modemlerinde 56K gerçekten üst sınırdı. Telefon şebekesinin içi 8 bit örnekleri saniyede 8 bin kez ilettiği için 64 Kbps idi; ama bazen düşük bit başka sinyaller için alınırdı ve telefon müşterisi bunu duymazdı.
Modemi o alınan bite senkronize etmeye çalışmaktansa güvenilir 7 biti kullanmak daha kolaydı; bu yüzden 56 Kbps oldu. https://en.wikipedia.org/wiki/Robbed-bit_signaling
Aslında terminal hızı olarak kullanılan 9600bps, 9600bps modemlerden daha eski bir gelenek. 80’lerin ortası-sonları civarında 9600bps modem çok etkileyici bir şeydi; terminal kullanıcıları için yeterince hızlı, o dönemin terminallerinin de kaldırabileceği bir hızdı. Volker-Craig 4404 diye hatırladığım terminal 9600bps’ye yetişemediği için 4800bps civarına düşürmek gerekirdi.
Mini bilgisayar terminal çoklayıcıları genelde mümkün olduğunda iletimi toplu yapar; DMA ile bellekten karakter gruplarını alıp gönderir, sonra CPU’ya yalnızca “tamamlandı” kesmesi yollardı. Karakter modunda bile yalnızca alım tamponu dolduğunda veya satır başı gibi sıralama karakterleri geldiğinde CPU’yu haberdar ederdi.
Bu yüzden birçok mainframe ve mini bilgisayar blok modlu terminaller kullanırdı. Uygulama form API’sini kullanır, düzenleme ve giriş terminalde işlenirdi. Bilgisayar tüm formu terminale gönderir; kullanıcı hata düzeltme ve sayısal/alfasayısal alanlar gibi doğrulamaları bitirdikten sonra açık bir “tamamlandı” eylemiyle alan içeriklerini bilgisayara iletirdi.
Tam etkileşimli kullanımda bile bu sistemler, geçerli satır içeriğinin yalnızca belirli eylemlerde iletildiği ve satır düzenlemenin terminalde gerçekleştiği satır modunu tercih ederdi. UNIX tarzı “raw” mod, terminal maliyeti biraz daha yüksek olsa da sistemin desteklemesi gereken kullanıcı sayısına göre fazla büyük bir ek yük getiriyordu.
Ne yazık ki ben 1200 baud’daydım; amcam ilk modeminin 300 olduğunu söylemişti.
110 ayarını da hatırlıyorum; 1948’deki Berlin Hava Köprüsü’ne kadar uzanıyor olabilir.
4G modemlerde AT komutları kullanmayı ilk kurcaladığımda gerçekten gülmüştüm. Alışık olduğum his aynen işe yarıyordu. Yalnız arama ve modem seslerinin olmaması biraz üzücüydü
3G/4G modem sektörünün cihazla konuşmak için daha iyi bir yol geliştirememiş olması şaşırtıcı. ISDN’nin bile yaygın biçimde uygulanmış düzgün bir API’si vardı
Her hâlükârda nostalji, hayranlık ve dehşet eşit oranda hissediliyor
https://docs.espressif.com/projects/esp-at/en/latest/esp32/A...
Yine de AT ile konuşan sanal iletişim portu duruyor ve bazı tanılama işleri için hâlâ gerekebiliyor
QMI/MBIM ile veri bağlantısı kurmak, AT ve PPP ile uğraşmaktan çok daha kolay ve verimli
“Tarihî USENET arşivleri Google Groups’ta bulunabilir” demek yerine archive.org’u öneririm. USENET gruplarını mbox dosyaları olarak saklayan harika, indirilebilir koleksiyonlar var
mboxgrepgibi bir şey kurabilir, bir e-posta okuyucusuna aktarabilir ya da düz metin dosyası olarak okuyabilirsinizÖrnek burada
https://archive.org/details/usenet-comp
cd ..https://archive.org/details/usenethistorical
1980’lerin ortasında, Londra’daki bir üniversite bilgisayarından (sanırım Imperial’daki CDC Cyber’dı) başka bir üniversite bilgisayarına (sanırım Queen Mary’deydi) bağlanıp yalnızca Unix mini bilgisayarlarında bulunan sembolik cebir paketini denemeye çalışmıştım
Aradaki yazılımlar için doğru terminal ayarlarını ve yapılandırma değerlerini bulmaya tam 2 saat harcadım; sonunda 8 bit 2 MHz 64K bir makinede yapabildiğim kadarını kendim kodlamak daha iyi olacakmış gibi hissettim
Yazılımda “üstüne sürekli kat çıkma” sorunu var. İnşaatta mevcut binayı ve bileşenleri yeniden kullanabilir, içindeki bazı şeyleri yükseltebilir ya da yıkıp yenisini yapabilirsiniz
Ama yazılımda bunu yapmıyoruz. Kurşun boruları, CAT-3 kabloları, at kılı yalıtımı ve tek camları yeni gökdelene aynen takıyoruz. Çünkü daha iyi PVC, CAT-6, püskürtme yalıtımı ve üçlü cam icat etmektense onlarca yıllık eski teknolojilerin üzerine kat çıkmak daha kolay; ya da eski binaların kullandığı standartları kullanımdan kaldırmak istemiyoruz ve bina sahipleri yükseltme maliyetini ödemek istemiyor
Böylece çalışan bir gökdelen ortaya çıkıyor ama nedense yeni mühendislere at kılı yalıtımı öğretmek zorunda kalıyoruz
Bu yüzden çoğu deneysel araştırma projesi olarak kalıyor; şanslıysa en iyi kısımları zamanla mevcut projelere kademeli olarak giriyor
Gözden kaçan şey, bu “eski ve berbat teknolojilerin” önemli bir kısmının hâlâ neden ortada olduğu. Bunlar zamanın sınavından geçti. Modern teknolojiler bu şeyleri sırf nostalji yüzünden yaşatmıyor. Çoğu ya sorunu zarifçe çözdüğü, ya daha modern sistemlerin üzerinde kullanışlı bir soyutlama sunduğu ya da mevcut sistemlerle uyumluluktan kaçınmak mümkün olmadığı için hâlâ faydalı
Elbette bu eski teknolojilerin de kusurları var. Birkaç on yıl sonra sizin kodunuzun tamamı da öyle olacak
Standartlarla ilgili XKCD hangisiydi?
1997 doğumlu biri olarak yazılım sektöründe çalışırken öğrendiğim şeylerden biri, yazılım mühendisliği denen alanın bazen sistemlerin tarihini anlamaya yakın olduğu. Böyle yazıları okumak hoşuma gidiyor; bazen bir kavram bir anda yerine oturuyor
Gömülü sistemlerde çalışan biri olarak, buradaki içeriğin önemli bir kısmı hâlâ geçerli. RS-232’nin kendisi, yani fiziksel katman spesifikasyonu daha az kullanılıyor; ama onun altındaki UART iletişim protokolü hâlâ sapasağlam
Örneğin Beaglebone geliştirme kartı, bootloader’ı XModem ile yükleyerek önyüklenebilir
Aslında ASR-33’ün başlangıçta kullandığı daha eski bir TTY arayüzü vardı; telgraf devrelerinden türemişti ve akım döngüsü olarak adlandırılıyordu. 1970’lerde RS-232’yi de destekleyen çift modlu ASR-33’ler çıkmaya başladı ve sonunda RS-232, akım döngüsünün yerini tamamen aldı
KIM-1(https://en.wikipedia.org/wiki/KIM-1) bu yöntemi kullanır; akım döngüsü(https://en.wikipedia.org/wiki/Current_loop) arayüzü ise endüstriyel kontrol bağlamlarında hâlâ oldukça yaygındır. Ayrıca MIDI’nin(https://en.wikipedia.org/wiki/MIDI#Electrical_specifications) temelini de oluşturur
FF (Form Feed), yani Ctrl-L, birçok video ekran terminali tarafından “ekranı temizle” komutu olarak yorumlanırdı; yazılım terminal emülatörleri de bazen hâlâ bunu böyle yapar
Bu, Usenet’te spoiler işareti olarak yaygın kullanılırdı. Çünkü kullanıcı PgDn gibi bir tuşla geçmeden mesajın geri kalanı gösterilmezdi. Ekranda
^Lolarak görünür, böylece arkada daha fazlası olduğu anlaşılırdı;^Lekranın dışına kaydırılana kadar da ekranın geri kalanı temizlenirdi