:本文轉載自微信號:iProgrammer
2013 年 10 月,我們在微博(@程序員的那些事 )發過一張信息圖《知名軟件系統代碼庫對比》。
信息圖中提到,Windows XP 和 Windows 7 操作系統的代碼量約 4 千萬行級別。
(信息圖部分截圖,完整版在這里:http://t.cn/EXMs07e )
Windows Vista 源碼體量約 5 千萬行。
所以,Windows 10 源碼體量至少在 5 千萬行咯。
Windows 操作系統是用什么編程語言開發的?
Windows 操作系統這么個量級的代碼庫,用了哪些/哪種編程語言,肯定有人好奇。
這不,就有人在 Quora 發帖問《開發 Windows 10 用了哪種編程語言?》
2019 年 3 月,微軟內核工程師 Axel Rietschin 在 Quora 上回復了這個帖子。
「程序員的那些事」摘編如下:
Axel 說,Windows 10 和 Windows 8.x、7、Vista、XP、2000 和 NT 有著相同的代碼庫,每一代操作系統都經歷了重大的重構,添加了大量的新特性,改進了性能、硬件支持和安全性,同時保持了非常高的向后兼容性。
內核(ntoskrnl.exe)大部分是用 C 語言編寫的。在 Github 可以找到 Windows Research Kernel 的泄露版。
有興趣的童鞋可以看看:github.com/markjandrews/wrk-v1.2
Axel 表示,雖然 WRK 代碼已經過時了,而且很大程度上還不完整,但那些代碼應該會給大家一些深刻的見解。
比如:wrk-v1.2/base/ntos/config 目錄下是大家熟知的注冊表(Registry)的源碼,這個內核組件就是配置管理器(configuration manager,CM)。
在內核模式下運行的大多數程序,也是用 C 語言編寫的(大多數文件系統、網絡、大多數驅動程序……),還有一些 C++。
至于 Window 10 是用什么編程語言寫的,Axel 認為是 C 和 C++,并且 C 占了絕大部分。
.NET BCL 和其他托管庫及框架通常都是用 C# 編寫的,來自不同的部門(開發者部門),并且也不屬于 Windows 源代碼樹。相比散落著 C++ 島嶼的 C 代碼海洋,C# 寫的代碼簡直就是滄海一粟。
Windows 真的真的真的真的真的很大
Axel 提示大家,大多數人沒有意識到 Windows 系統的龐大,真一個具有史詩規模的巨大項目。
Windows 的完整源代碼樹(包括全部代碼、測試代碼等)的大小超過 0.5 TB,涉及 56 多萬個文件夾,400 多萬個文件。
你可以花一年時間深入源代碼樹,鉆入到那些文件中。它們包括了所有組成 OS 工作站和服務器產品,及其所有版本,工具,相關的開發包。
然后你再讀文件名,看看里面有什么,它們是用來做什么的。想做完這些事,一個人(或兩個人)恐怕要窮盡一生咯。
有一次 Axel 離開 Git 分支幾周,他回來時發現落后了近 6 萬次提交。Axel 想有人會說,沒人可以每天把添加到 Windows 的所有代碼都看完,更不用說去讀過去 30 年來編寫的代碼了!
試用了幾款LLM加速/服務化軟件,非常喜歡ollama,速度快、操作簡潔。看推介的Open-WebUI(原Ollama_WebUI)配合ollama服務,效果不錯。于是就像裝一個。
網址:GitHub - open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI)
添加圖片注釋,不超過 140 字(可選)
警告 使用 Docker 安裝 Open WebUI 時,請確保-v open-webui:/app/backend/data在 Docker 命令中包含 。此步驟至關重要,因為它確保您的數據庫正確安裝并防止任何數據丟失。
提示 :cuda如果您希望使用包含 Ollama 或 CUDA 加速的 Open WebUI,我們建議使用帶有或標簽的官方圖像:ollama。要啟用 CUDA,您必須在 Linux/WSL 系統上安裝Nvidia CUDA 容器工具包。
如果 Ollama 在您的計算機上,請使用以下命令:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
如果 Ollama 位于不同的服務器上,請使用以下命令:
要連接到另一臺服務器上的 Ollama,請將 更改OLLAMA_BASE_URL為服務器的 URL:
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
安裝完成后,您可以通過http://localhost:3000訪問 Open WebUI 。享受!
推薦的使用Docker,可是以我的經驗,這種docker通常都非常的大。所以我準備用源碼安裝。
文檔地址:https://docs.openwebui.com/getting-started/
我的具體步驟,大部分按文檔操作,在pip的時候增加了國內源,
git clone https://github.com/open-webui/open-webui.git
cd open-webui/
# Copying required .env file
cp -RPp .env.example .env
# Building Frontend Using Node
npm i
npm run build
# Serving Frontend with the Backend
cd ./backend
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt -U
安裝完后,在啟動前,需要修改以下幾個配置文件:
1, .env 需要把:
添加圖片注釋,不超過 140 字(可選)
這部分內容修改為ollama的實際地址。
2,backend/config.py
RAG_EMBEDDING_MODEL = os.environ.get("RAG_EMBEDDING_MODEL", "all-MiniLM-L6-v2")
這一句根據實際情況進行修改
然后就可以啟動服務了。
linux:
bash start.sh
windows:
start_windows.bat
在設置里面可以設置語言:
添加圖片注釋,不超過 140 字(可選)
添加圖片注釋,不超過 140 字(可選)
用起來感覺很方便,尤其是與ollama一起用。