1 poin oleh GN⁺ 2023-10-23 | 1 komentar | Bagikan ke WhatsApp
  • Dave Cutler mengenang latar belakang perancangan Windows NT dan budaya pengembangan di Microsoft berdasarkan pengalamannya yang membentang dari RSX-11, VMS, Windows NT hingga Azure dan Xbox
  • Sejak awal, Windows NT ditujukan sebagai sistem operasi portabel yang mendukung berbagai lingkungan eksekusi, dan ketika Windows 3.1 terjual 16 juta kopi dalam 6 bulan, Windows menjadi lingkungan utama menggantikan OS/2
  • NT awal menangani berbagai arsitektur seperti i860, MIPS, x86, Alpha, dan PowerPC, beserta HAL, object manager, dan struktur kernel/driver, dan banyak struktur intinya masih bertahan hingga Windows 11
  • VMS menargetkan 0 bug yang diketahui saat rilis, dan tim pengembang NT menjaga kekompakan organisasi lewat Friday WHIM, tetapi pada NT, Cairo, Longhorn, dan respons keamanan XP, jadwal, kualitas, dan percabangan codebase menjadi beban besar
  • Cutler memandang perbaikan bug, pengujian, jaminan kualitas, dan disiplin untuk tidak menambahkan fitur yang tidak perlu sebagai sikap inti tim perangkat lunak yang baik

Karier sistem operasi sebelum Windows NT

  • Setelah mengenal sistem real-time dan simulasi komputer di DuPont, Dave Cutler menjadi lebih tertarik pada komputer itu sendiri daripada sekadar alat pemecah masalah
    • Dalam proyek mensimulasikan proses pembuatan formulir Scott Paper dengan GPSS 3, ia mengalami error kartu dan debugging
    • Untuk mengurangi error, ia menulis program Fortran, lalu mempelajari assembly IBM 7044 dan memperluas minatnya pada cara kerja internal komputer
  • Di grup sistem real-time DuPont, ia menulis program yang secara otomatis menganalisis data uji tarik Instron
    • Program pengumpulan data berjalan secara real-time, dengan metode membaca data tiap 1 milidetik atau 100 milidetik
  • Setelah itu, ia menangani pekerjaan pada sistem operasi Exec II untuk Univac 1107 dan mulai benar-benar masuk ke pengembangan sistem operasi
    • Setiap hari pukul 5 sore ia mengeluarkan operator lalu menjalankan kode eksperimen dan pengujian selama 2 jam
    • Dalam lingkungan yang hampir tidak punya debugger, ia melakukan debugging dengan switch dan halt instruction

Masa di DEC: RSX, VMS, compiler, PRISM

  • Di Digital Equipment Corporation, ia awalnya direkrut untuk OS/45 tetapi segera ditugaskan ke RSX-11C
    • Ruang alamat 16-bit PDP-11 saat itu menurut Cutler merupakan batasan besar
    • RSX-11C adalah sistem kecil dan menurutnya fiturnya terbatas bahkan untuk ukuran zamannya
  • Pengembangan VMS dibootstrap dengan memanfaatkan hardware VAX dan lapisan eksekusi kompatibel PDP-11
    • VAX memiliki mode PDP-11, dan lapisan bernama Application Migration Executive menjalankan utilitas RSX-11M
    • Files-11 file system juga diimplementasikan ulang di VMS untuk menjaga kompatibilitas
    • Pada awal pengembangan, pekerjaan inti seperti scheduling dan memory management dilakukan di emulator hardware
  • VMS menggunakan self-hosting sebagai sarana menjaga kualitas
    • Saat sistem cukup stabil di Proto 3, tim pengembang bekerja langsung di atas sistem itu
    • Jika sistem mengalami bug check, beberapa orang akan menuju mesin, mencari penyebabnya dengan debugger, memperbaikinya, lalu boot ulang
  • Ia mengenang bahwa saat rilis, VMS memiliki “0 bug yang diketahui”
    • Artinya bukan “tidak ada bug”, melainkan semua bug yang diketahui saat rilis berusaha diperbaiki
    • Bahkan di saat terakhir mereka masih memperbaiki race condition di disk driver
  • Setelah VMS, ia juga terlibat pada compiler PL/I, backend compiler C, code generator, optimisasi, dan register allocation
    • Front-end PL/I dibeli dari perusahaan di Boston, sedangkan backend dikembangkan di VAX
    • Sebagian pekerjaan front-end dilakukan di Multics milik MIT lalu datanya dipindahkan lewat tape
  • Di DEC West, ia ikut dalam sistem real-time bernama Velon dan proyek MicroVAX
    • Velon adalah sistem untuk menguji ide seperti user-mode driver, struktur berorientasi pesan, multithreading, dan multiprocessor
    • Pada MicroVAX 1, Cutler menulis seluruh microcode sendiri
  • Proyek PRISM adalah upaya DEC di arsitektur RISC, dan sehari setelah dibatalkan Cutler memutuskan keluar dari perusahaan
    • PRISM memiliki versi arsitektur 32-bit dan 64-bit, dan sistem perangkat lunak ambisius bernama Micah juga sedang berjalan
    • Setelah pembatalan PRISM, ia sempat ingin mendirikan perusahaan server, tetapi arah berubah setelah bertemu Microsoft

Bergabung ke Microsoft dan desain Windows NT

  • Bergabung ke Microsoft belum benar-benar pasti bahkan setelah berbicara dengan Bill Gates, tetapi keputusan diambil cepat setelah sarapan dengan Steve Ballmer di Denny’s
    • Menurut Cutler, Ballmer adalah sosok kunci yang meyakinkannya bergabung ke Microsoft
  • Tujuan awal NT adalah sistem operasi portabel dan dukungan untuk berbagai lingkungan eksekusi
    • Lingkungan target saat itu adalah OS/2, dan POSIX juga kandidat penting
    • Inti sistem dirancang menyediakan layanan dasar, lalu berbagai lingkungan berjalan di atasnya
  • Alasan Windows menjadi lingkungan utama NT adalah kesuksesan Windows 3.1
    • Windows 3.1 terjual 16 juta kopi dalam 6 bulan, dan Bill Gates menilai Windows akan menjadi lingkungan utama sistem baru itu
    • Pengembangan NT sempat berjalan di atas OS/2, tetapi tim ingin secepatnya self-hosting di NT itu sendiri
  • Nama NT berarti “New Technology”
    • Mungkin ada hubungan samar antara codename i860 yaitu N10 dan NT, tetapi Cutler memandang NT sebagai New Technology
    • Pihak marketing menentang karena nama “teknologi baru” bisa membuat pembeli ragu, tetapi Cutler tetap mendorong nama NT
  • Versi pertama NT mendukung banyak arsitektur CPU
    • x86, MIPS R3000/R4000, dan Alpha disebutkan
    • PowerPC masuk pada masa NT 3.5 atau Daytona, dan Cutler menilai build PowerPC serta daya saing hardwarenya kurang baik
  • HAL di NT pada awalnya lebih mirip lapisan abstraksi vendor daripada sekadar hardware abstraction layer
    • Awalnya dibuat sebagai DLL terpisah agar vendor dapat menyediakan HAL sendiri
    • Belakangan Cutler merasa akan lebih baik jika HAL dibangun seperti bagian dari sistem operasi
  • Kernel NT dan HAL tidak banyak memakai assembly
    • Beberapa operasi yang sering dipanggil dan penting untuk performa memang memerlukan assembly atau intrinsic
    • Di x64, arahnya adalah memakai intrinsic alih-alih inline assembly

Budaya pengembangan NT, Cairo, Longhorn, keamanan XP

  • Tim NT mengadakan WHIM setiap Jumat untuk menjaga organisasi yang tumbuh cepat tetap terikat
    • WHIM adalah singkatan dari Weekly Integration Meeting
    • Pada awalnya, para manajer membeli bir dan keripik di Safeway lalu mengadakannya di lab hardware; kemudian berkembang ke ruang yang lebih besar dengan catering
    • Cutler merasa gambaran bahwa pengembangan NT hanya terus-menerus memeras orang tidaklah benar, dan mereka berusaha menciptakan kesempatan untuk melepas ketegangan tiap minggu
  • Setelah NT 3.5, upaya membawa UI Windows 95 ke NT berjalan paralel dengan proyek Cairo
    • Tuckwila dipertahankan sebagai semacam cadangan NT 4.0; dalam daily build, Tuckwila stabil sementara Cairo sering rusak
    • Fitur Cairo perlahan dipangkas, dan hasil porting utama yang ia ingat hanyalah perangkat lunak file server dan Kerberos
  • NT 4.0 tetap menjadi versi yang sangat populer, dan Cutler mengatakan ia masih pernah bertemu orang yang memakai NT 4.0
  • Jadwal NT 3.1 memakan waktu lebih lama daripada VMS
    • VMS menurutnya dibuat dalam 2 tahun oleh tim sekitar 20 orang yang sangat hebat
    • NT harus melakukan lebih banyak hal, dan cakupannya membesar karena meninggalkan i860 serta menambah MIPS, x86, Alpha, dan arsitektur lain
  • Dalam proses menuju Longhorn dan Vista, pemisahan codebase menjadi masalah besar
    • Setelah Windows 2000, codebase server dan workstation terpecah; saat sisi server banyak memperbaiki masalah keamanan, sisi konsumen menjadi tidak stabil untuk build dan run
    • XP sangat sukses tetapi punya banyak bug, lalu ketika masalah keamanan membesar, banyak upaya dicurahkan untuk memperbaiki bug XP
    • Grup Cutler memperbaiki sekitar 5.000 bug keamanan terkait XP
  • Ekstensi x64 dari AMD menjadi titik balik penting di Microsoft
    • AMD mengusulkan ide ekstensi 64-bit yang lebih tidak invasif dan dapat menjalankan aplikasi 32-bit dengan cepat
    • Cutler memutuskan membuat workstation dan server 64-bit berdasarkan codebase server, dan ini awalnya bukan proyek yang disetujui resmi sejak awal oleh perusahaan
    • Saat sistem AMD tiba, mereka pertama kali boot dari CD, dan sistem 64-bit langsung boot dan berjalan
    • microsoft.com diuji sekitar satu minggu di server 64-bit lalu dipindahkan, dan dinilai jauh lebih stabil daripada sistem 32-bit
  • Longhorn pada akhirnya beralih ke codebase x64, dan codebase itu berlanjut hingga sekarang

Struktur internal Windows dan kode yang masih bertahan hingga kini

  • Banyak fungsi dan struktur inti era NT 3.5 masih bertahan di Windows 11
    • Kode kernel, struktur memory management, struktur proses, dan object manager tetap berlanjut
    • Porsi kode asli terhadap keseluruhan kode terus mengecil, tetapi struktur inti yang menjalankan fungsi yang sama masih banyak yang tersisa
  • Cutler menyebut object manager NT sebagai salah satu alasan penting codebase yang baik
    • Berbeda dari pendekatan Unix “everything is file”, di NT dimungkinkan membuat descriptor tipe objek baru, mengintegrasikannya ke object manager, lalu menambahkan objek sistem operasi baru
    • Objek dapat menyediakan fungsi seperti sinkronisasi dan access control
  • Handle table adalah bagian penting untuk performa sehingga ditulis ulang berkali-kali
    • Handle translation benar-benar menjadi isu performa
    • Sebagai contoh, pada sistem kerjanya ada sekitar 60 proses, ratusan thread, dan 150 ribu handle dalam keadaan terbuka
  • Membesarnya Task Manager disebut sebagai contoh code bloat
    • Dulu Task Manager dikompilasi menjadi 85KB, tetapi sekarang menjadi 4MB
    • Kini ia menampilkan lebih banyak informasi seperti CPU, jaringan, dan disk, tetapi Cutler tidak merasa penambahan fungsinya sebanding dengan lonjakan ukuran itu
  • Keputusan memindahkan driver grafis dari user mode ke kernel mode diperlukan demi performa, tetapi menimbulkan banyak kesulitan awal
    • Pada awalnya Cutler menentang perpindahan ke kernel mode
    • User mode dan kernel mode punya model sinkronisasi yang berbeda, jadi itu bukan sekadar memindahkan kode, dan struktur data 16-bit serta primitive juga menjadi beban
    • Setelah itu reliabilitas membaik jauh, tetapi pernah ada masa banyak masalah pada driver grafis vendor

Azure, Xbox, xCloud

  • Setelah mengirim sistem x64, Cutler frustrasi karena masalah fcib dan mengatakan akan keluar dari Microsoft; setelah disarankan Steve Ballmer untuk berlibur, ia kembali pada November 2005
    • fcib berarti checked-in binary, dan porting menjadi sulit karena ada grup yang melakukan check-in binary alih-alih source
  • Setelah itu, ia terlibat dalam proyek awal Azure
    • Ray Ozzie memulai proyek setelah melihat tidak ada infrastruktur bersama untuk berbagai layanan berbasis cloud
    • Azure awal menargetkan infrastruktur platform seperti deployment aplikasi, kontrol konfigurasi, manajemen versi, restart, billing, dan cloud file system
    • Ia menjelaskan bahwa yang disediakan AWS berpusat pada infrastruktur, sementara Microsoft pada awalnya ingin menjual layanan platform
  • Hypervisor awal Azure dibuat berdasarkan teknologi yang masuk lewat akuisisi Connectix
    • Connectix memiliki produk Virtual PC dan Virtual Server, dan pengembangan hypervisor juga sedang berlangsung di tahap awal
    • Setelah itu, hypervisor Xbox berasal dari hypervisor Red Dog milik Azure
  • Xbox berjalan dengan struktur tiga VM
    • host system memiliki semua perangkat dan berperan sebagai traffic cop untuk komunikasi antar-VM
    • presentation VM menangani window manager dan sistem tampilan serta terus berjalan
    • game VM dimulai dan dihentikan untuk tiap game, dan game dipaketkan bersama OS
  • Struktur game yang dipaketkan bersama OS menguntungkan untuk kompatibilitas mundur
    • Pengembang game memaketkan game bersama OS dari GDK, dan saat dijalankan VM terkait ikut berjalan
    • Ini mencegah perubahan sistem operasi merusak game lama
    • Namun ketika fitur perlu dimasukkan ke game lama, dibutuhkan jalan memutar seperti universal game OS
  • Fitur pause/resume di Xbox bekerja dengan cara menyimpan dan memulihkan VM
    • Pemuatan game melibatkan data berukuran gigabyte sehingga memakan waktu lama
    • Pause/resume adalah fungsi yang menyimpan keadaan VM lalu memulihkannya nanti
  • Untuk pekerjaan saat ini, disebutkan Linux VM dan graphics stack yang memanfaatkan waktu idle konsol xCloud
    • xCloud adalah struktur yang mengemas ulang konsol Xbox ke dalam rack, menaruhnya di data center, lalu menyediakan akses jarak jauh
    • Konsol bersifat single tenant sehingga hanya satu orang yang memakainya pada satu waktu, dan ada waktu idle
    • Ia sedang mengerjakan Linux VM, hypervisor Xbox, dan graphics stack untuk rencana menjalankan workload machine learning khusus Microsoft pada waktu tidak dipakai

Kualitas, pengelolaan tim, filosofi pengembangan

  • Cutler menerapkan ungkapan “orang sukses melakukan hal yang ditolak orang gagal” juga pada tim perangkat lunak
    • Ia memandang bermasalah sikap seperti tidak mau menguji karena sudah menulis kodenya, pulang jam 5 sore padahal jadwal masih tersisa, atau tidak mau memperbaiki bug sendiri
    • Ia menilai pentingnya sikap melakukan sendiri hal yang diperlukan agar berhasil
  • Ia sangat menghargai “thinker-doer”
    • Mengutip Brooks, ia mengatakan banyak orang hanya berpikir, jauh lebih sedikit yang benar-benar mengeksekusi, dan lebih sedikit lagi yang bisa melakukan keduanya
    • Menurutnya, arsitek pun harus menghasilkan hasil nyata yang memenuhi tujuan dan batasan
  • Ia ingin memasang kalimat “kalau tidak dimasukkan, tidak perlu dikeluarkan” di dinding laboratorium University of Washington
    • Kalimat itu dipakai untuk menekankan disiplin agar tidak menambahkan fitur yang tidak perlu
  • Dalam lingkungan pengembangan awal, alat debugging sangat terbatas sehingga sikap mengurangi kesalahan sejak awal sangat penting
    • Dulu kadang perlu memakai logic analyzer atau oscilloscope
    • Menurutnya, alat masa kini memiliki banyak fungsi untuk mengurangi kesalahan kecil, tetapi tekanan terhadap kualitas berbeda dari dulu
  • Ia melihat multitasking memang mungkin, tetapi produktivitas tertinggi datang dari fokus pada satu pekerjaan
    • Karena context switch memerlukan waktu
    • Namun ia menjelaskan bahwa ia tetap berpindah tugas untuk membantu masalah orang lain yang buntu atau memperbaiki bug

1 komentar

 
GN⁺ 2023-10-23
Komentar Hacker News
  • Pewawancaranya, Dave Plummer, juga sosok yang sangat menarik. Saya terutama menyukai video coding retro seperti https://www.youtube.com/watch?v=JlZe2JwrJqM dan https://www.youtube.com/watch?v=b0zxIfJJLAY
    Videonya juga menyenangkan, dan musik latar serta lampu RGB-nya memberi nuansa Natal. Itu juga membuat Microsoft terlihat sangat berbeda dari citra yang selama ini saya kenal; ia mengakui hal-hal aneh tentang Redmond, tetapi tetap berbicara dengan hangat tentang pekerjaannya, rekan-rekannya, dan Microsoft
    Namun kalau menonton kanal ini, algoritma YouTube seperti terpicu sesuatu sehingga feed rekomendasi dibanjiri video ADHD. Mungkin karena video tentang autisme dan ADHD, tetapi rasanya YouTube seharusnya cukup pintar untuk menyadari bahwa yang saya tonton hanyalah video coding dan sejarah Microsoft

    • Dave's Garage punya banyak konten yang benar-benar menarik dan kanal ini sangat berpengetahuan tentang Microsoft/Windows secara umum
      Namun saya tidak suka mengatakan ini, tetapi ucapan dia tentang topik di luar Microsoft/Windows perlu sangat disaring. Terutama setelah komentar di bawah ini [1]

      "Tidak, Windows adalah sistem operasi closed source yang dicintai jutaan orang. Linux adalah sistem operasi open source dengan binary blob yang Linus Torvalds masukkan ke setiap rilis, dan hanya dia yang punya source code-nya. Pilih racunmu. Keduanya tertutup, salah satunya hanya punya ilusi transparansi."
      Awalnya saya kira itu palsu, tetapi kalau melihat tautannya, komentarnya masih belum dihapus. Sekali lagi, Dave's Garage punya konten yang sangat menghibur, tetapi hal-hal yang ia katakan di luar bidang keahliannya perlu dilihat dengan skeptis
      [1] https://www.youtube.com/watch?v=PqWjq2SdzpI&lc=UgwFYyE8lw0hQ...

    • Rekomendasi YouTube selalu cukup buruk, dan begitu Anda sadar bahwa hanya dengan sekali menonton video tentang topik kontroversial saja akan membuat video sampah tentang topik itu membanjiri rekomendasi, Anda jadi menghindari eksplorasi sama sekali
      Kejadian baru-baru ini saat mereka memaksa orang mematikan ad blocker juga membuka mata. Iklan YouTube benar-benar yang terburuk, sampai memalukan membayangkan ada manusia sungguhan yang meresponsnya. YouTube tampaknya sudah berhenti bahkan berpura-pura ingin memberi pengalaman pengguna yang baik
      Meski begitu, untuk menonton hal-hal luar biasa seperti wawancara Dave Cutler ini, masih ada gunanya sedikit mengaduk-aduk lumpur
    • Sekitar tiga hari lalu saya menonton satu Short soufflé di halaman rekomendasi selama 10 detik, dan sejak itu separuh rekomendasi saya adalah video soufflé
      Saya tidak bercanda, dan ungkapan “separuh” juga cukup akurat. Entah ada yang rusak, atau YouTube seperti menempelkan large language model ke mesin rekomendasinya
    • Dave Plummer baru-baru ini juga memberikan presentasi yang bagus di VCF: https://youtube.com/watch?v=Ig_5syuWUh0
      Saya lebih suka melihatnya berbicara spontan daripada menonton video yang diedit rapi
    • Baru-baru ini saya menonton video berusia 2 tahun yang mendokumentasikan seseorang yang ikut Make-A-Wish dan anak itu kemudian meninggal; videonya sangat menyedihkan
      Setelah satu video itu saja, rekomendasi saya penuh dengan cerita tentang kanker, orang yang menjelang ajal, dan segala macam penyakit. Video itu sama sekali tidak terkait dengan konten biasanya orang tersebut, dan saya tidak menonton satu pun video rekomendasi seperti itu, tetapi semuanya terus berdatangan
  • Saya belum menonton video ini, tetapi beberapa tahun lalu saya membaca Showstopper[1], jadi saya menantikannya
    Yang terutama saya ingat dari masa awal 20-an, ketika saya merasa harus selalu bekerja, adalah bagian bahwa Dave selalu mengambil cuti tepat waktu, tanpa perdebatan, setiap kali
    Anda boleh saja tidak menyukai Microsoft, tetapi itu mungkin pertama kalinya saya benar-benar melihat sosok yang sangat kompeten dan memenuhi syarat, namun tidak digiling 24 jam sehari
    Bahkan menulisnya seperti ini masih terasa aneh, tetapi itu adalah pola pikir yang terbawa dari budaya pedesaan dan ritel, semacam “semakin menderita, semakin berbudi”
    Sampai sekarang pun beristirahat dengan benar masih sulit, dan mudah menundanya dengan alasan X atau Y lebih penting. Meski begitu, mengingat sudut pandang Dave menjadi reminder yang baik bahwa beristirahat dan melakukan X dengan baik bukanlah pilihan salah satu
    [1]: https://www.amazon.com/Show-Stopper-Breakneck-Generation-Mic...

    • Saya ingin tahu lebih jauh bagaimana budaya kerja keras 24/7 begitu meluas di Amerika, dan wawasan spiritual maupun material apa yang bisa diperoleh lewat Calvinisme atau etos kerja Protestan. Di fondasinya jelas juga ada mekanisme rutin untuk melepas tekanan
      “Ingatlah hari Sabat, untuk menguduskannya… Enam hari lamanya engkau akan bekerja dan melakukan segala pekerjaanmu, tetapi hari ketujuh adalah hari Sabat TUHAN, Allahmu…”
      https://en.wikipedia.org/wiki/Protestant_work_ethic
      https://www.biblegateway.com/passage/?search=Exodus%2020&ver...
    • Pada akhirnya, yang terutama diuntungkan adalah pemilik bisnis yang hidup dengan moto lain: “biarkan uang menghasilkan uang”
      Semakin karyawan “menempelkan hidung ke batu asah” dan “membanting tulang”, laba perusahaan meningkat, tetapi tidak perlu memberi gaji lebih besar. Kalau kesehatannya sudah cukup rusak sampai tidak bisa bekerja, tinggal diganti
      Maaf kalau jawaban larut malam ini terdengar kasar, tetapi saya rasa orang-orang di sini toh sudah memahaminya secara intuitif
    • Seiring berjalannya waktu, saya melihat bahwa sebagian besar developer senior dan sangat terampil tegas dan tidak merasa bersalah soal mengambil cuti. Tentu tidak semuanya, tetapi cukup banyak. Hanya saja saya lama tidak bisa menangkap sinyal itu
      Lalu saya mengalami burnout, dan sekarang saya menganggap beristirahat serta menjaga hari kerja 8 jam kecuali dalam keadaan darurat sungguhan bukan hanya tanggung jawab pribadi, tetapi juga tanggung jawab profesional. Itu mengurangi risiko burnout, dan burnout secara harfiah buruk bagi semua orang
    • Saya membaca buku yang sama, tetapi kenapa saya mendapat kesan dari buku itu bahwa sebagian besar karyawan Microsoft benar-benar melakukan lembur sukarela? Kesan saya, Microsoft tidak perlu membayar uang lembur karena para karyawan merasa sudah cukup terkompensasi oleh kenaikan harga saham
  • Saya pernah membaca tulisan bahwa menjelang akhir pengembangan WinNT 3.1, seseorang membuat screen saver yang menampilkan blue screen. Mungkin di Usenet
    Sampai saat itu saya belum pernah membuat screen saver, tetapi karena bug driver jaringan internal Microsoft, saya bisa membuat mesin pengembangan WinNT saya blue screen secara andal
    Jadi saya membaca dokumentasi penulisan screen saver Windows, mencatat nilai-nilai yang muncul di blue screen saya, lalu asal-asalan membuat screen saver Windows pertama sekaligus terakhir saya
    Untuk bersenang-senang, saya mengirim email ke grup Windows NT untuk memberi tahu apa yang saya buat, dan beberapa minggu kemudian grup build NT memutuskan untuk mengerjai Dave Cutler
    Mereka memasang screen saver blue screen saya di salah satu server build, mencabut mouse dan keyboard, lalu menunggu
    Dave Cutler datang untuk melihat status build NT terbaru, menyalakan monitor, dan melihat blue screen. Ia menggerakkan mouse tetapi tidak ada respons, menekan keyboard pun tidak ada respons
    Lalu terjadilah hal yang tidak terduga. Ia mengulurkan tangan dan menekan tombol daya server build untuk me-reboot-nya. NOOOOOOOOOOOOOOOOOOOOO
    Saya tidak pernah mendengar dampak atau konsekuensi dari prank itu. Dengan kekuatan besar datang tanggung jawab besar

    • Bagaimana mungkin mereka tidak mengantisipasi itu?
    • Apakah screen saver BSOD itu yang berasal dari Sysinternals milik Mark Russinovich?
      Saya juga memasangnya, dan beberapa rekan yang duduk di sekitar saya juga memasang yang sama
      CTO datang karena rapat pagi-pagi, melihat itu muncul di semua layar, lalu sedikit panik karena mengira ada penyebaran virus atau bug software
    • Unix koans: https://news.ycombinator.com/item?id=7286973
  • Saya juga merekomendasikan buku yang beberapa minggu lalu direkomendasikan seseorang di sini, “Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft
    Saya masih membacanya, tetapi benar-benar menarik, dan membuat saya berharap bisa ikut menjadi bagian dari sejarah itu. Terutama bagian dogfooding sistem operasi yang benar-benar baru. Hanya saja waktunya beberapa tahun terlalu awal bagi saya

    • Buku yang luar biasa. Saya ingat membacanya di pesawat saat akan wawancara untuk tim sistem operasi
      Berkat buku itu, saya terdengar jauh lebih tahu daripada kenyataannya, dan jauh lebih bersemangat tentang seluruh bidang itu dibanding beberapa hari sebelumnya
      Saya mendapat tawaran, tetapi akhirnya tidak mengambil pekerjaan itu
    • Bagaimana dengan https://www.amazon.com/Barbarians-Bill-Gates-Jennifer-Edstro... juga :)
    • Saya datang untuk mengatakan buku yang persis sama. Saya membacanya beberapa bulan lalu dan sangat menikmatinya
      Terkait itu, ada juga ini: https://blog.codinghorror.com/showstopper/
    • Buku fantastis yang memberi pengaruh besar pada saya. Dulu sekali saya memberi tahu penulisnya lewat Twitter betapa bagusnya buku itu, dan dia sangat ramah
  • Bagian yang menarik adalah bahwa hypervisor Xbox bukan dibuat oleh sisi desktop, melainkan berbasis Azure, dan bahwa game Xbox tidak bergantung pada satu sistem operasi di atas perangkat, tetapi dipaketkan bersama sistem operasinya sehingga sedikit lebih mirip container
    Dave mengatakan ia juga sedang mengerjakan cara menjalankan beban kerja machine learning pada perangkat Xbox Cloud Gaming yang sedang menganggur. Saya sama sekali tidak pernah terpikir bahwa ada keterkaitan arsitektural seperti ini antara Azure dan Xbox

    • Memaketkan game bersama seluruh sistem operasi sangat umum di semua konsol. Karena asumsinya hanya satu game yang berjalan secara real-time
    • Ada video luar biasa tentang keamanan Xbox, dan itu benar-benar ekstrem
      Misalnya, file eksekusi game sebenarnya dienkripsi di disk game, dan bahkan men-dump binary sebenarnya yang sedang berjalan pun hampir mustahil. RAM juga dienkripsi
      Selain itu, salah satu alasan TPM modern dimasukkan ke dalam CPU adalah agar orang tidak bisa menyadap bus TPM seperti yang dilakukan orang-orang pada Xbox
    • Hypervisor Azure, Xbox, dan Windows semuanya adalah Hyper-V
  • Saya pernah bekerja di tim kernel Windows, dan cerita favorit saya tentang DC adalah bahwa ia sangat membenci arsitektur Itanium sampai pada dasarnya membuat x64 menjadi kenyataan
    Ia bekerja bersama AMD dan, sambil terus menulis kode dari kantor sudutnya sendiri, pada dasarnya mendorong hal itu hingga terwujud

    • Yang menarik, Itanic adalah “fetch” yang coba didorong Intel bukan sekali, bukan dua kali, melainkan tiga kali. iAPX 432, i860, dan Itanium masing-masing adalah contohnya
      Gagasannya adalah, “jika beberapa instruksi, kadang dengan panjang bit variabel, dibundel ke dalam satu word, lalu penulis compiler dibiarkan mencari bundel instruksi yang optimal, implementasinya bisa menjadi lebih sederhana dan lebih cepat.” Namun jika compiler tidak bisa menemukan bundel optimal itu, hasilnya justru lebih lambat daripada desain tradisional seperti x86
      Pasti ada seseorang yang sangat tinggi posisinya di dalam Intel yang benar-benar menyukai ide ini. Sepanjang sejarah Intel sebagai vendor mikroprosesor utama, mereka mencobanya tiga kali dan gagal tiga kali
      Saat itu AMD64 tidak dianggap sebagai ide bagus karena hanya “lebih banyak hal yang sama”. Meski begitu, Dave berjasa menyingkirkan kekacauan yang pada dasarnya telah membunuh revolusi RISC, dan itu hal yang baik
    • Ini salah satu makalah teknis favorit saya tentang awal mula AMD x64. Jika Anda tertarik pada bagian dalam sistem operasi tingkat rendah, ini seperti tambang emas: https://github.com/tpn/pdfs/blob/master/A%20History%20of%20M...
    • Ada segmen pendek ketika ia menceritakan kisah itu. Saya terkejut karena ia mengatakannya dengan begitu santai, seolah itu proyek sampingan
      Semoga suatu hari saya juga bisa membuat sesuatu yang seimpresif itu di waktu luang
    • Saya adalah SDET di tim Windows pada era 2000/XP, dan saya mendengar bahwa nama kode internal untuk port x64 adalah Sundown. Katanya karena Microsoft berharap bisa menumbangkan Sun di pasar server
      Sayangnya bagi Microsoft, rampasan itu justru diambil oleh Linux di atas x86-64
  • Salah satu momen paling menentukan dalam karier rekayasa perangkat lunak saya adalah 6–7 tahun lalu, ketika saya membaca kode sumber NT yang bocor sambil membaca Showstopper[1]
    Bocoran NT itu sangat memikat karena seluruh riwayat penulisnya disertakan, sehingga kita bisa melihat persis file mana yang dikerjakan Dave Cutler. Buku itu juga membahas secara rinci hal-hal seperti bagaimana section yang pageable muncul di modul kernel, dan itu sendiri sudah menarik
    Di buku tersebut ada adegan Cutler masuk dan merombak rutinitas assembly tertentu, dan di kode sumber aslinya kita bisa melihat persis rutinitas apa itu
    Kode Cutler benar-benar merupakan kode C yang indah, dan saya yakin sampai sekarang pun begitu. Itu sangat memengaruhi cara saya menulis kode C bergaya NT
    [1]: https://www.amazon.com/Show-Stopper-Breakneck-Generation-Mic...

  • Wawancara sejarah lisan David Cutler dari Computer History Museum juga sangat bagus
    Part 1: https://youtu.be/29RkHH-psrY
    Part 2: https://youtu.be/SVgSLud50ss

    • Karena sudah menontonnya, saya sedang menunggu apakah wawancara baru ini punya perbedaan besar dalam isi
      Saya sudah melihat beberapa cuplikan dari wawancara baru itu, tetapi sejauh ini saya belum yakin apakah ada hal baru yang saya dengar
  • Jika melihat kembali apa yang dikatakan kedua Dave, mereka sangat memperhatikan menyelesaikan lalu merilis, tetapi hampir tidak ada pembahasan tentang rencana jangka panjang atau strategi keamanan yang nyata.
    Semuanya soal memompa sosis keluar dari penggiling daging di bawah tekanan komersial, dan menurunkan kegagalan ke tingkat yang dapat diterima.
    Tidak mengherankan kalau kondisi industri secara keseluruhan tidak membaik dan tidak berbelok ke arah yang benar. Dulu saya kira suatu saat kita akan sampai pada keamanan berbasis capability, tetapi sekarang rasanya kita akan selamanya terjebak pada sepupunya yang nyaris tidak bernilai: flag izin aplikasi.
    Saya khawatir dengan masa depan.

    • Eksekutif di sebagian besar perusahaan benar-benar digerakkan oleh rencana jangka pendek dan pola pikir jangka pendek, dan memang begitulah yang menguntungkan karier mereka.
      Mereka hanya butuh satu kuartal atau beberapa tahun yang cukup bagus untuk membenarkan promosi dari VP ke SVP, dari SVP ke CEO. Tidak ada yang menyalahkan dan menghukum seseorang yang tiga tahun kemudian sudah pindah ke peran baru karena keputusan rabun jauh yang ia buat di peran sebelumnya.
      Bukan berarti Cutler adalah eksekutif seperti itu. Namun ia jelas menerima tekanan dari atas untuk merilis dan menjaga aliran pendapatan. Seperti yang ia katakan di awal wawancara, ia benar-benar tidak suka mengirim produk dengan bug, sangat kecewa dengan kualitas software engineer di industri, dan juga sangat tidak suka ketika program/project manager memperlakukan semua bug seolah-olah hanya corner case langka. Saya setuju dengan ketiganya.
      Sebagian besar bug yang saya laporkan juga diperlakukan sebagai “corner case”, padahal saya menabrak masalah itu setiap hari, dan di database ada beberapa isu duplikat, atau bug saya kemudian ditandai duplikat dari laporan yang lebih awal.
      Setelah puluhan tahun di industri ini, semuanya di Big Tech, saya belum pernah melihat perusahaan yang pada akhirnya tidak tunduk pada tekanan serupa, meskipun para engineer dan manajer lini pertama mendorong perbaikan bug sebelum rilis dan meminta update perbaikan bug yang lebih sering.
    • Pada masa itu, Windows NT dinilai memiliki keamanan yang lebih baik daripada para pesaingnya. Saya ingat frasa “Department of Defense C2 level security” sering digunakan.
      Itu nilai jual besar, tetapi tidak terlalu terasa relevan bagi sebagian besar pengguna. Banyak orang justru merasa, “kenapa saya perlu ini?”, dan itu membuatnya tampak bukan seperti sistem operasi untuk “pengguna umum”.
      Konsep keamanan pada awal 1990-an—apa yang membuat sesuatu aman dan seberapa relevan bagi siapa—tidak sesuai dengan ekspektasi atau standar mutakhir saat ini.
    • Saya berharap WASI akan membawa keamanan berbasis capability ke arus utama komputer non-mobile [0].
      Mungkin butuh waktu untuk membuatnya dengan benar. Sementara itu, saya berharap alternatif berbasis single runtime yang setengah matang, regresif, dan hanya memperkuat status quo tidak menang.
      [0]: https://github.com/bytecodealliance/wasmtime/blob/main/docs/...
    • EULA membebaskan mereka dari tanggung jawab atas semua konsekuensi. Setelah mengambil uangnya, mengapa mereka harus peduli apa yang terjadi pada komputer Anda?
      Ini mungkin kontribusi ekonomi terbesar yang “diberikan” software kepada kita: kontrak mengikat yang pada dasarnya berbunyi, “kami akan menerima uang Anda, tetapi tidak menjanjikan apa pun, dasar orang mudah ditipu!”
    • Pasar memberi imbalan kepada perusahaan yang tiba lebih dulu. Kegagalan keamanan hanya berakhir dengan teguran ringan dari pasar dan regulator.
      Sebaliknya, jika keluar sebagai yang kedua di pasar, Anda dihukum.
  • Saya menantikan untuk mendengar semuanya.
    Terlepas dari perasaan terhadap orang itu atau perusahaan tempat ia bekerja, Cutler adalah software engineer yang sangat berpengaruh lewat pekerjaannya di OpenVMS dan Windows NT. Menurut saya ia tidak dibicarakan sesering orang-orang Bell Labs, Stallman, Linus, atau Stroustrup.