কোনও এআরএম প্রসেসরে x86 বাইনারি চালানো কি সম্ভব?


6

ইতিমধ্যে সংকলিত x86 বাইনারিটিকে একটি এআরএম বাইনারি রূপান্তর / পুনরায় কম্পাইল করা কি সম্ভব?

আমি একটি কমান্ড-লাইন উবুন্টু (মাভেরিক) সহ একটি বিগলবোর্ড ব্যবহার করছি এবং একটি ভেন্ট্রিলো সার্ভার চালাতে চাই তবে যে x86 এক্সিকিউটেবল তারা সরবরাহ করছে আমি যতদূর বলতে পারি হার্ডওয়ারে চালানো যাবে না (সম্ভবত সম্ভবত ভিন্ন ভিন্ন স্থাপত্যের কারণে)।

দুর্ভাগ্যক্রমে আমার এটিকে স্থানীয়ভাবে পুনরায় সংকলনের অনুমতি দেওয়ার জন্য উত্সটিতে আমার অ্যাক্সেস নেই।

যদি তা না হয় তবে আমি বাইনারি চালানোর জন্য অন্য কোনও উপায় পেতে পারি (উদাহরণস্বরূপ অনুকরণ)?


1
বহু বছর আগে, অ্যাকর্ন রিস্ক ওএস মেশিনগুলির জন্য 80286 ডস মেশিনের মতো পুরানো x86 এর অনুকরণকারী ছিল। জড়িতরা আজকে বেঁচে থাকার ধারণাটি অগ্রগতি করেছে কিনা তা দেখার জন্য এটি একটি সূচনা পয়েন্ট হতে পারে। এটি ব্যতীত এটি একটি আকর্ষণীয় প্রশ্ন যা এআরএমের সার্ভার স্পেসে স্পষ্টভাবে স্থানান্তরিত হয়েছে, x86 বাইনারি অ্যাপ্লিকেশনগুলি স্থানান্তরিত করে, যেমন কোনও এমুলেটরটি এই ক্ষেত্রে x86 এর স্থানচ্যুতিটিকে সহজতর করতে পারে।
থ্রোবায়ুয়ান

উত্তর:


6

আপনি আপনার আর্কিটেকচারে স্থানীয়ভাবে উপলব্ধ বিকল্প সফ্টওয়্যারটিতে স্যুইচ করতে চাইতে পারেন, বচসা এবং বিড়বিড় মনে পড়বে।

বচসা এবং বিড়বিড় হোমপেজ


দুর্দান্ত, আপনাকে ধন্যবাদ, আমি জানতাম না এটি বিদ্যমান। অন্যদের এটি ব্যবহার করতে কিছুটা দৃinc়প্রত্যয়ী লাগতে পারে তবে আমি মনে করি যে এটি সর্বোচ্চ মানের সাথে মিলিয়ে সর্বনিম্ন বিলম্বের সাথে ব্যাপকভাবে সহায়তা করে।
রাইল

4

সংক্ষিপ্ত সংস্করণ: আপনার যদি সোর্স কোড না থাকে তবে না।

দীর্ঘ সংস্করণ: আপনি qemu (বা কেভিএম বা ভার্চুয়ালবক্স, ইত্যাদি) ব্যবহার করতে পারেন এবং সার্ভারটি চালানোর জন্য একটি ন্যূনতম x86 এমুলেটেড সিস্টেম ব্যবহার করতে পারেন।


1

আমি অনুমান করি উত্তরটি "সম্ভবত"। সাধারণত আপনি যদি একটি এক্সিকিউটেবল ফাইল ডি-সংকলন করতে পারেন, যদি আপনি এটি সম্পর্কে যথেষ্ট জানেন। আপনি যদি কোনও ভাষায় কোডটি বিভাজনিত করেন যার একটি এআরএম সংকলক রয়েছে এবং গ্রন্থাগারগুলি আপনার বায়ুসংস্থানটি আপনার এআরএম প্ল্যাটফর্মে সংকলন করতে প্রয়োজন, এটি সম্ভব হওয়ার চেয়ে বেশি।

উদাহরণস্বরূপ: যদি আপনার ভেন্ট্রিলো সার্ভারটি সি উত্স কোডে বিভক্ত করা যায় এবং এই উত্স কোডটি এএনএসআই স্ট্যান্ডার্ড হয় তবে কোডটি পুনরায় সংকলনের জন্য আপনার এআরএম সংকলকটির সাথে আপনার যথেষ্ট সমর্থন থাকতে পারে।

আপনি আইনত এটি করতে পারবেন কিনা তা আমি সত্যিই জানি না, যদিও আপনি যে মালিকানা নন এমন একটি সফ্টওয়্যার রিভার্স-ইঞ্জিনিয়ারিং হবেন।


এখানে কেবল একটি ছোট সমস্যা: বেশিরভাগ সংক্রামিত প্রোগ্রামগুলি পুনরায় সংশোধন ছাড়াই সংকলন করে না
ডিকম্পিলারগুলি এতটা

"যদি আপনি এটি সম্পর্কে যথেষ্ট জানেন" "কয়েক বছরের মাইক্রোপ্রসেসর ডিজাইন, সমাবেশ, নির্দেশিকা সেট, হেক্স সম্পাদক, ইত্যাদি অন্তর্ভুক্ত ...
বেসিক

ঠিক আছে, ওপিতে নির্দিষ্ট ক্ষেত্রে বলা হয়েছে, তার একটি এক্স 86 সংকলিত প্রোগ্রাম রয়েছে। আমি ধরে নিচ্ছি যে উপলব্ধ X86 ডিকম্পিলারগুলির সংখ্যাটি ভাল। আমি আরও ধরে নিচ্ছি যেহেতু ভেন্ট্রিলো যোগাযোগের জন্য ব্যবহৃত হয়, তাই এটি জাভা বা সি # এর মতো কিছু উচ্চ-স্তরের বাইটকোড ভাষা অর্জন করতে পারে না। সুতরাং এটি সি ++ / সি যথেষ্ট পরিমাণে বিগলিত হতে পারে এবং এক্স 86 সমাবেশটি ভালভাবে বোঝা যায়, এবং নির্দেশগুলি অন্য আর্কিটেকচারে পোর্ট / সিমুলেটেড হতে পারে। এটি সহজ নাও হতে পারে তবে এটি অবশ্যই কার্যকর।
মাচাডো

আরও 2 সেন্ট: আমি কয়েক বছর আগে লুয়া পামমোসে পোর্টিং করার আমার ব্যক্তিগত অভিজ্ঞতার ভিত্তিতে উত্তরটি ভিত্তি করেছিলাম। লুয়া এএনএসআই-সি-তে 100% সম্পন্ন হয়েছিল, তবে পামমোসের কোনও এএনএসআই-সি সামঞ্জস্যপূর্ণ সংকলক নেই। মটরোলা 68k আর্কিটেকচার এবং / অথবা সি এর দুর্দান্ত জ্ঞান ছাড়াই আমাকে একটি ছোট অনুবাদ স্তর লিখতে হয়েছিল ধন্যবাদ ধন্যবাদ "জিনিস" কাজ করেছে, এবং আমি ধরে নিয়েছি যে আমার কোডের যোগ্যতার চেয়ে লুয়ার ত্রুটি আরও বেশি। :)
মাচাডো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.