Gå til innhold

Den frie kafeen


Anbefalte innlegg

Videoannonse
Annonse

Godt mulig at jeg har misforstått noe her, men den commiten du linket til er for å gå rundt udev, dette er bra fordi udev linkes for tett med systemd?

 

http://marc.info/?l=...18302507859&w=2

 

Det har mye med dette å gjøre.

 

Det er det veldig delte meninger om, selv er jeg delvis tilhenger av microkernels som virker som skreddersydd for den parallelle hverdagen vi beveger oss mot. Det har vel aldri vært noe enighet hvor slikt bør gjøres.

 

Linux er ikke en mikrokernel, og derfor burde det gjøres i kernelspace.

 

Uansett så er det latterlig at udev skal integreres med ett spesifikt init-system, spesielt når udev var en så viktig komponent (vi får se hvor langt in-kernel firmware loading blir tatt).

Lenke til kommentar

Nei, det gjør det ikke. Har du opplevd en kernelpanic fordi du ikke klarer å laste en modul før? Svaret er (mest sannsynlig, går utifra at modulen ikke er fucktarded) nei.

Det er vel heller fordi kjernen er laget godt nok til å oppdage disse feilene, men problemstillingen er fortsatt reel. Monolitickernels kan ha problemer med slike ting fordi ting gjøres i kernel space som kan føre til problemer, mest mulig burde gjøres i user space for å unngå usabilitet.

Lenke til kommentar

Ja, men nå er Linux en monolitisk kernel, og da ville jeg sagt det er absolutt bedre å gjøre slike ting i kernelspace, istedenfor å blande ting i en suppe av ting som gjøres i userspace og andre ting som er veldig like gjøres i kernelspace (både firmware loading og module loading er veldig like, både som konsepter og praktisk utførelse). Det er ingenting som tilsier at firmware loading ikke skal ha skikkelig errorchecking slik som module loading har. Jeg ville sagt at 90% av kode generelt er errorchecking og handling.

Endret av Kaymeerah
Lenke til kommentar

Takk, løste det "manuelt" med libreoffice calc. Av alle ting. Må virkelig lære meg en av de greiene der og hvordan disse hersens rgexpene brukes i de ulike.

Skrekkelig vanskelig er det ikke, men det er et språk som må læres

 

Uttrykk formes slik:

[operasjon(default: match)]/[uttrykk]/[uttrykk]/[mod]

 

Der / kan leses som "avslutt". Om det skal et eller to uttrykk er avhengig av operasjonen (kan tolkes som "funksjon").

 

Nåh: 1. uttrykk er alltid "match", altså det som søkes etter. Av funksjoner har vi de tre vanligste:

 

s - replace (tenk: search & replace)

tr - translate

m - match. Denne er default.

 

[mod] er blant annet i og g, der "g" betyr global (altså match flere ganger på samme linje, ikke bare første) og "i" betyr case insensitive.

 

Markerer de forskjellige elementene i regexen:

 

s1/2^3.4*5\6///7

 

1 Funksjon, replace.

2 / er skilletegnet mellom uttrykk i regex. Tenk på det som begynn-avslutt-klammer of uttrykk.

3 ^, circumflex, betegner starten av en linje. Ved at denne er med (først, selvfølgelig) betyr at matchen MÅ forekomme i starten. Ellers ville uttrykket kunnet dukke opp hvor som helst, og det vil vi ikke).

4 . er regex' any. Denne matcher -alle- tegn.

5 * er gjenta [0,∞] Det vil si at matchen gjelder dersom tegnet/klassen er der 0 eller flere ganger. I dette tilfellet, altså bak en ., "match alle tegn 0 eller flere ganger.

6 Siden regex har signifikante symboler må vi kunne escape de for å matche de bokstavelig. Til det har vi \

7 Siden du vil fjerne linjene: erstatt med et tomt uttrykk. Videre tar regexer også [mod] på slutten, som nevnt over. Det trenger vi ikke her.

  • Liker 4
Lenke til kommentar

Hehe, tak for forklaringen, men for meg er det fortsatt ikke logisk at det der fjerner alt mellom linjestart og /. Jeg skjønner at den finner / på hver linje, men ikke noe mer. :p

 

Hm, jeg har nylig installert cfs på en ny VPS, og registrerer at jeg fortsatt når wemin somje installerte, på tross av at jeg ikke har åpnet for porten webmin kjører på, og finne heller ikke noe i configfilen om at den automatisk åpne porter for kjørende tjeneste den finner. Kan det være at den har problemer med å sette iptables-reglene skikkelig? noen som har noen erfaring med cfs?

Endret av NgZ
Lenke til kommentar

Ikke helt. Se på hva den matcher

 

.*

 

betyr "match alle tegn 0 til n ganger. Hadde vi ikke avsluttet med \/ (altså escaped slash) hadde den matchet til slutten av linjen og fjernet alt. Siden du spesifiserte / vil den matche til og med første /. Siden s betyr replace og du ba den erstatte med "ingenting" vil du altså bare fjerne.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...