Lino Commando: Difference between revisions

m
Punctuation, capitalisation and adding two links, one of them to non-existing page ramdisk
[unchecked revision][unchecked revision]
m (Punctuation, capitalisation and adding two links, one of them to non-existing page ramdisk)
Line 1:
He's been impressed by the "naked beauty" of DOS/Unix times. The first thing he wants to be achieved is a blinking cursor after a ">" symbol so that he can type commands. No matter if there's no way to start 2 programs at the same time: he just needs a text editor and a FAT12 driver. Maybe you prefer a [[What order should I make things in|different approach]].
 
== Reaching Lino's level ==
=== A first shell ===
 
# Your first goal is an improved keyboard handler. Everything will start there. Make sure you leave room for a keyboard map (for instance easily compilable apart and loaded as a module by [[GRUB]] so that beta-testers can load their own map).
# Don't echo characters right from the start and keep track on what's on screen. Commands histories, completions and working character erasure will be a must.
# just put a few "built-in" commands from the start, but keep your mind open to "how will further shell extension add commands?"... scanning a table rather than a switch statement? you're the one who knows.
 
=== Starting programs. ===
 
# Decide what programs will look like. The easiest model is to give them one data+code segment and let them run there.
# Your programs will have to come from somewhere. Lino had used one GRUB module as a '[[ramdisk]]' where programs were stored (he didn't tell whether using FAT or something even more simple for the internals). What is certain is that program see them as "real" files.
# Provide your programs a simple API: open/close/read/write to files, read/write to the console, exit are enough at the start. Prevent your programs from writing directly to video memory.
 
Line 19:
 
Once this is done ask yourself how you'll start other programs from one program.
This means implementing the [[System calls|system(8) call]].
 
== Going further than Lino ==
Line 40:
* bellezzasolo: ''This is always the best way to start. Nice if it's a PMode shell though ;)''
* LifeDJIK: ''Yes! That's definitely me! But I don't have FAT12 driver... I have FAT32 driver!''
* Moondeck: ''Graphics? VGA? Who needs that crap, iI use serial!''
* ''Insert your name here''
 
Anonymous user