PiscisOS開發筆記_2_開發方法詳解

上篇文章簡單的介紹了PiscisOS的概況,這篇文章詳細的說明整個系統的開發方法。因為作業系統涉及接近硬體底層的編程,在我的接觸範圍內還沒找到一個很好的IDE能包辦自始至終的編碼和調試,所以不可避免的要自己選擇一個適合自己的開發方法,包括開發語言的選取,編譯(彙編)軟體的選擇,調試工具的選擇,運行環境的選擇和其他一些工具軟體的選擇。首先把PiscisOS開發中使用的所有軟體列一個清單:開發平台:Windows 7開發語言:組合語言組譯工具:Flat

請訪問我的網易部落格

在可預見的未來, 我的csdn 技術部落格停止更新, 而其它日常博文的發布, 將主要在我的網易部落格:http://sodme.dev.blog.163.com 網易部落格內容主要以開發體會及閑扯非技術問題為主, 偶爾, 也會發布一些非主流技術心得. 一款產品的成功, 技術的因素只是其中之一, 記住, 只是"其中之一". 不要唯技術論, 不要讓自己陷入無邊無際的無休止的技術崇拜中, 那樣作, 除了自娛之外, 沒有任何意義.  

又沒克制住自己,鬱悶

  克制,剋制,剋制...  聲音小一點,語氣平和一點,態度執著一點,眼神溫和一些,討論的氛圍才會更輕鬆一些。失策呀失策,給別人的感覺不爽,也讓自己的心情壞到了極點,不就是那麼點事嗎?不採用你的方案又能怎麼樣?你的方案就一定是最好的嗎?  偶越來越對老大心懷感激了,是他讓偶有機會最後再表述一下自己的意見,終於,偶的意見還是被採納了,但是,感覺很不爽。這種採納,象是我逼著他們作的,但本來不應該這樣的,應該是他們心甘情願採納的。很不爽,小子,曆練得還不夠呀,還嫩呀。什麼時候偶才能變成張哥那樣?處變不

類全域變數的構造和析構順序

#include <iostream>    #include <string>    using namespace std;      class A   {   public:       A(int k)       {           s = k;           cout << k << "A is constructing\n";       }       ;       ~A()       {          

對標號地址的另一種相對定址方式

組譯工具中, 對資料訪問時, 通常是這樣的:_asm{...DATA_LABLE:    _emit 0x87    _emit 0xa0    _emit 0x49    _emit 0x90...    mov ebx, dword ptr [DATA_LABLE]...}其中, 當程式編譯之後, mov指令中的DATA_LABLE標號地址會被轉成一個絕對位址. 而有時絕對位址這一點可能會對這樣一種需求帶來障礙: 我們希望自己寫的彙編代碼不管被放在哪塊地址空間中都是能正常啟動並執行,

完成連接埠中的單控制代碼資料結構與單IO資料結構的理解與設計

本文作者:sodme本文出處:http://blog.csdn.net/sodme聲明:本文可以不經作者同意任意轉載、複製、傳播,但任何對本文的引用均須保留本文的作者、出處及本行聲明資訊!謝謝!  完成連接埠模型,針對於WIN平台的其它非同步網路模型而言,最大的好處,除了效能方面的卓越外,還在於完成連接埠在傳遞網路事件的通知時,可以一併傳遞與此事件相關的應用程式層資料。這個應用程式層資料,體現在兩個方面:一是單控制代碼資料,二是單IO資料。  GetQueuedCompletionStatus函

真誠的謙虛是給自己機會

對於我們現在的年輕人來說,“謙虛”這個詞似乎已經離我們太過遙遠了,誰不想在上司面前、在老闆面前充分展示自己的才能而給自己謀得更多晉陞的機會?誰又不想讓天下人都認同自己的技術水平無比高超?但事實呢?越是沒水平的人,越是想極力展示自己的水平;而越是有水平的人,越是在無形之間顯出自己的大師風範。很不幸,包括我在內的很多人,都屬於前者。  雖然我曾經不止一次地告誡過自己:作人,要謙虛一點。但是,每當有人提出在我看來非常弱智的問題的時候,我總會發自內心地不屑一顧,注意,這裡是“發自內心”的,是真正的不屑一

由一個vc內嵌asm的BUG引出的…

在文法上, 我們通常認為以下的兩條語句是等價的:mov ecx, offset DATA_LABLE     //其中DATA_LABLE是資料定義標籤lea ecx, DATA_LABLE而更進一步, 我們也會認為以下兩句是等價的:mov ecx, ebp-8lea ecx, [ebp-8]第一種, 用的是儲存空間定址方式; 而第二種, 用的是寄存器定址和寄存器間接定址方式. 讓我意想不到的是, 在第二種情況下,

Unicode下CString與整型之間的轉換

MFC中對字串的定義大多是使用CString類,不可避免的有時候需要將CString類型的字串轉換為整形或者其他類型的變數。最近在做的一個項目中就遇到了這樣的問題。用CString定義了一個由數字組成的字串str,但是需要將其轉換為BYTE型使用。很容易就想到了atoi函數,atoi函數主要功能是將一個字串轉化為整型數,函數原型如下:[code]int atoi(const char * string ); [/code]可以看到函數的參數是const char *,經測試在vC

socket關閉close和shutdown

轉自:http://hi.baidu.com/yoshubom/blog/item/caa3b2de5d210559cdbf1a2b.htmlsocket關閉close和shutdownsocket關閉有2個close,shutdown他們之間的區別:close-----關閉本進程的socket id,但連結還是開著的,用這個socket id的其它進程還能用這個連結,能讀或寫這個socket idshutdown--則破壞了socket

struct 位元組對齊問題(不包含struct嵌套的討論以及修改機器的對齊的時候),更詳細的請參考收藏

    位元組對齊掌握4個原則:            1 與首地址的位移量必須是變數長度的整數倍            2 變數按定義的順序存放            3 整個結構體的長度必須是最長成員變數長度的整數倍            4 如果有struct嵌套,則子struct中的變數必須在整個struct符合以上三個原則,但是子struct自身各個變數之間的儲存位置不會變。e.g.          struct NSSB{           long a;         

打倒一切盲目的技術崇拜

本文作者:sodme本文出處:http://blog.csdn.net/sodme聲明: 本文可以不經作者同意, 任意複製, 轉載, 但任何對本文的引用都請保留文章開始前三行的作者, 出處以及聲明資訊.

網遊伺服器設計--到底應該追求效能和效率還是應該追求架構清晰易維護?

作IOCP的過程中,越來越感覺到,在網路通訊底層,實際上,並不需要太多的物件導向元素,即使我用純C來實現一個IOCP,我覺得只要效能能夠達到應用的需求,也是可以接受的,大可不必為了追求所謂的好看的代碼架構而處心積慮地在這個本不複雜的模型上搭建太多額外的諸如叫得好聽的被稱為“物件導向”的東西。IOCP本身是一塊很小的核心,它自己的功能應該儘可能地獨立和簡化,只負責最底層的網路連接、斷開、收發、出錯提示就可以了,至於其它諸如串連隊列的管理以及收發資料的更進一步操作,這些都不應該是IOCP這個最小化核

開始恢複在csdn上發blog

已經很長時間沒在csdn上發blog了,一是因為自從來廣州後一直沒有很平靜的心態寫點技術方面的東西,二是因為csdn的blog網站經常打不開,所以,在10月到現在的今年2月的這段時間裡,很多心情文字都發到了我的msn space(http://spaces.msn.com/sodme)上,感興趣的朋友可以去那裡搜搜,不過,那裡多數是一些心情文字,呵呵。從這篇blog後,開始恢複在csdn blog上的發文,當然,這裡發的文主要是技術相關或行業相關的,心情文字之類的我會盡量發到msn

關於IOCP的更進一步理解

  接觸IOCP的概念是在今年4月份剛開始作網遊的時候,如果不是作網路編程特別是伺服器編程的朋友,可能連IOCP的概念都不知道,這一點都不奇怪。正如一位網友所說的,IOCP說白了就是一個系統級隊列及對這個隊列進行維護的一個機制,我們只要按照基本固定的方式來調用相關的函數,就可以實現一個基於IOCP架構的伺服器模型。建立IOCP的基本步驟很多資料上都有介紹,隨便找找就能找到一大堆,我使用的語言是DELPHI,最終實現的伺服器,測試的時候一個用戶端開了3000個左右的連接埠來串連伺服器,結果用戶端先

從今天開始,我將開始轉載網易部落格部分文章

有幾個原因:1.原來的CSDN部落格不穩定,搬去了網易部落格,寫著寫著,也懶得弄回來了,所以一直在網易部落格獃著;2.但是,畢竟網易部落格並不是純IT或純技術部落格,寫的很多內容,無法獲得更多的共鳴,有點唱獨角戲的感覺;3.CSDN作為國內最大的技術社區,有這麼多作技術的同行在這裡,我很真誠的想結識更多具有相同理念的人,不管將來是不是有機會合作,至少,可以獲得更廣泛的精神上的支撐;4.我希望我的文章,能被更多的IT新人特別是互連網新人看到,讓他們知道我們的成長過程,與大家一起分享真實的互連網項目

setsocket用法大全(轉自CSDN之gdy網友之作)

轉貼自CSDN之gdy網友作品,特此感謝。原貼地址:http://community.csdn.net/Expert/topic/3592/3592436.xml?temp=.2238275不斷的收到coolmei25 (梅生)的答謝,我都不好意思了(我都沒幫到他),下面寫出我在網路編程中的一點心得體會,希望對他(^_^也對大家)有協助:1. 如果在已經處於

qsort函數應用大全

七種qsort排序方法 <本文中排序都是採用的從小到大排序> 一、對int類型數組排序 int num[100]; Sample: int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp); 二、對char類型數組排序(同int類型) char word[100]; Sample: int cmp( const void *

一次關於遊戲伺服器底層通訊架構的重構過程

從昨晚七點,到今天上午11點,先後對大廳和房間伺服器進行了重構,重構後的代碼結構清晰了,效率也提高了,覺得這次的重構過程很有意義,所以記錄下來以備查。在原有的大廳伺服器中,原有的設計是使用統一的一個TUSER對象管理底層資料的接收以及高層對TUSER進行的邏輯層的屬性讀寫操作,不管是玩家正常串連的SOCKET還是用於臨時通訊的SOCKET,只要有串連都會分配一個TUSER對象。而在TUSER對象中,又都包含大致這兩方面的資訊:一方面的資訊是用於底層資料通訊的,比如接收緩衝區數組,接收緩衝區大小等

建議CSDN BLOG縮減或取消所謂的”最新文章 專家BLOG群”所佔的龐大首頁空間

應該說, CSDN BLOG首頁的改版還是不錯的, 色彩配置整體看來比較專業. 新版的首頁, 看得出是想突出所謂的專家的力量, 不錯, 這是提高CSDN BLOG本身品質的一個方法, 但我不認為這是一個好方法. 作為一個BLOG網站的資訊匯聚首頁, 更多的朋友想要得到的服務是: 能夠方便地讀到任何人發的任何好的文章. 專家群與龐大的普通BLOG作者來說, 其比例仍然是相當小的, 沒必要讓這一塊相對不變的內容始終佔據這塊位置, 這樣的作法有點象論壇管理裡的置頂功能. 而在我的理解,

總頁數: 61357 1 .... 18629 18630 18631 18632 18633 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.