[閒聊] 十年前CIH怪物團隊的面試題目...
看板Soft_Job (軟體人)作者HowLeeHi (處處留心皆正妹)時間13年前 (2013/06/01 18:52)推噓29(29推 0噓 52→)留言81則, 42人參與討論串1/4 (看更多)
新血來潮去找了一下十年前看過的CIH在大同徵人的面試題目
十年後來看,居然只會個2題...0rz
覺得這些問題的知識在現今找相關工作應該還滿受用的吧.
引言開始
--
若要應徵Embedded Linux, 那你要有Linux System Programming的能力,
以下問題, 是個非常基本的問題, 若不能立刻回答, 那...你不用投履歷過來啦...
1. Linux下IPC方式有哪些!? share memory, signal, kill, FIFO
等等相關function有用過嗎!?
2. pthread有寫過嗎!?
3. ptrace function有玩過嗎!?
4. mmap, ioctl, select等等, 看到不想再看的functions有用過嗎!?
5. terminal的程式有寫過嗎!? 例如: 如何在console寫C程式把螢幕清掉.
6. Linux下如何做dynamically library, 以及dlopen function有用過嗎!?
7. 系統core dump時, 如何用工具去分析其stack tree, 以及相關資訊.
8. 什麼是euid, 同時 -rwsr-xr-x 1 root root 95564 Feb 19 2003 /bin/su,
裡面檔案屬性可看到s, 那是什麼!?
Ans:
euid: 執行程式時當下所具有的 effective uid
setuid: 執行時具有該程式owner的身份
9. 若Process 1拼命讀取一個檔案, 此刻時, Process 2卻把這個檔案殺掉,
這時Process 1還會讀取到正確資料嗎!? 為何!?
10. iopl以及ioperm function有用過嗎!?
11. 如何分析程式效率!? gcc的gcov或是gprof知道嗎!?
12. 我們都知道, 當進入run level 3, 系統會幫我們開啟TTY1-TTY6,
那我們要如何切到TTY31, 並可以執行shell打command!?
Ans:
修改 /etc/inittab檔案,新增 tty 的行數,
然後可以用 alt+方向鍵 或 alt+Fn (n=1~12) 或 chvt 指令來切換.
除了這3種,應該沒有別的方法了吧?
太多太多可以問的... 以上只是說明何謂對"Linux System Programming"熟悉,
何謂有能力的人!!
若要問Embedded Linux kernel porting以及研究Linux kernel, 那如下:
1. zImage開機過程到start_kernel, 所有詳細過程知道嗎!?
2. /dev/console, /dev/tty, /dev/tty0, /dev/tty1有何差異!?
3. 若CPU為ARM7 NOMMU, 假如DRAM硬體mapping位址從0x10000000到0x20000000,
請問bootloader如何修改, kernel要如何修改, 要改哪些檔案!?
4. 若要把一個binary檔案冠上ELF header, 會有哪些做法!?
5. 若要寫frame-buffer driver, SOC VGA要保留4 MB DRAM給video用,
請問kernel要如何修改!?以確保這4 MB保留給video用, kernel自己不會拿去用!!
6. 若要把MTD當成root filesystem, 那kernel command要下root=?????, 知道嗎!?
還有相關程式碼在哪裡!?
7. 若某段physcial address沒有mapping到virtual address, 那可以用什麼
function去mapping呢!?
8. Linux kernel的stack最大是多大!? jiffies每次加一, 系統時間過了多久!?
9, MTD driver, frame-buffer driver, UART driver, sysctl, network driver,
等等driver有寫過嗎!? 有的話, 我可以跟你仔細聊所有細節!!
10. /dev/kmem以及/dev/mem有何差異!?
11. 你有辦法把zImage從GZIP壓縮格式, 變成BZIP2, 然後哪些kernel source code
要改, 怎麼改!?
12. kmalloc以及vmalloc的差異!?
13. system call有寫過嗎!?
14. 有能力寫x86 boot-loader把zImage以及initrd載入後, 正常執行嗎!?
15. 關於initrd, 我們可知道root filesystem裡面跟目錄有看過一個檔案,
/linuxrc, 那是什麼!? 何時被執行, 相關程式碼在哪!?
16. 若要寫一個driver, 可以模擬keyboard動作, 讓TTY收到輸入字元, 如何寫!?
可以呼叫哪個Linux的function呢!?
17. MMU以及NOMMU Linux以及applications的memory mapping的方式有何不同!?
懶的再寫, 以上, 我一個人, 全部徹底研究過!! 若你幾乎完全不懂,
那你徹底沒能力porting kernel,
充其量, 只會Cross-Compile.
再附帶一提,
我大學時, 那時瘋狂寫C程式, 有寫過以下這個function:
int (*(*z(int (*(*f)(char))(int)))(char))(int)
{
}
基本上, 上面那個奇怪的function, 是非常非常沒營養, 很無聊, 沒有程式會這樣寫!!
在此, 別無他意, 只是說明, 我們這一群人, 會瘋狂努力研究產品, 技術,
比任何人更執著罷了!!
--
--
你的行動或許沒有意義,但你還是非做不可。
這不是為了改變世界,而是為了讓你成為不會被世界改變的那個人.
– 甘地(Mahatma Gandhi)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.59.250
※ 編輯: HowLeeHi 來自: 118.167.59.250 (06/01 18:53)
→
06/01 20:17, , 1F
06/01 20:17, 1F
推
06/01 20:24, , 2F
06/01 20:24, 2F
推
06/01 20:26, , 3F
06/01 20:26, 3F
→
06/01 20:26, , 4F
06/01 20:26, 4F
推
06/01 21:08, , 5F
06/01 21:08, 5F
→
06/01 22:18, , 6F
06/01 22:18, 6F
→
06/01 22:22, , 7F
06/01 22:22, 7F
推
06/01 22:32, , 8F
06/01 22:32, 8F
→
06/01 22:33, , 9F
06/01 22:33, 9F
推
06/01 22:50, , 10F
06/01 22:50, 10F
→
06/01 22:51, , 11F
06/01 22:51, 11F
→
06/01 22:52, , 12F
06/01 22:52, 12F
→
06/01 22:52, , 13F
06/01 22:52, 13F
→
06/01 22:52, , 14F
06/01 22:52, 14F
推
06/01 23:04, , 15F
06/01 23:04, 15F
→
06/01 23:04, , 16F
06/01 23:04, 16F
→
06/01 23:05, , 17F
06/01 23:05, 17F
→
06/01 23:14, , 18F
06/01 23:14, 18F
推
06/01 23:17, , 19F
06/01 23:17, 19F
→
06/01 23:20, , 20F
06/01 23:20, 20F
→
06/01 23:20, , 21F
06/01 23:20, 21F
→
06/01 23:27, , 22F
06/01 23:27, 22F
推
06/01 23:51, , 23F
06/01 23:51, 23F
推
06/02 01:21, , 24F
06/02 01:21, 24F
→
06/02 01:23, , 25F
06/02 01:23, 25F
→
06/02 01:24, , 26F
06/02 01:24, 26F
推
06/02 02:01, , 27F
06/02 02:01, 27F
推
06/02 02:16, , 28F
06/02 02:16, 28F
→
06/02 02:17, , 29F
06/02 02:17, 29F
推
06/02 02:42, , 30F
06/02 02:42, 30F
→
06/02 02:43, , 31F
06/02 02:43, 31F
→
06/02 02:44, , 32F
06/02 02:44, 32F
→
06/02 04:08, , 33F
06/02 04:08, 33F
推
06/02 04:29, , 34F
06/02 04:29, 34F
→
06/02 07:22, , 35F
06/02 07:22, 35F
→
06/02 07:23, , 36F
06/02 07:23, 36F
→
06/02 07:24, , 37F
06/02 07:24, 37F
→
06/02 07:24, , 38F
06/02 07:24, 38F
→
06/02 09:22, , 39F
06/02 09:22, 39F
推
06/02 10:47, , 40F
06/02 10:47, 40F
推
06/02 11:53, , 41F
06/02 11:53, 41F
→
06/02 11:54, , 42F
06/02 11:54, 42F
推
06/02 11:56, , 43F
06/02 11:56, 43F
推
06/02 12:03, , 44F
06/02 12:03, 44F
→
06/02 12:04, , 45F
06/02 12:04, 45F
→
06/02 12:16, , 46F
06/02 12:16, 46F
→
06/02 12:17, , 47F
06/02 12:17, 47F
※ 編輯: HowLeeHi 來自: 118.167.59.250 (06/02 12:23)
推
06/02 12:34, , 48F
06/02 12:34, 48F
推
06/02 12:55, , 49F
06/02 12:55, 49F
→
06/02 12:55, , 50F
06/02 12:55, 50F
→
06/02 12:56, , 51F
06/02 12:56, 51F
→
06/02 12:57, , 52F
06/02 12:57, 52F
→
06/02 12:58, , 53F
06/02 12:58, 53F
→
06/02 12:59, , 54F
06/02 12:59, 54F
→
06/02 13:00, , 55F
06/02 13:00, 55F
→
06/02 13:01, , 56F
06/02 13:01, 56F
推
06/02 13:22, , 57F
06/02 13:22, 57F
→
06/02 13:23, , 58F
06/02 13:23, 58F
→
06/02 13:23, , 59F
06/02 13:23, 59F
推
06/02 14:02, , 60F
06/02 14:02, 60F
→
06/02 14:03, , 61F
06/02 14:03, 61F
推
06/02 14:22, , 62F
06/02 14:22, 62F
推
06/02 14:25, , 63F
06/02 14:25, 63F
→
06/02 14:54, , 64F
06/02 14:54, 64F
→
06/02 15:23, , 65F
06/02 15:23, 65F
推
06/02 16:40, , 66F
06/02 16:40, 66F
→
06/03 00:07, , 67F
06/03 00:07, 67F
→
06/04 00:23, , 68F
06/04 00:23, 68F
推
06/04 11:52, , 69F
06/04 11:52, 69F
推
06/05 09:37, , 70F
06/05 09:37, 70F
推
06/07 12:00, , 71F
06/07 12:00, 71F
推
06/08 01:32, , 72F
06/08 01:32, 72F
→
06/11 11:35, , 73F
06/11 11:35, 73F
→
06/11 11:35, , 74F
06/11 11:35, 74F
→
06/11 11:36, , 75F
06/11 11:36, 75F
→
06/11 11:37, , 76F
06/11 11:37, 76F
→
06/11 11:38, , 77F
06/11 11:38, 77F
→
06/11 11:39, , 78F
06/11 11:39, 78F
→
06/11 11:40, , 79F
06/11 11:40, 79F
推
06/11 18:51, , 80F
06/11 18:51, 80F
→
07/11 16:06, , 81F
07/11 16:06, 81F
討論串 (同標題文章)
Soft_Job 近期熱門文章
32
103
PTT職涯區 即時熱門文章