আমি যখন "ক্লিপ" চালাই তখন আসলে কী ঘটে? আমার লিনাক্স সিস্টেমে hlt ”?


16

সুতরাং আমি সম্প্রতি আবিষ্কার করেছি যে HLTসিপিইউ বন্ধ করার জন্য একটি অপকোড আছে । কুল, দেখি কি হয়!

user@box:~$ cat > test.c
int main(void)
{
    __asm__("HLT");
    return 0;
}
user@box:~$ gcc -o test test.c
user@box:~$ ./test
Segmentation fault (core dumped)
user@box:~$

Duh! কি বিরক্তিকর.

দেখা যাচ্ছে HLTএকটি সুবিধাজনক নির্দেশনা, সুতরাং আসুন অন্য কিছু চেষ্টা করি।

user@box:~$ mkdir test; cd test
user@box:~/test$ cat > test.c
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>

int init_module(void)
{
    __asm__("hlt");
    return 0;
}

void cleanup_module(void)
{
}
user@box:~/test$ echo obj-m += test.o > Makefile
user@box:~/test$ make -C /lib/modules/$(uname -r)/build modules M=$(pwd)
[...]
user@box:~/test$ sudo insmod test.ko
user@box:~/test$

কিছুই ঘটেনি! Boring!

এটি দেখা যাচ্ছে যে, HLTসিপিইউ ... পরবর্তী বিঘ্নিত হওয়া অবধি বন্ধ করে দিয়েছে। দুর্দান্ত, সুতরাং বাধাগুলি অক্ষম করার চেষ্টা করি। CLIমনে হচ্ছে এটি আমরা যা চাই তা করব।

user@box:~/test$ sudo rmmod test
user@box:~/test$ sed -i 's/hlt/cli; hlt/' test.c
user@box:~/test$ make -C /lib/modules/$(uname -r)/build modules M=$(pwd)
[...]
user@box:~/test$ sudo insmod test.ko

... এবং এই মুহুর্তে, ওএস আমার ইনপুটটিতে সাড়া দেওয়া বন্ধ করে দিয়েছে। আমি কার্সারটি সরানো বা আমার কীবোর্ড ব্যবহার করে কিছু টাইপ করতে পারিনি। বেশ হিমশীতল।

ব্যতীত এটি ছিল না। আমার জিইউআইয়ের প্যানেলে ঘড়িটি চলতে থাকে। জাহান্নাম, এমনকি সংগীত বাজতে থাকে। মনে হচ্ছিল কেবল আমার মাউস এবং আমার কীবোর্ড কাজ করা বন্ধ করে দিয়েছে। আমি বুঝতে পেরেছিলাম যে আমার (ইউএসবি) কীবোর্ডের আর কোনও পাওয়ার নেই, এমনকি আমার ক্যাপস লক এলইডিও কাজ করবে না।

তো, এখানে কী হয়েছে? আমার মনে হচ্ছে এমন এক জোড়া নির্দেশনা কেন কেবল "ইউএসবি" ডিভাইসটি সিস্টেমের "হ্যাঙ্গআপ" করা উচিত? কেন সব কিছু চালিয়ে যেতে থাকে? বোনাস হিসাবে: সিস্টেমটি হিমশীতল করতে আসলে আমাকে কী করতে হবে?


3
এ কেমন সিস্টেম? CLIএটি চলমান সিপিইউতে কেবলমাত্র প্রযোজ্য, সুতরাং আপনার যদি একাধিক সিপিইউ থাকে তবে আপনাকে একে একে চালাতে হবে। CLI+HLTসিপিইউর উপর নির্ভর না করে যে কোনও কিছু তার আনন্দের পথে চালিয়ে যেতে পারে
এরিক রেনৌফ

2
আমি এটি একাধিক কোর সহ একটি সিপিইউতে চালিত আমার সাধারণ ডেস্কটপ মেশিনে এটি পরীক্ষা করেছি। আমি জানি যে প্রতিটি কোরও একটি "যৌক্তিক" সিপিইউ; আপনি কি উল্লেখ করছেন?
সিক্রেটপা

উত্তর:


2

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

ACPI = বন্ধ

ইউএসবি ডিভাইসগুলি আর কাজ না করার কারণটি ছিল অক্ষম বিঘ্নগুলির কারণে যদিও এই আলোচনা অনুযায়ী ইউএসবি ডিজাইন দ্বারা চালিত হয় না।

রেফারেন্সের জন্য: https://en.wikedia.org/wiki/X86_in تعمیر_ listings

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.