Nevainojami lietotāja moduļi. Bezcerīgi. Linux kodola moduļu instalēšana

]

Moduļi tiek izmantoti, lai paplašinātu un mainītu veidu, kā darbojas ZNC. Lietotāji mijiedarbojas ar moduļiem visbiežāk, nosūtot ziņojumu īpašam lietotājam IRC. Piemēram, lai skatītu izceltos atslēgvārdus savā skatīšanās sarakstā, jums ir jānosūta /msg *skatīšanās saraksts. Kad ZNC redz, ka segvārds, ar kuru jūs sūtāt ziņojumu, sākas ar zvaigznīti, tas nepārsūta ziņojumu uz IRCd/serveri, bet gan nosūta to uz atbilstošo moduli apstrādei. Šādā gadījumā pulksteņa modulis saņems ziņojumu un atbildēs ar jūsu atslēgvārdu sarakstu. Tas nodrošina ļoti ērtu un standarta veidu, kā konfigurēt ielādētos moduļus vai citādi sazināties ar tiem, kā arī parastu un standarta veidu, kā ielādētie moduļi parāda statusu vai citu informāciju. Ņemiet vērā, ka tas attiecas uz ielādētiem moduļiem. Piemēram, jums ir jāielādē dotais modulis /znc loadmod pulkstenis, pirms varat saskarties ar pulksteņa moduli. Lielākā daļa moduļu atbildēs uz /msg *moduļa palīdzība ar pieejamo komandu sarakstu.

Tiek ielādēti arī ZNC moduļi globāli, katram tīklam, vai uz a vienam lietotājam pamata. Katrs modulis pats nosaka, vai tas ir pieejams ielādei kā globāls, tīklam un/vai lietotājam raksturīgs. Lietotāja līmeņa un tīkla moduļi var veikt dažādas darbības, sākot no manipulācijas ar ienākošajiem/izejošajiem ziņojumiem līdz pilna Twitter klienta ieviešanai. Viņi var veikt arī tradicionālākus IRC uzdevumus, piemēram, uz izaicinājumiem balstītu automātisko darbību, atstādināšanu no jums vai reģistrēties diskā. Katrs lietotājs var ielādēt un konfigurēt savu moduļu komplektu, lai pielāgotu savu pieredzi savām vēlmēm.

Globālos moduļus var ielādēt administratori, un tie nodrošina funkcionalitāti vai maina uzvedību visiem lietotājiem. Piemēram, partijas līnijas modulim ir jābūt globālam, jo ​​tas nodrošina funkcionalitāti visiem lietotājiem noteiktā ZNC instancē, lai viņi varētu sazināties savā starpā no paša ZNC. Globālie moduļi var darīt visu, ko var darīt lietotāja līmeņa moduļi, kā arī dažas ekstras. Tie var aizstāt ZNC autentifikācijas sistēmu, modificēt konfigurācijas rakstīšanas procesu, nodarboties ar CAP utt.

Jūtieties brīvi izveidot vikilapas par saviem izveidotajiem moduļiem, taču neaizmirstiet pievienot lejupielādes saiti, kontaktinformāciju un izmantot to pašu izkārtojumu kā pārējiem moduļiem. Ieguldījumi vienmēr tiek novērtēti.

Moduļu saraksts [rediģēt]

Globālie moduļi [rediģēt]

adminlog Žurnāla lietotājs izveido savienojumu, atvieno un neizdevās pieteikšanās failam un/vai syslog. blockuser Bloķē noteiktus lietotājus no ZNC lietošanas, sakot, ka viņu konts ir atspējots. certauth Šis modulis ļauj lietotājiem pieteikties, izmantojot SSL klienta atslēgas. cyrusauth Šis modulis ir paredzēts administratoriem, kuri izmanto čaulas/tīmekļa/e-pasta/etc serveri un vēlas nodrošināt ZNC piekļuvi saviem esošajiem lietotājiem. fail2ban Bloķēt IP kādu laiku pēc neveiksmīgas pieteikšanās. identfile Izliek lietotāja identitāti failā, kad viņš mēģina izveidot savienojumu. imapauth Ļauj lietotājiem autentificēties, izmantojot IMAP. lastseen Reģistrē, kad lietotājs pēdējo reizi pieteicies ZNC. modperl Ielādē Perl skriptus kā ZNC moduļus. modpython Ļauj izmantot Python rakstītos moduļus. notify_connect Nosūta paziņojumu visiem administratoriem, kad lietotājs piesakās vai izrakstās no ZNC. partyline Ļauj ZNC lietotājiem pievienoties iekšējiem kanāliem un meklēt citus ZNC lietotājus tajā pašā ZNC. webadmin Ļauj pievienot/noņemt/rediģēt lietotājus un iestatījumus, izmantojot tīmekļa pārlūkprogrammu.

Lietotāja moduļi [rediģēt]

admin (tagad vadības panelis) Ļauj pievienot/noņemt/rediģēt lietotājus un iestatījumus, izmantojot IRC ziņojumus. autoattach Novēro jūsu atdalītos kanālus un automātiski pievieno jūs atkārtoti, ja kanālā, kuru pievienojāt automātiskās pievienošanas sarakstam, ir noteiktas darbības. autoreply Sniedz automātisku atbildi, ja kāds jums nosūta ziņojumu, kamēr esat prom. block_motd Bloķē servera dienas ziņojumu bouncedcc Atlaiž DCC pārsūtījumus caur znc serveri, nevis sūta tos tieši lietotājam buffextras Pievienojiet atskaņošanas buferim nika izmaiņas, savienojumus, daļas, tēmas izmaiņas utt. chansaver Saglabā kanālus konfigurēšanai, kad user joins and parts.charset Normalizē (t.i., pārvērš) rakstzīmju kodējumus.clearbufferonmsg Šis modulis mēģina pārvarēt plaisu starp appludināšanu ar veco buferi, ja jums ir KeepBuffer=true =false.clientnotify Paziņot par jauniem ienākošajiem savienojumiem jūsu user.controlpanel Atļauj Jūs varat pievienot/noņemt/rediģēt lietotājus un iestatījumus lidojumā, izmantojot IRC messages.ctcpflood Šis modulis mēģina bloķēt CTCP floods.dcc Šis modulis ļauj pārsūtīt failus uz un no ZNC disconkick Šis modulis izsitīs jūsu klientu no visiem kanāliem, ja ZNC atvienojas no servera. ch ir applūduši. listsockets Šis modulis parāda visu ZNC atvērto ligzdu sarakstu. log Reģistrējieties tērzēšanas darbību failā. missingmotd Šis lietotāja modulis nosūtīs 422 klientiem, kad viņi pieteiksies. piezīmes Saglabājiet un atkārtojiet piezīmes. Šis ir WebMods piemērs. paraugs Šis ir moduļa piemērs, kas palīdz rakstīt moduļus, lai darītu visu, ko vēlaties. send_raw Ļauj nosūtīt neapstrādātu trafiku uz IRC no citiem lietotājiem. shell Piekļūstiet savam Unix apvalkam, izmantojot vaicājumu tieši savā IRC klientā.

Tīkla moduļi [rediģēt]

autocikls Atkārtoti pievienojieties kanālam, kad esat tur vienīgais (lai iegūtu operatora statusu). autoop Automātiski piešķirt operatora statusu labajiem puišiem. modtcl Ļauj palaist Tcl skriptus ZNC. autovoice Automātiski piešķiriet balss statusu ikvienam, kas pievienojas kādam kanālam. awaynick Mainiet savu niku, kamēr esat prom. awaystore Kad esat atdalīts vai atdalīts, šis modulis saglabās visas jūsu privātās ziņas. Ziņojumus var lasīt, līdz tos izdzēšat. Šis modulis jūs atstās arī tad, kad kādu laiku būsiet dīkstāvē. cert Šis modulis ļauj lietotājiem izmantot savu SSL sertifikātu, lai izveidotu savienojumu ar serveri. crypt Kanāla/privāto ziņojumu šifrēšana. keepnick Mēģina iegūt un saglabāt savu primāro segvārdu, ja tas tiek paņemts. kickrejoin Ievieš automātisku atkārtotu pievienošanos sitienam. modules_online Vilto ZNC moduļu tiešsaistes statusu, lai labotu dažus klientus. nickserv autentificē jūs, izmantojot NickServ. veikt savienojuma izpildes komandas. Autorizē jūs ar Q (un nedaudz vairāk). raw Skatīt visu neapstrādāto trafiku. route_replies Maršrutē atbildes atpakaļ pareizajam klientam, ja ir izveidots savienojums ar vairākiem klientiem. sasl Ļauj autentificēties IRC tīklā, izmantojot SASL savebuff Saglabā jūsu kanālu buferus šifrētā failā, lai tie varētu izturēt restartēšanu un atsāknēšanu. schat SSL (šifrēta) DCC tērzēšana. simple_away Automātiski izslēdz jūs no IRC, kad esat atvienots no izlēcēja. stickychan Notur jūs noteiktos kanālos. skatīties Pārraugiet darbību, meklējot konkrētus teksta modeļus no konkrētiem lietotājiem, un nosūtiet tekstu uz īpašu vaicājuma logu.

Vairāk moduļu [rediģēt]

Moduļu pārvaldība [rediģēt]

Moduļus var viegli pievienot vai noņemt. Pēc noklusējuma moduļus var saglabāt mapē ~/.znc/modules un /usr/local/lib/znc. ZNC instalē savus moduļus šajā otrajā direktorijā, kas patiesībā ir $(prefix)/lib/znc , taču pirms kompilēšanas to var mainīt ar ./configure --module-prefix=DIR.

Meklējot moduļus, ZNC vispirms meklēs lokālā apakšdirektorija moduļus. Tikai faili, kas beidzas ar “.so”, tiks uzskatīti par moduli. Lai noņemtu moduļus, varat tos vienkārši izdzēst no mapes. Citas konfigurācijas izmaiņas vai restartēšana nav nepieciešamas. Lai noņemtu, bet arī paturētu moduli vēlākai lietošanai, varat arī mainīt nosaukumu, piemēram: mv sample.so sample.so_ .

Lai apkopotu jaunu moduli, vispirms jāsaglabā avots kā ".cpp" fails. Moduļu sastādīšana detalizēti apraksta procesu.

Globālos, lietotāju un tīkla moduļus var (at)ielādēt no tīmekļa administratora vai izmantojot *statusa vaicājuma logu, piemēram:

/msg *statuss LoadMod [--type=global|user|network] /msg *statuss UnloadMod [--type=global|user|network]

  • konfigurācija
  • [--type=global|user|network] pēc izvēles norāda, vai (at)ielādēt moduli kā globālo, lietotāja vai tīkla moduli. ne visus moduļus var ielādēt visos līmeņos; skatiet individuālā moduļa dokumentāciju, lai uzzinātu, kur to var ielādēt.
  • ir balstīts uz moduļu faila nosaukumu, izņemot paplašinājumu ".so".
  • Ir specifiski katram modulim un nav obligāti: Varat norādīt parametrus, ielādējot moduli, vai arī varat iestatīt moduli pēc tā ielādes.

Tātad, lai ielādētu žurnāls modulis vietnē globāli līmenī (atšķirībā no lietotāja vai tīkla) un noņemiet visus krāsu/formatēšanas kontroles kodus, izmantojot - sanitizēt parametru, jums jāievada:

/msg *statuss LoadMod --type=global log -sanitize

Vecākām ZNC versijām jums nebūs iespējas norādīt [--type=global|user|network] . Tādā gadījumā vienkārši izmantojiet:

/msg *statuss LoadMod /msg *statuss UnloadMod

Lūdzu, ņemiet vērā, ka lietotājs nevar ielādēt moduli, ja direktīvai "DenyLoadMod" ir iestatīta vērtība True. Mēģinājums ielādēt moduli neizdosies ar "Nevar ielādēt [ ]Pieeja noliegta.".

Ja modulis neļauj ZNC palaist un tāpēc nevarat izlādēt moduli, izmantojot webadmin, varat rediģēt znc.conf un noņemt atbilstošo LoadModule rindiņu.

izmantojot moduļus [rediģēt]

Ja vēlaties uzzināt, kā modulis darbojas, ieteicams izlasīt moduļa wikilapu. alternatīvi komandu saraksta iegūšanai var izmantot šādu komandu:

/msg* palīdzēt

  • * ir statusa prefikss, kas iestatīts jūsu konfigurācijā. Parasti tā ir tikai zvaigznīte ("*").

NODE.JS- programmatūras rīks js izpildei.

Nodejs = V8 + I/O + bibliotēkas

V8: ātrs, moderns, ekonomisks

Priekšrocības

  • javascript
  • Kopīgs kods klientā un serverī
  • Tīmekļa pamata uzdevumi
  • Daudzi savienojumi un uzdevumi vienlaikus
  • Viegli izveidot strādājošu prototipu
  • Ērts npm pakotņu pārvaldnieks
  • kopiena

Uzstādīšana

instalējot nodejs, tas pats ieraksta PATH mainīgo (+ npm), [administrācija - vides mainīgie]; var pārbaudīt komandrindā:
iestatīt PATH

Parasti faili tiek palaisti zem nodejs: uzrakstīsim vienkāršu skriptu un palaidīsim to, izmantojot komandrindu:


Skripts tiks izpildīts, un rezultāts tiks parādīts komandrindā.

nodejs dokumentcija

nodejs moduļi

Lai saprastu, kā darbojas iebūvētie nodejs moduļi, no nodejs vietnes ir jālejupielādē avota arhīvs (avota kods). Un dodieties uz lib direktoriju. (komandu dir - iegūstiet failu sarakstu, izmantojot komandrindu; ja nepieciešams uzskaitīt failus visās apakšmapēs, tad " dir " vietā izmantojiet " dir / s "). Ja instalējāt nodejs no pakotnes, jūs neatradīsit failus mapē lib.

Nodejs ir moduļi ar dažādām pakāpēm stabilitāte. (piemēram, 0 - neizmantot; 1 , 2 - jūs varat to izmantot, bet moduļa API var mainīties).

Funkcijas aug (projekts attīstās), un laika gaitā mums vajadzēs pārvietot USER konstruktora funkciju uz atsevišķu failu. Šeit tiek izmantoti moduļi.

Moduļi ir veids, kā nodejs piedāvā organizēt projektu.

Projektiem ir tendence augt, kas izraisa vēlmi sadalīt projektu vairākos failos - šeit tiek izmantoti moduļi.

pieprasīt

HTML lapām skriptu savienošanai izmanto skripta tagu. Nodejs ir īpaša prasība komanda.

var lietotājs = prasīt("./lietotājs");

Mūsu piemērā mēs piekļūstam failam (user.js) tajā pašā direktorijā (paplašinājums (.js) nav obligāts).

//require(./user"); // .js nav obligāts // šajā gadījumā fails tiks izpildīts, bet USER // mainīgais nebūs // šī ir galvenā atšķirība no skripta tagiem no nodejs // Node.js funkcijas un mainīgie no katra moduļa ir globāli // šim failam (pašam modulim) un tie automātiski // nekļūst pieejami, kad tie ir iekļauti (require(./user")) // Bet kā iegūt piekļuvi? // Katram modulim ir īpašs mainīgais eksports - tas ir objekts un // tas, ko es tur ievietoju, atgriezīsies, kā rezultātā pieprasīt var user = request("./user.js"); // rezultāts: lietotājs = ( Lietotājs: funkcija )

Pirmā atšķirība starp nodejs modulāro sistēmu un pārlūkprogrammas skriptiem ir tāda, ka, ja pārlūkprogrammai ir divi skriptu tagi, tad funkcija, kas ir globāli definēta vienā no tām, ir pieejama otrā, bet ne nodejs. Nodejs funkcijas un mainīgie ir globāli konkrētam failam (tie nav pieejami, pieprasot). Tādā veidā nodejs ļauj rakstīt patiesi neatkarīgus moduļus. Bet, lai modulis būtu pieejams, tas tiek izmantots eksporta sistēma. Katram modulim ir īpašs eksporta mainīgais.

Modulis-direktorijs DIR/indekss

Mēs savienojam mapi tieši var user = request("./user"); , kas satur atbilstošo indeksu.js .

Piemēram

Funkcija User(name)( this.name = name; ) User.prototype.hello = function(who)( console.log(phrases.Hello + ", " + who.name); ); exports.User = Lietotājs;

Lietotāja konstruktora pievienošana un izmantošana failā ./server.js

//serveris.js var lietotājs = prasīt("./lietotājs"); var vasja = jauns lietotājs.Lietotājs("Vasja");

"./" - attiecībā pret pašreizējo mapi

eksports ir objekts, un viss, kas tur nonāk, tiks atgriezts pieprasījuma (exports.jpg) rezultātā. Tādā veidā modulis var deklarēt savus privātos mainīgos/funkcijas un eksportēt tikai to, kas nepieciešams.


Globālajiem mainīgajiem utt. ir globāls objekts

Global.User = lietotājs;

Rezultāts

  • Nepieciešams savienojums
  • Mainīgie: var (privāts moduļiem), eksports , globāls (reti izmantots)
  • Moduļu veidi: js , node (ar paplašinājumu .node), json (ar paplašinājumu .json) . json moduļi tiek izmantoti, ja failā ir jāsaglabā vienkārša informācija.
  • Modulis-direktorijs DIR/indekss

moduļa objekts

  • moduļa objekts
  • module-function module.exports = funkcija
  • Moduļa kešatmiņa (modulis nekad netiek lasīts vēlreiz)
  • Moduļa atrašanās vieta: meklēšanas secība
  • Nodošanas parametri: modulis-rūpnīca

Moduļa objekts (moduļu pamatā esošais objekts) ir mainīgais, kas pastāv katrā modulī (failā, varat izvadīt console.log(module);). . Saturs: id rekvizīts — parasti ceļš uz failu,
vecāks — saite uz vecāku moduli (module.parent — saite uz vecāku moduli, kuram tas nepieciešams),
bērni (modulis.bērni - tie moduļi, kas ir savienoti, izmantojot nepieciešamo),
eksportē īpašumus un citus.

Modulis vai lietojumprogramma? modulis.parent

Moduli var palaist tieši, un, ja nē, ja funkcionalitāte ir savienota ar citu moduli, ļaujiet tai eksportēt šo funkcionalitāti. Varat atdalīt šos divus gadījumus, pārbaudot:

If(module.parent) ( exports.run = palaist; ) else ( palaist(); )


ps: kā teikts vietnē stackoverflow.com, vecākais ir modulis, kas izsauca interpretējamo skriptu

// $ node foo.js console.log(module.parent); // null // prasīt("./foo") console.log(module.parent); // (...)

Pareiza moduļa.eksports izmantošana

Moduļa kontekstā:

module.exports = eksports = tas (šīs konstrukcijas ir līdzvērtīgas)

Ja vēlaties nodot funkciju nevis objektā, bet tieši, izmantojiet šādu sintaksi:

Module.exports = lietotājs;


Moduļu kešatmiņa

Kad Nodejs ielādē moduli, tas pilnībā izveido atbilstošo moduļa objektu (ņemot vērā vecāku , eksportēšanas un citus līdzīgus rekvizītus) un atceras to pats par sevi (module.id (pilns ceļš uz failu) kalpo kā iekšējās kešatmiņas identifikators) un nākamreiz, kad piekļūstam (savienojamies) jebkuram modulim (failam), nodejs paņem to pašu objektu no kešatmiņas. Tas ir, piemēram, pietiek ar moduļa inicializāciju vienu reizi jebkurā failā, nākotnē to var vienkārši izmantot.

Mūsu gadījumā var db = prasīt (../db");
un var db = prasīt("./db"); ņem to pašu objektu. Tāpēc princips ir šāds: pirmo reizi izmantojot moduli, tas tiek inicializēts, un turpmāk mēs to tikai savienojam un izmantojam (tas ir, mūsu gadījumā mums nav jāizmanto db.connect() divreiz, tas ir, dažādos failos).


Moduļa atrašanās vieta: moduļa meklēšanas secība mezglos

Kā panākt, lai db vienmēr izveidotu savienojumu, nenorādot konkrētu ceļu:

vardb = prasīt(../db"); //vai var db = prasīt("./db");

bet šādi:

vardb = prasīt("db");

neatkarīgi no tā, kurā failā ir iekļauts db.

Lai to izdarītu, jums ir jāsaprot, kādā secībā moduļi tiek meklēti mezglos (kas notiek, kad tiek izsaukts pieprasījums). Nodejs ir daudz iebūvētu moduļu, piemēram, request("fs"); , kas savienosies bez problēmām. Ja norādāt konkrētu ceļu prasībā, piemēram, request(../db"); , tad meklēšana tiks veikta pēc dotā ceļa un fails tiks atrasts, vai arī nodejs mēģinās dabūt šo failu kā direktoriju (un meklēs index.js kategorijas iekšienē).

Ja norādāt pieprasīt("db"); un modulis nav iebūvēts, tad node_modules direktorijā tiks meklēts attiecībā pret pašreizējo pozīciju (ja tiks atrasts, tas mēģinās izņemt moduli no tā). Ja trūkst direktorija node_modules, tad iepriekš tiks meklēts direktorijs node_modules utt.

Papildus konkrēta moduļa ceļa norādīšanai mezgli var meklēt šādus moduļus:

Ievads npm — Node.JS pakotņu pārvaldnieks

  1. izveidot pakotnes apraksta failu (package.json), kurā ir informācija par moduli (nosaukums, versija utt.). Vai nu manuāli, vai ar komandu
    npm init
    (lūgs būtisku informāciju)
  2. Lai publicētu moduli:
    1. Pievienojiet lietotāju, izmantojot komandu npm adduser (jums jāievada lietotājvārds un parole). Tagad viss darbs ar npm tiks veikts šī lietotāja vārdā. Lietotājs var pieteikties vietnē https://www.npmjs.com/~name_user un skatīties savus moduļus.
    2. Publicēt: npm publish
  3. Turklāt kāds var izmantot jūsu datubāzei pievienoto moduli, un lietotājs pats var veikt izmaiņas.
  4. Iegūstiet visas npm komandas, izmantojot npm palīdzības komandu
  5. Meklēt moduli datu bāzē: npm s atslēgvārdi vai npm meklēšanas atslēgvārdi (piemēram, npm s super modulis)
  6. Instalējiet moduli: npm install name_module vai npm i name_module
  7. Instalējot moduļus, nodejs vispirms meklē mapi node_modules pašreizējā direktorijā (pēc tam augstāk un augstāk utt.) vai (ja trūkst node_modules) meklē pack.json (arī iet uz augšu; package.json parasti apzīmē mapes sakni projekts) un attiecīgi, ja tas atrod package.json, tas attiecīgajā direktorijā izveido mapi node_modules; ja abas opcijas neizdodas, tad nodejs izveido mapi node_modules pašreizējā direktorijā. Ja vēlaties ievietot moduli noteiktā direktorijā, tad šajā direktorijā ir jāizveido mape node_modules.
  8. npm up atjaunināt moduli (pārbaudīs moduļus, kas atrodas mapē node_modules, lai saņemtu atjauninājumus)
  9. npm noņemt moduļa_nosaukums (noņemt moduli)

npm izeja:

npm init
nmp pievienotājs
npm publicēt
npm meklēšanas atslēgvārdi
npm instalēšanas modulis
npm atjaunināšanas modulis
npm noņemšanas modulis
npm palīdzības komanda

NPM pakotnes struktūra

Vēlamās versijas instalēšana, piemēram: npm i [aizsargāts ar e-pastu]

Jaunāko moduļa versiju var iegūt, ja modulis ir izstrādāts, izmantojot git versiju sistēmu, piemēram, github. Pietiek, lai iegūtu Git Read-Only (url): https://github.com/strongloop/express.git un konsolē:

npm i https://github.com/strongloop/express.git

atkarības failā package.json

atkarības norāda uz moduļiem, no kuriem šis ir atkarīgs.

devAtkarības

Moduļi, kas reģistrēti devDependencies, netiek instalēti, ja modulis tiek izvilkts kā atkarība. Tie tiek instalēti tikai izstrādei, un tos var instalēt, ja, piemēram, dodaties uz moduli mapē node_modules un ierakstāt npm i (vai iestatot npm config karogu).

galvenais lauks norāda pakotnes ieejas punktu

Globālie moduļi

Jebkuru moduli var instalēt globāli, iestatot karogu -g: npm -g modulis

Globālie līdzekļi sistēmas direktorijam.

Globālo moduļu direktorijs zem logiem:

C:\lietotāji\Lietotāja_vārds\AppData\Viesabonēšana\npm

Globālie moduļi tiek ievietoti standarta sistēmas direktorijā. Tie binārie faili, kas atrodas paketē.json, tiks piegādāti sistēmas ceļā (tas ir galvenais globālo moduļu lietojums), tas ir, nākotnē tos varēs izsaukt caur konsoli.

Pamatojoties uz I. Kantora kursu materiāliem

cm… Sinonīmu vārdnīca

bezcerīgs, bezcerīgs, bezcerīgs; bezcerīgs, bezcerīgs, bezcerīgs (grāmata). Nelabojams, nebeidzams. Bezcerīgas bēdas. Ušakova skaidrojošā vārdnīca. D.N. Ušakovs. 1935 1940 ... Ušakova skaidrojošā vārdnīca

NOTEIKTI, ak, ak; den, dibens (grāmata). Par bēdām, skumjām: kam nav iznākuma, nav gala. Bezcerīgas ilgas. | lietvārds bezcerība, un, sievas. Ožegova skaidrojošā vārdnīca. S.I. Ožegovs, N.Ju. Švedova. 1949 1992 ... Ožegova skaidrojošā vārdnīca

bezcerīgi- bezcerīga traģēdija ... Krievu idiomu vārdnīca

Es adj. Ilgi, bezgalīgi. II adj. 1. Neatstāj cerības uz veiksmīgu iznākumu vai uzlabojumiem; bezcerīgs 1.. 2. Nesološas panākumus, lemts neveiksmei; bezcerīgs 2.. 3. Cerības trūkuma, izmisuma, bezcerības paušana; … Mūsdienu Efremova krievu valodas skaidrojošā vārdnīca

Bezcerīgi, bezcerīgi, bezcerīgi, bezcerīgi, bezcerīgi, bezcerīgi, bezcerīgi, bezcerīgi, bezcerīgi, bezcerīgi, bezcerīgi, bezcerīgi, bezcerīgi, bezcerīgi, bezcerīgi, bezcerīgi, ... ... Vārdu formas

bezcerīgi- bezish viens; īsi forma bedre, dibens... Krievu valodas pareizrakstības vārdnīca

bezcerīgi- kr.f. bezcerīgi / den, bezcerīgi / dibens, dibens, dibeni; bezcerīgi / diena ... Krievu valodas pareizrakstības vārdnīca

Ak, ak; den, dibens, dibens. = Bezcerīgs (1, 3 cipari). Otrā situācija. Mana vajadzība. Dieva ilgas. Esiet bezcerīgā situācijā. ◁ Bezcerīgi, adv. B. sāpīgas minūtes. Bezcerība, un; un. Bezcerības sajūta... enciklopēdiskā vārdnīca

bezcerīgi- ak, ak; den, dibens, dibens.; = bezcerīgs 1), 3) sk. arī. bezcerība, bezcerība Bai situācija. Mana vajadzība. Dieva ilgas... Daudzu izteicienu vārdnīca

Grāmatas

  • Brīnišķīgs ārsts A. I. Kuprins. "Dievs dod, lai nākamais gads izturētos pret jums nedaudz piekāpīgāk nekā šis, un pats galvenais - nezaudējiet drosmi," Mertsalovu ģimenei sacīja Dr. Pirogovs. Pat visbezcerīgākajā brīdī...
  • 1. aprīļa diena, Josips Novakovičs. Ko cilvēks, kurš dzimis 1.aprīlī, var sagaidīt no dzīves? It īpaši, ja ir 1948. gads un savā dzimtajā Horvātijā pie varas nāk diktators Tito? Cerību un ambīciju pilns Ivans Dolinārs ienāk…

Kā jūs zināt no raksta Kas ir Linux kodols, kodols ir monolīts. Tas nozīmē, ka viss izpildāmais kods ir koncentrēts vienā failā. Šai arhitektūrai ir daži trūkumi, piemēram, nespēja instalēt jaunus draiverus, nepārbūvējot kodolu. Taču izstrādātāji ir atraduši šīs problēmas risinājumu, pievienojot moduļu sistēmu.

Linux kodols ļauj aparatūras draiverus, failu sistēmas un dažus citus komponentus kompilēt atsevišķi — kā moduļus, nevis kā daļu no paša kodola. Tādējādi jūs varat atjaunināt draiverus, nepārbūvējot kodolu, kā arī dinamiski paplašināt tā funkcionalitāti. Tas arī nozīmē, ka kodolā var iekļaut tikai pašas nepieciešamākās lietas, bet visu pārējo savienot, izmantojot moduļus. Tas ir ļoti vienkārši.

Šajā rakstā mēs apskatīsim Linux kodola moduļus, darba ar tiem pamatus, jau ielādētu moduļu apskati, moduļu ielādi, instalēšanu un atspējošanu. Kā arī pilnīga izslēgšana, pievienošana melnajam sarakstam un jaunu kodola moduļu pievienošana.

Linux kodola moduļi ir veidoti tikai noteiktai kodola versijai, ir veids, kā palaist moduli neatkarīgi no kodola versijas, ja tie ir saderīgi ar dkms, taču mēs par to runāsim vēlāk.

Visi moduļi atrodas mapē /lib/modules/. Ņemot vērā, ka moduļi ir paredzēti tikai noteiktai kodola versijai, katrai sistēmā instalētajai kodola versijai šajā mapē tiek izveidota atsevišķa apakšmape. Šajā mapē ir paši moduļi un papildu konfigurācijas faili, moduļi tiek sakārtoti kategorijās atkarībā no mērķa, piemēram:

ls /lib/modules/4.1.20-11-default/kernel/

arch Dokumentācija fs lib neto skaņa
kriptogrāfijas draivera kodola mm drošība

Pirms pāriet uz praksi, īsi apskatīsim moduļu pārvaldības pamatkomandas.

  • lsmod- apskatīt ielādētos moduļus
  • modinfo- informācija par moduli
  • insmod- slodzes modulis
  • rmmod- noņemt moduli

Darbs ar Linux kodola moduļiem galvenokārt tiek veikts ar šīm komandām, taču var izmantot arī citas.

Visi moduļi

Tas nav izplatīts uzdevums, taču, ja vēlaties redzēt visus instalētos Linux kodola moduļus savā sistēmā, tas ir ļoti vienkārši. Visi moduļi atrodas mapē /lib/modules, un tāpēc ir ļoti vienkārši tos visus aprēķināt ar vienu komandu vai pat vienkārši doties uz mapi ar failu pārvaldnieku un apskatīt.

Ubuntu komanda izskatīsies šādi:

dpkg -S *.ko | grep /lib/modules

Jūs varat izveidot šo konstrukciju, atrodot:

atrast /lib/modules -name *.ko

Mēs varam meklēt tikai pašreizējo kodolu:

atrast /lib/modules/$(uname -r) -name *.ko

Turklāt visi moduļi ir ierakstīti konfigurācijas failā /lib/modules/modules.aliases, tāpēc mēs varam vienkārši apskatīt tā saturu:

Ja mēs vēlamies pārbaudīt, vai ir instalēts noteikts Linux kodola modulis, mēs varam filtrēt jebkuras komandas izvadi, izmantojot grep:

atrast /lib/modules -name *.ko | grep vbox

/lib/modules/4.1.20-11-default/weak-updates/misc/vboxnetadp.ko
/lib/modules/4.1.20-11-default/weak-updates/misc/vboxvideo.ko

Kas ir ielādēts?

Visa informācija par ielādētajiem moduļiem tiek glabāta /proc/modules failā, mēs to varam parādīt ar komandu:

cat /proc/modules

tun 32768 2 — tiešraide 0xffffffffa07a9000
vboxpci 28672 0 — tiešraide 0xffffffffa07a1000 (O)
vboxnetadp 28672 0 — tiešraidē 0xffffffffa0632000 (O)
vboxnetflt 32768 0 — tiešraidē 0xffffffffa06f3000 (O)
af_packet 40960 8 — tiešraidē 0xffffffffa065b000

Bet šajā jautājumā ir civilizētākas metodes. Šī ir utilīta lsmod un modinfo. Lai skatītu ielādētos Linux kodola moduļus, palaidiet:

Izmantotais moduļa izmērs
ctr 16384 2
ccm 20480 2
drošinātājs 106496 3
bnep 20480 2
bluetooth 532480 5 bnep

Ir ērti pārbaudīt, vai modulis ir ielādēts, izmantojot grep:

sudo lsmod | grep vbox

Un sīkāku informāciju par katru moduli var iegūt, izmantojot modinfo utilītu:

faila nosaukums: /lib/modules/4.1.20-11-default/kernel/fs/fuse/fuse.ko
alias:devname:fuse
aizstājvārds: char-major-10-229
aizstājvārds: fs-fuseblk
aizstājvārds: fs-fuse
licence: GPL
apraksts: Failu sistēma Userspace
Autors: Mikloss Szeredi
aizstājvārds: fs-fusectl
srcversija: 739DE4A12CE441C9FBD74C7

Šeit jūs varat redzēt moduļa failu, tā licenci, autoru un atkarības. Atkarības ir tie moduļi, kas jāielādē, lai tas darbotos pareizi. Diemžēl ne visiem moduļiem ir pieejams normāls apraksts, bet var mēģināt apskatīt moduļu atkarību aprakstu.

Kodola moduļu palaišana

Varat ielādēt Linux kodola moduli, izmantojot modprobe vai insmod komandas.

Piemēram, ielādēsim vboxdrv moduli

sudo modprobe vboxdrv

Lai ielādētu Linux kodola moduli, izmantojot insmod, jums ir jānodod moduļa faila adrese:

sudo insmod /lib/modules/4.1.20-11-default/weak-updates/misc/vboxdrv.ko

Atgādinu, ka to var atrast, izmantojot modinfo komandu. Vēlams palaist Linux kodola moduli, izmantojot modprobe, jo šī komanda ne tikai atrod moduļa failu failu sistēmā, bet arī ielādē visas tā atkarības.

Kodola moduļu noņemšana

Šeit līdzīgi ir divas komandas - modprobe, kas ļauj noņemt moduli, ja tam nododat opciju -r, un ir arī komanda rmmod. Sāksim ar modprobe:

sudo modprobe -r vboxdrv

Vēl viena komanda šajā gadījumā izskatās nedaudz vienkāršāka:

sudo rmmod vboxdrv

rmmod: KĻŪDA: moduli vboxdrv izmanto: vboxnetadp vboxnetflt vboxpci

Ja, izlādējot moduli, tiek parādīta kļūda, tas joprojām tiek izmantots citiem moduļiem, un vispirms tie ir jāizlādē. Pareizi izpildīta komanda neko nedrīkst atgriezt.

rmmod vboxnetadp vboxnetflt vboxpci

Moduļa ielādes bloķēšana

Dažreiz sistēmas sāknēšanas laikā mūsu izmantotajām ierīcēm tiek ielādēti nepareizi Linux kodola moduļi, tie vai nu neatbalsta vēlamo funkcionalitāti, vai arī ir konfliktā ar citiem moduļiem. Spilgts piemērs ir b43 draivera ielāde brcmsmac vietā Broadcom bezvadu adapteriem. Lai atrisinātu šo problēmu, varat pievienot moduļus melnajam sarakstam. Lai to izdarītu, vienkārši pievienojiet vienu rindiņu /etc/modprobe.d/blacklist.conf failam:

vi /etc/modprobe.d/blacklist.conf

Šis kods b43 moduli iekļaus melnajā sarakstā.

Linux kodola moduļu instalēšana

Šai kodola versijai kompilētos moduļus varat vienkārši iekopēt vajadzīgajā mapē, patiesībā mēs to darām, veidojot kodolu no avota. Bet ar patentētiem draiveriem un citiem ārējiem draiveriem, kas nav komplektā ar kodolu, lietas ir atšķirīgas. Šie moduļi atbalsta vairākas kodola versijas, taču tie tiek instalēti, izmantojot īpašu tehnoloģiju - DKMS (Dynamic Kernel Module Support). Turklāt šādā veidā instalētais modulis tiks automātiski pārbūvēts katrai jaunai kodola versijai.

wget http://tenet.dl.sourceforge.net/project/e1000/ixgbe%20stable/4.3.15/ixgbe-4.3.15.tar.gz
$ sudo tar -xf ixgbe-4.3.15.tar.gz -C /usr/local/src
$ sudo mv /usr/local/src/ixgbe-4.3.15/src /usr/src/ixgbe-4.3.15

Izveidosim konfigurācijas failu:

sudo vi /usr/src/ixgbe-4.3.15/dkms.conf

PACKAGE_NAME="ixgbe"
PACKAGE_VERSION="4.3.15"
BUILT_MODULE_NAME="ixgbe"
DEST_MODULE_LOCATION="/kernel/drivers/net/ethernet/intel/ixgbe/"
AUTOMĀTISKI INSTALLĒT = "jā"

Pievienosim moduli kodola kokam:

sudo dkms add -m ixgbe -v 4.3.15

Mēs sākam montāžu pašreizējam kodolam:

sudo dkms build -m ixgbe -v 4.3.15

Un instalējiet:

sudo dkms install -m ixgbe -v 4.3.15

Kodola moduļu instalēšana ir pabeigta. Tagad varat apskatīt informāciju par draiveri vai lejupielādēt to:

dkmsstatus | grep ixgbe

secinājumus

Iespējams, jums reti būs jājaucas ar šiem moduļiem. Taču darbs ar kodola moduļiem būs nepieciešams, ja jūsu izplatīšana neatbalsta jūsu ierīces aparatūru, kā arī tad, ja strādājat ar trešās puses programmatūru, piemēram, VirtualBox, Vmware utt. Taču ir ļoti noderīgi zināt, kā rīkoties ar to. moduļus, kad tie jāpievieno vai jānoņem. Pat ja jums tas tagad nav vajadzīgs, varat pārbaudīt, kā lietas darbojas, lai vēlāk būtu bruņojums.