Budowa własnego linuksowego komputerka

May 29, 2022 67 Replies

Moze sie myle, ale wydaje mi sie, ze normalny unix na 68000 byl.

Czy jednak sie mylę ?

J.

Nie każdy "normalny unix" miał pamięć wirtualną. Sprawdź sobie, co to jest.

Ale mapowanie pamieci chyba powinien miec, segmentacje, protekcje,

J.

Nie. Jesli masz dużo ramu, to po co coś gdzieś mapować. Masa OSów działała bez tego.

O Matko, tylko nie to badziewie.

Jeśli ma być "bezpieczny". Ale nie musi.

Atlantis wrote on 29.05.2022 11:14:

Rozejrzyj się za procesorami do budżetowych set top boxów. Zazwyczaj są specjalnie robione w obudowach tqfp, mają wbudowany RAM DDR (niedużo bo np. 64MB), bootują z flasha QSPI, więc nie powinno być problemu z ogarnięciem tego na 2...4-warstwowych PCB.

  1. Allwinner V3s
    formatting link
    C-Sky GX6605C
    formatting link

On chyba miał na myśli tą segmentację od "segmentation fault".

Dużo tzn. ile? Chcesz zniknąć mmap??

Bardziej taka, ze jest segment kodu, segment danych, segment stosu, i wszyskie niekreslonej wielkosci i jeszcze zmienne.

J.

Chocby dlatego, ze procesy maja te same adresy dla roznych pamieci. forka zrobisz i co?

Wielozadaniowy to w zasadzie musi :-)

J.

W embedded bardzo dużo, małe OSy nie uważają sztuczek z pamiecią za jakieś specjalnie krytyczne. Cała rodzina FreeRTOS, uCLinux, eCos, rózne klony MDSOS i pewnie Xdziesiąt innych.

W miganiu diodą może nie być przydatny. Bardzo mozliwe że w kręceniu silniczkiem respiratora też.

Masa OSów nie ma forka ;) Zerknij choćby na eCos.

Mało który *mały* system embedded jest w ogóle preemptive. Za to pełno cooperative/event.

Ogólnie to nie tak, że poważne rzeczy da się robić tylko na poważnych systemach z grep i apt-get. Małe kontrolery, nie obciązone masą skomplikowanych detali, bywają łatwiejsze w ogarnięciu przy formalnej weryfikacji/certyfikacji niż Unix-like.

PS. Amiga była preemptive i nie miała protekcji pamięci. A to nie był system embedded tylko bardzo duzy i skomplikowany OS, choć w czasach przedinternetowych. Nie naciskałbym, że "musi mieć protekcję". Protekcja/separacja procesów jest raczej zagadnieniem bezpieczeństwa a nie funkcjonalności, ale jeśli jesteś juz w zakresie, gdzie uzywa się fork, to w zasadzie to już nie jest embedded tylko normalny unix...

A po co te segmenty i w czym są lepsze w porównaiu gdy proces ma najzwyczajniej pamięc RAM dla siebie, jak chce?

Aczkolwiek

formatting link
"The original design of memory mapped files came from the TOPS-20 operating system. mmap and associated systems calls were designed as part of the Berkeley Software Distribution (BSD) version of Unix. Their API was already described in the 4.2BSD System Manual, even though it was neither implemented in that release, nor in 4.3BSD.[1]

Sun Microsystems had implemented this very API, though, in their SunOS operating system. The BSD developers at U.C. Berkeley requested Sun to donate its implementation, but these talks never led to any transfer of code;

4.3BSD-Reno was shipped instead with an implementation based on the virtual memory system of Mach.[2]"

To moze da sie bez mmap. W dodatku ... wczesne implementacje nie mialy jakiegos limitu na wielkosc pamieci uzywanej? Np 16KB :-) Wiec mozna normalnie wczytac do pamieci.

J.

IMHO nazywanie tego OSem tak jak nazywanie świnki morską.

Tak, ale niebo tym jest dyskusja. Atlantis nie pyta o małe kontrolery.

Właśnie po to by bronić inne zasoby przed tym jego *jak chce*.

A jednak to OS. W końcu mówa cały zas o embedded, bywa, że kiepski filesystem, memtop i put/get na ekran to już OS na dużych komputerach.

Raczej pyta o "małe". Współczesne gołe linuxy to gigabaty dysku i gigabajty ramu i to na SAM9 raczej nie ruszy, ogólnie w grę wchodziły by tylko jakieś prosto lutowalne SoC jak choćby procesory Hixxxx stosowane w rejestratorach kamer czy wynalazki z okolic bardziej przyjaznych dla hobbysty S3C2440, ale one wszystkie są obarczone problemami z żałosną dokumentacją i zerowym wsparciem w porównaniu z Pi.

Można mieć unix-like experience bez protekcji pamięci. W zasadzie, jesli to system zabawkowy, to nie ma dużej różnicy dla hobbysty. "Muszę mieć koniecznie Linuxa z forkiem" może być złym kierunkiem bo zaczną się problemy które są cięzki i nieistotne jednocześnie.

Do tego służy stonicowanie.

Segmentacja to był bardzo, bardzo zły pomysł. Obecnie w poważnych systemach nie używana (czytaj: olewana) bo generuje tylko kłopoty bez wyraźnych zysków.

Bez protekcji pamięci nie będzie unix-like tylko jakiś taki wymysł typu amigaos. A OP nie chce "systemu zabawkowego", tylko system, na którym zadziała Linux. Linux, a nie ucLinux czy amigaos.

Na temat tego, co stosować w embedded i czy lepszy Linux - jako "gorszy" OS, np. bez realtime, ale za to z kupą softu - czy też coś innego, np. lepsze jako OS (ale i gorsze, bo jednozadaniowe, np. eCos - bardzo fajny, ale to nie ledwo co OS, raczej biblioteka) ale bez oprogramowania - można długo dyskutować - ale tutaj jest to zdecydowanie nie w temacie.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required