Metode # 4 melibatkan peningkatan secara manual jumlah halaman yang dialokasikan dalam kernel untuk argumen baris perintah. Jika Anda melihat file include / linux / binfmts.h, Anda akan menemukan yang berikut di atas:
/*
* MAX_ARG_PAGES defines the number of pages allocated for arguments
* and envelope for the new program. 32 should suffice, this gives
* a maximum env+arg of 128kB w/4KB pages!
*/
#define MAX_ARG_PAGES 32
Untuk menambah jumlah memori yang didedikasikan untuk argumen baris perintah, Anda hanya perlu memberikan nilai MAX_ARG_PAGES dengan angka yang lebih tinggi. Setelah pengeditan ini disimpan, cukup kompilasi ulang, instal, dan reboot ke kernel baru seperti yang akan Anda lakukan secara normal.
Pada sistem pengujian saya sendiri, saya berhasil menyelesaikan semua masalah saya dengan menaikkan nilai ini menjadi 64. Setelah pengujian ekstensif, saya tidak mengalami satu masalah sejak beralih. Ini sepenuhnya diharapkan karena bahkan dengan MAX_ARG_PAGES
set ke 64, baris perintah terpanjang yang mungkin saya dapat hasilkan hanya akan menempati 256KB memori sistem - tidak terlalu banyak dengan standar perangkat keras sistem saat ini.
Keuntungan dari Metode # 4 jelas. Anda sekarang dapat dengan mudah menjalankan perintah seperti biasa, dan itu berhasil. Kerugiannya sama jelasnya. Jika Anda meningkatkan jumlah memori yang tersedia ke baris perintah di luar jumlah memori sistem yang tersedia, Anda dapat membuat serangan DOS pada sistem Anda sendiri dan menyebabkannya crash. Pada sistem multiuser khususnya, bahkan peningkatan kecil dapat memiliki dampak yang signifikan karena setiap pengguna kemudian dialokasikan memori tambahan. Karena itu selalu uji ekstensif di lingkungan Anda sendiri, karena ini adalah cara paling aman untuk menentukan apakah Metode # 4 adalah opsi yang layak untuk Anda.
Saya setuju bahwa batasannya sangat mengganggu.