Time of Update: 2018-12-05
最近,一直在作libc的移植,上網查了很多資料,找到很多libc,如glic,uclibc,diet libc,newlib等,但除了newlib以外,都和linux等系統緊密聯絡,移植的工作量太大。newlib可以在很多的平台和作業系統中使用,移植的時候只要提供十幾個必須由作業系統才能實現的函數即可。關於newlib的資料,大多數都是和交叉編譯相關的,因此我照著資料,用了很多方法,最後終於在cygwin下,成功的編譯出了newlib,但卻是用於arm平台的。用於386平台的,始終沒有編譯成功(
Time of Update: 2018-12-05
經過幾天的努力(從5月30號晚上,到今天,6月2號下午3點半),lwIP已經在MyOS上成功編譯並運行,可以ping通了。比我預期的提前了很多。接下來的時間,應該會整理一下代碼。把網卡驅動的介面定下來,減小協議棧與網卡驅動之間的直接依賴,而是由系統自動檢測和配置。同時,還要測試一下UDP、TCP協議。然後,設計系統的BSD風格通訊端。等網路部分完成之後,應該會實現一個虛擬檔案系統。好像還很遙遠。呵呵。
Time of Update: 2018-12-05
作業系統一般分為宏核心與微核心兩種。其中宏核心具有執行效率較高的特點,而微核心具有很好的可移植性。 宏核心中對於系統調用由於是直接調用相應服務的函數,不存在處理序間通訊及進程切換的開銷,因此效率較高。但正由於各個模組之間的直接調用,導致模組之間出現了緊耦合,不利於模組之間的獨立。雖然Linux已經移植到了現今絕大多數的平台之上,但僅從系統結構的角度來說,微核心無疑更好一點。
Time of Update: 2018-12-05
學過C語言的都知道,已經初始化的全域變數是放在.data段中的,沒有初始化的全域變數是放在.bss段中的。一直以來我也是這麼認為的,但在開發MyOS的過程中,一些明明已經初始化的資料在執行時得到的卻是隨機值,使我對這個說法產生了懷疑。例如,在MyOS的VBE驅動中,背景色明明設成了黑色,可系統啟動後螢幕卻是紅色的。昨天,在真機上調試最新的MyOS代碼時,任務調度老是調度不到別的線程去,只有一個Idle線程在跑。輸出了很多的調試資訊,可就是找不到哪錯了。最後發現,系統的確是進行調度了,可被選中的新
Time of Update: 2018-12-05
<html><body><script> function smartOptionFinder(oSelect, oEvent) { var sKeyCode = oEvent.keyCode; var sToChar = String.fromCharCode(sKeyCode); var fromIndex = oSelect.selectedIndex + 1; for(var i =
Time of Update: 2018-12-05
public static double f0(int n) { if (n == 0) return 0; if (n == 1) return 1; double a1 = 0; double a2 = 1; double temp; for (int i = 0; i < n; i++) { temp = a2;
Time of Update: 2018-12-05
上大學的時候就開始接觸Linux了,但和別的人一樣只是照著網上的文章按照一下,然後過兩天就卸載了。很來自己學習作業系統的時候,對Linux瞭解的才多了一點。加上工作中有時也需要在Linux上作點事情,所以,漸漸對Linux的興趣多了起來。 去年因為自己開發作業系統的原因,需要gcc,所以就用虛擬機器裝了Ubuntu,安裝非常的方便,裝上之後,感覺很也很不錯。後來又安裝了Ubunut6.10。後來看到Ubuntu7.04中要加入KVM和3D案頭,就一直在期待著。因為我一直希望自己完全轉到Linux
Time of Update: 2018-12-05
第二章 固本清源 ------ Web 開發談談 2.1 對象三種不同形態和運作模式 屬性 - 行為模式 : 指一個對象同時擁有屬性定義和方法定義。絕大多數對象都運作在這種模式上。 屬性模式 : 指一個對象只擁有屬性定義,鋪之以相應的 setter 和 getter 方法。 Java 規範 給這種模式下的對象取了一個統一的名字:JavaBean 。 JavaBean 可以作為資料
Time of Update: 2018-12-05
前一段時間一直在忙於編寫用例,這著實讓我體味了一把編寫好的用例的不易。用例代表著系統中各個項目相關人員之間就系統的行為所達成的契約。在物件導向的需求分析中,得到系統的功能需求最方便的方式就是識別用例,而且這些用例扮演著很重要的角色(看看RUP吧)。因此我們將著重討論在作為系統功能性需求的用例,而不涉及其它種類的用例。也許你應該抽空閱讀一下這篇文章《用例建模指南》。你將對用例的編寫有一個全面的認識。而下面將給你更詳細的建議: 1. 用例之間要保持獨立。不要讓用例之間存在依賴關係和前後順序。2.
Time of Update: 2018-12-05
把Newlib移植到MyOS後,用printf測試的時候,總有問題。上網尋找了很多資料,最終找到一篇關於Newlib的printf的文章,作者在移植newlib的時候,碰到了和我一樣的問題。於是,昨天晚上給作者發了封郵件,希望能夠得到協助。這時我第一次和老外發郵件,真有點擔心自己的英文水平那麼爛,老外能不能看懂。為了少暴露問題,所有就寫了封很簡短的郵件,發了出去。今天早上來公司以後,收到了回複。從這一點上,我很喜歡老外。
Time of Update: 2018-12-05
文章目錄 沒有找到msvcr71.dll因此這個應用程式未能啟動-我的解決方案:前天重裝了系統,啟動原來的Eclipse(已安裝MyEclipse外掛程式),首先報jdk的錯,通過設定java環境變數JAVA_HOME,path,classpath輕松搞定;但啟動SQLDEVELOPER
Time of Update: 2018-12-05
最近在看《Joel說軟體》,這傢伙插科打諢的講述風格著實讓我耳目一新,在愉悅中借鑒些可貴的經驗還是蠻享受的。 在書中有一節提到了對於原型的看法,Joel認為原型不能搞得太複雜,稿紙原型是最好的方式。特別是介面的布局、色調這些東西完全可以用鉛筆潦草的表示。當然Joel說得有一定的道理,但是這並不能適用於任何類型軟體的開發,就像Joel在書中提到的XP、RUP這些方法學不能適用於遊戲、嵌入式的開發一樣。
Time of Update: 2018-12-05
前些天花了點時間一直了mpeg2decode,可映像就是顯示不出來。氣得我把代碼刪了。今天又移植了一遍,不過並沒有像上次一樣直接添加映像顯示的代碼,而是改成了printf,這樣如果函數被調用的話,就會有東西打出來。結果,打了有幾十屏,眼睛都花了。看來是對了,於是把代碼改成了對映像的處理,結果還是沒顯示,看來是自己的影像處理錯了。於是,看了一下核心代碼,才發現畫點後,忘了更新螢幕,所以映像才沒顯示出來。加入兩行代碼後,程式正確了。不過處理的速度實在不敢令人恭維,一個點一個點的顯示。後來,就改成了先
Time of Update: 2018-12-05
前幾日,我將《思考詳細設計》貼到了python-chinese maillist 裡面,引起了進百封信的討論。這是在我意料之中的,我的本意就是以我的文章為引子,引出一些好的建議和探討出來。而出乎我的意料的是,這次討論也沒有擺脫“開題——跑題——咬文嚼字的爭論——開始人身攻擊”的宿命。 不過討論與爭論中還是有些觀點值得大家分享的,所以在這裡整理羅列出來。 wang yingqi同學提倡代碼文檔化這種方式,他如是說:
Time of Update: 2018-12-05
11月末,在領導的關照下,有幸參加了公司組織的所謂產品開發流程進階實務培訓,從簡介上看是和CMMI有關的。自己還僅僅是一名小小的開發人員,對“空洞”的方法學只是淺嘗輒止,加之本身對CMM這一套一竅不通,心想只去聽個熱鬧。培訓持續了兩天,無情的佔用了周末的時間。公司這樣安排培訓,害得大家周末兩天都不能安排自己的時間,效果可想而知,周日那場去了也就一半的人,絕大部分還是我們這些住單身公寓的。由於自己對XP、RUP小有所知,而CMM/CMMI卻一直不知為何物,正想藉此機會見識一下,對比一下。帶著問題聽
Time of Update: 2018-12-05
昨天逛完書店,直接就回公司去了,因為周五晚上突然想到了修改MyGUI的方法,使其可以完美支援視窗邊框和標題列這樣的效果。今天,繼續昨天的工作,修改了MyGUI使用者空間的代碼,確信已經沒有問題。移植了zlib和libpng兩個庫,毫無障礙就編譯通過了。不過還沒來得及測試。以後還要移植libjpeg、freetype和sdl等庫,總之很多了。今天,在使用MyOS的過程中,一不小心把同步的問題暴露出來了。MyOS核心中並沒有處理同步的問題,這個也是一個一直急需解決的問題。另外,就是要支援硬碟和光碟片
Time of Update: 2018-12-05
<s:iterator value="%{entityList}" id='vo' status='st'><tr <s:if test="#st.even">class="spritTr"</s:if>><s:if test="#st.first" ><td align="center" rowspan="<s:property value="entityList.size()"/>"
Time of Update: 2018-12-05
這段時間有點背。就在一個月前,由於在野網站下軟體,被暗算了流氓軟體,導致機器頻頻彈出激情廣告還不算完,更甚者是搞掛了我機器上CC——天天就靠它管理代碼來著。費了點勁把流氓軟體給做了,可是對CC還是回天乏力。實在不知道CC的哪根筋不對,只好重裝了。新裝的系統,乾乾淨淨,比以前輕快了不少,一個月來機器用的非常順手。本想生活就此又恢複了平靜和有序,沒想到這個幻想在今天早晨破滅了——機器又遭到病毒襲擊。這次比上次更猛烈,所有的.exe檔案都不能使用了(殺毒程式也不例外),只有駐留在記憶體中的病毒監控程式
Time of Update: 2018-12-05
在寫剛才那篇Blog的時候,由於想事情,就把頭向左轉了過去(個人習慣)。 剛好看到對面樓裡一個女生,雖然只能看到上半身,但從動作來看,應該是在脫褲子。緊接著,看到兩個光溜溜的膝蓋(脫掉褲子後,大家都會把腳放在床上,這樣膝蓋就升高了)。後來,一條褲子出現了,看樣子應該是牛仔褲。美女開始穿褲子。然後,大家該猜到了。雖然穿褲子的時候,基本上大家都是坐著穿的,但那樣只能把褲子提到大腿處。要想安全穿好,大家都是要站起來提褲子的(雖然坐著也可以,但畢竟不太舒服)。美女站起來提褲子。本來我以為會刷一下子提到位
Time of Update: 2018-12-05
相信有過團隊開發經曆的人,都用過這樣或者那樣的版本控制系統。比如,我們就使用CVS(並發版本系統)來管理原始碼。它的好處,對於用過的人自然不用多說。而以前對於CVS的使用也僅限於工作的需要,對於自己的檔案和原始碼並沒有涉及使用,為此也吃過一些苦頭,比如輕易刪除的一段代碼又要費勁的重寫出來。為了避免悲劇重演,我給自己搭建了一套CVS,然後將自己還在更新的檔案和原始碼放入統一的目錄中打上了CVS的標記。這樣只要每天提交更新不誤,就不會再出現刪除後的抓狂了…… 既然CVS這麼有用,你也