Pelepasan kernel Linux 6.12 dengan sokongan Masa Nyata

Selepas dua bulan pembangunan, Linus Torvalds mengeluarkan kernel tersebut. Linux 6.12. Antara perubahan yang paling ketara: keupayaan untuk mendayakan mod Masa Nyata, sched_ext untuk mencipta penjadual CPU melalui eBPF, output kod QR dalam keadaan kecemasan, mekanisme TCP Memori Peranti, mekanisme tempahan sumber pelayan SCHED_DEADLINE, penambahbaikan penjadual tugas EEVDF, modul IPE untuk menetapkan dasar integriti.

Versi baharu termasuk 14607 pembetulan daripada 2167 pembangun, saiz tampalan ialah 37 MB (perubahan mempengaruhi 13087 fail, 507913 baris kod telah ditambahkan, 234083 baris telah dipadamkan). Keluaran terakhir mempunyai 15130 pembetulan daripada 2078 pembangun, saiz tampalan ialah 85 MB (dalam kernel 6.10 tampalan bersaiz 41 MB). Kira-kira 45% daripada semua perubahan yang diperkenalkan dalam 6.12 adalah berkaitan dengan pemacu peranti, kira-kira 12% perubahan berkaitan dengan pengemaskinian kod khusus untuk seni bina perkakasan, 13% berkaitan dengan susunan rangkaian, 6% berkaitan dengan sistem fail dan 3% adalah berkaitan dengan subsistem kernel dalaman.

Inovasi utama dalam kernel 6.12:

  • Perkhidmatan memori dan sistem
    • Keupayaan untuk membina kernel dengan pilihan PREEMPT_RT tanpa tampalan tambahan untuk operasi masa nyata kini tersedia. Ciri kernel terakhir yang hilang yang menghalang mod PREEMPT_RT daripada diaktifkan ialah sokongan untuk output atom tanpa sekatan melalui fungsi printk, yang turut disertakan dalam kernel. Sokongan PREEMPT_RT tersedia untuk seni bina x86, x86_64, ARM64 dan RISC-V. Sehingga kini, pelaksanaan mod PREEMPT_RT disediakan dalam bentuk tampalan luaran, yang mana beberapa pengedaran, seperti RHEL, SUSE dan Ubuntu, mencipta edisi Masa Nyata berasingan bagi produk mereka, yang mendapat permintaan dalam bidang seperti sistem kewangan, peranti pemprosesan audio dan video, penerbangan, perubatan, robotik, telekomunikasi dan sistem perindustrian, yang mana perlu untuk memastikan masa pemprosesan peristiwa yang boleh diramal.
    • Mekanisme "sched_ext" (SCX) telah ditambah, membolehkan penggunaan eBPF untuk mencipta penjadual CPU yang merangkumi hampir semua aspek penjadualan tugas dan peruntukan sumber CPU. Penjadual sedemikian boleh dimuatkan secara dinamik dan dilaksanakan dalam kernel. Linux в mesin maya eBPF. Mekanisme sched_ext memudahkan penciptaan penjadual khusus tugas, membolehkan eksperimen dengan pelbagai teknik dan strategi penjadualan, dan membolehkan penciptaan prototaip kerja yang pantas dan penggantian penjadual dalam infrastruktur pengeluaran. Contohnya, menggunakan sched_ext, anda boleh mencipta penjadual yang mengambil kira spesifikasi aplikasi tertentu dan mengubah strategi penjadualannya secara dinamik bergantung pada keadaan sistem dan faktor lain.
    • Komposisi ini termasuk bahagian baki tampalan yang diperlukan untuk pengendalian mekanisme pelayan SCHED_DEADLINE, yang menyelesaikan masalah kekurangan penggunaan sumber CPU oleh tugas biasa apabila CPU dimonopoli oleh tugas keutamaan tinggi (masa nyata). Untuk mengelakkan monopoli CPU, kernel sebelum ini menggunakan mekanisme pendikit masa Nyata, yang cuba menempah 5% untuk tugas keutamaan rendah, meninggalkan 95% masa untuk tugasan masa nyata. Mekanisme ini meninggalkan banyak yang diingini, kerana tugas biasa dalam banyak situasi tidak menerima masa pemproses yang mencukupi. Pelayan SCHED_DEADLINE melaksanakan mekanisme tempahan sumber yang lebih cekap.
    • Penyepaduan penjadual tugas EEVDF (Tarikh Akhir Maya Terawal Layak Didahulukan) telah selesai, yang menggantikan penjadual CFS (Penjadual Sepenuhnya Adil), yang dibekalkan bermula dengan kernel 2.6.23. Penjadual baharu, apabila memilih proses seterusnya untuk memindahkan pelaksanaan, mengambil kira proses yang tidak menerima sumber pemproses yang mencukupi atau telah menerima jumlah masa pemproses yang tidak adil. Dalam kes pertama, pemindahan kawalan kepada proses itu dipaksa, dan pada yang kedua, sebaliknya, ia ditangguhkan. Penjadual CFS lama menggunakan heuristik dan penalaan halus untuk mengenal pasti proses yang memerlukan perhatian khusus, manakala penjadual baharu menjejakinya dengan lebih jelas dan tidak memerlukan penalaan halus. EEVDF dijangka dapat mengurangkan kelewatan dalam tugas yang CFS mengalami masalah penjadualan.
    • Dalam pengendali kecemasan kernel - DRM Panic, yang menggunakan subsistem DRM (Pengurus Rendering Langsung) untuk memaparkan laporan visual dalam gaya "skrin biru kematian", keupayaan untuk memaparkan logo dan kod QR dengan laporan kmsg pada skrin apabila keadaan kecemasan berlaku telah ditambah. Memandangkan hanya 2953 bait dimuatkan ke dalam kod QR, pilihan DRM_PANIC_SCREEN_QR_CODE_URL disediakan, di mana laporan kmsg dimampatkan menggunakan zlib dan dilampirkan sebagai parameter pada URL, yang membolehkan kira-kira 40 bait dipindahkan melalui kod QR V7500. Apabila membina pakej dengan kernel, pengedaran boleh menetapkan URL asas untuk URL, yang akan membolehkan mereka menavigasi ke halaman untuk melaporkan masalah. Untuk memilih format kod QR, tetapan DRM_PANIC_SCREEN_QR_VERSION disediakan.
    • Sokongan tambahan untuk ARM POE (Permission Overlay Extension), yang membolehkan anda menetapkan hak akses kepada kawasan memori. Menggunakan sambungan ini, pada sistem dengan pemproses ARM64, mekanisme Kekunci Perlindungan Memori boleh dilaksanakan, yang digunakan untuk mengehadkan akses kepada halaman memori tanpa mengubah jadual halaman memori.
    • Untuk seni bina Loongarch, ARM64, PowerPC dan s390, pelaksanaan panggilan sistem getrandom() telah dialihkan, dioptimumkan menggunakan mekanisme vDSO (objek kongsi dinamik maya), yang memungkinkan untuk memindahkan pengendali panggilan sistem daripada kernel kepada pengguna ruang dan elakkan suis konteks. Pengoptimuman membolehkan anda mempercepatkan penjanaan nombor rawak sehingga 15 kali ganda.
    • Keupayaan untuk menggunakan tamat masa mutlak, yang dicetuskan apabila masa tertentu dicapai pada jam sistem, telah ditambahkan pada subsistem input/output tak segerak io_uring (sebelum ini, hanya tamat masa relatif boleh ditetapkan, yang menunjukkan tempoh dari permulaan operasi ).
    • Menambahkan fail untuk menjana pengikatan untuk perpustakaan libcpupower menggunakan kit alat SWIG, yang membolehkan anda menjana pengikatan daripada kod C/C++ untuk pelbagai bahasa pengaturcaraan. Bindings membolehkan anda mencipta skrip dalam Python dan bahasa lain, dan menggunakannya untuk memanjangkan kefungsian perpustakaan libcpupower, yang menyediakan API untuk mengurus cpufreq dan pemacu dari ruang pengguna.
    • Utiliti cpuidle memaparkan nilai "residensi" keadaan terbiar, digunakan untuk sistem masa nyata dan mengambil kira masa minimum pemproses mesti berada dalam keadaan terbiar untuk mewajarkan kos tenaga untuk beralih masuk dan keluar dari keadaan ini.
    • Menambah keupayaan untuk menggunakan pengkompil Clang bagi membina pustaka C standard nolibc, yang disertakan dalam kod sumber kernel. Linux dan menyediakan gambaran keseluruhan panggilan sistem asas. Apabila membina nolibc dalam Clang, pengoptimuman masa pautan (LTO) diaktifkan.
    • Sesetengah antara muka cgroup1 telah ditamatkan, seperti perakaunan TCP, had lembut versi XNUMX dan pengurusan kelesuan memori. Sokongan untuk ciri ini kekal sepenuhnya buat masa ini, dan amaran dibuat untuk mengkaji bilangan pengguna yang terus menggunakan ciri ini.
    • Menambah keupayaan untuk mengkonfigurasi penimbal jejak cincin untuk menyimpan data terkumpul selepas but semula, yang akan membolehkan anda tidak kehilangan maklumat penyahpepijatan terkumpul sekiranya berlaku ranap kernel. Data disimpan dalam ingatan. Pendayaan dilakukan melalui parameter baris arahan kernel trace_instance, contohnya, menetapkan "trace_instance=boot_map@0x285400000:12M" akan menyimpan 12 MB memori pada 0x285400000 untuk penimbal "boot_map", yang boleh diakses melalui fail /sys/kernel /tracing/instances/boot_map.
    • Perubahan yang berterusan daripada cabang Rust-for-Linux, berkaitan dengan penggunaan Rust sebagai bahasa kedua untuk membangunkan pemacu dan modul kernel (sokongan Rust tidak aktif secara lalai dan tidak memasukkan Rust antara kebergantungan binaan kernel yang diperlukan). Menambah modul 'senarai' dan 'rbtree' untuk berfungsi dengan senarai berangkai dua dan pokok carian merah-hitam. Memperluas keupayaan modul 'init', 'sync', 'types' dan 'error'. Keupayaan untuk menggunakan kod Rust semasa membina kernel dengan perlindungan terhadap serangan Spectre (pilihan MITIGATION_{RETHUNK,RETPOLINE,SLS}), menggunakan sistem penyahpepijatan KASAN, mekanisme perlindungan kCFI (kernel Control Flow Integrity) dan Shadow Call, dan semasa menggunakan pemalam GCC tambahan telah ditambah. Pemacu untuk pengawal Applied Micro QT2025 PHY Ethernet, yang ditulis dalam Rust, telah ditambah. Laman web berasingan dengan dokumentasi telah disediakan: rust.docs.kernel.org.
    • Utiliti xdrgen telah ditambah pada kod sumber kernel untuk menukar spesifikasi XDR (eXternal Data Representation) kepada fungsi pengekodan dan penyahkodan XDR yang ditulis menggunakan gaya C yang diguna pakai oleh kernel. Linux.
    • Kernel telah dipinda untuk melaksanakan mekanisme penutup penunjuk untuk mengurangkan bilangan panggilan perlahan ke barrier_nospec() dalam fungsi copy_from_user() 64-bit, digunakan untuk menyalin data ke dalam kernel daripada ruang pengguna. Menggunakan masking mempercepatkan ujian "per_thread_ops", yang menilai bilangan operasi yang boleh dilakukan dalam satu thread, sebanyak 2.6%.
    • Pemacu USB baharu telah ditambah yang membolehkan anda menggunakan protokol 9pfs sebagai pengangkutan untuk menghantar dan menerima data daripada peranti USB apabila memasang sistem fail 9p melalui USB (contohnya, “mount -t 9p -o trans=usbg, nama=/path/to/ fs /mnt/9"). Contoh menggunakan pemacu baharu ialah menggunakannya dan bukannya NFS untuk mengatur but partition akar semasa membangunkan peranti terbenam.
  • Subsistem cakera, I/O dan sistem fail
    • Keupayaan untuk bekerja dengan peranti storan yang saiz bloknya lebih besar daripada saiz halaman memori dalam sistem telah ditambahkan pada subsistem VFS. Dalam sistem fail, pada masa ini ciri ini hanya disokong dalam XFS.
    • Subsistem FUSE, yang membolehkan anda membuat pelaksanaan sistem fail yang beroperasi dalam ruang pengguna, telah menambah sokongan untuk pemetaan pengecam pengguna sistem fail yang dipasang, digunakan untuk memadankan fail pengguna tertentu pada partition asing yang dipasang dengan pengguna lain pada semasa. sistem.
    • Operasi fcntl baharu, F_CREATED_QUERY, telah dilaksanakan, memberikan aplikasi keupayaan untuk menentukan sama ada fail dibuka menggunakan bendera O_CREAT telah dicipta atau sama ada ia telah wujud sebelum ini.
    • Menambahkan keupayaan untuk menggunakan ID titik pelekap unik 64-bit pada panggilan sistem name_to_handle_at() untuk mengelakkan keadaan perlumbaan semasa menghuraikan /proc/mountinfo.
    • Saiz struktur "fail" dalam kernel telah dikurangkan daripada 232 kepada 184 bait, yang mengurangkan penggunaan memori pada sistem yang berfungsi secara aktif dengan fail.
    • Memasang sistem fail untuk melekapkan titik dalam hierarki /proc, seperti /proc/PID/fd, adalah dilarang, yang menimbulkan masalah keselamatan yang berpotensi.
    • NSFS pseudo-FS (NameSpace FS), digunakan untuk bekerja dengan ruang nama, memberikan maklumat tambahan tentang ruang nama titik lekap.
    • Sistem fail EROFS (Sistem Fail Baca Sahaja Boleh Diperluas), direka untuk digunakan pada partition baca sahaja, kini menyokong pemasangan sistem fail terus daripada imej cakera yang disimpan sebagai fail.
    • Perintah ioctl baharu XFS_IOC_START_COMMIT dan XFS_IOC_COMMIT_RANGE telah ditambahkan pada XFS untuk bertukar kandungan antara dua fail.
    • NFS telah menambah sokongan untuk protokol "LOCALIO", yang membolehkan anda menentukan sama ada klien dan pelayan NFS pada hos yang sama untuk mendayakan pengoptimuman yang sepadan.
    • Dalam sistem fail Btrfs, pengoptimuman prestasi telah dicadangkan, kod telah difaktorkan semula, kawasan penguncian tahap semasa operasi baca telah dikurangkan, kerja telah diteruskan untuk menukar halaman memori untuk menggunakan folio halaman, dan pelepasan memori automatik telah dilaksanakan untuk struktur btrfs_path.
    • Dalam sistem fail Ext4, pepijat yang berkaitan dengan peruntukan blok, pengurusan tahap, komitmen pantas dan jurnal telah dibetulkan.
  • Maya dan Keselamatan
    • Menambah modul LSM IPE (Penguatkuasaan Dasar Integriti), yang dibangunkan oleh Microsoft untuk mengembangkan sistem kawalan capaian mandatori sedia ada. Modul ini membolehkan anda menentukan dasar integriti umum untuk keseluruhan sistem, menunjukkan operasi yang dibenarkan dan cara ketulenan komponen harus disahkan. Contohnya, menggunakan IPE, anda boleh menentukan fail boleh laku yang dibenarkan untuk dijalankan, dengan mengambil kira pematuhannya dengan versi rujukan menggunakan cincang kriptografi yang disediakan oleh sistem dm-verity.
    • Pada peringkat penyusunan kernel, adalah mungkin untuk membolehkan kaedah perlindungan yang tersedia secara berasingan terhadap kelemahan kelas Spectre yang berbeza dalam CPU. Kconfig menawarkan parameter baharu: MITIGATE_MDS (perlindungan terhadap kerentanan Persampelan Data Mikroarchitectural), MITIGATE_TAA (perlindungan terhadap kerentanan TSX Asynchronous Abort), MITIGATE_MMIO_STALE_DATA (perlindungan terhadap kerentanan Data Stale MMIO), MITIGATEult_L1TIGATFVerability (Terminal MITIGATEult_L1TIGATF) (perlindungan terhadap kerentanan Retbleed), MITIGATE_SPECTRE_V1, MITIGATE_SPECTRE_V2 (perlindungan terhadap kelemahan Spectre), MITIGATE_SRBDS (perlindungan terhadap kerentanan Pensampelan Data Penampan Daftar Khas), MITIGATE_SSB (perlindungan daripada Pintasan Stor Keterdedahan Spekulatif).
    • Menambahkan pilihan baris perintah proc_mem.force_override dan set tetapan pemasangan dalam Kconfig (PROC_MEM_FORCE_ALWAYS, PROC_MEM_FORCE_PTRACE dan PROC_MEM_FORCE_NEVER) untuk mengelakkan perubahan memori melalui /proc/pid/mem.
    • Subsistem LSM (Linux modul keselamatan) telah ditukar kepada penggunaan panggilan statik, yang telah meningkatkan keselamatan dan prestasi.
    • Keupayaan untuk menggunakan teras standard untuk seni bina ARM64 dalam persekitaran tetamu yang berjalan pada Android-sistem dengan hipervisor KVM yang diubah suai (KVM yang dilindungi).
    • Modul Landlock LSM, yang membolehkan anda mengehadkan interaksi sekumpulan proses dengan persekitaran luaran, melaksanakan konsep "skop IPC" untuk mengehadkan interaksi secara selektif dengan persekitaran kotak pasir menggunakan soket dan isyarat Unix. Contohnya, anda boleh melarang sambungan menggunakan soket Unix daripada persekitaran kotak pasir kepada proses yang tidak menggunakan pengasingan, tetapi membenarkan sambungan kepada proses dalam skop yang sama.
    • Dalam hipervisor KVM, bendera telah ditambahkan pada CPUID untuk sistem tetamu yang menunjukkan sokongan untuk sambungan AVX10.1.
  • Subsistem rangkaian
    • Mekanisme TCP Memori Peranti telah ditambah, membenarkan penggunaan soket rangkaian menghantar terus kandungan memori peranti persisian melalui rangkaian (mod salinan sifar) dan terus meletakkan kandungan paket rangkaian dalam kawasan memori peranti pada pihak penerima. Data yang dihantar dalam paket dipindahkan dari kad rangkaian ke memori peranti persisian atau dari memori peranti ke kad rangkaian secara langsung, memintas CPU, dan pengepala paket berakhir dalam penampan kernel biasa.
    • Keupayaan banyak pemacu Ethernet dan wayarles telah diperluaskan. Sebagai contoh, pemacu Intel iwlwifi menambah sokongan untuk mengalihkan operasi RLC/SMPS ke bahagian perisian tegar, pemacu RealTek rtw89 meningkatkan prestasi dan menambah sokongan untuk cip RTL8852BT/8852BE-VT (WiFi 6), pemacu Ethernet mikrocip menambah sokongan untuk IEEE 802.3 bw (100BASE) spesifikasi -T1) dan IEEE 802.3bp, Microsoft vNIC dan IBM veth pelaksanaan Ethernet maya telah dipertingkatkan. Menambah pemacu baharu untuk cip Realtek RTL9054, RTL9068, RTL9072, RTL9075, RTL9068, RTL9071 dan Microchip LAN8650/1 10BASE-T1S MAC-PHY Ethernet.
    • Dalam MPTCP (MultiPath TCP), lanjutan protokol TCP untuk mengatur penghantaran paket TCP secara serentak di sepanjang beberapa laluan melalui antara muka rangkaian yang berbeza, saiz pemberat yang digunakan dalam penghalaan dinaikkan daripada 8 kepada 16 bit. Melaksanakan pengesanan trafik yang hilang (lubang hitam) dan penggantungan untuk beberapa lama percubaan untuk mewujudkan sambungan dengan sistem yang membawa kepada kehilangan trafik.
    • Untuk IPv6, sokongan dilaksanakan untuk bendera "p" dalam PIO (Pilihan Maklumat Awalan), digunakan dalam iklan RA (Iklan Penghala IPv6) untuk memilih model penggunaan pelanggan melalui DHCPv6-PD (Perwakilan Awalan DHCPv6, RFC9663) dan bukannya menetapkan alamat individu berdasarkan awalan menggunakan SLAAC (Stateless Address Autoconfiguration). IPv6 IOAM6 menambah sokongan untuk mod enkapsulasi tunsrc baharu yang membolehkan prestasi yang lebih baik.
    • Prestasi yang lebih baik untuk memproses paket kawalan IPsec.
    • Prestasi dipertingkatkan set peraturan flushing nftables besar. nfnetlink_queue telah menambah baik sokongan untuk protokol SCTP.
    • API ethtool telah menambah sokongan untuk mengikat berbilang kad rangkaian kepada satu antara muka rangkaian.
  • Оборудование
    • Dalam pemacu AMDGPU, kerja terus melaksanakan sokongan untuk GPU AMD RDNA4 (“GFX12”). Menambah keupayaan untuk menetapkan semula baris gilir tugas individu tanpa menetapkan semula keseluruhan GPU.
    • Kerja diteruskan pada pemacu Xe drm (Pengurus Render Langsung) untuk GPU berdasarkan seni bina Intel Xe, yang digunakan dalam kad video keluarga Intel Arc dan grafik bersepadu, bermula dengan pemproses Tiger Lake. Versi baharu ini termasuk sokongan untuk GPU berdasarkan arkitek mikro Battlemage dan Lunar Lake. Sokongan untuk pengubah suai Xe2 CCS (Color Control Surface) telah diperkenalkan untuk mengawal parameter GPU bersepadu dan diskret.
    • Pemacu i915 melaksanakan keupayaan untuk mengeluarkan maklumat tentang kelajuan kipas melalui antara muka HWMON atau sysfs (atribut "fan1_input"). Parameter "i915.modeset" telah ditamatkan; parameter "i915.nomodeset" harus digunakan dan bukannya "i0.modeset=915".
    • Menambahkan sokongan untuk GPU A615, A306 dan A621 pada pemacu DRM msm (Qualcomm Adreno GPU).
    • Pemandu Nouveau telah mengolah semula dan membersihkan struktur dalamannya.
    • Pemacu intel_pstate, yang mengawal parameter penggunaan kuasa (P-state) pada sistem dengan pemproses Intel, telah menambah sokongan untuk sistem hibrid dengan CPU asimetri (ciri-ciri berbeza), serta sokongan untuk pengurusan kuasa pemproses berdasarkan Granite Rapids dan Sierra Forest seni bina mikro. Menambah sokongan untuk CPU Xeon Granite Rapids pada pemacu intel_idle. Pemacu intel_rapl memberikan pengiktirafan proses keluarga AMD 1Ah dan pemproses Intel ArrowLake-U.
    • Kemasukan perubahan yang berterusan untuk menyokong ARM SoC Snapdragon X Elite, yang menggunakan CPU Oryon 12-teras Qualcomm sendiri dan GPU Qualcomm Adreno. Cip ini bertujuan untuk digunakan dalam komputer riba dan PC, dan mendahului cip Apple M3 dan Intel Core Ultra 155H dalam banyak ujian prestasi.
    • Sokongan tambahan untuk papan ARM, SoC dan peranti: Broadcom bcm2712 (Raspberry Pi 5), Renesas R9A09G057 (RZ/V2H), Qualcomm Snapdragon 414 (MSM8929), Lenovo ThinkPad T14s Gen 6, Lenovo A6000/A6010, Anbernic Laptop RG7XX, Surface Laptop RG35XX , Firefly Core-PX30-JD4, Lunzn Fastrhino R68S, Aspeed Riser, AGX Orin, Rockchip Qnap-TS433, Huashan Pi, Meta Catalina, BeagleY-AI, NanoPi R2S Plus, ExynosAuto v920, SOPHGO SGQ2002, G5332 Qualcomm, IP4 ), Cool Pi CM815 GenBook, Anbernic RG5XXSP, GameForce Ace, IBM P35, Kontron i.MX11 OSM-S, NanoPC-T93
    • Sokongan tambahan untuk panel skrin Anbernic RG28XX, On Tat Industrial Company KD50G21-40NT-A1, Innolux G070ACE-LH3, Melfas lmfbx101117480, Densitron DMT028VGHMCMI-1D, Microchip AC40T08A.116X, AOU02.3A 116XAT06.1, BOE TV116WUM -LL04.1, BOE NV101WUM-N2, BOE NV140WUM-N41, BOE NV133WHM-A63D, BOE NE116WUM-N4G, CMN N140BCA-EA6, CMN N116BCP-EA2, CSW MNB116LS2-601 Starry 1
    • Subsistem audio telah menambah sokongan untuk cip dan codec RME Digiface USB, AMD ACP 7.1, Mediatek MT6367, MT8365, Realtek RTL1320, C-Media CM9825. Pemacu bunyi lama untuk Intel ASoC telah diisytiharkan usang, dan sebaliknya disyorkan untuk menggunakan pemacu AVS. Banyak penambahbaikan telah dibuat pada pemacu SoundWire.

Sumber: opennet.ru

Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS 🔥 Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster