Genellikle, birileri yaygın kullanımda, iyi test edilmiş, birçok platformda doğrulanmış bir şeyden uzaklaşmak istediğinde, "kod kokusu" olarak bilinen temel bir sorunun dışa dönük bir ifadesi ve "teknik borç" veya "kodun kontrolsüz bir şekilde toplanması" ifadesidir. borç". GNU arşivi yıllar boyunca oldukça fazla miktarda kod borcu oluşturmuştu ve bir kod temeli uygun şekilde korunmadığında bir kırılma noktasına ulaşabilir (eski kod ve hatta morbid eski kod).
Normalde, kişi bunu kontrol altında tutmak için belirli aralıklarla yeniden mühendislik ve yeniden düzenleme işlemi gerçekleştirir. Dolayısıyla, burada sorulan asıl soru, çekirdek parçaların yeniden yapılandırılmış bir versiyonunun geliştirilip geliştirilmediğidir. Bu, elbette, tam bir değiştirme olasılığını da içeriyor (özel bir durum olarak) - Wayland'ın X için olduğu gibi ... geliştiricilerin birçoğu X kampından çıkıyor.
Benim önerim aslında içeri girip refactor coreutils etmektir. Birisinin yapması gerek. Ve çekirdek elemanların değiştirilmesi konusunu her kim ortaya çıkarırsa, sizin fikrinizdir.
Bu amaçla, bulabileceğiniz herhangi bir otomasyondan yararlanın: cscout gibi yeniden motorları veya daha gelişmiş analiz / sentez yöntemlerini uygulayan herhangi bir şey (örn. Biçimsel kavram kafesleri). Ancak, derin analizler halen nispeten yeni ve açık bir aktif araştırma alanıdır - ve Yapay Zekaya geçmektedir. (Bir robot yazılım mühendisi.)
Yardımcı programların çoğu halihazırda test takımlarına sahip olmalıdır, bu nedenle aşamalı adım adım değişiklik + otomatik regresyon test adımları ile doğrulama yapılabilir; oldukça hızlı gidebilir (örneğin, 10 veya daha fazla revizyon güncellemesi / gün). Yazılım paketinin herhangi bir yerinde donanım veya düşük seviye yazılım bağımlılığı varsa, bu işlem için bir komplikasyon meydana gelir; Bu, birden fazla platformda doğrulama gerektirdiğinden beri. Bunun çekirdeklerin içinde olduğunu fazla bilmiyorum; donanım veya düşük seviye yazılım katmanlarından bir tür ayrılık olmalıdır (örneğin, coreutils'in ne tür bildiği yerlerin sayısı)üzerinde bulunduğu dosya sistemi asgari veya daha iyi olmalı, sıfır olmalıdır.) Çok platformlu testler yapmak için kullanılan emülatörler ve sanal makineler sınırlamaları vardır. Örneğin, Mac OS X, özellikle onu taklit etme ya da sanallaştırma yeteneğini engelleyecek şekilde tasarlanmıştır.