it-swarm.asia

Bisakah OS 32 bit berjalan dalam prosesor 64 bit?

Apa perbedaan antara OS 32 bit dan OS 64 bit? Bisakah OS 32 bit berjalan dalam prosesor 64 bit?

23
Prabhu

Pertanyaan Anda spesifik untuk arsitektur. x64 pada dasarnya adalah ekstensi untuk arsitektur x86. Ini mendukung ruang alamat 64 bit. Ini memberikan beberapa instruksi baru dan register baru.

Anda dapat menjalankan Windows x86 32-bit pada mesin x64. Perhatikan bahwa Anda tidak dapat melakukan ini pada sistem Itanium 64-bit.

32
Mehrdad Afshari

Prosesor 64 bit dapat menjalankan OS 32 dan 64 (setidaknya kaleng x64). Prosesor 32 bit hanya dapat berjalan secara asli.

Perbedaannya adalah kebanyakan tentang ukuran Pointer/Referensi. Pada mesin 64 bit, Anda dapat mereferensikan alamat dalam rentang alamat 64 bit (sehingga memberi Anda 2 ^ 64 byte memori). Pada 32 bit Anda hanya dapat mengatasi 2 ^ 32 byte (= 4 GB). Sekarang jika Anda melihat komputer saat ini, jelas mengapa dunia bergerak ke 64 bit: 32 bit tidak dapat dengan mudah mengatasi semua RAM lagi.

Pada x64 (AMD/Intel) Anda memiliki manfaat tambahan 64 bit. CPU memiliki lebih banyak register dan dengan demikian memungkinkan kode yang lebih efisien.

Pada arsitektur lain perbedaan antara 64 dan 32 bit kurang jelas. Misalnya Nintendo 64 (ingat itu?) Adalah mesin 64 bit tetapi sebagian besar kodenya 32 bit. Jadi dalam hal itu 64 bit lebih berfungsi sebagai trik pemasaran.

14
Lemmy

Jawaban yang diterima saat ini umumnya benar tetapi tidak secara khusus. Sebenarnya tidak ada satu pun hal yang disebut "CPU 32-bit" atau "" CPU 64-bit "- itu adalah deskripsi yang merujuk hanya satu bagian kecil dari arsitektur CPU. Secara khusus, ini merujuk nomor garis pemilihan alamat antara CPU dan memori, yaitu yang disebut address space tersedia untuk operasi memori.

Pada zaman dahulu ketika CPU ketika orang-orang biasa duduk dan menenun (membungkus) kabel antara prosesor dan memori, Anda harus menggunakan 32 atau (secara teoritis, karena itu tidak ada pada saat itu) 64 kabel antara CPU dan pengontrol memori yang akan digunakan untuk menentukan alamat memori mana yang ingin Anda akses. Sebagai contoh, katakanlah kita memiliki arsitektur memori 2-bit: mengirim 00 akan memilih alamat 0, 01 akan memilih alamat 1, 10 akan memilih alamat 2, dan 11 akan memilih alamat 3. 2-bit ini memberi kita 2 ^ 2 byte dari RAM (4 byte).

Jika Anda menggunakan CPU 32-bit dan menambahkan 32 kabel lebih banyak antara CPU dan pengontrol memori sehingga secara ajaib Anda dapat mendukung lebih banyak memori, kini Anda memiliki "64-bit CPU" yang dapat menjalankan 32-bit kode atau kode 64-bit. Apa artinya ini dan bagaimana ini terjadi? Baiklah, mari kita ambil CPU 2-bit dari bagian sebelumnya dari jawaban ini dan tambahkan kabel lain, mengubahnya menjadi CPU 3-bit, membawa kita dari 4 byte ke 2 ^ 3 atau 8 byte RAM.

Kode "2-byte" yang ada akan berjalan, mengatur nilai-nilai dari 2 kabel terakhir seperti ditunjukkan di atas (00-11). Kami akan mentransfer koneksi ekstra menjadi nol secara default, jadi sebenarnya ketika kode 2-byte berjalan, ketika memilih 00, sebenarnya memilih 000 dan ketika memilih 11 itu sebenarnya memilih 011. Mudah.

Sekarang seorang programmer ingin menulis "asli" kode 3-byte dan menulis perangkat lunaknya untuk mengambil keuntungan dari ruang alamat tambahan. Dia memberi tahu CPU bahwa dia tahu apa yang dia lakukan dan bahwa dia akan mengambil kendali manual dari kabel baru yang ekstra itu. Perangkat lunaknya tahu tentang kabel ekstra dan mengirimkan 000-111 dengan benar, memberinya akses penuh ke rentang memori yang didukung oleh arsitektur CPU baru ini.

Tapi bukan itu yang harus terjadi. Bahkan, itu biasanya tidak bagaimana sesuatu terjadi. Ketika CPU 64-bit pertama kali diperkenalkan (dan ada banyak), mereka semua pergi dengan arsitektur/desain yang sama sekali baru. Mereka tidak hanya menempel pada 32 kabel tambahan dan mengatakan "ini dia, ini adalah CPU 64-bit yang dapat Anda gunakan dalam mode 32-bit atau 64-bit," tetapi mereka mengatakan "Ini adalah CPU baru kami dan itu hanya membutuhkan pemrograman dalam bahasa mesin yang sama sekali baru ini, berperilaku dengan cara yang sama sekali baru ini, memecahkan banyak masalah yang berbeda jauh lebih elegan daripada CPU 32-bit x86/i386 lama yang pernah dilakukan, dan itu adalah arsitektur asli 64-bit. . "

Itulah kisah Intel Itanium, yang sekarang terkenal dengan sebutan "Itanic" karena betapa masifnya itu tenggelam. Itu seharusnya digembar-gemborkan di era 64-bit baru, dan itu adalah sesuatu untuk dilihat. Instruksi panjang variabel, cache besar, ruang alamat 64-bit, banyak register, super menarik, super keren, dan super sulit untuk meyakinkan semua orang untuk mengkompilasi ulang atau menulis ulang 20 tahun kode warisan untuk. Ini kembali ketika AMD dan Intel benar-benar bersaing, dan AMD memiliki ide cemerlang untuk mengatakan "mari kita lupakan semua ini 'selesaikan semua masalah dunia' dan tambahkan 32 kabel lagi ke i386 dan buat 32-bit yang kompatibel 64- bit CPU "dan arsitektur CPU x86_64 lahir.

Bahkan, jika Anda melihat nama dan sumber kernel untuk sistem operasi utama (Linux, Windows, BSDs, dll) Anda akan menemukan mereka dipenuhi dengan referensi untuk CPU AMD64 dan arsitektur AMD64. AMD datang dengan strategi kemenangan untuk membuat semua orang beralih ke dunia 64-bit sambil menjaga kompatibilitas dengan aplikasi 32-bit, dengan cara yang OS 32-bit dapat berjalan pada perangkat keras 64-bit atau bahkan aplikasi 32-bit dapat berjalan pada OS 64-bit pada perangkat keras 64-bit. Intel mengikuti suite lebih cepat daripada nanti dengan arsitektur "Intel EM64T" (yang pada dasarnya identik dengan AMD64) dan x86_64 menang sementara Itanic dan yang lainnya seperti MIPS64 dan ALPHA64 tidak terlihat lagi di pasar desktop/server.

tl; dr AMD64 alias x86_64 CPU dirancang agar kompatibel dengan kernel dan kode 32-dan 64-bit, tetapi sebagian besar CPU 64-bit dipastikan tidak kompatibel dengan cara yang sama. CPU 32-bit dapat mengakses memori paling banyak 4GiB, sedangkan CPU 64-bit dapat mengakses 16 EiBs (16 × 1024 ^ 6 byte, atau 4 miliar kali lebih banyak memori dari 4GiB) .

3