當前位置:首頁 » 課程大全 » linux課程設計總結

linux課程設計總結

發布時間: 2020-11-28 13:17:12

A. linux的課程設計,急!!!!!!!

這么龐大的工作量
找專業的搞一兩天,起碼幾千塊。找學長學姐搞,幾百塊就可以了

B. 《Linux》課程設計

1、網路工程專業大學生職業生涯規劃書範文主要從自己對職業生涯規劃的認知、對自身優勢、劣勢的分析、職業目標的制定和實施階段、步驟等方面詳細闡述了自己在大學期,以及人生的職業生涯發展規劃。

第一 對職業生涯規劃的認知

大學生職業生涯規劃設計——設計未來

職業生涯規劃開始成為在人爭奪戰中的另一重要利器。對企業而言,如何體現公司「以人為本」的人才理念,關注員工的人才理念,關注員工的持續成長,職業生涯規劃是一種有效的手段;而對每個人而言,職業生命是有限的,如果不進行有效的規劃,勢必會造成生命和時間的浪費。作為當代大學生,若是帶著一臉茫然,踏入這個擁擠的社會怎能滿足社會的需要,使自己佔有一席之地?因此,我試著為自己擬定一份職業生涯規劃,將自己的未來好好的設計一下。有了目標,才會有動力。掌握在自己手中大學生職業生涯規劃設計書花開花又落,春去春又回。踏著時光車輪,我已走到20歲的年輪邊界。大學生職業生涯規劃設計書駐足觀望,電子、網路鋪天蓋地,知識信息飛速發展,科技浪潮源源不絕,人才競爭日益激烈,形形色色人物競赴出場,不禁感嘆,這世界變化好快。大學生職業生涯規劃設計書身處信息世界,作為一名軟體工程專業的當代大學生,我不由得考慮起自己的未來。在機遇與挑戰粉墨登場的未來社會里,我究竟該扮演如何一個角色呢?

水無點滴量的積累,難成大江河。人無點滴量的積累,難成大氣候。沒有兢兢業業的辛苦付出,哪裡來甘甜歡暢的成功的喜悅?沒有勤勤懇懇的刻苦鑽研,哪裡來震撼人心的累累碩果?只有付出,才能有收獲。未來,掌握在自己手中。大學生職業生涯規劃設計書由此,想起自己走過歲月中的點點滴滴,我不禁有些慚愧。我對自己以往在學業、文體、社團活動中的表現不是很滿意。我發現我自己惰性較大,平日里總有些倦怠、懶散,學習、做事精力不夠集中,效率不高,態度也不夠專注。倘若不改正,這很可能會導致我最終庸碌無為。不過還好,我還有改進的機會。否則,豈不遺憾終生?

一本書中這樣寫到:一個不能靠自己的能力改變命運的人,是不幸的,也是可憐的,因為這些人沒有把命運掌握在自己的手中,反而成為命運的奴隸。而人的一生中究竟有多少個春秋,有多少事是值得回憶和紀念的。生命就像一張白紙,等待著我們去描繪,去譜寫。

而如今,身為大學生的我們,在一天天消磨時光的日子裡,不如抓緊時間多學一些知識來充實自己,不如多在學校社團里加強個人鍛煉,充實自己的管理、說教、實踐能力。人的大學時光一生中也許就一次,不把握好,將來自己一定回追悔莫及。於是,再經過一番深思熟慮之後,我決定把自己的未來設計一下。

有了目標才能有動力!

第二 個人概況 (Personal Data)

畢業院校:杭州電子科技大學

專業:計算機系統管理,軟體工程(網路方向)

———————————

第三 在自己心目中的最理想職業目標和方向(按順序):

1、網路工程師(負責網路研究和管理工作)

2、電信、網路、IT企業、影視娛樂的管理人員

3.大專和高等院校的教師(網路方面的)

———————————

第四 自我認知與分析(Personal Valuation)

1.自己興趣愛好簡單分析:

業余愛好:讀書寫作、聽音樂、打羽毛球、外出旅遊。

喜歡的文學作品:巴金的《家》《春》《秋》、《圍城》、《駱駝祥子》等。

心中偶像:紹興周恩來、南陽諸葛亮、韶山毛澤東、香港李嘉誠。

2.自己優勢分析:我是一個認真而嚴謹的人,勤奮而負有責任感,對待問題善於和別人交流,認準的事情很少會改變或氣餒,做事深思熟慮,信守承諾並值得信賴。我依靠理智的思考來做決定,總是採取客觀、合乎邏輯的步驟,不會感情用事,甚至在遇到危機時都能夠表現得平靜。 我謹慎而傳統,重視穩定性、合理性;我善於聆聽並喜歡將事情清晰而條理的安排好。我喜歡先充分收集各種信息,然後根據信息去綜合考慮實際的解決方法,而不是運用理論去解決。我對細節非常敏感,有很實際的判斷力,決定時能夠運用精確的證據和過去的經驗來支持自己的觀點,並且非常系統有條不紊,對那些不這樣做的人沒有耐心。

3.自己劣勢分析:我非常固執,經常沉浸於具體的細節和日常的操作中,我看問題有很強的批判性,通常持懷疑態度,我需要時常的換位思考,更廣泛的收集信息,並理智的評估自己的行為帶來的可能後果。我過於認真,對某些事物過於嚴謹和挑剔;我非常有主見,時常會將自己的觀點和標准強加給別人,而且無視那些不自信的人的建議。自我感覺若能在以後多嘗試和接受新穎的、有創造性的方法,就能做出更有效的決策。

———————————

第五 職業分析(知彼)

1、軟體工程(網路方向)專業畢業與就業分析

u .學院培養目標:本專業培養有一定政治覺悟、有強烈的進取心、責任感、開拓精神的具有熟諳專業知識與技能,從事計算機網路工程安裝,系統操作管理與維護,網站建設與維護、計算機網路軟體編制,網路軟硬體產品的銷售與服務等工作,在具有計算機網路的公司、銀行、證券公司、海關、企事業單位及公、檢、法等部門,從事計算機信息安全管理,或信息安全產品銷售與服務等工作,從事計算機信息化管理,計算機輔助設計,ERP等相關軟體的維護、銷售、項目開發等工作。

u 主要課程::《大學英語》《計算機硬體基礎》《網頁腳本設計java script》《windows網路操作系統》《計算機網路及應用—華為3COM網路學院HCNE(1,2學期)》《VC++程序設計語言》《TCP/IP協議原理》《數據結構與演算法》《Oracle資料庫設計》《Java程序設計》《華為3COM網路學院(3~8學期)—高級路由技術與IPv6》《計算機網路組建與系統集成》,《基於WED的網路伺服器管理》,《Linux》《C腳本語言與動態網頁設計》《目錄服務》》《ARM嵌入式系統》,《高級交換技術》,《JSP》

就業方向:計算機和互聯網類的,計算機,網路工程和軟體工程方向的工作。

社會實踐:

2004年考入浙江工業大學計算機系統管理專業,

在浙江工業大學期間,曾參加過,計算機系統管理實訓,

網站設計實訓,資料庫設計實訓,工大恆生軟體實訓

2006年4月10日至6月10日在杭州學易科技有限公司實習,從事軟體測試工作

2006年考入杭州電子科技大學軟體工程專業

第六 職業定位(找准坐標)

職業:網路工程師(負責網路研究和管理工作)、電信、網路、IT企業、影視娛樂的管理人員、大專和高等院校的教師(網路方面的)

主要愛好傳統性的工作,喜歡整理、安排、規劃事務,對經營性事務也有興趣,樂於工作的籌劃、運作,細心、有條理。喜歡有條不紊的工作,要求嚴謹點的,

在工作中,往往對自己所從事的工作認真而執著,表現出旺盛的精力,喜歡工作一切都井井有條,喜歡有序地控制,希望一切都在自己的良好控制之下,喜歡能良好支配一切的活動,對過程很在意,但也樂於在工作中有所開拓和變革,有事業心。所適宜的工作環境:經營與事務交叉性工作,制度化的相當嚴謹的環境,但允許一定程度的自由發揮和創造性;有一定許可權,有支配權。我的成功標准:我的成功標準是個人事務、職業生涯、家庭生活的協調發展。只要自己盡心盡力,能力也得到了發揮,每個階段都有了切實的自我提高,即使目標沒有實現(特別是收入目標)我也不會覺得失敗,給自己太多的壓力本身就是一件失敗的事情。為了家庭犧牲職業目標的實現,我認為是可以理解的。在28歲之前一定要有自己的家庭。

———————————

第七 樹立目標計劃

短期計劃(大學計劃):2007年--2008年合格大學畢業,本科畢業證書,學士學位,並取得相關人才必備證書,如全國網路工程師,四級英語證書,還有一些網路認證等,在杭州有穩定的工作。

中期計劃,考公務員,在家裡,准備車准備房子

長遠計劃:事業有成,家庭幸福美滿.

———————————

第八 我的一些感想

回首昨天,曲折坎坷外,得失榮辱間,都是一個奮進勃發的身影,都是一份無悔無愧的心情。在學校期間,我不斷積極進取,立足扎實基礎,努力學習專業知識,成績優異。積極參與學校組織的各種活動,關心同學熱愛集體,具有良好的團隊協作精神,深知個人的知識與勤奮固然重要,但集體團隊的協作精神更應該得到發展。作為即將是2008年的畢業生,在這樣一個競爭激烈的社會里,不僅要掌握好專業知識,更加要做到與社會與時代接軌。因此,學習之餘,我注重知識與能力的平衡發展。

即將踏出校門的我談不上十分的成熟和足夠的經驗,但我有過人的膽識和自信心,正所謂:「是龍,就應該去大海搏擊,是鷹,就應該去長空翱翔。」在面臨人生的重大抉擇之際,我希望能加盟於貴單位,展示自己的才能,實現個人的理想與價值。

在長期的勤工儉學中我學會了如何自食其力、如何與人相處;而長期的暑期社會實踐則增強了我的分析問題和解決問題的能力。而深刻的理解力、敏銳的洞察力、獨立的思考、分析和判斷能力以及濃厚的科研興趣是我大學生涯中最大的收獲,當然最為重要的還是我學會了如何做人做事。

2、不少人都曾經這樣問過自己:「人生之路到底該如何去走?」記得一位哲人這樣說過:「走好每一步,這就是你的人生。」是啊,人生之路說長也長,因為這是你一生意義的詮釋;人生之路說短也短,因為你度過的每一天都是你的人生。每個人都在計劃自己的人生,都在實現自己的夢想:夢想是一個百花園,我只是百花園里一根小草,可小草也有一個大理想,於是我在這里暢想一下自己的職業生涯。 一、個人分析與角色評價:
1.個人分析:
別人說我性格偏於內向,但我認為我性格具有兩面性,我喜歡安靜的環境,喜歡一個人學習、看書。但有時卻喜歡熱鬧,和朋友在一起談天,給彼此帶來快樂,我會感覺很開心。喜歡畫畫,喜歡運動,尤其是打乒乓球。也喜歡路游,開闊眼界,陶冶情操。另外,我具有團隊精神和協作能力,比較強的創新意識,動手實踐能力及自學能力。但我有一個缺點,就是優柔寡斷。
2、角色評價:
父母:良好的溝通能力,善於自立;
老師:積極樂觀,有上進心,責任心,學習刻苦,遵守紀律;
同學:工作能力強,責任感強,能顧全大局。
二、社會環境和職業分析(十年規劃)
1、社會一般環境:中國政治穩定,科技發展層出不窮。
2、職業特殊社會環境:中國科技發展較晚,科技知識和科技產品大部分還源於國外,因此科技力量相對薄弱。
三、行業分析:
未來社會發展的最終趨勢將是集體一體化,這就註定網路的鏈接必不可少,現在電腦已普及到大眾用戶。網上購物,網路管理已成為人類交流的一種途徑。伺服器設備廣泛用於各大商場及商業媒體。但總的來說,其功能還不晚上。因此,全自動化技術將成為網路管理的任務所在。
四、職業目標分解與組合:
1、美好願望:事業有成,家庭幸福;
職業目標:網路管理,軟體開發;
成果目標:網路工程師
能力目標:學以致用
總體目標:完成本科,研究生的學習,進入思科網路公司或其他外資企業,成為高科技技術人才。
2、成功標准:
只要自己盡心盡力,能力也得到發揮,每個階段都有切實的自我提高,即使目標沒有實現,也不覺得失敗,決不氣餒!
五、大學期間學習計劃:
學習不僅是為了以後的工作,最重要的是它能讓你終身收益。我一直堅信「活到老,學到老」的格言。無論怎樣,學生最首要的任務就是學習。如果拋開學習,那麼一切都無從談起。在數字化、信息化的時代對計算機知識的掌握尤為必要。所以我對自己的大學生涯作出以下簡短設計。
大學二年級:

1、認真學好專業知識和其他基礎學科,堅信基礎的東西一定是最重要的。注意提高自身的基本素質,通過參加各種社團等組織,鍛煉自己的各科能力,同時檢驗自己的知識技能。
2、做一些兼職,社會實踐活動,同時在課余時間從事一些與自己未來職業有關的專業類的工作,進一步提高自己的責任感、主動性和掌
3、證書大突破:考取英語四、六級。全國計算機二級等級考試。以及其他相關證書。
大學三年級:
1、開始嘗試並學習寫簡歷、求職信,了解社會需求。搜集與本人目標工作有關的信息,並通過信息渠道嘗試和已畢業的校友交流思想 。開始畢業前的申請,積極參加招聘,在實踐中校驗自己的知識積累。
2、預習或模擬面試,積極利用學校提供的條件,了解就業指導中心體統的用人公司資料信息,強化求職技巧,進行模擬面試等訓練,盡可能作出較為充分准備的情況下進行演練,為自己以後找到理想的工作而努力。
3、獲得普通話等級證書及全國計算機三級等級考試。
大學目標規劃表:

六、為人處世方面:
1、改掉自己偶爾情緒急躁的壞毛病,千萬不和同學發生沖突。
2、最終身邊的每一個人,不管他(她)有什麼性格,學習優秀的人,感化惡搞的人,用一顆真誠的心去對待他們。不去爭名利,不計較利益得失,做一位合格的中國公民,為和諧社會的構建做自己力所能及的事。
3、抓住每一個鍛煉自己的機會,這樣的機會不是每個人都有,全力以赴完成班級和學院本職工作,為集體做一些力所能及的事,干出一點成績,不一定非要得到別人的肯定,重要是給自己找一個相信自己的理由。
七、生活方面:
大學是真正屬於自己的天地,在人的一生中這樣的時光不多,好好把握將會收益終身。
要多和家人及同學聯絡,告訴他們我們的快樂和不安。一路走來,是他們一直支撐著我們克服種種困難。尤其是上了年紀的父母,他們操勞了一輩子也許最想要得只是我們的一聲問候。我決不會讓他們失望。
八、職業生涯規劃實施方案存在的障礙:
目前,我經濟條件相對薄弱,作為未來的信息人士,我較少能接觸到高科技產品,且時間較少。
解決方法:
我在校一直勤工儉學,利用假期時間做兼職。盡量將我的大部分開支投資到學業中去。
九、本人對職業生涯規劃的看法:
俗話說:「欲行千里,先立其志。」規劃我的職業生涯,就相當於在人生之路上邁出一大步。一位哲人曾說過:「沒有目標的人,就像是漂泊的船隻,可能永遠到大不了壁岸。」寫過職業生涯規劃書,突然感覺像是在黑暗中看到了亮光,讓我有目標可循。進而信心百倍,動力十足的去實現它,這乃是人生的一大快事。我不再盲目的、無目的的學習,生活,而是有計劃、有步驟的生活。
十、結束語:
計劃固然好,但最重要的在於付出實施並取得成效。時時刻刻都不能忘記,任何目標,只說不做到頭來只是一場空。
路漫漫其修遠兮,吾將上下而求索。不經歷風雨怎能見彩虹。我們要時刻保持一顆清醒的頭腦。其實,每個人心中都有一座山,雕刻著理想、信念、追求、報負;每個人心中都有一片森林,承載著收獲、芬芳、失意、磨礪。一個人,若要獲得成功,必須拿出勇氣,付出努力、拼搏、奮斗、成功。機遇不相信眼淚,不相信頹廢,不相信幻影,只相信愛打拚的人!

3、 自己下載

C. 基於linux的課程設計有哪些

一 、需求分析
本程序的功能是:模擬車站售票廳內進程同步問題,售票廳任何時刻最多可容納20名購票者進入,當售票廳中少於20名購票者時,廳外的購票者可立即進入,否則需要在外面等待。每個購票者可看成一個進程。
功能的互斥與同步的實現:
1. 當有乘客進入售票廳購票時,售票員不能下班(進程的互斥);
2. 當沒有乘客購票時,則售票員下班(進程的互斥);
3. 乘客進入購票時,售票員給予售票(進程的同步)。

二、功能設計
本程序的設計思路和原理比較簡單,由兩個過程來實現售票員與乘客購票之間的過程。
1.售票員的操作過程
一開始時,設定當前售票廳內的人數為20,然後根據當天售票員到班情況來選擇售票員上班的人數,由於過程和操作相似,故這里選擇的售票員人數為0,1,2。
①當選擇售票員為0時,則提示當天沒有售票員上班,本售票站不進行售票操作;
②當選擇的售票員為1時,則提示當天只有一個售票員上班,故每次只能對一個人進行售票操作;
③當選擇的售票員為2時,則提示當天有兩個售票員上班,故每次能同時對兩個人進行售票操作。
2.乘客購票操作過程
①乘客先在售票廳外等候排隊購票;②當提示售票廳內人數不足20人時,則按排隊順序進入售票廳內進行購票動作;③乘客購票完後則離開售票廳內。
3實現過程具體分析
① 由於程序中的售票廳最大隻能容納20個人,所以,當售票廳內的人數進入超過20時,則程序會提醒用戶必須減少到人數小於等於20,不然程序不執行下去;
② 當進入售票廳內的人數與售票廳里原先的人數之和不足20時,會提醒用戶,售票廳內還能容納具體的人數;
③ 若在售票員處理完當前購票者的操作後,售票廳里人數為零;則售票員當天的售票任務結束,不再進行售票(這里只考慮這一理想情況)。
④ 當天如果選擇的售票員上班人數為0時,則當天不進行售票操作。

三、功能實現過程
1.設置兩個私有信號量:spys、ck,分別是售票員和乘客的。乘客的私有信號量初始值設為ck=0,售票員的初始值設為spys=1,以此來表示乘客的購票和售票員的售票操作的初始狀態,當沒有售票員時,則不能進行售票,當有乘客時,則售票員不能拒絕售票(這里排除票已售完的情況)。

1.實現流程圖

2.售票員與乘客之間的過程
這里是實現P、V操作
Begin
Semaphore Spys,ck ;//設置售票員與乘客的私有信號量
Spys=1,ck=0;//初始化信號量

cobegin
int spy;//售票員人數
process 售票員 //售票員執行的過程
begin
switch(spy){ //選擇售票員人數 ;
Case 0:goto S0;
Case 1: goto S1;
Case 2: goto S2;

}
S0: return 0;//無售票員上班,乘客無法購票;
End
S1:int P1( spys); //P操作
Hello( );//自定義的一個無返回值函數
售票操作;
售票結束;
提示下一位購票者;
Int V1(ck); //V操作
排隊等候進入售票大廳內;
進入廳內排隊等候購票;
購票後,離開售票大廳;
Goto S1;
End
S2:int P2( spys); //P操作
Hello( );//自定義的一個無返回值函數
售票操作;
售票結束;
提示下一位購票者;
Int V2(ck); //V操作
排隊等候進入售票大廳內;
進入廳內排隊等候購票;
購票後,離開售票大廳;
Goto S2;
End
四、程序結構

1.程序使用的頭文件和宏
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#define MAX 20//廳內最大能容納的人數

2.程序使用的函數和全局變數

int spys=1;//售票員的私有信號量
int spy;//選擇售票員的人數,最多隻能有兩個
int ck=0;//廳內購票者私有信號量
int n=MAX;
int x;//每次進入售票廳內的人數
int P1();//定義P操作函數,一個售票員執行的過程
int P2();//定義p操作,兩個售票員執行該過程
int j=0;//人多時,減少的人數
int V1();//V操作函數,一個售票窗口時購買者執行的過程
int V2();//V操作函數,兩個售票窗口時購買者執行的過程
void Hello();//輸出客套語句
void Introce();//本售票站人員介紹
3.主函數

int main()
{
Introce();

printf("請輸入今天上班的售票員人數:(最多2位):\n");
scanf("%d",&spy);

switch(spy){
case 0:{printf("sorry!由於今天假日,所以售票員不上班,請各位乘客改乘其他交通工具!\n");break;}
case 1:{ printf("今天就一個窗口售票哦!請乘客們排成一隊!謝謝合作!\n");P1();break;}
case 2:{printf("今天有兩個售票窗口啦!請乘客們按順序排成兩隊!謝謝合作\n");P2();break;}
default:{printf("本站員工有限,沒有多餘員工哦!");break;}
}
return 0;
}

D. 操作系統課程設計(linux)

我也遇到過這個問題,安裝的時候你沒有裝圖形用戶終端(似乎是叫回Xwindow)。之前有叫你打勾安答裝的。所以最後就只有命令行界面了(其實這個界面也可以解,但我不大會)。重回到開頭找到打勾選項去勾選相應圖形界面安裝!

E. LINUX操作系統課程設計:企業伺服器的配置與實現怎樣做

一般購買大品牌的伺服器才有相應的驅動程序:
硬體:4核CPU,4G的內存,主板帶RIAD,512G內存,

安裝與配置Web伺服器
Apache伺服器源代碼安裝:
http://httpd.apache.org
Apache RPM軟體下載:
http://updates.redhat.com
Apache模塊和MPM可使用類型的更詳細介紹:
http://httpd.apache.org/docs-2.0/mod/N
Apache對模塊的使用有兩種方法,一種是將其永久性地編譯Apache內核中,即採用靜態編譯;另一種是採取動態編譯,將其編譯成DSO(Dynamic shared object,動態共享對象)模塊,DSO模塊的存儲是獨立於內核的,可被內核在需要時調用,具體是由mod_so模塊提供的運行時配置指令(LoadMole)來實現的,若在編譯中包含有任何動態模塊,則mod_so模塊會被自動包含進內核。若僅希望內核能夠支持裝載DSO模塊,但不實際編譯任何動態模塊,則在編譯配置時就明確指定--enable-so配置參數。
還提供了多道處理模塊MPMs(multi-processing moles),編譯過程中必須包含一個且只能有一個MPM,編譯時系統會根據平台類型自動選擇使用默認的MPM,也可在configure命令行中配置:
--with-mpm=要使用MPM類型

模塊的指定方法:
1.靜態編譯模塊到內核中,如編譯包含mod-sll和mod_rewrite(去掉mod_)模塊:
./configure --enable-mole="ssl rewrite"或./configure --enable-sll --enable-rewrite
動態編譯模塊為DSO:
./configure --enable-mods-shared="ssl rewrite"或./configure --enable-rewrite=shared

模塊說明:
httpd -l //查看httpd進程中包含哪些模塊;
httpd -S //檢查虛擬主機的配置是否存在語法錯誤;
httpd -f //啟動httpd守護進程時,載入配置文件;
mod_deflate模塊允許支持此功能的瀏覽器,在請求的頁面內容發送前進行壓縮,以節少網路帶寬。
mod_vbost_alias模塊支持虛擬主要的動態配置。

chkconfig --level 235 httpd on
chkconfig --list httpd
service httpd start
service httpd restart
service httpd reload //重新裝載httpd.conf(不重啟伺服器)
./configure --prefix=/usr/local/apache2 --enable-so --with-mpm=prefork --enable-moles="setenvif rewrite deflate vhost_alias"
#apachectl start //啟動Apache伺服器;
#apachectl restart
#echo "/usr/local/apache2/bin/apachectl start">>/etc/rc.d/rc.local //自動啟動
#httpd -t //檢查配置文件httpd.conf
#apachect configtest //檢查配置文件httpd.conf
#ServerRoot apache安裝路徑 //設置伺服器的根目錄;
#ServerName 完整的域名[:埠號] //設置伺服器用於重定向(埠)和虛擬主機;
#Listen [IP地址]埠號 //告訴伺服器接受來自指定埠或者指定IP地址的某埠的請求;
Listen 80
Listen 61.186.160.104:8088
#ServrAdmin E-mail地址 //設置Web站點管理員的E-mail地址,當產生錯誤時(如指定的網頁找不到),伺服器返回給客戶端的
錯誤信息中將包含該郵件地址,以告訴用戶該向誰報告錯誤;
#DocumentRoot 目錄路徑名 //設置Web伺服器站點根目錄;
DocumentRoot /usr/local/apache2/htdocs
#ErrorDocument 錯誤號 所要顯示的網頁 //定義當遇到錯誤時,伺服器將給客戶端什麼樣的回應,通常是顯示預設置的一個錯誤頁面;
grep ErrorDocument /etc/httpd/conf/httpd.conf //httpd.conf中一些對不同錯誤的響應信息;
#DirectoryIndex index.php index.htm index.html default.htm //設置站點主頁文件的搜索順序;
#user nobody //設置伺服器以哪種(nobody)用戶身份來響應客戶端的請求;
#Group # -1 //設置伺服器以哪種(nobody)用戶身份來響應客戶端的請求;nobody用戶許可權較小。
#AddDefaultCharset GB2312 //指定默認的字元集;
#TimeOut //設置連接請求超時的時間(秒),超時將斷開;
#KeepAlive //用於啟用持續的連接或者禁用;KeepAlive On|Off
#MaxKeepAliveRequests //設置在一個持續連接期間允許的最大HTTP請求數目;
#KeepAliveTimeout //設置在關閉TCP連接之前,等待後續請示求的秒數;一旦接受請求建立了TCP連接後則開始計時;
#PidFile logs/httpd.pid //指定存放httpd主(父)進程號的文件名;

日誌配置命令:
#ErrorLog //指定伺服器存放錯誤日誌文件的位置和文件名;
#LogLevel //設置記錄在錯誤日誌中的信息的詳細程序;
emerg 緊急,系統將無法使用;
alert 必須立即採取措施;
crit 致命情況;
crror 錯誤情況;
warm 警告;
info 普通信息;
notice 一般重要情況;
debug 出錯級別信息;

http://127.0.0.1 //測試Apache是否正常運行
Test Page
This page is used to test the proper operation of the Apache Web server after it has been installed. If you can read this page, it means that the Apache Web server installed at this site is working properly.

#rpm -q httpd
#rpm -Uvh http-2.0.40-21.11.i386.rpm

目錄說明:
/etc/httpd/conf //Apache伺服器的配置文件httpd.conf
/etc/rc.d/init.d/ //Apache伺服器啟動腳本安裝,httpd
/var/www/html //Web站點根目錄;
/usr/bin //Apache軟體包提供的可執行程序安裝在該目錄下。
/etc/httpd/logs //日誌文件
htdocs //默認Web站點的根目錄,可通過配置文件httpd.conf進行設置或更改;
cgi-bin //CGI腳本目錄;
bin //apachectl啟動腳本會自動設置在某些操作系統下,正常運行httpd所需的環境變數;
httpd守擴進程被調用後做的第一件事就是讀取httpd.conf,並根據其配置項來配置當前Web伺服器;
httpd.conf 分為三部分(section),
第一部分為全局環境設置,主要用於設置ServerRoot、主進程號的保存文件、
對進程的控制、伺服器偵聽的IP地址、埠、要裝載的DSO模塊
第二部分是伺服器的主要配置指一位置;
第三部分用於設置和創建虛擬主機;
Listen 80 //Web伺服器綁定在80埠;
DocumentRoot //設置Web站點的根目錄等;
訪問控制指令:
<Directory /usr/local/*/htdoes> //<Directory>使指定的目錄及其子目錄有效;不可嵌套。目錄名可使用「*」或「?」通配符,
<Files ~「\.ht"> //作用於指定的文件,則不管該文件實際存在子哪個目錄,允許所有主機訪問位於任何目錄下的.ht開的文件
Order allow,deny //指定allow和deny語句,哪一個被執行;允許、禁止訪問主機。
Allow from all //允許所有主機訪問;也可以是IP地址。
<Files>
</Directory>

<Location /assistant> //針對URL地址進行訪問限制,不是文件系統;
Order deny,allow //
Deny from all
Allow from 61.186.160.105
</Location>

Order deny,allow //若主機沒有被特別指出拒絕訪問,則該資源被允許訪問。
Order allow,deny //若主機沒有被特別指出允許訪問,則該主要將被拒絕訪問該資源。
Order mntual-failure //只有那些在allow語句中被指定,同時又沒有出現在deny語句的主機,才允許訪問。若主機在兩條指
令中都沒有出現,則將被拒絕訪問;
*、? //*代表任意個字元,?代表一個任意的字元;
<DirectoryMatch> //指定目錄名時,可直接使用正則表達式;<Directory>若要使用正則表達式,則需要在正則表達式前加「~"
<FilesMatch> //可直接使用正則表達式來通配多個文件;

AccessFileName .htaccess //.htaccess分布式配置文件,在該文件中也可放置一些配置指令,以作用於該文件所在的目錄以及
其下的所有子目錄。搜尋.htaccess文件會降低系統性能;
<Directory />
AllowOverride None //禁止系統查找.htaccess文件;
Options FollowSymLinks //Options:控制在特定目錄中將使用哪些伺服器特性;
</Directory>

Options命令可用的選項:
None 不啟用任何額處特性;
All 除MultiViews之外的所有特性,默認設置;
ExecCGI 允許執行CGI腳本;
FollowSymLinks 伺服器允許在此目錄中使用符號連接。在<Location>段中無效
Includes 允許伺服器端包含SSI(Server-side includes)
IncludesN()EXEC 允許伺服器端包含,但禁用#exec和#exec CGI命令。但仍可以從ScriptAltase目錄使用#include虛擬CGI腳本;
Indexes 如果一個映射目錄的URL被請求,而此目錄中又沒有DirectoryIndex(如:index.html),那麼伺服器返回一個
格式化後的目錄列表;
MultiViews 允許內容協商的多重視圖;
SymLinksIfOwnerMatch 伺服器僅在符號連接與其目的目錄或文件擁有者具有同樣的用戶ID時,才使用它;
ExecCGI 擁有ExecCGI執行許可權;

prefork.c 控制Apache進程,對於使用prefork多道處理模塊的Apache伺服器;
<IfMole prefork.c>
StartServers 5 //設置伺服器啟動時啟動的子進程的個數;
MinSpareServers 5 //設置伺服器中空閑子進程(即沒有HTTP處理請求的子進程)數目的下限;
MaxSpareServers 10 //設置伺服器中空閑子進程數目的上限。若空閑子進程超過該設置值,則父進程就會
停止多餘的子進程;
MaxClients 150 //設置伺服器允許連接的最大客戶數;
MaxRequestsPerChild 0 //設置子進程所能處理請求的數目上限,0為不受限制;
</IfMole>
access_log //日誌文件用於記錄伺服器處理的所有請求;
CustomLog 指定access_log日誌文件的位置和日誌記錄的格式;
LogFormat 定義日誌的記錄格式;
LogFormat 日誌格式字元串 日誌格式名稱
LogFormat "%h %1 %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined;
LogFormat "%h %1 %u %t \"%r\" %>s %b" common;
LogFormat "%{Referer}i->%U" referer;
LogFormat "%{User-agent}i「 agent;
LogFormat logs/access_log common

LogFormat "%v %h %l %u %t \"%r"\ %>s %b" vhost
CustomLog logs/vhost_log vhost

%a 遠程主機IP地址
%A 本地主機IP地址
%h 遠程主機名
%H 請求協議
%l 遠程登錄名
%u 來自auth 的遠程用戶
%U 請求的URL路徑
%U{User-agent}i 用戶瀏覽器類型
%b 發送的位元組數,不包括HTTP標題
%t 請求的時間
%r HTTP請求的第一行的內容
%s HTTP響應狀態碼,200代表訪問成功,404代表文件未找到,403代表禁止訪問,401代表未授權訪問,400代表錯誤請求。
%m 請求方法
%v 服務於該請求的伺服器的ServerName
%V 伺服器的名字,取決於UseCanonicalName的設置
%{Host}i 返回HTTP請求的主機頭信息,可能含埠號信息
split-logfile </var/www/myweb/vhost_log //當所有虛擬機日誌都記錄在主站點日誌中時,使用此命令將日誌按虛擬主機名分組,拆分成一個個獨立的日
志文件,第個日誌文件採用"虛擬主機名.log「形式命名,其中包含了該虛擬主機所產生的日誌記錄;

容器與訪問控制指令:容器指令通常用於封裝一組指令,使其在容器條件成立時有效,或者用於改變指令的作用域。
<IfMoe ! mpm_winnt.c> //<IfMoe>用於判斷指定的模塊是否存在,若存在(被靜態地編譯進伺服器,或是被動態裝載進伺服器)則包含於
其中的指令將有效,否則會被忽略。可嵌套使用。
<IfMoe ! mpm_netware.c> //若要使模塊不存在時所包含的指令有效,只需在模塊名前加一個「!」即可,
User nobody
Group # -1
</IfMoe>
</IfMoe>

基於域名虛擬主機:
例:假設當前伺服器的IP地址為192.168.3.120,現要在該伺服器創建兩個基於域名的虛擬主機,使用埠為標準的80,其域名分別為www.myweb1.com和www.myweb2.com,站點根目錄分別為/var/www/myweb1和/var/www/myweb2,日誌文件分別放在/var/vhlogs/myweb1和/var/vhlogs/myweb2目錄下面,Apache伺服器原來的主站點採用域名www.myweb.com進行訪問。
#vi /etc/hosts //使用/etc/hosts進行域名注冊;
192.168.3.120 www.myweb1.com www.myweb2.com www.myweb.com

#ping www.myweb1.com //檢測域名解析是否正常;
#ping www.myweb2.com
#ping www.myweb.com

#mkdir -p /var/www/myweb1
#mkdir -p /var/www/myweb2
#mkdir -p /var/vhlogs/myweb1
#mkdir -p /var/vhlogs/myweb2

#vi /etc/httpd/conf/httpd.conf
Listen 80 //設置Listen指令偵聽的埠
NameVirtualHost 192.168.3.120 //基於域名的虛擬主機,如果對多個地址使用了多個基於域名的虛擬主機
則對每個地址均要使用此指令:NameVirtualHost IP地址:埠
NameVirtualHost * 當IP地址無法確定時,使用「*」通配任意的IP地址
<VirtualHost 192.168.3.120> //定義一個虛擬主機,VirtualHost的參數必須與NameVirtualHost後面所使用的參數保持一致。
ServerName www.myweb.com //當一個請求到時,伺服器會首先檢查它是否使用了一個能和NameVirtualHost相匹配的IP地址。如果匹配,就會
DocumentRoot /usr/local/apache/htdoes //就會查找每個與這個IP地址相對應的<VirtualHost>配置段,並嘗試找出一個ServerName或ServerAlias配置相
ServerAdmin [email protected] //與請求的主機名(域名)相同的,若找到,則使用該虛擬主機的配置,並響應其訪問請求。否則將使用符合這個
</VirtualHost> //IP地址的第一個列出的虛擬主機。在最前面的虛擬主機成為默認虛擬主機。
<VirtualHost 192.168.3.120>
ServerName www.myweb1.com
DocumentRoot /var/www/myweb1
DirectoryIndex index.php index.php3 index.html index.htm default.html default.html
ServerAdmin [email protected]
ErrorLog /var/vhlogs/myweb/error_log
TransferLog /var/vhlogs/myweb1/access_log
</VirtualHost>
<VritualHost 192.168.3.200>
ServerName www.myweb2.com
DocumenRoot /var/www/myweb2
DirectoryIndex index.php index.php3 index.htm index.html default.htm default.html
ServerAdmin [email protected]
ErrorLog /var/vhlogs/myweb2/error_log
TranferLog /var/vhlogs/myweb2/access_log
</VirtualHost>

<Directory /var/www> //對Web站點目錄設置訪問控制;
Options FllowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>

Apachectl –S //查查虛擬主機配置是否正確;
Aparhectl restart //重啟Apache伺服器配置生效;

例:
NameVirtualHost 192.168.168.10 //伺服器配有兩塊網卡,IP:內網192.168.168.10,外網61.186.160.104,在Internet網中,企業域名
NameVirtualHost 61.186.160.104 //www.example.com指向外網IP地址,在企業內網的DNS伺服器中,指向內網IP地址;現要求為來自內網
<VirtualHost 192.168.168.10 61.186.160.104> //外網的請求提供同樣的Web服務。(httpd.conf中設置)
DocumentRoot /www/server1
ServerName www.example.com
</Virtual>

例:
Listen 80 //伺服器:192.168.168.154,伺服器上創建兩個基於域名(主機名)的虛擬主機,域名:www.myweb3.com和www.
Listen 8080 //myweb4.com,每個虛擬主機的80埠和8080埠,分別服務一個Web站點,其站點根目錄分別為
// /var/www/myweb3-80、/var/www/myweb3-8080、/var/www/myweb4-80、/var/www/myweb4-8080。
NameVirtualHost 192.168.168.154:80 //www.myweb3.com的80埠作為默認Web站點。
NameVirtualHost 192.168.168.154:8080

<VirtualHost 192.168.168.154:80>
ServerName www.myweb3.com
DocumentRoot /var/www/myweb3-80
<VirtualHost>
<VirtualHost 192.168.168.154:8080>
ServerName www.myweb3.com
DocumentRoot /var/www/myweb3-8080
</VirtualHost>
<VirtualHost 192.168.168.154:80>
ServerName www.myweb4.com
DocumentRoot /var/www/myweb4-80
</VirtualHost>
<VirtualHost 192.168.168.154:8080>
ServerName www.myweb4.com
DocumentRoot /var/www/myweb4-8080
</VirtualHost>

基於IP地址虛擬主機:
#cd /etc/sysconfig/network-scripts //伺服器有兩張網卡eth0、eth1,eth0:192.168.167.157,
#cp ifctg-eth1 ifcfg-eth1:0 //eth1:192.168.167.156.eth0網卡用作了基於主機名的虛擬主機,
#vi ifcfg-eth1:0 //eth1通過IP別名方式,為其綁定多個IP地址,用於提供基於IP地址
DEVICE=eth1:0 //的虛擬主機。eth1綁定的第一張虛擬網卡的設備名為eth1:0,對應的
IPADDR=192.168.167.157 //配置文件為ifcfg-eth1:0,通過修改配置文件中的設備名和IP地址,
#ifdown eth1 //即可實現IP地址的綁定。
#ifup eth1:0
#ifup eth1
#ping 192.168.167.157
#ping 192.168.167.156

#vi /etc/hosts //192.168.167.156:www.example2.com,192.168.167.157:
192.168.167.157 www.example3.com //www.example3.com,試為其創建基於IP地址的虛擬主機,埠使用80
#mkdir -p /var/www/example2 //目錄分別為/var/www/example2、/var/www/example3,為這兩個域再增
#mkdir -p /var/www/example3 //8080埠,使其也能在8080埠發布另外的Web站點。Web站點根目錄分
///var/www/example2-8080、/var/www/example3-8080
#vi httpd.conf
Listen 80
Listen 8080
<VirtualHost 192.168.167.156:80>
ServerName www.example2.com
DocumentRoot /var/www/example2
</VirtualHost>
<VirtualHost 192.168.167.156:8080>
ServerName www.example2.com
DocumentRoot /var/www/example2-8080
</VirtualHost>

<VirtualHost 192.168.167.157:80>
ServerName www.exaple3.com
DocumentRoot /var/www/example3
</VirtualHost>
<VirtualHost 192.168.167.157:8080>
ServerName www.exaple3.com
DocumentRoot /var/www/example3-8080
</VirtualHost>

F. 設計一個linux打字訓練游戲,根據設計並實現的內容給出一個完整的課程設計

testdigit="39849232"
testchar="jdifjieajfg"
menu()
{
cat<<EOF
1.練習輸入數字
2.練習輸入字母
q.退出
EOF
}
whiletrue
do
menu
input=
read-p"輸入選項:"ch
case$chin
1)
echo$testdigit
read-t5-p"輸入上述數字:"input
if["$input"!="$testdigit"];then
echo"typeerror"
fi
;;
2)
echo$testchar
read-t5-p"輸入上述字母:"input
if["$input"!="$testchar"];then
echo"typeerror"
fi
;;
q|Q)
break;
;;
*)
echo"選項錯誤"
;;
esac
done

G. linux system課程設計的摘要怎麼寫

隨著Internet的日抄益普及,在網路上學會配置網路伺服器,有著非常重要的意義。綜合網路伺服器基於LINUX操作系統上,進行伺服器與客戶端之間的連接,實現伺服器為客戶端提供服務。其實訓內容包括linux伺服器搭建與測試:dhcp(主機IP的動態獲取)伺服器搭建與應用、dns(域名解析)伺服器搭建與應用、ftp(能夠實現網路文件傳輸的上傳和下載)
伺服器搭建與應用、www(能夠實現基於域名的虛擬機訪問)伺服器搭建與應用、網路訪問等等。綜合網路伺服器的功能強大,操作簡單,擴展性強,穩定性高;方便不同操作系統平台之間的移植;網站最大限度地實現易維護性和易操作性。

Linux是一套免費使用和自由傳播的操作系統,以其穩定性和靈活性而著稱。完善的內置網路是Linux的一大特點。Linux為用戶提供了完善的、強大的網路功能。作為一種網路操作系統,它在網路伺服器上得到了廣泛的應用。

H. 嵌入式Linux課程設計源代碼

Linux課程體系了解一下:
Linux雲計算網路管理實戰
Linux系統管理及服務配置實戰
Linux Shell自動化運維編程實戰
Linux雲計算網路管理實戰

大型網站高並發架構及自動化運維項目
網站安全滲透測試及性能調優項目實戰
公有雲運維技術項目實戰
企業私有雲架構及運維實戰
Python自動化運維開發基礎
Python自動化運維開發項目實戰

I. Linux課程設計實施方案

; boot.asm: ANOS fat12 軟盤啟動代碼
; Larry Li, 2005.2.25
; 2005.3.19
; 整理注釋

PosBuf equ 0700h
StackTop equ 07BF0h
BootStart equ 07C00h
;下面是內核的載入地址
SegKernel equ 0100h

RootBufEnd equ 02h
DataStart equ 04h
CursorPos equ 10h

; BOOT 會被 BIOS 載入到 00007C00h 處
org 7C00h

; 代碼段
segment .text
; 16 位代碼
bits 16

; start: 首先是跳過必須的 FAT 信息表執行後面的程序
Start:
jmp short Main
; 補一個位元組的空指令
nop

; FAT12 信息
; 只是文件系統的描述信息
OEMName db 'ANOSDISK'
; 扇區大小(位元組),應為 512
BytesPerSector dw 512
; 簇的扇區數,應為 2 的冪,FAT12 為 1
SectsPerCluster db 1
; 保留扇區,FAT12/16 應為 1
ReservedSectors dw 1
; FAT 結構數目,一般為 2
NumberOfFats db 2
; 根目錄項目數,FAT12 為 224
MaxRootEntries dw 224
; 扇區總數,1.44M 軟盤為 2880
TotalSectors dw 2880
; 設備類型,1.44M 軟盤為 F0h
MediaDescriptor db 0f0h
; FAT 佔用扇區數,9
SectorsPerFat dw 9
; 磁軌扇區數,18
SectorsPerTrack dw 18
; 磁頭數,2
NumberOfHeads dw 2
; 隱藏扇區,默認為 0
HiddenSectors dd 0
; FAT32 使用,0
TotalSectorsBig dd 0
;; 下面的內容為 FAT12/16 所有,和 FAT32 不同
; MS-DOS 使用,0
BootDrive db 0
; Windows NT 使用,0
Reserved db 0
; 附加的可啟動標志,29h
ExtendSig db 029h
; 卷標序列號,00000000h
SerialNumber dd 00000000h
; 卷標,11 位元組,必須用空格( 20h )補齊
VolumeLabel db 'ANOS FLOPPY'
; 文件系統標志,
FileSystem db 'FAT12 '

; Main: BOOT 主程序
Main:
; 初始化運行環境
xor ax,ax
mov ss,ax
mov bp,BootStart
mov sp,StackTop
push ss
pop ds

; LoadRootDirSector: 讀取 FAT12 根目錄項目扇區
LoadRootDirSector:
push ss
pop es

; 計算 ROOT 啟始邏輯扇區
mov al,[BYTE bp+NumberOfFats]
; FAT 表數目
mul WORD [BYTE bp+SectorsPerFat]
; 乘上一個 FAT 表佔用的扇區數
add ax,WORD [BYTE bp+HiddenSectors]
; 加上隱藏的扇區數
add ax,WORD [BYTE bp+ReservedSectors]
; 加上保留的扇區數
push ax
mov WORD [BYTE bp-DataStart],ax
; AX ROOT 項目的啟始邏輯扇區, 保存

; 計算 ROOT 扇區數
mov ax,20h
mov cx,WORD [BYTE bp+MaxRootEntries]
mul cx
mov bx,WORD [BYTE bp+BytesPerSector]
add ax,bx
dec ax
div bx
mov cx,ax
; CX ROOT 扇區大小
add WORD [BYTE bp-DataStart],ax
; 更新數據區啟始邏輯扇區
mul bx
; AX ROOT 總扇區位元組大小
mov bx,PosBuf
; BX 緩存啟始地址
add ax,bx
; AX 緩存尾地址
mov WORD [BYTE bp-RootBufEnd],ax
; 保存尾地址

pop ax
; 取出 ROOT 項目啟始邏輯扇區
call ReadSectors
mov si,bx
; [ES:SI] 根目錄內容

; SearchRootDirSector: 在根目錄項目中搜索內核文件
SearchRootDirSector:
; [ES:SI] 為當前目錄項
; 其頭 11 個位元組為文件名稱
cmp [es:di],ch
; 如果目錄項的第一個位元組是0,這就是最後一個目錄項
jz NotFound
push si
; 保存 SI rep cmpsb 時 SI 會改變
mov cx,11
; 比較前 11 個位元組
mov di,FileName
; [DS:DI] 要載入的內核名稱
rep cmpsb
; 比較 [ES:SI] [DS:DI]
pop si
; 恢復 [ES:SI] 為當前查對的目錄項
je FoundKernel
add si,32
; [ES:SI] 指向下一個目錄項
; 每個目錄項 32 位元組
cmp si,WORD [BYTE bp-RootBufEnd]
; 是否到根目錄項目尾
jb SearchRootDirSector

; NotFound: 沒有發現內核的處理
NotFound:
mov si,msgNotFound
call PutChars
jmp ReBoot

; FoundKernel: 發現內核後處理
FoundKernel:
; [ES:SI] 內核文件目錄項
mov ax,[si+01ah]
push ax
; 內核文件啟始簇(低)地址
; 目錄項偏移 26(1ah) 為文件項目啟始簇低地址
; 偏移 20(14h) 為高地址
; 由 FAT12 只是 12 位簇地址, 低地址 16 位足以

xor dx,dx
mov es,dx
mov ax,WORD [BYTE bp+ReservedSectors]
; DX:AX 第一個 FAT 表的啟始邏輯扇區
mov bx,PosBuf
; [ES:BX] 讀盤緩存
mov cx,WORD [BYTE bp+SectorsPerFat]
; CX FAT 表扇區數
call ReadSectors

pusha
mov si,msgLoadKernel
call PutChars
popa

mov ax,SegKernel
mov es,ax
xor bx,bx
; [ES:BX] 讀盤緩存, 內核載入地址

pop ax
push ax
; 文件的第一個簇

; LoadKernel: 載入內核
LoadKernel:
; AX 當前簇
call ReadCluster
pop ax
; 取當前簇
add bx,0200h
; [ES:BX] 緩存地址增加 512 位元組(1 個扇區)
; 下面開始查 FAT12 表項目
; 所以對於簇 n 其項目位於 n / 2 * 3 處
; n / 2 * 3 = n / 2 + n
; n 為偶, 在低 12 位
; n 為奇, 在高 12 位
mov di,ax
; BP DI 文件簇 n
shr di,01h
; DI n / 2
pushf
; 保存標志位, 供以後奇偶處理
add di,ax
; DI n / 2 + n
add di,PosBuf
; DI 加上 FAT12 表的啟始地址
mov ax,[di]
; AX 一個 FAT12 組, 兩個簇號
popf
; 根據 n / 2 奇偶判定
jc ShiftRight4
and ax,0fffh
; 取低 12 位
jmp IsTheEnd
ShiftRight4:
mov cl,4
shr ax,cl
; 高 12 位, 所以右移 4 位
IsTheEnd:
cmp ax,0ff8h
; 比較, ff8h - fffh 表示簇鏈末尾
jae ExecKernel
; 載入完畢, 跳轉到內核地址
push ax
; 復制下一簇號
jmp LoadKernel

; ExecKernel: 運行內核
ExecKernel:
pusha
mov si,msgLoadKernelOK
call PutChars
popa

mov ah,3
xor bh,bh
int 10h
mov WORD [BYTE bp-CursorPos],dx
; 將當前游標位置寫入 7df0h 7df1h
;
push word SegKernel
push word 00h
; 入棧供返回指令跳轉
retf

; BadDisk: 顯示錯誤啟動信息,然後重啟
BadDisk:
mov si,msgDiskError
call PutChars
; ReBoot: 重啟
ReBoot:
mov si,msgAnyKey
call PutChars
xor ax,ax
int 16h
; 等待鍵盤按鍵
int 19h
; 重啟

; ReadCluster: 讀磁碟文件簇
; 讀數據簇 AX 到 [ES:BX]
; CarryFlag == 1 錯誤
ReadCluster:
; 顯示一個 .
push ax
mov ax,0e2eh
int 10h
pop ax

dec ax
dec ax
; 修正, 簇號 - 2
add ax, WORD [BYTE bp-DataStart]
; AX 數據的啟始邏輯扇區
xor dx,dx
mov cx,01h

; ReadSectors: 讀磁碟扇區
; 讀 CX 個邏輯扇區(地址 DX:AX)到 [ES:BX]
; CarryFlag == 1 錯誤
ReadSectors:
pusha
push cx ; 保存讀取扇區數
; 首先要將 DX:AX 邏輯扇區號轉換為[驅動器號][磁頭號][磁軌號][扇區號]
; 根據:磁碟總扇區 = 磁軌數 * 磁頭數 * 扇區數
; 邏輯扇區 = (磁軌號 * 磁頭數 + 磁頭號) * 扇區數 + 扇區號 - 1
; (注意:實際在磁軌的扇區號是從 1 開始計數的,其他號從 0 開始)
; 那麼:扇區號 = 邏輯扇區 % 磁軌的扇區數 + 1
; 同樣:含磁頭計算的磁軌號 = 邏輯扇區 / 磁軌的扇區數
; 除掉磁頭數,就是:磁軌號 = 含磁頭計算的磁軌號 / 磁頭數
; 所以:磁頭號 = 含磁頭計算的磁軌號 % 磁頭數
xchg ax,cx ; AX <=> CX
xchg ax,dx ; AX <=> DX
; AX:CX 邏輯扇區
xor dx,dx ; DX 清零
div WORD [BYTE bp+SectorsPerTrack] ; 除高位
; 計算得含磁頭計算的磁軌號的高位
xchg ax,cx ; 臨時保存到 CX
; 此時余數 DX 與 AX 組成新數繼續低位除
div WORD [BYTE bp+SectorsPerTrack] ; 除低位
; 余數 DX 為 0 開的扇區號
inc dx ; 修正為 1 開
xchg cx,dx ; CX <=> DX
; CX 為扇區號
; DX:AX 為含磁頭計算的磁軌號
div WORD [BYTE bp+NumberOfHeads] ; 繼續除
; AX 為磁軌號
; DX(DL) 為磁頭號
mov dh,dl
; DH 磁頭號
mov dl,[BYTE bp+BootDrive]
; DL 驅動器號
mov ch,al
; CX bit 8-15(CH) 磁軌低 8 位
ror ah,2
; CX bit 6-7(AH bit 6-7) 磁軌高 2 位
or cl,ah
; CX bit 0-5 扇區
pop ax
; AL 操作扇區數目
mov ah,02h
; AH 02h 讀磁碟扇區
int 13h
; BIOS 13h 調用
; int 13h BIOS 功能
; 參數
; AH = 0x02 讀磁碟扇區到內存
; AL 需要讀出的扇區數量
; CH 磁軌(柱面)號的低 8 位
; CL 開始扇區(0-5位),磁軌號高 2 位(6-7)
; DH 磁頭號
; DL 驅動器號
; ES:BX 指向數據緩存
; 返回
; 出錯置 CF 標志位
; AH 狀態 = 0x01
; AL 讀取的扇區數
jc BadDisk

popa
ret

; PutChars: 列印字元串
; 入口參數 si
PutChars:
lodsb
or al,al
jz short Done
mov ah,0eh
mov bx,07h
int 10h
jmp short PutChars
Done:
retn

TheEnd:
db 0

msgLoadKernel db 'Loading ANOS',0
msgLoadKernelOK db 'OK!',0Dh,0Ah,0
msgNotFound db 'Cannot found ANOS kernel!',0Dh,0Ah,0
msgDiskError db 'Disk Error!',0Dh,0Ah,0
msgAnyKey db 'Press any key to reboot...',0Dh,0Ah,0

; 將 BOOT 映象對齊到 512 個位元組
times 496-($-$$) db 0

FileName db 'ANOS SYS',0,0

BootPartition:
db 0

; 啟動標志
BootSignature dw 0AA55h ; BootSector signature

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919