OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 22.01.2025, 22:27

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 8 ] 
Autor Zpráva
 Předmět příspěvku: Operační systém v 1000 řádcích
PříspěvekNapsal: 08.01.2025, 22:17 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2968
Has thanked: 260 times
Been thanked: 652 times
Je napsaný v Céčku a assembleru, umí kooperativní multitasking a běží na 32bitovém RISC-V:

https://operating-system-in-1000-lines.vercel.app/en
https://github.com/nuta/operating-system-in-1000-lines

Citace:
Features in 1K LoC OS
In this book, we will implement the following major features:
  • Multitasking: Switch between processes to allow multiple applications to share the CPU.
  • Exception handler: Handle events requiring OS intervention, such as illegal instructions.
  • Paging: Provide an isolated memory address space for each application.
  • System calls: Allow applications to call kernel features.
  • Device drivers: Abstract hardware functionalities, such as disk read/write.
  • File system: Manage files on disk.
  • Command-line shell: User interface for humans.

Features not implemented
The following major features are not implemented in this book:
  • Interrupt handling: Instead, we will use a polling method (periodically check for new data on devices), also known as busy waiting.
  • Timer processing: Preemptive multitasking is not implemented. We'll use cooperative multitasking, where each process voluntarily yields the CPU.
  • Inter-process communication: Features such as pipe, UNIX domain socket, and shared memory are not implemented.
  • Multi-processor support: Only single processor is supported.

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
PříspěvekNapsal: 09.01.2025, 12:25 
Offline
Pan Štábní

Registrován: 11.11.2013, 10:29
Příspěvky: 1241
Has thanked: 401 times
Been thanked: 310 times
Pekne, OS si prece muze napsat kazdy...
Cetl jsem tu jeho 'knizku', tedy spise brozuru a popisuje to tak jednoduse. Jen ty znalosti mit a pak to fakt vypada snadno. Ma vyhodu, ze to nedela jako prvni na svete, ale i tak pekna prace.
Odkaz taky na https://www.root.cz/zpravicky/operacni-system-na-1000-radcich/

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
PříspěvekNapsal: 09.01.2025, 13:36 
Offline
Pan Generální

Registrován: 01.12.2017, 21:01
Příspěvky: 2286
Bydliště: BA-Petržalka :(
Has thanked: 18 times
Been thanked: 358 times
No neviem, tých 1000 riadkov... Ono samotné C je už program ktorý má viac ako 1000 riadkov, dalo by sa povedať že C je operačný systém tiež. Základ je assembler, tam sa majú počítať riadky, a nie na niečom nalepenom na vrchu celého toho monštra.

Ono v BASICu by som tiež vedel napísať operačný systém na pár riadkov, a potom sa chválil aké je to malé. OS bežiaci pod iným OS je podvod.

_________________
Oznamy o novom príspevku mi na mail chodia iba sporadicky, takže keď sa nehlásim v diskusii, tak je to tým. V 80% nepríde mail vôbec.


Nahoru
 Profil  
 
PříspěvekNapsal: 09.01.2025, 14:05 
Offline
Radil

Registrován: 16.09.2022, 16:24
Příspěvky: 362
Has thanked: 8 times
Been thanked: 63 times
Vzdyt je to celkem kompletni system, to ze je skoro cely v cecku mi je naopak sympaticke, pro uceni lepsi nez tisice radku assembleru, jen to nutne jako asm volatile.

Ano, pouziva qemu a v nem virtio, ale na hardware by to po doplneni inicializace CPU/periferii a implementaci nejakeho zakladu IO operaci umelo bezet.


Nahoru
 Profil  
 
PříspěvekNapsal: 09.01.2025, 15:11 
Offline
Kecálek

Registrován: 13.01.2023, 09:42
Příspěvky: 229
Has thanked: 0 time
Been thanked: 77 times
Teď ještě k tomu napsat ty aplikace :)


Nahoru
 Profil  
 
PříspěvekNapsal: 09.01.2025, 16:00 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3894
Bydliště: Bratislava
Has thanked: 379 times
Been thanked: 825 times
PotPalo píše:
Základ je assembler, tam sa majú počítať riadky
Len pre zaujimavost - pocty riadkov zdrojaku niektorych systemov napisanych v asembleri:

BSDOS308 ... 4040 riadkov
MDOS 1.0 ... 4737 riadkov
MDOS 2.0 ... 5511 riadkov


Nahoru
 Profil  
 
PříspěvekNapsal: 09.01.2025, 19:36 
Offline
Radil

Registrován: 16.09.2022, 16:24
Příspěvky: 362
Has thanked: 8 times
Been thanked: 63 times
Dluzno tedy doplnit, ze ten system dela uplne neco jineho nez zminovane assemblerovske. Zaklad je tam sestavit prostredi pro procesy, oddelene od sebe i od kernelu, byt s kooperativnim multitaskingem. Tzn. sestaveni pagetables, task switching, atd. File IO jsou jen nutnosti.

Aplikaci tam je shell.c, neloaduje se z disku, ale je pribalen ke kernelu (pokud jsem to v rychlosti pochopil spravne).


Nahoru
 Profil  
 
PříspěvekNapsal: 11.01.2025, 18:39 
Offline
Kecka

Registrován: 30.01.2015, 21:23
Příspěvky: 42
Has thanked: 1 time
Been thanked: 8 times
PotPalo píše:
No neviem, tých 1000 riadkov... Ono samotné C je už program ktorý má viac ako 1000 riadkov, dalo by sa povedať že C je operačný systém tiež. Základ je assembler, tam sa majú počítať riadky, a nie na niečom nalepenom na vrchu celého toho monštra.

Ono v BASICu by som tiež vedel napísať operačný systém na pár riadkov, a potom sa chválil aké je to malé. OS bežiaci pod iným OS je podvod.


No ja nevim, ale ten primer s C a BASICEm mi nesedi, nechci tu vyvolavat nejake hadky, ale C kdyz je clovek seznam s kompilerem jeho vystupem a chovanim, tak muzete C brat spise jako obdobu Makroassembleru.

A je to pekna prace toho chlapika.

_________________
Amiga 600 + 2MB Handmade Chip Ram a Gotek, Macintosh Classic, Atari ST, Alpha Digital Personal Workstation a nejake vraky, ze kterych se snad stanou zase fukcni stroje


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 8 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz