半個月可以寫出乙個電腦作業系統嗎?

時間 2021-05-05 12:50:56

1樓:牛奶巧克力小逗比

不可能,如何你能寫出來,自研中國產的pc端系統就靠你了。

乙個安卓,乙個蘋果,乙個鴻蒙,你說安卓之後多少年才出現中國產手機系統鴻蒙。

2樓:

可以啊,我覺得可能不都不用半個月。

當然也可能一輩子都寫不出。

如果你本身就會,可能都不用寫,你是怎麼會寫的?肯定之前寫過一些吧?直接複製過來不就行了????

如果你本身不會,那就難了,你得學習,當然,你也可以去開源網看人家做好的,改頭換面說是你的。

3樓:Nafix

你搞個開源的kernel,折騰捯飭一下。

半個月應該能寫出嵌入式的powershell圖形化就不知道要多長時間了,抄的話估計半個月就搞定了。畢竟都是開源的,到處是作業。

作業系統難不難?你自己寫kernel當然難。

4樓:666

很久以前,

那還是我用winxp的時候有次我系統崩潰了,因為我是電腦小白,

我朋友給我介紹了乙個高手來幫我修電腦。

他看了一下電腦,

問我有沒有xp的盤,

我說沒有。

他想了一下,

叫我把針拿給他,

我想修電腦要針幹什麼,

但人家是高手,

我也不好說什麼,

就把針拿來給他了。

他把針的一頭插在光碟表面,

然後就開始在光碟上不停的按著針划動,

他划的速度非常快,

但是只划光碟正面,

我搞不懂這有什麼用,

但也不敢問,

看了半個多小時,

他還是不停的劃這一面,

我漸漸的有些困,

我問他這東西要搞多久,

他說要幾個小時,

我給他倒了杯茶,

就乙個人去隔壁睡覺了。

醒來的時候,

一看已經過了4個多小時,

我起身到隔壁,

看見他正在XP裡面除錯,

過了一會兒,

他說:你試試?

我坐上椅子用了一下,

真的好了,

我當時也不懂電腦,

謝過人家就走了。

後來我慢慢對電腦有了了解,

終於知道,

原來當時那位高手是用機器語言刻了乙個xp系統,我後來問我朋友那位高手的下落,

我朋友說前幾年去了美國之後,

杳無音訊....

5樓:李田

我大學的Computer Science課程,如果選修作業系統的話,會有乙個作業是寫乙個作業系統。

當然最作業系統的定義和一般人認為的會有很大差別。

6樓:youhe

感覺這個問題在釣魚,理論上,寫得出,要看人數!實際上,寫出了也用不了,沒時間debug!人數越多越難管理,半個月給管理層具體分配工作都不夠!半個月也就立個項還行!

7樓:leafspace

按照常規,普通人對於電腦作業系統的了解無非就是windows,linux,macos

不能。上作業系統課的時候,我們老師就告訴我們,作業系統是非常多複雜的模組組成的,乙個人無法面面俱到的實現全部模組。

8樓:張治靈

我正在寫乙個RTOS,這個要簡單一些,不知道啥時候能完工

從零開始的Stm32:寫個作業系統吧! | zzl_blog

目前正在構建優先順序鍊錶和一些基本的塊,如延時、鍊錶的操作函式塊

這是我構思的TCB和優先順序鍊錶的旗狀結構

// 優先順序結構體鍊錶初始化優先順序從 0 到 OS_PRIO_MAX-1

void OS_Prio_Init(void);

// 建立任務 1.將任務掛載在優先順序鍊錶 2.初始化任務TCB引數

OS_ERR OS_Task_Creates(void(*func)(void), u16 priority, u32 setruntime);

// 清除無用鏈節,加快執行速度

void OS_Prio_Clear(void);

下一步就構思任務排程

* 系統執行排程相關函式

* zzl 2020 10 11

* 首先我們要知道,在任務排程中我們要做什麼工作

* 我們採取的是傳統的systick節拍觸發排程,也就是輪詢任務,是在systick中斷函式中執行

/** 輪詢

* 1.每個TCB的runOrPendTime--

* 2.判斷任務是否就緒

* 3.把就緒任務的readyFlag置位

* 4.把就緒任務放在非就緒任務前端

*(這裡有另一種解法,將就緒任務按照優先順序另外構建乙個就緒鍊錶存放,執行直接按照就緒鍊錶的順序執行)

9樓:

我CSMaster 畢業的作業就是用C++ 寫乙個作業系統。 寫出來了嗎?寫出來了。

 能用嗎, 至少老師給了我個B+。 但是你要是說能不能和Linux, Windows比, 那我告訴你是做夢

10樓:august

當然可以

以windows vista為例,也就花了5年時間,6000名開發人員,我算算

5x365x6000=10950000工作日,如果我們要半個月做完,那麼需要10950000/15=730000名開發者。

而中國2023年大概有500萬程式設計師,所以哪天美帝封鎖我們了,那麼國家一聲令下,甚至不需要半個月,500萬程式設計師一起上,大約2天就可以寫出乙個全新的電腦作業系統了。

不加狗頭會不會被誤傷呢?

11樓:阡陌縱橫

怕是集中國內所有天才都不一定吧。

一套電腦作業系統,不是說寫就能寫的,得經過前期大量的需求調研、需求分析、功能模組設計、架構設計、可行性分析等等一系列複雜的流程和可行性驗證。光完成這些工作半個月都不用想。

電腦作業系統是一套複雜縝密的模組化設計方案,每個模組之間都有非常高的關聯性,任何乙個環節出問題都沒辦法使用。

當然,如果你說的只是寫出來,不考慮使用,不考慮體驗和穩定性,那就另當別論了。

PS:為什麼那麼多人都不看清楚題目問的就開始瞎扯呢,人家問的明明是電腦作業系統,什麼叫電腦作業系統?竟然有那麼多人扯東扯西的,為什麼還有那麼多人贊?

12樓:塗鴉鐵皮

作業系統可以說是最複雜的軟體。

成熟的作業系統包含無數複雜的元件,包括圖形介面、網路、文字工具等等,單人不可能完成,多人協作開發也需要極長時間,還得運氣好才行。

要想重頭搞個商用級別的作業系統,你不砸個千人苦幹十年沒可能。

現在新興的作業系統,從頭開發工作量太大,只能在前人的工作基礎上做改進。

當然,核心不完善,功能簡單的作業系統,倒是個人能開發完成,自己跑跑玩下很容易。

但這類系統相容性不好,無法融入主流應用軟體的生態圈中,沒有實用價值。

在教學中使用還有點意義,能幫助學生更好的理解作業系統。

13樓:張浩

bootloader的規模算麼?算的話,半天就夠了。。。

不過題主的意思應該是包含了——不說完整吧,起碼能湊和用用的記憶體管理、程序排程、檔案系統、使用者介面之類才算吧?

如果有人說他行,可能是個大牛,更有可能是個神棍。

14樓:衡商

題主肯定不是電子資訊類或是計算機類的學生,甚至不是工科類或理科類學生。

可以,沒問題,但是悄悄的不要讓別人知道。

因為發布出去結果的只有兩種:

第一,嚇死一大片,神人!

第二,笑死一大片,神經!

15樓:人生何處洗

首先你得先寫得出來,然後再來追求速度,其次,你得看是什麼系統。如果是在已有的系統上定製那應該是比較快,如果是全新系統,別的國家都沒有的,那恐怕要時間。

16樓:matrix

時間太短了吧,時間比較短的話,可以了解一下清華的rCore作業系統哦!Rust語言編寫,執行在Risc-v指令集的晶元上

摘要 · GitBook

建議跟著嚮導一步一步地走

17樓:可樂

首先得搞清楚什麼是作業系統:

作業系統(Operating System,簡稱OS)是管理計算機硬體與軟體資源的電腦程式。作業系統需要處理如管理與配置記憶體、決定系統資源供需的優先次序、控制輸入裝置與輸出裝置、操作網路與管理檔案系統等基本事務。作業系統也提供乙個讓使用者與系統互動的操作介面。

簡單來說,作業系統至少得能管理計算機的軟硬體資源,同時給依附與作業系統之上的電腦程式提供服務支援。

而作業系統也分很多種。協作式多工的系統(Cooperative multitasking),協作式指的是多個任務之間互相協作。其核心思想就是,假定每個程式都是善意的、理性的,各個程式不會長時間霸佔CPU,占用CPU一段時間後,會主動讓出CPU,這樣其他程式就能夠獲得CPU的使用權。

協作式多工系統,本質上是乙個所有程式共同參與系統管理的系統。

這其實是在偷懶,讓所有軟體參與系統管理,事實證明,這很愚蠢。

原因也很簡單,程式本身沒有善惡之分,但是設計程式的人可能有不可告人的秘密。程式本身也無所謂理性或者感性,但是設計程式的人卻有水平高低之分。

協作式多工系統遇到的第乙個問題便是存在安全隱患。假如乙個程式掛死,整個系統就不可用了。很多時候,乙個惡意程式可能一直霸佔CPU資源,其他程式也就都餓死了。

為了解決上面說的這種尷尬場景,中斷機制和搶占式多工系統橫空出世。難怪恩格斯會說,乙個市場需求往往比十所大學更能拉動技術進步。

中斷產生時,可以立即停止正在執行的程式,然後跳轉到中斷的處理函式,去執行一些不可告人的事。

有了中斷機制,又有多工處理的需求,出現搶占式多工系統(Preemptive multitasking)就很自然了。當今幾乎所有的主流作業系統都是搶占式的,包括Windows、macOS、Linux(包括Android)以及iOS等。

搶占式多工系統什麼意思呢?搶占指的是利用中斷機制,每隔一段時間產生乙個中斷,中斷產生時暫停任何乙個正在執行的程式,一般通過PUSH指令儲存現場,也就是儲存當前暫存器以及程式斷點等資訊。然後呼叫排程器,再由排程器決定把CPU分給其他程式使用。

而搶占式系統排程方式涉及諸多排程演算法。簡單的講,常規的排程涉及兩種方式。

程式執行完畢退出、阻塞等待外設、等待資料、獲取訊號量、等待訊息等,都會讓出CPU。

時間片到期,系統使用乙個週期性的中斷來管理時間片,中斷服務函式內判斷時間片是否過期。

然而,多工系統的核心——排程演算法,還基本沒有涉獵。排程演算法可以很簡單,比如時間片輪轉法,簡單到可以使用迴圈程式實現。一堆程式排著隊,排到自己就獲得乙個時間片,時間片到期後跑到隊尾繼續排隊。

複雜的呢?常見的有下面這些演算法:

先來先服務演算法(First come first serve, FCFS)

最短作業優先(Shortest job first, SJF)

最高響應比優先演算法(Highest response ratio next, HRRN)

虛擬輪轉法(Virtual RR)

優先順序排程演算法(Priority scheduling algorithm, PSA)

多級反饋佇列排程演算法(Multilevel feedback)

這個世界,能夠實現乙個優秀排程器的人屈指可數。

至此,我也只和你講了作業系統的冰山一角罷了。

你可能會說,我可以沒有底線的給你提供人力資源啊!那我只能說,你肯定是人月神話的擁躉。

是猴子派來的逗比。

關注乙個有趣的逗比 @可樂

跟親戚學電腦,半個月才學個裝系統,好像他不想教我,我該咋辦?

電腦那些事兒 題主這個跟親戚學電腦,我怎麼聽著像是親戚有電腦維修店的這種感覺呢?1 如果是想學電腦的基本知識,比如你說的裝系統 一些軟體的使用等等,完全可以自己去網上找教程看,在B站或者網上直接搜,基本都有教程。2 如果是想學電腦維修知識,以後想靠這個吃飯,自己也開個店什麼的,那麼親戚不想教你也很好...

自己寫出乙個簡單的作業系統是什麼樣的感覺?

趙文宇 哈哈我貼個我寫的玩具kernel https github.com wenyuzhao Sophon 是aarch64的,沒做x64,給我的樹莓派用的。感覺最大的問題不是什麼基礎知識,debug什麼的。是要自己定乙個明確的scope,什麼功能要做什麼不做,不然就是個無底洞,永遠也做不完。我感...

VMware可以作為乙個偽作業系統使用嗎?

徐明揚 反對排名第一的答案,最新的的ESXi核心是不含linux的,其大小只有150MB。大部分人了解的VMware WorkStation是一款單機產品,為寄居式架構,即需要安裝在作業系統之上 而VMware vSphere是企業級伺服器虛擬化產品,其底層ESXi為裸金屬架構,即直接架設於硬體伺服...