Thanks to everyone. Ok , so I need to run QEMU in Full System Emulation mode to run the Solaris binary. Is the *qemu-kvm* , the only package required to be installed ( on RHEL machine) to launch QEMU or there are some packages also. Also I would need the Solars OS image, right?
Regards, Ginu On Fri, 17 Feb 2023 at 21:34, Warner Losh <i...@bsdimp.com> wrote: > > > On Thu, Feb 16, 2023 at 12:40 PM David Woodhouse <dw...@infradead.org> > wrote: > >> On Thu, 2023-02-16 at 09:29 -1000, Richard Henderson wrote: >> > On 2/16/23 09:02, David Woodhouse wrote: >> > > It wouldn't be beyond the wit of man to extend qemu-user to support >> the >> > > similar personality variations for SCO/Solaris/etc. using that as a >> > > guide. >> > >> > Not beyond wit but perhaps beyond patience. >> > >> > It would certainly be possible to emulate the "easy middle" of one >> POSIX guest on a >> > different POSIX host. But the dusty corners are going to get in the >> way, where we >> > currently rely on guest and host having identical semantics, and pass >> the system call >> > through to the host. >> > >> > It's a big job. >> >> True, but the existing iBCS / linux-abi kernel patches should highlight >> a lot of those dusty corners. >> > > So one thing to understand, the iBCS is a separate ABI. This means that > you'd > have to rewrite everything from the syscall dispatch on down. Even if this > were > relevant, it would be a huge job. > > A lot would depend on how much of Solaris is used. Solaris is ELF, which > is good > (it would be even worse if it were SunOS 4, then it's a.out and a whole > lot of other > complication that's more of a bsd-user thing). However, as others have > pointed > out, linux-user assumes a linux kernel. While one can run linux-user on > FreeBSD > with its Linux ABI implementation, even that's quite limited in what it > can do (I > needed to do this for some kexec support I was adding to FreeBSD boot > loader > that ran as a Linux binary). I had to make tweaks to FreeBSD's emulation > to make it work, and that was for a binary that used only 10 system calls, > no > threads, no signals, nothing "messy" and apart from some extensions to > 64-bits, > nothing that wasn't in 7th Edition Unix. > > And there's also a number of special filesystems, IIRC, on Solaris that > are used > like linux's /sys and /proc filesystems, but with different details. And a > million other > details. Knowing the details isn't enough, assuming you could know them > from > cribbing from existing code. You have to actually go implement the details > and > that would be a very tedious job. Even if you kept it to a subset that > your program > uses... > > I started on a Venix emulator (ancient Unix V7 port to 8088/8086 micros I > cut my > teeth on), and even that was daunting. Now, with 3 years of bsd-user > hacking and > upstreaming under my belt, it would be easier, but there's a *HUGE* > learning curve > to understand the CPU, its exception model, how system calls are handled, > how > memory is mapped, etc. And the 'assume we're on linux' is definitely > leveraged > for memory mapping in the existing linux-user code if you were to copy it > all > as a starting point. > > When people say it's a big job, they are underselling it somewhat. It > would be > a big job for the maintainers of linux-user who have all the context and > know > where the gotchas are. For anybody else, learning everything you need to > know itself is a big job. > > Your best bet is qemu-sparc-system + Solaris install. > > Warner > > P.S. Sorry to go into partial rant mode, but 4 years ago when I started > helping > the folks working with bsd-user, I thought how hard could it be... now I > know... >