Yöntem # 4, komut satırı bağımsız değişkenleri için çekirdek içinde ayrılan sayfa sayısını el ile artırmayı içerir. İnclude / linux / binfmts.h dosyasına bakarsanız, en üstte aşağıdakileri bulabilirsiniz:
/*
* 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
Komut satırı bağımsız değişkenlerine ayrılmış bellek miktarını artırmak için, MAX_ARG_PAGES değerini daha yüksek bir sayı ile girmeniz yeterlidir. Bu düzenleme kaydedildikten sonra, normal şekilde yaptığınız gibi yeni çekirdeği yeniden derleyin, yükleyin ve yeniden başlatın.
Kendi test sistemimde, bu değeri 64'e yükselterek tüm sorunlarımı çözmeyi başardım. Kapsamlı testlerden sonra, geçişten beri tek bir sorunla karşılaşmadım. MAX_ARG_PAGES
64 olarak ayarlanmış olsa bile, üretebildiğim en uzun komut satırı, bugünün sistem donanım standartlarına göre çok fazla değil, sadece 256 KB sistem belleği kaplayacağı için tamamen bekleniyor .
Yöntem # 4'ün avantajları açıktır. Artık komutu normalde yaptığınız gibi çalıştırabilirsiniz ve başarıyla tamamlanır. Dezavantajları da aynı derecede açıktır. Komut satırı için kullanılabilir bellek miktarını kullanılabilir sistem belleği miktarının ötesine yükseltirseniz, kendi sisteminizde bir DOS saldırısı oluşturabilir ve çökmesine neden olabilirsiniz. Özellikle çok kullanıcılı sistemlerde, küçük bir artış bile önemli bir etkiye sahip olabilir, çünkü daha sonra her kullanıcıya ek bellek tahsis edilir. Bu nedenle, Yöntem # 4'ün sizin için uygun bir seçenek olup olmadığını belirlemenin en güvenli yolu olduğundan, her zaman kendi ortamınızda kapsamlı bir şekilde test edin.
Bu sınırlamanın ciddi derecede can sıkıcı olduğunu kabul ediyorum.