Banan-OS on täysin puhtaalta pöydältä kehitetty käyttöjärjestelmä

Kaotik

Banhammer
Ylläpidon jäsen
Liittynyt
14.10.2016
Viestejä
22 620
Kotimainen kehittäjä Banaymous on julkaissut ensimmäisen version uudesta Banan-OS-käyttöjärjestelmästä, joka on kirjoitettu täysin puhtaalta pöydältä C++-ohjelmointikielellä.

Notebookcheckin raportin mukaan käyttöjärjestelmästä löytyy jo tuki monille oleellisille ominaisuuksille, vaikka käytännössä käyttöjärjestelmä onkin vielä täysin raakile.
Mukana on mm. verkkopino, lineaarinen framebuffer (VESA & GOP), tuki SMP:lle (Simultaneous MultiProcessing), Ring3-taso käyttäjille ja terminaali.
Banan-OS löytyy GitHubista: GitHub - Bananymous/banan-os: Mirror of banan-os, my hobby operating system

1733449807517.png


Lähde: https://www.notebookcheck.net/Intro...ew-OS-written-from-scratch-in-C.928628.0.html
 
Viimeksi muokattu:
Jos kääntäisi niin päin, että onko uudelle Linux kernelille tarvetta jossain nichessä? Yleisesti ottaen varmaan ei, mutta olisi kiinnostavaa tietää miksi muutamat kuitenkin vastaisi joo.
 
Kehittäjä Banaymous on julkaissut ensimmäisen version uudesta Banan-OS-käyttöjärjestelmästä, joka on kirjoitettu täysin puhtaalta pöydältä C++-ohjelmointikielellä.

Notebookcheckin raportin mukaan käyttöjärjestelmästä löytyy jo tuki monille oleellisille ominaisuuksille, vaikka käytännössä käyttöjärjestelmä onkin vielä täysin raakile.
Mukana on mm. verkkopino, lineaarinen framebuffer (VESA & GOP), tuki SMP:lle (Simultaneous MultiProcessing), Ring3-taso käyttäjille ja terminaali.
Banan-OS löytyy GitHubista: GitHub - Bananymous/banan-os: Mirror of banan-os, my hobby operating system

1733449807517.png


Lähde: https://www.notebookcheck.net/Intro...ew-OS-written-from-scratch-in-C.928628.0.html

Tarkoittaako tämä uutinen nyt että täällä aletaan julkaisemaan muitakin unix pohjasten käyttisten uutisia eikä vaan Windows ?
Jos niin, niin hienoa :thumbsup:

Itse tuohon käyttikseen niin unix/linux komentoja kiltisti ottaa vastaan mitä tuossa testailin. Mutta lukihan tuossa että on unix like os ja sitä kirjaimellisesti on. Mutta se on vaan hyvä asia.
 
Tarkoittaako tämä uutinen nyt että täällä aletaan julkaisemaan muitakin unix pohjasten käyttisten uutisia eikä vaan Windows ?
Jos niin, niin hienoa :thumbsup:

Itse tuohon käyttikseen niin unix/linux komentoja kiltisti ottaa vastaan mitä tuossa testailin. Mutta lukihan tuossa että on unix like os ja sitä kirjaimellisesti on. Mutta se on vaan hyvä asia.
On niitä ennenkin julkaistu kun sattuu silmään sopivaa uutisoitavaa. En kuitenkaan lähtisi odottamaan että niitä sen enempää jatkossakaan tulee.
 
Jos vielä kerkiät vaihtaa kielen rustiksi niin saat ainakin osan tietoturvabugeista taklattua sillä.
Ei ole vielä ittelle tuo rusti kielenä vielä ollut semmonen jota tykkään kirjottaa. Just viime viikolla sain kyllä rustin toolchainin saanut käännettyä omalle targetille, joten voin userspace sovelluksia rustilla jo kirjotella. Joskus miettinyt, että vois rustia kerneli puolellekkin laittaa. Kerneli puolella ei taida raakoja osottimia olla kun schedulerissa joka vaatii vähän monimutkasempaa muistin hallintaa. Kaikki muut on fiksuilla osottimilla (+RAII) joten sanoisin, että muistin hallinta suht turvallista. Tai ainakin turvallisempaa mitä C:llä koskaan voisi saada. Rinnakkaisuuden kanssa suurimmat ongelmat enkä rustista niin paljoa tiedä, että toisiko loppupeleissä mitään lisää tähän.
Pahoittelut tästä finglishistä, en näitä termejä tiedä suomeksi :D
 
Ei ole vielä ittelle tuo rusti kielenä vielä ollut semmonen jota tykkään kirjottaa. Just viime viikolla sain kyllä rustin toolchainin saanut käännettyä omalle targetille, joten voin userspace sovelluksia rustilla jo kirjotella. Joskus miettinyt, että vois rustia kerneli puolellekkin laittaa. Kerneli puolella ei taida raakoja osottimia olla kun schedulerissa joka vaatii vähän monimutkasempaa muistin hallintaa. Kaikki muut on fiksuilla osottimilla (+RAII) joten sanoisin, että muistin hallinta suht turvallista. Tai ainakin turvallisempaa mitä C:llä koskaan voisi saada. Rinnakkaisuuden kanssa suurimmat ongelmat enkä rustista niin paljoa tiedä, että toisiko loppupeleissä mitään lisää tähän.
Pahoittelut tästä finglishistä, en näitä termejä tiedä suomeksi :D
Rustin virallinen kääntäjä ei edelleenkään osaa tuottaa i686-koodia, eli jos teet osan moduuleista Rustilla, niin joudut tinkimään käyttöjärjestelmän portattavuudesta.

Pisteet siitä, että hostaat koodit myös omalla palvelimellasi. Olisit voinut laittaa linkin sinne tähän ketjuun, niin ei olisi tarvinnut ensin kahlata Githubin chromeismien läpi. EDIT: Jaa, eihän tämä ollutkaan itse kehittäjän oma ketju.
 
Viimeksi muokattu:
Päädyin muutaman mutkan kautta tuolta Githubista Expanded Main Page - OSDev Wiki , tuolla on mielenkiintoista materiaalia käyttiksien tekemiseen liittyen, ja muutenkin mielenkiintoista teknistä shittiä vaikkei olisikaan mitään sen syvällisempää halua lähteä itse ohjelmoimaan mitään ihmeempää.
 
OSDevin wikissä on valitettavasti aika paljon myös väärää tietoa, jota on mahdotonta spotata, jos ei tiedä, miten asia oikeasti on. Varsinaisesti tahallaan siellä ei valehdella, vaan usein ongelmana on, että koodia testataan vain jossain virtuaalikoneessa oikean raudan sijasta, ja sen perusteella sitten tehdään vääriä oletuksia siitä, miten IBM PC-yhteensopiva tietokone toimii.
 
Ei ole vielä ittelle tuo rusti kielenä vielä ollut semmonen jota tykkään kirjottaa. Just viime viikolla sain kyllä rustin toolchainin saanut käännettyä omalle targetille, joten voin userspace sovelluksia rustilla jo kirjotella. Joskus miettinyt, että vois rustia kerneli puolellekkin laittaa. Kerneli puolella ei taida raakoja osottimia olla kun schedulerissa joka vaatii vähän monimutkasempaa muistin hallintaa. Kaikki muut on fiksuilla osottimilla (+RAII) joten sanoisin, että muistin hallinta suht turvallista. Tai ainakin turvallisempaa mitä C:llä koskaan voisi saada. Rinnakkaisuuden kanssa suurimmat ongelmat enkä rustista niin paljoa tiedä, että toisiko loppupeleissä mitään lisää tähän.
Pahoittelut tästä finglishistä, en näitä termejä tiedä suomeksi :D
Jos meinaa tehdä puhtaasti Rustilla joutuu aika paljon tehdä vielä itse. Minä en ainakaan kaipaa uutta nixiä Rustilla.
Jos joku viitsisi tehdä käyttiksen jonka API ja ABI pysyisi vakaana pidempään kuin viisi vuotta niin kelpaisi. Itseäni ketuttaa että kehykset muuttuu kokoajan niin joutuu ajureita muokkaamaan jatkuvasti.
 
Jos vielä kerkiät vaihtaa kielen rustiksi niin saat ainakin osan tietoturvabugeista taklattua sillä.
Ei kukaan oikeasti halua kirjoittaa käyttöjärjestelmää kielellä jonka ABI elää edelleen. Rust toimii samoin kuin Java eli uusin versio pitää kääntää edellisellä. Todella mukavaa elinkaarihallinnan kannalta. Versioita on ollut jo tänä vuonna ihan liikaa https://github.com/rust-lang/rust/blob/master/RELEASES.md
 
Suosittelisin tuon Discord-leikkipalvelimen sijasta perustamaan käyttisprojektille jonkin sellaisen keskustelukanavan, johon sitä käyttöjärjestelmää käyttäen on edes teoriassa mahdollisuus liittyä. IRC-kanava esimerkiksi on hyvä ja toimiva.
 
Just another Unix copy.

Otsikko antoi ymmärtää että nyt on kehitetty jotain uutta ja ihmeeellistä mutta ei, samaa 70-luvun keskustietokoneen käyttöön tarkoitettua paskaa.
 
Just another Unix copy.

Otsikko antoi ymmärtää että nyt on kehitetty jotain uutta ja ihmeeellistä mutta ei, samaa 70-luvun keskustietokoneen käyttöön tarkoitettua paskaa.

Unixin perusdesignissa ei ole mitään "paskaa".

Se on ziljoona kertaa paremmin suunniteltu kuin myöhemmin tehdyt 1980-luvun todella yksinkertaisten kotitietokoneiden päälle tehdyt purkkaviritykset joiden "täydet uudelleenkirjoituksetkin" kärsii yhteensopivuussyistä niiden alkuperäisten kotitietokonekäyttisten typeristä ratkaisuista, ja teknisesti unix-pohjaiset käyttikset soveltuvat käytännössä kaikkiin nykylaitteisiin todella paljon näitä paremmin.
 
Unixin perusdesignissa ei ole mitään "paskaa".

Se on ziljoona kertaa paremmin suunniteltu kuin myöhemmin tehdyt 1980-luvun todella yksinkertaisten kotitietokoneiden päälle tehdyt purkkaviritykset joiden "täydet uudelleenkirjoituksetkin" kärsii yhteensopivuussyistä niiden alkuperäisten kotitietokonekäyttisten typeristä ratkaisuista, ja teknisesti unix-pohjaiset käyttikset soveltuvat käytännössä kaikkiin nykylaitteisiin todella paljon näitä paremmin.
Unixin design on kehitetty toimimaan raudassa jossa on yksi keskuskone jota pystyy käyttämään monta käyttäjää yhtäaikaa "tyhmiltä" terminaaleilta. Miten tämä design palvelee kotikäyttäjää joka yleensä käyttää omaa konettaa suoraan ilman terminaalia yksin ainoana käyttäjänä?

Kommenttini on pääsiassa tarkoitettu kritisoimaan otsikkoa "tyhjältä pöydältä" kun oikeasti on ensin otettu pöytä täyteen vanhoja Unix toimintatapoja ja suunnitteluperiaatteita.
 
Kommenttini on pääsiassa tarkoitettu kritisoimaan otsikkoa "tyhjältä pöydältä" kun oikeasti on ensin otettu pöytä täyteen vanhoja Unix toimintatapoja ja suunnitteluperiaatteita.
Tämän kaltaisissa käyttisprojekteissa olennaista on mielestäni se että sellainen on ylipäätään osattu itse tehdä, eikä niinkään se että olisi mietitty alusta lähtien "uusi" ja todennäköisesti jo olemassa olevia huonompi design.
 
Unixin design on kehitetty toimimaan raudassa jossa on yksi keskuskone jota pystyy käyttämään monta käyttäjää yhtäaikaa "tyhmiltä" terminaaleilta. Miten tämä design palvelee kotikäyttäjää joka yleensä käyttää omaa konettaa suoraan ilman terminaalia yksin ainoana käyttäjänä?

Kommenttini on pääsiassa tarkoitettu kritisoimaan otsikkoa "tyhjältä pöydältä" kun oikeasti on ensin otettu pöytä täyteen vanhoja Unix toimintatapoja ja suunnitteluperiaatteita.
Jos ajattelet noin, maailmasta löytyy todella vähän yhtään mitään "tyhjältä pöydältä" tehtyä. Itse käsitän termin (tässä yhteydessä) niin, että käyttöjärjestelmään ei ole otettu mitään valmista pohjaa vaan kaikki on aloitettu nollasta, vaikka toimintatavat olisivat miten tuttuja menneistä järjestelmistä.
 
Just another Unix copy.

Otsikko antoi ymmärtää että nyt on kehitetty jotain uutta ja ihmeeellistä mutta ei, samaa 70-luvun keskustietokoneen käyttöön tarkoitettua paskaa.

Oikeasti ajattelit että nyt on jotain minkä asennat Windows 11 tilalle ja Crysis pyörii paremmin? :smoke:
 
Unixin design on kehitetty toimimaan raudassa jossa on yksi keskuskone jota pystyy käyttämään monta käyttäjää yhtäaikaa "tyhmiltä" terminaaleilta. Miten tämä design palvelee kotikäyttäjää joka yleensä käyttää omaa konettaa suoraan ilman terminaalia yksin ainoana käyttäjänä?

Se palvelee kotikäyttäjää oikein hyvin esim parantamalla tietoturvaa sen suhteen, että voidaan laittaa eri ohjelmat toimimaan eri oikeuksilla jolloin jos koneelle pääsee joku haittaohjelma, sillä haittaohjelmalla on vähemmän mahdollisuuksia toimia. Android käsittääkseni toimii näin, tosin en ole tästä 100% varma.

Mutta, olet muutenkin ymmärtänyt melko väärin sen, mitkä on oleellisia asioita unixissa.

Oleellista unixin designissa on esim
1) periaate, että dataa putkitellaan ohjelmien välillä, ja niiden putkien käyttäminen on tehokasta ja kätevää (jonkinlainen putkitustoiminta toki löytyi jo DOSista mutta siinä sen toimintaperiaate oli paljon huonompi moniajon puutteen takia, mikä esti sen tehokkaan toiminnan/hyödyntämisen, ei toiminut suurille dataamäärille siinä missä unixeissa ei ole mitään rajoja datan koolle putkituksissa)
2) periaate, että "kaikki on tiedostoja" joita voidaan lukea streameina . Tällä viittaan lähinnä käyttiksen/ajurien tarjoamiin rajapintoihin/dataan. Tekee ziljoonasta asiasta paljon helpompaa/käteävämpää ohjelmoijalle.

Esim koko partition backup onnistuu vaan lukemalla partitioon osoittava laitetiedosto, prosessien muistien raakadatan voi helposti lukea debuggaustarkoituksessa lukea kun sekin näkyy tiedostona(jos vaan oikeudet riittää) jne.
3) lapsiprosessin käsite, fork + exec , todella kätevä ja tehokas tapa luoda uusia prosesseja.
4) hardlinkit, periaate että tiedostonnimen ja itse tiedoston välissä on abstraktiotaso ja samaan tiedostoon voi osoittaa monta hardlinkiä ja kun viimeinen katoaa, tiedosto katoaa. Mahdollistaa esim. softien päivittämisen ilman reboottia siinä missä windows lukitsee kaiken mitä käytetään.

Se, että alettaisiin muuttamaan näitä olisi vähän sama kuin että alettaisiin tunkemaan henkilöautoon viidettä pyörää vain koska haltuaan tehdä jotain uutta ja erilaista. Ja se, että joku (M$) tekee teknisesti selvästi huonompia kolmipyöräisiä autoja joissa ohjaussarvet eikä ratti syystä että ne on suoraan jatkokehitetty polkupyöristä ja ihmiset ovat tottuneet ratin sijasta ohjaussarviin ei ole hyvä argumentti siihen että autossa ei pitäisi olla tasan neljää pyörää.
 
Viimeksi muokattu:
Unixin design on kehitetty toimimaan raudassa jossa on yksi keskuskone jota pystyy käyttämään monta käyttäjää yhtäaikaa "tyhmiltä" terminaaleilta. Miten tämä design palvelee kotikäyttäjää joka yleensä käyttää omaa konettaa suoraan ilman terminaalia yksin ainoana käyttäjänä?

Kommenttini on pääsiassa tarkoitettu kritisoimaan otsikkoa "tyhjältä pöydältä" kun oikeasti on ensin otettu pöytä täyteen vanhoja Unix toimintatapoja ja suunnitteluperiaatteita.
Yksinkertaistat aika paljon. Usean käyttäjän samanaikainen käyttö on yksi hyvin hyvin pieni osa koko käyttistä (esim. Linuxilla loginctl, seatit jne.). Tuskinpa haluat käyttistä, joka estää esim. kahden näppiksen tai näytön kytkemisen. Samoin haluat yhdelle käyttäjällekin jotain oikeuksien hallintaa, vaikka käyttäisit yksin konetta. Tuo usean käyttäjän tuki tulee noiden seurauksena melkeinpä automaattisesti. Ja jos tarkoitat etäkirjautumisia, sehän on täysin virtuaalista. Käyttis lähinnä huolehtii että prosesseilla on oikeanlaiset oikeudet ja resurssit. Loppu on sen sshd:n tai muun vastuulla. Tässä auttaisi, jos ymmärtäisit, että nuo on erillisiä asioita. Porukka on tehnyt javascriptilläkin etäyhteyksiä vastaanottavia virtuaalityöpöytiä. Javascriptia voi ajaa missä vaan.
 
Edelleen olen eri mieltä otsikon mielekkyydestä. Jos olisi sanottu "Puhtaalta pöydältä kehitty Unix käyttöjärjestelmä" niin olisi fine.

Nyt on taas pyörä rakennettu uudestaan.

Käyttöjärjestelmien kehittäjät vaan tekevät parempia Unix hevosia kuin pitäisi kehittää se auto.
 
Pyörän keksiminen uudestaan ei ole aina niin helppoa. Googlehan oli ihan kovalla rahalla Fuchsiaa rakentanut, mutta ilmeisesti tulokset oli aika sutta jos aika rajusti irtisanotitin Fuchsia tiimistä viimevuonna
 
Pyörän keksiminen uudestaan ei ole aina niin helppoa. Googlehan oli ihan kovalla rahalla Fuchsiaa rakentanut, mutta ilmeisesti tulokset oli aika sutta jos aika rajusti irtisanotitin Fuchsia tiimistä viimevuonna
Pitää silti muistaa, että nämä projektit on ihan eri kokoluokassa. Jos ei uutisesta suoraan näe, projektissa on analyysityökalujen mukaan vajaa 80k riviä koodia ja vanhin commit noin kahden vuoden takaa. Linuxilla historiaa on melkein 25 vuotta, koodia 28,2 miljoonaa riviä (kernel 6.12.4) ja aktiivisiä kehittäjiä jotain 5000-6000 kpl. Fuchsia on jostain tuosta väliltä. Käyttöjärjestelmien innovaatiot vaativat myös tutkimustyötä, joka ei näy suoraan gitissä. Tästä jos ekstrapoloi suoraviivaisesti, niin tällä tekijällä menee vielä reilu 700 vuotta aikaa päästä siihen, millainen Linux on nyt.
 
Käyttöjärjestelmien kehittäjät vaan tekevät parempia Unix hevosia kuin pitäisi kehittää se auto.
Keskustelu alkaa vähän ajautua sivuraiteelle tästä ko. projektista, vaikka juu, ehkä sitten otsikko olisi voinut olla puhtaalta pöydältä kirjoitettu kuten englanninkielisessä linkitetystä uutisessa.

Mutta hevonen auto vertaus ei minusta toimi , pikemminkin kehittäjät tekevät vaan Unix-autoja kun pitäisi tehdä … ööh … niinku… tuota.

Unix on kuitenkin laajasti käytössä oleva pohja, ei joku historiallinen ennen nykyisen käytössä olevan de facto standardin keksimistä. Eli jos se on paska, niin varmaan minimivaatimus olisi että osaa sanoa mitä pitäisi tehdä. Varsinkin kun muutos vain muutoksen takia on yleensä huono idea.

Jos nyt autovertauksissa pysytään niin jos kritisoi Bemaria tai Toyotaa siitä, että ne tekee vaan parempia autoja, niin olisi kohtuullista kertoa mikä se parempi juttu on mitä nykyisen sijaan pitäisi tehdä.
 
Unix on kuitenkin laajasti käytössä oleva pohja, ei joku historiallinen ennen nykyisen käytössä olevan de facto standardin keksimistä. Eli jos se on paska, niin varmaan minimivaatimus olisi että osaa sanoa mitä pitäisi tehdä. Varsinkin kun muutos vain muutoksen takia on yleensä huono idea.
Jos lähtee tekemään uutta käyttistä niin sitä ei kannata juuri alkaa tekemään kuin Unix/BSD-variantin pohjalta. Ihan vain sen takia että saa isommat softat pyörimään ilman massiivista porttausta.
 
Jos lähtee tekemään uutta käyttistä niin sitä ei kannata juuri alkaa tekemään kuin Unix/BSD-variantin pohjalta. Ihan vain sen takia että saa isommat softat pyörimään ilman massiivista porttausta.
Ja posix-yhteensopivan käyttiksen tekemällä voi keskittyä olennaiseen. Ei tarvitse miettiä miten eri rajapinnat toteuttaisi siten että niissä on olevinaan jotain uutta ja olla samalla kopioimatta suoraan vanhoja käyttöjärjestelmiä. Ellei sitten ole valmiiksi tosi hyviä ja uniikkeja ideoita, mutta niiden keksiminen lienee paljon vaikeampaa kuin toimivan harrastekäyttiksen toteuttaminen.
 

Uusimmat viestit

Statistiikka

Viestiketjuista
261 432
Viestejä
4 537 457
Jäsenet
74 796
Uusin jäsen
anz14

Hinta.fi

Back
Ylös Bottom