亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 61937 | 回復(fù): 71
打印 上一主題 下一主題

[Linux] Linux/UNIX系統(tǒng)編程,系統(tǒng)程序員成長的基石?(獲獎(jiǎng)名單已公布-2014-2-17) [復(fù)制鏈接]

論壇徽章:
49
15-16賽季CBA聯(lián)賽之福建
日期:2016-06-22 16:22:002015年亞洲杯之中國
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36雙魚座
日期:2015-01-02 22:04:33午馬
日期:2014-11-25 09:58:35辰龍
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龍
日期:2014-08-21 10:47:58
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-01-09 10:04 |只看該作者 |倒序?yàn)g覽
提示: 該帖被管理員或版主屏蔽

論壇徽章:
2
青銅圣斗士
日期:2015-11-26 06:15:59數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-07-24 06:20:00
65 [報(bào)告]
發(fā)表于 2014-01-24 14:09 |只看該作者
來晚了。。。 很早就注意到這個(gè)活動(dòng)。。。 但年關(guān)時(shí)各種忙。。。 一直在慢慢修改草稿。。。  今天貌似已經(jīng)從C/C++版塊的置頂里去掉了。。。   再不改完就沒機(jī)會(huì)發(fā)的樣子。。。
于是趕緊地。。。


這確實(shí)是一本不可多得的好書。
這本書給我的感覺與《Windows核心編程》的很類似:整體的、系統(tǒng)的認(rèn)識(shí)就靠它了。
并且本書的焦點(diǎn)就是Linux,而不像其他一些書籍的討論的是一個(gè)很寬泛的*nix。 對(duì)不知道APUE在說啥的同學(xué)(比如我自己)不妨先看看這本。

1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)

接觸電腦的契機(jī)首先是游戲。。。 然后才是編程。
不過十多年前網(wǎng)絡(luò)上的各種資料比現(xiàn)在少得多,尤其是中文資料更少,自己英語水平也很差。。。 在沒人領(lǐng)進(jìn)門的情況學(xué)習(xí)Linux/UNIX下的編程很難誒。。。
實(shí)際情況是老師教什么就是什么,于是最開始的編程環(huán)境自然是Windows。。。 根本就沒想過除了它之外還有沒有其他選擇。。。

本科的時(shí)候終于有人教了。但實(shí)際上沒學(xué)到什么東西。

上得臺(tái)面的原因可能是:確實(shí)有太多“周邊的”新事物要學(xué)。
比如編輯器,F(xiàn)在都還有印象的事情是進(jìn)了vi就不知道怎么退出。。。最終是在Windows上打開VS讀取與編輯虛擬機(jī)里的文件然后在虛擬機(jī)里編譯并運(yùn)行。。。
再比如編譯器。在這個(gè)課程很久之后才弄明白從編寫C/C++的源代碼到執(zhí)行直接到底發(fā)生了什么。更久之后才知道調(diào)試的情況。
沒有IDE只有一個(gè)“裸”gcc在那時(shí)候根本玩不轉(zhuǎn)。。。 調(diào)試什么的只能printf。。。
還要順帶學(xué)make。。。 只好復(fù)制粘貼然后不明所以地改到貌似能正確工作為止。。。
上不得臺(tái)面的原因可能是:課程老師吸引力不夠。。。

而在同一時(shí)間Windows那邊的課程已經(jīng)開始玩GUI了。
雖然編程的方式從“進(jìn)入main后一步兩步三步四步望著天執(zhí)行什么由程序員說了算”變到“進(jìn)入main后準(zhǔn)備好各種事情然后由用戶來決定該先執(zhí)行什么”會(huì)讓人一開始難以適應(yīng)。
但這是在學(xué)編程而不需要再去熟悉編程的“周邊”環(huán)境。并且相比之前那種黑框白字的程序來說要“絢”得多了。
于是精力就耗在這邊了。 總之就是沒入門。。。

有點(diǎn)跑題了,不過我覺得教育資源的缺少 —— 入門門檻高又沒老師(或師傅)帶領(lǐng),能留下的是少數(shù),又會(huì)導(dǎo)致下一代人的師傅更少 —— 是推廣難的一個(gè)很大原因。

之后為了避免依賴MSVC的特定行為所以在Windows下也會(huì)使用MinGW/MSYS,慢慢地對(duì)gcc,gnumake等工具比較熟悉了。
因?yàn)楫厴I(yè)論文需要實(shí)現(xiàn)一個(gè)可以分配可執(zhí)行內(nèi)存的庫于是終于逮到機(jī)會(huì)進(jìn)行Linux下的系統(tǒng)編程了。。。
看過APUE等書后可以編程,但依然感覺不得要領(lǐng),The Art of Unix Programming更是飄渺虛無。。。

最后在論壇的這個(gè)帖子里經(jīng)由雨過白鷺洲介紹知道了這本書。
因?yàn)闆]有太多機(jī)會(huì)進(jìn)行Linux系統(tǒng)編程于是至今都沒能仔細(xì)通讀這本書。
但在使用許多*nix下工具時(shí)出于好奇或是想確認(rèn)這些工具能像預(yù)期般工作時(shí)都會(huì)拿出來翻翻。
比如一些web服務(wù)器是否用了epoll,sendfile等系統(tǒng)調(diào)用,一些程序是否在完成必要工作后確實(shí)丟棄了root權(quán)限,setuid/setgid程序是如何工作的,以及capabilities等等。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討

因?yàn)樽约褐饕歉慵夹g(shù)方面的,所以對(duì)業(yè)務(wù)方面只是閑聊時(shí)聽聽。
這里說幾個(gè)自己聽到的也比較有趣的: 定制廣告機(jī)、基于雷達(dá)監(jiān)控的停車場(chǎng)管理系統(tǒng)、無盤啟動(dòng)。
它們都需要對(duì)Linux有很深的了解于是我們就無能為力了。。。
其實(shí)廣告機(jī)做過一段時(shí)間,感覺很吃力。。。 并且業(yè)務(wù)方面也停了于是就沒繼續(xù)做下去了。。。

3、對(duì)于新入門的Linux/UNIX系統(tǒng)編程人員來說,您有什么話對(duì)他們說?

嗯。。。 一句正確的廢話:“盡信書不如無書”。而且也不僅僅針對(duì)書。所有的文章、言論 —— 無論出自何人何處 —— 都應(yīng)該用作參考而不是代替自己思考。
對(duì)這個(gè)帖子也是這樣。這只是我自己的一些經(jīng)驗(yàn),肯定無法適應(yīng)于所有情況,甚至可能根本就是錯(cuò)的。
有了這樣的免責(zé)聲明后就可以胡亂瞎說一些與這本書有關(guān)的經(jīng)驗(yàn)。

首先,不加思考地將書里所教授的技術(shù)直接應(yīng)用到編程里是一個(gè)很不好的習(xí)慣。
特定于這本書的內(nèi)容可以用Daemon有關(guān)的章節(jié)作例子。
實(shí)現(xiàn)守護(hù)進(jìn)程時(shí)肯定需要這些技術(shù)。但要抵制住“因?yàn)樽约毫私饬诉@些技術(shù)于是就要將它應(yīng)用到自己所寫的程序里”的誘惑。
自己寫一些程序用于練手肯定沒問題。但要將它應(yīng)用到生產(chǎn)環(huán)境時(shí)可以考慮“該程序是否有必要自守護(hù)化”? 是否有方法可以將“守護(hù)化”作為一個(gè)可復(fù)用的功能?

其次,進(jìn)程本身以及進(jìn)程之間的繼承關(guān)系本身就是一種很有效的復(fù)用手段。
繼續(xù)以Daemon作為例子。
為每個(gè)程序?qū)崿F(xiàn)守護(hù)化的功能肯定是難以編寫與調(diào)試的。
將這些功能實(shí)現(xiàn)為一個(gè)程序庫并在每個(gè)程序里復(fù)用這個(gè)庫雖然可以減輕這兩個(gè)問題,但是就我自己的經(jīng)驗(yàn)來看這兩種方式實(shí)現(xiàn)出的程序?qū)τ脩魜碚f區(qū)別不大,依然是自守護(hù)化,依然難以使用與管理。

考慮另一種方式。
將原本打算實(shí)現(xiàn)守護(hù)化功能的程序當(dāng)作一個(gè)“普通程序”來實(shí)現(xiàn):保持在前臺(tái)、使用stdout,stderr、Ctrl-C退出等等。這樣不但利于實(shí)現(xiàn)也利于調(diào)試。它們專心實(shí)現(xiàn)自己打算提供的獨(dú)特的功能。
而守護(hù)化獲得的好處、日志記錄、崩潰重啟、端口管理等等都可以作為另一個(gè)(或一組)獨(dú)立的程序來實(shí)現(xiàn)。而它們專心實(shí)現(xiàn)這部分功能。
兩者一結(jié)合就可以用統(tǒng)一的方式管理許多服務(wù)程序的各個(gè)方面:啟動(dòng)腳本(不需要sysvinit,upstart,systemd混雜)、重啟策略、日志(目的地,rotate)、界面(CLI,GUI,Web)等等。

每個(gè)程序自己實(shí)現(xiàn)后一類功能不僅僅難以做到極致,而且還會(huì)引發(fā)其他問題。
upstart需要知道自守護(hù)化的程序到底fork了幾次。
daemontoolssupervisord還需要一些hack來對(duì)付自守護(hù)化的程序。
這是何苦。。。

類似地,書中還提到了inetd。
提供網(wǎng)絡(luò)服務(wù)并不一定需要使用socket有關(guān)的編程技術(shù)?梢跃帉懼皇褂脴(biāo)準(zhǔn)輸入輸出、環(huán)境變量、命令行參數(shù)的程序 —— 容易編寫調(diào)試 —— 并配合其他程的序來提供網(wǎng)絡(luò)服務(wù)。
inetd就是這樣一種“其他程序”。Ubuntu倉庫里提供的5個(gè)ident服務(wù)有4個(gè)都依賴inetd,只有1個(gè)是獨(dú)立實(shí)現(xiàn)ident服務(wù)。
CGI服務(wù)器也是這樣一種“其他程序”。

總之,除了“實(shí)打?qū)嵱才鲇病钡木幋a方式之外可以考慮充實(shí)自己的“工具箱”,并針對(duì)具體問題選擇合適的方式去實(shí)現(xiàn),而不是學(xué)會(huì)了錘子就將所有問題當(dāng)作釘子。
在程序里使用直接使用daemon,socket等等是一種直接的、硬的編程方式。
而daemontools,ident,CGI背后隱含的編程思想是另一種間接的、軟的編程方式。它有助于產(chǎn)生更簡單、容易編寫與維護(hù)也更穩(wěn)定可靠的程序。
抵制住“因?yàn)榱私饽撤N工具就想在程序里使用”的誘惑 —— 包括后一種軟的思想也是一種誘惑 —— 并針對(duì)具體問題進(jìn)行分析選擇。
以CGI為例。如果目的是為了提供動(dòng)態(tài)網(wǎng)頁,當(dāng)訪問數(shù)量上升后就會(huì)吃不消。這種情況下是不能選它的。而如果只是想避免使用ssh,讓一些管理用的腳本可以在瀏覽器里點(diǎn)擊就可以執(zhí)行,我覺得它就挺適合的。

論壇徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52雙子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午馬
日期:2013-10-18 21:43:38
2 [報(bào)告]
發(fā)表于 2014-01-09 12:00 |只看該作者
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
我早先做Windows下的開發(fā),后來逐漸轉(zhuǎn)為以Linux/UNIX系統(tǒng)為主。雖然操作系統(tǒng)不同,但很多思想、技術(shù)還是一樣的。架構(gòu)是關(guān)鍵,實(shí)現(xiàn)很重要。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
相對(duì)于Web、手機(jī)等,Linux/UNIX系統(tǒng)編程技術(shù)變化較少,不用不停的追逐新技術(shù),可以做得比較深入,是可以做得長久的。當(dāng)然“云”的流行,也會(huì)帶來一些挑戰(zhàn)。

3、對(duì)于新入門的Linux/UNIX系統(tǒng)編程人員來說,您有什么話對(duì)他們說?
技術(shù)基礎(chǔ)要扎實(shí),忌好高騖遠(yuǎn)

論壇徽章:
11
技術(shù)圖書徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
3 [報(bào)告]
發(fā)表于 2014-01-09 15:31 |只看該作者
還沒參與過這類活動(dòng)啊,今天抽空回復(fù)下

1. 您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
最開始在Sun Solaris下開發(fā)電信相關(guān)的業(yè)務(wù),后來轉(zhuǎn)入互聯(lián)網(wǎng)行業(yè),后臺(tái)服務(wù)端開發(fā)是基于SUSE Linux,接著又在CentOS開發(fā),而自己的電腦是Mac OS X(從10.6起就是根正苗紅的認(rèn)證UNIX了)。雖然這些系統(tǒng)都不盡相同,但作為系統(tǒng)編程必讀參考書,20多年前的APUE和K&R C依然能發(fā)光發(fā)熱十分堅(jiān)挺,其實(shí)Linux/UNIX系統(tǒng)編程的基石就從來沒有動(dòng)搖過。

2.Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
從職業(yè)生涯來看,系統(tǒng)編程處于進(jìn)可攻退可守的最佳位置,是內(nèi)核與應(yīng)用的橋梁。
向上可以做各種應(yīng)用軟件,但又不至于只會(huì)用框架或第三方庫,別人說epoll/kqueue網(wǎng)絡(luò)接入能力很NB,你雖然沒看過內(nèi)核代碼,但用過select/poll吧,從API用法來看,select/poll是無狀態(tài)的所以開銷大,再一想其實(shí)當(dāng)大量連接都比較活躍時(shí),它們的效率都半斤八兩。
向下可以做內(nèi)核開發(fā),畢竟曾經(jīng)很接近它了,你熟悉內(nèi)核向用戶提供服務(wù)的接口,從接口出發(fā)更容易理清邏輯,就像看其他程序代碼先找main函數(shù)一樣。
系統(tǒng)編程經(jīng)歷是職業(yè)發(fā)展的重要資本。

3.對(duì)于新入門的Linux/UNIX系統(tǒng)編程人員來說,您有什么話對(duì)他們說?
很多技術(shù)萬變不離其宗,尤其是Linux/UNIX系統(tǒng)編程,關(guān)鍵是先要搞好這個(gè)“宗”,對(duì)新手來說看書始終是提高的好辦法,而太多推薦資料會(huì)嚇?biāo)廊,所以只要真正看懂APUE和K&R C(運(yùn)行調(diào)試書中“過時(shí)”的代碼也是學(xué)習(xí)的關(guān)鍵),你就不再是新手了。至于其它,不存在什么捷徑,專注和重復(fù)就OK了。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2014-01-09 16:26 |只看該作者
本帖最后由 xike2002 于 2014-01-09 17:47 編輯

好活動(dòng),必須支持茂哥!

1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
答:做linux下的開發(fā)好多年了,稱得上是linux行業(yè)的一個(gè)老手了,但算不上個(gè)高手。
在這里和大家分享一下我的經(jīng)歷和經(jīng)驗(yàn),歡迎大家批評(píng)和討論。
(1)編程思想很重要。不管你在windows下編程還是在linux下編程,其實(shí)編程思想是一致的,這就是軟件設(shè)計(jì)的思想。
對(duì)于新手來說,他們很少會(huì)考慮到編程思想方面的事情,他們的目標(biāo)就是實(shí)現(xiàn)功能,而對(duì)于實(shí)現(xiàn)功能之外的東西,包括
易用性、健壯性等東西基本上不會(huì)考慮的。因?yàn)槲耶?dāng)年也是從這一步走過來,這只是在說一說當(dāng)年的親身體會(huì)。當(dāng)然軟件
設(shè)計(jì)的思想不是一天兩天就能夠形成的,但是你必須從一開始就培養(yǎng)自己的這種軟件編程的設(shè)計(jì)思想。
(2)選擇哪種編程語言其實(shí)不重要。很多程序員新手在選擇編程語言的時(shí)候往往會(huì)陷入猶豫之中,不知道該選擇C、還是
JAVA,或者是其它編程語言呢。其實(shí)選擇任何一個(gè)都沒關(guān)系的,只是方向不一樣罷了。我一直是在使用C做開發(fā),但是隨著
工作的不斷進(jìn)行,慢慢的使用腳本語言的頻率越來越高。其實(shí)腳本語言的強(qiáng)大是出乎我意料之外的,記得當(dāng)年剛參加工作
時(shí)一位前輩告訴我,在linux下,能用程序?qū)崿F(xiàn)的東西,幾乎都可以用腳本語言來代替。
(3)好的師傅很重要。如果能夠在子行業(yè)生涯初期遇到一個(gè)好的師傅,這簡直是一件多么美好的事情啊,當(dāng)然你也不能完全
把自己的成敗完全寄托在一個(gè)好的師傅身上,因?yàn)樽陨淼呐σ彩欠浅V匾摹?br />
2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
答:職業(yè)生涯規(guī)劃對(duì)于很多新手來說是意見很難的事情。因?yàn)楹苌儆腥四軌蛟诼殬I(yè)生涯初期就把自己的整個(gè)職業(yè)生涯規(guī)劃好。
職業(yè)生涯規(guī)劃其實(shí)是一個(gè)不斷完善的過程。下面我來談一談我的親身經(jīng)歷。
(1)團(tuán)隊(duì)氛圍很重要。加入一個(gè)好的團(tuán)隊(duì)和加入一個(gè)差的團(tuán)隊(duì)的區(qū)別是相當(dāng)大的。好的團(tuán)隊(duì)會(huì)幫助你迅速的成長,能把一個(gè)
新手變成一個(gè)高手。而一個(gè)差的團(tuán)隊(duì)能夠毀了一個(gè)高手。
(2)轉(zhuǎn)型也很重要。在合適的時(shí)間,你應(yīng)該考慮崗位的轉(zhuǎn)型。因?yàn)槟憧赡墚?dāng)一輩子的程序員的,在技術(shù)達(dá)到一定的級(jí)別的
時(shí)候,你可以考慮做方案。


3、對(duì)于新入門的Linux/UNIX系統(tǒng)編程人員來說,您有什么話對(duì)他們說?
答:前面已經(jīng)說了很多了,該說的差不多已經(jīng)都說了。
我想說的是努力學(xué)習(xí)的同時(shí)需要不斷的思考。
努力不一定會(huì)成功,但是不努力一定不會(huì)成功。
最后引用一句前幾天總結(jié)會(huì)上領(lǐng)導(dǎo)說的一句話:所有的偉大都是時(shí)間的函數(shù)。

論壇徽章:
459
亥豬
日期:2014-05-31 12:08:03亥豬
日期:2014-05-31 12:07:38亥豬
日期:2014-05-31 12:08:04亥豬
日期:2014-05-31 12:07:43亥豬
日期:2014-05-31 12:07:52亥豬
日期:2014-05-31 12:08:09亥豬
日期:2014-05-31 12:07:51亥豬
日期:2014-05-31 12:08:02亥豬
日期:2014-05-31 12:07:59亥豬
日期:2014-05-31 12:07:37亥豬
日期:2014-05-31 12:07:50亥豬
日期:2014-05-31 12:07:39
5 [報(bào)告]
發(fā)表于 2014-01-09 16:28 |只看該作者
就是感覺不方便...

論壇徽章:
1
天蝎座
日期:2013-12-06 18:23:58
6 [報(bào)告]
發(fā)表于 2014-01-09 16:30 |只看該作者
本帖最后由 crazyhadoop 于 2014-01-21 00:00 編輯

1.  斷斷續(xù)續(xù)的也有4年的Linux系統(tǒng)開發(fā)了,從開始的玩具小程序,到今天每天數(shù)億訪問請(qǐng)求的應(yīng)用開發(fā),也算是成長了很多,這里面有血有淚啊,不過也是一行一行的代碼敲過來,一個(gè)一個(gè)方案的做測(cè)試,除了業(yè)務(wù)的發(fā)展推動(dòng),另外一個(gè)非常重要的基石就是實(shí)實(shí)在在的看了那么幾本書,基本快翻爛了,只有實(shí)踐才能真的知道在各種服務(wù)壓力之下,性能的瓶頸在哪里?改進(jìn)的空間在哪里,改進(jìn)的方向在哪里。學(xué)而不思則罔,思而不學(xué)則殆。如果只看書不在各種環(huán)境下實(shí)踐,無法知道自己所學(xué)有多大的威力。如果沒有書的指導(dǎo),可能無法游刃有余的理清思路,探索方向。真是那幾本寶典指導(dǎo)了我如何去做。

2.現(xiàn)在看起來做移動(dòng)端的可能比較火熱,但我想說的是,其實(shí)無論現(xiàn)在什么發(fā)展最火,服務(wù)端永遠(yuǎn)是充滿挑戰(zhàn)的地方,現(xiàn)在的服務(wù)挑戰(zhàn)性相比較以前更大了,各種大數(shù)據(jù),高并發(fā),可以做的事情也更多了。這對(duì)個(gè)人的要求也越來越高,但是實(shí)際上用到的知識(shí)還是Linux系統(tǒng)開發(fā)的那些基礎(chǔ)知識(shí)外加一些高效的數(shù)據(jù)結(jié)構(gòu)。原來的進(jìn)程可能只在一臺(tái)機(jī)器上,現(xiàn)在分散到多個(gè)機(jī)器上而已。小處著手,做的工作更細(xì)致了。打好基礎(chǔ),就可以坐等萬丈高樓平地起了

3.

這本書可以說是相當(dāng)實(shí)用,極力推薦,我看過一部分英文章節(jié)的內(nèi)容。感覺很贊。既可以當(dāng)參考書又可以當(dāng)教材。這本書比高級(jí)UNIX環(huán)境編程(apue)更適合學(xué)習(xí)*nix的系統(tǒng)編程。
首先這本書非常詳盡,比apue更適合入門,作者的例子也多。更容易實(shí)際操作,用以練習(xí),難度循序漸進(jìn),不像apue有點(diǎn)高大上。每個(gè)章節(jié)分的比較清楚?梢园葱蜷喿x,也可以按需閱讀。語言簡練,條理清晰,代碼示例簡單明了,新手可以輕松敲打代碼,試驗(yàn)效果。這本書讀敲下來功力應(yīng)該是相當(dāng)了得了。

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2014-01-09 17:11 |只看該作者
不懂,來看看
就當(dāng)學(xué)習(xí)吧

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2014-01-09 17:37 |只看該作者
看過一些這本書的英文版本,記得它是amazon上五星級(jí)的圖書,被liunx/unix工作者大力推薦的好書,也是一本非常好的書,和APUE是一對(duì)好伙伴。在linux工作多年,算不上什么高手,但是有一點(diǎn),就是很多時(shí)候在liunx學(xué)到的東西可以一勞永逸,不像window上的技術(shù),變化多,跟著學(xué)習(xí)都學(xué)不過來?傊痪湓,liunx直得程序員去花時(shí)間學(xué)習(xí),它就想vim一樣會(huì)讓你體驗(yàn)都無窮樂趣。

論壇徽章:
2
CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34處女座
日期:2013-12-27 22:22:41
9 [報(bào)告]
發(fā)表于 2014-01-09 23:45 |只看該作者
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
       大一暑假買了APUE,斷斷續(xù)續(xù)到大三下學(xué)期才看完。畢業(yè)后從事更底層的開發(fā)工作,還算是按步就班走過來的吧。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
       系統(tǒng)編程還沒有一個(gè)很好的定義吧。我的理解理解是,有最大的靈活度控制資源、只依賴于操作系統(tǒng)與基本庫的抽象
       的編程。從市場(chǎng)職位情況上考慮,用大白話說,可能就是服務(wù)器后端開發(fā)。與之相對(duì)的是各種Java/Python/Ruby項(xiàng)
       目,特征是抽象層次高,基本跨平臺(tái)。這也是系統(tǒng)編程給人靠近底層感覺的原由。

       如果堅(jiān)持一路走下來,職業(yè)生涯與其它方向并無二致。如果僅將此作為過渡的話,后期職業(yè)生涯的選擇倒挺多。系統(tǒng)編程
       正好卡在中間,可上可下。現(xiàn)在互聯(lián)網(wǎng)如火如荼,越上層反倒越吃香。

3、對(duì)于新入門的Linux/UNIX系統(tǒng)編程人員來說,您有什么話對(duì)他們說?

      o 有全局觀,認(rèn)清層次。語言層(標(biāo)準(zhǔn)),庫層,系統(tǒng)層(API),平臺(tái)層(ABI)。
      o 學(xué)一門動(dòng)態(tài)語言;不要瞧不起Java之流。
      o 掌握一點(diǎn)內(nèi)核知識(shí),但求流程,無需細(xì)節(jié)。
      o 不要錯(cuò)過開源寶庫。
      o 保證自己的代碼量。

論壇徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辭舊歲徽章
日期:2015-03-03 16:54:152015年亞洲杯之烏茲別克斯坦
日期:2015-03-27 14:01:172015年亞洲杯之約旦
日期:2015-03-31 15:06:442015亞冠之首爾
日期:2015-06-16 23:24:37IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-07-01 22:20:002015亞冠之德黑蘭石油
日期:2015-07-08 09:32:07IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-29 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-29 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-10-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-10-11 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-11-10 06:20:00
10 [報(bào)告]
發(fā)表于 2014-01-10 02:50 |只看該作者
本帖最后由 forgaoqiang 于 2014-01-24 13:24 編輯

非常佩服精通Linux/Unix系統(tǒng)編程,不但對(duì)操作系統(tǒng)要有了解也有很深的C/C++水平,當(dāng)前也只略微看過《Linux程序設(shè)計(jì) 第四版》,大部分工作還停留在使用shell來完成的水平上,雖然經(jīng)驗(yàn)不錯(cuò),也分享下自己的拙見,順便圍觀CU大牛。

1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)

從大學(xué)開始,使用Linux系統(tǒng)有6年左右了,大多數(shù)時(shí)間都在使用而不是開發(fā)。最近也開始寫一些簡單的小程序,以滿足定制的產(chǎn)品的需求。一開始使用shell進(jìn)行簡單的操作,后來遇到性能和保密的問題(有點(diǎn)猥瑣,C語言編譯后的確是比明文的Shell安全很多),開始使用C語言進(jìn)行重構(gòu)。
大多數(shù)操作都是文件系統(tǒng)中文件的讀寫,字符串的操作,然后進(jìn)行Socket通訊,只會(huì)這一些也不敢說懂Linux編程。
大多數(shù)時(shí)間都在OpenWRT上做開發(fā)(可以理解成Redhat精簡版本,是個(gè)路由操作系統(tǒng)),上面的C標(biāo)準(zhǔn)庫雖然不完整,但是基本的函數(shù)還是能夠正常使用的,配合專有的UCI(Unified Configuration Interface)可以快速高效的讀寫配置文件。
網(wǎng)絡(luò)數(shù)據(jù)傳輸采用了JSON的編碼方式,配合openwrt上的 jshn 工具(json編解碼C程序),數(shù)據(jù)編碼傳輸問題也解決了。
現(xiàn)在對(duì)Linux系統(tǒng)上基本的文件讀寫、字符串的操作比較了解,以后可能會(huì)考慮使用C++來做。


2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討

Linux/UNIX系統(tǒng)因?yàn)槠溟_源的特性,很多需求完全可以通過修改源碼或者自己進(jìn)行編寫,這一方面無疑非常的便利。而且對(duì)于國內(nèi)的程序員或者開發(fā)公司來說,大量的開源項(xiàng)目也是吸引他們的重要原因,很多需求只要找到一個(gè)合適的開源項(xiàng)目,然后去研究一下,少量修改定制就能夠成為自己的產(chǎn)品,因此個(gè)人認(rèn)為Linux上的編程還是非常有前途的。
至于Linux/UNIX系統(tǒng)編程來說,主要面向系統(tǒng)本身的功能進(jìn)行編程開發(fā)的話,可能需求沒有那么強(qiáng)烈,這些工作完全可以等待Linux開源社區(qū)來完成,然后加以利用。
因?yàn)長inux系統(tǒng)編程本身并不需要完全理解Linux內(nèi)核,也不需要完全弄明白系統(tǒng)是如何工作的,在其提供的大量的開放API上進(jìn)行“二次開發(fā)”即可,難度也不是太大。、開源的路由操作系統(tǒng)都在快速發(fā)展。極路由等廠家也是采用了Openwrt這樣的linux系統(tǒng)然后在其上進(jìn)行開發(fā)。Linux/UNIX系統(tǒng)編程職業(yè)生涯的話要往某個(gè)方面進(jìn)行精細(xì)發(fā)展,精通于特定領(lǐng)域而不是范范整個(gè)系統(tǒng)各方面的內(nèi)容。



3、對(duì)于新入門的Linux/UNIX系統(tǒng)編程人員來說,您有什么話對(duì)他們說?

①找本好些的書吧,以前我看得是《Linux程序設(shè)計(jì) 第四版》,感覺還算是不錯(cuò),各個(gè)方面都有涉及,前幾章也對(duì)shell進(jìn)行了概述性講解,后面對(duì)系統(tǒng)各個(gè)模塊進(jìn)行了講解,也涉及到mysql這樣開源數(shù)據(jù)庫的開發(fā),現(xiàn)在來看這本新書《Linux/UNIX系統(tǒng)編程手冊(cè)(上、下冊(cè)) 》也是非常不錯(cuò)的選擇。
②多看些Linux本身以及其實(shí)用工具的源碼,這些都是精挑細(xì)選,幾乎無法再優(yōu)化的經(jīng)典之作。比如當(dāng)時(shí)我看grep的源碼的時(shí)候就感到驚嘆,本以為這么強(qiáng)大的工具肯定有龐大的代碼量,后來發(fā)現(xiàn)里面很多精妙的設(shè)計(jì),查看優(yōu)秀的程序設(shè)計(jì)源碼真的能快速提高自己的編程思想。
③多做些筆記吧,除了傳統(tǒng)的學(xué)習(xí)筆記要按照功能/類型劃分,也要整理自己的代碼庫,形成專屬代碼庫,不是每一次每一個(gè)功能都需要從頭寫的,需要的話快速找到自己需要的函數(shù)封裝,后期能夠快速完成開發(fā)。
④能找個(gè)“高手”做指導(dǎo)最好了,我當(dāng)時(shí)完全自己生硬的緩慢學(xué)習(xí),很多時(shí)候一個(gè)簡單的問題網(wǎng)上查找半天,甚至多日后才突然明白,這樣學(xué)習(xí)起來太痛苦也太沒效率,要是有個(gè)師傅帶,一定要珍惜。

您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP