லினஸ் டொர்வால்ட்ஸைப் பின்பற்றுதல்: புதிதாக (VII) இருந்து உங்கள் சொந்த இயக்க முறைமையை உருவாக்கவும்

பற்றி மற்றொரு இடுகைக்கு வருக எங்கள் சொந்த இயக்க முறைமையை எவ்வாறு உருவாக்குவது (தொடரின் முந்தைய கட்டுரைகள்: 1, 2, 3, 4, 5 y 6). கடைசி இடுகையின் பின்னர் இது நீண்ட காலமாகிவிட்டது, முக்கியமாக இன்று நம்மிடம் இருப்பதைக் கண்டறிந்த பிழை காரணமாக. பார்ப்போம் x86 கட்டமைப்புகளில் கடிகாரத்தை எவ்வாறு கையாள்வது.

முன்னதாக நாங்கள் ஐ.ஆர்.க்யூக்களை பொதுவான வழியில் செயல்படுத்தினோம், ஆனால் ஒரு சிறிய சிக்கல் இருந்தது, ஏனெனில் நாங்கள் அவற்றை சரியாக செயல்படுத்தவில்லை, கூடுதல் தரவை அனுப்பினோம். நாங்கள் இறுதியாக அதை சரிசெய்கிறோம் கார்லோசோர்டா நான் எப்படி தொடரலாம் என்று தொடர்ந்து கருத்து தெரிவிக்க முடியும்.

சரி, கடிகாரம் ஒரு IRQ, குறிப்பாக முதல். அதை உள்ளமைக்க, நாங்கள் மேலே வரையறுக்கப்பட்ட செயல்பாட்டை IRQ களை, ND_IRQ_InstallHandler ஐ பொதுவாக நிறுவ பயன்படுத்துவோம்.

int ND_TIMER_TICKS = 0; void ND :: டைமர் :: கட்டம் (int hz) {int divisor = 1193180 / hz; ND :: துறைமுகங்கள் :: OutputB (0x43,0x36); ND :: துறைமுகங்கள் :: OutputB (0x40, வகுப்பி & 0xFF); ND :: துறைமுகங்கள் :: OutputB (0x40, வகுப்பி >> 8); ND வெற்றிட ND :: டைமர் :: காத்திரு (எண்ணாக உண்ணி) {கையொப்பமிடாத நீண்ட எட்டிக்ஸ்; eticks = ND_TIMER_TICKS + உண்ணி; (ND_TIMER_TICKS <eticks) {வெற்றிட ND :: டைமர் :: அமைவு () {ND :: திரை :: SetColor (ND_SIDE_FOREGROUND, ND_COLOR_BLACK); ND :: Screen :: PutString ("set n அமைவு டைமர் ..."); ND_IRQ_InstallHandler (0, & ND_Timer_Handler); ND :: திரை :: SetColor (ND_SIDE_FOREGROUND, ND_COLOR_GREEN); ND :: Screen :: PutString ("முடிந்தது"); } வெளிப்புற "சி" வெற்றிட ND_Timer_Handler (struct regs * r) {ND_TIMER_TICKS ++; if (ND_TIMER_TICKS% 18 == 0) {// ND :: Screen :: SetColor (ND_SIDE_FOREGROUND, ND_COLOR_BROWN); // ND :: Screen :: PutString ("one n இன்னும் ஒரு வினாடி"); நாங்கள் ஒரு புதுப்பிப்புத் திரையைச் செய்ய வேண்டும்}}

குறியீடு பின்வருமாறு இயங்குகிறது: துவக்க அமைப்பு அழைக்கிறது ND :: டைமர் :: அமைவு, இது அழைக்கிறது ND_IRQ_InstallHandler முதல் நிலையில் செருக, ஐ.ஆர்.க்யூ 0, நிகழ்வு நிகழும்போது திரும்ப அழைக்கும் செயல்பாடு, அதாவது ND_Timer_Handler அது அதிகரிக்கிறது உண்ணி. கடிகார வேகத்தை 18 ஹெர்ட்ஸாக அமைத்துள்ளதால், பின்னர் பார்ப்போம், அதை 18 ஆல் வகுத்து எங்களுக்கு ஒரு முழு எண்ணைக் கொடுத்தால், ஒரு நொடி கடந்திருக்கும்.

செயல்பாடு ND :: டைமர் :: கட்டம் இது வேகத்தை சரிசெய்ய எங்களுக்கு உதவுகிறது டைமர், அந்த ஆடம்பரமான எண் 1.19 மெகா ஹெர்ட்ஸ் ஆகும், இது ஒரு பொதுவான மதிப்பு. சரி, நாம் இந்த வேகத்தை மாற்ற விரும்பினால் இந்த செயல்பாடு அழைக்கப்பட வேண்டும் டைமர், முன்னிருப்பாக இது 18,22 ஹெர்ட்ஸ் வரை செல்கிறது, இது ஒரு விசித்திரமான மதிப்பு ஐபிஎம் அது இன்றுவரை உள்ளது.

செயல்பாடு ND :: டைமர் :: காத்திருங்கள் இது மிகவும் எளிது, ஒரு வட்டத்துடன் காத்திருங்கள் போது அது வரை உண்ணி தொடர அவசியம்.

படத்தில் நாம் ND_Timer_Handler க்குள் குறியீட்டைக் கட்டுப்படுத்தினால் இதைப் பெறுவோம்:

NextDivel இல் விநாடிகள்

அடுத்த அத்தியாயத்தில் விசைப்பலகை உள்ளீட்டைப் படிப்பது மற்றும் கொஞ்சம் உருவாக்குவது எப்படி என்று பார்ப்போம் ஓடு எங்கள் கணினியுடன் தொடர்பு கொள்ள. எப்போதும் போல, குறியீடு இல் கிடைக்கிறது மகிழ்ச்சியா உரிமத்தின் கீழ் குனு ஜிபிஎல் வி 2.


உங்கள் கருத்தை தெரிவிக்கவும்

உங்கள் மின்னஞ்சல் முகவரி வெளியிடப்பட்ட முடியாது. தேவையான புலங்கள் குறிக்கப்பட்டிருக்கும் *

*

*

  1. தரவுக்கு பொறுப்பு: மிகுவல் ஏஞ்சல் கேடன்
  2. தரவின் நோக்கம்: கட்டுப்பாட்டு ஸ்பேம், கருத்து மேலாண்மை.
  3. சட்டபூர்வமாக்கல்: உங்கள் ஒப்புதல்
  4. தரவின் தொடர்பு: சட்டபூர்வமான கடமையால் தவிர மூன்றாம் தரப்பினருக்கு தரவு தெரிவிக்கப்படாது.
  5. தரவு சேமிப்பு: ஆக்சென்டஸ் நெட்வொர்க்குகள் (EU) வழங்கிய தரவுத்தளம்
  6. உரிமைகள்: எந்த நேரத்திலும் உங்கள் தகவல்களை நீங்கள் கட்டுப்படுத்தலாம், மீட்டெடுக்கலாம் மற்றும் நீக்கலாம்.

  1.   நோவா அவர் கூறினார்

    மிகவும் சுவாரஸ்யமான தொடர் பயிற்சிகள், தனிப்பட்ட முறையில் நான் புதிதாக ஒரு லினக்ஸ் விநியோகத்தை உருவாக்குவது பற்றி பலவற்றைப் பார்த்ததில்லை, மேலும் ஸ்பானிஷ் மொழியில் குறைவாகவும் முழுமையானதாகவும் இருந்தது. இதிலிருந்து நீங்கள் நிறைய கற்றுக்கொள்ள முடியும் என்று நினைக்கிறேன், எனக்கு நேரம் கிடைத்தவுடன் இந்த பயிற்சிகளை செய்ய முடியும் என்று நம்புகிறேன்.
    நான் கேட்பதெல்லாம், நீங்கள் சோர்வடைய வேண்டாம் மற்றும் டுடோரியலை முடிக்க வேண்டாம், ஏனென்றால் ஒருபோதும் முடிக்கப்படாத பல நல்ல பயிற்சிகளை நான் கண்டேன்.
    வாழ்த்துக்கள் மற்றும் நன்றி :).

    1.    ரோடர் அவர் கூறினார்

      இது லினக்ஸ் விநியோகம் அல்ல, இது ஒரு கர்னல் is.

    2.    தேசிகோடர் அவர் கூறினார்

      நீங்கள் கூறுவது தவறு. ஒரு லினக்ஸ் டிஸ்ட்ரோவை உருவாக்குவது எதையும் நிரலாக்கத்தைக் குறிக்காது, எடுத்துக்காட்டாக, புதிதாக நீங்கள் திட்டமிடாத லினக்ஸில், நீங்கள் என்ன செய்வது என்பது நிறுவுதல் (தொகுப்பதன் அடிப்படையில்), ஒரு டிஸ்ட்ரோவை உருவாக்கும் அடிப்படை தொகுப்புகள். இது மிகவும் வித்தியாசமானது. இது உங்கள் சொந்த இயக்க முறைமையை உருவாக்குகிறது. இதற்கு லினக்ஸுடன் எந்த தொடர்பும் இல்லை. மினிக்ஸால் ஈர்க்கப்பட்ட அவரது நாளில் டொர்வால்ட்ஸ் செய்தது இதுதான், மற்றும் டொர்வால்ட்ஸ் மற்றும் ஆண்ட்ரூ கள் இடையே சூடான மற்றும் பிரபலமான விவாதத்துடன். மோனோலிதிக் கர்னல் Vs மைக்ரோ கர்னலில் டானன்பாம்.

      நன்றி!

  2.   இல்லுக்கி அவர் கூறினார்

    நன்றி சே. இப்போது வரை நான் உங்கள் பதவியில் அதிக கவனம் செலுத்தவில்லை, ஆனால் நான் ஒரு திட்டத்தில் இருக்கிறேன், எனவே நான் அவற்றைப் பார்க்கப் போகிறேன்.
    வாழ்த்துக்கள்.

  3.   ரோடர் அவர் கூறினார்

    குறிக்கோள்-சி (++), சி ++, டி அல்லது ரஸ்ட் போன்ற பிற மொழிகளைப் பயன்படுத்தலாம் என்பது குறிப்பிடத் தக்கது.

    1.    அட்ரியன்ஆரோயோஸ்ட்ரீட் அவர் கூறினார்

      இது சி ++ இல் உள்ளது, சி அல்ல. இருப்பினும், பல சி ++ ஆபரேட்டர்களுக்கு புதிய மற்றும் நீக்கு ஆபரேட்டர்கள் போன்ற நூலக ஆதரவு தேவைப்படுவதால் வேறுபாடுகளைக் காண்பது கடினம். ரஸ்டில் ஒரு இயக்க முறைமையை உருவாக்குவது மிகவும் சுவாரஸ்யமாக இருக்கும். ரஸ்டில் இயக்க முறைமைகளுக்கு அர்ப்பணிக்கப்பட்ட ஒரு ஐஆர்சி சேனல் உண்மையில் உள்ளது (# rust-osdev at irc.mozilla.net). இயந்திர குறியீட்டை தொகுக்கும் எவரும் உண்மையில் மதிப்புக்குரியது, நாங்கள் ஜி.சி.ஜே.யைப் பயன்படுத்தினால் ஜாவா உட்பட.

      1.    ரோடர் அவர் கூறினார்

        ஆமாம், உண்மையில், ரஸ்ட் இயக்க முறைமைகளுக்கு மிகவும் சுவாரஸ்யமான மொழியாகும், ஏனென்றால் சி அல்லது சி ++ ஐ விட கற்றுக்கொள்வது எளிதானது மட்டுமல்ல (இது தொடர்ச்சியான மாற்றங்களுடன் தொடர்கிறது, ஆனால் இது எளிதானது), ஆனால் இது மிகவும் பாதுகாப்பானது.

  4.   ரோடர் அவர் கூறினார்

    70 களில், OS இல்லாமல் நேரடியாக வன்பொருளில் நிரல் செய்வது மிகவும் பொதுவானது.

  5.   கிறிஸ்டோபர் அவர் கூறினார்

    சிறந்தது ... இப்போது நான் புரிந்து கொள்ள வேண்டும்: 3 ...

  6.   mmm இங்கு அவர் கூறினார்

    வணக்கம். இந்த கட்டுரைகளுக்கு மிக்க நன்றி. ஆனால், எனக்கு நிரலாக்க அறிவு இல்லையென்றால், நான் அதை செய்ய வேண்டும் என்று நான் நினைக்கவில்லை, இல்லையா? அதாவது, இல்லையென்றால் அது ஒரு «நல்லது, இப்போது நான் என்ன நகலெடுத்து ஒட்டுவது?» ... என்ன ஒரு பரிதாபம், நான் எப்போதுமே நிரல் செய்வது மற்றும் ஒன்றும் தெரிந்து கொள்ள மிகவும் விரும்பினேன், நான் ஒரு கழுதை அதிகம்!

    1.    தேசிகோடர் அவர் கூறினார்

      உங்களை நீங்களே குற்றம் சொல்லாதீர்கள், நீங்கள் கழுதை இல்லை. தொடங்குவதற்கு, எல்லா புரோகிராமர்களுக்கும் கர்னலை எழுதுவது எப்படி என்று தெரியவில்லை, இது மிகவும் சிறிய எளிய பணி, மற்றும் நடைமுறையில் இது பெரியது. எடுத்துக்காட்டாக, இங்கே ஆசிரியர் விசைப்பலகை மற்றும் திரைக்கான பொதுவான இயக்கிகளை உருவாக்கி, திரை வரிசையை கையாளுகிறார், இது இன்று பயன்படுத்தப்படாத ஒரு முறையாகும். இன்று லினக்ஸில் உள்ள tty மிகவும், மிகவும் சிக்கலானது, மேலும் x86 கட்டமைப்பை ஒரு திரை வரிசை கொண்டிருக்கும். கூடுதலாக, சி-யில் உள்ள குறியீட்டின் பெரும்பகுதி கட்டமைப்பைப் பொறுத்தது, கட்டடக்கலைக் குறியீட்டை அசெம்பிளரில் உருவாக்குவதே சிறந்தது மற்றும் சி குறியீடு எந்த செயலியிலும் இயங்குகிறது. இருப்பினும், நான் ஆசிரியரிடமிருந்து திசைதிருப்பவில்லை, ஏனென்றால் ஒரு லினக்ஸ் கர்னலில் இன்று நாம் சாதாரணமாகக் கருதும் பண்புகளை ஒரு கர்னல் பெறுகிறது, எடுத்துக்காட்டாக, இது எளிதான காரியமல்ல, மீதமுள்ள ஒரு நபர் அதைச் செய்ய முற்றிலும் இயலாது என்று உறுதியளிக்கிறார். லினக்ஸ், ஜி.சி.சி, கிளிப்சி போன்ற பெரிய திட்டங்கள் ஒரு நபரால் உருவாக்கப்படவில்லை, ஆனால் பல ஒத்துழைப்பாளர்கள் உள்ளனர்.

      மேலும், நீங்கள் நிரலாக்கத்தைத் தொடங்க விரும்பினால், வலையில் உங்களுக்கு சில வழிகாட்டிகள் உள்ளன, இருப்பினும் நீங்கள் கவனமாக இருக்க வேண்டும் மற்றும் நல்ல வழிகாட்டிகளைத் தேர்ந்தெடுக்க வேண்டும். நான் லினக்ஸில் புரோகிராமிங் செய்யத் தொடங்கினேன், என் தலையுடன் மற்றும் தண்ணீரின்றி (அதாவது, பிரியமான சி மொழியுடன்) குளத்தில் குதித்தேன், இருப்பினும் இப்போது எனக்கு பைத்தானின் சில அடிப்படை கருத்துக்கள் உள்ளன (இதுவும் ஒரு நல்ல மொழி). சில சி புத்தகங்கள் உள்ளன, அதில் நீங்கள் பெறும் தலைவலியை 6 ஆம் பக்கத்தில் விட்டுவிடுகிறீர்கள், ஆனால் புத்தகங்களை விட இந்த விஷயங்கள் அனுபவத்திலிருந்து பெறப்படுகின்றன. இது OSI நெட்வொர்க் மாதிரியைப் போலவே நடக்கிறது. ஓசி மாடலில் உள்ள ஆவணங்கள் புதுமுகத்தைப் புரிந்துகொள்வது முற்றிலும் சாத்தியமற்றது, ஆனால் பிணைய அடுக்குகளைப் பற்றிய நல்ல விளக்கத்துடன் ஒரு தளத்தை நீங்கள் கண்டால், RFC கள் போன்ற தொழில்நுட்ப ஆவணங்களைக் கையாள்வதற்கான கருத்துகளை விரைவாகப் பெறுவீர்கள்.

      சுருக்கமாக, அங்கே நல்ல வலைத்தளங்கள் மற்றும் கையேடுகள் உள்ளன, அது கீழே இறங்கி நல்ல பொருளைக் கண்டுபிடிப்பது ஒரு விஷயம்.

      மேற்கோளிடு

  7.   இலவச_டோம் அவர் கூறினார்

    வணக்கம், "பிழையை தீர்க்க அனைத்து முயற்சிகளுக்கும் பிறகு: மல்டிபூட் தலைப்பு எதுவும் கிடைக்கவில்லை." மற்றும் «பிழை நீங்கள் முதலில் கர்னலை ஏற்ற வேண்டும்», ஏனெனில் என்னைப் போன்ற சிலருக்கு இருந்த முதல் கட்டுரையின் சிக்கலுக்கான தீர்வை எங்கும் கண்டுபிடிக்க முடியவில்லை ... இங்கே தீர்வு, அது யாருக்காவது வேலை செய்தால் ...

    பிழைக்கான காரணம் குறித்த எனது கோட்பாடு சரியானதா என்று எனக்குத் தெரியவில்லை, ஆனால் எப்படியிருந்தாலும், 32 பிட் இயக்க முறைமையில் கோப்புகளை தொகுக்கும்போது, ​​அது பிழையை உருவாக்கவில்லை, ஆனால் எனக்கு 64- பிட் ஆப்பரேட்டிங் சிஸ்டம் (குனு / லினக்ஸ் டெபியன் 7), மற்றும் தொகுத்து சோதனை செய்யும் போது "மல்டிபூட் தலைப்பு எதுவும் கிடைக்கவில்லை" என்ற பிழையைப் பெற்றேன், மேலும் ஒரு சந்தேகம் உள்ளது, பின்னர் என் கருத்துப்படி பிழை சூழல் அல்லது கட்டிடக்கலை காரணமாக உள்ளது இயக்க முறைமையில் நாங்கள் எங்கள் கோப்புகளை தொகுக்கிறோம் ... மேலும் நான் செய்தது எனது கோப்புகளை தொகுத்து, 32 பிட் சூழல் அல்லது கட்டமைப்பைக் குறிப்பிடுகிறது ..
    * சூடோ -o கர்னல்.ஓ -சி கர்னல்.ஆஸ்எம் -32
    * sudo gcc -o NextKernel_Main.o -c NextKernel_Main.c -nostdlib -fPIC -freestanding -m32
    * sudo gcc -m32 -o START.ELF kernel.o NextKernel_Main.o -Tlink.ld -nostdlib -fPIC -freestanding
    விசித்திரமான விஷயம் என்னவென்றால், எனக்கு சில சந்தேகங்கள் ஹஹாஹா, பின்னர் படிப்படியாக நாங்கள் உருவாக்கும் இயக்க முறைமை ஒரு x86 கட்டமைப்பிற்கானது அல்லது நான் தவறான அஜாஜா….

    சோசலிஸ்ட் கட்சி: சந்தேகத்துடன் எனக்கு உதவ யாரோ, மற்றும் சில எழுத்துப் பிழைகள் அல்லது எனது மோசமான வெளிப்பாட்டை மன்னிக்கவும், நான் சரியாக இருக்கவில்லை, எனவே «பரிபூரணத்திற்கு அதன் விலை உள்ளது…. … .ஹஹஹா

    1.    மார்ட்டின் வில்லல்பா அவர் கூறினார்

      மேதை! நான் இந்த டுடோரியலை செய்ய விரும்பினேன், ஆரம்பத்தில் அந்த தவறுடன் நான் இறங்கினேன்

  8.   ஆஸ்கார் அவர் கூறினார்

    வாழ்த்துக்கள், இது ஒரு சிறந்த பங்களிப்பாகும். நான் மூலமாகவும் மற்றவர்களிடமிருந்தும் உங்கள் நல்ல பணி நீட்டிக்கப்படும் என்பதை இனிமேல் உங்களுடன் பகிர்ந்து கொள்கிறேன்;

    மேற்கோளிடு