linux 内核 用户态(linux 内核 用户)
linux單用戶模式需要輸入登錄密碼?
進入單用戶模式:
grub 進入啟動畫面之后,敲入“e”,把光標移動到kernel ...那一行,再敲入“e”,在kernel 一行的結尾加上空格single,回車 敲入“b”,啟動系統,即進入單用戶模式, 這個時刻就能夠用passwd命令改密碼了。 passwd root 改完以后reboot重啟。
lilo 進入lilo命令行模式,敲入linux single,即進入單用戶模式。 passwd ... 假如grub/lilo設了密碼,必須要記得才行。
在unix/linux系統中,什么是用戶態,什么是內核態?
用戶態和內核態 內核棧:Linux中每個進程有兩個棧,分別用于用戶態和內核態的進程執行,其中的內核棧就是用于內核態的堆棧,它和進程的task_struct結構,更具體的是thread_info結構一起放在兩個連續的頁框大小的空間內。
現在我們從特權級的調度來理解用戶態和內核態就比較好理解了,當程序運行在3級特權級上時,就可以稱之為運行在用戶態,因為這是最低特權級,是普通的用戶進程運行的特權級,大部分用戶直接面對的程序都是運行在用戶態;反之,當程序運行在0級特權級上時,就可以稱之為運行在內核態。 雖然用戶態下和內核態下工作的程序有很多差別,但最重要的差別就在于特權級的不同,即權力的不同。
運行在用戶態的程序不能訪問操作系統內核數據結構合程序。
當我們在系統中執行一個程序時,大部分時間是運行在用戶態下的。在其需要操作系統幫助完成某些它沒有權力和能力完成的工作時就會切換到內核態。 Linux進程的4GB地址空間,3G-4G部分大家是共享的,是內核態的地址空間,這里存放在整個內核的代碼和所有的內核模塊,以及內核所維護的數據。
用戶運行一個程序,該程序所創建的進程開始是運行在用戶態的,如果要執行文件操作,網絡數據發送等操作,必須通過write,send等系統調用,這些系統調用會調用內核中的代碼來完成操作,這時,必須切換到Ring0,然后進入3GB-4GB中的內核地址空間去執行這些代碼完成操作,完成后,切換回Ring3,回到用戶態。
這樣,用戶態的程序就不能隨意操作內核地址空間,具有一定的安全保護作用。
保護模式,通過內存頁表操作等機制,保證進程間的地址空間不會互相沖突,一個進程的操作不會修改另一個進程的地址空間中的數據。在內核態下,CPU可執行任何指令,在用戶態下CPU只能執行非特權指令。
當CPU處于內核態,可以隨意進入用戶態;而當CPU處于用戶態,只能通過中斷的方式進入內核態。
一般程序一開始都是運行于用戶態,當程序需要使用系統資源時,就必須通過調用軟中斷進入內核態.
總結
以上是生活随笔為你收集整理的linux 内核 用户态(linux 内核 用户)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RFC+JSF术语
- 下一篇: 怎么用ps把自己的照片变成漫画(怎么用p