Pensiun, Pengembang Ini Membuka Kode Sumber yang Dikumpulkannya Selama Lebih dari 40 Tahun
(dunfield.themindfactory.com)- Seorang pengembang, sebagai bagian dari masa pensiunnya, membuka kode sumber yang telah dikumpulkan selama lebih dari 40 tahun, sehingga orang lain bisa langsung menelaah sistem lama, alat, dan proyek pribadinya
- Cakupan yang dibuka mencakup sistem operasi dan kernel, termasuk kernel multi-proses/multi-tugas untuk ARM, sistem operasi untuk CPU 6809, hingga OS awal dari era Altair 1980
- Alat pengembangan tingkat rendah seperti Micro-C Compiler, cross assembler, disassembler, emulator 8052, dan debugger juga disediakan
- Berbagai utilitas kerja PC juga dirilis secara luas, seperti DOSBox, utilitas DOS, sinkronisasi file, pemrosesan ZIP, pembuatan paket instalasi, dan editor teks
- Bahkan mencakup proyek perangkat keras pribadi seperti radio amatir, remote inframerah RS-232, Ethernet TTY, kontrol X10, hingga robot untuk membaca 1.500 DVD, sehingga memiliki nilai arsip yang tinggi
Tujuan publikasi dan dokumen panduan
- Sebagai bagian dari pensiun, ia membuka kode sumber yang telah dikumpulkan selama lebih dari 40 tahun yang termasuk dalam kategori “hal-hal yang saya tulis”
- Tujuan publikasi ini adalah agar orang lain bisa memanfaatkan kode tersebut atau belajar dari sebagian isinya
- Halaman publikasi juga menyertakan dokumen berikut:
Sistem operasi, kernel, mesin virtual, simulasi
- ARMOS: kernel multi-proses/multi-tugas untuk ARM
- CUBIX: sistem operasi untuk CPU 6809
- DMF: OS awal dari era Altair 1980
- DVM: Dunfield Virtual Machine
- SIMSYS: sistem terkait Altair, D6809, H8, Horizon, dan Mod8
- MONITORS: monitor untuk berbagai prosesor embedded
- 8051ICE: emulator in-circuit yang menggunakan EMILY
- EMILY52: emulator 8052
Kompiler, assembler, debugger, alat bantu pengembangan
- MICRO-C: Micro-C Compiler
- MCSAMPLE: program contoh Micro-C
- XASM: cross assembler dan alat terkait
- DISASM: cross disassembler
- DMS: debugger Dunfield MicroScope
- DESMO: Debug Scripting Monitor
- DDSIDE: IDE Dunfield Development Systems
- BLDTOOL: alat untuk membantu pekerjaan build
- PUBSRC: alat pemeliharaan bagian sumber publik
- HFC: Help File Compiler
- ESL: Extensible Script Language
Utilitas DOS, file, disk, pengeditan, dan packaging
- DBBD: floppy disk boot DosBox
- DBUTIL: utilitas DosBox
- DD_DBSRC: tree kode sumber DosBox
- DOSUTIL: berbagai utilitas DOS
- FDI: Floppy Disk Image
- IMDSRC: ImageDisk
- EDT: editor teks EDT
- ELF: alat pengedit nama file panjang
- FTOOLS: berbagai alat untuk pekerjaan file
- SYNC: sinkronisasi dua tree direktori
- ZDIR: menampilkan daftar file di dalam ZIP dan
touch - MAR: MicroARchiver yang dulu digunakan untuk mengompresi file instalasi
- MKPKG: membuat file instalasi paket
.exetunggal - ESP: patch string file executable
- PT: alat PaperTape
- MICROCAD: program gambar CAD yang sangat kecil
Perangkat keras, komunikasi, kontrol, proyek pribadi
- DARC: Dunfield Amateur Radio Controller
- HTX242: kontrol transceiver amatir RS HTX-242
- ICOMCIV: kode antarmuka ICOM CI-V untuk radio amatir
- IR232: remote pembelajar inframerah serial RS-232
- ETTY: Ethernet TTY
- SNIFF: sniffer Ethernet
- DLM: Data Line Monitor
- ITS: Interactive Terminal Switch
- DDLINK: DavesDataLink untuk transfer file COM, LPT, NET
- SERCNCT: beralih di antara beberapa perangkat pada satu port COM
- DBOX: pengendali Sony VCR
- DVDROBOT: robot yang dibuat untuk membaca 1.500 DVD
- EPROM: programmer EPROM
- 8031DWG: contoh desain berbasis 8031
- X10CTRL: kontrol perangkat X10 dari PC
- RINGSW: sakelar distinctive ring untuk saluran telepon
- PC100: emulator terminal VT-100
- LABTOOLS: berbagai alat laboratorium/pengujian
- CAM: proyek untuk anak dengan gangguan perkembangan
- MACMON: pemantauan/log penggunaan jaringan anak-anak
- TRANZTCL: alat pengembangan Verifone TRANZ PointOfSale
1 komentar
Komentar Hacker News
Setelah melihat-lihat DOSUTIL.ZIP, saya sangat suka program-program C yang sederhana dan elegan
Cukup mengesankan juga bahwa banyak di antaranya hanya memakai 1–2 baris
#includeC standar, dan dalam 20 ribu baris kode C hanya ada 24#ifPengalaman membaca codebase seperti ini memberi inspirasi saat memulai pekerjaan Cosmopolitan Libc
#ifbisa banyak dikurangiMeski begitu, untuk perbandingan yang setara, memang hanya ada 2 pernyataan
useKonvensi
True=7diSTYLE.TXTterasa asingKarena pengalaman dengan kode level rendah dan perangkat keras, ada penjelasan bahwa demi “meminimalkan hal yang bisa salah di level rendah”, mereka kadang memakai
7alih-alih1untuk nilai benar di C, dengan memanfaatkan fakta bahwa0==FALSE,!0==TRUEIni adalah pilihan yang lebih bersifat kebiasaan, bahwa selisih 3 bit terasa lebih baik daripada 1 bit, tetapi dia sendiri mengakui ini bodoh karena jika benar terjadi error perangkat keras 1 bit seperti itu, sebagian besar sistem kemungkinan sudah rusak
Saya jadi penasaran apakah dulu bit flip acak memang sering merusak kondisi percabangan
Kita tetap harus menentukan cabang mana yang diasumsikan aman untuk dijalankan saat terjadi kegagalan, apakah jumlah bit pada tiap kondisi dihitung lalu dianggap benar jika 1 lebih banyak daripada 0, dan apakah bit yang terbalik tanpa koreksi error harus dicatat di log atau diberitahukan ke operator
Ada tempat di mana kode deteksi error memang berguna, tetapi sekadar menetapkan benar sebagai 7 saja tidak cukup
Meski begitu, membaca dokumen gayanya tetap menyenangkan, dan saya suka semuanya dibuka seperti ini. Sepertinya pasti ada alat yang pas untuk seseorang
0xA5(1010 0101) untuk mengirim pola bit bergantian yang sedikit dimodifikasiIni cara untuk memeriksa sebanyak mungkin kemungkinan kerusakan sekaligus
TRUE=7jelas bukan solusi yang sebenarnyaUntuk variabel boolean, di setiap kondisi kita harus menangani
if (var == TRUE),else if (var == FALSE), dan apa yang harus dilakukan jika nilainya selain itu, dan kode penanganan itu sendiri juga harus tahan terhadap errorSelain itu, bit flip juga bisa memengaruhi variabel yang dipakai di
switch, kondisi sepertiif (i > 17), pointer, alamat pengembalian di stack, bahkan kode itu sendiriPaling-paling ini hanya solusi yang sangat parsial dan implementasinya juga tidak sepele, jadi sulit dianggap sebagai konvensi standar
Secara pribadi, saya mungkin akan memakai
-1Sangat menyesal karena dulu tidak menyimpan kode lama dengan baik
Mulai dari game Snake pertama yang benar-benar non-trivial, utilitas pertama yang dibuat dalam assembly, driver perangkat pertama untuk printer Centronics, sampai kalender abadi yang dibuat dalam Pascal untuk tugas kuliah dalam satu jam saat sedang mabuk berat, semuanya dulu dianggap remeh dan tidak layak disimpan
Akibatnya, tidak ada satu pun kode sebelum akhir 1990-an yang tersisa. Para pengembang muda sebaiknya menyimpan kode mereka dengan baik
Tentu saja, kalau layanan “gratis” seperti itu tutup, itu juga jadi masalah, jadi self-hosting tetap berguna
Waktu itu TSR terasa seperti sihir. Mungkin semuanya masih ada di suatu disket di ruang bawah tanah rumah ibu saya
Tulisan penulis tentang saat dia nyaris meninggal pada 2019 juga layak dibaca: https://dunfield.themindfactory.com/2019.htm
Hasil pemeriksaannya begitu buruk sampai ada dokter yang menolak menanganinya karena takut dia bisa meninggal kapan saja saat sedang konsultasi
Tapi sampai sekarang dia masih hidup dan hidup normal, bahkan setiap Sabtu masih lari di pantai. Hasil tesnya tidak membaik dan dia selalu sesak napas, tetapi rasanya dia seperti orang yang menolak mati begitu saja
Mirip dengan perkataan dokter di tautan itu, bahwa “dia tampak jauh lebih baik daripada yang tertulis di dokumen”
Di tulisannya ada bagian bahwa bahkan hal-hal seperti “memeluk anak-anaknya, tidur di tempat tidurnya sendiri, makan, dan melakukan sedikit pekerjaan dengan tangan” pun semuanya dilarang, dan saya mengalami hal yang sama ketika ayah saya menderita leukemia dan pneumonia, tidak kunjung membaik, dan tidak bisa dilepas dari alat bantu napas; para dokter juga dengan sangat yakin mengatakan dia akan cacat seumur hidup
Sangat bagus. Saya sudah beberapa kali berpikir ingin melakukan hal serupa suatu hari nanti
Rasanya mirip menerima warisan dari kakek-nenek. Mungkin ada permata sungguhan dan benda-benda aneh yang tercampur di antara barang rongsokan dan sampah, tetapi keseluruhannya menunjukkan kisah orang nyata yang menjalani hidup yang kaya dan menarik
Hanya dengan beberapa sorotan saja, hidup itu tidak akan bisa tergambarkan dengan baik
Untungnya, allocator memori komersial yang saya buat pada akhir 1990-an masih ada. Itu single-threaded dan hanya mendukung Metrowerks CodeWarrior serta MacOS lama, tetapi saat itu merupakan allocator tercepat dan paling bebas bug di Mac
Setelah MacOS X muncul, itu jadi tidak berguna lagi, dan saya juga tidak tahu siapa yang akan tertarik sekarang
Seperti yang saya katakan kemarin, source code Trapeze hilang(https://en.wikipedia.org/wiki/Trapeze_(spreadsheet_program)). Sepertinya saya tidak pernah terpikir untuk menyimpan hasil kerja saya agar bisa dibagikan nanti, saat tidak ada lagi yang peduli
Keren sekali. Dibandingkan dengan seperti apa riwayat kode saya akan terlihat nanti, ini terasa seperti kode yang murni
Pada 2040, kode saya sepertinya akan memperlihatkan jejak penggunaan banyak library dan framework yang “sekarang sudah tidak dipakai siapa-siapa”
Ini bukan soal baik atau buruk, hanya cerminan zamannya
Praktik pengembangan yang populer saat ini ternyata sangat sementara dan rapuh. Hampir tidak ada proyek yang saya kerjakan sekarang yang bisa dibiarkan begitu saja dan bertahan 10 tahun, apalagi 40 tahun
pip installdannpm installseperti ini pada akhirnya akan menjadi tidak bergunaMenurut saya utilitas yang paling berpengaruh adalah ImageDisk
Itu digunakan untuk melestarikan floppy disk dari berbagai jenis komputer dengan IBM PC, dan banyak perangkat lunak lama di bitsavers.org dan archive.org dipulihkan dengan alat ini
Dalam A Deepness in the Sky karya Vernor Vinge, ada masyarakat manusia ribuan tahun di masa depan, dan hampir semua perangkat lunak sudah pernah ditulis; masalahnya hanya bagaimana menemukannya
Jadi ada programmer-arkeolog yang membongkar arsip, dan bila perlu menjalankan kode di emulator di dalam emulator di dalam emulator: https://garethrees.org/2013/06/12/archaeology/
Artinya, Anda juga telah menyumbang ke tumpukan harta karun yang akan bermanfaat bagi seseorang, entah besok atau 5.000 tahun lagi
Sebagai candaan tentang perbaikan bug terakhir sebelum pensiun, saya mencoba melihat micro-cad tetapi mendapat 404
URL: https://dunfield.themindfactory.com/dnld/sc/MICROCAD.ZIP
Perilaku yang diharapkan adalah bisa mengunduh file
.zipMCSAMPLELuar biasa. Saya juga sudah menumpuk beberapa “bibel” pribadi yang selalu saya simpan di dekat saya saat bekerja dengan bahasa tertentu atau tugas otomatisasi tertentu, dan ada juga cukup banyak cara pengorganisasian yang saya pelajari dari HN
Hanya saja, rasanya terlalu pribadi dan terlalu spesifik dengan proses berpikir saya sendiri, jadi saya tidak pernah terpikir untuk memublikasikannya
Tapi setelah melihat bahan-bahan seperti ini, saya jadi terinspirasi. Ini ide yang sangat keren, dan kalau memungkinkan saya juga ingin memberi dukungan finansial sebagai tanda terima kasih untuk proyek pensiun ini
Dan saya juga ingin tahu metode pengorganisasian seperti apa yang Anda pelajari. Saya selalu tertarik mempelajari tips produktivitas atau software dari orang lain
Kalau berminat, saya ingin saling bertukar file. Sepertinya saya bisa belajar banyak dari materi Anda. Nama pengguna Gmail saya sama dengan nama pengguna HN saya