-4
A
回答
2
問題是(除了脫離主題外)本身有點不對,因爲rm
不是內核的一部分,而是一個內置的shell或一個單獨的用戶級程序。無可否認,rm
使用內核提供的系統調用,但這是無關緊要的。
內核本身從壓縮映像加載並鎖定在RAM中。直到重新啓動(這會在引導加載程序給出諸如「vmlinuz未找到」之類的消息時會失敗),是否刪除壓縮的映像並不重要。你無法從RAM中刪除內核(好吧,除了重新啓動...)。
此外,在大多數情況下,無論您是否刪除一個文件,包括正在運行的程序的可執行文件(如果我們可能在一段時間內將內核調用爲一個「程序」這一令人生畏的事情) ,因爲刪除文件只是刪除鏈接,而不是文件。這是一種Windows典型的假設,即刪除文件會造成破壞性的惡意行爲。
在類Unix系統下,完全可以在程序運行時刪除(或替換)程序,並且根本不會引起任何問題。您將刪除文件系統中的名稱,就這些。任何開放的描述符將保持有效,直到最後一個關閉爲止,原始文件將保持原樣,對於任何先前獲得處理的觀察者來說都是如此,並且對於每個嘗試稍後獲取它的人都會「消失」。
相關問題
- 1. 如果* .exe.config被刪除會發生什麼情況?
- 2. TFS - 如果我刪除工作區會發生什麼情況?
- 3. 如果不清除ThreadLocal變量,會發生什麼情況?
- 4. 如果堆棧內存變滿,會發生什麼情況
- 5. 如果我不從nsnotification中心刪除觀察者,會發生什麼情況?
- 6. 如果我在git中刪除父分支,會發生什麼情況
- 7. 如果我刪除Ubuntu中的主配置文件會發生什麼情況?
- 8. 如果我在Android Studio中刪除dump.txt文件,會發生什麼情況?
- 9. 如果刪除+和++運算符之間的空格,會發生什麼情況?
- 10. 如果決策器未運行,會發生什麼情況
- 11. 如果在rootfs上發生內存泄漏,會發生什麼情況?
- 12. 如果finally塊引發異常,會發生什麼情況?
- 13. 如果CFile :: Write引發異常會發生什麼情況?
- 14. 如果iOS分發證書過期會發生什麼情況?
- 15. 如果我的IExceptionPublisher引發異常,會發生什麼情況?
- 16. 如果我在.NET核心庫中添加PackageReference net46,會發生什麼情況?
- 17. DatastoreService批量刪除。如果發生異常,會發生什麼
- 18. 如果我在程序運行時刪除程序的執行程序,會發生什麼情況?
- 19. 爲什麼會發生這種情況?
- 20. 如果未處理事件會發生什麼情況?
- 21. 如果有人拿到我的appsecret,會發生什麼情況?
- 22. 如果php.ini丟失,會發生什麼情況?
- 23. minimax:如果min不起作用會發生什麼情況
- 24. 如果您打破Lock()語句,會發生什麼情況?
- 25. 如果NSURLCache已滿,會發生什麼情況?
- 26. 如果委託不存在,會發生什麼情況?
- 27. 如果未捕獲到異常,會發生什麼情況?
- 28. 如果我不調用transaction.close或transaction.rollback,會發生什麼情況?
- 29. 如果Web服務更改參數會發生什麼情況?
- 30. 如果ExecutorService的隊列已滿,會發生什麼情況
正在從一個基本上這樣做並設法恢復的腸道讀博客。非常有趣的閱讀 - http://fendrich.se/blog/2010/08/27/rescuing-hosed-system-using-only-bash/ – Graeme