I think this is overcomplicating a simple issue. We can do the penguin
for the cost of basically no memory as follows
In the console init code set up the font characters, and change the
clear screen sequence at the start of console init to be
clear screen
draw penguins/logo/version string etc
set scrolling region to start at line below penguin. The text will leave
that region nicely untouched until a change scroll region or reset terminal
string occurs.
The penguin and font load are discardable in 2.1 with an __initfunc. We
can also then change this to be useful as well as amusing by having a
boot display looking like
PPP Linux 2.1.44 #3 i586 32Mb RAM 55.42 Bogomips [SMP] PPP
PPP PPP
PPP Linux is free software licensed under the GNU........... PPP
Alan