Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jak funguje konzole v os

Ahoj, programuji si takovej svuj malej operacni system a zajimalo by mne, jak funguje konzole.

Os je konzolovy, takze do nej soupu prikazy, napriklad "cat soubor.txt". Probehne zpracovani catu a ten ma nejaky vystup.

A ted otazka: vystupni text v konzoli je nejaky buffer(soubor) na disku, do ktereho se uklada vystup a vsechny prikazy a ten je pak zobrazovan na konzoli?

Googlil jsem to a nic jsem nenasel.

Diky vsem za rady ci odkazy.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Zpracovani probiha v pameti (nebo docasnem souboru, pokud je to nutne) a na konzoli se pouze zobrazu…
Jan Fiala 10.10.2016 18:27
Jan Fiala
Díky, jde mi spíš o historii příkazů. Např ve win se zachovává pro jednu spuštěnou instanci cmd a t…
MašinkaTomáš 10.10.2016 18:53
MašinkaTomáš
spuštěnou instanci cmd a ta to má vše v paměti? Ano, tak jako pres PowerShell, c# az po konsole, at…
WPShell 10.10.2016 19:40
WPShell
Jen mi prijde jako blbost drzet v pameti 100 000 radku textu, kdyz to uzivatel neni schopen precist.…
MašinkaTomáš 10.10.2016 22:35
MašinkaTomáš
Z jakého duvodu by mel drzet 100 000 radku, promena muze mit jen hodnotu treba int A "13", nebo int…
WPShell 11.10.2016 00:01
WPShell
A taky muze mit String a = ""; for(100000) { a = "ahoj\n"; } nový
MašinkaTomáš 11.10.2016 09:04
MašinkaTomáš
Asi nemáš ponětí o tom kolik co zabírá bajtů. Když opomenu, že jsi tam zapomněl "+", tak obecně v UT… nový
Vorech 11.10.2016 14:52
Vorech
V UTF-8 zabírá znak bajt pouze v případě, že se pohybuješ do #127. Znaky z vyšší části pak zabírají… nový
Jan Fiala 11.10.2016 15:18
Jan Fiala
Vobec to nieje blbost. Ma to vyhodu v tom, ze pri rychlom skakani na stranky cez 'Page Down'/'Page U… nový
Kilo.Viktor 11.10.2016 01:14
Kilo.Viktor
tak tam das tisic riadkov. vyriesene. elementarna logika. Ked uz si schopny vyrobit si vlastny "os"… nový
shiro 11.10.2016 09:00
shiro
Nemám problém s čím? S tím jak funguje OS? Co to má společného s tím, že jsem schopen vyrobit si vla… nový
MašinkaTomáš 11.10.2016 09:05
MašinkaTomáš
preco opat nerozmyslas? pointa je, ze ked uz vyrabas nieco tak komplexne ako vlastny "os", ci aspon… nový
shiro 11.10.2016 09:18
shiro
Jen mi prijde jako blbost drzet v pameti 100 000 radku textu, kdyz to uzivatel neni schopen precist.… poslední
Jan Fiala 11.10.2016 15:28
Jan Fiala
Pokud ti stačí, když to bude pouze do okamžiku ukončení konzole, pak se to ukládá v paměti. Pokud to… nový
Jan Fiala 11.10.2016 13:02
Jan Fiala

Zpracovani probiha v pameti (nebo docasnem souboru, pokud je to nutne) a na konzoli se pouze zobrazuje vysledek. Pokud potrebujes vysledek do souboru, slouzi k tomu prepinac prikazu nebo presmerovani vystupu konzole do souboru

spuštěnou instanci cmd a ta to má vše v paměti?

Ano, tak jako pres PowerShell, c# az po konsole, atd, kde se $promena uklada do "RAM", jde o uplny zaklad na zacatku programovani, jak funguje 'RAM, CPU', kde kdyz dam kuprikladu deklarujes promené $pes, $kocka, $kun tak pro tyto promené jsou jeji hodnoty ulozeny (pod urcitou ADRESSou) v RAM, predstav si to jako SUPLIKY ve SKRINCE, kde tvou $promena ulozis do nejakého supliku ktery pojmenujes a u vnitr je jeho hodnota o velikosti - [xbit] (dle TYPU promené, int ..). :-)
*V pamet :bufer HDD je trochu neco jiného), nak nerozumim jak se bez toho obejdes aniz by jsi znal 'adresu' ..

TiP Mozna by bylo dobré, kdyby jsi nahledl co je a jak funguje EFI a zkusil : CMDTools LINE TOOL for UEFI

Z jakého duvodu by mel drzet 100 000 radku, promena muze mit jen hodnotu treba int A "13", nebo int B "5" at int C "A+B" u string "pondeli", informace které maji par 'BYTs', RAM ma nekolik 'GIGA',, ale mozna mas popletené co je promena a DATA, ze kterych muze byt cteno, treba DataBase, nebo jiné informace ulezné v souboru.

preco opat nerozmyslas?
pointa je, ze ked uz vyrabas nieco tak komplexne ako vlastny "os", ci aspon jeho imitaciu, tak nemas mat co problem s takymi malymi blbostami ako je pocet riadkov v historii terminalu alebo jeho prevedenie. spravis si kolko riadkov historie chces a ako chces aby sa to ukladalo. ako som popisal predtym.

Neviem co vobec riesis nejakych 100tis riadkov historie. nepodstatne hluposti.

Jen mi prijde jako blbost drzet v pameti 100 000 radku textu, kdyz to uzivatel neni schopen precist. Dik za rady.

Konzole to tak nedela. Pamatuje si pouze definovaný počet příkazů a definovaný počet řádků výstupu. Dejme tomu, že prostě budeš mít buffer 1024 řádků, ve kterém můžeš listovat

Pokud ti stačí, když to bude pouze do okamžiku ukončení konzole, pak se to ukládá v paměti.
Pokud to chces ulozit i mezi spustenimi, pak to ukladej do souboru, ale musis se vyrovnat s tim, kdyz si spustis nekolik konzol a do kazde budes zadavat odlisne prikazy. Co pak bude jako historie v dalsi spustene konzoli?

Zpět do poradny Odpovědět na původní otázku Nahoru