Стоит ли переводить MINOS?

Только технические вопросы по ЯОС и MINOS. Терминология и прочее - в других форумах.
Ответить
БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Стоит ли переводить MINOS?

Сообщение БудДен » 27.05.23 16:25

MINOS является совсем уж маленькой ОС, которая используется в качестве начального загрузчика для A2 на Zybo.

Что видим? В скрипте ЯОС:ARM/ZyboZ710Qemu.Tool есть команда:

Код: Выделить всё

Release.Build -b --only=ZblBootstrap -o="-p=Minos --metaData=simple --objectFile=Minos --useFPU32 --useFPU64 --symbolFileExtension=.Syb --traceModule=Trace" ZyboZ710 ~
Она собирает какой-то кусок миноса.

Код: Выделить всё

wc MinOs.HAL.Zynq.Platform.Mos ConfigConsts.Mod ZbL.Zynq.Board.Mos ZbL.ZyboZ710.TclInit.Mos \
MinOs.HAL.Zynq.Initializer.Mos ARM.FPE64.Mod ARM.Builtins.Mod MinOs.Trace.Mos Zynq.PsUartMin.Mod \
ZbL.Zynq.TraceDevice.Mos MinOs.HAL.Zynq.Caches.Mos MinOs.HAL.Zynq.Memory.Mos ZbL.MemoryMapping.Mos \
MinOs.HAL.Zynq.Interrupts.Mos MinOs.Bit.Mos MinOs.HAL.Zynq.Clocks.Mos MinOs.KernelUtils.Mos\
 MinOs.HAL.Zynq.GlobalTimer.Mos ZbL.Kernel.Mos MinOs.Utils.Mos MinOs.Strings.Mos MinOs.Heaps.Mos\
  ZbL.OFS.Mos ZbL.Modules.Mos MinOs.HAL.Zynq.SdEnvironment.Mos Sd.Mod ZbL.Disks.Mos MinOs.SdDisks.Mos\
   MinOs.HAL.Zynq.SdControllers.Mod ZbL.OFSDiskVolumes.Mos ZbL.Bootstrap.Mos

Код: Выделить всё

 13341  58584 512746 итого
Это ещё не количество уникальных слов и похоже, ещё не вся система - я не вижу, где здесь механизм команд. Остальное потом, я тут урывками, пока на работе что-нибудь большое происходит.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Стоит ли переводить MINOS?

Сообщение БудДен » 27.05.23 16:53

Дальше ещё команда:

Код: Выделить всё

	Release.Build --build --only='EnetMinos Enet ZblBootloader'
		--опцииКомпилятора="-p=Minos --metaData=simple --objectFile=Minos --useFPU32 --useFPU64 --symbolFileExtension=.Syb --traceModule=Trace" ZyboZ710 ~
Enet - это что-то про сеть.

Код: Выделить всё

MinOs.Trace.Mos MinOs.UncachedHeaps.Mos MinOs.StreamReaders.Mos MinOs.StreamWriters.Mos EneT.Minos.EnetEnvironment.Mod \
EneT.EnetTiming.Mod EneT.EnetUtils.Mod EneT.EnetTrace.Mod EneT.EnetBase.Mod EneT.EnetInterfaces.Mod EneT.EnetArp.Mod \
EneT.EnetIcmp.Mod EneT.Minos.EnetStreams.Mod EneT.EnetUdp.Mod EneT.EnetUdpChannels.Mod EneT.EnetTftp.Mod EneT.Enet.Mod \
EneT.EnetPhy.Mod EneT.Zynq.EnetEmacPs7.Mod ZbL.Zynq.PsUartInterrupts.Mos Zynq.PsUart.Mod MinOs.OFSStreams.Mos \
Zynq.PrivateWatchdog.Mod ZbL.Loader.Mos ZbL.Programmer.Mos ZbL.Checksum.Mos ZbL.Bootloader.Mos

Код: Выделить всё

9495  38132 363837 итого

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Стоит ли переводить MINOS?

Сообщение БудДен » 27.05.23 16:59

Итого, примерно 23 тыс строк, 100 тыс. слов (неуникальных), надо теперь посчитать кво уникальных.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Стоит ли переводить MINOS?

Сообщение БудДен » 27.05.23 21:23

С последней версией скрипта. В ней я некоторые тривиальные слова, такие, как "the" или "read" пометил как "неинтересные" и вычеркнул их из поиска, причём сделал это дважды - до разбиения по большим буквам и после него.

Код: Выделить всё

> (load (compile-file "/y/jaos/tools/trob/слова-в-a2.lisp"))
> (посчитай-слова-в-Minos "/y/jaos/source" "~/слова-в-минос.текст")
> (посчитай-долю-русских)
Русских: 2009 (уникальных 184)
Всего слов: 54466 (уникальны 2524)
И далее:

Код: Выделить всё

> (пиши-результаты-по-убыванию-частоты :мин-частота 50)
(("dev" 910) ("addr" 824) ("mask" 786) ("packet" 755) ("enet" 754) ("base" 689)
 ("int" 683) ("card" 645) ("status" 634) ("handler" 540) ("data" 526)
 ("ln" 519) ("regs" 437) ("cache" 435) ("register" 385) ("vol" 383)
 ("block" 382) ("hc" 375) ("tx" 370) ("ip" 365) ("buf" 357) ("intf" 338)
 ("entry" 337) ("rx" 329) ("transfer" 325) ("control" 312) ("enable" 310)
 ("uart" 308) ("name" 305) ("bd" 290) ("rw" 289) ("ofs" 279) ("sd" 272)
 ("timer" 257) ("timeout" 257) ("adr" 254) ("device" 253) ("clock" 249)
 ("str" 237) ("time" 236) ("init" 234) ("flags" 228) ("reg" 227) ("csd" 223)
 ("start" 220) ("task" 219) ("state" 218) ("and" 207) ("fs" 196) ("cmd" 195)
 ("buffer" 195) ("next" 194) ("hdr" 192) ("ch" 190) ("wr" 190) ("platform" 188)
 ("length" 187) ("reader" 181) ("not" 171) ("on" 169) ("link" 167)
 ("controller" 166) ("show" 164) ("ipv" 164) ("mac" 163) ("response" 163)
 ("port" 162) ("pool" 161) ("sector" 159) ("send" 158) ("утв" 157)
 ("frames" 155) ("reset" 155) ("mode" 153) ("stream" 150) ("pos" 148)
 ("arp" 146) ("ro" 141) ("phy" 139) ("writer" 137) ("width" 136) ("value" 135)
 ("socket" 134) ("speed" 134) ("from" 134) ("this" 134) ("interface" 133)
 ("симв" 131) ("host" 129) ("src" 125) ("desc" 125) ("resource" 124)
 ("bit" 124) ("ok" 123) ("invalid" 123) ("release" 118) ("ps" 117)
 ("frame" 116) ("xe" 115) ("до" 111) ("count" 111) ("completion" 110)
 ("sec" 109) ("min" 109) ("prefix" 109) ("all" 109) ("environment" 108)
 ("stop" 108) ("destination" 108) ("handle" 107) ("high" 107) ("input" 106)
 ("capabilities" 106) ("ring" 106) ("memory" 105) ("bits" 105) ("dir" 104)
 ("net" 104) ("udp" 103) ("channel" 102) ("receive" 102) ("raw" 101)
 ("last" 101) ("default" 101) ("volume" 100) ("open" 98) ("an" 98) ("no" 98)
 ("be" 98) ("table" 96) ("acquire" 96) ("id" 95) ("number" 95) ("bytes" 94)
 ("num" 93) ("used" 93) ("irq" 92) ("invalidate" 89) ("output" 89)
 ("offset" 89) ("max" 89) ("dst" 88) ("header" 88) ("registers" 87)
 ("version" 87) ("interrupts" 86) ("hex" 86) ("argument" 85) ("available" 85)
 ("normal" 84) ("flag" 84) ("update" 84) ("only" 84) ("index" 83) ("на" 82)
 ("fifo" 79) ("counter" 79) ("load" 77) ("от" 77) ("bitfield" 76) ("heap" 76)
 ("page" 76) ("intr" 75) ("thread" 75) ("scr" 74) ("safe" 74) ("received" 72)
 ("full" 71) ("network" 71) ("setup" 71) ("ye" 71) ("dma" 70) ("low" 70)
 ("print" 69) ("current" 69) ("remote" 69) ("first" 69) ("packets" 69)
 ("eth" 69) ("writers" 68) ("aleng" 67) ("timing" 67) ("divisor" 67) ("dpg" 66)
 ("board" 66) ("кода" 65) ("disk" 65) ("handlers" 65) ("err" 65) ("mixed" 64)
 ("line" 64) ("protocol" 64) ("apos" 63) ("cid" 63) ("bus" 63) ("done" 63)
 ("as" 63) ("erase" 62) ("frequency" 62) ("disable" 62) ("errors" 61)
 ("spec" 61) ("local" 61) ("checksum" 61) ("pin" 60) ("acknowledge" 60)
 ("mark" 58) ("partition" 58) ("цел" 58) ("cfg" 58) ("interfaces" 58)
 ("wait" 57) ("given" 57) ("check" 57) ("watchdog" 56) ("disabled" 56)
 ("sync" 56) ("readers" 56) ("recv" 55) ("found" 55) ("param" 55)
 ("requested" 55) ("install" 55) ("copy" 55) ("head" 54) ("hz" 54) ("sub" 54)
 ("when" 54) ("level" 53) ("source" 53) ("au" 52) ("key" 52) ("blocks" 52)
 ("map" 51) ("rider" 51) ("force" 51) ("cpu" 51) ("it" 51) ("execute" 51)
 ("op" 51) ("clear" 51))
Последний раз редактировалось БудДен 27.05.23 21:31, всего редактировалось 1 раз.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Стоит ли переводить MINOS?

Сообщение БудДен » 27.05.23 21:26

А вот кусок из хвоста:

Код: Выделить всё

 ("ticks" 4) ("размерности" 4) ("procedures" 4) ("slew" 4) ("within" 4)
 ("zone" 4) ("gig" 4) ("variable" 4) ("replace" 4) ("smp" 4) ("настройся" 4)
 ("fills" 4) ("globally" 4) ("snoop" 4) ("halted" 4) ("udf" 4) ("period" 4)
 ("bank" 4) ("upper" 4) ("now" 4) ("sys" 4) ("pllclk" 4) ("fdiv" 4) ("cln" 4)
 ("auxiliary" 4) ("latencies" 4) ("commit" 4) ("traffic" 4) ("common" 4)
 ("actual" 4) ("machine" 4) ("engine" 4) ("where" 4) ("untouched" 4) ("keep" 4)
 ("some" 4) ("existing" 4) ("required" 4) ("element" 4) ("jab" 4) ("oversz" 4)
 ("undersize" 4) ("undersz" 4) ("fames" 4) ("bdcast" 4) ("errs" 4)
 ("collisions" 4) ("excessive" 4) ("these" 4) ("generate" 4) ("strip" 4)
 ("bursts" 4) ("retry" 4) ("go" 4) ("pkt" 4) ("reverse" 4) ("uses" 4)
 ("enter" 4) ("direction" 4) ("expected" 4) ("reached" 4) ("points" 4)
 ("tracing" 4) ("octet" 4) ("another" 4) ("words" 4) ("bypass" 4) ("generic" 4)
 ("datagrams" 4) ("service" 4) ("whether" 4) ("cond" 4) ("represents" 4)
 ("chain" 4) ("multithreading" 4) ("preallocated" 4) ("methods" 4) ("seq" 4)
 ("defines" 4) ("specifies" 4) ("autonegotiate" 4) ("autonego" 4) ("bounds" 4)
 ("manipulation" 4) ("ttl" 4) ("ecn" 4) ("custom" 4) ("features" 4)
 ("enumerator" 4) ("expiration" 4) ("subnetwork" 4) ("since" 4) ("handled" 4)
 ("swap" 4) ("runtime" 4) ("leading" 4) ("actually" 4) ("signed" 4) ("odd" 3)
Сколько слов я тут не знаю (в т.ч., что они значат в контексте)

slew, snoop, udf, bank, gig, zone, jab, fames, bursts, datagrams, ttl, ecn.

Вроде немного. Тем не менее, с учётом того, что слова многозначны, нужно таки понять и перевести 54000 слов, а в лучшем случае - 2500. Предположим, я буду два раза в неделю садиться и переводить по 20 слов. Итого 40 слов в неделю. Такого не будет, конечнО, т.к. это много и можно на одном слове засесть, если его перевод требует понимания куска кода. Поскольку это всё же операционная система, да ещё и для ARM, там совершенно точно будет куча всего, что я не буду понимать. Вероятность засесть на одном из 40 слов крайне велика (сегодняшняя ситуация с загрузчиками это уже показала - есть всего два понятия, и к концу дня неясно, как их переводить), а значит, такого темпа не будет. но допустим. По самым оптимистичным прогнозам, потребуется 2500/40 = 60 недель - больше года. А не ну ли его нафиг?

Ответить