پرش به محتویات

101.1 - تشخیص و پیکربندی تنظیمات سخت‌افزار

اهداف یادگیری

در این فصل با موارد زیر آشنا می‌شوید:

  • فعال و غیرفعال کردن تجهیزات جانبی یکپارچه
  • تشخیص تفاوت انواع دستگاه‌های ذخیره‌سازی
  • تعیین منابع سخت‌افزاری برای دستگاه‌ها
  • ابزارهای لیست کردن اطلاعات سخت‌افزاری (lsusb، lspci و...)
  • ابزارهای مدیریت دستگاه‌های USB
  • درک مفهومی sysfs، udev و dbus

کلیدواژه‌ها

/sys, /proc, /dev, modprobe, lsmod, lspci, lsusb


مفاهیم پایه

سیستم عامل

سیستم عامل (Operating System) نرم‌افزاری است که:

  • سخت‌افزار کامپیوتر را مدیریت می‌کند
  • منابع نرم‌افزاری را کنترل می‌کند
  • سرویس‌های مشترک به برنامه‌ها ارائه می‌دهد

سیستم عامل لایه‌ای بین سخت‌افزار و برنامه‌ها است. وقتی برنامه‌های کاربردی به منابعی نیاز دارند، سیستم عامل آن‌ها را مدیریت و تخصیص می‌دهد.

Firmware (میان‌افزار)

Firmware نرم‌افزاری است که مستقیماً روی سخت‌افزار اجرا می‌شود و می‌توان آن را به عنوان سیستم عامل یا درایور داخلی سخت‌افزار در نظر گرفت. مادربوردها نیز برای کار به firmware نیاز دارند.

تعریف

Firmware نوعی نرم‌افزار است که به‌طور دائم در سخت‌افزار ذخیره و اجرا می‌شود.


انواع Firmware بوت

BIOS

BIOS (سیستم ورودی/خروجی پایه) فناوری قدیمی است که امروزه منسوخ شده:

  • رابط کاربری متنی دارد
  • کامپیوتر را با خواندن MBR (اولین بخش دیسک) بوت می‌کند
  • برای سیستم‌های مدرن کافی نیست
  • از دیسک‌های بزرگ‌تر از 2TB پشتیبانی نمی‌کند

UEFI

UEFI (رابط میان‌افزار توسعه‌یافته یکپارچه) استاندارد فعلی است:

  • سال 1998 توسط Intel با نام EFI معرفی شد
  • از پارتیشن مخصوص EFI System Partition (ESP) استفاده می‌کند
  • سیستم فایل FAT دارد
  • در لینوکس روی /boot/efi قرار می‌گیرد
  • فایل‌ها با پسوند .efi ذخیره می‌شوند
  • از دیسک‌های بزرگ‌تر از 2TB پشتیبانی می‌کند
  • امکانات امنیتی بیشتری دارد (مانند Secure Boot)

مقایسه

UEFI نسبت به BIOS پیشرفته‌تر، سریع‌تر و امن‌تر است.


تجهیزات جانبی

PCI

PCI (اتصال اجزای جانبی) به کاربران اجازه می‌دهد قطعات اضافی به مادربورد متصل کنند. امروزه اکثر سیستم‌ها از PCI Express یا PCIe استفاده می‌کنند.

انواع هارد دیسک داخلی

نوع توضیحات
PATA فناوری قدیمی موازی
SATA فناوری سریال که تا 4 دستگاه پشتیبانی می‌کند (نسخه‌های II و III)
SCSI رابط موازی که تا 8 دستگاه پشتیبانی می‌کند

سایر تجهیزات

  • هارد دیسک خارجی: Fiber، SSD over USB
  • کارت شبکه: RJ-45
  • کارت بی‌سیم: IEEE 802.11
  • بلوتوث: IEEE 802.15 (برد تا 10 متر)
  • کارت گرافیک و صوت

مقایسه SSD و HDD

SSD سریع‌تر (خواندن 10 برابر، نوشتن 20 برابر)، بی‌صداتر، کوچک‌تر، مقاوم‌تر و کم‌مصرف‌تر است. در مقابل HDD ارزان‌تر و با ظرفیت بیشتر است.

تفاوت اصلی: - SSD: بدون قطعات متحرک و با حافظه فلش کار می‌کند - HDD: دارای بازوهای مکانیکی و صفحات چرخان است

عمر مفید: - HDD: 3 تا 5 سال - SSD: بیش از 10 سال (به دلیل مکانیزم Bad-Block-Management)

مکانیزم Bad-Block-Management

SSD های مدرن دارای ظرفیت رزرو هستند که سلول‌های آسیب‌دیده را با سلول‌های سالم جایگزین می‌کنند.

کارت شبکه vs کارت بی‌سیم

  • NIC (کارت شبکه): اتصال سیمی از طریق پورت RJ45
  • کارت بی‌سیم: اتصال بدون سیم از طریق Access Point

USB

USB (گذرگاه سریال جهانی) رابطی سریال با سرعت‌های مختلف:

نسخه سرعت
USB 1.0 12 Mbps
USB 2.0 480 Mbps
USB 3.0 5 Gbps
USB 3.1 10 Gbps
USB 3.2 20 Gbps
USB 4.0 40 Gbps

انواع کانکتور: Type-A، Type-B، Type-C

GPIO

GPIO (ورودی/خروجی عمومی) پین‌های ورودی/خروجی عمومی هستند که برای کنترل سخت‌افزارهای خارجی استفاده می‌شوند.

مثال‌ها: Arduino، Raspberry Pi


مسیرهای مهم سیستم

/sys (Sysfs)

Sysfs یک سیستم فایل مجازی است که اطلاعات کرنل، دستگاه‌های سخت‌افزاری و درایورها را در اختیار کاربر قرار می‌دهد.

دستور بررسی:

ls /sys

خروجی شامل: - block: دستگاه‌های بلوکی - bus: دستگاه‌های PCI، USB و... - class: دسته‌بندی دستگاه‌ها - devices: لیست کلی دستگاه‌ها

تفاوت /sys و /dev

در /sys دستگاه‌ها بر اساس فناوری دسته‌بندی می‌شوند اما /dev انتزاعی است.

/dev (Device Files)

udev مدیریت‌کننده دستگاه‌ها در لینوکس است که:

  • گره‌های دستگاه را در /dev مدیریت می‌کند
  • رویدادهای اتصال/قطع دستگاه را کنترل می‌کند
  • firmware مورد نیاز را بارگذاری می‌کند
  • قوانین سفارشی برای دستگاه‌ها اجرا می‌کند

مثال بررسی پارتیشن‌های هارد:

ls /dev/sda*

خروجی نمونه:

/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3

انواع دستگاه‌ها:

ls -lh /dev/ | head

خروجی نمونه:

crw-rw---- 1 root tty  4, 1 Dec 15 2019 tty1
brw-rw---- 1 root disk 8, 0 Dec 15 2019 sda
  • c (character device): دستگاه‌های کاراکتری مانند صفحه کلید
  • b (block device): دستگاه‌های بلوکی مانند هارد دیسک

قابلیت udev

می‌توانید با قوانین سفارشی نام‌گذاری دلخواه انجام دهید. مثلاً فلش مموری همیشه به عنوان /dev/mybackup شناخته شود و هنگام اتصال، اسکریپت پشتیبان‌گیری اجرا شود.

/proc (Process Information)

دایرکتوری /proc محلی است که کرنل تنظیمات و اطلاعات خود را نگه می‌دارد. این دایرکتوری در RAM ساخته می‌شود.

محتویات اصلی: - IRQ: درخواست‌های وقفه - I/O ports: پورت‌های ورودی/خروجی - DMA: دسترسی مستقیم به حافظه - اطلاعات پروسس‌ها - تنظیمات شبکه

بررسی محتوا:

ls /proc/

نکته

اعداد نمایش داده شده شناسه پروسس‌ها (PID) هستند.

مثال - مشاهده اطلاعات CPU:

cat /proc/cpuinfo

مثال - مشاهده اطلاعات حافظه:

cat /proc/meminfo

مثال - تغییر حداکثر فایل‌های باز:

cat /proc/sys/fs/file-max
echo 1000000 > /proc/sys/fs/file-max
cat /proc/sys/fs/file-max

هشدار

تغییرات در /proc موقتی هستند و پس از ریبوت حذف می‌شوند. برای دائمی کردن باید فایل‌های پیکربندی در /etc را ویرایش کنید.

تمرین - بررسی منابع سخت‌افزاری:

cat /proc/ioports
cat /proc/dma
cat /proc/iomem

D-Bus

D-Bus سیستم ارتباط بین فرآیندها (IPC) است که:

  • ارتباط ساده بین برنامه‌ها فراهم می‌کند
  • چرخه حیات فرآیندها را هماهنگ می‌کند
  • اجرای برنامه‌ها را در صورت نیاز مدیریت می‌کند

دستورات بررسی سخت‌افزار

lspci

نمایش دستگاه‌های PCI متصل:

lspci

خروجی نمونه:

00:00.0 Host bridge: Intel Corporation DRAM Controller
00:02.0 VGA compatible controller: Intel Corporation Integrated Graphics
00:19.0 Ethernet controller: Intel Corporation Gigabit Network Connection
00:1a.0 USB controller: Intel Corporation USB Enhanced Host Controller
00:1b.0 Audio device: Intel Corporation High Definition Audio Controller

برای اطلاعات تفصیلی:

lspci -v

برای اطلاعات بسیار تفصیلی:

lspci -vv

lsusb

نمایش دستگاه‌های USB متصل:

lsusb

خروجی نمونه:

Bus 002 Device 003: ID 1c4f:0026 SiGma Micro Keyboard
Bus 001 Device 005: ID 04f2:b217 Chicony Electronics Co. Camera
Bus 001 Device 004: ID 0a5c:217f Broadcom Corp. Bluetooth

برای جزئیات بیشتر:

lsusb -v

نمایش درختی دستگاه‌ها:

lsusb -t

lsblk

نمایش دستگاه‌های بلوکی (هارد، SSD و...):

lsblk

خروجی نمونه:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  500G  0 disk
├─sda1   8:1    0  512M  0 part /boot/efi
├─sda2   8:2    0   50G  0 part /
└─sda3   8:3    0  449G  0 part /home

با اطلاعات سیستم فایل:

lsblk -f

lshw

نمایش کامل سخت‌افزار سیستم (نیاز به دسترسی root):

sudo lshw

یا خروجی کوتاه:

sudo lshw -short

فقط اطلاعات شبکه:

sudo lshw -class network

مدیریت ماژول‌های کرنل

ماژول‌های کرنل درایورهایی هستند که به صورت پویا قابل بارگذاری و حذف هستند. این روش باعث می‌شود کرنل کوچک‌تر باشد و فقط درایورهای مورد نیاز بارگذاری شوند.

lsmod

نمایش ماژول‌های بارگذاری شده:

lsmod

خروجی نمونه:

Module                  Size  Used by
bluetooth             446190  22
uvcvideo               81065  0
snd_hda_intel          45273  5

ستون‌ها: - Module: نام ماژول - Size: حجم ماژول - Used by: تعداد استفاده‌کننده و ماژول‌های وابسته

محل ذخیره ماژول‌ها:

ls /lib/modules/$(uname -r)/

modinfo

نمایش اطلاعات یک ماژول:

modinfo bluetooth

خروجی شامل: نام، نویسنده، توضیحات، وابستگی‌ها، پارامترها

modprobe

بارگذاری ماژول (به همراه وابستگی‌ها):

sudo modprobe bluetooth

حذف ماژول:

sudo modprobe -r bluetooth

حذف اجباری:

sudo modprobe -rf bluetooth

هشدار

استفاده از گزینه -f برای حذف اجباری می‌تواند باعث ناپایداری سیستم شود.

تفاوت modprobe و insmod:

ویژگی modprobe insmod
وابستگی‌ها خودکار حل می‌کند حل نمی‌کند
مسیر فایل نیازی نیست نیاز به مسیر کامل
توصیه ✅ پیشنهاد می‌شود ❌ توصیه نمی‌شود

مثال استفاده از insmod (توصیه نمی‌شود):

sudo insmod /lib/modules/$(uname -r)/kernel/drivers/net/wireless/iwlwifi.ko

بارگذاری خودکار

برای بارگذاری خودکار ماژول در هنگام بوت:

روش اول - افزودن به /etc/modules:

echo "bluetooth" | sudo tee -a /etc/modules

روش دوم - ایجاد فایل در /etc/modprobe.d/:

echo "options bluetooth disable_ertm=1" | sudo tee /etc/modprobe.d/bluetooth.conf

نکته

فایل‌های در /etc/modprobe.d/ برای تنظیمات پیشرفته‌تر مناسب‌اند.


تمرین‌های عملی

تمرین 1: بررسی CPU

cat /proc/cpuinfo | grep "model name" | head -1
lscpu

تمرین 2: لیست دستگاه‌های USB

lsusb
lsusb -t

تمرین 3: بررسی هارد دیسک‌ها

lsblk
sudo fdisk -l

تمرین 4: مدیریت ماژول بلوتوث

lsmod | grep bluetooth
sudo modprobe -r bluetooth
lsmod | grep bluetooth
sudo modprobe bluetooth
lsmod | grep bluetooth

تمرین 5: بررسی شبکه

lspci | grep -i network
ip link show

خلاصه

در این فصل یاد گرفتیم:

  • تفاوت BIOS و UEFI
  • انواع رابط‌های سخت‌افزاری (PCI، USB، SATA و...)
  • تفاوت SSD و HDD
  • نقش و کاربرد /sys, /proc و /dev
  • دستورات lspci, lsusb, lsblk, lshw
  • مدیریت ماژول‌های کرنل با lsmod و modprobe
  • نقش udev در مدیریت دستگاه‌ها

نکات کلیدی برای آزمون

  • تفاوت character device و block device
  • تفاوت modprobe و insmod
  • موقتی بودن تغییرات در /proc
  • محل قرارگیری ماژول‌ها در /lib/modules
  • نقش udev در مدیریت /dev
  • استفاده از sysfs در /sys