アカウント名:
パスワード:
してそのうち1bitをアドレスバスとしてROM/IO と RAMをバンク切り替え出来るようにしたものらしいよくわからないけど、実質8bitCPUの6502にlinuxを移植したってこと?Cコンパイラとライブラリが頑張れば実行時間はかかるものの動きはするってことだろうか。
ストーリーには
実機で動作させているのではなく、RISC-V32アーキテクチャのマシン上で仮想化されたCommodore 64を動かし、
って書かれてますがこれは逆で、
This is in essence a fork of the very nicely minimalist RISC-V32 emulator named semu, compiled and ported using the new llvm-mos and would not have been possible without all that previous work.
ってことで、RISC-Vのエミュレーター「semu」を、6502のコードを吐くllvm-mosを使って、Commodore64で動くように移植して、その上でLinuxを動かしてるみたいです。
C64自体も実機ではなくVICE [sourceforge.io]というC64エミュレーター上で動かしてますが、そのC64エミュがRISC-V上で動いてる、って記述は見当たりませんでした。でも、エミュレータを動かすのに、わざわざRISC-Vプラットフォームを用意する可能性は低いと思います。
おまけ:参考ストーリー: 8ビット/24MHz動作の「ATmega1284p」プロセッサでARM Linuxを動かす、ログインできるまで6時間 [hardware.srad.jp]こっちは、8bit ワンチップマイコンの実機で、ARMエミュレーターを動かしてその上でLinuxを動作させてました。
仮にエミュレーターじゃなくネイティブ移植だったら数時間が数時間に短縮されるの?
「6502ネイティブコードで動くLinux」となると大幅に書き換えが必要で「Linuxクローン」にも程遠い「Linuxっぽい何か」にしかならないと思う。それよりC64エミュレータはC64の動作に合わせるために稼働中のほとんどが待ち時間だろうから、いっしょにエミュレーションしてるはずの周辺デバイスも含めてノーウェイトに近い動作にすれば100MHz相当くらいはいけるんじゃないかな
報告では、エミュレータを実機より速く動かす「warp mode」でも、ブートメッセージが出るまで数分かかった、ってことです。画面キャプチャを見ると、1200%ぐらいの表示になってるので、12倍速。「10倍高速化しても実用にならない」ってのは、そのあたりから来た数字なんだと思います。
なお、#4520490 で挙げたAVR(atmega1284 24MHz)なLinuxは、ARM 6.5kHzぐらいのエミュレーションだそうです。
力技にも程がすぎる普通?に8bitcpuにポートしたと(できたと)してもまともに動きそうにないのにCPUエミュレーターを動かしてその上で動かすとかクレイジーだ
linuxは32bitが前提なので、RISC-Vシミュレータは最も安易な方法だよ。メモリ容量をのぞけば(これは難問)、動くのは当たり前でごくつまらない話。youtuberの「やってみた」レベル。
6809ならわかる(6809にはOS-9というUNIXライクOSがある)が、6502で???すごい話だ。
https://en.wikipedia.org/wiki/GeckOS [wikipedia.org]unixライクなだけなら実機で動くのがある。
6809でLinuxを動かそうとしたら今回と同じアプローチは採りやすい方法だと思うがOS-9が何関係あると言いたいんだかサッパリわからん。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ソースを見ろ -- ある4桁UID
Commodore64のCPU、MOS 6510は6502に8ビットの汎用I/Oポートを追加 (スコア:0)
してそのうち1bitをアドレスバスとしてROM/IO と RAMをバンク切り替え出来るようにしたものらしい
よくわからないけど、実質8bitCPUの6502にlinuxを移植したってこと?
Cコンパイラとライブラリが頑張れば実行時間はかかるものの動きはするってことだろうか。
Re:Commodore64のCPU、MOS 6510は6502に8ビットの汎用I/Oポートを追加 (スコア:3, 参考になる)
ストーリーには
って書かれてますがこれは逆で、
ってことで、
RISC-Vのエミュレーター「semu」を、
6502のコードを吐くllvm-mosを使って、Commodore64で動くように移植して、
その上でLinuxを動かしてるみたいです。
C64自体も実機ではなくVICE [sourceforge.io]というC64エミュレーター上で動かしてますが、
そのC64エミュがRISC-V上で動いてる、って記述は見当たりませんでした。
でも、エミュレータを動かすのに、わざわざRISC-Vプラットフォームを用意する可能性は低いと思います。
おまけ:参考ストーリー: 8ビット/24MHz動作の「ATmega1284p」プロセッサでARM Linuxを動かす、ログインできるまで6時間 [hardware.srad.jp]
こっちは、8bit ワンチップマイコンの実機で、ARMエミュレーターを動かしてその上でLinuxを動作させてました。
Re: (スコア:0)
仮にエミュレーターじゃなくネイティブ移植だったら数時間が数時間に短縮されるの?
Re: (スコア:0)
「6502ネイティブコードで動くLinux」となると大幅に書き換えが必要で「Linuxクローン」にも程遠い「Linuxっぽい何か」にしかならないと思う。
それよりC64エミュレータはC64の動作に合わせるために稼働中のほとんどが待ち時間だろうから、いっしょにエミュレーションしてるはずの周辺デバイスも含めてノーウェイトに近い動作にすれば100MHz相当くらいはいけるんじゃないかな
Re:Commodore64のCPU、MOS 6510は6502に8ビットの汎用I/Oポートを追加 (スコア:1)
報告では、エミュレータを実機より速く動かす「warp mode」でも、ブートメッセージが出るまで数分かかった、ってことです。
画面キャプチャを見ると、1200%ぐらいの表示になってるので、12倍速。
「10倍高速化しても実用にならない」ってのは、そのあたりから来た数字なんだと思います。
なお、#4520490 で挙げたAVR(atmega1284 24MHz)なLinuxは、ARM 6.5kHzぐらいのエミュレーションだそうです。
Re: (スコア:0)
力技にも程がすぎる
普通?に8bitcpuにポートしたと(できたと)してもまともに動きそうにないのにCPUエミュレーターを動かしてその上で動かすとかクレイジーだ
Re: (スコア:0)
linuxは32bitが前提なので、RISC-Vシミュレータは最も安易な方法だよ。
メモリ容量をのぞけば(これは難問)、動くのは当たり前でごくつまらない話。youtuberの「やってみた」レベル。
Re: (スコア:0)
6809ならわかる(6809にはOS-9というUNIXライクOSがある)が、6502で???すごい話だ。
Re: (スコア:0)
https://en.wikipedia.org/wiki/GeckOS [wikipedia.org]
unixライクなだけなら実機で動くのがある。
Re: (スコア:0)
6809でLinuxを動かそうとしたら今回と同じアプローチは採りやすい方法だと思うがOS-9が何関係あると言いたいんだかサッパリわからん。