Close
Duke shfaqur rezultatin -19 deri 0 prej 10
  1. #1
    i/e regjistruar
    Anėtarėsuar
    17-11-2006
    Postime
    81

    Hello World! - from Kernel

    WinIntern.zip

    Motivimi

    Unė nuk kam studiuar pėr informatike, por pėr elektronike. Me tė studiuar nuk kam parasysh thjesht frekuentimin e njė shkolle. Elektronika ishte pasioni i rinisė time tė hershme. Deri para 14 vitesh, mund tė krijoja njė radio marrėse-dhėnėse FM brenda njė paqete cigaresh, vetėm pėr 3 ditė, dhe mund tė krijoja njė transmetues FM brenda njė kutie shkrepėsesh, brenda ditės (po, gjetėn pėrdorim pėr tė kopjuar nė provim – pėr celularėt s’ishte dėgjuar ende, dhe askush s’dyshonte tek njė paketė nė xhepin e kėmishės).

    Koletirin e lėshova nga dora nė vitin 97 (pėr tė mos e kapur mė), kur im atė solli nė shtėpi kompjuterin (e vetėm) tė institucionit ku punonte (pėr ta ruajtur, deri sa tė stabilizohej gjendja) – qė e kishte blerė po vetė gjatė njė specializimi 1 mujor ne Amerikė. Dhe kėshtu filloi aventura ime me kompjuterin (mbasi im atė e ktheu kompjuterin e punės, bleva kompjuterin tim tė parė, me lekė tė marrė borxh).

    Nė atė kohė nuk kishte as libra, as kurse pėr kompjuterin, as internet, dhe njohuritė qė kisha marrė nė shkollė (nė lėndėn e “informatikės“) nuk ishin tė dobishme as pėr ta ndezur njė PC.

    Gjithsesi unė kam qenė gjithmonė njė autodidakt i mirė (edhe elektronikėn vetė e kisha mėsuar – ato gjėrat mė sipėr i krijoja qė kur isha nė vit tė parė), kėshtu qė s’mu desh shumė kohė pėr t’u bėrė pėrdorues kompjuteri, dhe fill bas kėsaj mėsova (duke lexuar help-in) gjuhėn e parė tė programimit – qbasic – qė ishte pjesė e DOS-it.

    Qbasic mund tė krijonte vetėm programe pėr DOS, dhe ē’ishte mė e keqja, as nuk i kompilonte, e megjithatė unė isha aq entuziast, sa besoja se me tė mund krijohej gjithēka (pėrshirė DOS-i dhe Windows-i), dhe nėse dikush e mendonte ndryshe, mė mirė mos tė mė dilte pėrpara.

    Nė fakt arrita tė krijoja (ndėr tė tjera) 2 lojėra, Murlan dhe Xhol, me njė interface tė njėjtė me atė tė programeve tė Windows-it. Kur ja tregova tim eti, mė tha thjesht “... edhe ofisi kėshtu ėshtė...” – pėr tė, “tė arrije Bill Gates” ishte gjėja mė e natyrshme nė Botė (pėr tim atė ofisi ėshtė gjithēka: ofis, Windows, kompjuter, .... gjithēka... dhe kompjuteri ėshtė pajisja mė e pakuptimtė nėse s’e ka ofisin tė instaluar – m’u desh ca kohė pėr ta kuptuar kėtė).

    Megjithatė e vuaja faktin qė qbasic nuk kompilonte – imagjinojeni, nė atė kohė qarkullonte Windows 3.11, i cili tė lejonte tė hapje njė program thjesht me njė dopio-klik, ndėrsa pėrdoruesit e programeve tė mi, duhet tė shkruanin mė parė C:>qbasic ←, mė pas (vetėm me anė tė tastiers) tė hapnin p.sh. “murlan.bas”, dhe sė fundmi tė shtypnin F5 pėr ta ekzekutuar.

    Pėr sa i pėrket faktit qė programet i jepja si “source-code”, s’e kisha problem fare. Gjatė viteve qė krijoja skema elektronike, mė ishte ngulitur nė mendje se “small is good” (jo pėr gjithēka, por vlen si pėr pajisjet elektronike, ashtu edhe pėr programet e kompiluara ), kėshtu qė “pasionin” me tė cilin ngjeshja transistorėt e konvertova nė ambicien pėr tė shkruar sa mė shumė instruksione nė njė rresht (tė lije rreshta bosh, mund ta konsideroja si krim) – “obfuscator“-ėt e .NET-it (apo skripteve) nuk bėjnė ndonjė gjė mė shumė.

    Help-i i qbasic-ut thoshte diku se pėr t’i kompiluar programet, mund tė pėrdorej Visual Basic. Kėshtu qė i kėrkova dajės nė Greqi tė ma blinte, por... kushtonte mbi 1 milionė lekė (mund tė merrja para borxh pėr njė kompjuter, por kush mund tė mė jepte aq para pėr njė “disk kallēuku”?).

    Mbas ca kohėsh njė shok me jep Delphi-n (v 1.0) duke mė thėnė “shikoje njėherė kėtė, thonė se ky e shpėtoi Borlandi-n nga falimentimi”.

    Delphi ishte njė Botė krejt tjetėr: gjuha ishte pascal, programimi pėr Windows (WinApi – unė njihja vetėm DOS-in), objekt-orientet (unė njihja vetėm programimin procedural), Visual, sė paku po aq vizual sa janė gjuhėt e .NET-it sot.

    3 javė mbasi e instalova, fillova tė krijoj programin “Informatika 2000” me anė tė tė cilit mund tė krijoje bllokskema, dhe t’i ekzekutoje gjithashtu! E krijova pėr 3 muaj (gjatė 99-tės), edhe pse pretendoja se m’u deshėn 7 (nuk ishte abuzim, por thjesht kompensim i nėnvlerėsimit qė i bėhet punės intelektuale nė Shqipėri).

    Delphi ishte fantastik, programet ekzekutoheshin deri 30 herė mė shpejtė se nė qbasic, dhe mund tė krijoje edhe 2-3 programe nė ditė (utiliti tė vogla). Bėj hesap, njė herė po lozja me letra me tim vėlla, dhe s’po gjenim laps e letėr pėr tė mbajtur shėnim pikėt, ndėrsa ai kėrkonte, unė krijova kėtė program (vizatimet i bėri im vėlla me paintbrush, prandaj unė dukem si taliban (kishim njė “mosmarrėveshje” nė atė moment, lidhur me rezultatin qė secili kishte “memorizuar” pėr hesapin e vet)).

    Jo mė kot Delphi u quajt “the VB Killer”. Mė pas Microsoft-i ja mori Anders Hejlsberg (krijuesi i Delphit - gjithashtu autodidakt) dhe nja 30 tė tjerė Borland-it, tė cilėt krijuan J++ dhe .NET-in (C#...) tek Microsoft-i.

    Qė nga dita kur instalova Delphi-n pėr herė tė parė, nuk kam shkruar mė kurrė nė BASIC – madje edhe skriptet e HTML-ve i shkruaj gjithmonė nė JScript, dhe kur krijoja plugins pėr Word-in apo Excel-in, e kisha mė pėr mbarė tė pėrdorja C++ & COM sesa VBA.

    Me komponentėt e Delphit mund tė bėje thuajse gjithēka, megjithatė, sa mė tė avancuar bėheshin projektet e mi, aq mė shumė ekspozohesha ndaj njė gjuhe tjetėr, qė s’ishte thjesht gjuhė programimi, por “gjuha me tė cilėn programuesit komunikonin me njėri-tjetrin” – C/C++.

    Tranzicioni nga pascal-i tek C/C++ nuk ishte aq i thjeshtė sa nga basic-u nė pascal.

    Fillimisht tentova tė krijoj programe me Borland C++ Builder, i cili ishte po aq vizual sa Delphi (shfrytėzonte tė njėjtėn librari me komponentė). Por ishte njė ferr. Komponentėt e Delphit ishin shkruar nė objekt-pascal dhe assembler (pėr arsye performance, dhe pėr tė tejkaluar kufizimet e pascal-it), kėshtu qė projektet e Borland C++ Builder pėrmbanin C++, objekt-pascal dhe assembler. Pėrfundimisht jo receta mė e mirė pėr njė qė do tė mėsojė C++.

    Dhe mė sė fundi, instalova pėr herė tė parė Visual Studio (pėrmbante dhe Visual Basic-un, qė disa vite mė parė mė ishte 1 milionė... lekė larg, por qė kėsaj here pa u menduar fare i bėra “uncheck” pėr tė mos e instaluar – pėr mua nuk vlente mė jo 1 milionė lekė, po as byte-t e hard-diskut qė donte tė mė zinte).

    Gjėja qė mė bėri mė shumė pėrshtypje nga Visual Studio, ishte se ishte po aq “Visual” sa ėshtė “Demokratike” Partia Demokratike. Me sa duket emrat nuk pėrfaqėsojnė atė ēka je, por atė qė “ėndėrron” tė bėhesh.

    Gjėja e dytė qė kuptova, ishte se programimi nė Windows ishte shumė mė i ngjashėm me programimin nė DOS se sa Delphi mė kishte bėrė tė mendoja. Pėrfundimisht RAD-et tė pengojnė pėr tė mėsuar, edhe pse janė shumė produktive nė tė krijuar.

    Kjo ma bėri shumė tė vėshtirė tranzicionin nė C/C++. Disa herė e ē’instalova Borlandin duke thėnė me vete “programin e radhės do ta shkruaj nė C/C++”, por isha aq i ngadaltė, sa kur afatet skadonin, e ri-instaloja Delphin pėr ta ri-shkruar me tė. Kjo ma bėri tė vėshtirė edhe C++, pasi ndėrsa C-ja ėshtė njė gjuhė e logjikshme, C++ ėshtė fare i pa-kuptimtė kur shkruan programe tė vegjėl, dhe programet e mėdhenj pėrfundonin gjithmonė ne pascal.

    Gjithsesi, mbas njėfarė kohe u shkathtėsova edhe nė C++, dhe me tė mund tė bėja tashmė gjėra qė shkonin pėrtej repertorit tė komponentėve tė Delphit, kėshtu qė njė nga ēinstalimet (e shumta) tė Borlandit, rezultoi eventualisht i fundit (po bėhet gati njė dekadė nga hera e fundit qė shkrova nė pascal).

    Nuk e fsheh, s’jam poliglot. Dy gjuhėt e programimit qė zotėroj (C/C++ dhe assembler) mė dalin dhe teprojnė (jscript dhe gjithė skriptet e aplikacioneve apo game-engine-ve qė kam mėsuar, janė thjesht nėn-bashkėsi tė C++). Nė fakt tė njėjtin raport kam edhe me gjuhėt njerėzore. Nuk mendoj se tė dish shumė gjuhė tregon kulturė, pėrkundrazi, ėshtė shprehje inferioriteti (mos mė thoni qė Shqiptarėt kanė prodhuar mė shumė kulturė se Anglezėt apo Francezėt). ... dhe politika e kėsaj qeverisje mbi arsimin, qė i vlerėson gjuhėt e huaja mė shumė se gjithēka tjetėr, s’ėshtė veēse produkt injorantėsh, qė duan t’i kthejnė Shqiptarėt nė njė popull kamerierėsh, qė dinė ”tė marrin porosi” mundėsisht nė ē’do gjuhė tė Botės, por qė s’dinė tė bėjnė asgjė mė shumė se kaq.

    Megjithatė, assembler-in mu desh ta mėsoj (pa e braktisur C/C++), pasi sa herė ndodh njė bug, debugger-i tė “rrėfehet” vetėm nė asembler.

    Si autodidakt qė jam, pėr mua “tė dish” nuk do tė thotė tė kesh ndonjė diplomė apo ēertifikatė varur nė mur, por tė jesh i aftė tė krijosh diēka. Por ēfarė mund tė krijoja ndėrsa mėsoja assembler? Tė mėsosh asembler do tė thotė tė mėsosh se si funksionon procesori (dhe sistemi nė pėrgjithėsi), por shumė nga instruksionet dhe strukturat qė mėson, janė tė “pa-kapshme” nga “user-mode”. Plus, gjatė viteve kisha dėgjuar kaq herė se nė kernel-mode mund tė bėsh gjithēka, dhe ky ishte tashmė territori i fundit qė mė kishte ngelur pa shkelur.

    Kėshtu qė natyrshėm radha i erdhi krijimit tė ndonjė driver-i kernel-mode.

    “To be continued...” (ok, u zgjata shumė me parathėnien, por po e shkruaj kėtė tekst pėr qejfin tim, pastaj, se mos po shkruan njeri ndonjė gjė tė hajrit).

  2. #2
    i/e regjistruar
    Anėtarėsuar
    17-11-2006
    Postime
    81
    Tri zhgėnjimet e parė sapo shkela nė “kernel-world”, ishin:

    1. Driver-at nuk shkruhen nė C++ (a nuk ėshtė C++ “the ultimate C”?)
    2. Driver-at nuk kompilohen me Visual Studio (a nuk ka Visual Studio njė opsion pėr tė kompiluar Driver-a?)
    3. Driver-at nuk mund tė thėrrasin asnjė funksion “user-mode” (a nuk mund tė bėhet gjithēka nė kernel-mode?)

    Nė tė vėrtetė asnjė nga “nuk”-et e mėsipėrm ėshtė absolut, por mė parė do shpjegoj pse ekzistojnė.

    Ju e dini qė ē’do program nė ekzekutim (process) ka njė “address-space” prej 4 GB (po i referohem platformave 32 bit). Doc. thonė se 2 Gigat e poshtėm janė nė dispozicion tė programeve, ndėrsa 2 Gigat e sipėrm janė nė dispozicion tė sistemit tė operimit (Windows-i mund tė konfigurohet qė raporti tė jetė edhe 3 me 1 nė favor tė aplikacioneve).

    Ndėrsa ē’do aplikacion i ka sė paku 2 Gigat e tij private, qė s’i duhet t’i ndajė me kėrkėnd, i gjithė sistemi i operimit (pjesa kernel), plus tė gjithė driver-at kernel, plus memoria qė sistemi i operimi dhe driver-at allokojnė pėr funksionimin e tyre normal, tė gjitha kėto akomodohen nė 2 Gigat e sipėrm.

    Siē e shihni, driver-at nuk jetojnė nė njė botė bollėku (nga pikėpamja e hapėsirės qė kanė nė dispozicion). Kjo do tė thotė gjithashtu se ē’do driver ka akses nė kodin dhe data-t e ē’do driver-i tjetėr, sistemit tė operimit, dhe ē’do aplikacioni, pasi 2 Giga Byte-shi i sipėrm ėshtė pjesė address-space tė ē’do aplikacioni.

    Memoria nė dispozicion tė aplikacioneve ėshtė vetėm memorie virtuale, por driver-at pėrveē memories virtuale, mund tė kenė nevojė edhe pėr memorie fizike (non-pagable), dhe disa prej funksioneve tė njė driver-i duhet tė ngarkohen nė memorie fizike, e cila ėshtė akoma mė e pakėt se memoria virtuale.

    Pėr driver-a tė tillė ka dy rrugė: ose i gjithė driver-i ngarkohet nė memorie non-pagable, ose disa funksione ngarkohen nė memorie fizike, dhe pjesa tjetėr nė memorie virtuale.

    Natyrisht qė preferohet rruga e dytė, por C++ krijon struktura (si p.sh virtual-function-table) apo funksione (si p.sh. constructors, destructors, conversion operators, etj.) pėr hesap tė tij, duke mos i dhėnė mundėsi programuesit tė specifikojė nėse ato do ngarkohen nė memorie fizike apo virtuale.

    Kėshtu qė ndėrsa C++ mund tė pėrdoret pėr tė krijuar ēfarėdolloj driver-i, njė kategori driver-ash nuk do ishin edhe aq efiēent (nga pikėpamja e konsumit tė memories fizike).

    Pėr kėtė arsye, gjuha e preferuar (dhe rekomanduar) pėr tė shkruar driver-a ėshtė C-ja. Kjo s’do tė thotė se s’mund tė pėrdoren kompilatorė C++ - kompilatorėt C++ janė - thjesht e mira ėshtė qė driver-at tė mos shkruhen duke pėrdorur “class”, “virtual functions”, “conversion operators”, etj. por programuesi tė kufizohet vetėm nė “repertorin” e C-sė.

    Pėr sa i pėrket “zhgėnjimit” tė dytė, driver-at mund tė kompilohen qė nga IDE-ja e Visual Studio-s, por kėrkon disa hapa ekstra pėr ta konfiguruar. Kjo sepse driver-at nuk kompilohen me kompilatorėt e Visual Studio-s, por me ato tė WDK-sė. Nė internet mund tė gjesh skripte qė tė ndihmojnė pėr tė konfiguruar projekte pėr kompilimin e njė driver-i, por prapė procesi nuk ėshtė aq “automatik” saē ėshtė kur krijon aplikacione (user-mode). Megjithatė, edhe kompilimi nga command-prompt nuk ėshtė aq i vėshtirė.

    Personalisht, i mirėkuptova arsyet mbrapa dy “zhgėnjimeve” tė parė, duke shkruar nė C, dhe kompiluar nga komand-prompti, por me zhgėnjimin e tretė s’mud tė bėja paqe.

    Driver-at mund tė bėjnė ē’do gjė, pėrfshirė edhe ato gjėra qė Microsoft-i thotė se s’mund tė bėhen (p.sh. doc. thonė se as driver-at nuk mund tė ē’aktivizojnė DEP-in (Data-Execution-Prevention), e megjithatė unė s’e pata fare problem, qė pa pėrdorur asnjė API, t’i bėj “clear” bit-it pėrkatės nė memorie.

    Megjithatė ka disa arsye objektive pse driver-at s’mund tė thėrrasin funksione user-mode. Po pėrmend njė:

    Nė konfigurimin default, thread-et e ē’do aplikacioni, ndėrsa ekzekutojnė user-mode-code, kanė nė dispozicion njė stack prej 1 MB, i cili edhe mund tė rritet, ndėrsa kur janė duke ekzekutuar kernel-mode-cde, ata kanė nė dispozicion njė stack prej 12 kB. Meqėnėse stack-u ėshtė shumė i vogėl, driver-at nuk shkruhen duke thirrur njė funksion, i cili thėrret njė funksion, i cili thėrret njė funksion, ... dhe as nuk abuzojnė me variablat lokal. Por Win-API nuk ėshtė dizenjuar me kėtė kufizim nė mendje, dhe edhe sikur gjithēka tjetėr tė funksiononte, thirrja e njė funksioni user-mode sipas tė gjitha gjasave do shkaktonte stack-overflow. Pėr mė tepėr doc. thonė se Windows-i do shkaktonte fault nėse procesori ndodhet nė “priviledged mode” (kernel-mode) teksa ekzekuton user-mode-code.

    Por mua mė lindi njė pyetje: po sikur tė mė duhej tė shkruaja njė ati-virus, driver-i i tė cilit nė heshtje monitoron trafikun prej-dhe-drejt hard-disk-ut, dhe nė njė moment tė caktuar ndesh njė virus qė s’mund ta eliminojė dot, nė kėtė pikė duhet tė njoftoj pėrdoruesin, po si?

    Pėrgjigjen e gjeta duke kėrkuar nė internet:

    Paketa e anti-virusit duhet tė pėrmbajė njė program qė ekzekutohet gjatė gjithė kohės (d.m.th. njė service) i cili i dėrgon njė overlapped (asynchronous) IOCTL (IO-control-code) driver-it, por ky i fundit nuk e kompleton kėrkesėn (request-in). Meqenėse kėrkesa ishte asynchron, service vazhdon punėn normalisht. Kur driver-i ka nevojė t’i komunikojė diēka mbrapsht service-s, ai kompleton IOCTL-nė, nė kėtė pikė service ekzekuton programin (me user-interface) qė komunikon me pėrdoruesin.

    E gjitha kjo funksionon, megjithatė, nuk mė pėlqente ideja e tė pasurit njė program gjithė kohėn nė ekzekutim (service) thjesht dhe vetėm pėr t’i mundėsuar driver-it qė tė lanēojė programin UI (me user-interface).

    Tani, unė nuk kam ndėrmend tė shkruaj njė ati-virus, dhe e vetmja arsye pse vendosa tė shkruaj njė driver, ishtė pėr tė praktikuar ato ē’ka kisha mėsuar nė asembler dhe nga doc. e intel-it, e qė kėrkonin akses tė privilegjuar nė hardware (kernel-mode, sipas terminologjisė sė Microsoft-it), por si e pashė qė s’ishte aspak e vėshtirė (duke ēaktivizuar DEP-in), e humba interesin menjėherė, dhe me shumė pasion fillova tė kėrkoj (kryesisht nė site autorėsh virusesh) se si tė ekzekutoj user-mode-API nga kernel-mode-code.

    Ėshtė vėrtetė ironike tė shkruash njė driver pėr tė thirrur “CreateProcess”, apo “MessageBox”, por ja qė nė “kernel-world” kjo ėshtė njė goxha sfidė (dhe ky qė duhej tė ishte njė driver “Hello World”)

    Driver-at s’janė veēse *.dll, dhe si tė tillė nuk pėrfaqėsojnė “procese”. Por thirrja e funksioneve user-mode bėhet nė kontekstin e njė procesi, kėshtu qė driver-it s’i ngelet veēse tė “marrė hua” njė proces ekzistues.

    Programi nė fillim tė kėsaj kolone, pėrmban njė driver (si resource). Kur ekzekutohet, ai ngarkon driver-in, dhe ky i fundit thėrret MessageBox(...) nė kontekstin e Explorer-it, dhe konkretisht nė kontekstin e thread-it qė ka krijuar dritaren qė pėrfaqėson Desktop-in. Kjo mund tė verifikohet me WinSpy. Meqenėse dritaret e krijuar nga MessageBox(...) jane “modal”-e, ju nuk mund tė ndėrveproni dot me desktopin pa mbyllur mė parė message-box-in.

    Lidhur me informacionin e shfaqur nga MessageBox, mund tė shkruaj njė herė tjetėr.

  3. #3
    i/e regjistruar Maska e Klevis_Vl
    Anėtarėsuar
    23-11-2008
    Postime
    17
    Ju pergezoj per kete shkrim! Eshte me te vertete shume interesant dhe mbreselenes. Me pelqen menyra qe ju keni ndjekur per te arritur atje ku thuhet ne kete shkrim se jeni! Urime!

  4. #4
    i/e regjistruar
    Anėtarėsuar
    16-04-2004
    Postime
    684
    Me sa me kujtohet mu (prej diteve kur shkrujshim naj drejtues per linux) eshte edhe nje dallim ne sintakse. Drejtuesi (pra programi) nuk ka "main" po "init" dhe "exit". Besoj se e njejta vlen edhe per microsoft.

  5. #5
    i/e regjistruar Maska e nince_tutes
    Anėtarėsuar
    17-12-2007
    Postime
    217
    Pershendetje Neritan.

    Ju nuk m njihni, kurse un po.
    E kam lexuar me sh pasion shkrimin tuaj. Prej sh vitesh kam degjuar per ty, kam pare lojen tende t murlanit (sic e permend n komentin tend), por t njoh nga djali i xhaxhait, Toneti.

    Ashtu si dhe t tjeret, dhe un kam studiuar per elektronike, n TR, por nje nga pasionet q kam pas, ka qene dhe programimi. Edhe pse eshte i lodhshem, stresues, etj etj, kam arritur q t krijoj disa aplikacione t vogla.

    nje prej tyre ka qene nje loje shahu (2005), e krijuar n gjuhen C, per t cilen kam punuar rreth 45 dite n behar, m duhej per shkollen, dhe n fakt e mora 10 si lende.

    Por disa muaj m vone, kam pare nje loje tenden shahu, t krijuar n C:, q ishte me guret me ngjyra.

    Jam munduar t kuptoj kodet tuaja, por e kam pas t pamundur. Por gjithsesi, arrita dhe e krijova dhe vete me ngjyra tabelen e shahut (edhe pse nuk m duhej m per shkollen, pasi e kisha dorezuar dhe isha vleresuar, por u more me te per egon time, t sfidoja veten, t arrija dicka q t tjeret mundeshin, kishin mundur, n rastin tim JU.)

    Por, gafa ime m e madhe ishte se gjate transportit nga nje pc tek tjetri, nga flashi n PC, nga pc n flash, i kam fshire padashur kodet dhe exen e shahut me njgyra. Kjo m dhemb edhe sot pas 5 vitesh kur e kujtoj, nuk ja fal vetes si nuk e hodha n nje CD, pasi e dija q do m rrezikohej duke e humbur nga pc im.

    Ajo q m ka mbetur, m ka mbetur versioni i pare i shahut, ai q kam dorezuar n fakultet, dhe q e kam marre 10 sic thashe, jo per mburrje po e them, se ato notat n fakultet, askujt nuk i duhet, n pune ste pyet njeri fare se me se je vleresuar n fakultet, por t teston se sa i afte je TO DO THINGS, TO MAKE THEM WORKING.

    Po e postoj ne kete artikull, edhe pse eshte si jashte teme, kete exen e shahut.

    M vone, m eshte dashur t merrem, dhe merrem me Access 2007, me t cilin kam krijuar disa software:
    1. tek posta shqiptare
    2. tek bilardot e blurit
    3. nje tip POS
    4. Personale, t miat (ku mbaj psh inventarin financiar ditor, mbaj shenimet per ebooks q lexoj dhe do i jap provime online, etj etj.....)

    n fakt, tani per mua programimi eshte vetem nje pasion, pasi jam i fokusuar m sh n networking (kam mbrojt dhe CCNA me autodidakt) etj etj, por gjithsesi, i inkurajoj dhe i mbeshtes njerezit q shfaqin aftesi programuese.

    Eshte nje sport m vete t programuarit, eshte dicka q jo t gjithe mund ta bejne, kerkon fantazi, perfytyrim, t hedhesh n mendje, n koke, ate q t berbellit useri, ato fjalite dhe kerkesat e tij abstrakte, t'ja qesesh n nje program, n software. eshte dicka q kerkon kapacietet mendor, kerkon sh ego, aftesi, ngulmim, vetemohim.

    T gjitha keto q permenda, un e di q ti i ke, dhe i disponon, por ashtu si dhe ty, jane dhe disa cuna t tjere ketu n forum q nuk kursehen, jane super, dhe q ja vlen ti vleresosh.

    po e mbyll dhe un. Dua t t pershendes neritan, un e di q ti je nje njeri me talent. t pergezoj.

    p.s
    q t exekutohet loja e shahut, duhet hapur dritarja me rezolucion 300x200
    Skedarėt e Bashkėngjitur Skedarėt e Bashkėngjitur

  6. #6
    i/e regjistruar
    Anėtarėsuar
    16-11-2005
    Postime
    8,691
    faleminderit per keto shkrime neritan,
    jane te rralle programuesit e vertete sot ne xhiro,
    informatika eshte degraduar ku te programosh kuptohet si "te dish te perdoresh ndonje framework".

    Assembler eshte mbreti i gjuheve te programimit,
    i ndjekur natyrisht nga C
    Ndryshuar pėr herė tė fundit nga xfiles : 09-02-2010 mė 12:28

  7. #7
    i/e regjistruar
    Anėtarėsuar
    17-11-2006
    Postime
    81
    Ju falėnderoj dhe unė.

    Citim Postuar mė parė nga nince_tutes Lexo Postimin
    kam pare lojen tende t murlanit (sic e permend n komentin tend)
    Loja e murlanit qė ke parė ėshtė ndoshta programi i fundit qė kam shkruar me Delphi-n, (Xholin e shkrova nė C++). Unė u referohesha versioneve pėr DOS, qė kisha shkruar me qbasic.

    Citim Postuar mė parė nga nince_tutes Lexo Postimin
    kam pare nje loje tenden shahu, t krijuar n C:, q ishte me guret me ngjyra
    Nė fakt s’ishte lojė - ishte i njėjti ushtrim shkolle qė tė ėshtė kėrkuar dhe ty (mua ma kėrkoi Toneti)

    Citim Postuar mė parė nga nince_tutes Lexo Postimin
    Jam munduar t kuptoj kodet tuaja, por e kam pas t pamundur
    Nėse do e kisha shkruar me shkrim dore, do ta pranoja, pasi as vetė nuk arrij ta lexoj, por edhe nė kompjuter... kaq keq shkruaj? - ok, bėj shaka (jo pėr shkrimin e dorės!).

    Citim Postuar mė parė nga nince_tutes Lexo Postimin
    Eshte nje sport m vete t programuarit
    Unė do shtoja se:
    Nėse skulpturat imitojnė paraqitjen fizike tė njeriun, programet imitojnė aftėsitė e tij mendore (pėr hir tė sė vėrtetės lojėrat 3D e imitojnė nė gjithēka).

    Citim Postuar mė parė nga Uke Topalli Lexo Postimin
    Me sa me kujtohet mu (prej diteve kur shkrujshim naj drejtues per linux) eshte edhe nje dallim ne sintakse. Drejtuesi (pra programi) nuk ka "main" po "init" dhe "exit".
    Unė nuk i krahasova me *.exe-tė por me *.dll-tė.
    Vėrtetė *.dll-tė kanė “DllMain(...)”, ndėrsa driver-at “DriverEntry(...)”, por ky nuk pėrbėn njė dallim, as sintaksor dhe as thelbėsor. Funksionet “hyrėse” tė moduleve tė ndryshėm kanė emra default (main, WinMain, DllMain...), por mund tė specifikosh dhe njė emėr tė ēfarėdoshėm (p.sh. duke pėrdorur opsionin /ENTRY tė link-erit).

    Natyrisht funksionet ndryshojnė edhe nė prototip, por as ky nuk pėrbėn njė ndryshim sintaksor (apo thelbėsor). P.sh. nė rastin e *.dll-ve, funksioni DllMain (entry-point) ėshtė fakultativ. Ndėrkohė qė nėse *.dll-ja pėrfaqėson njė in-process-server (COM), duhet tė eksportojė sė paku DllGetClassObject(...) dhe DllCanUnloadNow(...), ndėrkohė qė nė rast se *.dll-ja pėrfaqėson njė Control-Panel-Application (pre-Windows Vista), *.dll-ja duhet tė eksportojė CPIApplet(...), nėse shkruan njė plugin pėr 3dsmax, apo ndonjė aplikacion tjetėr, tė tjerė funksione kėrkohet tė eksportosh (madje mund tė krijosh njė *.dll qė tė jetė njėherėsh: com-server, control-panel-applet, plugin i 3dsmax, IE, Word-it, Excel-it, etj.)

    Driver-at mund tė ndahen nė dy kategori tė mėdha:
    - Driver-a qė administrojnė njė (apo mė shumė) pajisje hardware (apo janė hallkė e vargut tė driver-ave tė angazhuar nė kėtė proces).

    - Driver-a qė pėrfaqėsojnė ekstensione aplikacionesh pėrtej barrierės “user-mode” (p.sh. anti-viruset, kategori virusesh, utiliti tė ndryshme, ... shoqėrohen me driver-a tė tillė). Janė tė ngjashėm me *.dll-tė nė kuptimin qė ashtu si *.dll-tė, s’janė veēse librari-funksionesh nė dispozicion tė programeve.

    Ajo ēka i dallon (nga gjithė programet user-mode) ėshtė “ambienti” qė programojnė. P.sh. me jscript mund tė programosh elementėt e njė faqe HTML, por mund tė programosh edhe objektet e njė loje 3D (pėr ato game-engine qė pėrdorin jscript) – ėshtė e njėjta gjuhė (nė sintaksė dhe fjalor) qė programon dy “ambiente” (environments) tė ndryshme.

    “Bota e bėrthamės” (kernel-it) ndryshon vėrtetė nga ajo “e pėrdoruesve” (user-mode).

    P.sh nė user-mode, ē’do thread i pėrket njė procesi, dhe s’ka akses nė resourset e njė procesi tjetėr, ndėrsa nė kernel, njė thread mund ta “braktisi” pėrkohėsisht procesin e tij, pėr tė “hyrė” nė njė proces tjetėr (duke thirrur KeStackAttachProcess(...) dhe KeUnstackDetachProcess(...)).

    Gjithashtu, nė user-mode, gjithė ēfarė mund tė “shohėsh” prej njė objekti, ėshtė “doreza” e tij (handle), ndėrsa nė kernel, po pate njė “dorezė”, mund tė “shtiesh nė dorė” tė gjithė objektin, duke thirrur ObReferenceObjectByHandle(...).

    Kėshtu, nė user-mode, process-et, thread-et, event-et, file-t, etj. janė vetėm “handle”, ndėrsa nė kernel mund tė sigurosh njė pointer nė strukturat qė pėrfaqėsojnė kėto objekte, dhe t’i manipulosh (nuk rekomandohet, gjithsesi) siē manipulon elementėt e ē’do strukture tjetėr. P.sh. njė nga mėnyrat pėr ta bėrė njė program (process) tė pa-dukshėm pėr Task-Manager-in (dhe ē’do utiliti tjetėr), ėshtė ta shkėpusėsh strukturėn qė pėrfaqėson atė proces, nga vargu nė tė cilin ndodhet, duke shkruar diēka tė tillė:

    PLIST_ENTRY pThis = (PLIST_ENTRY)((PUCHAR)pThis_EProcess + offset);
    pThis->Blink->Flink = pThis->Flink; // bėjmė qė procesi qė ndodhet mbrapa tė shenjojė tek procesi qė ndodhet pėrpara
    pThis->Flink->Blink = pThis->Blink; // bėjmė qė procesi qė ndodhet pėrpara tė shenjojė tek procesi qė ndodhet mbrapa
    pThis->Flink = pThis->Blink = pThis;

    Njė mėnyrė tjetėr ėshtė tė mbishkruash elementėt e vektorit “ServiceTable” (adresa e kėtij vektori shfaqet nė programin tim nė fillim tė kollonės) qė pėrfaqėsojnė adresat e funksioneve (quhen “service” nė terminologjinė e kernel-it) qė kernel-i eksporton nė user-mode, me adresat e disa nga funksioneve qė shkruan vetė (tė cilėt mė pas thėrrasin versionet origjinale). Nė kėtė mėnyrė njė driver mund tė vendoset midis pjesės user-mode (me njė fjalė gjithė aplikacionet) dhe asaj kernel-mode, duke monitoruar, apo dhe modifikuar, inputin & autputin e kėtyre funksioneve.

    Me kėtė teknikė mund fshehėsh procese, file, drejtori, pjesė tė regjistrit tė windows-it, etj.

    P.sh. mund tė krijosh njė drejtori, qė asnjė program nuk e sheh, dhe nė tė tė ruash gjithė file-t dhe drejtoritė qė pėrdoruesi krijon apo modifikon, dhe ndėrkohė qė sa herė pėrdoruesi (apo ndonjė program) ri-hap kėto file, driver-i e modifikon path-in (nė mėnyrė qė t’i referohet versioneve qė ai ruan nė drejtori-nė e tij) pėrpara se tė thėrrasė versionin origjinal tė funksioneve qė ka “impostuar” (p.sh. CreateFile, DeleteFile, etj.) Nė mėnyrė tė ngjashme vepron edhe me ēelėsat e regjistrit.

    Kur kompjuteri fiket, apo ristartohet, driver-i e fshin pėrmbajtjen e kėsaj drejtorie, ndėrsa file-t dhe drejtoritė origjinale janė tė pa-prekura, dhe gjithė ndryshime e bėra nė kompjuter, janė “zhbėrė”. Ju sjell ndėrmend ndonjė program?

    Ndonėse nė kernel-mode nuk mund tė bėhen njė shumėllojshmėri e tillė gjėrash qė bėhen nė user-mode, prapė se prapė, ėshtė njė “vend” qė ja vlen ta vizitosh herė mbas here.

  8. #8
    i/e regjistruar
    Anėtarėsuar
    16-04-2004
    Postime
    684
    Eshte dallim edhe thelbesore edhe sintaktik, mu per arsye se si ngarkohen drejtuesit (jemi duke flasur per drivera apo jo?) dhe si shkarkohen, dallon ne mase te madhe prej librarive dhe programeve.

  9. #9
    i/e regjistruar
    Anėtarėsuar
    11-09-2009
    Postime
    9

    Lightbulb

    Citim Postuar mė parė nga Neritan Hyso Lexo Postimin
    WinIntern.zip

    Si autodidakt qė jam, pėr mua “tė dish” nuk do tė thotė tė kesh ndonjė diplomė apo ēertifikatė varur nė mur, por tė jesh i aftė tė krijosh diēka.
    -Pikerisht kjo eshte qe ben diferencen sot dhe qe une e them gjithmone. 99% e "studenteve te dalluar" sot jane 0 (zero) nga ana praktike. Une kam studiuar informatike dhe nuk jam shquar per rezultate te larta ne pergjithesi por ama detyrat praktike apo programuese i kam bere gjithmone me pasion.
    Mund te them se programimi eshte nje veti apo aftesi e lindur por qe e zbulon nga praktikimi. Me vjen keq kur shoh sot qe universitetet shqiptare prodhojne injorante "ne seri" ne fushat perkatese dhe vetem nje pjese shume e vogel ja vlen dhe e meriton titullin e diplomes.
    -Eshte per t'u admiruar puna juaj, aq me teper si autodidakt. Pervec te tjerave qe u permenden me siper, dua te permend ketu edhe "Fjalorin e Integruar 5 Gjuhesh" qe eshte nje kryeveper me vete".
    Une krijoj programe per cdo gje qe me nevojitet ne pc por "idete e medha" jane akoma "ne sirtar" pasi fusha e informatikes eshte e pafundme dhe asnjehere "nuk na del koha"
    Nuk e di nese keni nje website personal (perveē Intein?) por do ishte interesante ideja e nje website ku te jene te vlefshme programet tuaja, qofte edhe "shareware", pasi pasioni ushqehet edhe nga xhepi
    Te uroj gjithe te mirat dhe deshiroj te them se destinacioni i ardhshem duhet te jete tregu nderkombetar i softwareve!!

  10. #10
    i/e regjistruar
    Anėtarėsuar
    02-02-2021
    Postime
    1

    Arrow Pėr: Hello World! - from Kernel

    Pershendetje,
    Njihni ndonjerin qe perdor gjuhen e programimit DELPHIN, per tu punuesuar me koh te plote ose projekte +355675000661

Regullat e Postimit

  • Ju nuk mund tė hapni tema tė reja.
  • Ju nuk mund tė postoni nė tema.
  • Ju nuk mund tė bashkėngjitni skedarė.
  • Ju nuk mund tė ndryshoni postimet tuaja.
  •