Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




MS-DOS

Informatica


MS-DOS

sistem monotasking, monouser.



S.O. MS-DOS este format din:

  1. Nucleu:
    • IO.SYS
    • MSDOS.SYS
    • COMMAND.COM
  2. Programe suplimentare.

Nucleul

IO.SYS

Este o colectie de rutine; asigura operatiile de intrare/iesire standard (colectie de drivere).

MSDOS.SYS

Contine rutine pentru gestionarea informatiei, acces la structurile de date, particularitati de limbaj, acces la retea.

COMMAND.COM (interpretor de comenzi

Este interfata dintre utilizator si S.O. Contine rutine de control ale functionarii sale, proprii.

Programe suplimentare

Adica fisiere executabile:

  • .com
  • .exe
  • .bat

fisierele .com si .exe sunt fisire in format binar executabil

fisierele .bat (batch) sunt fisiere text (ASCII), adica fiecare linie este o comanda.

Fisierele .com au dimensiuni de pana la 64K si cod nerelocabil.

Fisierele .exe pot avea orice dimensiune, cod relocabil, referinte externe segmentului de mem. gazda pt. executabil.

Comenzi

  • interne (incluse in COMMAND.COM)
  • externe (executabile: com, exe, bat; rezidente pe disk)

Metode de incarcare a sistemului:

  • la rece (power on => BIOS-ul este alimentat, verifica fizic componentele sistemului, cauta discul sistem si incarca programul aflat pe primul sector al discului)
  • la cald (reset)

Loader-ul din primul sector al discului va incarca fisierele in ordinea urmatoare:

    1. IO.SYS
    2. MSDOS.SYS
    3. CONFIG.SYS(fisier ASCII, contine drivere pt. dispozitivele I/O non-standard)
    4. COMMAND.COM
    5. AUTOEXEC.BAT


TABELA VECTORILOR DE IRQ-uri

BIOS

IO.SYS

RAM pentru S.O.

 
MSDOS.SYS

CONFIGURARE (drivere, gestiune mem., specificatii de lucru cu fisiere)

aici se incarca

programele utilizator

 
ENVIRONMENT (contine informatii pentru sesiunea curenta de lucru)

COMMAND.COM c. rezidenta

COMMAND.COM  c. tranzienta

RAM pt. utilizator

 

640 KB

 

1 MB

 

16 MB

 

Detalierea BUS-ului:

  • 5 (3+2) linii (alimentare)
  • 1 linie (stare bus)
  • 8/16/32/64... linii (date)
  • 20/24 linii (adrese) => 220=1MB si 224=16MB
  • linii pt. intrerupere si control

Din lipsa de memorie s-a impartit COMMAND.COM in 2 componente:

  • c. rezidenta (contine o rutina de preluare a controlului de la programele utilizator, o rutina de verificare a integritatii componentei rezidente, o rutina de reincarcare a lui command.com)
  • c. tranzienta (este copiata automat de catre S.O., imediat dupa incarcare, in zona de RAM ramasa utilizatorului

Informatia de localizare pe HDD a lui command.com se gaseste in zona ENVIRONMENT, in variabila COMSPEC (aceasta este setata automat de S.O. la boot-are).

Sintaxa gen. a liniei de comanda:

prompter> numecomanda [parametrii]

Intr-un buffer de tastatura este retinuta ultima comanda scrisa, pe care o putem reedita cu tastele F1 F5.

Cu ajutorul lui DOSKEY (program tip TSR, adica "terminate and stay resident") putem fol. si tastele F7 F10.

F1 = reda ultima comanda caracter cu caracter

F2,F4 + car. = da comanda de pana sau de dupa caracter

F3 = reda ultima comanda in intregime

F5 = marcheaza linia pt. o ulterioara editare

Cand COMMAND.COM primeste o comanda:

  • interna (o executa)
  • externa (o localizeaza, o incarca in RAM, o lanseaza)

Ordinea de executie a fisierelor executabile de acelasi nivel: COM, EXE, BAT.

Organizarea discurilor d.p.d.v. soft

Zona sistem

  • BOOT (se afla pe primul sector al discului)
  • ROOT (este o tabela cu nr. fix de inregistrari; o intrare in ROOT are 32 byte)
  • FAT (alocare dinamica: cluster dat, umplut, mai dam; cluster = nr. intreg de sectoare)

Zona de fisiere

O intrare in ROOT se compune din:

8 byte (nume fisier)

3 byte (extensie)

(neutilizati)

1 byte (atribute)

2 byte (data creerii)

2 byte (ora creerii)

2 byte (adresa primului cluster alocat)

4 byte (dimensiunea fisierului)

Atribute:

/v (eticheta pt. partitie)

/d (=1 director, =0 fisier)

/a (in fisier s-a facut o scriere)

/r

/h

/s (implica /h si /r)

Obs.: valoarea lui a (0 sau 1) are importanta la oper. de arhivare.

ROOT (sau orice director)

8 3 10 1 2 2 2 4

Cucu

txt

d=0

a=1

data

ora

dimens

FAT (contine atatea inregistrari, cate clustere pe disc)

X

2003

ocupat

defect

X

2005

ocupat

X

ultim

1 2 . . . . . . . . . . . . 2000 2001 2002 2003 2004 2005

fiecare inregistrare din FAT da informatii despre starea clusterului asociat (liber, ocupat, defect, sfarsit de fisier).

daca atributul d=1 nu mai avem casuta cu dimensiune.

din cauza tabelei ROOT care este fixa, se va forma o structura de tip arborescent

orice cale poate avea max. 64 caractere (=> max. 8 nivele)

in mom. in care am creat un director, automat S.O. ocupa primii 32 2 bytes

directorul insusi reprezentat prin " . "

directorul parinte afisat prin " . . "

Comenzi interne :

a MD (make directory)

b)      CD (change directory)

c)      RD (remove directory)

d)      COPY CON (copy con total.txt copy total.txt con; taste respectiv monitor)

LPTn

COMm

PRN (LPT1)

NUL (simulare)

Copy se fol. si pt. concatenare: "copy 1.txt+2.txt+3.txt total.txt"

e)      TYPE

f)        DIR /p/w/s

g)      REN

h)      DEL *.* /p (cu confirmare la fiecare fisier)

Este de fapt o invalidare logica si nu o stergere fizica; se inlocuieste de fapt primul car. din numele fisierului cu caracterul hexa E5.

i)        DATE

j)        TIME

k)      CLS

l)        PROMPT $p (afiseaza calea in prompter)

$g (afiseaza >)

$l (afiseaza <)

$d (afiseaza data)

$t (afiseaza ora)

$_ (salt la nivelul urmator)

$$ (afiseaza $)

Valoarea lui prompt este pastrata in zona ENVIRONMENT.

m)    PATH cale1 cale2 cale3

Seteaza o lista de cai, memorata tot in zona ENVIRONMENT.

Aceasta lista este folosita de COMMAND.COM pentru a cauta automat fisierele executabile: com, exe, bat.

PATH ;

Sterge toate caile setate anterior.

Daca exista o lista de cai memorata si noi intervenim cu o alta comanda PATH , lista veche va fi rescrisa.

n)      SET numevariabila (afiseaza val. variabilei)

SET numevariabila=valoare (sterge valoarea variabilei)

COMMAND.COM cauta comenzile externe:

in directorul curent

in lista de cai data de PATH

Comenzi externe:

a)      [d:] [cale] UNDELETE

b)      [d:] [cale] APPEND [/e]

Seteaza cai de cautare implicite pt. fisiere care nu au extensie com, exe, bat.

In mod normal (implicit), aceste cai sunt memorate in COMMAND.COM

[/e] memoreaza caile in zona ENVIRONMENT langa cele din PATH

c)      [d:] [cale] XCOPY [sursa] [destinatie] [/s] [/e]

Subordonate [/s]

Empty [/e]

d)      [d:] [cale] ATTRIB [ a] [ r] [ h] [ s]

Seteaza atributele fisierelor.

e)      [d:] [cale] FC

Se fol. pt. a compara fisiere sau directoare.

f)        [d:] [cale] DISKCOPY

Se fol. numai intre doua unitati de floppy.

g)      [d:] [cale] DISKCOMP

Se fol. numai intre doua unitati de floppy.

Redirectarea operatiilor de I/O(input/output) standard:

Intrari:

fisier pe disk < program (sau comanda)

(ce trebuie citit) (care fol. acest fisier)

Iesiri:

program > fisier pe disk

>>

(programul livreaza informatia)

Obs.:

> daca fisierul nu exista va fi creat, daca exista va fi rescris

>> daca fisierul nu exista va fi creat, daca exista se va scrie in continuare in el.

Obs.:

A nu se confunda iesirea standard cu rezultatul comenzii.

Indirectarea operatiilor de I/O(input/output) standard:

Presupunem ca iesirea standard dintr-un program este transformata automat in intrare standard pentru alt program.

program1 (comanda1) program2 (comanda2)

Acesta indirectare creeaza 2 fisiere temporare, care se sterg automat.

Comenzi filtru:

a)      MORE (ia date de la standard input si le da la st. output grupate in entitati ecran)

b)      SORT (ia date de la standard input si le da la st. output ordonate)

c)      FIND cauta, in fisiere, siruri de caractere)

Poate afisa:

toate liniile ce contin sirul dat

toate liniile ce nu contin sirul dat

cate linii contin sirul dat

Ex.: TYPE fisier.txt | MORE

SORT [/+n] [/r] (sortare dupa al n-lea element din rand; "in reverse order")

DIR F404 | SORT /+9

TYPE cucu.txt | SORT

SORT < cucu.txt

Alte comenzi externe:

a)      SYS

Prin aceasta comanda si prin "format /s" facem disk system.

b)      MOVE

Mutare fisiere sau directoare, sau redenumire de directare.

c)      MEM /d

Prezinta informatii despre continutul memoriei in momentul respectiv

/d (informatii detaliate)

d)      DOSKEY

e)      FORMAT x: /q /s

/q (formatare fara cautare de bad-uri, "quick")

/s (formatare cu transferul fisierelor sistem)

f)       UNFORMAT

Are efect numai daca este folosita imediat dupa FORMAT.

Obs.: CTRL+C (intrerupere program)

CTRL+Z (sfarsit de fisier ASCII)

Obs.: La formatare se sterge zona sistem nu zona utilizator; zona utilizator fara cea sistem

nu mai este adresabila si va fi rescrisa.

g)      FDISK

Obs.:

  • Aceeasi unitate fizica (de ex. floppy) poate avea 2 litere pentru adresare.
  • Ms-DOS stie doar pana la litera E: in mod standard (acest lucru se poate schimba daca introducem in CONFIG.SYS linia LASTDRIVE=z); la versiuni mai recente lastdrive nu-si mai are rostul.
  • Daca avem mai mult de 4 partitii pe un HDD, in zona MBR apare o tabela de partitii care contine informatii despre partitiile existente.

0 - bytes (loader = cod de incarcare)

446 - 509 bytes  (tabela de partitii)

510 - 511 bytes  (identificator disc, adica litera)


512 bytes = primul sector pe HDD

  • Informatii ce se regasesc in tabela de partitii:

1BE - 1CD prima partitie

1CE - 1DD a-II-a partitie

1DE - 1ED a-III-a partitie

1EE - 1FD a-IV-a partitie

octetul 1 - partitia activa

octetii 1,2,3 - adresa de inceput a partitiei

octetul 4 - identificator S.O.

octetii 5,6,7 - adresa de sfarsit a partitiei (fata, sector, pista)

octetii 11 - numarul sectorului logic de inceput de partitie

octetii - dimensiunea partitiei in nr. de sectoare

Obs.: Tabela FAT are o copie care se face automat a. daca se corupe originalul sistemul va

fi comutat pe copie.

Obs.: Partitia activa este locul de unde se face incarcarea S.O. => programele care se

ocupa de boot-are (loader-e) comuta activarea intre partitii primare.

FISIERE BATCH:

  • sunt fisiere ASCII
  • se creeaza prin copiere de la consola sau cu editoare ASCII (EDIT in DOS, Notepad in WINDOWS)
  • fiecare linie din fisier = o singura comanda
  • putem introduce orice fel de comenzi DOS
  • fisierele create se vor salva cu extensia .BAT
  • se va lansa in executie ca orice comanda externa
  • ca efect al lansarii vom avea executia rānd cu rānd a comenzilor din fiesier

[d:] [cale] numefisier[.bat] [param. efectivi]

Directive batch:

a)      ECHO ON (se vad si comenzile si efectul lor)

ECHO OFF (se vede numai efectul comenzilor)

ECHO sir de caractere

@ECHO (nu apare nici linia de comanda care il contine pe ECHO)

b)      PAUSE

PAUSE si_caractere (apare doar cu ECHO ON)

c)      REM sir_caractere

Acesta comanda ne permite sa introducem comentarii in fisierul batch; nu vor fi afisate, ele fiind folositoare intr-o editare viitoare pt. un strain.

d)      IF conditie comanda

Daca conditia este adevarata se executa comanda, daca nu se va trece la comanda urmatoare.

Conditia din IF poate fi :

2 siruri de caractere sa fie identice (abc = = abc)

verificarea existentei unui fisier (EXIST numefisier)

verificarea valorii lui ERRORLEVEL (ERRORLEVEL=val.)

IF NOT

Obs.: ERRORLEVEL primeste automat o valoare la sfarsitul oricarui program, in functie

de modul in care s-a incheiat (s-a incheiat cu succes => "ERRORLEVEL=0"; daca se

incheie cu eroare in locul lui zero va fi codul erorii respective).

ERRORLEVEL poate fi setat si de utilizator cu ajutorul unor limbaje de programare, sau prin comanda externa CHOICE.

CHOICE [/C[:]choices] [text]

La intalnirea comenzii CHOICE S.O. afiseaza textul si asteapta introducerea unui caracter dintre cele care urmeaza dupa /C (care le-am introdus noi). La introducerea unuia dintre caractere ERRORLEVEL va primi o valoare egala cu rangul caracterului din lista, adica de ex.:

CHOICE /Cabcd => ERRORLEVEL=3 daca s-a introdus litera "c"

CHOICE /Cabcd => ERRORLEVEL=1 daca s-a introdus litera "a"

Dupa un CHOICE apare obligatoriu un IF.

CHOICE /Cxyzp

IF ERRORLEVEL 4 GOTO eticheta4

IF ERRORLEVEL 3 GOTO eticheta3

IF ERRORLEVEL 2 GOTO eticheta2

A se pleca mereu de la mare la mic si astfel nu mai este nevoie sa scriem :

IF ERRORLEVEL 1 GOTO .

e)      GOTO eticheta

Va face un salt la alta linie din fisierul batch si mai exact va sari la " eticheta"

f)        CALL numefisier.bat (suporta CALL in CALL)

In cazul in care fisierul apelat are parametrii atunci:

CALL numefisier.bat [parametrii formali]

In comenzile din fisierele batch anumite siruri de caractere pot fi inlocuite pentru a asigura generalitatea fisierului batch, cu simboluri sau parametrii formali.

Se permit folosiarea a 10 parametrii formali (%0, %1,. 9).

Parametrii formali vor fi inlocuiti cu parametrii efectivi in momentul executiei fisierului batch.

Deci:

- parametrii efectivi sunt siruri de caractere.

- parametrii formali sunt simboluri.

Putem sa fol. mai multi parametrii formali daca aplicam principiul shift-arii cu ajutorul directivei SHIFT. O comanda SHIFT va deplasa parametrii efectivi de la dreapta spre stanga cu o pozitie.

c:\>exemplu.bat param_efect_1 param_efect_2 param_efect_3

%0 %1 %2 %3

Aplicam SHIFT; se pierde numele fisierului.

Shiftarea este ireversibila.

g)      FOR %%z in(lista) DO comanda %%z

FOR folosit de la prompter va avea doar un singur "%".

FOR %%x in(*.txt) DO TYPE %%x

FOR %z in(c:\F405 c:\F405\F1 c:\F405\F2) DO MD %z


@ECHO OFF

: inceput

IF "%1"= ="" GOTO vid

: aa

SET PATH=%PATH%; %1

SHIFT

IF %1x= = x GOTO sfarsit

GOTO aa

: vid

ECHO Nu exista nici-o cale de adaugat

: sfarsit

PATH


TEMĂ:

Creati un fisier .txt stil agenda telefonica, avand pe coloane: nume, prenume, nr. de telefon (se va numi Agenda.txt).

Creati un fisier .bat care sa faca:

creare si/sau completare fisier agenda

afisarea ordonata a agendei

afisarea unor anumite persoane din agenda

stergerea unor inregistrari din agenda

Se va folosi metoda cu meniu la dispozitia utilizatorului.


@ECHO OFF

: xx

ECHO Aveti posibilitatea sa folositi urmatoarele operatii:

ECHO  a) Creare/adaugare informatii in agenda

ECHO  b) Afisare ordonata a agendei

ECHO  c) Cautare persoane

ECHO  d) Stergere

ECHO  e) Sfarsit

CHOICE /Cabcde "Alegeti operatia: "

IF ERRORLEVEL 5 GOTO sf

IF ERRORLEVEL 4 GOTO st

IF ERRORLEVEL 3 GOTO caut

IF ERRORLEVEL 2 GOTO af

: crad

CALL cread

GOTO sf

: af

CALL afisare

GOTO sf

: caut

CALL cautare %1

GOTO sf

: st

CALL sterge %2

: sf

ECHO Doriti o noua operatie? (d/n)

CHOICE /Cdn

IF ERRORLEVEL 2 GOTO gata

GOTO xx

: gata

ECHO Bye, bye !!!

Cread.bat

@ECHO OFF

ECHO Completati si apasati F6 pentru a iesi

IF EXIST Agenda.txt GOTO completare

COPY CON Agenda.txt > NUL

GOTO sfarsit

: completare

COPY Agenda.txt+CON > NUL

: sfarsit

Afisare.bat

@ECHO OFF

SORT < Agenda.txt | MORE

PAUSE

Cautare.bat

@ECHO OFF

  FIND /i "%1" < Agenda.txt

FIND /i /v "%1" < Agenda.txt > Nou.txt

afisam Nou.txt

intrebam daca este corect

daca NU ne intoarcem

daca DA stergem Agenda.txt si redenumim Nou.txt in Agenda.txt

Cautare.bat

@ECHO OFF

ECHO Introduceti nume prenume sau nr. de telefon apoi apasati F6 si ENTER.

COPY CON p2

COPY p1+p2+p3 linie.bat

CALL linie

COPY CON p1

FIND /i "^Z (enter)

COPY CON p3

"<Agenda.txt (enter)

^Z

Sterge.bat

@ECHO OFF

ECHO Introduceti nume prenume sau nr. de telefon apoi apasati F6 si ENTER.

COPY CON s2

COPY s1+s2+s3 linie.bat

CALL linie

COPY CON s1

FIND /i /v "^Z (enter)

COPY CON s3

"<Agenda.txt >Nou.txt (enter)

^Z


AUTOEXEC.BAT

Contine comenzi care modeleaza stilul de lucru al utilizatorului.

PROMPT (daca vreau sa schimb forma prompterului)

PATH cale (pt. a executa un program indiferent de directorul curent)

SET TEMP=cale

CONFIG.SYS

Contine comenzi specifice de configurare, destinate:

incarcarii in memorie a unor programe driver

precizarii unor conditii de lucru particulare cu fisiere

in general, nu se impune o anume ordine de introducere a comenzilor

Instalarea driverelor se face cu comanda:

DEVICE=specificator fisier driver (calea catre fisierul driver)

Exista un driver special fol. pentru gestiunea mem. HIMEM.SYS. Acesta asigura gestionarea memoriei inalte (peste 1M), facand posibila incarcarea unor anumite programe in aceasta zona. Comanda de incarcare:

DEVICE=c:\Dos\Himem.sys (in DOS curat)

DEVICE=c:\Windows\Command\Hymem.sys (in WINDOWS)

Comanda DOS=HIGH permite mutarea fisierelor S.O. MS-DOS in zona de memorie inalta.

DEVICEHIGH=calea fisier driver permite incarcarea driverelor in memoria inalta.

Exemple de drivere

ANSI.SYS

Permite folosirea unor functii extinse pt. consola (tastatura, monitor). Aceste functii pot fi puse in aplicare utilizand secvenŢe de ESCAPE definite prin ANSI.SYS:

schimbare culoare background, foreground

putem pozitiona cursorul oriunde

putem redefini tastele

putem redefini rezolutia monitorului

DRIVER.SYS

Pentru redefinirea unitatilor de disk.

Avem: A: => floppy 3 /1,44M

C: => HDD

Facem:

D: =>floppy 3 /720K

Alte comenzi

a)      FILES=nr. (nr. max. de fisiere simultan deschise; implicit 8)

b)      BUFFERS=nr. (nr. de zone tampon alocate fisierelor; implicit 2 zone)

c)      BREACK ON;OFF (permite sau nu intreruperea programelor cu CTRL+C)

Obs.: Comenzile DOS au automat BREACK ON.

Orice modificare in CONFIG.SYS devine activa numai dupa RESTART.


Document Info


Accesari: 3274
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )