Debian Menangani Pepijat Masa 2038 Awal dengan Peralihan 64-bit, Tetapi Meninggalkan i386

Pasukan Komuniti BigGo
Debian Menangani Pepijat Masa 2038 Awal dengan Peralihan 64-bit, Tetapi Meninggalkan i386

Masalah tahun 2038, juga dikenali sebagai Unix Epochalypse, mengancam untuk meruntuhkan sistem di seluruh dunia apabila pembilang masa 32-bit melimpah pada 19 Januari 2038. Tidak seperti usaha saat-saat akhir yang membetulkan pepijat Y2K, Debian mengambil tindakan proaktif dengan beralih kepada perwakilan masa 64-bit dalam keluaran Debian 13 Trixie yang akan datang. Langkah ini mempengaruhi beribu-ribu pakej perisian dan mewakili salah satu perubahan paling ketara untuk menangani krisis teknikal yang semakin hampir.

Sistem masa Unix mengira saat sejak 1 Januari 1970, menggunakan integer bertanda 32-bit. Ini akan melimpah pada tepat 03:14:07 UTC pada 19 Januari 2038, berpotensi menyebabkan sistem menganggap tarikh telah berguling kembali ke 1901. Dengan kurang daripada 15 tahun yang tinggal, masa semakin suntuk untuk berjuta-juta peranti yang sudah digunakan hari ini.

Garis Masa Masalah 2038

  • Tarikh Semasa: 28 Julai 2025
  • Tarikh Krisis: 19 Januari 2038 pada 03:14:07 UTC
  • Masa Berbaki: Kurang daripada 13 tahun
  • Sistem Terjejas: Mana-mana sistem 32-bit yang menggunakan format masa Unix

Usaha Kejuruteraan Besar Merangkumi 6,429 Pakej

Pembangun Debian mendapati pembolehubah time_t bertaburan merentasi 6,429 pakej di seluruh pengedaran mereka. Ini bukan sekadar operasi cari-dan-ganti yang mudah. Perubahan tersebut memerlukan pemecahan antara muka binari aplikasi (ABI) untuk perpustakaan yang terjejas, bermakna semua perisian berkaitan terpaksa dikemas kini serentak untuk mengelakkan ranap dan isu keserasian.

Cabaran teknikal melangkaui sekadar menukar jenis data. Perbincangan komuniti mendedahkan bahawa ramai pembangun telah salah menggunakan integer biasa dan bukannya jenis time_t yang betul untuk nilai masa, mewujudkan kerja tambahan untuk mengesan dan membetulkan kejadian ini. OpenBSD mempelopori peralihan ini pada 2014, membantu mengenal pasti masalah dalam perisian sumber terbuka yang boleh dipelajari oleh Debian.

time_t: Jenis data dalam bahasa pengaturcaraan yang mewakili nilai masa, biasanya sebagai bilangan saat sejak 1 Januari 1970

Perubahan Debian 13 "Trixie"

  • Pakej yang Terjejas: 6,429 pakej mengandungi pembolehubah time_t
  • Seni Bina dengan masa 64-bit: Semua kecuali i386 dan hurd-i386
  • Kerosakan ABI: Memerlukan kemas kini serentak semua perpustakaan yang terjejas
  • Sokongan Warisan: i386 mengekalkan time_t 32-bit untuk keserasian

Keputusan Strategik Meninggalkan Seni Bina i386 Tidak Berubah

Debian membuat pilihan kontroversi untuk mengecualikan seni bina i386 (32-bit x86) daripada peralihan ini. Walaupun ini mungkin kelihatan berlawanan dengan intuisi, keputusan tersebut mencerminkan realiti praktikal tentang bagaimana i386 digunakan hari ini. Seni bina ini terutamanya berfungsi untuk menjalankan aplikasi warisan 32-bit pada sistem moden 64-bit, terutamanya untuk keserasian permainan dan Wine.

Ahli komuniti menyatakan bahawa memecahkan ABI untuk i386 akan menyebabkan lebih banyak masalah daripada menyelesaikannya, kerana kes penggunaan utama melibatkan menjalankan binari 32-bit sedia ada yang mengharapkan format masa lama. Pengguna Steam dan peminat pengkomputeran retro sangat bergantung pada lapisan keserasian ini. Bagi mereka yang memerlukan sokongan masa 64-bit pada perkakasan x86 32-bit, Debian merancang untuk berpotensi memperkenalkan varian seni bina i686 baharu.

ABI (Application Binary Interface): Antara muka peringkat rendah antara komponen perisian yang menentukan bagaimana fungsi dipanggil dan data distrukturkan

Sistem Terbenam Menghadapi Kesan Dunia Sebenar

Masalah 2038 bukan sekadar teori. Peranti terbenam yang dihantar hari ini berkemungkinan masih berjalan dalam 15 tahun, mewujudkan bom masa dalam peralatan industri, sistem automotif, dan peranti IoT. Perbincangan komuniti menyerlahkan bahawa banyak sistem ARM terbenam dan peranti 32-bit sensitif kos terus dihantar dengan pelaksanaan masa yang terdedah.

Terdapat cukup banyak pengkomputeran 32-bit sensitif kos di luar sana, dan masih menghantar peranti baharu (automotif, IoT, TV, penghala, kawalan loji, pemantauan/kawalan bangunan, telefon Android murah).

Peralatan perubatan menunjukkan senario yang amat membimbangkan, kerana sistem ini sering berjalan selama beberapa dekad tanpa kemas kini. Komuniti menjangkakan peluang perundingan yang ketara akan muncul sekitar 2035 apabila organisasi berebut untuk menangani sistem yang mereka lupakan.

Pelaksanaan Terdahulu

  • OpenBSD: Beralih kepada masa 64-bit dalam versi 5.5 (2014)
  • Linux Kernel: Menambah sokongan masa 64-bit dalam versi 5.6
  • Sistem Lain: Varian BSD melaporkan pembetulan hulu beberapa tahun lalu

Melihat Melangkaui 2038

Walaupun masa 64-bit menolak masalah jauh ke masa depan, sesetengah pembangun sudah memikirkan penyelesaian jangka panjang yang lebih lama. Sistem fail moden seperti ext4 menggunakan format cap masa canggih dengan ketepatan nanosaat, dan terdapat perbincangan tentang akhirnya menyeragamkan cap masa 128-bit dengan 64 bit untuk saat dan 64 bit untuk masa pecahan.

Peralihan ini juga menimbulkan persoalan tentang had sewenang-wenangnya yang lain dalam sistem pengkomputeran. Ahli komuniti telah mencetuskan perbincangan tentang had panjang argumen baris arahan dan kekangan warisan lain yang boleh mendapat manfaat daripada pembetulan proaktif yang serupa.

Tindakan awal Debian terhadap masalah 2038 menunjukkan nilai menangani isu yang diketahui sebelum ia menjadi kritikal. Walaupun pengecualian i386 mungkin mengecewakan sesetengah pengguna, peralihan keseluruhan mewakili langkah ketara ke arah mencegah bencana digital yang berpotensi mempengaruhi berjuta-juta sistem di seluruh dunia.

Rujukan: Debian isn't waiting for 2038 to blow up, switches to 64-bit time for everything