Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ll-34 — सर्किट-स्तर PDP-11/34 एमुलेटर | Kitploit
उपकरण/GitHubGitHub/dbrll/ll-34
एम्बेडेड सिस्टम सुरक्षारिवर्स इंजीनियरिंगडीबगर्सहार्डवेयर सुरक्षालर्निंग और शिक्षाचयनित संसाधनफर्मवेयर विश्लेषण
GitHubdbrll/ll-34

ll-34

सर्किट-स्तर PDP-11/34 एमुलेटर

रिपॉजिटरी देखें
6944 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

ll/34

ll/34 PDP-11/34A (1976) के लिए एक सर्किट-स्तरीय एमुलेटर है, जो एक वास्तविक PDP-11/34A के स्कीमैटिक्स, माइक्रोकोड और लॉजिक कैप्चर से रिवर्स-इंजीनियर्ड वर्चुअल CPU चलाता है।

इसे मूल रूप से सिग्नल स्तर पर समस्या निवारण में सहायता के लिए वास्तविक CPU की डिजिटल प्रतिकृति के रूप में डिज़ाइन किया गया था। वर्चुअल KD11-EA CPU मूलतः स्कीमैटिक्स के C अनुवाद और ROM तालिकाओं के लुकअप से बना है। सभी कॉम्बिनेशनल ROM रिवर्स-इंजीनियर्ड हैं, और क्लॉक जनरेटर को सटीक रूप से मॉडल किया गया है।

सर्किट-स्तर (ROM ट्रुथ टेबल + कॉम्बिनेशनल लॉजिक) को गेट-स्तर (Verilog) पर चुना गया क्योंकि यह हार्डवेयर बग को पुन: उत्पन्न करने के लिए पर्याप्त निम्न-स्तरीय है, फिर भी प्रोग्राम चलाने के लिए पर्याप्त तेज़ है।

एमुलेटेड डिवाइस

  • UNIBUS बैकप्लेन (समय और सिग्नल सटीक)
  • KD11-EA CPU (सर्किट-स्तरीय)
  • मूल बूट और डायग्नोस्टिक ROMs के साथ M9301 बूट कार्ड
  • DL11 सीरियल कार्ड (समय सटीक)
  • KW11 लाइन क्लॉक (50/60 Hz)
  • प्रोग्रामर कंसोल (CPU समस्या निवारण के लिए मेंटेनेंस मोड सहित)
  • RK05 ड्राइव (RK11 नियंत्रक का उच्च-स्तरीय एमुलेशन)
  • RL01 और RL02 ड्राइव (RL11 नियंत्रक का उच्च-स्तरीय एमुलेशन)
  • टेप रीडर
  • stdio, TCP पोर्ट या PTY मोड के साथ VT100 टर्मिनल

आर्किटेक्चर

सभी डिवाइस UNIBUS बैकप्लेन (unibus.c) में प्लग किए गए हैं, जो एड्रेस डिकोडिंग, टाइमिंग और बस साइकल करता है।

आंतरिक रूप से, CPU निम्नलिखित घटकों से बना है:

फ़ाइलविवरण
ucode_rom.h512x48-बिट माइक्रोकोड स्टोर (बाइपोलर PROMs), Bitsavers Verilog और डंप पर आधारित। प्रत्येक माइक्रो-वर्ड एक माइक्रो-साइकल के लिए ALU, स्क्रैचपैड, बस इंटरफ़ेस और ब्रांचिंग को नियंत्रित करता है।
combo_roms.hकॉम्बिनेशनल ROMs (E51-E83, E107), IR डिकोड (E59/E60/E63/E69/E70/E71/E74), ALU फ़ंक्शन चयन (E61/E82/E83), ट्रैप/सर्विस प्राथमिकता (E52/E53), और कंडीशन कोड लॉजिक (E68/E107), सभी स्कीमैटिक्स और लॉजिक कैप्चर से पुनर्निर्मित। ओपन-कलेक्टर ROMs MPC बस पर वायर-OR होते हैं।
kd11ea.cडेटापथ इंजन। प्रति साइकल एक माइक्रो-वर्ड के माध्यम से माइक्रोकोड को कदम दर कदम चलाता है। बुनियादी 74xx गेट्स को C लॉजिक ऑपरेटरों (!, &&, >> आदि) का उपयोग करके सिम्युलेटेड किया जाता है। 74S181 बिट-स्लाइस ALU पूरी तरह से मॉडल किया गया है (4 स्लाइस, 16-बिट)।
mmu.cमेमोरी मैनेजमेंट। कर्नेल/यूज़र एड्रेस स्पेस, 18-बिट रीलोकेशन (3x 74S283 एडर्स), 16 PAR/PDR जोड़े, फ्रीज़ लॉजिक के साथ SR0/SR2 एबॉर्ट रजिस्टर।
clockgen.cक्लॉक जनरेटर। E106 डिले लाइन को मॉडल करता है (TAP 30/90/120 फीडबैक, TRAN INH बस प्रतीक्षा)। छोटे साइकल: 180 ns, लंबे साइकल: 240 ns, बस ट्रांसफर तब तक खिंचता है जब तक SSYN वापस नहीं आता।
clock.cरीयल-टाइम पेसिंग। सिम्युलेटेड समय को वॉल-क्लॉक समय के साथ सिंक में रखता है।
int.cइंटरप्ट आर्बिटर। BR4-BR7 प्राथमिकता कतार, UNIBUS डेज़ी-चेन ग्रांट ऑर्डर का अनुमान लगाता है।

प्रोग्रामर कंसोल (Ctrl-P)

PDP-11/34A के फ्रंट पैनल स्विच और इंडिकेटर को एमुलेट करता है। जब CPU रुका होता है (पावर-अप, HALT निर्देश, या Ctrl-P) तब सक्रिय होता है।

यह बस को इनिशियलाइज़ करने, CPU को बूट करने, कोड के माध्यम से सिंगल-स्टेप करने, मनमाने एड्रेस पर डेटा की जाँच और जमा करने, और एमुलेटर को बंद करने की अनुमति देता है।

फ्रंटएंड इंजन से अलग है, इसलिए WebAssembly में एक फोटोरियलिस्टिक फ्रंट पैनल GUI भी प्रदान किया गया है।

डीबग कंसोल (Ctrl-E)

डीबग कंसोल माइक्रोकोड-स्तरीय और निर्देश-स्तरीय दोनों कोड के लिए एक इंटरैक्टिव डीबगर प्रदान करता है:

  • s [n]: n माइक्रो-निर्देशों को पूर्ण स्थिति डंप (MPC, ALU, बस, रजिस्टर) के साथ सिंगल-स्टेप करें
  • b addr: PC ब्रेकपॉइंट सेट करें (ऑक्टल), bl सूची के लिए, bd n हटाने के लिए
  • g: निष्पादन फिर से शुरू करें
  • u [addr] [n]: निर्देशों को डिस्सेम्बल करें
  • c [addr] [n]: मेमोरी डंप (ऑक्टल)
  • mmu: MMU स्थिति दिखाएं (कर्नेल + यूज़र PAR/PDR, वर्तमान मोड चिह्नित)
  • r: रजिस्टर डंप

लॉजिक एनालाइज़र (Ctrl-L)

ll-34 के विकास के दौरान समस्या निवारण वास्तविक हार्डवेयर के समस्या निवारण के समान निकला, इसलिए सिग्नल को ट्रेस करने और डेटापथ की जांच करने के लिए एक आंतरिक लॉजिक एनालाइज़र लागू किया गया। यह वर्चुअल CPU में सूक्ष्म ROM और टाइमिंग बग को ट्रैक करने में महत्वपूर्ण साबित हुआ। इसका उपयोग वास्तविक हार्डवेयर के समस्या निवारण के लिए संदर्भ के रूप में भी किया जा सकता है, जैसे कार्यशील हार्डवेयर ने एमुलेटर के विकास में मदद की।

लॉजिक एनालाइज़र प्रमुख CPU सिग्नल पर 102 बिंदुओं की जांच करने की अनुमति देता है, जो भौतिक चिप पिन (KD1:Exx:pin नोटेशन DEC स्कीमैटिक्स K1-5 से K2-9 से मेल खाता है) से मैप किए गए हैं। सुविधा के लिए लॉजिकल उपनाम (MPC, ALU_OUT, IR, PSW…) प्रदान किए गए हैं।

नमूना दर रीयल-टाइम CPU क्लॉक (5,555,556 Hz) है जिसका रिज़ॉल्यूशन 180 ns प्रति नमूना है। एक कॉन्फ़िगरेबल डिवाइडर लंबे कैप्चर विंडो के लिए नमूना दर को कम करता है।

कैप्चर एक रिंग बफर (64K नमूनों तक) का उपयोग करते हैं, जिसमें किसी भी सिग्नल पर कॉन्फ़िगरेबल ट्रिगर, समायोज्य ट्रिगर स्थिति (प्री/पोस्ट अनुपात), और ऑफ़लाइन विश्लेषण के लिए CSV निर्यात होता है।

पूरे प्रोजेक्ट में खराब समझे जाने वाले मल्टीप्लेक्सिंग पथों को मैप और डीबग करने के लिए लॉजिक कैप्चर का उदारतापूर्वक उपयोग किया गया।

नमूना प्रोग्राम

ll-34 के साथ आज़माने के लिए कुछ प्रोग्राम और सिस्टम शामिल हैं: एक Game of Life, V6 UNIX, मूल Tetris गेम के साथ RT-11 V4, और ATTN/11, एक छोटा प्रशिक्षण योग्य Transformer जिसमें स्व-ध्यान है।

RT-11

root@kitploit:~
./ll-34 --rk ./wasm/demos/rtv4_rk.dsk

बूट ROM स्वचालित रूप से RK11 से लोड होगा और ऑपरेटिंग सिस्टम शुरू करेगा। DIR फ़ाइलों को सूचीबद्ध करेगा, HELP सहायता प्रिंट करेगा, RUN TETRIS Tetris डेमो शुरू करेगा (हालाँकि $TERM शायद गलत होगा?)। RUN ADVENT Colossal Cave Adventure शुरू करेगा, जो एक वास्तविक PDP-11/34 पर बनाया गया है।

v6 Unix

root@kitploit:~
./ll-34 --rk ./wasm/demos/v6bin.rk

बूटलोडर एक न्यूनतम @ प्रॉम्प्ट प्रिंट करेगा। rkunix टाइप करें और एंटर दबाएँ, और कुछ सेकंड बाद आपको login: प्रॉम्प्ट मिलना चाहिए। root उपयोगकर्ता नाम बिना पासवर्ड के दर्ज करें और आप अंदर हैं! एक नोट यह है कि प्रारंभिक यूनिक्स में cd का नाम chdir है।

बिल्डिंग

make + एक C11 कंपाइलर, कोई अन्य डिपेंडेंसी नहीं है।

Linux (x86_64 और aarch64) पर musl और glibc दोनों के साथ, macOS aarch64, और NetBSD 10 aarch64 पर बिना किसी चेतावनी के संकलित होने के लिए सत्यापित।

चलाना

CLI के अलावा, एक फोटो-यथार्थवादी GUI के साथ एक स्वतंत्र WebAssembly संस्करण यहाँ उपलब्ध है: https://dbrll.github.io/ll-34.

नोट: ll-34 एक संसाधन-गहन एमुलेटर है। निर्देश-स्तरीय एमुलेटर के विपरीत, यह एक बार में एक साइकल माइक्रोकोड के माध्यम से कदम रखता है और प्रत्येक चरण में ALU, कॉम्बिनेशनल ROMs, स्क्रैचपैड, क्लॉक जनरेटर और बस टाइमिंग चलाता है। होस्ट को साइकल-सटीक बने रहने के लिए 5.5 MHz क्लॉक जनरेटर की गति को लगातार बनाए रखना होगा।

स्टार्टअप पर, एमुलेटर स्वयं का बेंचमार्क करेगा और वास्तविक KD11-EA के सापेक्ष अपनी गति रिपोर्ट करेगा। 1x से नीचे का अनुपात का मतलब है कि होस्ट बनाए नहीं रख सकता और समय सटीकता की गारंटी नहीं है। WebAssembly संस्करण में बेंचमार्क उपलब्ध नहीं है, जहाँ ब्राउज़र टाइमर रिज़ॉल्यूशन इसे अविश्वसनीय बनाता है। चूँकि WASM बिल्ड नेटिव से धीमा है, इसे स्मार्टफोन पर चलाना आमतौर पर बहुत धीमा होगा।

टूल डाउनलोड करें