PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Soft_Job
[請益] user/kernel level
作者:
zelkova
(*〞︶〝*)
2014-10-07 21:51:35
各位前輩好
最近面試的時候 遇到一位面試官問了一個問題
類似這樣 "你這支程式是user level還是kernel level?"
以前修OS大概還能區分這兩個名詞的差異
但是我發現我都沒去思考怎麼區分程式是屬於哪一個@@
請問有什麼關係可以判斷程式是屬於user/kernel level呢? 謝謝
作者:
Ting1024
(無)
2014-10-07 21:59:00
OS, Firmware 屬於kernel, 其他歸user。
作者:
zelkova
(*〞︶〝*)
2014-10-07 22:19:00
請問判斷方式是看程式放在哪個memory space嗎?
作者:
loveflames
(咕啾咕啾魔法陣)
2014-10-07 23:13:00
kernel:ring 0,高位址 user:ring 3,低位址韌體 OS driver是kernel一般的debugger只能看見user space
作者: hst326
2014-10-07 23:44:00
不知道的一定是user lv, 寫kernel的不會問這問題了
作者:
zelkova
(*〞︶〝*)
2014-10-08 00:20:00
我說明一下困惑我的是什麼地方好了我之前寫的是library(xxx.so) 它會被燒成firmwarexxx.so會被放到rootfs 開機的時候會被叫起來
作者:
shortoneal
(不告訴你咧)
2014-10-08 00:33:00
firmware這個稱呼現在已經不專屬於kernel了...現在很多嵌入式系統整包image都有人叫他是fw
作者:
zelkova
(*〞︶〝*)
2014-10-08 00:35:00
感覺xxx.so好像是kernel的東西 但是放在rootfs又可以給user抽換掉 所以不清楚xxx.so定位是哪個level
作者:
watz0n
(watz0n)
2014-10-08 01:02:00
Google: User space memory access from the Linux kernel
作者:
zelkova
(*〞︶〝*)
2014-10-08 01:37:00
watz0n大大您好 IBM那篇 好像只有講paging, swapping機制不過看那篇的時候我想到so好像是透過dlopen開起來的然後我讀了這篇
http://ppt.cc/TG78
看起來xxx.so應該就是user level的proccess嗎?因為dlopen會請kernel用mmap把so掛到virtual memory?
作者:
askacis
(ASKA)
2014-10-08 02:43:00
rootfs裡都是userspace啊應該說除了kernel module之外…kernel 就是指你的uImage/zlmage一般virtual memory是1:3這樣切但整個linux不論什麼模式都會跑在virtual memory上bootloader會把kernel帶到記憶體上,然後自己解壓縮並初始化系統硬體之後開始執行userspace的第一個程式當然在執行之前會把 rootfs給掛載起來,這個程式會幫你跑inittab有的沒的東西inittab通常會跑一些rc的script幫你把userspace但服務常式叫起來,之後這些程式想要存取硬體資源就需要透過系統呼叫如open read write ioctl mmap等切回kernel space去處理,然後再把結果送回userspace基本上你userspace跑的記憶體位置會在userspace專屬的虛擬空間,核心跟核心模組則是跑在另外專屬的虛擬空間裡也就是所謂1:3的分法一個情境就是userspace想要開啟一個uart所以使用open系統呼叫切到核心,核心幫你處理好之後再返回fd給你,之後userspace使用read來讀資料此時再切到kernel,由kernel幫你處理硬體中斷以及幫您從uart硬體fifo讀資料回記憶體上再把這個資料複製給你userspace的指標並切回userspace,就可讀到資料~
作者:
RouterHsieh
(醉臥美人膝,醒掌天下權)
2014-10-08 06:05:00
看你的程式是跑在kernel space還是user space啊跑在這兩者基本上要呼叫的API差蠻多的,這應該很好區分吧wwwwww
作者:
zelkova
(*〞︶〝*)
2014-10-08 08:30:00
感謝幾位大大的幫忙<(_ _)>
作者:
KASUGAOSAKA
(å°æ¥)
2014-10-08 18:44:00
感覺他在問user space/kernel space
作者:
usoko
(time to face reality)
2014-10-08 20:23:00
通常用的語言就會不同了 例如kernel用C/C++ user用java但還是有很多firmware不能算在kernel space
作者:
iamnumbea1
(NULL)
2014-10-09 14:33:00
Kernel panic V.S segmentation fault
作者:
Lordaeron
(Terry)
2014-10-09 16:44:00
你的程式能直接存取kernel space 的資料,就kernel囉
作者:
loveflames
(咕啾咕啾魔法陣)
2014-10-09 17:39:00
只有kernel才能跑ring 0指令
作者: PICASSO1 (Pablo Picasso G.)
2014-10-09 22:09:00
askacis, good job!!....^^
繼續閱讀
[閒聊] 大家看看舊文章吧!! :)
csfgsj
[徵才]成功大學微奈米中心誠徵網頁程式設計師
marine1986
[徵才] Works Applications 14年秋季校園說明會
angelagrabis
Re: [請益] 關於未知的挑戰
idleidle
Re: [請益] 關於未知的挑戰
sugiuchi
[徵才] Web Developer
screaming
[徵才]Ruby on Rails(RoR) 開發者
jambug
[徵才] 旅知-徵正職Android工程師
maxmilian
Fw: [討論] 為何pda不會紅,智慧型手機卻會紅?
ggg12345
Re: [請益] 最近好不容易拿到一個offer...
linlin76
Links
booklink
Contact Us: admin [ a t ] ucptt.com