Vraag & Antwoord

OS Linux

Linux

Anoniem
None
49 antwoorden
  • [quote:0b1b9dc063="RobertV"]> Is het overgins mogelijk een kernel in java te schrijven? Ik bedoel het
    > zou toch moeten kunnen?

    Nee, daar is Java veel te high-level voor.
    [/quote:0b1b9dc063]

    Dat vat ik ff niet :-?
    Dan zou het toch juist moeten kunnen?
  • [quote:7c12ebfb29="RobertV"]> als we het nu toch over dat soort dingen hebben…. wtf is C++? daar
    > heeft een maat van me een spel in gemaakt oid

    C++ is een programmeertaal.[/quote:7c12ebfb29]

    Ja daar was ik enigzins wel achter als je daar een spel in kan maken :) Maar hoe werkt het? Wat voor soort codes etc? Misschien dat je me een site kan geven waar het uitgelegd wordt etc…
  • [quote:80c2852b58]Dat vat ik ff niet
    Dan zou het toch juist moeten kunnen?[/quote:80c2852b58]

    Tja hoe leg ik het nou uit…

    Je processor verwerkt allerlei bits. Om een OS te schrijven moet je precies kunnen vertellen wat de processor moet doen. Bijvoorbeeld "kopieer zoveel bytes geheugen van plaats x naar plaats y" ofzo.
    C is een high-level taal, net boven assembly, maar is low-level genoeg om een OS mee te schrijven als ik ook wat assembly gebruikt.

    Maar Java is high-level. Er zit een grote laag abstractie achter. Dat wilt zeggen dat je niet dingen zegt als "verplaats geheugen" of "maak geheugen vrij" of "stuur signaal x naar PCI slot y", maar dingen als "maak een nieuwe venster en voeg een knop eraan toe". Ja dat kan je processor natuurlijk niet. Je moet juist dingen vertellen als "stuur zoveel bytes naar de 1ste AGP kaart" en dat soort dingen. Dat kan in Java niet.



    [quote:80c2852b58]Ja daar was ik enigzins wel achter als je daar een spel in kan maken icon_smile.gif Maar hoe werkt het? Wat voor soort codes etc? Misschien dat je me een site kan geven waar het uitgelegd wordt etc…[/quote:80c2852b58]

    Spellen kun je in bijna elke taal schrijven. C++ is gewoon Yet Another programmeertaal.
    Je schrijft instructies in een tekstbestand, en een programma (compiler) vertaalt die voor jou begrijpbare instructies om naar machinetaal (0110010111001 enzo).
    Als je echt de details wilt weten kun je beter een boek gaan lezen.
  • [quote:dceaaaad1a="RobertV"]Spellen kun je in bijna elke taal schrijven. C++ is gewoon Yet Another programmeertaal.
    Je schrijft instructies in een tekstbestand, en een programma (compiler) vertaalt die voor jou begrijpbare instructies om naar machinetaal (0110010111001 enzo).
    Als je echt de details wilt weten kun je beter een boek gaan lezen.[/quote:dceaaaad1a]

    Thanx 4 the information… ik vroeg het me gewoon af en nu weet ik het :) Een boek erover lezen laat ik daarom maar achterwegen ;)
  • Nog ff een boeken vraagje: Wat is een goed boek om compilen te leren?
    Ik wil namelijk graag kunnen compilen en ik snap er nu geen hout van :(
  • Wat wil je gaan doen dan marcel? Welke kant wil je ermee op? Lijkt me wel cool overigens… alleen gaat er wel veel tijd in zitten :(
  • [quote:22f4a74054="RobertV"][quote:22f4a74054]Dat vat ik ff niet
    Dan zou het toch juist moeten kunnen?[/quote:22f4a74054]

    Tja hoe leg ik het nou uit…

    Je processor verwerkt allerlei bits. Om een OS te schrijven moet je precies kunnen vertellen wat de processor moet doen. Bijvoorbeeld "kopieer zoveel bytes geheugen van plaats x naar plaats y" ofzo.
    C is een high-level taal, net boven assembly, maar is low-level genoeg om een OS mee te schrijven als ik ook wat assembly gebruikt.

    Maar Java is high-level. Er zit een grote laag abstractie achter. Dat wilt zeggen dat je niet dingen zegt als "verplaats geheugen" of "maak geheugen vrij" of "stuur signaal x naar PCI slot y", maar dingen als "maak een nieuwe venster en voeg een knop eraan toe". Ja dat kan je processor natuurlijk niet. Je moet juist dingen vertellen als "stuur zoveel bytes naar de 1ste AGP kaart" en dat soort dingen. Dat kan in Java niet.
    [/quote:22f4a74054]

    Jawel, ten eerste kun je in principe een processor of laag boven de processor maken die Java bytecode verwerkt. Bovendien staan de meeste Java implementaties toe buiten de sandbox te komen (anders maak je een implementatie die dat kan), dus je kunt best een kernel in Java schrijven. Erg efficient zal het niet zijn zolang de CPU niet razendsnel Java bytecode kan verwerken…
  • [quote:54272b25eb="kajutsa"]Wat wil je gaan doen dan marcel? Welke kant wil je ermee op? Lijkt me wel cool overigens… alleen gaat er wel veel tijd in zitten :([/quote:54272b25eb]

    Ik wil de kant op van een non-grafische Linux die ik zelf heb gecomplimeert.
    LSF dus misschien.
  • Ben benieuwd marcel! Ben je ook van plan om hele boeken erover te gaan kopen??
  • Voor zelf je systeem opzetten: Gentoo is een Linux-distro waarbij alles op je PC wordt gecompileerd. Heel veel programma's kunnen via een portage-systeem worden gedownload en geinstalleerd. Hierbij kijkt het portage-systeem naar de benodigde bibliotheken en programma's. Verder kun je zelf ook je config-files editten, zelf een firewall bouwen enz. Wil je geen KDE of Gnome, dan installeer je die gewoon niet.

    Het is eenvoudiger en meer geautomatisseerd dan LFS, maar wel de voordelen van alles op je eigen systeem gecompileerd en de vrijheid om zelf de boel in te stellen zoals jij wilt.
  • [quote:22fbe5c3ed="Marcel de Reus"]Nog ff een boeken vraagje: Wat is een goed boek om compilen te leren?
    Ik wil namelijk graag kunnen compilen en ik snap er nu geen hout van :([/quote:22fbe5c3ed]

    Je leert geen compilen! Je leert programmeren.
    Je wilt ook niet compilen. Je wilt programmeren.
    Compileren is alleen maar jouw instructies omzetten naar machinetaal. Je moet juist leren hoe je die instructies moet schrijven.

    Zie forum Programmeren. Een tijdje geleden vroeg ook iemand hoe ie moet beginnen met programmeren.
  • Moet je voor LSF en Gentoo dan kunnen progammeren?

    //kajutsa
    Dat aws ik van plan idd, maar ik ga maar website uitprinten en die bieb door spitten want bijna alle boeken kosten 40 euro of meer :(
  • Oh bedoel je dat. Daarvoor heb je toch geen boek nodig. Bij bijna elk programma is het bestand INSTALL meegeleverd. Daarin staat hoe je het programma moet compileren.
  • zullen die programma's ook wel wat kosten zeker :D
  • [quote:7f26b29b9d="RobertV"]Oh bedoel je dat. Daarvoor heb je toch geen boek nodig. Bij bijna elk programma is het bestand INSTALL meegeleverd. Daarin staat hoe je het programma moet compileren.[/quote:7f26b29b9d]

    Ja dat bedoel ik dus.
    Gewoon zelf de bestanden in de kernel zetten ed en niet dmv een SuSE instal wizard of een rpm pakketje.
    Wat dacht jij dan dat ik bedoelde overigens?
  • [quote:fd9d18ec69="kajutsa"]zullen die programma's ook wel wat kosten zeker :D[/quote:fd9d18ec69]

    Nee, dat is nu juist de issue;)
  • [quote:e67db581cd="kajutsa"]als we het nu toch over dat soort dingen hebben…. wtf is C++? daar heeft een maat van me een spel in gemaakt oid :-?[/quote:e67db581cd]

    [code:1:e67db581cd]prefdialog::prefdialog( QWidget* parent, const char* name, bool modal, WFlags fl )
    : QDialog( parent, name, modal, fl )
    {
    if ( !name )
    setName( "prefdialog" );
    resize( 533, 368 );
    setCaption( i18n( "KBinClock - Preferences" ) );
    setSizeGripEnabled( TRUE );
    MyDialog1Layout = new QVBoxLayout( this, 11, 6, "MyDialog1Layout");

    tabWidget = new QTabWidget( this, "tabWidget" );

    Widget8 = new QWidget( tabWidget, "Widget8" );

    GroupBox1 = new QGroupBox( Widget8, "GroupBox1" );
    GroupBox1->setGeometry( QRect( 27, 25, 456, 91 ) );
    GroupBox1->setTitle( i18n( "Style" ) );

    style_circular = new QRadioButton( GroupBox1, "style_circular" );
    style_circular->setGeometry( QRect( 40, 30, 140, 16 ) );
    style_circular->setText( i18n( "Circular" ) );

    style_rectangular = new QRadioButton( GroupBox1, "style_rectangular" );
    style_rectangular->setGeometry( QRect( 40, 55, 155, 16 ) );
    style_rectangular->setText( i18n( "Rectangular" ) );

    GroupBox2 = new QGroupBox( Widget8, "GroupBox2" );
    GroupBox2->setGeometry( QRect( 27, 125, 456, 136 ) );
    GroupBox2->setTitle( i18n( "Frame type" ) );

    frame_raised = new QRadioButton( GroupBox2, "frame_raised" );
    frame_raised->setGeometry( QRect( 40, 35, 156, 16 ) );
    frame_raised->setText( i18n( "Raised" ) );

    frame_sunken = new QRadioButton( GroupBox2, "frame_sunken" );
    frame_sunken->setGeometry( QRect( 40, 65, 136, 21 ) );
    frame_sunken->setText( i18n( "Sunken" ) );

    frame_flat = new QRadioButton( GroupBox2, "frame_flat" );
    frame_flat->setGeometry( QRect( 40, 100, 96, 16 ) );
    frame_flat->setText( i18n( "Flat" ) );
    tabWidget->insertTab( Widget8, i18n( "Look && Feel" ) );

    tab = new QWidget( tabWidget, "tab" );

    GroupBox5_2 = new QGroupBox( tab, "GroupBox5_2" );
    GroupBox5_2->setGeometry( QRect( 25, 160, 460, 105 ) );
    GroupBox5_2->setTitle( i18n( "Darkfactor" ) );

    darkfactor = new QLCDNumber( GroupBox5_2, "darkfactor" );
    darkfactor->setGeometry( QRect( 361, 46, 75, 30 ) );

    darkfactor_slider = new QSlider( GroupBox5_2, "darkfactor_slider" );
    darkfactor_slider->setGeometry( QRect( 37, 50, 206, 24 ) );
    darkfactor_slider->setOrientation( QSlider::Horizontal );

    GroupBox5 = new QGroupBox( tab, "GroupBox5" );
    GroupBox5->setGeometry( QRect( 25, 30, 460, 105 ) );
    GroupBox5->setTitle( i18n( "Sizes" ) );

    size_y = new QSpinBox( GroupBox5, "size_y" );
    size_y->setGeometry( QRect( 60, 65, 101, 18 ) );

    size_x = new QSpinBox( GroupBox5, "size_x" );
    size_x->setGeometry( QRect( 60, 30, 101, 18 ) );

    labelx = new QLabel( GroupBox5, "labelx" );
    labelx->setGeometry( QRect( 15, 30, 16, 16 ) );
    labelx->setText( i18n( "X:" ) );

    labely = new QLabel( GroupBox5, "labely" );
    labely->setGeometry( QRect( 15, 65, 16, 16 ) );
    labely->setText( i18n( "Y:" ) );
    tabWidget->insertTab( tab, i18n( "Sizes" ) );

    Widget9 = new QWidget( tabWidget, "Widget9" );

    GroupBox3 = new QGroupBox( Widget9, "GroupBox3" );
    GroupBox3->setGeometry( QRect( 25, 30, 460, 100 ) );
    GroupBox3->setTitle( i18n( "Widget Color" ) );

    forecolor = new KColorButton( GroupBox3, "forecolor" );
    forecolor->setGeometry( QRect( 47, 45, 386, 21 ) );
    forecolor->setText( QString::null );

    GroupBox4 = new QGroupBox( Widget9, "GroupBox4" );
    GroupBox4->setGeometry( QRect( 25, 155, 460, 110 ) );
    GroupBox4->setTitle( i18n( "Background Color" ) );

    backcolor = new KColorButton( GroupBox4, "backcolor" );
    backcolor->setGeometry( QRect( 45, 50, 386, 21 ) );
    backcolor->setText( QString::null );
    tabWidget->insertTab( Widget9, i18n( "Colors" ) );
    MyDialog1Layout->addWidget( tabWidget );

    Layout1 = new QHBoxLayout( 0, 0, 6, "Layout1");
    QSpacerItem* spacer = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
    Layout1->addItem( spacer );

    buttonOk = new QPushButton( this, "buttonOk" );
    buttonOk->setText( i18n( "OK" ) );
    buttonOk->setAccel( 0 );
    buttonOk->setAutoDefault( TRUE );
    buttonOk->setDefault( TRUE );
    Layout1->addWidget( buttonOk );

    buttonCancel = new QPushButton( this, "buttonCancel" );
    buttonCancel->setText( i18n( "Cancel" ) );
    buttonCancel->setAccel( 0 );
    buttonCancel->setAutoDefault( TRUE );
    Layout1->addWidget( buttonCancel );
    MyDialog1Layout->addLayout( Layout1 );

    // signals and slots connections
    connect( buttonOk, SIGNAL( clicked() ), this, SLOT( accept() ) );
    connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
    }

    /*
    * Destroys the object and frees any allocated resources
    */
    prefdialog::~prefdialog()
    {
    // no need to delete child widgets, Qt does it all for us
    } [/code:1:e67db581cd]

    Maak ik je al blij?? ;)
  • [quote:23a1dec9b2="RobertV"][quote:23a1dec9b2]Dat vat ik ff niet
    Dan zou het toch juist moeten kunnen?[/quote:23a1dec9b2]

    Tja hoe leg ik het nou uit…

    Je processor verwerkt allerlei bits. Om een OS te schrijven moet je precies kunnen vertellen wat de processor moet doen. Bijvoorbeeld "kopieer zoveel bytes geheugen van plaats x naar plaats y" ofzo.
    C is een [b:23a1dec9b2]high-level[/b:23a1dec9b2] taal, net boven assembly, maar is low-level genoeg om een OS mee te schrijven als ik ook wat assembly gebruikt.

    Maar Java is high-level. Er zit een grote laag abstractie achter. Dat wilt zeggen dat je niet dingen zegt als "verplaats geheugen" of "maak geheugen vrij" of "stuur signaal x naar PCI slot y", maar dingen als "maak een nieuwe venster en voeg een knop eraan toe". Ja dat kan je processor natuurlijk niet. Je moet juist dingen vertellen als "stuur zoveel bytes naar de 1ste AGP kaart" en dat soort dingen. Dat kan in Java niet.



    [quote:23a1dec9b2]Ja daar was ik enigzins wel achter als je daar een spel in kan maken icon_smile.gif Maar hoe werkt het? Wat voor soort codes etc? Misschien dat je me een site kan geven waar het uitgelegd wordt etc…[/quote:23a1dec9b2]

    Spellen kun je in bijna elke taal schrijven. C++ is gewoon Yet Another programmeertaal.
    Je schrijft instructies in een tekstbestand, en een programma (compiler) vertaalt die voor jou begrijpbare instructies om naar machinetaal (0110010111001 enzo).
    Als je echt de details wilt weten kun je beter een boek gaan lezen.[/quote:23a1dec9b2]

    'C is een [b:23a1dec9b2]high-level[/b:23a1dec9b2] taal`

    Je bedoelt low-level hoop ik? ;) Highlevel kan natuurlijk ook, het is maar net hoe je het bekijkt :D
  • Ach ik heb ergens gelezen dat C net 1 level boven assembly zit ofzo…
  • [quote:b5fa87e597="phaas"][quote:b5fa87e597="kajutsa"]als we het nu toch over dat soort dingen hebben…. wtf is C++? daar heeft een maat van me een spel in gemaakt oid :-?[/quote:b5fa87e597]

    [code:1:b5fa87e597]prefdialog::prefdialog( QWidget* parent, const char* name, bool modal, WFlags fl )
    : QDialog( parent, name, modal, fl )
    {
    if ( !name )
    setName( "prefdialog" );
    resize( 533, 368 );
    setCaption( i18n( "KBinClock - Preferences" ) );
    setSizeGripEnabled( TRUE );
    MyDialog1Layout = new QVBoxLayout( this, 11, 6, "MyDialog1Layout");

    tabWidget = new QTabWidget( this, "tabWidget" );

    Widget8 = new QWidget( tabWidget, "Widget8" );

    GroupBox1 = new QGroupBox( Widget8, "GroupBox1" );
    GroupBox1->setGeometry( QRect( 27, 25, 456, 91 ) );
    GroupBox1->setTitle( i18n( "Style" ) );[/code:1:b5fa87e597]
    [size=18:b5fa87e597]…ENZOVOORT…[/size:b5fa87e597]
    [/quote:b5fa87e597]

    Uitleg?!? :)

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.