Úprava zdrojových textů
Jelikož na projektu pracuje řada skupin, je nutné pro
přehlednost dodržovat některé konvence zápisu zdrojového kódu.Většina pracovních
skupin má k dispozici pseudokód. Držte se rozložení do souborů a pokud
je to možné i jmen funkcí, které jsou z modulů poskytovány do okolí (samozřejmě
je v případě nutnosti možné provádět změny jak v pojmenování, tak v parametrech,
ale je třeba o tom uvědomit skupiny, které na vaši část navazují ).
Každý zdrojové text (.C,.ASM) musí obsahovat hlavičku
se jménem souboru, stručným popisem jeho účelu a jmény autorů. Je vhodné
rovněž vyjmenovat vstupní body do modulu, jsou-li takové. Funkce je nutno
koncipovat krátké a přehledné, dobře komentovat.
Hlavičky funkcí ve zdrojovém textu je dobré opticky zvýraznit
takto:
/********************************************
my_func
********************************************/
void myfunc(int param)
Některé zásady programování TUOXu
- V rámci vnitřních modulů OS jsou všechny systémové tabulky, seznamy a fronty vytvářeny
staticky, standardního heap manageru se vůbec nevyužívá
- Z důvodu absence rutin pro přepínání kontextu matematického koprocesoru TUOX
NEPODPORUJE ČÍSLA S PLOVOUCÍ ŘÁDOVOU ČÁRKOU. Je se tedy nezbytné vyhnout se typům
float a double.
- Využívat lze pouze funkcí C, které jsou součástí knihoven TUOXu. Nejlépe
je vyhnout se všemu, co není v normě ANSI C (samozřejmě s výjimkou funkcí specifických
pro UNIX, které v ANSI C sice nejsou, ale knihovny je obsahují (lib/include/process.h,
lib/include/exec.h)). Seznam implementovaných funkcí najdete na stránkách implementátorů knihoven.
- Při vstupu do vnitřních rutin modulů kontrolovat správnost
argumentů a zda jsou případné předávané buffery plně umístěny v adresovém prostoru
volajícího (nutné pro usnadnění zjišťění chybného modulu při ladění). Při
detekci vnitřní chyby volat makro trap(errCode). Hodnoty chybových kódů
a jejich vysvětlení jsou v souboru test/trap.h, který je ve správě skupiny testerů.
- Vyhnout se zbytečným globálním proměnným
- Procesorově závislý kód vyseparovat do zvláštních modulů
(týká se pouze jádra). Maximální důraz na snadnou portabilitu
- Při deklaracích funkcí v headerech vnitřních modulů systému používat
(námi definované)modifikátory EXTERN a PRIVATE. Private je synonymum
pro static a omezujeviditelnost funkce na vnitřek modulu. EXTERN je definován
jako prázdnýppři připojování headeru do modulu, který funkci skutečně implementuje,
v ostatních (které funkci jen používají) jako extern. Na začátku souboru
.C se tedy nejprve připojí header(y), u kterých hodláme v nich obsažené
funkce implementovat, poté se nadefinuje #define EXTERN extern a přípojí
se zbytek
Úprava dokumentace systému TUOX
Všechny části systému musí být přehledně dokumentovány. Dokumentace je v HTML.
Je možné použít češtiny s kódováním 1250, cestiny bez hacku a carek, popř. angličtiny.
NEPOUŽÍVEJTE absolutní odkazy na jiné zdroje, všechny odkazy musí být z důvodu snadného
přenosu celé dokumentace na jiný stroj nebo mimo prostředí internetu relativní.
WWW stránky obsahují následujici údaje:
- Seznam členů skupiny a jejich e-mail adresy v podobě odkazu URL
- Stručný popis úkolu skupiny a průběžně aktualizované hodnocení stavu rozpracovanosti
- Odkaz na stranky z předchozích let, pokud takové existují
- Odkaz do adresáře s vašimi novými zdrojovými kódy, které budou průběžně aktualizovány
- Dokumentace rozhraní k danému modulu. U modulů systému se jedná o popis formátů a významů
zpráv rozhraní modulu. U uživatelských programů popis parametrů řádky, voleb, ...